aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@gmail.com>2012-01-07 12:55:20 -0500
committerUlrich Drepper <drepper@gmail.com>2012-01-07 12:55:20 -0500
commit664f8cb9d53fdc002f82a9d69a21a3d5eb63541c (patch)
treedd68ba87a4304b553fdcf7e2f8ff9cc92e73a3a6
parent7ae81d88f178fc554e6ef9835c352ec1feaae188 (diff)
downloadglibc-664f8cb9d53fdc002f82a9d69a21a3d5eb63541c.zip
glibc-664f8cb9d53fdc002f82a9d69a21a3d5eb63541c.tar.gz
glibc-664f8cb9d53fdc002f82a9d69a21a3d5eb63541c.tar.bz2
More IA-64 removal
-rw-r--r--ChangeLog6
-rw-r--r--elf/stackguard-macros.h5
-rw-r--r--elf/tls-macros.h133
-rw-r--r--elf/tst-auditmod1.c6
-rw-r--r--sysdeps/generic/ldsodefs.h12
-rw-r--r--sysdeps/unix/sysv/linux/kernel-features.h2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/sigpending.c2
-rw-r--r--sysdeps/unix/sysv/linux/x86_64/sigprocmask.c2
8 files changed, 31 insertions, 137 deletions
diff --git a/ChangeLog b/ChangeLog
index 49ccb14..40f29c0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2012-01-07 Ulrich Drepper <drepper@gmail.com>
+ * elf/tls-macros.h: Remove support for Alpha and IA-64. Should be in
+ files in ports.
+ * elf/stackguard-macros.h: Remove support for IA-64.
+ * elf/tst-auditmod1.c: Likewise.
+ * sysdeps/generic/ldsodefs.h: Likewise.
+
* sysdeps/unix/sysv/linux/configure.in: Ports should define
libc_cv_gcc_unwind_find_fde and arch_minimum_kernel in their
configure files.
diff --git a/elf/stackguard-macros.h b/elf/stackguard-macros.h
index 97db8bc..a9889cf 100644
--- a/elf/stackguard-macros.h
+++ b/elf/stackguard-macros.h
@@ -24,10 +24,7 @@
#elif defined __s390__
# define STACK_CHK_GUARD \
({ uintptr_t x; asm ("ear %0,%%a0; l %0,0x14(%0)" : "=a" (x)); x; })
-#elif defined __ia64__
-# define STACK_CHK_GUARD \
- ({ uintptr_t x; asm ("adds %0 = -8, r13;; ld8 %0 = [%0]" : "=r" (x)); x; })
-#else
+#elif !defined STACK_CHK_GUARD
extern uintptr_t __stack_chk_guard;
# define STACK_CHK_GUARD __stack_chk_guard
#endif
diff --git a/elf/tls-macros.h b/elf/tls-macros.h
index 781256d..ea6f14f 100644
--- a/elf/tls-macros.h
+++ b/elf/tls-macros.h
@@ -279,99 +279,6 @@
__l; })
#endif
-#elif defined __alpha__
-
-register void *__gp __asm__("$29");
-
-# define TLS_LE(x) \
- ({ int *__l; \
- asm ("call_pal 158\n\tlda $0," #x "($0)\t\t!tprel" : "=v"(__l)); \
- __l; })
-
-# define TLS_IE(x) \
- ({ char *__tp; unsigned long __o; \
- asm ("call_pal 158\n\tldq %1," #x "($gp)\t\t!gottprel" \
- : "=v"(__tp), "=r"(__o) : "r"(__gp)); \
- (int *)(__tp + __o); })
-
-# define TLS_LD(x) \
- ({ extern void *__tls_get_addr(void *); int *__l; void *__i; \
- asm ("lda %0," #x "($gp)\t\t!tlsldm" : "=r" (__i) : "r"(__gp)); \
- __i = __tls_get_addr(__i); \
- asm ("lda %0, " #x "(%1)\t\t!dtprel" : "=r"(__l) : "r"(__i)); \
- __l; })
-
-# define TLS_GD(x) \
- ({ extern void *__tls_get_addr(void *); void *__i; \
- asm ("lda %0," #x "($gp)\t\t!tlsgd" : "=r" (__i) : "r"(__gp)); \
- (int *) __tls_get_addr(__i); })
-
-
-#elif defined __ia64__
-
-# define TLS_LE(x) \
- ({ void *__l; \
- asm ("mov r2=r13\n\t" \
- ";;\n\t" \
- "addl %0=@tprel(" #x "),r2\n\t" \
- : "=r" (__l) : : "r2" ); __l; })
-
-# define TLS_IE(x) \
- ({ void *__l; \
- register long __gp asm ("gp"); \
- asm (";;\n\t" \
- "addl r16=@ltoff(@tprel(" #x ")),gp\n\t" \
- ";;\n\t" \
- "ld8 r17=[r16]\n\t" \
- ";;\n\t" \
- "add %0=r13,r17\n\t" \
- ";;\n\t" \
- : "=r" (__l) : "r" (__gp) : "r16", "r17" ); __l; })
-
-# define __TLS_CALL_CLOBBERS \
- "r2", "r3", "r8", "r9", "r10", "r11", "r14", "r15", "r16", "r17", \
- "r18", "r19", "r20", "r21", "r22", "r23", "r24", "r25", "r26", \
- "r27", "r28", "r29", "r30", "r31", \
- "p6", "p7", "p8", "p9", "p10", "p11", "p12", "p13", "p14", "p15", \
- "f6", "f7", "f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15", \
- "b6", "b7", \
- "out0", "out1", "out2", "out3", "out4", "out5", "out6", "out7"
-
-# define TLS_LD(x) \
- ({ void *__l; \
- register long __gp asm ("gp"); \
- asm (";;\n\t" \
- "mov loc0=gp\n\t" \
- "addl r16=@ltoff(@dtpmod(" #x ")),gp\n\t" \
- "addl out1=@dtprel(" #x "),r0\n\t" \
- ";;\n\t" \
- "ld8 out0=[r16]\n\t" \
- "br.call.sptk.many b0=__tls_get_addr" \
- ";;\n\t" \
- "mov gp=loc0\n\t" \
- "mov %0=r8\n\t" \
- ";;\n\t" \
- : "=r" (__l) : "r" (__gp) : "loc0", __TLS_CALL_CLOBBERS); \
- __l; })
-
-# define TLS_GD(x) \
- ({ void *__l; \
- register long __gp asm ("gp"); \
- asm (";;\n\t" \
- "mov loc0=gp\n\t" \
- "addl r16=@ltoff(@dtpmod(" #x ")),gp\n\t" \
- "addl r17=@ltoff(@dtprel(" #x ")),gp\n\t" \
- ";;\n\t" \
- "ld8 out0=[r16]\n\t" \
- "ld8 out1=[r17]\n\t" \
- "br.call.sptk.many b0=__tls_get_addr" \
- ";;\n\t" \
- "mov gp=loc0\n\t" \
- "mov %0=r8\n\t" \
- ";;\n\t" \
- : "=r" (__l) : "r" (__gp) : "loc0", __TLS_CALL_CLOBBERS); \
- __l; })
-
#elif defined __sparc__ && !defined __arch64__
# define TLS_LE(x) \
@@ -546,14 +453,14 @@ register void *__gp __asm__("$29");
"0:\t.quad " #x "@tlsldm\n\t" \
".quad " #x "@dtpoff\n" \
"1:\tlgr %1,%%r12\n\t" \
- "larl %%r12,_GLOBAL_OFFSET_TABLE_\n\t" \
- "lg %%r2,0(%0)\n\t" \
+ "larl %%r12,_GLOBAL_OFFSET_TABLE_\n\t" \
+ "lg %%r2,0(%0)\n\t" \
"brasl %%r14,__tls_get_offset@plt:tls_ldcall:" #x "\n\t" \
"lg %0,8(%0)\n\t" \
"algr %0,%%r2\n\t" \
- "lgr %%r12,%1" \
+ "lgr %%r12,%1" \
: "=&a" (__offset), "=&a" (__save12) \
- : : "cc", "0", "1", "2", "3", "4", "5", "14" ); \
+ : : "cc", "0", "1", "2", "3", "4", "5", "14" ); \
(int *) (__builtin_thread_pointer() + __offset); })
# else
# define TLS_LD(x) \
@@ -562,7 +469,7 @@ register void *__gp __asm__("$29");
"0:\t.quad " #x "@tlsldm\n\t" \
".quad " #x "@dtpoff\n" \
"1:\tlarl %%r12,_GLOBAL_OFFSET_TABLE_\n\t" \
- "lg %%r2,0(%0)\n\t" \
+ "lg %%r2,0(%0)\n\t" \
"brasl %%r14,__tls_get_offset@plt:tls_ldcall:" #x "\n\t" \
"lg %0,8(%0)\n\t" \
"algr %0,%%r2" \
@@ -578,12 +485,12 @@ register void *__gp __asm__("$29");
"0:\t.quad " #x "@tlsgd\n" \
"1:\tlgr %1,%%r12\n\t" \
"larl %%r12,_GLOBAL_OFFSET_TABLE_\n\t" \
- "lg %%r2,0(%0)\n\t" \
+ "lg %%r2,0(%0)\n\t" \
"brasl %%r14,__tls_get_offset@plt:tls_gdcall:" #x "\n\t" \
- "lgr %0,%%r2\n\t" \
- "lgr %%r12,%1" \
+ "lgr %0,%%r2\n\t" \
+ "lgr %%r12,%1" \
: "=&a" (__offset), "=&a" (__save12) \
- : : "cc", "0", "1", "2", "3", "4", "5", "14" ); \
+ : : "cc", "0", "1", "2", "3", "4", "5", "14" ); \
(int *) (__builtin_thread_pointer() + __offset); })
# else
# define TLS_GD(x) \
@@ -593,7 +500,7 @@ register void *__gp __asm__("$29");
"1:\tlarl %%r12,_GLOBAL_OFFSET_TABLE_\n\t" \
"lg %%r2,0(%0)\n\t" \
"brasl %%r14,__tls_get_offset@plt:tls_gdcall:" #x "\n\t" \
- "lgr %0,%%r2" \
+ "lgr %0,%%r2" \
: "=&a" (__offset) \
: : "cc", "0", "1", "2", "3", "4", "5", "12", "14" ); \
(int *) (__builtin_thread_pointer() + __offset); })
@@ -638,16 +545,16 @@ register void *__gp __asm__("$29");
".long " #x "@tlsldm\n\t" \
".long " #x "@dtpoff\n" \
"1:\tlr %1,%%r12\n\t" \
- "l %%r12,0(%0)\n\t" \
- "la %%r12,0(%%r12,%0)\n\t" \
+ "l %%r12,0(%0)\n\t" \
+ "la %%r12,0(%%r12,%0)\n\t" \
"l %%r1,4(%0)\n\t" \
"l %%r2,8(%0)\n\t" \
"bas %%r14,0(%%r1,%0):tls_ldcall:" #x "\n\t" \
"l %0,12(%0)\n\t" \
"alr %0,%%r2\n\t" \
- "lr %%r12,%1" \
+ "lr %%r12,%1" \
: "=&a" (__offset), "=&a" (__save12) \
- : : "cc", "0", "1", "2", "3", "4", "5" ); \
+ : : "cc", "0", "1", "2", "3", "4", "5" ); \
(int *) (__builtin_thread_pointer() + __offset); })
# else
# define TLS_LD(x) \
@@ -675,15 +582,15 @@ register void *__gp __asm__("$29");
".long __tls_get_offset@plt-0b\n\t" \
".long " #x "@tlsgd\n" \
"1:\tlr %1,%%r12\n\t" \
- "l %%r12,0(%0)\n\t" \
- "la %%r12,0(%%r12,%0)\n\t" \
+ "l %%r12,0(%0)\n\t" \
+ "la %%r12,0(%%r12,%0)\n\t" \
"l %%r1,4(%0)\n\t" \
"l %%r2,8(%0)\n\t" \
"bas %%r14,0(%%r1,%0):tls_gdcall:" #x "\n\t" \
- "lr %0,%%r2\n\t" \
- "lr %%r12,%1" \
+ "lr %0,%%r2\n\t" \
+ "lr %%r12,%1" \
: "=&a" (__offset), "=&a" (__save12) \
- : : "cc", "0", "1", "2", "3", "4", "5" ); \
+ : : "cc", "0", "1", "2", "3", "4", "5" ); \
(int *) (__builtin_thread_pointer() + __offset); })
# else
# define TLS_GD(x) \
@@ -696,7 +603,7 @@ register void *__gp __asm__("$29");
"l %%r1,4(%0)\n\t" \
"l %%r2,8(%0)\n\t" \
"bas %%r14,0(%%r1):tls_gdcall:" #x "\n\t" \
- "lr %0,%%r2" \
+ "lr %0,%%r2" \
: "=&a" (__offset) : : "cc", "0", "1", "2", "3", "4", "5", "12" ); \
(int *) (__builtin_thread_pointer() + __offset); })
# endif
diff --git a/elf/tst-auditmod1.c b/elf/tst-auditmod1.c
index 2d39df2..69da278 100644
--- a/elf/tst-auditmod1.c
+++ b/elf/tst-auditmod1.c
@@ -150,12 +150,6 @@ la_symbind64 (Elf64_Sym *sym, unsigned int ndx, uintptr_t *refcook,
# define La_regs La_s390_64_regs
# define La_retval La_s390_64_retval
# define int_retval lrv_r2
-#elif defined __ia64__
-# define pltenter la_ia64_gnu_pltenter
-# define pltexit la_ia64_gnu_pltexit
-# define La_regs La_ia64_regs
-# define La_retval La_ia64_retval
-# define int_retval lrv_r8
#elif defined __sparc__ && __WORDSIZE == 32
# define pltenter la_sparc32_gnu_pltenter
# define pltexit la_sparc32_gnu_pltexit
diff --git a/sysdeps/generic/ldsodefs.h b/sysdeps/generic/ldsodefs.h
index b24bff3..4128058 100644
--- a/sysdeps/generic/ldsodefs.h
+++ b/sysdeps/generic/ldsodefs.h
@@ -1,5 +1,5 @@
/* Run-time dynamic linker data structures for loaded ELF shared objects.
- Copyright (C) 1995-2009, 2010, 2011 Free Software Foundation, Inc.
+ Copyright (C) 1995-2009, 2010, 2011, 2012 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -200,8 +200,6 @@ struct La_s390_32_regs;
struct La_s390_32_retval;
struct La_s390_64_regs;
struct La_s390_64_retval;
-struct La_ia64_regs;
-struct La_ia64_retval;
struct La_sparc32_regs;
struct La_sparc32_retval;
struct La_sparc64_regs;
@@ -254,10 +252,6 @@ struct audit_ifaces
uintptr_t *, struct La_s390_64_regs *,
unsigned int *, const char *name,
long int *framesizep);
- Elf64_Addr (*ia64_gnu_pltenter) (Elf64_Sym *, unsigned int, uintptr_t *,
- uintptr_t *, struct La_ia64_regs *,
- unsigned int *, const char *name,
- long int *framesizep);
Elf32_Addr (*sparc32_gnu_pltenter) (Elf32_Sym *, unsigned int,
uintptr_t *, uintptr_t *,
const struct La_sparc32_regs *,
@@ -307,10 +301,6 @@ struct audit_ifaces
const struct La_s390_64_regs *,
struct La_s390_64_retval *,
const char *);
- unsigned int (*ia64_gnu_pltexit) (Elf64_Sym *, unsigned int, uintptr_t *,
- uintptr_t *,
- const struct La_ia64_regs *,
- struct La_ia64_retval *, const char *);
unsigned int (*sparc32_gnu_pltexit) (Elf32_Sym *, unsigned int,
uintptr_t *, uintptr_t *,
const struct La_sparc32_regs *,
diff --git a/sysdeps/unix/sysv/linux/kernel-features.h b/sysdeps/unix/sysv/linux/kernel-features.h
index ecc1d2c..2c1b0a8 100644
--- a/sysdeps/unix/sysv/linux/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/kernel-features.h
@@ -274,7 +274,7 @@
their availability with one define. The changes were made first
for i386 and the have to be done separately for the other archs.
For i386 we pick 2.5.50 as the first version with support.
- For ia64, s390*, PPC, x86-64, and SH we pick 2.5.64 as the first
+ For s390*, PPC, x86-64, and SH we pick 2.5.64 as the first
version with support. */
#if ((__LINUX_KERNEL_VERSION >= 132402 && defined __i386__) \
|| (__LINUX_KERNEL_VERSION >= 132416 \
diff --git a/sysdeps/unix/sysv/linux/x86_64/sigpending.c b/sysdeps/unix/sysv/linux/x86_64/sigpending.c
index f150806..021ce4c 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sigpending.c
+++ b/sysdeps/unix/sysv/linux/x86_64/sigpending.c
@@ -16,7 +16,7 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
-/* Linux/ia64 only has rt signals, thus we do not even want to try falling
+/* Linux/x86_64 only has rt signals, thus we do not even want to try falling
back to the old style signals as the default Linux handler does. */
#include <errno.h>
diff --git a/sysdeps/unix/sysv/linux/x86_64/sigprocmask.c b/sysdeps/unix/sysv/linux/x86_64/sigprocmask.c
index 22ddc75..b6624bb 100644
--- a/sysdeps/unix/sysv/linux/x86_64/sigprocmask.c
+++ b/sysdeps/unix/sysv/linux/x86_64/sigprocmask.c
@@ -17,7 +17,7 @@
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
-/* Linux/ia64 only has rt signals, thus we do not even want to try falling
+/* Linux/x86_64 only has rt signals, thus we do not even want to try falling
back to the old style signals as the default Linux handler does. */
#include <errno.h>