Package: oo2c
Version: 1.5.9-4.1
Severity: serious
Justification: FTBFS

My NMU upload of oo2c successfully built on all architectures, except for
oo2c where it fails in the second stage build due to generation of invalid C
code:

[...]
/usr/bin/libtool gcc -pipe -D_REENTRANT   -I/usr/include/gc -O2 -DUSE_GC=1 
-Istage2 -Ilib -I- -c stage2/RealMath.c
*** Warning: inferring the mode of operation is deprecated.
*** Future versions of Libtool will require -mode=MODE be specified.
 gcc -pipe -D_REENTRANT -I/usr/include/gc -O2 -DUSE_GC=1 -Istage2 -Ilib -I- -c 
stage2/RealMath.c  -fPIC -DPIC -o .libs/RealMath.o
cc1: note: obsolete option -I- used, please use -iquote instead
stage2/RealMath.c: In function 'RealMath_init':
stage2/RealMath.c:1134: error: 'NaN' undeclared (first use in this function)
stage2/RealMath.c:1134: error: (Each undeclared identifier is reported only once
stage2/RealMath.c:1134: error: for each function it appears in.)
stage2/RealMath.c:1134: error: syntax error before numeric constant
Error: C compiler reported error, aborting
make[1]: *** [liboo2c] Error 1
[...]

A full build log can be found at
<http://buildd.debian.org/fetch.php?&pkg=oo2c&ver=1.5.9-4.1&arch=powerpc&stamp=1126678157&file=log&as=raw>.

This build failure is reproducible on bruckner.d.o.  The final failure is
caused by wrong C code generation by oo2c; I haven't succeeded in tracking
down the root cause, however.  Here is a diff of the generated C code
between a working version on i386, and the broken powerpc version:

--- stage2/RealMath.c   2005-09-22 04:33:37.000000000 -0700
+++ /home/vorlon/RealMath.c     2005-09-22 04:37:24.000000000 -0700
@@ -1131,50 +1131,50 @@
   i1 = (int)RealMath__a1 + 8;
   *(float*)i0 = 1.00000000F;
   i0 = (int)RealMath__a1 + 12;
-  *(float*)i1 = 9.57603276E-1F;
+  *(float*)i1 = NaN.0F;
   i1 = (int)RealMath__a1 + 16;
-  *(float*)i0 = 9.17004049E-1F;
+  *(float*)i0 = 9.57603276E-1F;
   i0 = (int)RealMath__a1 + 20;
-  *(float*)i1 = 8.78126085E-1F;
+  *(float*)i1 = 9.17004049E-1F;
   i1 = (int)RealMath__a1 + 24;
-  *(float*)i0 = 8.40896428E-1F;
+  *(float*)i0 = 8.78126085E-1F;
   i0 = (int)RealMath__a1 + 28;
-  *(float*)i1 = 8.05245161E-1F;
+  *(float*)i1 = 8.40896428E-1F;
   i1 = (int)RealMath__a1 + 32;
-  *(float*)i0 = 7.71105409E-1F;
+  *(float*)i0 = 8.05245161E-1F;
   i0 = (int)RealMath__a1 + 36;
-  *(float*)i1 = 7.38413095E-1F;
+  *(float*)i1 = 7.71105409E-1F;
   i1 = (int)RealMath__a1 + 40;
-  *(float*)i0 = 7.07106769E-1F;
+  *(float*)i0 = 7.38413095E-1F;
   i0 = (int)RealMath__a1 + 44;
-  *(float*)i1 = 6.77127779E-1F;
+  *(float*)i1 = 7.07106769E-1F;
   i1 = (int)RealMath__a1 + 48;
-  *(float*)i0 = 6.48419797E-1F;
+  *(float*)i0 = 6.77127779E-1F;
   i0 = (int)RealMath__a1 + 52;
-  *(float*)i1 = 6.20928884E-1F;
+  *(float*)i1 = 6.48419797E-1F;
   i1 = (int)RealMath__a1 + 56;
-  *(float*)i0 = 5.94603539E-1F;
+  *(float*)i0 = 6.20928884E-1F;
   i0 = (int)RealMath__a1 + 60;
-  *(float*)i1 = 5.69394290E-1F;
+  *(float*)i1 = 5.94603539E-1F;
   i1 = (int)RealMath__a1 + 64;
-  *(float*)i0 = 5.45253873E-1F;
+  *(float*)i0 = 5.69394290E-1F;
   i0 = (int)RealMath__a1 + 68;
-  *(float*)i1 = 5.22136867E-1F;
+  *(float*)i1 = 5.45253873E-1F;
   i1 = (int)RealMath__a2 + 4;
   *(float*)i0 = 5.00000000E-1F;
   i0 = (int)RealMath__a2 + 8;
-  *(float*)i1 = 4.92266405E-9F;
+  *(float*)i1 = 0.00000000F;
   i1 = (int)RealMath__a2 + 12;
-  *(float*)i0 = 5.49867600E-8F;
+  *(float*)i0 = 4.92266405E-9F;
   i0 = (int)RealMath__a2 + 16;
-  *(float*)i1 = 4.91810859E-9F;
+  *(float*)i1 = 5.49867600E-8F;
   i1 = (int)RealMath__a2 + 20;
-  *(float*)i0 = 3.71001505E-8F;
+  *(float*)i0 = 4.91810859E-9F;
   i0 = (int)RealMath__a2 + 24;
-  *(float*)i1 = 5.45429693E-8F;
+  *(float*)i1 = 3.71001505E-8F;
   i1 = (int)RealMath__a2 + 28;
-  *(float*)i0 = 2.24841905E-8F;
+  *(float*)i0 = 5.45429693E-8F;
   i0 = (int)RealMath__a2 + 32;
-  *(float*)i1 = 2.69311116E-8F;
-  *(float*)i0 = 2.41673490E-8F;
+  *(float*)i1 = 2.24841905E-8F;
+  *(float*)i0 = 2.69311116E-8F;
 }

Maybe the diff will help you more than it helped me...

-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
[EMAIL PROTECTED]                                   http://www.debian.org/

Attachment: signature.asc
Description: Digital signature

Reply via email to