Hi Jim, > Bruno, as Elbert suggests, it looks like this change from last week is the > cause: > > Avoid link error when creating a namespace clean library. > * lib/math.in.h (gl_signbitf, gl_signbitd, gl_signbitl): Don't define > as macro with arguments if already defined as an alias. > * lib/signbitf.c (gl_signbitf): Don't undefine. > * lib/signbitd.c (gl_signbitd): Don't undefine. > * lib/signbitl.c (gl_signbitl): Don't undefine.
Yes, you're right. This should fix it: 2009-04-30 Bruno Haible <br...@clisp.org> Fix bug introduced on 2009-04-25. * lib/math.in.h (gl_signbitf_OPTIMIZED_MACRO, gl_signbitd_OPTIMIZED_MACRO, gl_signbitl_OPTIMIZED_MACRO): New macros. * lib/signbitf.c (gl_signbitd): Undefine if gl_signbitf_OPTIMIZED_MACRO is defined. * lib/signbitd.c (gl_signbitd): Undefine if gl_signbitd_OPTIMIZED_MACRO is defined. * lib/signbitl.c (gl_signbitd): Undefine if gl_signbitl_OPTIMIZED_MACRO is defined. Reported by Elbert_Pol <elbert....@gmail.com>. --- lib/math.in.h.orig 2009-04-30 13:00:25.000000000 +0200 +++ lib/math.in.h 2009-04-30 12:59:59.000000000 +0200 @@ -519,6 +519,7 @@ extern int gl_signbitl (long double arg); # if __GNUC__ >= 2 && !__STRICT_ANSI__ # if defined FLT_SIGNBIT_WORD && defined FLT_SIGNBIT_BIT && !defined gl_signbitf +# define gl_signbitf_OPTIMIZED_MACRO # define gl_signbitf(arg) \ ({ union { float _value; \ unsigned int _word[(sizeof (float) + sizeof (unsigned int) - 1) / sizeof (unsigned int)]; \ @@ -528,6 +529,7 @@ }) # endif # if defined DBL_SIGNBIT_WORD && defined DBL_SIGNBIT_BIT && !defined gl_signbitd +# define gl_signbitd_OPTIMIZED_MACRO # define gl_signbitd(arg) \ ({ union { double _value; \ unsigned int _word[(sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int)]; \ @@ -537,6 +539,7 @@ }) # endif # if defined LDBL_SIGNBIT_WORD && defined LDBL_SIGNBIT_BIT && !defined gl_signbitl +# define gl_signbitl_OPTIMIZED_MACRO # define gl_signbitl(arg) \ ({ union { long double _value; \ unsigned int _word[(sizeof (long double) + sizeof (unsigned int) - 1) / sizeof (unsigned int)]; \ --- lib/signbitd.c.orig 2009-04-30 13:00:25.000000000 +0200 +++ lib/signbitd.c 2009-04-30 12:59:59.000000000 +0200 @@ -23,6 +23,10 @@ #include "isnand-nolibm.h" #include "float+.h" +#ifdef gl_signbitd_OPTIMIZED_MACRO +# undef gl_signbitd +#endif + int gl_signbitd (double arg) { --- lib/signbitf.c.orig 2009-04-30 13:00:25.000000000 +0200 +++ lib/signbitf.c 2009-04-30 12:59:59.000000000 +0200 @@ -23,6 +23,10 @@ #include "isnanf-nolibm.h" #include "float+.h" +#ifdef gl_signbitf_OPTIMIZED_MACRO +# undef gl_signbitf +#endif + int gl_signbitf (float arg) { --- lib/signbitl.c.orig 2009-04-30 13:00:25.000000000 +0200 +++ lib/signbitl.c 2009-04-30 12:59:59.000000000 +0200 @@ -23,6 +23,10 @@ #include "isnanl-nolibm.h" #include "float+.h" +#ifdef gl_signbitl_OPTIMIZED_MACRO +# undef gl_signbitl +#endif + int gl_signbitl (long double arg) {