diff options
author | Andreas Jaeger <aj@suse.de> | 2001-07-25 06:36:52 +0000 |
---|---|---|
committer | Andreas Jaeger <aj@suse.de> | 2001-07-25 06:36:52 +0000 |
commit | 78d16d09d8b8b4c29d566d45eaffd6bd7d2b7593 (patch) | |
tree | f3924a8d0ac601e21c122387ee8834f25ffc28e6 /sysdeps | |
parent | f369623d6d7af1f7cddfa7bcda413b88107db2e6 (diff) | |
download | glibc-78d16d09d8b8b4c29d566d45eaffd6bd7d2b7593.tar.gz glibc-78d16d09d8b8b4c29d566d45eaffd6bd7d2b7593.tar.xz glibc-78d16d09d8b8b4c29d566d45eaffd6bd7d2b7593.zip |
(__elf_preferred_address): Prefer gaps below main executable.
Diffstat (limited to 'sysdeps')
-rw-r--r-- | sysdeps/powerpc/dl-machine.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/sysdeps/powerpc/dl-machine.c b/sysdeps/powerpc/dl-machine.c index 0fdf2a4582..c9c4fe00d5 100644 --- a/sysdeps/powerpc/dl-machine.c +++ b/sysdeps/powerpc/dl-machine.c @@ -119,7 +119,11 @@ __elf_preferred_address(struct link_map *loader, size_t maplength, mapend = l->l_map_end | (_dl_pagesize - 1); assert (mapend > mapstart); - if ((mapend >= high || l == _dl_loaded) && high >= mapstart) + /* Prefer gaps below the main executable, note that l == + _dl_loaded does not work for static binaries loading + e.g. libnss_*.so. */ + if ((mapend >= high || l->l_type == lt_executable) + && high >= mapstart) high = mapstart; else if (mapend >= low && low >= mapstart) low = mapend; |