about summary refs log tree commit diff
diff options
context:
space:
mode:
authorRyan S. Arnold <rsa@linux.vnet.ibm.com>2013-06-11 09:32:41 -0500
committerRyan S. Arnold <rsa@linux.vnet.ibm.com>2013-06-11 10:13:39 -0500
commitfac0c5f2b1dc0e1806cd95f2d6a4619929119f01 (patch)
treea29479986bb7351a4430c6897f9c32445c43ddda
parentf22bc486c1ce5e92380a0d06b98fbba639d170e4 (diff)
downloadglibc-fac0c5f2b1dc0e1806cd95f2d6a4619929119f01.tar.gz
glibc-fac0c5f2b1dc0e1806cd95f2d6a4619929119f01.tar.xz
glibc-fac0c5f2b1dc0e1806cd95f2d6a4619929119f01.zip
PowerPC: Merge ports/ dl-procinfo.[ch] 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.c10
-rw-r--r--sysdeps/powerpc/dl-procinfo.h36
5 files changed, 124 insertions, 80 deletions
diff --git a/ChangeLog b/ChangeLog
index d7a76a715f..f2f9f7da03 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,18 @@
+2013-06-11  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-06-11  Andreas Schwab  <schwab@suse.de>
 
 	[BZ #14991]
diff --git a/ports/ChangeLog.powerpc b/ports/ChangeLog.powerpc
index 0fe031dade..2c49714e78 100644
--- a/ports/ChangeLog.powerpc
+++ b/ports/ChangeLog.powerpc
@@ -1,3 +1,8 @@
+2013-06-11  Ryan S. Arnold  <rsa@linux.vnet.ibm.com>
+
+	 * sysdeps/powerpc/dl-procinfo.h: Fix whitespace by correcting
+	 spaces with tabs where appropriate.
+
 2013-06-05  Joseph Myers  <joseph@codesourcery.com>
 
 	* sysdeps/powerpc/nofpu/fenv_const.c: Remove trailing whitespace.
diff --git a/ports/sysdeps/powerpc/dl-procinfo.h b/ports/sysdeps/powerpc/dl-procinfo.h
index b45465c3dd..568fe19dde 100644
--- a/ports/sysdeps/powerpc/dl-procinfo.h
+++ b/ports/sysdeps/powerpc/dl-procinfo.h
@@ -20,37 +20,37 @@
 #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, 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))
@@ -88,65 +88,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 6f5205d566..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
@@ -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 19aa93b185..568fe19dde 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, but they are bits 7..31.  */
 #define _DL_HWCAP_FIRST		7
@@ -30,12 +30,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
@@ -47,6 +47,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))
@@ -111,7 +115,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)
@@ -127,6 +131,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;