]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
elf: In rtld_setup_main_map, assume ld.so has a DYNAMIC segment
authorFlorian Weimer <fweimer@redhat.com>
Tue, 24 Sep 2024 11:23:10 +0000 (13:23 +0200)
committerFlorian Weimer <fweimer@redhat.com>
Tue, 24 Sep 2024 11:23:10 +0000 (13:23 +0200)
The way we build ld.so, it always has a dynamic segment, so checking for
its absence is unnecessary.

elf/rtld.c

index 1e2e9ad5a8969535b9662cb51132f8e4e3a2720e..9355b30214d975c9a9731e355c5328ce0739e6dd 100644 (file)
@@ -386,7 +386,6 @@ static void dl_main (const ElfW(Phdr) *phdr, ElfW(Word) phnum,
 
 /* These two variables cannot be moved into .data.rel.ro.  */
 static struct libname_list _dl_rtld_libname;
-static struct libname_list _dl_rtld_libname2;
 
 /* Variable for statistics.  */
 RLTD_TIMING_DECLARE (relocate_time, static);
@@ -1167,29 +1166,6 @@ rtld_setup_main_map (struct link_map *main_map)
        /* _dl_rtld_libname.next = NULL;        Already zero.  */
        GL(dl_rtld_map).l_libname = &_dl_rtld_libname;
 
-       /* Ordinarily, we would get additional names for the loader from
-          our DT_SONAME.  This can't happen if we were actually linked as
-          a static executable (detect this case when we have no DYNAMIC).
-          If so, assume the filename component of the interpreter path to
-          be our SONAME, and add it to our name list.  */
-       if (GL(dl_rtld_map).l_ld == NULL)
-         {
-           const char *p = NULL;
-           const char *cp = _dl_rtld_libname.name;
-
-           /* Find the filename part of the path.  */
-           while (*cp != '\0')
-             if (*cp++ == '/')
-               p = cp;
-
-           if (p != NULL)
-             {
-               _dl_rtld_libname2.name = p;
-               /* _dl_rtld_libname2.next = NULL;  Already zero.  */
-               _dl_rtld_libname.next = &_dl_rtld_libname2;
-             }
-         }
-
        has_interp = true;
        break;
       case PT_LOAD: