More IA-64 removal

This commit is contained in:
Ulrich Drepper 2012-01-07 12:55:20 -05:00
parent 7ae81d88f1
commit 664f8cb9d5
8 changed files with 31 additions and 137 deletions

View File

@ -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.

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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 *,

View File

@ -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 \

View File

@ -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>

View File

@ -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>