about summary refs log tree commit diff
path: root/sysdeps
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/s390/configure35
-rw-r--r--sysdeps/s390/configure.ac17
2 files changed, 52 insertions, 0 deletions
diff --git a/sysdeps/s390/configure b/sysdeps/s390/configure
index fa46e9e351..5f98640d0f 100644
--- a/sysdeps/s390/configure
+++ b/sysdeps/s390/configure
@@ -296,5 +296,40 @@ then
 
 fi
 
+
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC is sufficient to build libc on s390x" >&5
+$as_echo_n "checking if $CC is sufficient to build libc on s390x... " >&6; }
+if ${libc_cv_compiler_ok_on_s390x+:} false; then :
+  $as_echo_n "(cached) " >&6
+else
+
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+#if !defined __GNUC__ || __GNUC__ < 7 || (__GNUC__ == 7 && __GNUC_MINOR__ < 1)
+#error insufficient compiler for building on s390x
+#endif
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_compile "$LINENO"; then :
+  libc_cv_compiler_ok_on_s390x=yes
+else
+  libc_cv_compiler_ok_on_s390x=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
+fi
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $libc_cv_compiler_ok_on_s390x" >&5
+$as_echo "$libc_cv_compiler_ok_on_s390x" >&6; }
+if test "$libc_cv_compiler_ok_on_s390x" != yes; then
+   critic_missing="$critic_missing On s390x, GCC >= 7.1.0 is required."
+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 3ed5a8ef87..dfe007a774 100644
--- a/sysdeps/s390/configure.ac
+++ b/sysdeps/s390/configure.ac
@@ -212,5 +212,22 @@ then
   AC_DEFINE(HAVE_S390_MIN_ARCH13_ZARCH_ASM_SUPPORT)
 fi
 
+dnl test if GCC is new enough. See gcc "Bug 98269 - gcc 6.5.0
+dnl __builtin_add_overflow() with small uint32_t values incorrectly detects
+dnl overflow
+dnl (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98269)
+AC_CACHE_CHECK([if $CC is sufficient to build libc on s390x],
+libc_cv_compiler_ok_on_s390x, [
+AC_TRY_COMPILE([], [
+#if !defined __GNUC__ || __GNUC__ < 7 || (__GNUC__ == 7 && __GNUC_MINOR__ < 1)
+#error insufficient compiler for building on s390x
+#endif
+],
+	[libc_cv_compiler_ok_on_s390x=yes],
+	[libc_cv_compiler_ok_on_s390x=no])])
+if test "$libc_cv_compiler_ok_on_s390x" != yes; then
+   critic_missing="$critic_missing On s390x, GCC >= 7.1.0 is required."
+fi
+
 test -n "$critic_missing" && AC_MSG_ERROR([
 *** $critic_missing])