aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdhemerval Zanella <adhemerval.zanella@linaro.org>2025-02-26 17:09:50 +0000
committerAdhemerval Zanella <adhemerval.zanella@linaro.org>2025-03-05 11:22:09 -0300
commit2fd580ea465d1a74214546d59714f662e74b3022 (patch)
treee3e4638ededc63306a426524e604e10ec10f0fb5
parenta768993c10c64eeea0d4b9997db0bd3e48e868be (diff)
downloadglibc-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.h129
-rw-r--r--sysdeps/powerpc/hwcapinfo.h104
-rw-r--r--sysdeps/powerpc/nptl/tls.h2
-rw-r--r--sysdeps/powerpc/test-get_hwcap.c3
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/cpu-features.c1
-rw-r--r--sysdeps/unix/sysv/linux/powerpc/elision-conf.c1
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>