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 d648927..908d0bd 100644 --- a/ChangeLog.arm +++ b/ChangeLog.arm @@ -1,6 +1,16 @@ 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 setting from eabi/Makefile. diff --git a/sysdeps/arm/shlib-versions b/sysdeps/arm/shlib-versions index 491dd0a..626d58b 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 a857d8b..7f3de8c 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 6d15f79..7800456 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 8da4117..ec042ff 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 6966f8a..8980bb1 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 4f6e8bf..e7b51c6 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 cbd42e8..99c366d 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 -- 2.7.4