about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRyan S. Arnold <rsa@linux.vnet.ibm.com>2013-05-13 15:31:55 -0500
committerRyan S. Arnold <rsa@linux.vnet.ibm.com>2013-05-16 11:57:36 -0500
commitc796dcbe0df1184991f332f2eb955becff7e5770 (patch)
treec5803901a1f765a156633be53274255f79e9d062
parentf58f65cd7d3318d3af0073c782844d1a6008b111 (diff)
downloadglibc-c796dcbe0df1184991f332f2eb955becff7e5770.tar.gz
glibc-c796dcbe0df1184991f332f2eb955becff7e5770.tar.xz
glibc-c796dcbe0df1184991f332f2eb955becff7e5770.zip
PowerPC: Merge ports/ dl-procinfo.[hc] with base.
-rw-r--r--ChangeLog15
-rw-r--r--ports/ChangeLog.powerpc5
-rw-r--r--ports/sysdeps/powerpc/dl-procinfo.h138
-rw-r--r--sysdeps/powerpc/dl-procinfo.c12
-rw-r--r--sysdeps/powerpc/dl-procinfo.h36
5 files changed, 125 insertions, 81 deletions
diff --git a/ChangeLog b/ChangeLog
index 56f8d11521..aa526f8343 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,20 @@
 2013-05-16  Ryan S. Arnold  <rsa@linux.vnet.ibm.com>
 
+	* sysdeps/powerpc/dl-procinfo.c (_dl_powerpc_platforms): Add ppc405,
+	ppc440, ppc464, and ppc476, merging from ports/ dl-procinfo.c.
+	* sysdeps/powerpc/dl-procinfo.h: Fix whitespace by correcting spaces
+	with tabs where appropriate.
+	[PPC_PLATFORM_PPC405]: Define new platform merging from ports/
+	dl-procinfo.h.
+	[PPC_PLATFORM_PPC440]: Likewise.
+	[PPC_PLATFORM_PPC464]: Likewise.
+	[PPC_PLATFORM_PPC476]: Likewise.
+	(_dl_string_platform): Add support for detecting ppc405, ppc440,
+	ppc464, and ppc476 platform strings merging from ports/
+	dl-procinfo.h.
+
+2013-05-16  Ryan S. Arnold  <rsa@linux.vnet.ibm.com>
+
 	* elf/dl-support.c (_dl_aux_init): Add support for AT_HWCAP2.
 	* elf/dl-sysdep.c (_dl_sysdep_start, _dl_show_auxv): Likewise.
 	* misc/getauxval.c (__getauxval): Likewise.
diff --git a/ports/ChangeLog.powerpc b/ports/ChangeLog.powerpc
index 345df7b239..2857b27ac8 100644
--- a/ports/ChangeLog.powerpc
+++ b/ports/ChangeLog.powerpc
@@ -1,5 +1,10 @@
 2013-05-16  Ryan S. Arnold  <rsa@linux.vnet.ibm.com>
 
+	 * sysdeps/powerpc/dl-procinfo.h: Fix whitespace by correcting
+	 spaces with tabs where appropriate.
+
+2013-05-16  Ryan S. Arnold  <rsa@linux.vnet.ibm.com>
+
 	* sysdeps/powerpc/dl-procinfo.h (_dl_procinfo): Add support for
 	displaying AT_HWCAP2 strings.
 
diff --git a/ports/sysdeps/powerpc/dl-procinfo.h b/ports/sysdeps/powerpc/dl-procinfo.h
index a9d98d34ef..d499cf1754 100644
--- a/ports/sysdeps/powerpc/dl-procinfo.h
+++ b/ports/sysdeps/powerpc/dl-procinfo.h
@@ -21,37 +21,37 @@
 
 #include <stdint.h>
 #include <ldsodefs.h>
-#include <sysdep.h>            /* This defines the PPC_FEATURE_* macros.  */
+#include <sysdep.h>	/* This defines the PPC_FEATURE_* macros.  */
 
 /* There are 25 bits used, but they are bits 7..31.  */
