bug-gnulib
[Top][All Lists]
Advanced

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

signbitl: avoid link error


From: Bruno Haible
Subject: signbitl: avoid link error
Date: Sat, 25 Apr 2009 17:25:19 +0200
User-agent: KMail/1.9.9

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  <address@hidden>

        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)
 {




reply via email to

[Prev in Thread] Current Thread [Next in Thread]