]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
powerpc: Placeholder and infrastructure/build support to add Power11 related changes.
authorAmrita H S <amritahs@linux.ibm.com>
Wed, 20 Mar 2024 00:08:47 +0000 (19:08 -0500)
committerPeter Bergner <bergner@linux.ibm.com>
Wed, 20 Mar 2024 02:11:34 +0000 (21:11 -0500)
The following three changes have been added to provide initial Power11 support.
    1. Add the directories to hold Power11 files.
    2. Add support to select Power11 libraries based on AT_PLATFORM.
    3. Let submachine=power11 be set automatically.

Reviewed-by: Florian Weimer <fweimer@redhat.com>
Reviewed-by: Peter Bergner <bergner@linux.ibm.com>
15 files changed:
sysdeps/powerpc/dl-procinfo.h
sysdeps/powerpc/powerpc32/power11/Implies [new file with mode: 0644]
sysdeps/powerpc/powerpc32/power11/fpu/multiarch/Implies [new file with mode: 0644]
sysdeps/powerpc/powerpc32/power11/multiarch/Implies [new file with mode: 0644]
sysdeps/powerpc/powerpc64/be/power11/Implies [new file with mode: 0644]
sysdeps/powerpc/powerpc64/be/power11/fpu/Implies [new file with mode: 0644]
sysdeps/powerpc/powerpc64/be/power11/fpu/multiarch/Implies [new file with mode: 0644]
sysdeps/powerpc/powerpc64/be/power11/multiarch/Implies [new file with mode: 0644]
sysdeps/powerpc/powerpc64/le/power11/Implies [new file with mode: 0644]
sysdeps/powerpc/powerpc64/le/power11/fpu/Implies [new file with mode: 0644]
sysdeps/powerpc/powerpc64/le/power11/fpu/multiarch/Implies [new file with mode: 0644]
sysdeps/powerpc/powerpc64/le/power11/multiarch/Implies [new file with mode: 0644]
sysdeps/powerpc/powerpc64/le/tst-glibc-hwcaps.c
sysdeps/powerpc/preconfigure
sysdeps/powerpc/preconfigure.ac

index f8cb343877386402b84f563d8abadea04e245052..b36697ba440654bed353ea4eae8c80c44be9a2a0 100644 (file)
@@ -38,7 +38,7 @@
 #define HWCAP_IMPORTANT                (PPC_FEATURE_HAS_ALTIVEC \
                                + PPC_FEATURE_HAS_DFP)
 
-#define _DL_PLATFORMS_COUNT    16
+#define _DL_PLATFORMS_COUNT    17
 
 #define _DL_FIRST_PLATFORM     32
 /* Mask to filter out platforms.  */
@@ -62,6 +62,7 @@
 #define PPC_PLATFORM_POWER8            13
 #define PPC_PLATFORM_POWER9            14
 #define PPC_PLATFORM_POWER10           15
+#define PPC_PLATFORM_POWER11           16
 
 static inline const char *
 __attribute__ ((unused))
@@ -89,6 +90,11 @@ _dl_string_platform (const char *str)
              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;