-#define _DL_HWCAP_FIRST                7
-#define _DL_HWCAP_COUNT                32
+#define _DL_HWCAP_FIRST		7
+#define _DL_HWCAP_COUNT		32
 
 /* These bits influence library search.  */
-#define HWCAP_IMPORTANT                (PPC_FEATURE_HAS_ALTIVEC \
-                               + PPC_FEATURE_HAS_DFP)
+#define HWCAP_IMPORTANT		(PPC_FEATURE_HAS_ALTIVEC \
+				+ PPC_FEATURE_HAS_DFP)
 
-#define _DL_PLATFORMS_COUNT    13
+#define _DL_PLATFORMS_COUNT	13
 
-#define _DL_FIRST_PLATFORM     32
+#define _DL_FIRST_PLATFORM	32
 /* Mask to filter out platforms.  */
-#define _DL_HWCAP_PLATFORM      (((1ULL << _DL_PLATFORMS_COUNT) - 1) \
-                               << _DL_FIRST_PLATFORM)
+#define _DL_HWCAP_PLATFORM	(((1ULL << _DL_PLATFORMS_COUNT) - 1) \
+				<< _DL_FIRST_PLATFORM)
 
 /* Platform bits (relative to _DL_FIRST_PLATFORM).  */
-#define PPC_PLATFORM_POWER4          0
-#define PPC_PLATFORM_PPC970          1
-#define PPC_PLATFORM_POWER5          2
-#define PPC_PLATFORM_POWER5_PLUS      3
-#define PPC_PLATFORM_POWER6          4
-#define PPC_PLATFORM_CELL_BE         5
-#define PPC_PLATFORM_POWER6X         6
-#define PPC_PLATFORM_POWER7          7
-#define PPC_PLATFORM_PPCA2           8
-#define PPC_PLATFORM_PPC405          9
-#define PPC_PLATFORM_PPC440          10
-#define PPC_PLATFORM_PPC464          11
-#define PPC_PLATFORM_PPC476          12
+#define PPC_PLATFORM_POWER4		0
+#define PPC_PLATFORM_PPC970		1
+#define PPC_PLATFORM_POWER5		2
+#define PPC_PLATFORM_POWER5_PLUS	3
+#define PPC_PLATFORM_POWER6		4
+#define PPC_PLATFORM_CELL_BE		5
+#define PPC_PLATFORM_POWER6X		6
+#define PPC_PLATFORM_POWER7		7
+#define PPC_PLATFORM_PPCA2		8
+#define PPC_PLATFORM_PPC405		9
+#define PPC_PLATFORM_PPC440		10
+#define PPC_PLATFORM_PPC464		11
+#define PPC_PLATFORM_PPC476		12
 
 static inline const char *
 __attribute__ ((unused))
@@ -89,65 +89,65 @@ _dl_string_platform (const char *str)
       int ret;
       str += 5;
       switch (*str)
