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


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

GNU C Library master sources branch master updated. glibc-2.19-677-g9aea0cb


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "GNU C Library master sources".

The branch, master has been updated
       via  9aea0cb842f02098d9c09b4855f883ddc8a8a97e (commit)
      from  6eaa65cefb0224a3cf6ee4b6649e3576802487b3 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://sourceware.org/git/gitweb.cgi?p=glibc.git;a=commitdiff;h=9aea0cb842f02098d9c09b4855f883ddc8a8a97e

commit 9aea0cb842f02098d9c09b4855f883ddc8a8a97e
Author: Will Newton <will.newton@linaro.org>
Date:   Wed Jun 25 12:21:17 2014 +0100

    ARM: Add support for AT_HWCAP2 in _dl_procinfo
    
    Add support for the new HWCAP2 values for ARMv8 added in the
    3.15 kernel. Tested using QEMU which supports these extensions.
    
    ChangeLog:
    
    2014-06-25  Will Newton  <will.newton@linaro.org>
    
    	* sysdeps/unix/sysv/linux/arm/dl-procinfo.c
    	(_dl_arm_cap_flags): Add HWCAP2 values.
    	* sysdeps/unix/sysv/linux/arm/dl-procinfo.h
    	(_DL_HWCAP_COUNT): Increase to 37.
    	(_DL_HWCAP_LAST): New define.
    	(_DL_HWCAP2_LAST): New define.
    	(_dl_procinfo): Add support for printing
    	AT_HWCAP2 entries.
    	(_dl_string_hwcap): Use _dl_hwcap_string.

diff --git a/ChangeLog b/ChangeLog
index 0a67bcb..eea0ebe 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2014-06-25  Will Newton  <will.newton@linaro.org>
+
+	* sysdeps/unix/sysv/linux/arm/dl-procinfo.c
+	(_dl_arm_cap_flags): Add HWCAP2 values.
+	* sysdeps/unix/sysv/linux/arm/dl-procinfo.h
+	(_DL_HWCAP_COUNT): Increase to 37.
+	(_DL_HWCAP_LAST): New define.
+	(_DL_HWCAP2_LAST): New define.
+	(_dl_procinfo): Add support for printing
+	AT_HWCAP2 entries.
+	(_dl_string_hwcap): Use _dl_hwcap_string.
+
 2014-06-25  Adhemerval Zanella  <azanella@linux.vnet.ibm.com>
 
 	* sysdeps/powerpc/fpu/libm-test-ulps: Update.
diff --git a/sysdeps/unix/sysv/linux/arm/dl-procinfo.c b/sysdeps/unix/sysv/linux/arm/dl-procinfo.c
index 113cda5..7cb3be9 100644
--- a/sysdeps/unix/sysv/linux/arm/dl-procinfo.c
+++ b/sysdeps/unix/sysv/linux/arm/dl-procinfo.c
@@ -23,7 +23,7 @@
    If anything should be added here check whether the size of each string
    is still ok with the given array size.
 
-   All the #ifdefs in the definitions ar equite irritating but
+   All the #ifdefs in the definitions are quite irritating but
    necessary if we want to avoid duplicating the information.  There
    are three different modes:
 
@@ -46,13 +46,14 @@
 #if !defined PROCINFO_DECL && defined SHARED
   ._dl_arm_cap_flags
 #else
-PROCINFO_CLASS const char _dl_arm_cap_flags[22][10]
+PROCINFO_CLASS const char _dl_arm_cap_flags[37][10]
 #endif
 #ifndef PROCINFO_DECL
 = {
     "swp", "half", "thumb", "26bit", "fastmult", "fpa", "vfp", "edsp",
     "java", "iwmmxt", "crunch", "thumbee", "neon", "vfpv3", "vfpv3d16",
     "tls", "vfpv4", "idiva", "idivt", "vfpd32", "lpae", "evtstrm",
+    "aes", "pmull", "sha1", "sha2", "crc32",
   }
 #endif
 #if !defined SHARED || defined PROCINFO_DECL
