Browse Source

ldso: silence warning

In file included from ldso/ldso/ldso.c:87:0:
ldso/ldso/dl-startup.c: In function '_dl_start':
ldso/ldso/dl-startup.c:184:32: warning: cast from pointer to integer of differennt size [-Wpointer-to-int-cast]
   auxvt[AT_BASE].a_un.a_val =  (Elf32_Addr) &_begin;

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
Bernhard Reutner-Fischer 9 years ago
parent
commit
cb5af0bed8
2 changed files with 4 additions and 4 deletions
  1. 1 1
      Makerules
  2. 3 3
      ldso/ldso/dl-startup.c

+ 1 - 1
Makerules

@@ -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

+ 3 - 3
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