Allow me to de-lurk for a minute to report a compilation problem, along with a fix.

Current (10:00pm EST, 2003-1-26) CVS checkouts of FlightGear fail to compile on my Linux box. Here is the relevant part of the output from 'make', showing the error:

--- Begin ---
g++ -DHAVE_CONFIG_H -I. -I. -I../../src/Include -I../.. -I../../src -I/usr/X11R6/include -Wall -O5 -fomit-frame-pointer -ffast-math -funroll-loops -march=athlon -D_REENTRANT -c -o panel.o `test -f panel.cxx || echo './'`panel.cxx
panel.cxx: In method `const char *FGTextLayer::Chunk::getValue ()
const':
panel.cxx:1128: `truncf' undeclared (first use this function)
panel.cxx:1128: (Each undeclared identifier is reported only once for
each function it appears in.)
make[3]: *** [panel.o] Error 1
--- End ---


It would appear that the truncf function is not being declared. I did some searching on Google, and quickly found a thread starting with the following message posted to a glibc mailing list:

http://sources.redhat.com/ml/bug-glibc/2001-10/msg00015.html

Apparently, the truncf function was introduced in the C99 standard, and to use such functions in glibc you must define _ISOC99_SOURCE (or _GNU_SOURCE) in order for the functions to be properly declared by <math.h>. See the follow-up messages to the above glibc mailing list posting for more info. I wrote a simple five line C program to test truncf, and indeed it didn't work properly unless I added -D_ISOC99_SOURCE or -D_GNU_SOURCE to the list of arguments to gcc.

I checked that this compilation problem occurs, and the above fix works, on both a machine running Red Hat 7.3 (glibc-2.2.5, gcc-2.96), and another running Red Hat 9 (glibc-2.3.2, gcc-3.2.2).

Regards,
-Eric Hathaway



_______________________________________________
Flightgear-devel mailing list
[EMAIL PROTECTED]
http://mail.flightgear.org/mailman/listinfo/flightgear-devel

Reply via email to