[BZ,#14770] S/390: Require Binutils >= 2.24 for target S/390.

Message ID li8no1$r1k$1@ger.gmane.org
State Committed
Headers

Commit Message

Stefan Liebler April 11, 2014, 12:38 p.m. UTC
  Hi,

The S390 code uses ifunc and machinemode. The latter one is available 
with as in version 2.24.
Thus binutils are required in that version for target S390.

Tested on S390/S390x.

Ok?

Bye

---
2014-04-11  Stefan Liebler  <stli@linux.vnet.ibm.com>

	[BZ #14770]
	* sysdeps/s390/configure.ac: Check for Binutils >= 2.24.
	* sysdeps/s390/configure: Regenerate.
---
  

Comments

Andreas Krebbel April 16, 2014, 11:07 a.m. UTC | #1
On 04/11/2014 02:38 PM, Stefan Liebler wrote:
> 2014-04-11  Stefan Liebler  <stli@linux.vnet.ibm.com>
> 
> 	[BZ #14770]
> 	* sysdeps/s390/configure.ac: Check for Binutils >= 2.24.
> 	* sysdeps/s390/configure: Regenerate.

Applied. Thanks!

Bye,

-Andreas-
  

Patch

diff --git a/sysdeps/s390/configure b/sysdeps/s390/configure
index 0550c45..c2d05f7 100644
--- a/sysdeps/s390/configure
+++ b/sysdeps/s390/configure
@@ -2,3 +2,71 @@ 
  # Local configure fragment for sysdeps/s390.
 
 $as_echo "#define PI_STATIC_AND_HIDDEN 1" >>confdefs.h
+
+
+for ac_prog in $AS
+do
+  # Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if ${ac_cv_prog_AS+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$AS"; then
+  ac_cv_prog_AS="$AS" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_AS="$ac_prog"
+    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+  done
+IFS=$as_save_IFS
+
+fi
+fi
+AS=$ac_cv_prog_AS
+if test -n "$AS"; then
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5
+$as_echo "$AS" >&6; }
+else
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+  test -n "$AS" && break
+done
+
+if test -z "$AS"; then
+  ac_verc_fail=yes
+else
+  # Found it, now check the version.
+  { $as_echo "$as_me:${as_lineno-$LINENO}: checking version of $AS" >&5
+$as_echo_n "checking version of $AS... " >&6; }
+  ac_prog_version=`$AS --version 2>&1 | sed -n 's/^.*GNU assembler.* \([0-9]*\.[0-9.]*\).*$/\1/p'`
+  case $ac_prog_version in
+    '') ac_prog_version="v. ?.??, bad"; ac_verc_fail=yes;;
+    2.2[4-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*)
+       ac_prog_version="$ac_prog_version, ok"; ac_verc_fail=no;;
+    *) ac_prog_version="$ac_prog_version, bad"; ac_verc_fail=yes;;
+
+  esac
+  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_prog_version" >&5
+$as_echo "$ac_prog_version" >&6; }
+fi
+if test $ac_verc_fail = yes; then
+  critic_missing="$critic_missing The program AS is required in version >= 2.24 for target S390."
+fi
+
+
+test -n "$critic_missing" && as_fn_error $? "
+*** $critic_missing" "$LINENO" 5
diff --git a/sysdeps/s390/configure.ac b/sysdeps/s390/configure.ac
index b5af4e1..59cfdd1 100644
--- a/sysdeps/s390/configure.ac
+++ b/sysdeps/s390/configure.ac
@@ -4,3 +4,11 @@  GLIBC_PROVIDES dnl See aclocal.m4 in the top level source directory.
 dnl It is always possible to access static and hidden symbols in an
 dnl position independent way.
 AC_DEFINE(PI_STATIC_AND_HIDDEN)
+
+dnl Accept as 2.24 or newer.
+AC_CHECK_PROG_VER(AS, $AS, --version,
+		  [GNU assembler.* \([0-9]*\.[0-9.]*\)],
+		  [2.2[4-9]*|2.[3-9][0-9]*|[3-9].*|[1-9][0-9]*], critic_missing="$critic_missing The program AS is required in version >= 2.24 for target S390.")
+
+test -n "$critic_missing" && AC_MSG_ERROR([
+*** $critic_missing])