mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-21 12:30:06 +00:00
elf: Remove LD_HWCAP_MASK / tunable glibc.cpu.hwcap_mask
Remove the environment variable LD_HWCAP_MASK and the tunable glibc.cpu.hwcap_mask as those are not used anymore in common-code after removal in elf/dl-cache.c:search_cache(). The only remaining user is sparc32 where it is used in elf_machine_matches_host(). If sparc32 does not need it anymore, we can get rid of it at all. Otherwise we could also move LD_HWCAP_MASK / tunable glibc.cpu.hwcap_mask to be sparc32 specific. Reviewed-by: Adhemerval Zanella <adhemerval.zanella@linaro.org>
This commit is contained in:
parent
343439a31e
commit
ad0aa1f549
@ -83,13 +83,6 @@ glibc {
|
|||||||
minval: 0
|
minval: 0
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
cpu {
|
|
||||||
hwcap_mask {
|
|
||||||
type: UINT_64
|
|
||||||
env_alias: LD_HWCAP_MASK
|
|
||||||
default: HWCAP_IMPORTANT
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
elision {
|
elision {
|
||||||
enable {
|
enable {
|
||||||
|
@ -52,7 +52,6 @@ static const struct envvar_t filtered_envvars[] =
|
|||||||
{
|
{
|
||||||
{ "GLIBC_TUNABLES", FILTERED_VALUE },
|
{ "GLIBC_TUNABLES", FILTERED_VALUE },
|
||||||
{ "LD_AUDIT", FILTERED_VALUE },
|
{ "LD_AUDIT", FILTERED_VALUE },
|
||||||
{ "LD_HWCAP_MASK", FILTERED_VALUE },
|
|
||||||
{ "LD_LIBRARY_PATH", FILTERED_VALUE },
|
{ "LD_LIBRARY_PATH", FILTERED_VALUE },
|
||||||
{ "LD_PRELOAD", FILTERED_VALUE },
|
{ "LD_PRELOAD", FILTERED_VALUE },
|
||||||
{ "LD_PROFILE", PROFILE_LIB },
|
{ "LD_PROFILE", PROFILE_LIB },
|
||||||
|
@ -96,11 +96,11 @@ where 'check' is the tunable name and 'val' is a value of same type.
|
|||||||
To get and set tunables in a different namespace from that module, use the full
|
To get and set tunables in a different namespace from that module, use the full
|
||||||
form of the macros as follows:
|
form of the macros as follows:
|
||||||
|
|
||||||
val = TUNABLE_GET_FULL (glibc, cpu, hwcap_mask, uint64_t, NULL)
|
val = TUNABLE_GET_FULL (glibc, malloc, mmap_max, int32_t, NULL)
|
||||||
|
|
||||||
TUNABLE_SET_FULL (glibc, cpu, hwcap_mask, val)
|
TUNABLE_SET_FULL (glibc, malloc, mmap_max, val)
|
||||||
|
|
||||||
where 'glibc' is the top namespace, 'cpu' is the tunable namespace and the
|
where 'glibc' is the top namespace, 'malloc' is the tunable namespace and the
|
||||||
remaining arguments are the same as the short form macros.
|
remaining arguments are the same as the short form macros.
|
||||||
|
|
||||||
The minimum and maximum values can updated together with the tunable value
|
The minimum and maximum values can updated together with the tunable value
|
||||||
@ -114,11 +114,11 @@ where 'check' is the tunable name, 'val' is a value of same type, 'min' and
|
|||||||
To set the minimum and maximum values of tunables in a different namespace
|
To set the minimum and maximum values of tunables in a different namespace
|
||||||
from that module, use the full form of the macros as follows:
|
from that module, use the full form of the macros as follows:
|
||||||
|
|
||||||
val = TUNABLE_GET_FULL (glibc, cpu, hwcap_mask, uint64_t, NULL)
|
val = TUNABLE_GET_FULL (glibc, malloc, mmap_max, int32_t, NULL)
|
||||||
|
|
||||||
TUNABLE_SET_WITH_BOUNDS_FULL (glibc, cpu, hwcap_mask, val, min, max)
|
TUNABLE_SET_WITH_BOUNDS_FULL (glibc, malloc, mmap_max, val, min, max)
|
||||||
|
|
||||||
where 'glibc' is the top namespace, 'cpu' is the tunable namespace and the
|
where 'glibc' is the top namespace, 'malloc' is the tunable namespace and the
|
||||||
remaining arguments are the same as the short form macros.
|
remaining arguments are the same as the short form macros.
|
||||||
|
|
||||||
When TUNABLE_NAMESPACE is not defined in a module, TUNABLE_GET is equivalent to
|
When TUNABLE_NAMESPACE is not defined in a module, TUNABLE_GET is equivalent to
|
||||||
|
@ -55,7 +55,6 @@ glibc.cpu.x86_non_temporal_threshold: 0xc0000 (min: 0x4040, max: 0xfffffffffffff
|
|||||||
glibc.cpu.x86_memset_non_temporal_threshold: 0xc0000 (min: 0x4040, max: 0xfffffffffffffff)
|
glibc.cpu.x86_memset_non_temporal_threshold: 0xc0000 (min: 0x4040, max: 0xfffffffffffffff)
|
||||||
glibc.cpu.x86_shstk:
|
glibc.cpu.x86_shstk:
|
||||||
glibc.pthread.stack_cache_size: 0x2800000 (min: 0x0, max: 0xffffffffffffffff)
|
glibc.pthread.stack_cache_size: 0x2800000 (min: 0x0, max: 0xffffffffffffffff)
|
||||||
glibc.cpu.hwcap_mask: 0x6 (min: 0x0, max: 0xffffffffffffffff)
|
|
||||||
glibc.malloc.mmap_max: 0 (min: 0, max: 2147483647)
|
glibc.malloc.mmap_max: 0 (min: 0, max: 2147483647)
|
||||||
glibc.elision.skip_trylock_internal_abort: 3 (min: 0, max: 2147483647)
|
glibc.elision.skip_trylock_internal_abort: 3 (min: 0, max: 2147483647)
|
||||||
glibc.cpu.plt_rewrite: 0 (min: 0, max: 2)
|
glibc.cpu.plt_rewrite: 0 (min: 0, max: 2)
|
||||||
@ -504,16 +503,6 @@ Behavior of @theglibc{} can be tuned to assume specific hardware capabilities
|
|||||||
by setting the following tunables in the @code{cpu} namespace:
|
by setting the following tunables in the @code{cpu} namespace:
|
||||||
@end deftp
|
@end deftp
|
||||||
|
|
||||||
@deftp Tunable glibc.cpu.hwcap_mask
|
|
||||||
This tunable supersedes the @env{LD_HWCAP_MASK} environment variable and is
|
|
||||||
identical in features.
|
|
||||||
|
|
||||||
The @code{AT_HWCAP} key in the Auxiliary Vector specifies instruction set
|
|
||||||
extensions available in the processor at runtime for some architectures. The
|
|
||||||
@code{glibc.cpu.hwcap_mask} tunable allows the user to mask out those
|
|
||||||
capabilities at runtime, thus disabling use of those extensions.
|
|
||||||
@end deftp
|
|
||||||
|
|
||||||
@deftp Tunable glibc.cpu.hwcaps
|
@deftp Tunable glibc.cpu.hwcaps
|
||||||
The @code{glibc.cpu.hwcaps=-xxx,yyy,-zzz...} tunable allows the user to
|
The @code{glibc.cpu.hwcaps=-xxx,yyy,-zzz...} tunable allows the user to
|
||||||
enable CPU/ARCH feature @code{yyy}, disable CPU/ARCH feature @code{xxx}
|
enable CPU/ARCH feature @code{yyy}, disable CPU/ARCH feature @code{xxx}
|
||||||
|
@ -12,7 +12,6 @@
|
|||||||
"LD_DEBUG\0" \
|
"LD_DEBUG\0" \
|
||||||
"LD_DEBUG_OUTPUT\0" \
|
"LD_DEBUG_OUTPUT\0" \
|
||||||
"LD_DYNAMIC_WEAK\0" \
|
"LD_DYNAMIC_WEAK\0" \
|
||||||
"LD_HWCAP_MASK\0" \
|
|
||||||
"LD_LIBRARY_PATH\0" \
|
"LD_LIBRARY_PATH\0" \
|
||||||
"LD_ORIGIN_PATH\0" \
|
"LD_ORIGIN_PATH\0" \
|
||||||
"LD_PRELOAD\0" \
|
"LD_PRELOAD\0" \
|
||||||
|
@ -39,13 +39,7 @@ elf_machine_matches_host (const Elf32_Ehdr *ehdr)
|
|||||||
return 1;
|
return 1;
|
||||||
else if (ehdr->e_machine == EM_SPARC32PLUS)
|
else if (ehdr->e_machine == EM_SPARC32PLUS)
|
||||||
{
|
{
|
||||||
#if defined SHARED
|
|
||||||
uint64_t hwcap_mask = TUNABLE_GET (glibc, cpu, hwcap_mask, uint64_t,
|
|
||||||
NULL);
|
|
||||||
return GLRO(dl_hwcap) & hwcap_mask & HWCAP_SPARC_V9;
|
|
||||||
#else
|
|
||||||
return GLRO(dl_hwcap) & HWCAP_SPARC_V9;
|
return GLRO(dl_hwcap) & HWCAP_SPARC_V9;
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user