mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-28 22:57:37 +00:00
1099 lines
41 KiB
Diff
1099 lines
41 KiB
Diff
|
# HG changeset patch
|
||
|
# User andrew
|
||
|
# Date 1468209748 -3600
|
||
|
# Mon Jul 11 05:02:28 2016 +0100
|
||
|
# Node ID 7eb66a95dbd58d26ed271477076e0ab72e8c9ebf
|
||
|
# Parent 817d9fb584baecae7c989dfd7009a7f0ac7c6360
|
||
|
8151841: Build needs additional flags to compile with GCC 6 [plus parts of 8149647 & 8032045]
|
||
|
Summary: C++ standard needs to be explicitly set and some optimisations turned off to build on GCC 6
|
||
|
Reviewed-by: erikj, dholmes, kbarrett
|
||
|
|
||
|
diff --git a/common/autoconf/generated-configure.sh b/common/autoconf/generated-configure.sh
|
||
|
--- a/common/autoconf/generated-configure.sh
|
||
|
+++ b/common/autoconf/generated-configure.sh
|
||
|
@@ -679,6 +679,9 @@
|
||
|
CFLAGS_JDKLIB
|
||
|
MACOSX_VERSION_MIN
|
||
|
PACKAGE_PATH
|
||
|
+NO_LIFETIME_DSE_CFLAG
|
||
|
+NO_DELETE_NULL_POINTER_CHECKS_CFLAG
|
||
|
+CXXSTD_CXXFLAG
|
||
|
LEGACY_EXTRA_LDFLAGS
|
||
|
LEGACY_EXTRA_CXXFLAGS
|
||
|
LEGACY_EXTRA_CFLAGS
|
||
|
@@ -743,6 +746,8 @@
|
||
|
ac_ct_OBJC
|
||
|
OBJCFLAGS
|
||
|
OBJC
|
||
|
+CXX_VERSION
|
||
|
+CC_VERSION
|
||
|
ac_ct_CXX
|
||
|
CXXFLAGS
|
||
|
CXX
|
||
|
@@ -3672,7 +3677,7 @@
|
||
|
|
||
|
|
||
|
#
|
||
|
-# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
|
||
|
+# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
|
||
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||
|
#
|
||
|
# This code is free software; you can redistribute it and/or modify it
|
||
|
@@ -3795,6 +3800,19 @@
|
||
|
# questions.
|
||
|
#
|
||
|
|
||
|
+# Prepare the system so that TOOLCHAIN_CHECK_COMPILER_VERSION can be called.
|
||
|
+# Must have CC_VERSION_NUMBER and CXX_VERSION_NUMBER.
|
||
|
+
|
||
|
+
|
||
|
+# Check if the configured compiler (C and C++) is of a specific version or
|
||
|
+# newer. TOOLCHAIN_PREPARE_FOR_VERSION_COMPARISONS must have been called before.
|
||
|
+#
|
||
|
+# Arguments:
|
||
|
+# $1: The version string to check against the found version
|
||
|
+# $2: block to run if the compiler is at least this version (>=)
|
||
|
+# $3: block to run if the compiler is older than this version (<)
|
||
|
+
|
||
|
+
|
||
|
# $1 = compiler to test (CC or CXX)
|
||
|
# $2 = human readable name of compiler (C or C++)
|
||
|
|
||
|
@@ -3818,10 +3836,22 @@
|
||
|
|
||
|
|
||
|
|
||
|
+# TOOLCHAIN_C_COMPILER_CHECK_ARGUMENTS([ARGUMENT], [RUN-IF-TRUE],
|
||
|
+# [RUN-IF-FALSE])
|
||
|
+# ------------------------------------------------------------
|
||
|
+# Check that the C compiler supports an argument
|
||
|
+
|
||
|
+
|
||
|
+# TOOLCHAIN_CXX_COMPILER_CHECK_ARGUMENTS([ARGUMENT], [RUN-IF-TRUE],
|
||
|
+# [RUN-IF-FALSE])
|
||
|
+# ------------------------------------------------------------
|
||
|
+# Check that the C++ compiler supports an argument
|
||
|
+
|
||
|
+
|
||
|
# TOOLCHAIN_COMPILER_CHECK_ARGUMENTS([ARGUMENT], [RUN-IF-TRUE],
|
||
|
-# [RUN-IF-FALSE])
|
||
|
+# [RUN-IF-FALSE])
|
||
|
# ------------------------------------------------------------
|
||
|
-# Check that the c and c++ compilers support an argument
|
||
|
+# Check that the C and C++ compilers support an argument
|
||
|
|
||
|
|
||
|
|
||
|
@@ -3829,6 +3859,8 @@
|
||
|
# Setup the JTREG paths
|
||
|
|
||
|
|
||
|
+
|
||
|
+
|
||
|
#
|
||
|
# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved.
|
||
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||
|
@@ -3880,7 +3912,7 @@
|
||
|
#CUSTOM_AUTOCONF_INCLUDE
|
||
|
|
||
|
# Do not change or remove the following line, it is needed for consistency checks:
|
||
|
-DATE_WHEN_GENERATED=1449096260
|
||
|
+DATE_WHEN_GENERATED=1468207795
|
||
|
|
||
|
###############################################################################
|
||
|
#
|
||
|
@@ -20368,7 +20400,8 @@
|
||
|
|
||
|
# First line typically looks something like:
|
||
|
# gcc (Ubuntu/Linaro 4.5.2-8ubuntu4) 4.5.2
|
||
|
- COMPILER_VERSION=`$ECHO $COMPILER_VERSION_TEST | $SED -n "s/^.* \([1-9][0-9.]*\)/\1/p"`
|
||
|
+ COMPILER_VERSION=`$ECHO $COMPILER_VERSION_TEST | \
|
||
|
+ $SED -e 's/^.* \([1-9]\.[0-9.]*\)[^0-9.].*$/\1/'`
|
||
|
COMPILER_VENDOR=`$ECHO $COMPILER_VERSION_TEST | $SED -n "s/^\(.*\) [1-9][0-9.]*/\1/p"`
|
||
|
fi
|
||
|
# This sets CC_VERSION or CXX_VERSION. (This comment is a grep marker)
|
||
|
@@ -21969,7 +22002,8 @@
|
||
|
|
||
|
# First line typically looks something like:
|
||
|
# gcc (Ubuntu/Linaro 4.5.2-8ubuntu4) 4.5.2
|
||
|
- COMPILER_VERSION=`$ECHO $COMPILER_VERSION_TEST | $SED -n "s/^.* \([1-9][0-9.]*\)/\1/p"`
|
||
|
+ COMPILER_VERSION=`$ECHO $COMPILER_VERSION_TEST | \
|
||
|
+ $SED -e 's/^.* \([1-9]\.[0-9.]*\)[^0-9.].*$/\1/'`
|
||
|
COMPILER_VENDOR=`$ECHO $COMPILER_VERSION_TEST | $SED -n "s/^\(.*\) [1-9][0-9.]*/\1/p"`
|
||
|
fi
|
||
|
# This sets CC_VERSION or CXX_VERSION. (This comment is a grep marker)
|
||
|
@@ -22240,6 +22274,32 @@
|
||
|
ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
|
||
|
|
||
|
|
||
|
+ # This is the compiler version number on the form X.Y[.Z]
|
||
|
+
|
||
|
+
|
||
|
+
|
||
|
+
|
||
|
+ if test "x$CC_VERSION" != "x$CXX_VERSION"; then
|
||
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: C and C++ compiler has different version numbers, $CC_VERSION vs $CXX_VERSION." >&5
|
||
|
+$as_echo "$as_me: WARNING: C and C++ compiler has different version numbers, $CC_VERSION vs $CXX_VERSION." >&2;}
|
||
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: This typically indicates a broken setup, and is not supported" >&5
|
||
|
+$as_echo "$as_me: WARNING: This typically indicates a broken setup, and is not supported" >&2;}
|
||
|
+ fi
|
||
|
+
|
||
|
+ # We only check CC_VERSION since we assume CXX_VERSION is equal.
|
||
|
+ if [[ "$CC_VERSION" =~ (.*\.){3} ]] ; then
|
||
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: C compiler version number has more than three parts (X.Y.Z): $CC_VERSION. Comparisons might be wrong." >&5
|
||
|
+$as_echo "$as_me: WARNING: C compiler version number has more than three parts (X.Y.Z): $CC_VERSION. Comparisons might be wrong." >&2;}
|
||
|
+ fi
|
||
|
+
|
||
|
+ if [[ "$CC_VERSION" =~ [0-9]{6} ]] ; then
|
||
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: C compiler version number has a part larger than 99999: $CC_VERSION. Comparisons might be wrong." >&5
|
||
|
+$as_echo "$as_me: WARNING: C compiler version number has a part larger than 99999: $CC_VERSION. Comparisons might be wrong." >&2;}
|
||
|
+ fi
|
||
|
+
|
||
|
+ COMPARABLE_ACTUAL_VERSION=`$AWK -F. '{ printf("%05d%05d%05d\n", $1, $2, $3) }' <<< "$CC_VERSION"`
|
||
|
+
|
||
|
+
|
||
|
### Locate other tools
|
||
|
|
||
|
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
||
|
@@ -24831,7 +24891,8 @@
|
||
|
|
||
|
|
||
|
COMPILER_TYPE=CL
|
||
|
- CCXXFLAGS="$CCXXFLAGS -nologo"
|
||
|
+ # silence copyright notice and other headers.
|
||
|
+ COMMON_CCXXFLAGS="$COMMON_CCXXFLAGS -nologo"
|
||
|
|
||
|
fi
|
||
|
|
||
|
@@ -29664,12 +29725,57 @@
|
||
|
#
|
||
|
# Now setup the CFLAGS and LDFLAGS for the JDK build.
|
||
|
# Later we will also have CFLAGS and LDFLAGS for the hotspot subrepo build.
|
||
|
+ # CFLAGS_JDK - C Compiler flags
|
||
|
+ # CXXFLAGS_JDK - C++ Compiler flags
|
||
|
+ # COMMON_CCXXFLAGS_JDK - common to C and C++
|
||
|
#
|
||
|
case $COMPILER_NAME in
|
||
|
gcc )
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -W -Wall -Wno-unused -Wno-parentheses \
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS $COMMON_CCXXFLAGS_JDK -W -Wall -Wno-unused -Wno-parentheses \
|
||
|
-pipe \
|
||
|
-D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE"
|
||
|
+ CXXSTD_CXXFLAG="-std=gnu++98"
|
||
|
+
|
||
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the C++ compiler supports \"$CXXSTD_CXXFLAG $CFLAGS_WARNINGS_ARE_ERRORS\"" >&5
|
||
|
+$as_echo_n "checking if the C++ compiler supports \"$CXXSTD_CXXFLAG $CFLAGS_WARNINGS_ARE_ERRORS\"... " >&6; }
|
||
|
+ supports=yes
|
||
|
+
|
||
|
+ saved_cxxflags="$CXXFLAGS"
|
||
|
+ CXXFLAGS="$CXXFLAG $CXXSTD_CXXFLAG $CFLAGS_WARNINGS_ARE_ERRORS"
|
||
|
+ ac_ext=cpp
|
||
|
+ac_cpp='$CXXCPP $CPPFLAGS'
|
||
|
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||
|
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||
|
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
|
||
|
+
|
||
|
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||
|
+/* end confdefs.h. */
|
||
|
+int i;
|
||
|
+_ACEOF
|
||
|
+if ac_fn_cxx_try_compile "$LINENO"; then :
|
||
|
+
|
||
|
+else
|
||
|
+ supports=no
|
||
|
+fi
|
||
|
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||
|
+ ac_ext=cpp
|
||
|
+ac_cpp='$CXXCPP $CPPFLAGS'
|
||
|
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||
|
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||
|
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
|
||
|
+
|
||
|
+ CXXFLAGS="$saved_cxxflags"
|
||
|
+
|
||
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports" >&5
|
||
|
+$as_echo "$supports" >&6; }
|
||
|
+ if test "x$supports" = "xyes" ; then
|
||
|
+ :
|
||
|
+ else
|
||
|
+ CXXSTD_CXXFLAG=""
|
||
|
+ fi
|
||
|
+
|
||
|
+ CXXFLAGS_JDK="${CXXFLAGS_JDK} ${CXXSTD_CXXFLAG}"
|
||
|
+
|
||
|
case $OPENJDK_TARGET_CPU_ARCH in
|
||
|
arm )
|
||
|
# on arm we don't prevent gcc to omit frame pointer but do prevent strict aliasing
|
||
|
@@ -29679,16 +29785,234 @@
|
||
|
# on ppc we don't prevent gcc to omit frame pointer nor strict-aliasing
|
||
|
;;
|
||
|
* )
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -fno-omit-frame-pointer"
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -fno-omit-frame-pointer"
|
||
|
CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing"
|
||
|
;;
|
||
|
esac
|
||
|
+
|
||
|
+ REFERENCE_VERSION=6
|
||
|
+
|
||
|
+ if [[ "$REFERENCE_VERSION" =~ (.*\.){3} ]] ; then
|
||
|
+ as_fn_error $? "Internal error: Cannot compare to $REFERENCE_VERSION, only three parts (X.Y.Z) is supported" "$LINENO" 5
|
||
|
+ fi
|
||
|
+
|
||
|
+ if [[ "$REFERENCE_VERSION" =~ [0-9]{6} ]] ; then
|
||
|
+ as_fn_error $? "Internal error: Cannot compare to $REFERENCE_VERSION, only parts < 99999 is supported" "$LINENO" 5
|
||
|
+ fi
|
||
|
+
|
||
|
+ # Version comparison method inspired by http://stackoverflow.com/a/24067243
|
||
|
+ COMPARABLE_REFERENCE_VERSION=`$AWK -F. '{ printf("%05d%05d%05d\n", $1, $2, $3) }' <<< "$REFERENCE_VERSION"`
|
||
|
+
|
||
|
+ if test $COMPARABLE_ACTUAL_VERSION -ge $COMPARABLE_REFERENCE_VERSION ; then
|
||
|
+
|
||
|
+ # These flags are required for GCC 6 builds as undefined behaviour in OpenJDK code
|
||
|
+ # runs afoul of the more aggressive versions of these optimisations.
|
||
|
+ # Notably, value range propagation now assumes that the this pointer of C++
|
||
|
+ # member functions is non-null.
|
||
|
+ NO_DELETE_NULL_POINTER_CHECKS_CFLAG="-fno-delete-null-pointer-checks"
|
||
|
+
|
||
|
+
|
||
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the C compiler supports \"$NO_DELETE_NULL_POINTER_CHECKS_CFLAG -Werror\"" >&5
|
||
|
+$as_echo_n "checking if the C compiler supports \"$NO_DELETE_NULL_POINTER_CHECKS_CFLAG -Werror\"... " >&6; }
|
||
|
+ supports=yes
|
||
|
+
|
||
|
+ saved_cflags="$CFLAGS"
|
||
|
+ CFLAGS="$CFLAGS $NO_DELETE_NULL_POINTER_CHECKS_CFLAG -Werror"
|
||
|
+ ac_ext=c
|
||
|
+ac_cpp='$CPP $CPPFLAGS'
|
||
|
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||
|
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||
|
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
||
|
+
|
||
|
+
|
||
|
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||
|
+/* end confdefs.h. */
|
||
|
+int i;
|
||
|
+_ACEOF
|
||
|
+if ac_fn_c_try_compile "$LINENO"; then :
|
||
|
+
|
||
|
+else
|
||
|
+ supports=no
|
||
|
+fi
|
||
|
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||
|
+ ac_ext=cpp
|
||
|
+ac_cpp='$CXXCPP $CPPFLAGS'
|
||
|
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||
|
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||
|
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
|
||
|
+
|
||
|
+ CFLAGS="$saved_cflags"
|
||
|
+
|
||
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports" >&5
|
||
|
+$as_echo "$supports" >&6; }
|
||
|
+ if test "x$supports" = "xyes" ; then
|
||
|
+ C_COMP_SUPPORTS="yes"
|
||
|
+ else
|
||
|
+ C_COMP_SUPPORTS="no"
|
||
|
+ fi
|
||
|
+
|
||
|
+
|
||
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the C++ compiler supports \"$NO_DELETE_NULL_POINTER_CHECKS_CFLAG -Werror\"" >&5
|
||
|
+$as_echo_n "checking if the C++ compiler supports \"$NO_DELETE_NULL_POINTER_CHECKS_CFLAG -Werror\"... " >&6; }
|
||
|
+ supports=yes
|
||
|
+
|
||
|
+ saved_cxxflags="$CXXFLAGS"
|
||
|
+ CXXFLAGS="$CXXFLAG $NO_DELETE_NULL_POINTER_CHECKS_CFLAG -Werror"
|
||
|
+ ac_ext=cpp
|
||
|
+ac_cpp='$CXXCPP $CPPFLAGS'
|
||
|
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||
|
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||
|
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
|
||
|
+
|
||
|
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||
|
+/* end confdefs.h. */
|
||
|
+int i;
|
||
|
+_ACEOF
|
||
|
+if ac_fn_cxx_try_compile "$LINENO"; then :
|
||
|
+
|
||
|
+else
|
||
|
+ supports=no
|
||
|
+fi
|
||
|
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||
|
+ ac_ext=cpp
|
||
|
+ac_cpp='$CXXCPP $CPPFLAGS'
|
||
|
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||
|
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||
|
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
|
||
|
+
|
||
|
+ CXXFLAGS="$saved_cxxflags"
|
||
|
+
|
||
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports" >&5
|
||
|
+$as_echo "$supports" >&6; }
|
||
|
+ if test "x$supports" = "xyes" ; then
|
||
|
+ CXX_COMP_SUPPORTS="yes"
|
||
|
+ else
|
||
|
+ CXX_COMP_SUPPORTS="no"
|
||
|
+ fi
|
||
|
+
|
||
|
+
|
||
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if both compilers support \"$NO_DELETE_NULL_POINTER_CHECKS_CFLAG -Werror\"" >&5
|
||
|
+$as_echo_n "checking if both compilers support \"$NO_DELETE_NULL_POINTER_CHECKS_CFLAG -Werror\"... " >&6; }
|
||
|
+ supports=no
|
||
|
+ if test "x$C_COMP_SUPPORTS" = "xyes" -a "x$CXX_COMP_SUPPORTS" = "xyes"; then supports=yes; fi
|
||
|
+
|
||
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports" >&5
|
||
|
+$as_echo "$supports" >&6; }
|
||
|
+ if test "x$supports" = "xyes" ; then
|
||
|
+ :
|
||
|
+ else
|
||
|
+ NO_DELETE_NULL_POINTER_CHECKS_CFLAG=""
|
||
|
+ fi
|
||
|
+
|
||
|
+
|
||
|
+ NO_LIFETIME_DSE_CFLAG="-fno-lifetime-dse"
|
||
|
+
|
||
|
+
|
||
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the C compiler supports \"$NO_LIFETIME_DSE_CFLAG -Werror\"" >&5
|
||
|
+$as_echo_n "checking if the C compiler supports \"$NO_LIFETIME_DSE_CFLAG -Werror\"... " >&6; }
|
||
|
+ supports=yes
|
||
|
+
|
||
|
+ saved_cflags="$CFLAGS"
|
||
|
+ CFLAGS="$CFLAGS $NO_LIFETIME_DSE_CFLAG -Werror"
|
||
|
+ ac_ext=c
|
||
|
+ac_cpp='$CPP $CPPFLAGS'
|
||
|
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||
|
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||
|
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
||
|
+
|
||
|
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||
|
+/* end confdefs.h. */
|
||
|
+int i;
|
||
|
+_ACEOF
|
||
|
+if ac_fn_c_try_compile "$LINENO"; then :
|
||
|
+
|
||
|
+else
|
||
|
+ supports=no
|
||
|
+fi
|
||
|
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||
|
+ ac_ext=cpp
|
||
|
+ac_cpp='$CXXCPP $CPPFLAGS'
|
||
|
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||
|
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||
|
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
|
||
|
+
|
||
|
+ CFLAGS="$saved_cflags"
|
||
|
+
|
||
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports" >&5
|
||
|
+$as_echo "$supports" >&6; }
|
||
|
+ if test "x$supports" = "xyes" ; then
|
||
|
+ C_COMP_SUPPORTS="yes"
|
||
|
+ else
|
||
|
+ C_COMP_SUPPORTS="no"
|
||
|
+ fi
|
||
|
+
|
||
|
+
|
||
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the C++ compiler supports \"$NO_LIFETIME_DSE_CFLAG -Werror\"" >&5
|
||
|
+$as_echo_n "checking if the C++ compiler supports \"$NO_LIFETIME_DSE_CFLAG -Werror\"... " >&6; }
|
||
|
+ supports=yes
|
||
|
+
|
||
|
+ saved_cxxflags="$CXXFLAGS"
|
||
|
+ CXXFLAGS="$CXXFLAG $NO_LIFETIME_DSE_CFLAG -Werror"
|
||
|
+ ac_ext=cpp
|
||
|
+ac_cpp='$CXXCPP $CPPFLAGS'
|
||
|
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||
|
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||
|
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
|
||
|
+
|
||
|
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||
|
+/* end confdefs.h. */
|
||
|
+int i;
|
||
|
+_ACEOF
|
||
|
+if ac_fn_cxx_try_compile "$LINENO"; then :
|
||
|
+
|
||
|
+else
|
||
|
+ supports=no
|
||
|
+fi
|
||
|
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||
|
+ ac_ext=cpp
|
||
|
+ac_cpp='$CXXCPP $CPPFLAGS'
|
||
|
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||
|
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||
|
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
|
||
|
+
|
||
|
+ CXXFLAGS="$saved_cxxflags"
|
||
|
+
|
||
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports" >&5
|
||
|
+$as_echo "$supports" >&6; }
|
||
|
+ if test "x$supports" = "xyes" ; then
|
||
|
+ CXX_COMP_SUPPORTS="yes"
|
||
|
+ else
|
||
|
+ CXX_COMP_SUPPORTS="no"
|
||
|
+ fi
|
||
|
+
|
||
|
+
|
||
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if both compilers support \"$NO_LIFETIME_DSE_CFLAG -Werror\"" >&5
|
||
|
+$as_echo_n "checking if both compilers support \"$NO_LIFETIME_DSE_CFLAG -Werror\"... " >&6; }
|
||
|
+ supports=no
|
||
|
+ if test "x$C_COMP_SUPPORTS" = "xyes" -a "x$CXX_COMP_SUPPORTS" = "xyes"; then supports=yes; fi
|
||
|
+
|
||
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports" >&5
|
||
|
+$as_echo "$supports" >&6; }
|
||
|
+ if test "x$supports" = "xyes" ; then
|
||
|
+ :
|
||
|
+ else
|
||
|
+ NO_LIFETIME_DSE_CFLAG=""
|
||
|
+ fi
|
||
|
+
|
||
|
+ CFLAGS_JDK="${CFLAGS_JDK} ${NO_DELETE_NULL_POINTER_CHECKS_CFLAG} ${NO_LIFETIME_DSE_CFLAG}"
|
||
|
+
|
||
|
+
|
||
|
+
|
||
|
+ else
|
||
|
+ :
|
||
|
+ fi
|
||
|
+
|
||
|
;;
|
||
|
ossc )
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -DTRACING -DMACRO_MEMSYS_OPS -DBREAKPTS"
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS $COMMON_CCXXFLAGS_JDK -DTRACING -DMACRO_MEMSYS_OPS -DBREAKPTS"
|
||
|
case $OPENJDK_TARGET_CPU_ARCH in
|
||
|
x86 )
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DcpuIntel -Di586 -D$OPENJDK_TARGET_CPU_LEGACY_LIB"
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DcpuIntel -Di586 -D$OPENJDK_TARGET_CPU_LEGACY_LIB"
|
||
|
CFLAGS_JDK="$CFLAGS_JDK -erroff=E_BAD_PRAGMA_PACK_VALUE"
|
||
|
;;
|
||
|
esac
|
||
|
@@ -29707,16 +30031,16 @@
|
||
|
LDFLAGS_CXX_JDK="$LDFLAGS_CXX_JDK"
|
||
|
;;
|
||
|
cl )
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -Zi -MD -Zc:wchar_t- -W3 -wd4800 \
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS $COMMON_CCXXFLAGS_JDK -Zi -MD -Zc:wchar_t- -W3 -wd4800 \
|
||
|
-D_STATIC_CPPLIB -D_DISABLE_DEPRECATE_STATIC_CPPLIB -DWIN32_LEAN_AND_MEAN \
|
||
|
-D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE \
|
||
|
-DWIN32 -DIAL"
|
||
|
case $OPENJDK_TARGET_CPU in
|
||
|
x86 )
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_X86_ -Dx86"
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_X86_ -Dx86"
|
||
|
;;
|
||
|
x86_64 )
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_AMD64_ -Damd64"
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_AMD64_ -Damd64"
|
||
|
;;
|
||
|
esac
|
||
|
;;
|
||
|
@@ -29746,7 +30070,7 @@
|
||
|
;;
|
||
|
esac
|
||
|
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK $ADD_LP64"
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK $ADD_LP64"
|
||
|
|
||
|
# The package path is used only on macosx?
|
||
|
PACKAGE_PATH=/opt/local
|
||
|
@@ -29759,27 +30083,27 @@
|
||
|
# Note: -Dmacro is the same as #define macro 1
|
||
|
# -Dmacro= is the same as #define macro
|
||
|
if test "x$OPENJDK_TARGET_OS" = xsolaris; then
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_LITTLE_ENDIAN="
|
||
|
- else
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_LITTLE_ENDIAN"
|
||
|
- fi
|
||
|
- else
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_BIG_ENDIAN"
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_LITTLE_ENDIAN="
|
||
|
+ else
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_LITTLE_ENDIAN"
|
||
|
+ fi
|
||
|
+ else
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_BIG_ENDIAN"
|
||
|
fi
|
||
|
if test "x$OPENJDK_TARGET_OS" = xlinux; then
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DLINUX"
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DLINUX"
|
||
|
fi
|
||
|
if test "x$OPENJDK_TARGET_OS" = xwindows; then
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DWINDOWS"
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DWINDOWS"
|
||
|
fi
|
||
|
if test "x$OPENJDK_TARGET_OS" = xsolaris; then
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DSOLARIS"
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DSOLARIS"
|
||
|
fi
|
||
|
if test "x$OPENJDK_TARGET_OS" = xaix; then
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DAIX -DPPC64"
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DAIX -DPPC64"
|
||
|
fi
|
||
|
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DMACOSX -D_ALLBSD_SOURCE -D_DARWIN_UNLIMITED_SELECT"
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DMACOSX -D_ALLBSD_SOURCE -D_DARWIN_UNLIMITED_SELECT"
|
||
|
# Setting these parameters makes it an error to link to macosx APIs that are
|
||
|
# newer than the given OS version and makes the linked binaries compatible even
|
||
|
# if built on a newer version of the OS.
|
||
|
@@ -29789,25 +30113,25 @@
|
||
|
# The macro takes the version with no dots, ex: 1070
|
||
|
# Let the flags variables get resolved in make for easier override on make
|
||
|
# command line.
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DMAC_OS_X_VERSION_MAX_ALLOWED=\$(subst .,,\$(MACOSX_VERSION_MIN)) -mmacosx-version-min=\$(MACOSX_VERSION_MIN)"
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DMAC_OS_X_VERSION_MAX_ALLOWED=\$(subst .,,\$(MACOSX_VERSION_MIN)) -mmacosx-version-min=\$(MACOSX_VERSION_MIN)"
|
||
|
LDFLAGS_JDK="$LDFLAGS_JDK -mmacosx-version-min=\$(MACOSX_VERSION_MIN)"
|
||
|
fi
|
||
|
if test "x$OPENJDK_TARGET_OS" = xbsd; then
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DBSD -D_ALLBSD_SOURCE"
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DBSD -D_ALLBSD_SOURCE"
|
||
|
fi
|
||
|
if test "x$DEBUG_LEVEL" = xrelease; then
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DNDEBUG"
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DNDEBUG"
|
||
|
if test "x$OPENJDK_TARGET_OS" = xsolaris; then
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DTRIMMED"
|
||
|
- fi
|
||
|
- else
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DDEBUG"
|
||
|
- fi
|
||
|
-
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DARCH='\"$OPENJDK_TARGET_CPU_LEGACY\"' -D$OPENJDK_TARGET_CPU_LEGACY"
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DRELEASE='\"\$(RELEASE)\"'"
|
||
|
-
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK \
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DTRIMMED"
|
||
|
+ fi
|
||
|
+ else
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DDEBUG"
|
||
|
+ fi
|
||
|
+
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DARCH='\"$OPENJDK_TARGET_CPU_LEGACY\"' -D$OPENJDK_TARGET_CPU_LEGACY"
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DRELEASE='\"\$(RELEASE)\"'"
|
||
|
+
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK \
|
||
|
-I${JDK_OUTPUTDIR}/include \
|
||
|
-I${JDK_OUTPUTDIR}/include/$OPENJDK_TARGET_OS \
|
||
|
-I${JDK_TOPDIR}/src/share/javavm/export \
|
||
|
@@ -29816,12 +30140,12 @@
|
||
|
-I${JDK_TOPDIR}/src/$OPENJDK_TARGET_OS_API_DIR/native/common"
|
||
|
|
||
|
# The shared libraries are compiled using the picflag.
|
||
|
- CFLAGS_JDKLIB="$CCXXFLAGS_JDK $CFLAGS_JDK $PICFLAG $CFLAGS_JDKLIB_EXTRA"
|
||
|
- CXXFLAGS_JDKLIB="$CCXXFLAGS_JDK $CXXFLAGS_JDK $PICFLAG $CXXFLAGS_JDKLIB_EXTRA "
|
||
|
+ CFLAGS_JDKLIB="$COMMON_CCXXFLAGS_JDK $CFLAGS_JDK $PICFLAG $CFLAGS_JDKLIB_EXTRA"
|
||
|
+ CXXFLAGS_JDKLIB="$COMMON_CCXXFLAGS_JDK $CXXFLAGS_JDK $PICFLAG $CXXFLAGS_JDKLIB_EXTRA "
|
||
|
|
||
|
# Executable flags
|
||
|
- CFLAGS_JDKEXE="$CCXXFLAGS_JDK $CFLAGS_JDK"
|
||
|
- CXXFLAGS_JDKEXE="$CCXXFLAGS_JDK $CXXFLAGS_JDK"
|
||
|
+ CFLAGS_JDKEXE="$COMMON_CCXXFLAGS_JDK $CFLAGS_JDK"
|
||
|
+ CXXFLAGS_JDKEXE="$COMMON_CCXXFLAGS_JDK $CXXFLAGS_JDK"
|
||
|
|
||
|
# Now this is odd. The JDK native libraries have to link against libjvm.so
|
||
|
# On 32-bit machines there is normally two distinct libjvm.so:s, client and server.
|
||
|
@@ -29905,7 +30229,6 @@
|
||
|
|
||
|
|
||
|
|
||
|
-
|
||
|
# Some Zero and Shark settings.
|
||
|
# ZERO_ARCHFLAG tells the compiler which mode to build for
|
||
|
case "${OPENJDK_TARGET_CPU}" in
|
||
|
@@ -29916,8 +30239,9 @@
|
||
|
ZERO_ARCHFLAG="${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}"
|
||
|
esac
|
||
|
|
||
|
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler supports \"$ZERO_ARCHFLAG\"" >&5
|
||
|
-$as_echo_n "checking if compiler supports \"$ZERO_ARCHFLAG\"... " >&6; }
|
||
|
+
|
||
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the C compiler supports \"$ZERO_ARCHFLAG\"" >&5
|
||
|
+$as_echo_n "checking if the C compiler supports \"$ZERO_ARCHFLAG\"... " >&6; }
|
||
|
supports=yes
|
||
|
|
||
|
saved_cflags="$CFLAGS"
|
||
|
@@ -29946,6 +30270,19 @@
|
||
|
|
||
|
CFLAGS="$saved_cflags"
|
||
|
|
||
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports" >&5
|
||
|
+$as_echo "$supports" >&6; }
|
||
|
+ if test "x$supports" = "xyes" ; then
|
||
|
+ C_COMP_SUPPORTS="yes"
|
||
|
+ else
|
||
|
+ C_COMP_SUPPORTS="no"
|
||
|
+ fi
|
||
|
+
|
||
|
+
|
||
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the C++ compiler supports \"$ZERO_ARCHFLAG\"" >&5
|
||
|
+$as_echo_n "checking if the C++ compiler supports \"$ZERO_ARCHFLAG\"... " >&6; }
|
||
|
+ supports=yes
|
||
|
+
|
||
|
saved_cxxflags="$CXXFLAGS"
|
||
|
CXXFLAGS="$CXXFLAG $ZERO_ARCHFLAG"
|
||
|
ac_ext=cpp
|
||
|
@@ -29975,6 +30312,20 @@
|
||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports" >&5
|
||
|
$as_echo "$supports" >&6; }
|
||
|
if test "x$supports" = "xyes" ; then
|
||
|
+ CXX_COMP_SUPPORTS="yes"
|
||
|
+ else
|
||
|
+ CXX_COMP_SUPPORTS="no"
|
||
|
+ fi
|
||
|
+
|
||
|
+
|
||
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if both compilers support \"$ZERO_ARCHFLAG\"" >&5
|
||
|
+$as_echo_n "checking if both compilers support \"$ZERO_ARCHFLAG\"... " >&6; }
|
||
|
+ supports=no
|
||
|
+ if test "x$C_COMP_SUPPORTS" = "xyes" -a "x$CXX_COMP_SUPPORTS" = "xyes"; then supports=yes; fi
|
||
|
+
|
||
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports" >&5
|
||
|
+$as_echo "$supports" >&6; }
|
||
|
+ if test "x$supports" = "xyes" ; then
|
||
|
:
|
||
|
else
|
||
|
ZERO_ARCHFLAG=""
|
||
|
@@ -29985,8 +30336,9 @@
|
||
|
# Check that the compiler supports -mX (or -qX on AIX) flags
|
||
|
# Set COMPILER_SUPPORTS_TARGET_BITS_FLAG to 'true' if it does
|
||
|
|
||
|
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler supports \"${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}\"" >&5
|
||
|
-$as_echo_n "checking if compiler supports \"${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}\"... " >&6; }
|
||
|
+
|
||
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the C compiler supports \"${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}\"" >&5
|
||
|
+$as_echo_n "checking if the C compiler supports \"${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}\"... " >&6; }
|
||
|
supports=yes
|
||
|
|
||
|
saved_cflags="$CFLAGS"
|
||
|
@@ -30015,6 +30367,19 @@
|
||
|
|
||
|
CFLAGS="$saved_cflags"
|
||
|
|
||
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports" >&5
|
||
|
+$as_echo "$supports" >&6; }
|
||
|
+ if test "x$supports" = "xyes" ; then
|
||
|
+ C_COMP_SUPPORTS="yes"
|
||
|
+ else
|
||
|
+ C_COMP_SUPPORTS="no"
|
||
|
+ fi
|
||
|
+
|
||
|
+
|
||
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if the C++ compiler supports \"${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}\"" >&5
|
||
|
+$as_echo_n "checking if the C++ compiler supports \"${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}\"... " >&6; }
|
||
|
+ supports=yes
|
||
|
+
|
||
|
saved_cxxflags="$CXXFLAGS"
|
||
|
CXXFLAGS="$CXXFLAG ${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}"
|
||
|
ac_ext=cpp
|
||
|
@@ -30044,6 +30409,20 @@
|
||
|
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports" >&5
|
||
|
$as_echo "$supports" >&6; }
|
||
|
if test "x$supports" = "xyes" ; then
|
||
|
+ CXX_COMP_SUPPORTS="yes"
|
||
|
+ else
|
||
|
+ CXX_COMP_SUPPORTS="no"
|
||
|
+ fi
|
||
|
+
|
||
|
+
|
||
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if both compilers support \"${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}\"" >&5
|
||
|
+$as_echo_n "checking if both compilers support \"${COMPILER_TARGET_BITS_FLAG}${OPENJDK_TARGET_CPU_BITS}\"... " >&6; }
|
||
|
+ supports=no
|
||
|
+ if test "x$C_COMP_SUPPORTS" = "xyes" -a "x$CXX_COMP_SUPPORTS" = "xyes"; then supports=yes; fi
|
||
|
+
|
||
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $supports" >&5
|
||
|
+$as_echo "$supports" >&6; }
|
||
|
+ if test "x$supports" = "xyes" ; then
|
||
|
COMPILER_SUPPORTS_TARGET_BITS_FLAG=true
|
||
|
else
|
||
|
COMPILER_SUPPORTS_TARGET_BITS_FLAG=false
|
||
|
diff --git a/common/autoconf/hotspot-spec.gmk.in b/common/autoconf/hotspot-spec.gmk.in
|
||
|
--- a/common/autoconf/hotspot-spec.gmk.in
|
||
|
+++ b/common/autoconf/hotspot-spec.gmk.in
|
||
|
@@ -1,5 +1,5 @@
|
||
|
#
|
||
|
-# Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved.
|
||
|
+# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
|
||
|
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||
|
#
|
||
|
# This code is free software; you can redistribute it and/or modify it
|
||
|
@@ -109,7 +109,8 @@
|
||
|
MT:=@HOTSPOT_MT@
|
||
|
RC:=@HOTSPOT_RC@
|
||
|
|
||
|
-EXTRA_CFLAGS=@LEGACY_EXTRA_CFLAGS@
|
||
|
+EXTRA_CFLAGS=@LEGACY_EXTRA_CFLAGS@ $(NO_DELETE_NULL_POINTER_CHECKS_CFLAG) \
|
||
|
+ $(NO_LIFETIME_DSE_CFLAG) $(CXXSTD_CXXFLAG)
|
||
|
EXTRA_CXXFLAGS=@LEGACY_EXTRA_CXXFLAGS@
|
||
|
EXTRA_LDFLAGS=@LEGACY_EXTRA_LDFLAGS@
|
||
|
|
||
|
diff --git a/common/autoconf/spec.gmk.in b/common/autoconf/spec.gmk.in
|
||
|
--- a/common/autoconf/spec.gmk.in
|
||
|
+++ b/common/autoconf/spec.gmk.in
|
||
|
@@ -331,6 +331,10 @@
|
||
|
CFLAGS_JDKEXE:=@CFLAGS_JDKEXE@
|
||
|
CXXFLAGS_JDKEXE:=@CXXFLAGS_JDKEXE@
|
||
|
|
||
|
+NO_DELETE_NULL_POINTER_CHECKS_CFLAG=@NO_DELETE_NULL_POINTER_CHECKS_CFLAG@
|
||
|
+NO_LIFETIME_DSE_CFLAG=@NO_LIFETIME_DSE_CFLAG@
|
||
|
+CXXSTD_CXXFLAG=@CXXSTD_CXXFLAG@
|
||
|
+
|
||
|
CXX:=@FIXPATH@ @CCACHE@ @CXX@
|
||
|
#CXXFLAGS:=@CXXFLAGS@
|
||
|
|
||
|
diff --git a/common/autoconf/toolchain.m4 b/common/autoconf/toolchain.m4
|
||
|
--- a/common/autoconf/toolchain.m4
|
||
|
+++ b/common/autoconf/toolchain.m4
|
||
|
@@ -23,9 +23,59 @@
|
||
|
# questions.
|
||
|
#
|
||
|
|
||
|
+# Prepare the system so that TOOLCHAIN_CHECK_COMPILER_VERSION can be called.
|
||
|
+# Must have CC_VERSION_NUMBER and CXX_VERSION_NUMBER.
|
||
|
+AC_DEFUN([TOOLCHAIN_PREPARE_FOR_VERSION_COMPARISONS],
|
||
|
+[
|
||
|
+ if test "x$CC_VERSION" != "x$CXX_VERSION"; then
|
||
|
+ AC_MSG_WARN([C and C++ compiler has different version numbers, $CC_VERSION vs $CXX_VERSION.])
|
||
|
+ AC_MSG_WARN([This typically indicates a broken setup, and is not supported])
|
||
|
+ fi
|
||
|
+
|
||
|
+ # We only check CC_VERSION since we assume CXX_VERSION is equal.
|
||
|
+ if [ [[ "$CC_VERSION" =~ (.*\.){3} ]] ]; then
|
||
|
+ AC_MSG_WARN([C compiler version number has more than three parts (X.Y.Z): $CC_VERSION. Comparisons might be wrong.])
|
||
|
+ fi
|
||
|
+
|
||
|
+ if [ [[ "$CC_VERSION" =~ [0-9]{6} ]] ]; then
|
||
|
+ AC_MSG_WARN([C compiler version number has a part larger than 99999: $CC_VERSION. Comparisons might be wrong.])
|
||
|
+ fi
|
||
|
+
|
||
|
+ COMPARABLE_ACTUAL_VERSION=`$AWK -F. '{ printf("%05d%05d%05d\n", [$]1, [$]2, [$]3) }' <<< "$CC_VERSION"`
|
||
|
+])
|
||
|
+
|
||
|
+# Check if the configured compiler (C and C++) is of a specific version or
|
||
|
+# newer. TOOLCHAIN_PREPARE_FOR_VERSION_COMPARISONS must have been called before.
|
||
|
+#
|
||
|
+# Arguments:
|
||
|
+# $1: The version string to check against the found version
|
||
|
+# $2: block to run if the compiler is at least this version (>=)
|
||
|
+# $3: block to run if the compiler is older than this version (<)
|
||
|
+AC_DEFUN([TOOLCHAIN_CHECK_COMPILER_VERSION],
|
||
|
+[
|
||
|
+ REFERENCE_VERSION=$1
|
||
|
+
|
||
|
+ if [ [[ "$REFERENCE_VERSION" =~ (.*\.){3} ]] ]; then
|
||
|
+ AC_MSG_ERROR([Internal error: Cannot compare to $REFERENCE_VERSION, only three parts (X.Y.Z) is supported])
|
||
|
+ fi
|
||
|
+
|
||
|
+ if [ [[ "$REFERENCE_VERSION" =~ [0-9]{6} ]] ]; then
|
||
|
+ AC_MSG_ERROR([Internal error: Cannot compare to $REFERENCE_VERSION, only parts < 99999 is supported])
|
||
|
+ fi
|
||
|
+
|
||
|
+ # Version comparison method inspired by http://stackoverflow.com/a/24067243
|
||
|
+ COMPARABLE_REFERENCE_VERSION=`$AWK -F. '{ printf("%05d%05d%05d\n", [$]1, [$]2, [$]3) }' <<< "$REFERENCE_VERSION"`
|
||
|
+
|
||
|
+ if test $COMPARABLE_ACTUAL_VERSION -ge $COMPARABLE_REFERENCE_VERSION ; then
|
||
|
+ m4_ifval([$2], [$2], [:])
|
||
|
+ else
|
||
|
+ m4_ifval([$3], [$3], [:])
|
||
|
+ fi
|
||
|
+])
|
||
|
+
|
||
|
# $1 = compiler to test (CC or CXX)
|
||
|
# $2 = human readable name of compiler (C or C++)
|
||
|
-AC_DEFUN([TOOLCHAIN_CHECK_COMPILER_VERSION],
|
||
|
+AC_DEFUN([TOOLCHAIN_EXTRACT_COMPILER_VERSION],
|
||
|
[
|
||
|
COMPILER=[$]$1
|
||
|
COMPILER_NAME=$2
|
||
|
@@ -81,7 +131,8 @@
|
||
|
|
||
|
# First line typically looks something like:
|
||
|
# gcc (Ubuntu/Linaro 4.5.2-8ubuntu4) 4.5.2
|
||
|
- COMPILER_VERSION=`$ECHO $COMPILER_VERSION_TEST | $SED -n "s/^.* \(@<:@1-9@:>@@<:@0-9.@:>@*\)/\1/p"`
|
||
|
+ COMPILER_VERSION=`$ECHO $COMPILER_VERSION_TEST | \
|
||
|
+ $SED -e 's/^.* \(@<:@1-9@:>@\.@<:@0-9.@:>@*\)@<:@^0-9.@:>@.*$/\1/'`
|
||
|
COMPILER_VENDOR=`$ECHO $COMPILER_VERSION_TEST | $SED -n "s/^\(.*\) @<:@1-9@:>@@<:@0-9.@:>@*/\1/p"`
|
||
|
fi
|
||
|
# This sets CC_VERSION or CXX_VERSION. (This comment is a grep marker)
|
||
|
@@ -181,7 +232,7 @@
|
||
|
AC_MSG_RESULT([no, keeping $1])
|
||
|
$1="$TEST_COMPILER"
|
||
|
fi
|
||
|
- TOOLCHAIN_CHECK_COMPILER_VERSION([$1], [$COMPILER_NAME])
|
||
|
+ TOOLCHAIN_EXTRACT_COMPILER_VERSION([$1], [$COMPILER_NAME])
|
||
|
])
|
||
|
|
||
|
|
||
|
@@ -385,6 +436,12 @@
|
||
|
# Now that we have resolved CXX ourself, let autoconf have its go at it
|
||
|
AC_PROG_CXX([$CXX])
|
||
|
|
||
|
+ # This is the compiler version number on the form X.Y[.Z]
|
||
|
+ AC_SUBST(CC_VERSION)
|
||
|
+ AC_SUBST(CXX_VERSION)
|
||
|
+
|
||
|
+ TOOLCHAIN_PREPARE_FOR_VERSION_COMPARISONS
|
||
|
+
|
||
|
### Locate other tools
|
||
|
|
||
|
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
||
|
@@ -507,7 +564,8 @@
|
||
|
BASIC_FIXUP_EXECUTABLE(DUMPBIN)
|
||
|
|
||
|
COMPILER_TYPE=CL
|
||
|
- CCXXFLAGS="$CCXXFLAGS -nologo"
|
||
|
+ # silence copyright notice and other headers.
|
||
|
+ COMMON_CCXXFLAGS="$COMMON_CCXXFLAGS -nologo"
|
||
|
])
|
||
|
AC_SUBST(RC_FLAGS)
|
||
|
AC_SUBST(COMPILER_TYPE)
|
||
|
@@ -954,12 +1012,20 @@
|
||
|
#
|
||
|
# Now setup the CFLAGS and LDFLAGS for the JDK build.
|
||
|
# Later we will also have CFLAGS and LDFLAGS for the hotspot subrepo build.
|
||
|
+ # CFLAGS_JDK - C Compiler flags
|
||
|
+ # CXXFLAGS_JDK - C++ Compiler flags
|
||
|
+ # COMMON_CCXXFLAGS_JDK - common to C and C++
|
||
|
#
|
||
|
case $COMPILER_NAME in
|
||
|
gcc )
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -W -Wall -Wno-unused -Wno-parentheses \
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS $COMMON_CCXXFLAGS_JDK -W -Wall -Wno-unused -Wno-parentheses \
|
||
|
-pipe \
|
||
|
-D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE"
|
||
|
+ CXXSTD_CXXFLAG="-std=gnu++98"
|
||
|
+ TOOLCHAIN_CXX_COMPILER_CHECK_ARGUMENTS([$CXXSTD_CXXFLAG $CFLAGS_WARNINGS_ARE_ERRORS],
|
||
|
+ [], [CXXSTD_CXXFLAG=""])
|
||
|
+ CXXFLAGS_JDK="${CXXFLAGS_JDK} ${CXXSTD_CXXFLAG}"
|
||
|
+ AC_SUBST([CXXSTD_CXXFLAG])
|
||
|
case $OPENJDK_TARGET_CPU_ARCH in
|
||
|
arm )
|
||
|
# on arm we don't prevent gcc to omit frame pointer but do prevent strict aliasing
|
||
|
@@ -969,16 +1035,17 @@
|
||
|
# on ppc we don't prevent gcc to omit frame pointer nor strict-aliasing
|
||
|
;;
|
||
|
* )
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -fno-omit-frame-pointer"
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -fno-omit-frame-pointer"
|
||
|
CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing"
|
||
|
;;
|
||
|
esac
|
||
|
+ TOOLCHAIN_CHECK_COMPILER_VERSION(6, TOOLCHAIN_SETUP_GCC6_COMPILER_FLAGS)
|
||
|
;;
|
||
|
ossc )
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -DTRACING -DMACRO_MEMSYS_OPS -DBREAKPTS"
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS $COMMON_CCXXFLAGS_JDK -DTRACING -DMACRO_MEMSYS_OPS -DBREAKPTS"
|
||
|
case $OPENJDK_TARGET_CPU_ARCH in
|
||
|
x86 )
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DcpuIntel -Di586 -D$OPENJDK_TARGET_CPU_LEGACY_LIB"
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DcpuIntel -Di586 -D$OPENJDK_TARGET_CPU_LEGACY_LIB"
|
||
|
CFLAGS_JDK="$CFLAGS_JDK -erroff=E_BAD_PRAGMA_PACK_VALUE"
|
||
|
;;
|
||
|
esac
|
||
|
@@ -997,16 +1064,16 @@
|
||
|
LDFLAGS_CXX_JDK="$LDFLAGS_CXX_JDK"
|
||
|
;;
|
||
|
cl )
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -Zi -MD -Zc:wchar_t- -W3 -wd4800 \
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS $COMMON_CCXXFLAGS_JDK -Zi -MD -Zc:wchar_t- -W3 -wd4800 \
|
||
|
-D_STATIC_CPPLIB -D_DISABLE_DEPRECATE_STATIC_CPPLIB -DWIN32_LEAN_AND_MEAN \
|
||
|
-D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE \
|
||
|
-DWIN32 -DIAL"
|
||
|
case $OPENJDK_TARGET_CPU in
|
||
|
x86 )
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_X86_ -Dx86"
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_X86_ -Dx86"
|
||
|
;;
|
||
|
x86_64 )
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_AMD64_ -Damd64"
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_AMD64_ -Damd64"
|
||
|
;;
|
||
|
esac
|
||
|
;;
|
||
|
@@ -1036,7 +1103,7 @@
|
||
|
;;
|
||
|
esac
|
||
|
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK $ADD_LP64"
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK $ADD_LP64"
|
||
|
|
||
|
# The package path is used only on macosx?
|
||
|
PACKAGE_PATH=/opt/local
|
||
|
@@ -1049,27 +1116,27 @@
|
||
|
# Note: -Dmacro is the same as #define macro 1
|
||
|
# -Dmacro= is the same as #define macro
|
||
|
if test "x$OPENJDK_TARGET_OS" = xsolaris; then
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_LITTLE_ENDIAN="
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_LITTLE_ENDIAN="
|
||
|
else
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_LITTLE_ENDIAN"
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_LITTLE_ENDIAN"
|
||
|
fi
|
||
|
else
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_BIG_ENDIAN"
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -D_BIG_ENDIAN"
|
||
|
fi
|
||
|
if test "x$OPENJDK_TARGET_OS" = xlinux; then
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DLINUX"
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DLINUX"
|
||
|
fi
|
||
|
if test "x$OPENJDK_TARGET_OS" = xwindows; then
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DWINDOWS"
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DWINDOWS"
|
||
|
fi
|
||
|
if test "x$OPENJDK_TARGET_OS" = xsolaris; then
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DSOLARIS"
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DSOLARIS"
|
||
|
fi
|
||
|
if test "x$OPENJDK_TARGET_OS" = xaix; then
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DAIX -DPPC64"
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DAIX -DPPC64"
|
||
|
fi
|
||
|
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DMACOSX -D_ALLBSD_SOURCE -D_DARWIN_UNLIMITED_SELECT"
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DMACOSX -D_ALLBSD_SOURCE -D_DARWIN_UNLIMITED_SELECT"
|
||
|
# Setting these parameters makes it an error to link to macosx APIs that are
|
||
|
# newer than the given OS version and makes the linked binaries compatible even
|
||
|
# if built on a newer version of the OS.
|
||
|
@@ -1079,25 +1146,25 @@
|
||
|
# The macro takes the version with no dots, ex: 1070
|
||
|
# Let the flags variables get resolved in make for easier override on make
|
||
|
# command line.
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DMAC_OS_X_VERSION_MAX_ALLOWED=\$(subst .,,\$(MACOSX_VERSION_MIN)) -mmacosx-version-min=\$(MACOSX_VERSION_MIN)"
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DMAC_OS_X_VERSION_MAX_ALLOWED=\$(subst .,,\$(MACOSX_VERSION_MIN)) -mmacosx-version-min=\$(MACOSX_VERSION_MIN)"
|
||
|
LDFLAGS_JDK="$LDFLAGS_JDK -mmacosx-version-min=\$(MACOSX_VERSION_MIN)"
|
||
|
fi
|
||
|
if test "x$OPENJDK_TARGET_OS" = xbsd; then
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DBSD -D_ALLBSD_SOURCE"
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DBSD -D_ALLBSD_SOURCE"
|
||
|
fi
|
||
|
if test "x$DEBUG_LEVEL" = xrelease; then
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DNDEBUG"
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DNDEBUG"
|
||
|
if test "x$OPENJDK_TARGET_OS" = xsolaris; then
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DTRIMMED"
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DTRIMMED"
|
||
|
fi
|
||
|
else
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DDEBUG"
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DDEBUG"
|
||
|
fi
|
||
|
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DARCH='\"$OPENJDK_TARGET_CPU_LEGACY\"' -D$OPENJDK_TARGET_CPU_LEGACY"
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DRELEASE='\"\$(RELEASE)\"'"
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DARCH='\"$OPENJDK_TARGET_CPU_LEGACY\"' -D$OPENJDK_TARGET_CPU_LEGACY"
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK -DRELEASE='\"\$(RELEASE)\"'"
|
||
|
|
||
|
- CCXXFLAGS_JDK="$CCXXFLAGS_JDK \
|
||
|
+ COMMON_CCXXFLAGS_JDK="$COMMON_CCXXFLAGS_JDK \
|
||
|
-I${JDK_OUTPUTDIR}/include \
|
||
|
-I${JDK_OUTPUTDIR}/include/$OPENJDK_TARGET_OS \
|
||
|
-I${JDK_TOPDIR}/src/share/javavm/export \
|
||
|
@@ -1106,12 +1173,12 @@
|
||
|
-I${JDK_TOPDIR}/src/$OPENJDK_TARGET_OS_API_DIR/native/common"
|
||
|
|
||
|
# The shared libraries are compiled using the picflag.
|
||
|
- CFLAGS_JDKLIB="$CCXXFLAGS_JDK $CFLAGS_JDK $PICFLAG $CFLAGS_JDKLIB_EXTRA"
|
||
|
- CXXFLAGS_JDKLIB="$CCXXFLAGS_JDK $CXXFLAGS_JDK $PICFLAG $CXXFLAGS_JDKLIB_EXTRA "
|
||
|
+ CFLAGS_JDKLIB="$COMMON_CCXXFLAGS_JDK $CFLAGS_JDK $PICFLAG $CFLAGS_JDKLIB_EXTRA"
|
||
|
+ CXXFLAGS_JDKLIB="$COMMON_CCXXFLAGS_JDK $CXXFLAGS_JDK $PICFLAG $CXXFLAGS_JDKLIB_EXTRA "
|
||
|
|
||
|
# Executable flags
|
||
|
- CFLAGS_JDKEXE="$CCXXFLAGS_JDK $CFLAGS_JDK"
|
||
|
- CXXFLAGS_JDKEXE="$CCXXFLAGS_JDK $CXXFLAGS_JDK"
|
||
|
+ CFLAGS_JDKEXE="$COMMON_CCXXFLAGS_JDK $CFLAGS_JDK"
|
||
|
+ CXXFLAGS_JDKEXE="$COMMON_CCXXFLAGS_JDK $CXXFLAGS_JDK"
|
||
|
|
||
|
# Now this is odd. The JDK native libraries have to link against libjvm.so
|
||
|
# On 32-bit machines there is normally two distinct libjvm.so:s, client and server.
|
||
|
@@ -1196,13 +1263,13 @@
|
||
|
])
|
||
|
|
||
|
|
||
|
-# TOOLCHAIN_COMPILER_CHECK_ARGUMENTS([ARGUMENT], [RUN-IF-TRUE],
|
||
|
-# [RUN-IF-FALSE])
|
||
|
+# TOOLCHAIN_C_COMPILER_CHECK_ARGUMENTS([ARGUMENT], [RUN-IF-TRUE],
|
||
|
+# [RUN-IF-FALSE])
|
||
|
# ------------------------------------------------------------
|
||
|
-# Check that the c and c++ compilers support an argument
|
||
|
-AC_DEFUN([TOOLCHAIN_COMPILER_CHECK_ARGUMENTS],
|
||
|
+# Check that the C compiler supports an argument
|
||
|
+AC_DEFUN([TOOLCHAIN_C_COMPILER_CHECK_ARGUMENTS],
|
||
|
[
|
||
|
- AC_MSG_CHECKING([if compiler supports "$1"])
|
||
|
+ AC_MSG_CHECKING([if the C compiler supports "$1"])
|
||
|
supports=yes
|
||
|
|
||
|
saved_cflags="$CFLAGS"
|
||
|
@@ -1213,6 +1280,23 @@
|
||
|
AC_LANG_POP([C])
|
||
|
CFLAGS="$saved_cflags"
|
||
|
|
||
|
+ AC_MSG_RESULT([$supports])
|
||
|
+ if test "x$supports" = "xyes" ; then
|
||
|
+ m4_ifval([$2], [$2], [:])
|
||
|
+ else
|
||
|
+ m4_ifval([$3], [$3], [:])
|
||
|
+ fi
|
||
|
+])
|
||
|
+
|
||
|
+# TOOLCHAIN_CXX_COMPILER_CHECK_ARGUMENTS([ARGUMENT], [RUN-IF-TRUE],
|
||
|
+# [RUN-IF-FALSE])
|
||
|
+# ------------------------------------------------------------
|
||
|
+# Check that the C++ compiler supports an argument
|
||
|
+AC_DEFUN([TOOLCHAIN_CXX_COMPILER_CHECK_ARGUMENTS],
|
||
|
+[
|
||
|
+ AC_MSG_CHECKING([if the C++ compiler supports "$1"])
|
||
|
+ supports=yes
|
||
|
+
|
||
|
saved_cxxflags="$CXXFLAGS"
|
||
|
CXXFLAGS="$CXXFLAG $1"
|
||
|
AC_LANG_PUSH([C++])
|
||
|
@@ -1220,7 +1304,32 @@
|
||
|
[supports=no])
|
||
|
AC_LANG_POP([C++])
|
||
|
CXXFLAGS="$saved_cxxflags"
|
||
|
+
|
||
|
+ AC_MSG_RESULT([$supports])
|
||
|
+ if test "x$supports" = "xyes" ; then
|
||
|
+ m4_ifval([$2], [$2], [:])
|
||
|
+ else
|
||
|
+ m4_ifval([$3], [$3], [:])
|
||
|
+ fi
|
||
|
+])
|
||
|
|
||
|
+# TOOLCHAIN_COMPILER_CHECK_ARGUMENTS([ARGUMENT], [RUN-IF-TRUE],
|
||
|
+# [RUN-IF-FALSE])
|
||
|
+# ------------------------------------------------------------
|
||
|
+# Check that the C and C++ compilers support an argument
|
||
|
+AC_DEFUN([TOOLCHAIN_COMPILER_CHECK_ARGUMENTS],
|
||
|
+[
|
||
|
+ TOOLCHAIN_C_COMPILER_CHECK_ARGUMENTS([$1],
|
||
|
+ [C_COMP_SUPPORTS="yes"],
|
||
|
+ [C_COMP_SUPPORTS="no"])
|
||
|
+ TOOLCHAIN_CXX_COMPILER_CHECK_ARGUMENTS([$1],
|
||
|
+ [CXX_COMP_SUPPORTS="yes"],
|
||
|
+ [CXX_COMP_SUPPORTS="no"])
|
||
|
+
|
||
|
+ AC_MSG_CHECKING([if both compilers support "$1"])
|
||
|
+ supports=no
|
||
|
+ if test "x$C_COMP_SUPPORTS" = "xyes" -a "x$CXX_COMP_SUPPORTS" = "xyes"; then supports=yes; fi
|
||
|
+
|
||
|
AC_MSG_RESULT([$supports])
|
||
|
if test "x$supports" = "xyes" ; then
|
||
|
m4_ifval([$2], [$2], [:])
|
||
|
@@ -1311,3 +1420,20 @@
|
||
|
AC_SUBST(JT_HOME)
|
||
|
AC_SUBST(JTREGEXE)
|
||
|
])
|
||
|
+
|
||
|
+AC_DEFUN_ONCE([TOOLCHAIN_SETUP_GCC6_COMPILER_FLAGS],
|
||
|
+[
|
||
|
+ # These flags are required for GCC 6 builds as undefined behaviour in OpenJDK code
|
||
|
+ # runs afoul of the more aggressive versions of these optimisations.
|
||
|
+ # Notably, value range propagation now assumes that the this pointer of C++
|
||
|
+ # member functions is non-null.
|
||
|
+ NO_DELETE_NULL_POINTER_CHECKS_CFLAG="-fno-delete-null-pointer-checks"
|
||
|
+ TOOLCHAIN_COMPILER_CHECK_ARGUMENTS([$NO_DELETE_NULL_POINTER_CHECKS_CFLAG -Werror],
|
||
|
+ [], [NO_DELETE_NULL_POINTER_CHECKS_CFLAG=""])
|
||
|
+ AC_SUBST([NO_DELETE_NULL_POINTER_CHECKS_CFLAG])
|
||
|
+ NO_LIFETIME_DSE_CFLAG="-fno-lifetime-dse"
|
||
|
+ TOOLCHAIN_COMPILER_CHECK_ARGUMENTS([$NO_LIFETIME_DSE_CFLAG -Werror],
|
||
|
+ [], [NO_LIFETIME_DSE_CFLAG=""])
|
||
|
+ CFLAGS_JDK="${CFLAGS_JDK} ${NO_DELETE_NULL_POINTER_CHECKS_CFLAG} ${NO_LIFETIME_DSE_CFLAG}"
|
||
|
+ AC_SUBST([NO_LIFETIME_DSE_CFLAG])
|
||
|
+])
|