On Sun, 20 Apr 2008 15:08:12 -0700 chromatic <[EMAIL PROTECTED]> wrote: > Is this really correct? My gmp.h file has:
No, it's a workaround for an issue that isn't really gmp's fault. Building with g++ barfs when parsing libintl.h, included by gmp.h. Here's what happens: libintl.h defines the following two function prototypes: extern char *textdomain (__const char *__domainname) __THROW; extern char *bindtextdomain (__const char *__domainname, __const char *__dirname) __THROW; Unfortunately, PARROT_HAS_GEXTTEXT (see the typo in that?) isn't defined, so include/parrot/parrot.h does: # define textdomain(d) # define bindtextdomain(p, d) So the compiler actually sees: extern char * throw (); extern char * throw (); And barfs: src/pmc/bigint.c /usr/include/libintl.h:83: error: expected unqualified-id before 'throw' /usr/include/libintl.h:83: error: expected initializer before 'throw' /usr/include/libintl.h:87: error: expected unqualified-id before 'throw' /usr/include/libintl.h:87: error: expected initializer before 'throw' make: *** [src/pmc/bigint.o] Error 1 Fixing the typo fixes the bug. Fixed in r27065. (Still debatable whether the rest of that #else clause in parrot.h is valid, if it's causing issues like this one.) Mark