aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Liebler <stli@linux.ibm.com>2024-06-07 13:42:43 +0200
committerStefan Liebler <stli@linux.ibm.com>2024-06-18 10:45:36 +0200
commitad0aa1f54975bd20e30559930ea48a3568441ff4 (patch)
treea61b1c1b03cfc17b4ccd3f208bdaf341d1d012b3
parent343439a31ed1f07da307037b2c92b8ab3367c05c (diff)
downloadglibc-ad0aa1f54975bd20e30559930ea48a3568441ff4.zip
glibc-ad0aa1f54975bd20e30559930ea48a3568441ff4.tar.gz
glibc-ad0aa1f54975bd20e30559930ea48a3568441ff4.tar.bz2
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>
-rw-r--r--elf/dl-tunables.list7
-rw-r--r--elf/tst-env-setuid.c1
-rw-r--r--manual/README.tunables12
-rw-r--r--manual/tunables.texi11
-rw-r--r--sysdeps/generic/unsecvars.h1
-rw-r--r--sysdeps/sparc/sparc32/dl-machine.h6
6 files changed, 6 insertions, 32 deletions
diff --git a/elf/dl-tunables.list b/elf/dl-tunables.list
index 1186272..40ac5b3 100644
--- a/elf/dl-tunables.list
+++ b/elf/dl-tunables.list
@@ -83,13 +83,6 @@ glibc {
minval: 0
}
}
- cpu {
- hwcap_mask {
- type: UINT_64
- env_alias: LD_HWCAP_MASK
- default: HWCAP_IMPORTANT
- }
- }
elision {
enable {
diff --git a/elf/tst-env-setuid.c b/elf/tst-env-setuid.c
index 43047c4..59f2ffe 100644
--- a/elf/tst-env-setuid.c
+++ b/elf/tst-env-setuid.c
@@ -52,7 +52,6 @@ static const struct envvar_t filtered_envvars[] =
{
{ "GLIBC_TUNABLES", FILTERED_VALUE },
{ "LD_AUDIT", FILTERED_VALUE },
- { "LD_HWCAP_MASK", FILTERED_VALUE },
{ "LD_LIBRARY_PATH", FILTERED_VALUE },
{ "LD_PRELOAD", FILTERED_VALUE },
{ "LD_PROFILE", PROFILE_LIB },
diff --git a/manual/README.tunables b/manual/README.tunables
index 72ae00d..5948793 100644
--- a/manual/README.tunables
+++ b/manual/README.tunables
@@ -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
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.
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
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.
When TUNABLE_NAMESPACE is not defined in a module, TUNABLE_GET is equivalent to
diff --git a/manual/tunables.texi b/manual/tunables.texi
index 8dd02d8..0b1b2898 100644
--- a/manual/tunables.texi
+++ b/manual/tunables.texi
@@ -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_shstk:
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.elision.skip_trylock_internal_abort: 3 (min: 0, max: 2147483647)
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:
@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
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}
diff --git a/sysdeps/generic/unsecvars.h b/sysdeps/generic/unsecvars.h
index f1724ef..97857a1 100644
--- a/sysdeps/generic/unsecvars.h
+++ b/sysdeps/generic/unsecvars.h
@@ -12,7 +12,6 @@
"LD_DEBUG\0" \
"LD_DEBUG_OUTPUT\0" \
"LD_DYNAMIC_WEAK\0" \
- "LD_HWCAP_MASK\0" \
"LD_LIBRARY_PATH\0" \
"LD_ORIGIN_PATH\0" \
"LD_PRELOAD\0" \
diff --git a/sysdeps/sparc/sparc32/dl-machine.h b/sysdeps/sparc/sparc32/dl-machine.h
index d855c66..2c56d8a 100644
--- a/sysdeps/sparc/sparc32/dl-machine.h
+++ b/sysdeps/sparc/sparc32/dl-machine.h
@@ -39,13 +39,7 @@ elf_machine_matches_host (const Elf32_Ehdr *ehdr)
return 1;
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;
-#endif
}
else
return 0;