This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
[PATCH rsa/power8_partial]
- From: Ryan S Arnold <rsa at linux dot vnet dot ibm dot com>
- To: libc-alpha at sourceware dot org
- Date: Fri, 21 Jun 2013 10:21:44 -0500
- Subject: [PATCH rsa/power8_partial]
Hi all,
The following is the minimal POWER8 platform enablement (so that a
power8 optimized library can be built). This lacks hwcap bits for
power8 since those are blocked on AT_HWCAP2, which will slip into glibc
2.19.
The following patch is in rsa/power8_partial. I've tested it on my
power8 and it seems to work fine.
Please let me know if I've missed something.
Ryan
commit 46f43b3f98e4cadeedfad58b9631dfe5d1dc7544
Author: Ryan S. Arnold <rsa@linux.vnet.ibm.com>
Date: Thu Jun 20 13:39:05 2013 -0500
PowerPC: Enable POWER8 platform sans hwcap bits.
ChangeLog
2013-06-20 Ryan S. Arnold <rsa@linux.vnet.ibm.com>
* sysdeps/powerpc/dl-procinfo.c (_dl_powerpc_platforms): Add "power8"
entry mapped to PPC_PLATFORM_POWER8.
* sysdeps/powerpc/dl-procinfo.h (_DL_PLATFORMS_COUNT): Increment for
POWER8.
(PPC_PLATFORM_POWER8): Add new platform bit for POWER8 processor.
(_dl_string_platform): Add case for exporting platform position for
POWER8.
* sysdeps/unix/sysv/linux/powerpc/powerpc32/power8/Implies: Chain
search path to sysdeps/powerpc/powerpc32/power8 directory.
* sysdeps/unix/sysv/linux/powerpc/powerpc64/power8/Implies: Chain
search path to sysdeps/powerpc/powerpc64/power8 directory.
* sysdeps/powerpc/powerpc32/power8/Implies: Chain search path to
power7 directories.
* sysdeps/powerpc/powerpc64/power8/Implies: Chain search path to
power7 directories.
diff --git a/sysdeps/powerpc/dl-procinfo.c b/sysdeps/powerpc/dl-procinfo.c
index 0f5c2b3..c7740db 100644
--- a/sysdeps/powerpc/dl-procinfo.c
+++ b/sysdeps/powerpc/dl-procinfo.c
@@ -67,7 +67,7 @@ PROCINFO_CLASS const char _dl_powerpc_cap_flags[25][10]
#if !defined PROCINFO_DECL && defined SHARED
._dl_powerpc_platforms
#else
-PROCINFO_CLASS const char _dl_powerpc_platforms[13][12]
+PROCINFO_CLASS const char _dl_powerpc_platforms[14][12]
#endif
#ifndef PROCINFO_DECL
= {
@@ -83,7 +83,8 @@ PROCINFO_CLASS const char _dl_powerpc_platforms[13][12]
[PPC_PLATFORM_PPC405] = "ppc405",
[PPC_PLATFORM_PPC440] = "ppc440",
[PPC_PLATFORM_PPC464] = "ppc464",
- [PPC_PLATFORM_PPC476] = "ppc476"
+ [PPC_PLATFORM_PPC476] = "ppc476",
+ [PPC_PLATFORM_POWER8] = "power8"
}
#endif
#if !defined SHARED || defined PROCINFO_DECL
diff --git a/sysdeps/powerpc/dl-procinfo.h b/sysdeps/powerpc/dl-procinfo.h
index 568fe19..1c978ba 100644
--- a/sysdeps/powerpc/dl-procinfo.h
+++ b/sysdeps/powerpc/dl-procinfo.h
@@ -30,7 +30,7 @@
#define HWCAP_IMPORTANT (PPC_FEATURE_HAS_ALTIVEC \
+ PPC_FEATURE_HAS_DFP)
-#define _DL_PLATFORMS_COUNT 13
+#define _DL_PLATFORMS_COUNT 14
#define _DL_FIRST_PLATFORM 32
/* Mask to filter out platforms. */
@@ -51,6 +51,7 @@
#define PPC_PLATFORM_PPC440 10
#define PPC_PLATFORM_PPC464 11
#define PPC_PLATFORM_PPC476 12
+#define PPC_PLATFORM_POWER8 13
static inline const char *
__attribute__ ((unused))
@@ -111,6 +112,9 @@ _dl_string_platform (const char *str)
case '7':
ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER7;
break;
+ case '8':
+ ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER8;
+ break;
default:
return -1;
}
diff --git a/sysdeps/powerpc/powerpc32/power8/Implies b/sysdeps/powerpc/powerpc32/power8/Implies
new file mode 100644
index 0000000..083f3e9
--- /dev/null
+++ b/sysdeps/powerpc/powerpc32/power8/Implies
@@ -0,0 +1,2 @@
+powerpc/powerpc32/power7/fpu
+powerpc/powerpc32/power7
diff --git a/sysdeps/powerpc/powerpc64/power8/Implies b/sysdeps/powerpc/powerpc64/power8/Implies
new file mode 100644
index 0000000..9a5e3c7
--- /dev/null
+++ b/sysdeps/powerpc/powerpc64/power8/Implies
@@ -0,0 +1,2 @@
+powerpc/powerpc64/power7/fpu
+powerpc/powerpc64/power7
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/power8/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc32/power8/Implies
new file mode 100644
index 0000000..066dea2
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/power8/Implies
@@ -0,0 +1,2 @@
+powerpc/powerpc32/power8/fpu
+powerpc/powerpc32/power8
diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/power8/Implies b/sysdeps/unix/sysv/linux/powerpc/powerpc64/power8/Implies
new file mode 100644
index 0000000..fad2505
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/power8/Implies
@@ -0,0 +1,2 @@
+powerpc/powerpc64/power8/fpu
+powerpc/powerpc64/power8