diff options
-rw-r--r-- | Makerules | 2 | ||||
-rw-r--r-- | ldso/ldso/dl-startup.c | 6 |
2 files changed, 4 insertions, 4 deletions
@@ -330,7 +330,7 @@ define create-lds -Wl,-z,relro -Wl,--hash-style=gnu -Wl,-z,defs \ -Wl,--verbose 2>&1 | LC_ALL=C \ $(SED) -e '/^=========/,/^=========/!d;/^=========/d' \ - -e 's/\. = .* + SIZEOF_HEADERS;/& $(SYMBOL_PREFIX)_begin = . - SIZEOF_HEADERS;/' > $@.lds + -e 's/^\([ ]*\)\. = .* + SIZEOF_HEADERS;/&\n\1$(SYMBOL_PREFIX)_begin = . - SIZEOF_HEADERS;/' > $@.lds endef define link.so diff --git a/ldso/ldso/dl-startup.c b/ldso/ldso/dl-startup.c index 4893409e9..18a39ce2c 100644 --- a/ldso/ldso/dl-startup.c +++ b/ldso/ldso/dl-startup.c @@ -95,8 +95,8 @@ #include "dl-startup.h" #ifdef __LDSO_PRELINK_SUPPORT__ -/* These defined magically in the linker script. */ -extern char _begin[] attribute_hidden; +/* This is defined by the linker script. */ +extern ElfW(Addr) _begin[] attribute_hidden; #endif /* Static declarations */ @@ -181,7 +181,7 @@ DL_START(unsigned long args) */ if (!auxvt[AT_BASE].a_un.a_val) - auxvt[AT_BASE].a_un.a_val = (Elf32_Addr) &_begin; + auxvt[AT_BASE].a_un.a_val = (ElfW(Addr)) &_begin; /* Note: if the dynamic linker itself is prelinked, the load_addr is 0 */ DL_INIT_LOADADDR_BOOT(load_addr, elf_machine_load_address()); #else |