diff options
author | Ulrich Drepper <drepper@gmail.com> | 2012-01-07 12:55:20 -0500 |
---|---|---|
committer | Ulrich Drepper <drepper@gmail.com> | 2012-01-07 12:55:20 -0500 |
commit | 664f8cb9d53fdc002f82a9d69a21a3d5eb63541c (patch) | |
tree | dd68ba87a4304b553fdcf7e2f8ff9cc92e73a3a6 | |
parent | 7ae81d88f178fc554e6ef9835c352ec1feaae188 (diff) | |
download | glibc-664f8cb9d53fdc002f82a9d69a21a3d5eb63541c.tar glibc-664f8cb9d53fdc002f82a9d69a21a3d5eb63541c.tar.gz glibc-664f8cb9d53fdc002f82a9d69a21a3d5eb63541c.tar.bz2 glibc-664f8cb9d53fdc002f82a9d69a21a3d5eb63541c.zip |
More IA-64 removal
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | elf/stackguard-macros.h | 5 | ||||
-rw-r--r-- | elf/tls-macros.h | 133 | ||||
-rw-r--r-- | elf/tst-auditmod1.c | 6 | ||||
-rw-r--r-- | sysdeps/generic/ldsodefs.h | 12 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/kernel-features.h | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/x86_64/sigpending.c | 2 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/x86_64/sigprocmask.c | 2 |
8 files changed, 31 insertions, 137 deletions
@@ -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 97db8bc22a..a9889cf7b2 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 781256db1e..ea6f14f56b 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 2d39df21e8..69da278f28 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 b24bff37ee..4128058ca6 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 ecc1d2cb8a..2c1b0a8354 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 f1508069f3..021ce4cb63 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 22ddc75104..b6624bbb21 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> |