-       {
-       case '4':
-         ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER4;
-         break;
-       case '5':
-         ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER5;
-         if (str[1] == '+')
-           {
-             ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER5_PLUS;
-             ++str;
-           }
-         break;
-       case '6':
-         ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER6;
-         if (str[1] == 'x')
-           {
-             ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER6X;
-             ++str;
-           }
-         break;
-       case '7':
-         ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER7;
-         break;
-       default:
-         return -1;
-       }
+	{
+	case '4':
+	  ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER4;
+	  break;
+	case '5':
+	  ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER5;
+	  if (str[1] == '+')
+	    {
+	      ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER5_PLUS;
+	      ++str;
+	    }
+	  break;
+	case '6':
+	  ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER6;
+	  if (str[1] == 'x')
+	    {
+	      ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER6X;
+	      ++str;
+	    }
+	  break;
+	case '7':
+	  ret = _DL_FIRST_PLATFORM + PPC_PLATFORM_POWER7;
+	  break;
+	default:
+	  return -1;
+	}
       if (str[1] == '\0')
        return ret;
     }
   else if (strncmp (str, GLRO(dl_powerpc_platforms)[PPC_PLATFORM_PPC970],
-                   3) == 0)
+		    3) == 0)
     {
       if (strcmp (str + 3, GLRO(dl_powerpc_platforms)[PPC_PLATFORM_PPC970]
-                          + 3) == 0)
-       return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC970;
+			   + 3) == 0)
+	return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC970;
       else if (strcmp (str + 3,
-                      GLRO(dl_powerpc_platforms)[PPC_PLATFORM_CELL_BE] + 3)
-              == 0)
-       return _DL_FIRST_PLATFORM + PPC_PLATFORM_CELL_BE;
+		       GLRO(dl_powerpc_platforms)[PPC_PLATFORM_CELL_BE] + 3)
+	       == 0)
+	return _DL_FIRST_PLATFORM + PPC_PLATFORM_CELL_BE;
       else if (strcmp (str + 3,
-                      GLRO(dl_powerpc_platforms)[PPC_PLATFORM_PPCA2] + 3)
-              == 0)
-       return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPCA2;
+		       GLRO(dl_powerpc_platforms)[PPC_PLATFORM_PPCA2] + 3)
+	       == 0)
+	return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPCA2;
       else if (strcmp (str + 3,
-                      GLRO(dl_powerpc_platforms)[PPC_PLATFORM_PPC405] + 3)
-              == 0)
-       return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC405;
+		       GLRO(dl_powerpc_platforms)[PPC_PLATFORM_PPC405] + 3)
+	       == 0)
+	return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC405;
       else if (strcmp (str + 3,
-                      GLRO(dl_powerpc_platforms)[PPC_PLATFORM_PPC440] + 3)
-              == 0)
-       return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC440;
+		       GLRO(dl_powerpc_platforms)[PPC_PLATFORM_PPC440] + 3)
+	       == 0)
+	return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC440;
       else if (strcmp (str + 3,
-                      GLRO(dl_powerpc_platforms)[PPC_PLATFORM_PPC464] + 3)
-              == 0)
-       return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC464;
+		       GLRO(dl_powerpc_platforms)[PPC_PLATFORM_PPC464] + 3)
+	       == 0)
+	return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC464;
       else if (strcmp (str + 3,
-                      GLRO(dl_powerpc_platforms)[PPC_PLATFORM_PPC476] + 3)
-              == 0)
-       return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC476;
+		       GLRO(dl_powerpc_platforms)[PPC_PLATFORM_PPC476] + 3)
+	       == 0)
+	return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC476;
     }
 
   return -1;
diff --git a/sysdeps/powerpc/dl-procinfo.c b/sysdeps/powerpc/dl-procinfo.c
index fb5051f1bf..0f5c2b3d6d 100644
--- a/sysdeps/powerpc/dl-procinfo.c
+++ b/sysdeps/powerpc/dl-procinfo.c
@@ -13,7 +13,7 @@
    Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
+   License along with the GNU C Library.  If not, see
    <http://www.gnu.org/licenses/>.  */
 
 /* This information must be kept in sync with the _DL_HWCAP_COUNT and
@@ -49,7 +49,7 @@ PROCINFO_CLASS const char _dl_powerpc_cap_flags[25][10]
 #endif
 #ifndef PROCINFO_DECL
 = {
-    "vsx", 
+    "vsx",
     "arch_2_06", "power6x", "dfp", "pa6t",
     "arch_2_05", "ic_snoop", "smt", "booke",
     "cellbe", "power5+", "power5", "power4",
@@ -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[9][12]
+PROCINFO_CLASS const char _dl_powerpc_platforms[13][12]
 #endif
 #ifndef PROCINFO_DECL
 = {
@@ -79,7 +79,11 @@ PROCINFO_CLASS const char _dl_powerpc_platforms[9][12]
     [PPC_PLATFORM_CELL_BE] = "ppc-cell-be",
     [PPC_PLATFORM_POWER6X] = "power6x",
     [PPC_PLATFORM_POWER7] = "power7",
-    [PPC_PLATFORM_PPCA2] = "ppca2"
+    [PPC_PLATFORM_PPCA2] = "ppca2",
+    [PPC_PLATFORM_PPC405] = "ppc405",
+    [PPC_PLATFORM_PPC440] = "ppc440",
+    [PPC_PLATFORM_PPC464] = "ppc464",
+    [PPC_PLATFORM_PPC476] = "ppc476"
   }
 #endif
 #if !defined SHARED || defined PROCINFO_DECL
diff --git a/sysdeps/powerpc/dl-procinfo.h b/sysdeps/powerpc/dl-procinfo.h
index ca20732571..f24a0c6f11 100644
--- a/sysdeps/powerpc/dl-procinfo.h
+++ b/sysdeps/powerpc/dl-procinfo.h
@@ -13,14 +13,14 @@
    Lesser General Public License for more details.
 
    You should have received a copy of the GNU Lesser General Public
-   License along with the GNU C Library; if not, see
+   License along with the GNU C Library.  If not, see
    <http://www.gnu.org/licenses/>.  */
 
 #ifndef _DL_PROCINFO_H
