[Box Backup] LLONG_MAX configure mistake with gcc 4.1.1 (Linux)

Martin Ebourne boxbackup@fluffy.co.uk
Thu, 15 Jun 2006 23:06:09 +0100


On Thu, 2006-06-15 at 21:00 +0100, Stuart Hickinbottom wrote:
> I've done some more investigation and I believe GCC 4.1 is applying
> optimisations (whether or not you pass -O<anything>) that cause the
> sanity check of the determined/compiler-supplied LLONG_MIN/LLONG_MAX to
> always fail.

I'm using FC5, gcc 4.1.1, x86_64. The test program fails here too. Quite
scary actually. The gcc compiler aborts(!) but g++ compiles it. If I
compile to assembler then two of the four "sanity fail" strings don't
even appear in the output, this with optimisation off! I only really do
sparc, arm, and m68k programming so I don't really know what's going on
in the assembler code and can't really be bothered to try and figure it
out.

But Box configures and compiles ok:

>From configure:
checking whether LLONG_MAX is declared... yes

>From config.log:
configure:12009: checking whether LLONG_MAX is declared
configure:12034: g++ -c -g -O2   conftest.cc >&5
configure:12040: $? = 0
configure:12044: test -z 
                 || test ! -s conftest.err
configure:12047: $? = 0
configure:12050: test -s conftest.o
configure:12053: $? = 0
configure:12064: result: yes

Note that it's not running the program, it's finding the definitions in
limits.h. How come they're missing on your system?

Seems gcc is reassuringly broken though.

Cheers,

Martin.