This commit is contained in:
Jakub Jelinek 2004-10-14 12:17:19 +00:00
parent b488809b5d
commit 348245d3f9

View File

@ -189,6 +189,29 @@
#endif
/* These function symbols are provided for the .init/.fini section entry
--- glibc-20041014T0548/dlfcn/dlinfo.c 14 Oct 2004 01:48:22 -0000 1.3
+++ glibc-20041014T0548-fedora/dlfcn/dlinfo.c 14 Oct 2004 12:00:34 -0000 1.2.2.2
@@ -39,13 +39,15 @@ dlinfo_doit (void *argsblock)
#if 0
if (args->handle == RTLD_SELF)
{
+ Lmid_t nsid;
/* Find the highest-addressed object that CALLER is not below. */
- for (l = GL(dl_loaded); l != NULL; l = l->l_next)
- if (caller >= l->l_map_start && caller < l->l_map_end)
- /* There must be exactly one DSO for the range of the virtual
- memory. Otherwise something is really broken. */
- break;
+ for (nsid = 0; nsid < DL_NNS; ++nsid)
+ for (l = GL(dl_ns)[nsid]._ns_loaded; l != NULL; l = l->l_next)
+ if (caller >= l->l_map_start && caller < l->l_map_end)
+ /* There must be exactly one DSO for the range of the virtual
+ memory. Otherwise something is really broken. */
+ break;
if (l == NULL)
GLRO(dl_signal_error) (0, NULL, NULL, N_("\
--- glibc-20041014T0548/elf/dl-close.c 14 Oct 2004 02:00:27 -0000 1.106
+++ glibc-20041014T0548-fedora/elf/dl-close.c 14 Oct 2004 09:57:38 -0000 1.104.2.2
@@ -237,7 +237,7 @@ _dl_close (void *_map)
@ -2747,6 +2770,97 @@
+symbol_version (INTUSE (__multi3), __multi3, GLIBC_2.2);
+
+#endif
--- glibc-20041014T0548/sysdeps/mips/dl-machine.h 25 Aug 2004 05:57:35 -0000 1.75
+++ glibc-20041014T0548-fedora/sysdeps/mips/dl-machine.h 14 Oct 2004 12:00:36 -0000 1.75.2.1
@@ -231,10 +231,11 @@ elf_machine_runtime_link_map (ElfW(Addr)
}
}
- {
- struct link_map *l = GL(dl_loaded);
+ struct link_map *l;
+ Lmid_t nsid;
- while (l)
+ for (nsid = 0; nsid < DL_NNS; ++nsid)
+ for (l = GL(dl_ns)[nsid]._ns_loaded; l != NULL; l = l->l_next)
{
ElfW(Addr) base, limit;
const ElfW(Phdr) *p = l->l_phdr;
@@ -250,9 +251,7 @@ elf_machine_runtime_link_map (ElfW(Addr)
return l;
}
}
- l = l->l_next;
}
- }
_dl_signal_error (0, NULL, NULL, "cannot find runtime link map");
return NULL;
--- glibc-20041014T0548/sysdeps/powerpc/powerpc32/dl-machine.c 5 Mar 2004 10:23:44 -0000 1.9
+++ glibc-20041014T0548-fedora/sysdeps/powerpc/powerpc32/dl-machine.c 14 Oct 2004 12:00:36 -0000 1.9.2.1
@@ -106,6 +106,7 @@ __elf_preferred_address(struct link_map
{
ElfW(Addr) low, high;
struct link_map *l;
+ Lmid_t nsid;
/* If the object has a preference, load it there! */
if (mapstartpref != 0)
@@ -117,29 +118,30 @@ __elf_preferred_address(struct link_map
be superceded by the program's load address). */
low = 0x0003FFFF;
high = 0x70000000;
- for (l = GL(dl_loaded); l; l = l->l_next)
- {
- ElfW(Addr) mapstart, mapend;
- mapstart = l->l_map_start & ~(GLRO(dl_pagesize) - 1);
- mapend = l->l_map_end | (GLRO(dl_pagesize) - 1);
- assert (mapend > 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;
- else if (high >= mapend && mapstart >= low)
- {
- if (high - mapend >= mapstart - low)
- low = mapend;
- else
- high = mapstart;
- }
- }
+ for (nsid = 0; nsid < DL_NNS; ++nsid)
+ for (l = GL(dl_ns)[nsid]._ns_loaded; l; l = l->l_next)
+ {
+ ElfW(Addr) mapstart, mapend;
+ mapstart = l->l_map_start & ~(GLRO(dl_pagesize) - 1);
+ mapend = l->l_map_end | (GLRO(dl_pagesize) - 1);
+ assert (mapend > 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;
+ else if (high >= mapend && mapstart >= low)
+ {
+ if (high - mapend >= mapstart - low)
+ low = mapend;
+ else
+ high = mapstart;
+ }
+ }
high -= 0x10000; /* Allow some room between objects. */
maplength = (maplength | (GLRO(dl_pagesize) - 1)) + 1;
--- glibc-20041014T0548/sysdeps/sparc/fpu/bits/mathinline.h 30 Sep 2004 06:16:29 -0000 1.15
+++ glibc-20041014T0548-fedora/sysdeps/sparc/fpu/bits/mathinline.h 14 Oct 2004 09:57:42 -0000 1.14.2.2
@@ -112,7 +112,7 @@