Hi folks, There is a problem with compiling C++ code using mathinline.h. The inline function signatures do not match the prototypes in mathcalls.h. The prototypes in mathcalls.h include a throw specifier (AFAICT from __MATHCALL), but the functions in mathinline.h lack this, leading to build failures:
http://buildd.debian.org/fetch.php?&pkg=schroot&ver=0.2.3-2&arch=m68k&stamp=1140539642&file=log&as=raw m68k-linux-gnu-g++ -DGETTEXT_PACKAGE=\"schroot\" -DLOCALEDIR=\"/usr/share/locale\" -D_GNU_SOURCE -I. -I. -I.. -pedantic -Wall -Wcast-align -Wextra -Wwrite-strings -Wswitch-default -Wcast-qual -Wunused-variable -Wredundant-decls -Wctor-dtor-privacy -Wnon-virtual-dtor -Wreorder -Wold-style-cast -Woverloaded-virtual -fstrict-aliasing -g -O2 -o sbuild.gch -c sbuild.h /usr/include/bits/mathinline.h: In function 'double __atan(double)': /usr/include/bits/mathinline.h:128: error: declaration of 'double __atan(double)' throws different exceptions /usr/include/bits/mathcalls.h:59: error: than previous declaration 'double __atan(double) throw ()' /usr/include/bits/mathinline.h: In function 'float __atanf(float)': /usr/include/bits/mathinline.h:128: error: declaration of 'float __atanf(float)' throws different exceptions /usr/include/bits/mathcalls.h:59: error: than previous declaration 'float __atanf(float) throw ()' /usr/include/bits/mathinline.h: In function 'long double __atanl(long double)': /usr/include/bits/mathinline.h:128: error: declaration of 'long double __atanl(long double)' throws different exceptions /usr/include/bits/mathcalls.h:59: error: than previous declaration 'long double __atanl(long double) throw ()' /usr/include/bits/mathinline.h: In function 'double __cos(double)': /usr/include/bits/mathinline.h:129: error: declaration of 'double __cos(double)' throws different exceptions /usr/include/bits/mathcalls.h:64: error: than previous declaration 'double __cos(double) throw ()' [...] This has been filed as Bug #340871. I'm not familiar with glibc/m68k, but adding __THROW to the inline functions should be all that is required. Regards, Roger -- Roger Leigh Printing on GNU/Linux? http://gutenprint.sourceforge.net/ Debian GNU/Linux http://www.debian.org/ GPG Public Key: 0x25BFB848. Please sign and encrypt your mail.
pgpYq8JResDmu.pgp
Description: PGP signature