PowerPC: Merge ports/ dl-procinfo.[ch] with base.
authorRyan S. Arnold <rsa@linux.vnet.ibm.com>
Tue, 11 Jun 2013 14:32:41 +0000 (09:32 -0500)
committerRyan S. Arnold <rsa@linux.vnet.ibm.com>
Tue, 11 Jun 2013 15:13:39 +0000 (10:13 -0500)
ChangeLog
ports/ChangeLog.powerpc
ports/sysdeps/powerpc/dl-procinfo.h
sysdeps/powerpc/dl-procinfo.c
sysdeps/powerpc/dl-procinfo.h

index d7a76a7..f2f9f7d 100644 (file)
--- 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]
index 0fe031d..2c49714 100644 (file)
@@ -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.
index b45465c..568fe19 100644 (file)
 #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;
index 6f5205d..0f5c2b3 100644 (file)
@@ -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
index 19aa93b..568fe19 100644 (file)
    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
 #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
 #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;