about summary refs log tree commit diff
path: root/sysdeps/ia64/fpu
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2016-11-28 23:12:49 +0000
committerJoseph Myers <joseph@codesourcery.com>2016-11-28 23:12:49 +0000
commit547e970409b18021b63bfded0ffd852b8dcc4d3a (patch)
tree3757c1abd15a33b65e3a0c80d60a8ce2c3058deb /sysdeps/ia64/fpu
parentc9070e6305c08365c5f8b604bdca39c699d70cfa (diff)
downloadglibc-547e970409b18021b63bfded0ffd852b8dcc4d3a.tar.gz
glibc-547e970409b18021b63bfded0ffd852b8dcc4d3a.tar.xz
glibc-547e970409b18021b63bfded0ffd852b8dcc4d3a.zip
Fix sysdeps/ia64/fpu/libm-symbols.h for inclusion in testcases.
IA64 builds in math/ use "-include libm-symbols.h".  This breaks the
signgam tests, which rely on undefining _LIBC and feature test macros
and defining _ISOMAC before including system headers to get them to
provide only ISO C declarations (libm-symbols.h ending up indirectly
including headers which result in this breaking); similarly, it breaks
C++ tests as some headers included from libm-symbols.h are not ready
for inclusion in C++ code.  This patch disables the contents of
libm-symbols.h if __STRICT_ANSI__ or __cplusplus are defined to avoid
this problem (this header can only test symbols defined before the
source file is processed, so can't test _ISOMAC because that's defined
within the source file, after this header is included).

Tested (compilation only) for ia64.

	* sysdeps/ia64/fpu/libm-symbols.h: Make contents conditional on
	[!__STRICT_ANSI__ && !__cplusplus].
Diffstat (limited to 'sysdeps/ia64/fpu')
-rw-r--r--sysdeps/ia64/fpu/libm-symbols.h38
1 files changed, 20 insertions, 18 deletions
diff --git a/sysdeps/ia64/fpu/libm-symbols.h b/sysdeps/ia64/fpu/libm-symbols.h
index 3cbc6c41b0..31d6f36de9 100644
--- a/sysdeps/ia64/fpu/libm-symbols.h
+++ b/sysdeps/ia64/fpu/libm-symbols.h
@@ -1,58 +1,60 @@
-#include <sysdep.h>
-#undef ret	/* get rid of the stupid "ret" macro; it breaks br.ret */
+#if !defined __STRICT_ANSI__ && !defined __cplusplus
+# include <sysdep.h>
+# undef ret	/* get rid of the stupid "ret" macro; it breaks br.ret */
 
 /* Support for compatible assembler handling.  */
 
-#define ASM_SIZE_DIRECTIVE(name) .size name,.-name
+# define ASM_SIZE_DIRECTIVE(name) .size name,.-name
 
-#define LOCAL_LIBM_ENTRY(name)			\
+# define LOCAL_LIBM_ENTRY(name)			\
 	.proc name;				\
  name:
 
-#define LOCAL_LIBM_END(name)			\
+# define LOCAL_LIBM_END(name)			\
 	.endp name;				\
  ASM_SIZE_DIRECTIVE(name)
 
 
-#define RODATA		.rodata
-#define LOCAL_OBJECT_START(name)		\
+# define RODATA		.rodata
+# define LOCAL_OBJECT_START(name)		\
    name:;					\
    .type name, @object
-#define LOCAL_OBJECT_END(name)			\
+# define LOCAL_OBJECT_END(name)			\
    ASM_SIZE_DIRECTIVE(name)
 
-#define GLOBAL_LIBM_ENTRY(name)			\
+# define GLOBAL_LIBM_ENTRY(name)		\
 	LOCAL_LIBM_ENTRY(name);			\
 	.global name
-#define GLOBAL_LIBM_END(name)		LOCAL_LIBM_END(name)
+# define GLOBAL_LIBM_END(name)		LOCAL_LIBM_END(name)
 
-#define INTERNAL_LIBM_ENTRY(name)		\
+# define INTERNAL_LIBM_ENTRY(name)		\
 	GLOBAL_LIBM_ENTRY(__libm_##name);	\
 	.global __libm_##name
-#define INTERNAL_LIBM_END(name)		GLOBAL_LIBM_END(__libm_##name)
+# define INTERNAL_LIBM_END(name)	GLOBAL_LIBM_END(__libm_##name)
 
-#define WEAK_LIBM_ENTRY(name)			\
+# define WEAK_LIBM_ENTRY(name)			\
 	.align 32;				\
 	LOCAL_LIBM_ENTRY(__##name);		\
 	.global __##name;			\
  __##name:
-#define WEAK_LIBM_END(name)			\
+# define WEAK_LIBM_END(name)			\
  weak_alias (__##name, name);			\
  .hidden __##name;				\
 	LOCAL_LIBM_END(__##name);		\
  ASM_SIZE_DIRECTIVE(__##name);			\
  .type __##name, @function
 
-#define GLOBAL_IEEE754_ENTRY(name)		\
+# define GLOBAL_IEEE754_ENTRY(name)		\
 	WEAK_LIBM_ENTRY(name);			\
 	.global __ieee754_##name;		\
 	.hidden __ieee754_##name;		\
  __ieee754_##name:
-#define GLOBAL_IEEE754_END(name)			\
+# define GLOBAL_IEEE754_END(name)			\
 	WEAK_LIBM_END(name);				\
  ASM_SIZE_DIRECTIVE(__ieee754_##name);			\
  .type __ieee754_##name, @function
 
-#if defined ASSEMBLER && IS_IN (libc)
-# define __libm_error_support	HIDDEN_JUMPTARGET(__libm_error_support)
+# if defined ASSEMBLER && IS_IN (libc)
+#  define __libm_error_support	HIDDEN_JUMPTARGET(__libm_error_support)
+# endif
 #endif