[racket] USE_SINGLE_FLOATS_AS_DEFAULT stops racket-5.1.1 build on Solaris x86

From: Tim Brown (tim.brown at cityc.co.uk)
Date: Mon May 23 08:04:02 EDT 2011

Continuing with Solaris build (environment at foot of mail)...

Now I've got a weird one..

This seems to be the first use of xform.rkt, so I'm not sure if this is
an issue with xform or the source file itself.

The error is in atan_prim(); the declarations at the head of the function
are:
   double v;
   Scheme_Object *n1;
#ifdef MZ_USE_SINGLE_FLOATS
# ifdef USE_SINGLE_FLOATS_AS_DEFAULT
   int dbl = 0;
# define MZ_USE_SINGLE !dbl
# else
#warning "single declared (tim added this warning!)"
   int single = 0;
# define MZ_USE_SINGLE single == 2
#endif
#endif

And each of the errors (e.g. the one on 2210) is caused by the block:
#ifdef MZ_USE_SINGLE_FLOATS
   else if (SCHEME_FLTP(n1)) {
     v = SCHEME_FLT_VAL(n1);
# ifndef USE_SINGLE_FLOATS_AS_DEFAULT
     single ++;   //<<-- this is the single that is a variable definition,
                  //     not at the beginning of the block
# endif
   }
#endif

The xform output shows the warning that I added, but it doesn't see
that single has been defined.

----------------------------------------------------------------
gmake xobjects
gmake[4]: Entering directory 
`/home/tim/racket-5.1.1/src/SunOS-5.10-i386/racket/gc2'
env XFORM_USE_PRECOMP=xsrc/precomp.h ../racketcgc -cqu 
../../../racket/gc2/xform.rkt --setup . --cpp "gcc -E -I./.. 
-I../../../racket/gc2/../include -DNEWGC_BTC_ACCOUNT  -D_LARGEFILE_SOURCE 
-D_FILE_OFFSET_BITS=64 "  --keep-lines -o xsrc/number.c 
../../../racket/gc2/../src/number.c
../../../racket/gc2/../src/number.c:2196:2: warning: #warning single declared
Error [DECL] 2304 in ../../../racket/gc2/../src/number.c: Variable 
declaration (single ++) not at the beginning of a block.
Error [DECL] 2258 in ../../../racket/gc2/../src/number.c: Variable 
declaration (single ++) not at the beginning of a block.
Error [DECL] 2210 in ../../../racket/gc2/../src/number.c: Variable 
declaration (single ++) not at the beginning of a block.
xform: Errors converting
----------------------------------------------------------------

uname -a:  SunOS ... 5.10 Generic_138889-03 i86pc i386 i86pc

racket:    racket-5.1.1-src-unix.tgz  -- only building on this a.t.m.

configure: ../configure --srcdir=.. --prefix=/usr/local CC=gcc CXX=g++
            (I'm using a target-specific build directory)

gcc:       gcc (GCC) 3.4.3 (csl-sol210-3_4-branch+sol_rpath)

Regards,

Tim

-- 
Tim Brown <tim.brown at cityc.co.uk>  | City Computing Limited            |
T: +44 20 8770 2110                | City House, Sutton Park Road      |
F: +44 20 8770 2130                | Sutton, Surrey, SM1 2AE, GB       |
-----------------------------------------------------------------------|
BEAUTY:  What's in your eye when you have a bee in your hand           |
-----------------------------------------------------------------------'
City Computing Limited registered in London No. 1767817.
Registered Office: City House, Sutton Park Road, Sutton, Surrey, SM1 2AE
VAT number 372 8290 34.


Posted on the users mailing list.