about summary refs log tree commit diff
path: root/sysdeps/alpha/fpu
diff options
context:
space:
mode:
authorRichard Henderson <rth@redhat.com>2004-01-13 09:15:58 +0000
committerRichard Henderson <rth@redhat.com>2004-01-13 09:15:58 +0000
commit141749ca169d3a5f3a328d3cb91473e3af4256b1 (patch)
tree71d67ad08bbdd27d1e3c93665d0c9d03b337e919 /sysdeps/alpha/fpu
parent1705f0a392f382bf3facda8d95cc7547ef708bf7 (diff)
downloadglibc-141749ca169d3a5f3a328d3cb91473e3af4256b1.tar.gz
glibc-141749ca169d3a5f3a328d3cb91473e3af4256b1.tar.xz
glibc-141749ca169d3a5f3a328d3cb91473e3af4256b1.zip
* sysdeps/alpha/bits/atomic.h (__arch_compare_and_exchange_xxx_8_int): Cast old up to uint64_t before back down to inner width. (__arch_compare_and_exchange_xxx_16_int): Likewise. (__arch_compare_and_exchange_xxx_32_int): Likewise. (__arch_compare_and_exchange_xxx_64_int): Likewise. (__arch_compare_and_exchange_val_8_int): Cast result to the type of the memory. (__arch_compare_and_exchange_val_16_int): Likewise. (__arch_compare_and_exchange_val_32_int): Likewise. (__arch_compare_and_exchange_val_64_int): Likewise. (atomic_compare_and_exchange_bool_acq): Use __atomic_bool_bysize. (atomic_compare_and_exchange_bool_rel): Likewise.
        * sysdeps/unix/alpha/sysdep.h: Select inline_syscall_r0_asm
        based on HAVE___THREAD instead of USE_TLS.

        * sysdeps/unix/sysv/linux/alpha/adjtime.c (ADJTIMEX32): New.
        (__adjtimex_tv64): Use it.

        * sysdeps/unix/sysv/linux/alpha/semctl.c (__new_semctl): Cast
        to void* rather than directly to the compatibility structure type.
        * sysdeps/unix/sysv/linux/alpha/shmctl.c (__new_shmctl): Likewise.

        * sysdeps/unix/sysv/linux/alpha/sigaction.c (struct kernel_sigaction):
        Forward declare.
	* sysdeps/alpha/bits/atomic.h (__arch_compare_and_exchange_xxx_8_int):
	Cast old up to uint64_t before back down to inner width.
	(__arch_compare_and_exchange_xxx_16_int): Likewise.
	(__arch_compare_and_exchange_xxx_32_int): Likewise.
	(__arch_compare_and_exchange_xxx_64_int): Likewise.
	(__arch_compare_and_exchange_val_8_int): Cast result to
	the type of the memory.
	(__arch_compare_and_exchange_val_16_int): Likewise.
	(__arch_compare_and_exchange_val_32_int): Likewise.
	(__arch_compare_and_exchange_val_64_int): Likewise.
	(atomic_compare_and_exchange_bool_acq): Use __atomic_bool_bysize.
	(atomic_compare_and_exchange_bool_rel): Likewise.

	* sysdeps/unix/alpha/sysdep.h: Select inline_syscall_r0_asm
	based on HAVE___THREAD instead of USE_TLS.

	* sysdeps/unix/sysv/linux/alpha/adjtime.c (ADJTIMEX32): New.
	(__adjtimex_tv64): Use it.

	* sysdeps/unix/sysv/linux/alpha/semctl.c (__new_semctl): Cast
	to void* rather than directly to the compatibility structure type.
	* sysdeps/unix/sysv/linux/alpha/shmctl.c (__new_shmctl): Likewise.

	* sysdeps/unix/sysv/linux/alpha/sigaction.c (struct kernel_sigaction):
	Forward declare.

2004-01-13  Richard Henderson  <rth@redhat.com>

	    Paolo Bonzini  <bonzini@gnu.org>
	Compare the node sets after all the other comparisons.
	the old thread-m.h header too.
Diffstat (limited to 'sysdeps/alpha/fpu')
-rw-r--r--sysdeps/alpha/fpu/bits/mathdef.h26
1 files changed, 25 insertions, 1 deletions
diff --git a/sysdeps/alpha/fpu/bits/mathdef.h b/sysdeps/alpha/fpu/bits/mathdef.h
index 515b93a562..7979822996 100644
--- a/sysdeps/alpha/fpu/bits/mathdef.h
+++ b/sysdeps/alpha/fpu/bits/mathdef.h
@@ -61,10 +61,34 @@ typedef double double_t;
 # define FP_ILOGB0     (-2147483647)
 # define FP_ILOGBNAN   (2147483647)
 
-#endif	/* ISO C99 */
+#endif	/* ISO C99 && MATH_H */
 
 #ifndef __NO_LONG_DOUBLE_MATH
 /* Signal that we do not really have a `long double'.  The disables the
    declaration of all the `long double' function variants.  */
 # define __NO_LONG_DOUBLE_MATH	1
 #endif
+
+#if defined _COMPLEX_H && !defined _COMPLEX_H_MATHDEF
+# define _COMPLEX_H_MATHDEF 1
+# if defined(__GNUC__) && !__GNUC_PREREQ(3,4)
+
+/* Due to an ABI change, we need to remap the complex float symbols.  */
+#  define _Mdouble_		float
+#  define __MATHCALL(function, args) \
+    __MATHDECL (_Complex float, function, args)
+#  define __MATHDECL(type, function, args) \
+    __MATHDECL_1(type, function##f, args, __c1_##function##f); \
+    __MATHDECL_1(type, __##function##f, args, __c1_##function##f)
+#  define __MATHDECL_1(type, function, args, alias) \
+    extern type function args __asm__(#alias) __THROW
+
+#  include <bits/cmathcalls.h>
+
+#  undef _Mdouble_
+#  undef __MATHCALL
+#  undef __MATHDECL
+#  undef __MATHDECL_1
+
+# endif /* GNUC before 3.4 */
+#endif /* COMPLEX_H */