This is the mail archive of the libc-hacker@sourceware.org mailing list for the glibc project.

Note that libc-hacker is a closed list. You may look at the archives of this list, but subscription and posting are not open.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH]: Recognize HWCAP_SPARC_BLKINIT


SUN4V Niagara processors have a load-twin/block-init-store capability
which is indicated by bit 6 in the HWCAP_* mask from the kernel.

Add recognition of that value to glibc, and ask it to use "v9v"
in the library search path.

2006-02-24  David S. Miller  <davem@sunset.davemloft.net>

	* elf/elf.h: Add HWCAP_SPARC_BLKINIT.
	* sysdeps/unix/sysv/linux/sparc/sparc32/dl-procinfo.c: Add "v9v"
	entry to _dl_sparc32_cap_flags.
	* sysdeps/unix/sysv/linux/sparc/sparc32/dl-procinfo.h: Add
	HWCAP_SPARC_BLKINIT to HWCAP_IMPORTANT.
	* sysdeps/unix/sysv/linux/sparc/sparc64/dl-procinfo.c: Add "v9v"
	entry to _dl_sparc32_cap_flags.
	* sysdeps/unix/sysv/linux/sparc/sparc64/dl-procinfo.h: Add
	HWCAP_SPARC_BLKINIT to HWCAP_IMPORTANT.

--- ./elf/elf.h.~1~	2006-02-23 16:01:13.000000000 -0800
+++ ./elf/elf.h	2006-02-23 16:01:18.000000000 -0800
@@ -1258,6 +1258,7 @@ typedef struct
 #define HWCAP_SPARC_MULDIV	8
 #define HWCAP_SPARC_V9		16	/* The cpu is v9, so v8plus is ok.  */
 #define HWCAP_SPARC_ULTRA3	32
+#define HWCAP_SPARC_BLKINIT	64	/* Sun4v with block-init/load-twin. */
 
 /* MIPS R3000 specific definitions.  */
 
--- ./sysdeps/unix/sysv/linux/sparc/sparc32/dl-procinfo.c.~1~	2006-02-23 16:01:14.000000000 -0800
+++ ./sysdeps/unix/sysv/linux/sparc/sparc32/dl-procinfo.c	2006-02-23 16:01:18.000000000 -0800
@@ -47,11 +47,11 @@
 #if !defined PROCINFO_DECL && defined SHARED
   ._dl_sparc32_cap_flags
 #else
-PROCINFO_CLASS const char _dl_sparc32_cap_flags[6][7]
+PROCINFO_CLASS const char _dl_sparc32_cap_flags[7][7]
 #endif
 #ifndef PROCINFO_DECL
 = {
-    "flush", "stbar", "swap", "muldiv", "v9", "ultra3"
+    "flush", "stbar", "swap", "muldiv", "v9", "ultra3", "v9v"
   }
 #endif
 #if !defined SHARED || defined PROCINFO_DECL
--- ./sysdeps/unix/sysv/linux/sparc/sparc32/dl-procinfo.h.~1~	2006-02-23 16:01:14.000000000 -0800
+++ ./sysdeps/unix/sysv/linux/sparc/sparc32/dl-procinfo.h	2006-02-23 16:01:18.000000000 -0800
@@ -62,7 +62,7 @@ _dl_string_hwcap (const char *str)
   return -1;
 };
 
-#define HWCAP_IMPORTANT (HWCAP_SPARC_V9|HWCAP_SPARC_ULTRA3)
+#define HWCAP_IMPORTANT (HWCAP_SPARC_V9|HWCAP_SPARC_ULTRA3|HWCAP_SPARC_BLKINIT)
 
 /* There are no different platforms defined.  */
 #define _dl_platform_string(idx) ""
--- ./sysdeps/unix/sysv/linux/sparc/sparc64/dl-procinfo.c.~1~	2006-02-23 16:01:14.000000000 -0800
+++ ./sysdeps/unix/sysv/linux/sparc/sparc64/dl-procinfo.c	2006-02-23 16:01:18.000000000 -0800
@@ -47,11 +47,11 @@
 #if !defined PROCINFO_DECL && defined SHARED
   ._dl_sparc64_cap_flags
 #else
-PROCINFO_CLASS const char _dl_sparc64_cap_flags[6][7]
+PROCINFO_CLASS const char _dl_sparc64_cap_flags[7][7]
 #endif
 #ifndef PROCINFO_DECL
 = {
-    "flush", "stbar", "swap", "muldiv", "v9", "ultra3"
+    "flush", "stbar", "swap", "muldiv", "v9", "ultra3", "v9v"
   }
 #endif
 #if !defined SHARED || defined PROCINFO_DECL
--- ./sysdeps/unix/sysv/linux/sparc/sparc64/dl-procinfo.h.~1~	2006-02-23 16:01:14.000000000 -0800
+++ ./sysdeps/unix/sysv/linux/sparc/sparc64/dl-procinfo.h	2006-02-23 16:01:18.000000000 -0800
@@ -63,7 +63,7 @@ _dl_string_hwcap (const char *str)
   return -1;
 };
 
-#define HWCAP_IMPORTANT (HWCAP_SPARC_ULTRA3)
+#define HWCAP_IMPORTANT (HWCAP_SPARC_ULTRA3|HWCAP_SPARC_BLKINIT)
 
 /* There are no different platforms defined.  */
 #define _dl_platform_string(idx) ""


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]