]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
cheri: rtld: fix _dl_start to return elfptr_t
authorSzabolcs Nagy <szabolcs.nagy@arm.com>
Wed, 20 Apr 2022 08:54:31 +0000 (09:54 +0100)
committerSzabolcs Nagy <szabolcs.nagy@arm.com>
Fri, 5 Aug 2022 18:45:19 +0000 (19:45 +0100)
Functions returning a pointer to the user entry need to use an int type
that can represent pointers.

elf/rtld.c

index cbbaf4a33196512c92ad4b2f7657a850b411d8b4..2c61935a21e235b6483f1474316adfcc6a88984f 100644 (file)
@@ -416,15 +416,15 @@ DL_SYSINFO_IMPLEMENTATION
 #endif
 
 #ifdef DONT_USE_BOOTSTRAP_MAP
-static ElfW(Addr) _dl_start_final (void *arg);
+static elfptr_t _dl_start_final (void *arg);
 #else
 struct dl_start_final_info
 {
   struct link_map l;
   RTLD_TIMING_VAR (start_time);
 };
-static ElfW(Addr) _dl_start_final (void *arg,
-                                  struct dl_start_final_info *info);
+static elfptr_t _dl_start_final (void *arg,
+                                struct dl_start_final_info *info);
 #endif
 
 /* These are defined magically by the linker.  */
@@ -446,10 +446,10 @@ RTLD_START
    this function is not inlined (see below).  */
 
 #ifdef DONT_USE_BOOTSTRAP_MAP
-static inline ElfW(Addr) __attribute__ ((always_inline))
+static inline elfptr_t __attribute__ ((always_inline))
 _dl_start_final (void *arg)
 #else
-static ElfW(Addr) __attribute__ ((noinline))
+static elfptr_t __attribute__ ((noinline))
 _dl_start_final (void *arg, struct dl_start_final_info *info)
 #endif
 {
@@ -515,7 +515,7 @@ _dl_start_final (void *arg, struct dl_start_final_info *info)
 # define bootstrap_map info.l
 #endif
 
-static ElfW(Addr) __attribute_used__
+static elfptr_t __attribute_used__
 _dl_start (void *arg)
 {
 #ifdef DONT_USE_BOOTSTRAP_MAP