File power10-support.patch of Package glibc.25132
From ae725e3f9cb4e1eb825ebe1d55241c98c2ea32f1 Mon Sep 17 00:00:00 2001
From: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
Date: Mon, 15 Jun 2020 11:15:57 -0300
Subject: [PATCH] powerpc: Add new hwcap values
Linux commit ID ee988c11acf6f9464b7b44e9a091bf6afb3b3a49 reserved 2 new
bits in AT_HWCAP2:
- PPC_FEATURE2_ARCH_3_1 indicates the availability of the POWER ISA
3.1;
- PPC_FEATURE2_MMA indicates the availability of the Matrix-Multiply
Assist facility.
---
From d2ba3677da7a785556fcd708404d8e049b1c063b Mon Sep 17 00:00:00 2001
From: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
Date: Wed, 24 Jun 2020 18:04:41 -0300
Subject: [PATCH] powerpc: Add support for POWER10
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.
---
From f6add169c89bbdd139a2eb845686127ead5799cd Mon Sep 17 00:00:00 2001
From: Tulio Magno Quites Machado Filho <tuliom@linux.ibm.com>
Date: Tue, 21 Jul 2020 18:01:39 -0300
Subject: [PATCH] powerpc: Fix POWER10 selection
Add a line that was missing from a previous commit.
Without increasing str, the null-byte is not validated, and
_dl_string_platform returns -1.
Fixes: d2ba3677da7a ("powerpc: Add support for POWER10")
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
---
Index: glibc-2.31/sysdeps/powerpc/bits/hwcap.h
===================================================================
--- glibc-2.31.orig/sysdeps/powerpc/bits/hwcap.h
+++ glibc-2.31/sysdeps/powerpc/bits/hwcap.h
@@ -74,3 +74,5 @@
#define PPC_FEATURE2_SCV 0x00100000 /* scv syscall. */
#define PPC_FEATURE2_HTM_NO_SUSPEND 0x00080000 /* TM without suspended
state. */
+#define PPC_FEATURE2_ARCH_3_1 0x00040000 /* ISA 3.1. */
+#define PPC_FEATURE2_MMA 0x00020000 /* Matrix-Multiply Assist. */
Index: glibc-2.31/sysdeps/powerpc/dl-procinfo.c
===================================================================
--- glibc-2.31.orig/sysdeps/powerpc/dl-procinfo.c
+++ glibc-2.31/sysdeps/powerpc/dl-procinfo.c
@@ -77,7 +77,7 @@ PROCINFO_CLASS const char _dl_powerpc_ca
"", "", "", "",
"", "", "", "",
"", "", "", "",
- "", "", "", "htm-no-suspend",
+ "", "mma", "arch_3_1", "htm-no-suspend",
"scv", "darn", "ieee128", "arch_3_00",
"htm-nosc", "vcrypto", "tar", "isel",
"ebb", "dscr", "htm", "arch_2_07",
Index: glibc-2.31/sysdeps/powerpc/dl-procinfo.h
===================================================================
--- glibc-2.31.orig/sysdeps/powerpc/dl-procinfo.h
+++ glibc-2.31/sysdeps/powerpc/dl-procinfo.h
@@ -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,15 @@ _dl_string_platform (const char *str)
str += 5;
switch (*str)
{
+ case '1':
+ if (str[1] == '0')
+ {
+ ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER10;
+ str++;
+ }
+ else
+ return -1;
+ break;
case '4':
ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER4;
break;