From 3fa2eb2aba8d6b54dec53e7ad4c37e17392b166f Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Fri, 20 Jun 2014 00:25:12 -0400 Subject: [PATCH] rename dynamic linker entry point from _start to _dlstart the main motivation for this change is to aid in debugging. since the main program's entry point is also named _start, it was difficult to set breakpoints or quickly identify which _start execution stopped in. --- Makefile | 2 +- src/ldso/arm/start.s | 4 ++-- src/ldso/i386/start.s | 4 ++-- src/ldso/microblaze/start.s | 4 ++-- src/ldso/mips/start.s | 6 +++--- src/ldso/powerpc/start.s | 6 +++--- src/ldso/sh/start.s | 6 +++--- src/ldso/x32/start.s | 4 ++-- src/ldso/x86_64/start.s | 4 ++-- 9 files changed, 20 insertions(+), 20 deletions(-) diff --git a/Makefile b/Makefile index 0ab0bfdd..d5a64fce 100644 --- a/Makefile +++ b/Makefile @@ -125,7 +125,7 @@ $(foreach s,$(wildcard src/*/$(ARCH)*/*.s),$(eval $(call mkasmdep,$(s)))) lib/libc.so: $(LOBJS) $(CC) $(CFLAGS_ALL_SHARED) $(LDFLAGS) -nostdlib -shared \ - -Wl,-e,_start -Wl,-Bsymbolic-functions \ + -Wl,-e,_dlstart -Wl,-Bsymbolic-functions \ -o $@ $(LOBJS) $(LIBCC) lib/libc.a: $(OBJS) diff --git a/src/ldso/arm/start.s b/src/ldso/arm/start.s index dfa36578..5dd93b55 100644 --- a/src/ldso/arm/start.s +++ b/src/ldso/arm/start.s @@ -1,6 +1,6 @@ .text -.global _start -_start: +.global _dlstart +_dlstart: ldr r0,[sp] add r1,sp,#4 bl __dynlink diff --git a/src/ldso/i386/start.s b/src/ldso/i386/start.s index b16f8af5..c37a1faa 100644 --- a/src/ldso/i386/start.s +++ b/src/ldso/i386/start.s @@ -1,6 +1,6 @@ .text -.global _start -_start: +.global _dlstart +_dlstart: xor %ebp,%ebp pop %edi mov %esp,%esi diff --git a/src/ldso/microblaze/start.s b/src/ldso/microblaze/start.s index 4e0a0e50..067e8613 100644 --- a/src/ldso/microblaze/start.s +++ b/src/ldso/microblaze/start.s @@ -1,6 +1,6 @@ # FIXME: clearing argv entries -.global _start -_start: +.global _dlstart +_dlstart: add r19, r0, r0 lw r5, r0, r1 diff --git a/src/ldso/mips/start.s b/src/ldso/mips/start.s index 2e985294..0cadbf8a 100644 --- a/src/ldso/mips/start.s +++ b/src/ldso/mips/start.s @@ -2,9 +2,9 @@ .hidden __reloc_self .set noreorder .set nomacro -.global _start -.type _start,@function -_start: +.global _dlstart +.type _dlstart,@function +_dlstart: move $fp, $0 bgezal $0, 1f diff --git a/src/ldso/powerpc/start.s b/src/ldso/powerpc/start.s index 6c499e8e..6548d58f 100644 --- a/src/ldso/powerpc/start.s +++ b/src/ldso/powerpc/start.s @@ -1,6 +1,6 @@ - .global _start - .type _start,@function -_start: + .global _dlstart + .type _dlstart,@function +_dlstart: bl 1f 2: .long _DYNAMIC-2b 1: mflr 5 diff --git a/src/ldso/sh/start.s b/src/ldso/sh/start.s index ca6b7fc9..0d2d9136 100644 --- a/src/ldso/sh/start.s +++ b/src/ldso/sh/start.s @@ -1,7 +1,7 @@ .text -.global _start -.type _start, @function -_start: +.global _dlstart +.type _dlstart, @function +_dlstart: mov.l @r15, r4 mov r15, r5 mov.l L1, r0 diff --git a/src/ldso/x32/start.s b/src/ldso/x32/start.s index 0fcf46dc..3c3800aa 100644 --- a/src/ldso/x32/start.s +++ b/src/ldso/x32/start.s @@ -1,6 +1,6 @@ .text -.global _start -_start: +.global _dlstart +_dlstart: mov (%rsp),%rdi /* move argc into 1st argument slot */ lea 4(%rsp),%rsi /* move argv into 2nd argument slot */ call __dynlink diff --git a/src/ldso/x86_64/start.s b/src/ldso/x86_64/start.s index 80c1d08d..1c5598aa 100644 --- a/src/ldso/x86_64/start.s +++ b/src/ldso/x86_64/start.s @@ -1,6 +1,6 @@ .text -.global _start -_start: +.global _dlstart +_dlstart: mov (%rsp),%rdi lea 8(%rsp),%rsi call __dynlink