mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-21 20:40:05 +00:00
elf: In rtld_setup_main_map, assume ld.so has a DYNAMIC segment
The way we build ld.so, it always has a dynamic segment, so checking for its absence is unnecessary.
This commit is contained in:
parent
7e21a65c58
commit
8f6a53eab8
24
elf/rtld.c
24
elf/rtld.c
@ -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. */
|
/* These two variables cannot be moved into .data.rel.ro. */
|
||||||
static struct libname_list _dl_rtld_libname;
|
static struct libname_list _dl_rtld_libname;
|
||||||
static struct libname_list _dl_rtld_libname2;
|
|
||||||
|
|
||||||
/* Variable for statistics. */
|
/* Variable for statistics. */
|
||||||
RLTD_TIMING_DECLARE (relocate_time, static);
|
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. */
|
/* _dl_rtld_libname.next = NULL; Already zero. */
|
||||||
GL(dl_rtld_map).l_libname = &_dl_rtld_libname;
|
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;
|
has_interp = true;
|
||||||
break;
|
break;
|
||||||
case PT_LOAD:
|
case PT_LOAD:
|
||||||
|
Loading…
Reference in New Issue
Block a user