diff --git a/sysdeps/unix/sysv/linux/arm/dl-procinfo.h b/sysdeps/unix/sysv/linux/arm/dl-procinfo.h
index 20a3e92..f7557b9 100644
--- a/sysdeps/unix/sysv/linux/arm/dl-procinfo.h
+++ b/sysdeps/unix/sysv/linux/arm/dl-procinfo.h
@@ -23,32 +23,17 @@
 #include <ldsodefs.h>
 #include <sysdep.h>
 
-#define _DL_HWCAP_COUNT 22
+#define _DL_HWCAP_COUNT 37
 
-/* The kernel provides platform data but it is not interesting.  */
-#define _DL_HWCAP_PLATFORM 	0
-
-
-static inline int
-__attribute__ ((unused))
-_dl_procinfo (unsigned int type, unsigned long int word)
-{
-  int i;
-
-  /* Fallback to unknown output mechanism.  */
-  if (type == AT_HWCAP2)
-    return -1;
-
-  _dl_printf ("AT_HWCAP:   ");
+/* Low 22 bits are allocated in HWCAP.  */
+#define _DL_HWCAP_LAST		21
 
-  for (i = 0; i < _DL_HWCAP_COUNT; ++i)
-    if (word & (1 << i))
-      _dl_printf (" %s", GLRO(dl_arm_cap_flags)[i]);
+/* Low 5 bits are allocated in HWCAP2.  */
+#define _DL_HWCAP2_LAST		4
 
-  _dl_printf ("\n");
+/* The kernel provides platform data but it is not interesting.  */
+#define _DL_HWCAP_PLATFORM	0
 
-  return 0;
-}
 
 static inline const char *
 __attribute__ ((unused))
@@ -57,17 +42,47 @@ _dl_hwcap_string (int idx)
   return GLRO(dl_arm_cap_flags)[idx];
 };
 
+static inline int
+__attribute__ ((unused))
+_dl_procinfo (unsigned int type, unsigned long int word)
+{
+  switch(type)
+    {
+    case AT_HWCAP:
+      _dl_printf ("AT_HWCAP:       ");
+
+      for (int i = 0; i <= _DL_HWCAP_LAST; ++i)
+	if (word & (1 << i))
+	  _dl_printf (" %s", _dl_hwcap_string (i));
+      break;
+    case AT_HWCAP2:
+      {
+	unsigned int offset = _DL_HWCAP_LAST + 1;
+
+	_dl_printf ("AT_HWCAP2:      ");
+
+	for (int i = 0; i <= _DL_HWCAP2_LAST; ++i)
+	  if (word & (1 << i))
+	    _dl_printf (" %s", _dl_hwcap_string (offset + i));
+	break;
+      }
+    default:
+      /* This should not happen.  */
+      return -1;
+    }
+  _dl_printf ("\n");
+  return 0;
+}
+
 #define HWCAP_IMPORTANT		(HWCAP_ARM_VFP | HWCAP_ARM_NEON)
 
 static inline int
 __attribute__ ((unused))
 _dl_string_hwcap (const char *str)
 {
-  int i;
-
-  for (i = 0; i < _DL_HWCAP_COUNT; i++)
+  for (int i = 0; i < _DL_HWCAP_COUNT; i++)
     {
-      if (strcmp (str, GLRO(dl_arm_cap_flags)[i]) == 0)
+      if (strcmp (str, _dl_hwcap_string (i)) == 0)
 	return i;
     }
   return -1;

-----------------------------------------------------------------------

Summary of changes:
 ChangeLog                                 |   12 +++++
 sysdeps/unix/sysv/linux/arm/dl-procinfo.c |    5 +-
 sysdeps/unix/sysv/linux/arm/dl-procinfo.h |   67 +++++++++++++++++-----------
 3 files changed, 56 insertions(+), 28 deletions(-)


hooks/post-receive
-- 
GNU C Library master sources


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