mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-21 20:40:05 +00:00
elf: Remove LD_USE_LOAD_BIAS
It is solely for prelink with PIE executables [1]. [1] https://sourceware.org/legacy-ml/libc-hacker/2003-11/msg00127.html Reviewed-by: Siddhesh Poyarekar <siddhesh@sourceware.org>
This commit is contained in:
parent
d7703d3176
commit
144761540a
3
NEWS
3
NEWS
@ -197,6 +197,9 @@ Deprecated and removed features, and other changes affecting compatibility:
|
|||||||
functionality to obtain the program mapping address can be achieved by
|
functionality to obtain the program mapping address can be achieved by
|
||||||
using LD_TRACE_LOADED_OBJECTS to value of 2.
|
using LD_TRACE_LOADED_OBJECTS to value of 2.
|
||||||
|
|
||||||
|
* The LD_USE_LOAD_BIAS has been removed. The variable was mainly used to
|
||||||
|
support prelink PIE binaries.
|
||||||
|
|
||||||
Changes to build and runtime requirements:
|
Changes to build and runtime requirements:
|
||||||
|
|
||||||
* The audit module interface version LAV_CURRENT is increased to enable
|
* The audit module interface version LAV_CURRENT is increased to enable
|
||||||
|
@ -94,8 +94,7 @@ _dl_map_segments (struct link_map *l, int fd,
|
|||||||
prefer to map such objects at; but this is only a preference,
|
prefer to map such objects at; but this is only a preference,
|
||||||
the OS can do whatever it likes. */
|
the OS can do whatever it likes. */
|
||||||
ElfW(Addr) mappref
|
ElfW(Addr) mappref
|
||||||
= (ELF_PREFERRED_ADDRESS (loader, maplength,
|
= (ELF_PREFERRED_ADDRESS (loader, maplength, c->mapstart)
|
||||||
c->mapstart & GLRO(dl_use_load_bias))
|
|
||||||
- MAP_BASE_ADDR (l));
|
- MAP_BASE_ADDR (l));
|
||||||
|
|
||||||
/* Remember which part of the address space this object uses. */
|
/* Remember which part of the address space this object uses. */
|
||||||
|
@ -54,7 +54,6 @@ size_t _dl_platformlen;
|
|||||||
|
|
||||||
int _dl_debug_mask;
|
int _dl_debug_mask;
|
||||||
int _dl_lazy;
|
int _dl_lazy;
|
||||||
ElfW(Addr) _dl_use_load_bias = -2;
|
|
||||||
int _dl_dynamic_weak;
|
int _dl_dynamic_weak;
|
||||||
|
|
||||||
/* If nonzero print warnings about problematic situations. */
|
/* If nonzero print warnings about problematic situations. */
|
||||||
|
13
elf/rtld.c
13
elf/rtld.c
@ -365,7 +365,6 @@ struct rtld_global_ro _rtld_global_ro attribute_relro =
|
|||||||
._dl_sysinfo = DL_SYSINFO_DEFAULT,
|
._dl_sysinfo = DL_SYSINFO_DEFAULT,
|
||||||
#endif
|
#endif
|
||||||
._dl_debug_fd = STDERR_FILENO,
|
._dl_debug_fd = STDERR_FILENO,
|
||||||
._dl_use_load_bias = -2,
|
|
||||||
._dl_correct_cache_id = _DL_CACHE_DEFAULT_ID,
|
._dl_correct_cache_id = _DL_CACHE_DEFAULT_ID,
|
||||||
#if !HAVE_TUNABLES
|
#if !HAVE_TUNABLES
|
||||||
._dl_hwcap_mask = HWCAP_IMPORTANT,
|
._dl_hwcap_mask = HWCAP_IMPORTANT,
|
||||||
@ -1742,12 +1741,6 @@ dl_main (const ElfW(Phdr) *phdr,
|
|||||||
++GL(dl_ns)[LM_ID_BASE]._ns_nloaded;
|
++GL(dl_ns)[LM_ID_BASE]._ns_nloaded;
|
||||||
++GL(dl_load_adds);
|
++GL(dl_load_adds);
|
||||||
|
|
||||||
/* 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. */
|
|
||||||
if (GLRO(dl_use_load_bias) == (ElfW(Addr)) -2)
|
|
||||||
GLRO(dl_use_load_bias) = main_map->l_addr == 0 ? -1 : 0;
|
|
||||||
|
|
||||||
/* Starting from binutils-2.23, the linker will define the magic symbol
|
/* Starting from binutils-2.23, the linker will define the magic symbol
|
||||||
__ehdr_start to point to our own ELF header if it is visible in a
|
__ehdr_start to point to our own ELF header if it is visible in a
|
||||||
segment that also includes the phdrs. If that's not available, we use
|
segment that also includes the phdrs. If that's not available, we use
|
||||||
@ -2657,12 +2650,6 @@ process_envvars (struct dl_main_state *state)
|
|||||||
#ifdef EXTRA_LD_ENVVARS_13
|
#ifdef EXTRA_LD_ENVVARS_13
|
||||||
EXTRA_LD_ENVVARS_13
|
EXTRA_LD_ENVVARS_13
|
||||||
#endif
|
#endif
|
||||||
if (!__libc_enable_secure
|
|
||||||
&& memcmp (envline, "USE_LOAD_BIAS", 13) == 0)
|
|
||||||
{
|
|
||||||
GLRO(dl_use_load_bias) = envline[14] == '1' ? -1 : 0;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 14:
|
case 14:
|
||||||
|
@ -628,11 +628,6 @@ struct rtld_global_ro
|
|||||||
/* Location of the binary. */
|
/* Location of the binary. */
|
||||||
EXTERN const char *_dl_origin_path;
|
EXTERN const char *_dl_origin_path;
|
||||||
|
|
||||||
/* -1 if the dynamic linker should honor library load bias,
|
|
||||||
0 if not, -2 use the default (honor biases for normal
|
|
||||||
binaries, don't honor for PIEs). */
|
|
||||||
EXTERN ElfW(Addr) _dl_use_load_bias;
|
|
||||||
|
|
||||||
/* Size of the static TLS block. */
|
/* Size of the static TLS block. */
|
||||||
EXTERN size_t _dl_tls_static_size;
|
EXTERN size_t _dl_tls_static_size;
|
||||||
|
|
||||||
|
@ -22,7 +22,6 @@
|
|||||||
"LD_PRELOAD\0" \
|
"LD_PRELOAD\0" \
|
||||||
"LD_PROFILE\0" \
|
"LD_PROFILE\0" \
|
||||||
"LD_SHOW_AUXV\0" \
|
"LD_SHOW_AUXV\0" \
|
||||||
"LD_USE_LOAD_BIAS\0" \
|
|
||||||
"LOCALDOMAIN\0" \
|
"LOCALDOMAIN\0" \
|
||||||
"LOCPATH\0" \
|
"LOCPATH\0" \
|
||||||
"MALLOC_TRACE\0" \
|
"MALLOC_TRACE\0" \
|
||||||
|
Loading…
Reference in New Issue
Block a user