aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2012-01-08 13:02:02 +0000
committerJoseph Myers <joseph@codesourcery.com>2012-01-08 13:02:02 +0000
commit7b583f0ab7ba2c141a3cd5c86436a9afee88bbb7 (patch)
tree55814b2ff1fba56a49cc81f446be66465cc2bb33
parent5de7dd3ece0d3f0ad1805c3ebec8c13807ded305 (diff)
downloadglibc-7b583f0ab7ba2c141a3cd5c86436a9afee88bbb7.tar.xz
glibc-7b583f0ab7ba2c141a3cd5c86436a9afee88bbb7.zip
Don't define or test NO_UNDERSCORES or HAVE_WEAK_SYMBOLS for ARM.
-rw-r--r--ChangeLog.arm7
-rw-r--r--sysdeps/arm/sysdep.h6
-rw-r--r--sysdeps/unix/arm/start.c13
-rw-r--r--sysdeps/unix/arm/sysdep.S6
4 files changed, 9 insertions, 23 deletions
diff --git a/ChangeLog.arm b/ChangeLog.arm
index dd88d9ea2d..377439a665 100644
--- a/ChangeLog.arm
+++ b/ChangeLog.arm
@@ -1,5 +1,12 @@
2012-01-08 Joseph Myers <joseph@codesourcery.com>
+ * sysdeps/arm/sysdep.h: Don't test or define NO_UNDERSCORES.
+ * sysdeps/unix/arm/start.c: Don't test HAVE_WEAK_SYMBOLS or
+ NO_UNDERSCORES.
+ * sysdeps/unix/arm/sysdep.S: Don't test NO_UNDERSCORES.
+
+2012-01-08 Joseph Myers <joseph@codesourcery.com>
+
* sysdeps/arm/sysdep.h: Remove non-ELF support.
2012-01-07 Joseph Myers <joseph@codesourcery.com>
diff --git a/sysdeps/arm/sysdep.h b/sysdeps/arm/sysdep.h
index 62fee04a9e..4fa10d90e9 100644
--- a/sysdeps/arm/sysdep.h
+++ b/sysdeps/arm/sysdep.h
@@ -35,10 +35,6 @@
#define ASM_TYPE_DIRECTIVE(name,typearg) .type name,%##typearg;
#define ASM_SIZE_DIRECTIVE(name) .size name,.-name
-/* In ELF C symbols are asm symbols. */
-#undef NO_UNDERSCORES
-#define NO_UNDERSCORES
-
#define PLTJMP(_x) _x##(PLT)
/* APCS-32 doesn't preserve the condition codes across function call. */
@@ -105,7 +101,6 @@
#define CALL_MCOUNT /* Do nothing. */
#endif
-#ifdef NO_UNDERSCORES
/* Since C identifiers are not normally prefixed with an underscore
on this system, the asm identifier `syscall_error' intrudes on the
C name space. Make sure we use an innocuous name. */
@@ -115,7 +110,6 @@
#else
#define mcount _mcount
#endif
-#endif
#if defined(__ARM_EABI__)
/* Tag_ABI_align8_preserved: This code preserves 8-byte
diff --git a/sysdeps/unix/arm/start.c b/sysdeps/unix/arm/start.c
index 6bf08b1d7f..3bfb6d2d7e 100644
--- a/sysdeps/unix/arm/start.c
+++ b/sysdeps/unix/arm/start.c
@@ -1,5 +1,5 @@
/* Special startup code for ARM a.out binaries.
- Copyright (C) 1998, 2004 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2004, 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
@@ -41,9 +41,7 @@
/* The first piece of initialized data. */
int __data_start = 0;
-#ifdef HAVE_WEAK_SYMBOLS
weak_alias (__data_start, data_start)
-#endif
extern void __libc_init (int argc, char **argv, char **envp);
extern int main (int argc, char **argv, char **envp);
@@ -53,16 +51,7 @@ extern int main (int argc, char **argv, char **envp);
/* If this was in C it might create its own stack frame and
screw up the arguments. */
-#ifdef NO_UNDERSCORES
asm (".text; .globl _start; _start: B start1");
-#else
-asm (".text; .globl __start; __start: B _start1");
-
-/* Make an alias called `start' (no leading underscore, so it can't
- conflict with C symbols) for `_start'. This is the name vendor crt0.o's
- tend to use, and thus the name most linkers expect. */
-asm (".set start, __start");
-#endif
/* Fool gcc into thinking that more args are passed. This makes it look
on the stack (correctly) for the real arguments. It causes somewhat
diff --git a/sysdeps/unix/arm/sysdep.S b/sysdeps/unix/arm/sysdep.S
index 2a534baf88..41386fe516 100644
--- a/sysdeps/unix/arm/sysdep.S
+++ b/sysdeps/unix/arm/sysdep.S
@@ -1,5 +1,5 @@
/* Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2002, 2003,
- 2004, 2005, 2009, 2011
+ 2004, 2005, 2009, 2011, 2012
Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -29,11 +29,7 @@
#include <tls.h>
#undef syscall_error
-#ifdef NO_UNDERSCORES
__syscall_error:
-#else
-syscall_error:
-#endif
#if defined (EWOULDBLOCK_sys) && EWOULDBLOCK_sys != EAGAIN
/* We translate the system's EWOULDBLOCK error into EAGAIN.
The GNU C library always defines EWOULDBLOCK==EAGAIN.