Hi, The gl_signbitl function gives a link error if the config.h file aliases this function, e.g. #define gl_signbitl libfoo_gl_signbitl Such aliases are used when making a library namespace clean.
I'm fixing it through this patch. 2009-04-25 Bruno Haible <br...@clisp.org> 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. --- lib/math.in.h.orig 2009-04-25 17:19:59.000000000 +0200 +++ lib/math.in.h 2009-04-25 17:01:15.000000000 +0200 @@ -1,6 +1,6 @@ /* A GNU-like <math.h>. - Copyright (C) 2002-2003, 2007-2008 Free Software Foundation, Inc. + Copyright (C) 2002-2003, 2007-2009 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -518,7 +518,7 @@ extern int gl_signbitd (double arg); extern int gl_signbitl (long double arg); # if __GNUC__ >= 2 && !__STRICT_ANSI__ -# if defined FLT_SIGNBIT_WORD && defined FLT_SIGNBIT_BIT +# if defined FLT_SIGNBIT_WORD && defined FLT_SIGNBIT_BIT && !defined gl_signbitf # define gl_signbitf(arg) \ ({ union { float _value; \ unsigned int _word[(sizeof (float) + sizeof (unsigned int) - 1) / sizeof (unsigned int)]; \ @@ -527,7 +527,7 @@ (_m._word[FLT_SIGNBIT_WORD] >> FLT_SIGNBIT_BIT) & 1; \ }) # endif -# if defined DBL_SIGNBIT_WORD && defined DBL_SIGNBIT_BIT +# if defined DBL_SIGNBIT_WORD && defined DBL_SIGNBIT_BIT && !defined gl_signbitd # define gl_signbitd(arg) \ ({ union { double _value; \ unsigned int _word[(sizeof (double) + sizeof (unsigned int) - 1) / sizeof (unsigned int)]; \ @@ -536,7 +536,7 @@ (_m._word[DBL_SIGNBIT_WORD] >> DBL_SIGNBIT_BIT) & 1; \ }) # endif -# if defined LDBL_SIGNBIT_WORD && defined LDBL_SIGNBIT_BIT +# if defined LDBL_SIGNBIT_WORD && defined LDBL_SIGNBIT_BIT && !defined gl_signbitl # 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-25 17:19:59.000000000 +0200 +++ lib/signbitd.c 2009-04-25 17:01:45.000000000 +0200 @@ -1,5 +1,5 @@ /* signbit() macro: Determine the sign bit of a floating-point number. - Copyright (C) 2007-2008 Free Software Foundation, Inc. + Copyright (C) 2007-2009 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -23,8 +23,6 @@ #include "isnand-nolibm.h" #include "float+.h" -#undef gl_signbitd - int gl_signbitd (double arg) { --- lib/signbitf.c.orig 2009-04-25 17:19:59.000000000 +0200 +++ lib/signbitf.c 2009-04-25 17:01:46.000000000 +0200 @@ -1,5 +1,5 @@ /* signbit() macro: Determine the sign bit of a floating-point number. - Copyright (C) 2007 Free Software Foundation, Inc. + Copyright (C) 2007, 2009 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -23,8 +23,6 @@ #include "isnanf-nolibm.h" #include "float+.h" -#undef gl_signbitf - int gl_signbitf (float arg) { --- lib/signbitl.c.orig 2009-04-25 17:19:59.000000000 +0200 +++ lib/signbitl.c 2009-04-25 17:01:46.000000000 +0200 @@ -1,5 +1,5 @@ /* signbit() macro: Determine the sign bit of a floating-point number. - Copyright (C) 2007 Free Software Foundation, Inc. + Copyright (C) 2007, 2009 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -23,8 +23,6 @@ #include "isnanl-nolibm.h" #include "float+.h" -#undef gl_signbitl - int gl_signbitl (long double arg) {