[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[m68k] Toolchain regression in mathinline.h (glibc)



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.

Attachment: pgpjsgfbrzJF9.pgp
Description: PGP signature


Reply to: