summaryrefslogtreecommitdiff
path: root/libc/sysdeps/linux/arm
diff options
context:
space:
mode:
authorJoakim Tjernlund <joakim.tjernlund@transmode.se>2005-05-28 23:44:06 +0000
committerJoakim Tjernlund <joakim.tjernlund@transmode.se>2005-05-28 23:44:06 +0000
commitd1b0dffff4be58782a15ebec6595de2447f63dc2 (patch)
treed07c74419c3531984ae620899fc9a0e9cf892797 /libc/sysdeps/linux/arm
parent83bb7f2166ccec164942b010130b285676d7cf3b (diff)
Add Peter Mazinger fini/crt compat patch. Select DL_FINI_CRT_COMPAT to
be able to run apps built with 0.9.27. This also renames __uClibc_start_main to __uClibc_main. This compat option should be removed some time after 0.9.28 is released. Let me know if you don't like this change.
Diffstat (limited to 'libc/sysdeps/linux/arm')
-rw-r--r--libc/sysdeps/linux/arm/Makefile7
-rw-r--r--libc/sysdeps/linux/arm/crt0.S10
2 files changed, 2 insertions, 15 deletions
diff --git a/libc/sysdeps/linux/arm/Makefile b/libc/sysdeps/linux/arm/Makefile
index 1a11e43ef..ca41ff6e7 100644
--- a/libc/sysdeps/linux/arm/Makefile
+++ b/libc/sysdeps/linux/arm/Makefile
@@ -20,7 +20,7 @@ TOPDIR=../../../../
include $(TOPDIR)Rules.mak
CRT0_SRC = crt0.S
-CRT0_OBJ = crt0.o crt1.o
+CRT0_OBJ = crt1.o
SCRT0_OBJ = $(patsubst %,S%, $(CRT0_OBJ))
CTOR_TARGETS=$(TOPDIR)lib/crti.o $(TOPDIR)lib/crtn.o
@@ -41,11 +41,6 @@ $(OBJ_LIST): $(OBJS) $(CRT0_OBJ) $(SCRT0_OBJ) $(CTOR_TARGETS)
echo $(patsubst %, sysdeps/linux/$(TARGET_ARCH)/%, $(OBJS)) > $(OBJ_LIST)
$(INSTALL) -d $(TOPDIR)lib/
cp $(CRT0_OBJ) $(SCRT0_OBJ) $(TOPDIR)lib/
-ifeq ($(strip $(UCLIBC_CTOR_DTOR)),y)
- $(RM) $(TOPDIR)lib/Scrt0.o
-else
- mv $(TOPDIR)lib/Scrt0.o $(TOPDIR)lib/Scrt1.o
-endif
$(CRT0_OBJ): $(CRT0_SRC)
$(CC) $(ASFLAGS) -DL_$* $< -c -o $*.o
diff --git a/libc/sysdeps/linux/arm/crt0.S b/libc/sysdeps/linux/arm/crt0.S
index f58885d17..4f4a8cefd 100644
--- a/libc/sysdeps/linux/arm/crt0.S
+++ b/libc/sysdeps/linux/arm/crt0.S
@@ -51,13 +51,9 @@ ARM register quick reference:
.text
.global _start
.type _start,%function
-#if defined L_crt0 || ! defined __UCLIBC_CTOR_DTOR__
- .type __uClibc_main,%function
-#else
.weak _init
.weak _fini
.type __uClibc_start_main,%function
-#endif
/* Stick in a dummy reference to main(), so that if an application
* is linking when the main() function is in a static library (.a)
* we can be sure that main() actually gets linked in */
@@ -92,7 +88,6 @@ _start:
ldr r2,[sp, #8]
#endif
-#if (defined L_crt1 ) && defined __UCLIBC_CTOR_DTOR__
#ifdef __PIC__
/* Store the address of _init in r3 as an argument to main() */
adr r5, .L_init
@@ -113,14 +108,11 @@ _start:
/* Ok, now run uClibc's main() -- shouldn't return */
bl __uClibc_start_main
-#else
- bl __uClibc_main
-#endif
/* Crash if somehow `exit' returns anyways. */
bl abort
-#if (defined L_crt1 ) && defined __UCLIBC_CTOR_DTOR__ && defined __PIC__
+#ifdef __PIC__
.L_init:
.word _init - .L_init
.word _fini - .L_init