-#define _DL_PROCINFO_H	1
+#define _DL_PROCINFO_H 1
 
 #include <ldsodefs.h>
-#include <sysdep.h>		/* This defines the PPC_FEATURE_* macros.  */
+#include <sysdep.h>	/* This defines the PPC_FEATURE_* macros.  */
 
 /* There are 25 bits used in AT_HWCAP, but they are bits 7..31.  */
 #define _DL_HWCAP_FIRST		7
@@ -31,12 +31,12 @@
 #define HWCAP_IMPORTANT		(PPC_FEATURE_HAS_ALTIVEC \
 				+ PPC_FEATURE_HAS_DFP)
 
-#define _DL_PLATFORMS_COUNT	9
+#define _DL_PLATFORMS_COUNT	13
 
-#define _DL_FIRST_PLATFORM      32
+#define _DL_FIRST_PLATFORM	32
 /* Mask to filter out platforms.  */
-#define _DL_HWCAP_PLATFORM      (((1ULL << _DL_PLATFORMS_COUNT) - 1) \
-                                 << _DL_FIRST_PLATFORM)
+#define _DL_HWCAP_PLATFORM	(((1ULL << _DL_PLATFORMS_COUNT) - 1) \
+				<< _DL_FIRST_PLATFORM)
 
 /* Platform bits (relative to _DL_FIRST_PLATFORM).  */
 #define PPC_PLATFORM_POWER4		0
@@ -48,6 +48,10 @@
 #define PPC_PLATFORM_POWER6X		6
 #define PPC_PLATFORM_POWER7		7
 #define PPC_PLATFORM_PPCA2		8
+#define PPC_PLATFORM_PPC405		9
+#define PPC_PLATFORM_PPC440		10
+#define PPC_PLATFORM_PPC464		11
+#define PPC_PLATFORM_PPC476		12
 
 static inline const char *
 __attribute__ ((unused))
@@ -112,7 +116,7 @@ _dl_string_platform (const char *str)
 	  return -1;
 	}
       if (str[1] == '\0')
-	return ret;
+       return ret;
     }
   else if (strncmp (str, GLRO(dl_powerpc_platforms)[PPC_PLATFORM_PPC970],
 		    3) == 0)
@@ -128,6 +132,22 @@ _dl_string_platform (const char *str)
 		       GLRO(dl_powerpc_platforms)[PPC_PLATFORM_PPCA2] + 3)
 	       == 0)
 	return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPCA2;
+      else if (strcmp (str + 3,
+		       GLRO(dl_powerpc_platforms)[PPC_PLATFORM_PPC405] + 3)
+	       == 0)
+	return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC405;
+      else if (strcmp (str + 3,
+		       GLRO(dl_powerpc_platforms)[PPC_PLATFORM_PPC440] + 3)
+	       == 0)
+	return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC440;
+      else if (strcmp (str + 3,
+		       GLRO(dl_powerpc_platforms)[PPC_PLATFORM_PPC464] + 3)
+	       == 0)
+	return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC464;
+      else if (strcmp (str + 3,
+		       GLRO(dl_powerpc_platforms)[PPC_PLATFORM_PPC476] + 3)
+	       == 0)
+	return _DL_FIRST_PLATFORM + PPC_PLATFORM_PPC476;
     }
 
   return -1;