diff mbox

powerpc: Automatically guess --with-cpu value

Message ID 568EC0F6.9060902@linux.vnet.ibm.com
State New
Headers show

Commit Message

cseo Jan. 7, 2016, 7:48 p.m. UTC
On 1/6/16 7:14 PM, Andreas Schwab wrote:
>
> ${x//} is bash-specific.
>

Oops, fixed.

Comments

Tulio Magno Quites Machado Filho Jan. 8, 2016, 7:51 p.m. UTC | #1
Carlos Eduardo Seo <cseo@linux.vnet.ibm.com> writes:

> On 1/6/16 7:14 PM, Andreas Schwab wrote:
>>
>> ${x//} is bash-specific.
>>
>
> Oops, fixed.
>
> Added a check to detect the CPU value in preconfigure, so that glibc is built
> with the correct --with-cpu value. This is only done for Power servers.
>
> 2016-01-07  Carlos Eduardo Seo  <cseo@linux.vnet.ibm.com>
>
> 	* sysdeps/powerpc/preconfigure: Added a check to identify the CPU value
> 	and set it for the --with-cpu configure parameter.

LGTM.
However, I'll wait for Andreas' approval before pushing it.
Andreas Schwab Jan. 8, 2016, 8:25 p.m. UTC | #2
Carlos Eduardo Seo <cseo@linux.vnet.ibm.com> writes:

> +  archcpu=`$CC $CFLAGS $CPPFLAGS -E -dM -xc /dev/null |
> +	  sed -n 's/^#define \(_ARCH_PWR[0-9].*\) .*$/\1/p' |
> +	  sort -Vr | head -n 1`

sort -V isn't portable, you should use -n instead.

Andreas.
diff mbox

Patch

diff --git a/sysdeps/powerpc/preconfigure b/sysdeps/powerpc/preconfigure
index 0c6fdde..1274f8b 100644
--- a/sysdeps/powerpc/preconfigure
+++ b/sysdeps/powerpc/preconfigure
@@ -15,3 +15,35 @@  powerpc*)
   rm -f conftest.i
   ;;
 esac
+
+# Lets ask the compiler which Power processor we've got, in case the user did
+# not choose a --with-cpu value.
+# Note if you add patterns here you must ensure that an appropriate directory
+# exists in sysdeps/powerpc
+if test -z "$with_cpu"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: --with-cpu not set. Trying to detect CPU." >&5
+    $as_echo "$as_me: --with-cpu not set. Trying to detect CPU." >&6;}
+  archcpu=`$CC $CFLAGS $CPPFLAGS -E -dM -xc /dev/null |
+	  sed -n 's/^#define \(_ARCH_PWR[0-9].*\) .*$/\1/p' |
+	  sort -Vr | head -n 1`
+
+# Set --with-cpu as appropriate.
+  case "$archcpu" in
+  _ARCH_PWR5X)
+    submachine="power5+"
+    { $as_echo "$as_me:${as_lineno-$LINENO}: CPU identified as $submachine" >&5
+      $as_echo "$as_me:  CPU identified as $submachine" >&6;}
+    ;;
+  _ARCH_PWR*)
+  submachine=`echo $archcpu | sed "s/_ARCH_PWR/power/" |
+	      tr '[:upper:]' '[:lower:]'`
+    { $as_echo "$as_me:${as_lineno-$LINENO}: CPU identified as $submachine" >&5
+      $as_echo "$as_me:  CPU identified as $submachine" >&6;}
+    ;;
+  *)
+  submachine=""
+    { $as_echo "$as_me:${as_lineno-$LINENO}: CPU not identified; using default" >&5
+      $as_echo "$as_me:  CPU not identified; using default" >&6;}
+    ;;
+  esac
+fi