powerpc: Add support for POWER10
authorTulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
Wed, 24 Jun 2020 21:04:41 +0000 (18:04 -0300)
committerTulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
Mon, 29 Jun 2020 13:08:38 +0000 (10:08 -0300)
1. Add the directories to hold POWER10 files.

2. Add support to select POWER10 libraries based on AT_PLATFORM.

3. Let submachine=power10 be set automatically.

14 files changed:
sysdeps/powerpc/dl-procinfo.h
sysdeps/powerpc/powerpc32/power10/Implies [new file with mode: 0644]
sysdeps/powerpc/powerpc32/power10/fpu/multiarch/Implies [new file with mode: 0644]
sysdeps/powerpc/powerpc32/power10/multiarch/Implies [new file with mode: 0644]
sysdeps/powerpc/powerpc64/be/power10/Implies [new file with mode: 0644]
sysdeps/powerpc/powerpc64/be/power10/fpu/Implies [new file with mode: 0644]
sysdeps/powerpc/powerpc64/be/power10/fpu/multiarch/Implies [new file with mode: 0644]
sysdeps/powerpc/powerpc64/be/power10/multiarch/Implies [new file with mode: 0644]
sysdeps/powerpc/powerpc64/le/power10/Implies [new file with mode: 0644]
sysdeps/powerpc/powerpc64/le/power10/fpu/Implies [new file with mode: 0644]
sysdeps/powerpc/powerpc64/le/power10/fpu/multiarch/Implies [new file with mode: 0644]
sysdeps/powerpc/powerpc64/le/power10/multiarch/Implies [new file with mode: 0644]
sysdeps/powerpc/preconfigure
sysdeps/powerpc/preconfigure.ac

index 9ae85f4..497dc56 100644 (file)
@@ -37,7 +37,7 @@
 #define HWCAP_IMPORTANT                (PPC_FEATURE_HAS_ALTIVEC \
                                + PPC_FEATURE_HAS_DFP)
 
-#define _DL_PLATFORMS_COUNT    15
+#define _DL_PLATFORMS_COUNT    16
 
 #define _DL_FIRST_PLATFORM     32
 /* Mask to filter out platforms.  */
@@ -60,6 +60,7 @@
 #define PPC_PLATFORM_PPC476            12
 #define PPC_PLATFORM_POWER8            13
 #define PPC_PLATFORM_POWER9            14
+#define PPC_PLATFORM_POWER10           15
 
 static inline const char *
 __attribute__ ((unused))
@@ -91,6 +92,14 @@ _dl_string_platform (const char *str)
       str += 5;
       switch (*str)
        {
+       case '1':
+         if (str[1] == '0')
+           {
+             ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER10;
+           }
+         else
+           return -1;
+         break;
        case '4':
          ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER4;
          break;
diff --git a/sysdeps/powerpc/powerpc32/power10/Implies b/sysdeps/powerpc/powerpc32/power10/Implies
new file mode 100644 (file)
index 0000000..b298aca
--- /dev/null
@@ -0,0 +1,2 @@
+powerpc/powerpc32/power9/fpu
+powerpc/powerpc32/power9
diff --git a/sysdeps/powerpc/powerpc32/power10/fpu/multiarch/Implies b/sysdeps/powerpc/powerpc32/power10/fpu/multiarch/Implies
new file mode 100644 (file)
index 0000000..1ffddd1
--- /dev/null
@@ -0,0 +1 @@
+powerpc/powerpc32/power9/fpu/multiarch
diff --git a/sysdeps/powerpc/powerpc32/power10/multiarch/Implies b/sysdeps/powerpc/powerpc32/power10/multiarch/Implies
new file mode 100644 (file)
index 0000000..46363b5
--- /dev/null
@@ -0,0 +1 @@
+powerpc/powerpc32/power9/multiarch
diff --git a/sysdeps/powerpc/powerpc64/be/power10/Implies b/sysdeps/powerpc/powerpc64/be/power10/Implies
new file mode 100644 (file)
index 0000000..5aea9bc
--- /dev/null
@@ -0,0 +1,2 @@
+powerpc/powerpc64/be/power9/fpu
+powerpc/powerpc64/be/power9
diff --git a/sysdeps/powerpc/powerpc64/be/power10/fpu/Implies b/sysdeps/powerpc/powerpc64/be/power10/fpu/Implies
new file mode 100644 (file)
index 0000000..19b2a31
--- /dev/null
@@ -0,0 +1 @@
+powerpc/powerpc64/be/power9/fpu
diff --git a/sysdeps/powerpc/powerpc64/be/power10/fpu/multiarch/Implies b/sysdeps/powerpc/powerpc64/be/power10/fpu/multiarch/Implies
new file mode 100644 (file)
index 0000000..a336feb
--- /dev/null
@@ -0,0 +1 @@
+powerpc/powerpc64/be/power9/fpu/multiarch
diff --git a/sysdeps/powerpc/powerpc64/be/power10/multiarch/Implies b/sysdeps/powerpc/powerpc64/be/power10/multiarch/Implies
new file mode 100644 (file)
index 0000000..b4c0f0a
--- /dev/null
@@ -0,0 +1 @@
+powerpc/powerpc64/be/power9/multiarch
diff --git a/sysdeps/powerpc/powerpc64/le/power10/Implies b/sysdeps/powerpc/powerpc64/le/power10/Implies
new file mode 100644 (file)
index 0000000..9e1b787
--- /dev/null
@@ -0,0 +1,2 @@
+powerpc/powerpc64/le/power9/fpu
+powerpc/powerpc64/le/power9
diff --git a/sysdeps/powerpc/powerpc64/le/power10/fpu/Implies b/sysdeps/powerpc/powerpc64/le/power10/fpu/Implies
new file mode 100644 (file)
index 0000000..1b3525a
--- /dev/null
@@ -0,0 +1 @@
+powerpc/powerpc64/le/power9/fpu
diff --git a/sysdeps/powerpc/powerpc64/le/power10/fpu/multiarch/Implies b/sysdeps/powerpc/powerpc64/le/power10/fpu/multiarch/Implies
new file mode 100644 (file)
index 0000000..189beb8
--- /dev/null
@@ -0,0 +1 @@
+powerpc/powerpc64/le/power9/fpu/multiarch
diff --git a/sysdeps/powerpc/powerpc64/le/power10/multiarch/Implies b/sysdeps/powerpc/powerpc64/le/power10/multiarch/Implies
new file mode 100644 (file)
index 0000000..e6e5fc8
--- /dev/null
@@ -0,0 +1 @@
+powerpc/powerpc64/le/power9/multiarch
index deac5a4..dfe8e20 100644 (file)
@@ -56,7 +56,7 @@ fi
 
     ;;
 
-  a2|970|power[4-9]|power5x|power6+)
+  a2|970|power[4-9]|power5x|power6+|power10)
     submachine=${archcpu}
     if ${libc_cv_cc_submachine+:} false; then :
   $as_echo_n "(cached) " >&6
index e6a5ae9..6c63bd8 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+)
+  a2|970|power[[4-9]]|power5x|power6+|power10)
     submachine=${archcpu}
     AC_CACHE_VAL(libc_cv_cc_submachine,libc_cv_cc_submachine="")
     ;;