diff --git a/sysdeps/powerpc/powerpc32/power11/Implies b/sysdeps/powerpc/powerpc32/power11/Implies
new file mode 100644 (file)
index 0000000..051cbe0
--- /dev/null
@@ -0,0 +1,2 @@
+powerpc/powerpc32/power10/fpu
+powerpc/powerpc32/power10
diff --git a/sysdeps/powerpc/powerpc32/power11/fpu/multiarch/Implies b/sysdeps/powerpc/powerpc32/power11/fpu/multiarch/Implies
new file mode 100644 (file)
index 0000000..58edb28
--- /dev/null
@@ -0,0 +1 @@
+powerpc/powerpc32/power10/fpu/multiarch
diff --git a/sysdeps/powerpc/powerpc32/power11/multiarch/Implies b/sysdeps/powerpc/powerpc32/power11/multiarch/Implies
new file mode 100644 (file)
index 0000000..c70f042
--- /dev/null
@@ -0,0 +1 @@
+powerpc/powerpc32/power10/multiarch
diff --git a/sysdeps/powerpc/powerpc64/be/power11/Implies b/sysdeps/powerpc/powerpc64/be/power11/Implies
new file mode 100644 (file)
index 0000000..de481d1
--- /dev/null
@@ -0,0 +1,2 @@
+powerpc/powerpc64/be/power10/fpu
+powerpc/powerpc64/be/power10
diff --git a/sysdeps/powerpc/powerpc64/be/power11/fpu/Implies b/sysdeps/powerpc/powerpc64/be/power11/fpu/Implies
new file mode 100644 (file)
index 0000000..dff0e13
--- /dev/null
@@ -0,0 +1 @@
+powerpc/powerpc64/be/power10/fpu
diff --git a/sysdeps/powerpc/powerpc64/be/power11/fpu/multiarch/Implies b/sysdeps/powerpc/powerpc64/be/power11/fpu/multiarch/Implies
new file mode 100644 (file)
index 0000000..c3f259e
--- /dev/null
@@ -0,0 +1 @@
+powerpc/powerpc64/be/power10/fpu/multiarch
diff --git a/sysdeps/powerpc/powerpc64/be/power11/multiarch/Implies b/sysdeps/powerpc/powerpc64/be/power11/multiarch/Implies
new file mode 100644 (file)
index 0000000..9491a39
--- /dev/null
@@ -0,0 +1 @@
+powerpc/powerpc64/be/power10/multiarch
diff --git a/sysdeps/powerpc/powerpc64/le/power11/Implies b/sysdeps/powerpc/powerpc64/le/power11/Implies
new file mode 100644 (file)
index 0000000..e18182d
--- /dev/null
@@ -0,0 +1,2 @@
+powerpc/powerpc64/le/power10/fpu
+powerpc/powerpc64/le/power10
diff --git a/sysdeps/powerpc/powerpc64/le/power11/fpu/Implies b/sysdeps/powerpc/powerpc64/le/power11/fpu/Implies
new file mode 100644 (file)
index 0000000..e41bd55
--- /dev/null
@@ -0,0 +1 @@
+powerpc/powerpc64/le/power10/fpu
diff --git a/sysdeps/powerpc/powerpc64/le/power11/fpu/multiarch/Implies b/sysdeps/powerpc/powerpc64/le/power11/fpu/multiarch/Implies
new file mode 100644 (file)
index 0000000..c838d50
--- /dev/null
@@ -0,0 +1 @@
+powerpc/powerpc64/le/power10/fpu/multiarch
diff --git a/sysdeps/powerpc/powerpc64/le/power11/multiarch/Implies b/sysdeps/powerpc/powerpc64/le/power11/multiarch/Implies
new file mode 100644 (file)
index 0000000..687248c
--- /dev/null
@@ -0,0 +1 @@
+powerpc/powerpc64/le/power10/multiarch
index 77465d9133410267f67e7312222b996ba86c0742..65d3e69303a1c96389d72b059da807a9bc482b38 100644 (file)
@@ -36,9 +36,11 @@ compute_level (void)
     return 9;
   if (strcmp (platform, "power10") == 0)
     return 10;
+  if (strcmp (platform, "power11") == 0)
+    return 11;
   printf ("warning: unrecognized AT_PLATFORM value: %s\n", platform);
-  /* Assume that the new platform supports POWER10.  */
-  return 10;
+  /* Assume that the new platform supports POWER11.  */
+  return 11;
 }
 
 static int
index 4de94089a3f685325f639368a49ff0a03c3cbaa1..9e5a07ab6d6767cdd11cc42f0032516cb9a2846d 100644 (file)
@@ -58,7 +58,7 @@ fi
 
     ;;
 
-  a2|970|power[4-9]|power5x|power6+|power10)
+  a2|970|power[4-9]|power5x|power6+|power10|power11)
     submachine=${archcpu}
     if test ${libc_cv_cc_submachine+y}
 then :
index 6c63bd8257b7e40a548a4de4cbb2fe26ce7d62bc..14b6dafd4a895c3b19e83b7df49c0385338e13ea 100644 (file)
@@ -46,7 +46,7 @@ case "${machine}:${submachine}" in
     AC_CACHE_VAL(libc_cv_cc_submachine,libc_cv_cc_submachine="")
     ;;
 
-  a2|970|power[[4-9]]|power5x|power6+|power10)
+  a2|970|power[[4-9]]|power5x|power6+|power10|power11)
     submachine=${archcpu}
     AC_CACHE_VAL(libc_cv_cc_submachine,libc_cv_cc_submachine="")
     ;;