58 lines
2.3 KiB
Diff
58 lines
2.3 KiB
Diff
|
--- glibc-2.3.3.old/elf/rtld.c 2004-10-26 21:41:41.989117872 -0400
|
||
|
+++ glibc-2.3.3/elf/rtld.c 2004-10-26 21:45:15.015732904 -0400
|
||
|
@@ -1087,53 +1087,6 @@
|
||
|
++GL(dl_ns)[LM_ID_BASE]._ns_nloaded;
|
||
|
++GL(dl_load_adds);
|
||
|
|
||
|
-#if defined(__i386__)
|
||
|
- /* Force non-TLS libraries for glibc 2.0 binaries
|
||
|
- or if a buggy binary references non-TLS errno or h_errno. */
|
||
|
- if (__builtin_expect (main_map->l_info[DT_NUM + DT_THISPROCNUM
|
||
|
- + DT_VERSIONTAGIDX (DT_VERNEED)]
|
||
|
- == NULL, 0)
|
||
|
- && main_map->l_info[DT_DEBUG])
|
||
|
- GLRO(dl_osversion) = 0x20205;
|
||
|
- else if ((__builtin_expect (mode, normal) != normal
|
||
|
- || main_map->l_info[ADDRIDX (DT_GNU_LIBLIST)] == NULL)
|
||
|
- /* Only binaries have DT_DEBUG dynamic tags... */
|
||
|
- && main_map->l_info[DT_DEBUG])
|
||
|
- {
|
||
|
- /* Workaround for buggy binaries. This doesn't handle buggy
|
||
|
- libraries. */
|
||
|
- bool buggy = false;
|
||
|
- const ElfW(Sym) *symtab = (const void *) D_PTR (main_map,
|
||
|
- l_info[DT_SYMTAB]);
|
||
|
- const char *strtab = (const void *) D_PTR (main_map,
|
||
|
- l_info[DT_STRTAB]);
|
||
|
- Elf_Symndx symidx;
|
||
|
- for (symidx = main_map->l_buckets[0x6c994f % main_map->l_nbuckets];
|
||
|
- symidx != STN_UNDEF;
|
||
|
- symidx = main_map->l_chain[symidx])
|
||
|
- {
|
||
|
- if (__builtin_expect (strcmp (strtab + symtab[symidx].st_name,
|
||
|
- "errno") == 0, 0)
|
||
|
- && ELFW(ST_TYPE) (symtab[symidx].st_info) != STT_TLS)
|
||
|
- buggy = true;
|
||
|
- }
|
||
|
- for (symidx = main_map->l_buckets[0xe5c992f % main_map->l_nbuckets];
|
||
|
- symidx != STN_UNDEF;
|
||
|
- symidx = main_map->l_chain[symidx])
|
||
|
- {
|
||
|
- if (__builtin_expect (strcmp (strtab + symtab[symidx].st_name,
|
||
|
- "h_errno") == 0, 0)
|
||
|
- && ELFW(ST_TYPE) (symtab[symidx].st_info) != STT_TLS)
|
||
|
- buggy = true;
|
||
|
- }
|
||
|
- if (__builtin_expect (buggy, false) && GLRO(dl_osversion) > 0x20401)
|
||
|
- {
|
||
|
- GLRO(dl_osversion) = 0x20401;
|
||
|
- _dl_error_printf ("Incorrectly built binary which accesses errno or h_errno directly. Needs to be fixed.\n");
|
||
|
- }
|
||
|
- }
|
||
|
-#endif
|
||
|
-
|
||
|
/* If LD_USE_LOAD_BIAS env variable has not been seen, default
|
||
|
to not using bias for non-prelinked PIEs and libraries
|
||
|
and using it for executables or prelinked PIEs or libraries. */
|
||
|
|