diff options
author | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2025-02-26 17:09:50 +0000 |
---|---|---|
committer | Adhemerval Zanella <adhemerval.zanella@linaro.org> | 2025-03-05 11:22:09 -0300 |
commit | 2fd580ea465d1a74214546d59714f662e74b3022 (patch) | |
tree | e3e4638ededc63306a426524e604e10ec10f0fb5 | |
parent | a768993c10c64eeea0d4b9997db0bd3e48e868be (diff) | |
download | glibc-2fd580ea465d1a74214546d59714f662e74b3022.zip glibc-2fd580ea465d1a74214546d59714f662e74b3022.tar.gz glibc-2fd580ea465d1a74214546d59714f662e74b3022.tar.bz2 |
powerpc: Remove unused dl-procinfo.h
The _dl_string_platform is moved to hwcapinfo.h, since it is only used
by hwcapinfo.c and test-get_hwcap internal test.
Checked on powerpc64le-linux-gnu.
Reviewed-by: Peter Bergner <bergner@linux.ibm.com>
-rw-r--r-- | sysdeps/powerpc/dl-procinfo.h | 129 | ||||
-rw-r--r-- | sysdeps/powerpc/hwcapinfo.h | 104 | ||||
-rw-r--r-- | sysdeps/powerpc/nptl/tls.h | 2 | ||||
-rw-r--r-- | sysdeps/powerpc/test-get_hwcap.c | 3 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/powerpc/cpu-features.c | 1 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/powerpc/elision-conf.c | 1 |
6 files changed, 109 insertions, 131 deletions
diff --git a/sysdeps/powerpc/dl-procinfo.h b/sysdeps/powerpc/dl-procinfo.h deleted file mode 100644 index adb1c69..0000000 --- a/sysdeps/powerpc/dl-procinfo.h +++ /dev/null @@ -1,129 +0,0 @@ -/* Processor capability information handling macros. PowerPC version. - Copyright (C) 2005-2025 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library. If not, see - <https://www.gnu.org/licenses/>. */ - -#ifndef _DL_PROCINFO_H -#define _DL_PROCINFO_H 1 - -#include <ldsodefs.h> - -#define _DL_FIRST_PLATFORM 32 - -/* Platform bits (relative to _DL_FIRST_PLATFORM). */ -#define PPC_PLATFORM_POWER4 0 -#define PPC_PLATFORM_PPC970 1 -#define PPC_PLATFORM_POWER5 2 -#define PPC_PLATFORM_POWER5_PLUS 3 -#define PPC_PLATFORM_POWER6 4 -#define PPC_PLATFORM_CELL_BE 5 -#define PPC_PLATFORM_POWER6X 6 -#define PPC_PLATFORM_POWER7 7 -#define PPC_PLATFORM_PPCA2 8 -#define PPC_PLATFORM_PPC405 9 -#define PPC_PLATFORM_PPC440 10 -#define PPC_PLATFORM_PPC464 11 -#define PPC_PLATFORM_PPC476 12 -#define PPC_PLATFORM_POWER8 13 -#define PPC_PLATFORM_POWER9 14 -#define PPC_PLATFORM_POWER10 15 -#define PPC_PLATFORM_POWER11 16 - -static inline int -__attribute__ ((unused, always_inline)) -_dl_string_platform (const char *str) -{ - if (str == NULL) - return -1; - - if (strncmp (str, "power", 5) == 0) - { - int ret; - str += 5; - switch (*str) - { - case '1': - if (str[1] == '0') - { - ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER10; - str++; - } - else if (str[1] == '1') - { - ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER11; - str++; - } - else - return -1; - break; - case '4': - ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER4; - break; - case '5': - ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER5; - if (str[1] == '+') - { - ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER5_PLUS; - ++str; - } - break; - case '6': - ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER6; - if (str[1] == 'x') - { - ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER6X; - ++str; - } - break; - case '7': - ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER7; - break; - case '8': - ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER8; - break; - case '9': - ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER9; - break; - default: - return -1; - } - if (str[1] == '\0') - return ret; - } - else if (strncmp (str, "ppc", 3) == 0) - { - if (strcmp (str + 3, "970") == 0) - return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC970; - else if (strcmp (str + 3, "-cell-be") == 0) - return _DL_FIRST_PLATFORM + PPC_PLATFORM_CELL_BE; - else if (strcmp (str + 3, "a2") == 0) - return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPCA2; - else if (strcmp (str + 3, "405") == 0) - return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC405; - else if (strcmp (str + 3, "440") == 0) - return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC440; - else if (strcmp (str + 3, "464") == 0) - return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC464; - else if (strcmp (str + 3, "476") == 0) - return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC476; - } - - return -1; -} - -#define _dl_procinfo(type, word) -1 - -#endif /* dl-procinfo.h */ diff --git a/sysdeps/powerpc/hwcapinfo.h b/sysdeps/powerpc/hwcapinfo.h index f1b989d..3737731 100644 --- a/sysdeps/powerpc/hwcapinfo.h +++ b/sysdeps/powerpc/hwcapinfo.h @@ -16,12 +16,114 @@ License along with the GNU C Library; if not, see <https://www.gnu.org/licenses/>. */ +#include <string.h> #include <stdint.h> #ifndef HWCAPINFO_H # define HWCAPINFO_H -extern tcbhead_t __tcb attribute_hidden; +#define _DL_FIRST_PLATFORM 32 + +/* Platform bits (relative to _DL_FIRST_PLATFORM). */ +#define PPC_PLATFORM_POWER4 0 +#define PPC_PLATFORM_PPC970 1 +#define PPC_PLATFORM_POWER5 2 +#define PPC_PLATFORM_POWER5_PLUS 3 +#define PPC_PLATFORM_POWER6 4 +#define PPC_PLATFORM_CELL_BE 5 +#define PPC_PLATFORM_POWER6X 6 +#define PPC_PLATFORM_POWER7 7 +#define PPC_PLATFORM_PPCA2 8 +#define PPC_PLATFORM_PPC405 9 +#define PPC_PLATFORM_PPC440 10 +#define PPC_PLATFORM_PPC464 11 +#define PPC_PLATFORM_PPC476 12 +#define PPC_PLATFORM_POWER8 13 +#define PPC_PLATFORM_POWER9 14 +#define PPC_PLATFORM_POWER10 15 +#define PPC_PLATFORM_POWER11 16 + +static inline int +__attribute__ ((unused, always_inline)) +_dl_string_platform (const char *str) +{ + if (str == NULL) + return -1; + + if (strncmp (str, "power", 5) == 0) + { + int ret; + str += 5; + switch (*str) + { + case '1': + if (str[1] == '0') + { + ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER10; + str++; + } + else if (str[1] == '1') + { + ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER11; + str++; + } + else + return -1; + break; + case '4': + ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER4; + break; + case '5': + ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER5; + if (str[1] == '+') + { + ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER5_PLUS; + ++str; + } + break; + case '6': + ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER6; + if (str[1] == 'x') + { + ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER6X; + ++str; + } + break; + case '7': + ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER7; + break; + case '8': + ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER8; + break; + case '9': + ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER9; + break; + default: + return -1; + } + if (str[1] == '\0') + return ret; + } + else if (strncmp (str, "ppc", 3) == 0) + { + if (strcmp (str + 3, "970") == 0) + return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC970; + else if (strcmp (str + 3, "-cell-be") == 0) + return _DL_FIRST_PLATFORM + PPC_PLATFORM_CELL_BE; + else if (strcmp (str + 3, "a2") == 0) + return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPCA2; + else if (strcmp (str + 3, "405") == 0) + return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC405; + else if (strcmp (str + 3, "440") == 0) + return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC440; + else if (strcmp (str + 3, "464") == 0) + return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC464; + else if (strcmp (str + 3, "476") == 0) + return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC476; + } + + return -1; +} extern void __tcb_parse_hwcap_and_convert_at_platform (void); diff --git a/sysdeps/powerpc/nptl/tls.h b/sysdeps/powerpc/nptl/tls.h index 50b45b0..683d5b3 100644 --- a/sysdeps/powerpc/nptl/tls.h +++ b/sysdeps/powerpc/nptl/tls.h @@ -101,6 +101,8 @@ typedef struct dtv_t *dtv; } tcbhead_t; +extern tcbhead_t __tcb attribute_hidden; + # include <hwcapinfo.h> /* This is the size of the initial TCB. */ diff --git a/sysdeps/powerpc/test-get_hwcap.c b/sysdeps/powerpc/test-get_hwcap.c index 0b507ec..9d64118 100644 --- a/sysdeps/powerpc/test-get_hwcap.c +++ b/sysdeps/powerpc/test-get_hwcap.c @@ -28,9 +28,10 @@ #include <sys/auxv.h> -#include <dl-procinfo.h> +#include <hwcapinfo.h> #ifndef STATIC_TST_HWCAP +#include <cpu-features.h> #undef PROCINFO_DECL #include <dl-procinfo.c> #endif diff --git a/sysdeps/unix/sysv/linux/powerpc/cpu-features.c b/sysdeps/unix/sysv/linux/powerpc/cpu-features.c index 520ccaa..88fe55f 100644 --- a/sysdeps/unix/sysv/linux/powerpc/cpu-features.c +++ b/sysdeps/unix/sysv/linux/powerpc/cpu-features.c @@ -24,6 +24,7 @@ #include <dl-hwcap-info.h> #include <unistd.h> #include <string.h> +#include <ldsodefs.h> static void set_hwcap_bit (unsigned long int *hwcap, bool disable, unsigned long int tcb_value, unsigned int value) diff --git a/sysdeps/unix/sysv/linux/powerpc/elision-conf.c b/sysdeps/unix/sysv/linux/powerpc/elision-conf.c index e42a19e..fe98c6b 100644 --- a/sysdeps/unix/sysv/linux/powerpc/elision-conf.c +++ b/sysdeps/unix/sysv/linux/powerpc/elision-conf.c @@ -21,6 +21,7 @@ #include <elision-conf.h> #include <unistd.h> #include <dl-procinfo.h> +#include <ldsodefs.h> #define TUNABLE_NAMESPACE elision #include <elf/dl-tunables.h> |