diff --git a/sysdeps/powerpc/dl-procinfo.h b/sysdeps/powerpc/dl-procinfo.h
deleted file mode 100644
index adb1c6994e..0000000000
--- 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 f1b989dfb3..3737731d0e 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 50b45b095f..683d5b3960 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 0b507ec25e..9d6411897e 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 f0fabac0e0..671aa07847 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>
 
 #define ENABLE_BIT(__hwcap, __v)        __hwcap &= (__v)
 #define DISABLE_BIT(__hwcap, __h, __v)  __hwcap |= (__h) & (__v)
diff --git a/sysdeps/unix/sysv/linux/powerpc/elision-conf.c b/sysdeps/unix/sysv/linux/powerpc/elision-conf.c
index e42a19e454..fe98c6ba71 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>
