From 8466459037515723689f06c2cf7a79f1083f5d21 Mon Sep 17 00:00:00 2001 From: Joseph Myers Date: Sat, 21 Apr 2012 10:03:39 -0700 Subject: [PATCH] Remove ARM EABI/old-ABI conditionals. --- ChangeLog.arm | 10 ++++++++++ sysdeps/arm/shlib-versions | 1 - sysdeps/arm/start.S | 5 +---- sysdeps/arm/sysdep.h | 8 +++----- sysdeps/unix/sysv/linux/arm/clone.S | 21 +-------------------- sysdeps/unix/sysv/linux/arm/ldsodefs.h | 4 ---- sysdeps/unix/sysv/linux/arm/sigaction.c | 22 ++++++++-------------- sysdeps/unix/sysv/linux/arm/vfork.S | 6 +----- 8 files changed, 24 insertions(+), 53 deletions(-) diff --git a/ChangeLog.arm b/ChangeLog.arm index d6489271b1..908d0bd27c 100644 --- a/ChangeLog.arm +++ b/ChangeLog.arm @@ -1,5 +1,15 @@ 2012-04-21 Joseph Myers + [BZ #13556] + * sysdeps/arm/shlib-versions (arm.*-.*-linux.*): Remove old-ABI + entry. + * sysdeps/arm/start.S: Remove __ARM_EABI__ conditionals. + * sysdeps/arm/sysdep.h: Likewise. + * sysdeps/unix/sysv/linux/arm/clone.S: Likewise. + * sysdeps/unix/sysv/linux/arm/ldsodefs.h: Likewise. + * sysdeps/unix/sysv/linux/arm/sigaction.c: Likewise. + * sysdeps/unix/sysv/linux/arm/vfork.S: Likewise. + [BZ #13556] * sysdeps/arm/preconfigure: Don't include /eabi in $machine. * sysdeps/arm/Makefile [subdir = elf] (sysdep_routines): Add diff --git a/sysdeps/arm/shlib-versions b/sysdeps/arm/shlib-versions index 491dd0adc7..626d58bdaa 100644 --- a/sysdeps/arm/shlib-versions +++ b/sysdeps/arm/shlib-versions @@ -1,4 +1,3 @@ arm.*-.*-linux-gnueabi.* DEFAULT GLIBC_2.4 arm.*-.*-linux-gnueabi.* ld=ld-linux.so.3 -arm.*-.*-linux.* ld=ld-linux.so.2 diff --git a/sysdeps/arm/start.S b/sysdeps/arm/start.S index a857d8b97e..7f3de8c209 100644 --- a/sysdeps/arm/start.S +++ b/sysdeps/arm/start.S @@ -1,6 +1,5 @@ /* Startup code for ARM & ELF - Copyright (C) 1995, 1996, 1997, 1998, 2001, 2002, 2005, 2008 - Free Software Foundation, Inc. + Copyright (C) 1995-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 @@ -58,14 +57,12 @@ NULL */ -#if defined(__ARM_EABI__) /* Tag_ABI_align8_preserved: This code preserves 8-byte alignment in any callee. */ .eabi_attribute 25, 1 /* Tag_ABI_align8_needed: This code may require 8-byte alignment from the caller. */ .eabi_attribute 24, 1 -#endif #if defined(__thumb2__) .thumb diff --git a/sysdeps/arm/sysdep.h b/sysdeps/arm/sysdep.h index 6d15f798c2..7800456f64 100644 --- a/sysdeps/arm/sysdep.h +++ b/sysdeps/arm/sysdep.h @@ -77,8 +77,8 @@ /* If compiled for profiling, call `mcount' at the start of each function. */ #ifdef PROF -/* Call __gnu_mcount_nc if GCC >= 4.4 and abi = EABI. */ -#if __GNUC_PREREQ(4,4) && defined(__ARM_EABI__) +/* Call __gnu_mcount_nc if GCC >= 4.4. */ +#if __GNUC_PREREQ(4,4) #define CALL_MCOUNT \ str lr,[sp, #-4]!; \ cfi_adjust_cfa_offset (4); \ @@ -104,19 +104,17 @@ on this system, the asm identifier `syscall_error' intrudes on the C name space. Make sure we use an innocuous name. */ #define syscall_error __syscall_error -#if __GNUC_PREREQ(4,4) && defined(__ARM_EABI__) +#if __GNUC_PREREQ(4,4) #define mcount __gnu_mcount_nc #else #define mcount _mcount #endif -#if defined(__ARM_EABI__) /* Tag_ABI_align8_preserved: This code preserves 8-byte alignment in any callee. */ .eabi_attribute 25, 1 /* Tag_ABI_align8_needed: This code may require 8-byte alignment from the caller. */ .eabi_attribute 24, 1 -#endif #endif /* __ASSEMBLER__ */ diff --git a/sysdeps/unix/sysv/linux/arm/clone.S b/sysdeps/unix/sysv/linux/arm/clone.S index 8da41171fe..ec042fff9e 100644 --- a/sysdeps/unix/sysv/linux/arm/clone.S +++ b/sysdeps/unix/sysv/linux/arm/clone.S @@ -1,5 +1,4 @@ -/* Copyright (C) 1996, 1997, 1998, 1999, 2002, 2005, 2008, 2009, 2010 - Free Software Foundation, Inc. +/* Copyright (C) 1996-2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Pat Beirne @@ -49,33 +48,19 @@ ENTRY(__clone) mov ip, r2 #endif @ new sp is already in r1 -#ifdef __ARM_EABI__ stmfd sp!, {r4, r7} cfi_adjust_cfa_offset (8) cfi_rel_offset (r4, 0) cfi_rel_offset (r7, 4) -#else - str r4, [sp, #-8]! - cfi_adjust_cfa_offset (8) - cfi_rel_offset (r4, 0) -#endif ldr r2, [sp, #8] ldr r3, [sp, #12] ldr r4, [sp, #16] -#ifdef __ARM_EABI__ ldr r7, =SYS_ify(clone) swi 0x0 -#else - swi SYS_ify(clone) -#endif cfi_endproc cmp r0, #0 beq 1f -#ifdef __ARM_EABI__ ldmfd sp!, {r4, r7} -#else - ldr r4, [sp], #8 -#endif blt PLTJMP(C_SYMBOL_NAME(__syscall_error)) RETINSTR(, lr) @@ -94,12 +79,8 @@ PSEUDO_END (__clone) mov r1, r0 tst ip, #CLONE_VM movne r0, #-1 -#ifdef __ARM_EABI__ ldr r7, =SYS_ify(getpid) swieq 0x0 -#else - swieq SYS_ify(getpid) -#endif str r0, [r1, #PID_OFFSET] str r0, [r1, #TID_OFFSET] 3: diff --git a/sysdeps/unix/sysv/linux/arm/ldsodefs.h b/sysdeps/unix/sysv/linux/arm/ldsodefs.h index 6966f8a15b..8980bb1996 100644 --- a/sysdeps/unix/sysv/linux/arm/ldsodefs.h +++ b/sysdeps/unix/sysv/linux/arm/ldsodefs.h @@ -25,11 +25,7 @@ #undef VALID_ELF_OSABI #undef MORE_ELF_HEADER_DATA -#ifdef __ARM_EABI__ #define EXTRA_OSABI ELFOSABI_ARM_AEABI -#else -#define EXTRA_OSABI ELFOSABI_ARM -#endif #define VALID_ELF_HEADER(hdr,exp,size) \ (memcmp (hdr, exp, size) == 0 \ diff --git a/sysdeps/unix/sysv/linux/arm/sigaction.c b/sysdeps/unix/sysv/linux/arm/sigaction.c index 4f6e8bff9d..e7b51c6275 100644 --- a/sysdeps/unix/sysv/linux/arm/sigaction.c +++ b/sysdeps/unix/sysv/linux/arm/sigaction.c @@ -1,5 +1,4 @@ -/* Copyright (C) 1997, 1998, 1999, 2000, 2002, 2003, 2005, 2006 - Free Software Foundation, Inc. +/* Copyright (C) 1997-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 @@ -35,26 +34,21 @@ int __libc_missing_rt_sigs; #define SA_RESTORER 0x04000000 -#ifdef __ARM_EABI__ extern void __default_sa_restorer_v1(void); extern void __default_sa_restorer_v2(void); extern void __default_rt_sa_restorer_v1(void); extern void __default_rt_sa_restorer_v2(void); -# ifdef __ASSUME_SIGFRAME_V2 -# define __default_sa_restorer __default_sa_restorer_v2 -# define __default_rt_sa_restorer __default_rt_sa_restorer_v2 -# else -# include -# define __default_sa_restorer (GLRO(dl_osversion) >= 0x020612 \ +#ifdef __ASSUME_SIGFRAME_V2 +# define __default_sa_restorer __default_sa_restorer_v2 +# define __default_rt_sa_restorer __default_rt_sa_restorer_v2 +#else +# include +# define __default_sa_restorer (GLRO(dl_osversion) >= 0x020612 \ ? __default_sa_restorer_v2 \ : __default_sa_restorer_v1) -# define __default_rt_sa_restorer (GLRO(dl_osversion) >= 0x020612 \ +# define __default_rt_sa_restorer (GLRO(dl_osversion) >= 0x020612 \ ? __default_rt_sa_restorer_v2 \ : __default_rt_sa_restorer_v1) -# endif -#else -extern void __default_sa_restorer(void); -extern void __default_rt_sa_restorer(void); #endif /* When RT signals are in use we need to use a different return stub. */ diff --git a/sysdeps/unix/sysv/linux/arm/vfork.S b/sysdeps/unix/sysv/linux/arm/vfork.S index cbd42e8613..99c366d2b2 100644 --- a/sysdeps/unix/sysv/linux/arm/vfork.S +++ b/sysdeps/unix/sysv/linux/arm/vfork.S @@ -1,4 +1,4 @@ -/* Copyright (C) 1999, 2002, 2003, 2005 Free Software Foundation, Inc. +/* Copyright (C) 1999-2012 Free Software Foundation, Inc. This file is part of the GNU C Library. Contributed by Philip Blundell . @@ -32,7 +32,6 @@ ENTRY (__vfork) #ifdef SAVE_PID SAVE_PID #endif -#ifdef __ARM_EABI__ /* The DO_CALL macro saves r7 on the stack, to enable generation of ARM unwind info. Since the stack is initially shared between parent and child of vfork, that saved value could be corrupted. @@ -51,9 +50,6 @@ ENTRY (__vfork) cfi_adjust_cfa_offset (-4) mov r7, ip cfi_restore (r7); -#else - swi SYS_ify(vfork) -#endif #ifdef RESTORE_PID RESTORE_PID #endif