aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2015-11-20 23:46:23 +0000
committerJoseph Myers <joseph@codesourcery.com>2015-11-20 23:46:23 +0000
commit2d2c271aea8edd4147793ee6eea82b4ebe2143ae (patch)
tree42d9eb83f9fd70cfff475252d5ab043631d28808
parentd709042a6e5ab3c360280faad6f9538a34dc8eea (diff)
downloadglibc-2d2c271aea8edd4147793ee6eea82b4ebe2143ae.tar
glibc-2d2c271aea8edd4147793ee6eea82b4ebe2143ae.tar.gz
glibc-2d2c271aea8edd4147793ee6eea82b4ebe2143ae.tar.bz2
glibc-2d2c271aea8edd4147793ee6eea82b4ebe2143ae.zip
Fix math_private.h multiple include guards.
Various math_private.h headers are guarded by "#ifndef _MATH_PRIVATE_H", but never define the macro. Nothing else defines the macro either (the generic math_private.h that they include defines a different macro, _MATH_PRIVATE_H_), so those guards are ineffective. With the recent inclusion of s_sin.c in s_sincos.c, this breaks the build for MIPS, since the build of s_sincos.c ends up including <math_private.h> twice and the MIPS version defines inline functions such as libc_feholdexcept_mips, without a separate fenv_private.h header with its own guards such as some architectures have. This patch fixes all the problem headers to use architecture-specific guard macro names, and to define those macros in the headers they guard, just as some architectures already do. Tested for x86 (testsuite, and that installed shared libraries are unchanged by the patch), and for mips64 (that it fixes the build). * sysdeps/arm/math_private.h [!_MATH_PRIVATE_H]: Change guard to [!ARM_MATH_PRIVATE_H]. [!ARM_MATH_PRIVATE_H] (ARM_MATH_PRIVATE_H): Define macro. * sysdeps/hppa/math_private.h [!_MATH_PRIVATE_H]: Change guard to [!HPPA_MATH_PRIVATE_H]. [!HPPA_MATH_PRIVATE_H] (HPPA_MATH_PRIVATE_H): Define macro. * sysdeps/i386/fpu/math_private.h [!_MATH_PRIVATE_H]: Change guard to [!I386_MATH_PRIVATE_H]. [!I386_MATH_PRIVATE_H] (I386_MATH_PRIVATE_H): Define macro. * sysdeps/m68k/m680x0/fpu/math_private.h [!_MATH_PRIVATE_H]: Change guard to [!M68K_MATH_PRIVATE_H]. [!M68K_MATH_PRIVATE_H] (M68K_MATH_PRIVATE_H): Define macro. * sysdeps/microblaze/math_private.h [!_MATH_PRIVATE_H]: Change guard to [!MICROBLAZE_MATH_PRIVATE_H]. [!MICROBLAZE_MATH_PRIVATE_H] (MICROBLAZE_MATH_PRIVATE_H): Define macro. * sysdeps/mips/math_private.h [!_MATH_PRIVATE_H]: Change guard to [!MIPS_MATH_PRIVATE_H]. [!MIPS_MATH_PRIVATE_H] (MIPS_MATH_PRIVATE_H): Define macro. * sysdeps/nios2/math_private.h [!_MATH_PRIVATE_H]: Change guard to [!NIO2_MATH_PRIVATE_H]. [!NIO2_MATH_PRIVATE_H] (NIO2_MATH_PRIVATE_H): Define macro. * sysdeps/tile/math_private.h [!_MATH_PRIVATE_H]: Change guard to [!TILE_MATH_PRIVATE_H]. [!TILE_MATH_PRIVATE_H] (TILE_MATH_PRIVATE_H): Define macro.
-rw-r--r--ChangeLog26
-rw-r--r--sysdeps/arm/math_private.h3
-rw-r--r--sysdeps/hppa/math_private.h3
-rw-r--r--sysdeps/i386/fpu/math_private.h3
-rw-r--r--sysdeps/m68k/m680x0/fpu/math_private.h3
-rw-r--r--sysdeps/microblaze/math_private.h3
-rw-r--r--sysdeps/mips/math_private.h3
-rw-r--r--sysdeps/nios2/math_private.h3
-rw-r--r--sysdeps/tile/math_private.h3
9 files changed, 42 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index 51818799ea..c0235f3cde 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,31 @@
2015-11-20 Joseph Myers <joseph@codesourcery.com>
+ * sysdeps/arm/math_private.h [!_MATH_PRIVATE_H]: Change guard to
+ [!ARM_MATH_PRIVATE_H].
+ [!ARM_MATH_PRIVATE_H] (ARM_MATH_PRIVATE_H): Define macro.
+ * sysdeps/hppa/math_private.h [!_MATH_PRIVATE_H]: Change guard to
+ [!HPPA_MATH_PRIVATE_H].
+ [!HPPA_MATH_PRIVATE_H] (HPPA_MATH_PRIVATE_H): Define macro.
+ * sysdeps/i386/fpu/math_private.h [!_MATH_PRIVATE_H]: Change guard
+ to [!I386_MATH_PRIVATE_H].
+ [!I386_MATH_PRIVATE_H] (I386_MATH_PRIVATE_H): Define macro.
+ * sysdeps/m68k/m680x0/fpu/math_private.h [!_MATH_PRIVATE_H]:
+ Change guard to [!M68K_MATH_PRIVATE_H].
+ [!M68K_MATH_PRIVATE_H] (M68K_MATH_PRIVATE_H): Define macro.
+ * sysdeps/microblaze/math_private.h [!_MATH_PRIVATE_H]: Change
+ guard to [!MICROBLAZE_MATH_PRIVATE_H].
+ [!MICROBLAZE_MATH_PRIVATE_H] (MICROBLAZE_MATH_PRIVATE_H): Define
+ macro.
+ * sysdeps/mips/math_private.h [!_MATH_PRIVATE_H]: Change guard to
+ [!MIPS_MATH_PRIVATE_H].
+ [!MIPS_MATH_PRIVATE_H] (MIPS_MATH_PRIVATE_H): Define macro.
+ * sysdeps/nios2/math_private.h [!_MATH_PRIVATE_H]: Change guard to
+ [!NIO2_MATH_PRIVATE_H].
+ [!NIO2_MATH_PRIVATE_H] (NIO2_MATH_PRIVATE_H): Define macro.
+ * sysdeps/tile/math_private.h [!_MATH_PRIVATE_H]: Change guard to
+ [!TILE_MATH_PRIVATE_H].
+ [!TILE_MATH_PRIVATE_H] (TILE_MATH_PRIVATE_H): Define macro.
+
[BZ #15421]
* sysdeps/ieee754/s_signgam.c (signgam): Rename to __signgam,
initialize with 0 and define as weak alias of __signgam.
diff --git a/sysdeps/arm/math_private.h b/sysdeps/arm/math_private.h
index 541a7f8d93..c175b15601 100644
--- a/sysdeps/arm/math_private.h
+++ b/sysdeps/arm/math_private.h
@@ -1,4 +1,5 @@
-#ifndef _MATH_PRIVATE_H
+#ifndef ARM_MATH_PRIVATE_H
+#define ARM_MATH_PRIVATE_H 1
#include "fenv_private.h"
#include_next <math_private.h>
diff --git a/sysdeps/hppa/math_private.h b/sysdeps/hppa/math_private.h
index fbcc8841b4..457495e786 100644
--- a/sysdeps/hppa/math_private.h
+++ b/sysdeps/hppa/math_private.h
@@ -16,7 +16,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
-#ifndef _MATH_PRIVATE_H
+#ifndef HPPA_MATH_PRIVATE_H
+#define HPPA_MATH_PRIVATE_H 1
/* One of the few architectures where the meaning of the quiet/signaling bit is
inverse to IEEE 754-2008 (as well as common practice for IEEE 754-1985). */
diff --git a/sysdeps/i386/fpu/math_private.h b/sysdeps/i386/fpu/math_private.h
index 541a7f8d93..485214391f 100644
--- a/sysdeps/i386/fpu/math_private.h
+++ b/sysdeps/i386/fpu/math_private.h
@@ -1,4 +1,5 @@
-#ifndef _MATH_PRIVATE_H
+#ifndef I386_MATH_PRIVATE_H
+#define I386_MATH_PRIVATE_H 1
#include "fenv_private.h"
#include_next <math_private.h>
diff --git a/sysdeps/m68k/m680x0/fpu/math_private.h b/sysdeps/m68k/m680x0/fpu/math_private.h
index 217de2ecc2..2b7909535e 100644
--- a/sysdeps/m68k/m680x0/fpu/math_private.h
+++ b/sysdeps/m68k/m680x0/fpu/math_private.h
@@ -1,4 +1,5 @@
-#ifndef _MATH_PRIVATE_H
+#ifndef M68K_MATH_PRIVATE_H
+#define M68K_MATH_PRIVATE_H 1
#define math_opt_barrier(x) \
({ __typeof (x) __x; \
diff --git a/sysdeps/microblaze/math_private.h b/sysdeps/microblaze/math_private.h
index 2cfaacad1b..73e59df5b9 100644
--- a/sysdeps/microblaze/math_private.h
+++ b/sysdeps/microblaze/math_private.h
@@ -1,4 +1,5 @@
-#ifndef _MATH_PRIVATE_H
+#ifndef MICROBLAZE_MATH_PRIVATE_H
+#define MICROBLAZE_MATH_PRIVATE_H 1
/* Suppress use of exceptions here to avoid build errors if the FE_*
macros aren't definied. Only allow rounding modes implemented for
diff --git a/sysdeps/mips/math_private.h b/sysdeps/mips/math_private.h
index 3db0273420..2f544245b7 100644
--- a/sysdeps/mips/math_private.h
+++ b/sysdeps/mips/math_private.h
@@ -16,7 +16,8 @@
License along with the GNU C Library; if not, see
<http://www.gnu.org/licenses/>. */
-#ifndef _MATH_PRIVATE_H
+#ifndef MIPS_MATH_PRIVATE_H
+#define MIPS_MATH_PRIVATE_H 1
#ifdef __mips_nan2008
/* MIPS aligned to IEEE 754-2008. */
diff --git a/sysdeps/nios2/math_private.h b/sysdeps/nios2/math_private.h
index a89db448dd..a32579ff47 100644
--- a/sysdeps/nios2/math_private.h
+++ b/sysdeps/nios2/math_private.h
@@ -1,4 +1,5 @@
-#ifndef _MATH_PRIVATE_H
+#ifndef NIO2_MATH_PRIVATE_H
+#define NIO2_MATH_PRIVATE_H 1
/* Suppress use of exceptions here to avoid build errors if the FE_*
macros aren't defined. Only allow rounding modes implemented for Nios II.
diff --git a/sysdeps/tile/math_private.h b/sysdeps/tile/math_private.h
index 9b6b68b324..99daec4093 100644
--- a/sysdeps/tile/math_private.h
+++ b/sysdeps/tile/math_private.h
@@ -1,4 +1,5 @@
-#ifndef _MATH_PRIVATE_H
+#ifndef TILE_MATH_PRIVATE_H
+#define TILE_MATH_PRIVATE_H 1
/* Internally, we suppress any use of exception or rounding other
than what is supported by the hardware. This does mean that some