[racket] USE_SINGLE_FLOATS_AS_DEFAULT stops racket-5.1.1 build on Solaris x86
Does renaming the variable to `sgl' fix the problem?
My guess is that `single' is defined as a type by some header and
"xform.rkt" can't deal with the collision.
At Mon, 23 May 2011 13:04:02 +0100, Tim Brown wrote:
> 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.
> _________________________________________________
> For list-related administrative tasks:
> http://lists.racket-lang.org/listinfo/users