[Bf-committers] gcc 3.4.1 released, blender still wont compile.

Kester Maddock bf-committers@blender.org
Mon, 5 Jul 2004 00:14:10 +1200


There's a bug already open for this, IIRC the strpbrk thing is a glibc bug and 
there is a std:: missing in TNT.

Kester

On Sunday 04 July 2004 18:27, Campbell Barton wrote:
> Hi, gcc 3.4 was relesed a while ago and was supposed to have some good
> improvements.
> It had a but when compiling inline ASM for MMX (had to disable mmx
> o0ptizimations for the gimp and cinelerra) but blender wouldent compile.
>
> 3.4.1 has been released and compiles the gimp no problems but blender
> still raises errors.
>
> gcc 3.4.1 msg
> source/blender/blenkernel/intern/exotic.c:1196: error: invalid operands
> to binary -the line
>
> *i= (long)(strpbrk(cpa, ", \n")-cpa);  *
>
>
> see below for an extract.
>
> static int iv_finddata(struct IvNode *iv, char *field, int fieldnr)
> {
>     /* search for "field", count data size and make datablock. return
> skipdata */
>     float *fp;
>     int len, stackcount, skipdata=0;
>     char *cpa, terminator, str[64];
>     long i;
>
>     len= strlen(field);
>
>     cpa= iv->nodename+1;
>     while( *cpa != '}' ) {
>
>         if( *cpa == *field ) {
>             if( strncmp(cpa, field, len)==0 ) {
>                 iv->fieldname[fieldnr]= cpa;
>
>                 /* read until first character */
>                 cpa+= len;
>                 skipdata+= len;
>                 *cpa= 0;
>                 cpa++;
>                 skipdata++;
>
>                 while( *cpa==32 || *cpa==13 || *cpa==10 || *cpa==9) cpa++;
>                 if( *cpa=='[' ) {
>                     terminator= ']';
>                     cpa++;
>                     skipdata++;
>                 }
>                 else terminator= 13;
>
>                 stackcount= 0;
>                 fp= iv_data_stack;
>
>                 while( *cpa!=terminator && *cpa != '}' ) {
>
>                     /* in fact, isdigit should include the dot and minus */
>                     if( (isdigit(*cpa) || *cpa=='.' || *cpa=='-') &&
> (isspace(cpa[-1]) || cpa[-1]==0 || cpa[-1]==',') ) {
>                         if(cpa[1]=='x') {
>                             memcpy(str, cpa, 16);
>                             str[16]= 0;
>
>                             sscanf(str, "%x", (int *)fp);
>                         }
>                         else {
>                             /* atof doesn't stop after the first float
>                              * in a long string at Windows... so we copy
>                              * the float to a new string then atof... */
>
>                             *i= (long)(strpbrk(cpa, ", \n")-cpa);*
>
>                             if (i>63) *fp= 0.0;
>                             else {
>                                 memcpy(str, cpa, i);
>                                 str[i]=0;
> _______________________________________________
> Bf-committers mailing list
> Bf-committers@blender.org
> http://www.blender.org/mailman/listinfo/bf-committers
>
>
>
> !DSPAM:40e7f35a89689279095426!