summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--elf/elf.h9
-rw-r--r--sysdeps/sparc/dl-procinfo.c6
-rw-r--r--sysdeps/sparc/dl-procinfo.h7
4 files changed, 17 insertions, 11 deletions
diff --git a/ChangeLog b/ChangeLog
index ab2d56e955..825f76c8da 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2006-02-24 Roland McGrath <roland@redhat.com>
+ * elf/elf.h (HWCAP_SPARC_BLKINIT): New macro.
+ * sysdeps/sparc/dl-procinfo.h (HWCAP_IMPORTANT): Add it.
+ (_DL_HWCAP_COUNT): Increase to 7.
+ * sysdeps/sparc/dl-procinfo.c (_dl_sparc_cap_flags): Add "v9v".
+ From David S. Miller <davem@sunset.davemloft.net>.
+
* sysdeps/unix/sysv/linux/sparc/sparc64/dl-procinfo.c: Moved to ...
* sysdeps/sparc/dl-procinfo.c: ... here, new file.
* sysdeps/unix/sysv/linux/sparc/sparc64/dl-procinfo.h: Moved to ...
diff --git a/elf/elf.h b/elf/elf.h
index c98bb5233d..344f252c0c 100644
--- a/elf/elf.h
+++ b/elf/elf.h
@@ -1,5 +1,5 @@
/* This file defines standard ELF types, structures, and macros.
- Copyright (C) 1995-2003, 2004, 2005 Free Software Foundation, Inc.
+ Copyright (C) 1995-2003,2004,2005,2006 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
@@ -1250,14 +1250,15 @@ typedef struct
#define DT_SPARC_REGISTER 0x70000001
#define DT_SPARC_NUM 2
-/* Bits present in AT_HWCAP, primarily for Sparc32. */
+/* Bits present in AT_HWCAP on SPARC. */
-#define HWCAP_SPARC_FLUSH 1 /* The cpu supports flush insn. */
+#define HWCAP_SPARC_FLUSH 1 /* The CPU supports flush insn. */
#define HWCAP_SPARC_STBAR 2
#define HWCAP_SPARC_SWAP 4
#define HWCAP_SPARC_MULDIV 8
-#define HWCAP_SPARC_V9 16 /* The cpu is v9, so v8plus is ok. */
+#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. */
diff --git a/sysdeps/sparc/dl-procinfo.c b/sysdeps/sparc/dl-procinfo.c
index c8bb614936..71f76aae44 100644
--- a/sysdeps/sparc/dl-procinfo.c
+++ b/sysdeps/sparc/dl-procinfo.c
@@ -47,12 +47,10 @@
#if !defined PROCINFO_DECL && defined SHARED
._dl_sparc_cap_flags
#else
-PROCINFO_CLASS const char _dl_sparc_cap_flags[6][7]
+PROCINFO_CLASS const char _dl_sparc_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
;
diff --git a/sysdeps/sparc/dl-procinfo.h b/sysdeps/sparc/dl-procinfo.h
index 004e5a905a..dde02b556c 100644
--- a/sysdeps/sparc/dl-procinfo.h
+++ b/sysdeps/sparc/dl-procinfo.h
@@ -24,7 +24,7 @@
#include <ldsodefs.h>
-#define _DL_HWCAP_COUNT 6
+#define _DL_HWCAP_COUNT 7
static inline int
__attribute__ ((unused))
@@ -64,8 +64,9 @@ _dl_string_hwcap (const char *str)
};
#include <bits/wordsize.h>
-#define HWCAP_IMPORTANT_V9 (__WORDSIZE == 64 ? 0 : HWCAP_SPARC_V9)
-#define HWCAP_IMPORTANT (HWCAP_IMPORTANT_V9|HWCAP_SPARC_ULTRA3)
+#define HWCAP_IMPORTANT_V9 (__WORDSIZE == 64 ? 0 : HWCAP_SPARC_V9)
+#define HWCAP_IMPORTANT (HWCAP_IMPORTANT_V9 | HWCAP_SPARC_ULTRA3 \
+ | HWCAP_SPARC_BLKINIT)
/* There are no different platforms defined. */
#define _dl_platform_string(idx) ""