Wed, 24 Jul 2019 03:18:35 +0100
8223219: Backport of JDK-8199552 to OpenJDK 8 leads to duplicate -fstack-protector flags, overriding --with-extra-cflags
Summary: Apply -fstack-protector to all archs and remove duplication in JDK build
Reviewed-by: sgehwolf
common/autoconf/flags.m4 | file | annotate | diff | comparison | revisions | |
common/autoconf/generated-configure.sh | file | annotate | diff | comparison | revisions |
1.1 --- a/common/autoconf/flags.m4 Wed Jul 17 21:18:48 2019 +0100 1.2 +++ b/common/autoconf/flags.m4 Wed Jul 24 03:18:35 2019 +0100 1.3 @@ -388,16 +388,8 @@ 1.4 CFLAGS_JDK="${CFLAGS_JDK} -qchars=signed -q64 -qfullpath -qsaveopt" 1.5 CXXFLAGS_JDK="${CXXFLAGS_JDK} -qchars=signed -q64 -qfullpath -qsaveopt" 1.6 elif test "x$TOOLCHAIN_TYPE" = xgcc; then 1.7 - case $OPENJDK_TARGET_CPU_ARCH in 1.8 - x86 ) 1.9 - LEGACY_EXTRA_CFLAGS="$LEGACY_EXTRA_CFLAGS -fstack-protector" 1.10 - LEGACY_EXTRA_CXXFLAGS="$LEGACY_EXTRA_CXXFLAGS -fstack-protector" 1.11 - ;; 1.12 - x86_64 ) 1.13 - LEGACY_EXTRA_CFLAGS="$LEGACY_EXTRA_CFLAGS -fstack-protector" 1.14 - LEGACY_EXTRA_CXXFLAGS="$LEGACY_EXTRA_CXXFLAGS -fstack-protector" 1.15 - ;; 1.16 - esac 1.17 + LEGACY_EXTRA_CFLAGS="$LEGACY_EXTRA_CFLAGS -fstack-protector" 1.18 + LEGACY_EXTRA_CXXFLAGS="$LEGACY_EXTRA_CXXFLAGS -fstack-protector" 1.19 if test "x$OPENJDK_TARGET_OS" != xmacosx; then 1.20 LDFLAGS_JDK="$LDFLAGS_JDK -Wl,-z,relro" 1.21 LEGACY_EXTRA_LDFLAGS="$LEGACY_EXTRA_LDFLAGS -Wl,-z,relro" 1.22 @@ -456,7 +448,7 @@ 1.23 if test "x$TOOLCHAIN_TYPE" = xgcc; then 1.24 # these options are used for both C and C++ compiles 1.25 CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -Wall -Wno-parentheses -Wextra -Wno-unused -Wno-unused-parameter -Wformat=2 \ 1.26 - -pipe -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE" 1.27 + -pipe -fstack-protector -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE" 1.28 case $OPENJDK_TARGET_CPU_ARCH in 1.29 arm ) 1.30 # on arm we don't prevent gcc to omit frame pointer but do prevent strict aliasing 1.31 @@ -465,10 +457,6 @@ 1.32 ppc ) 1.33 # on ppc we don't prevent gcc to omit frame pointer nor strict-aliasing 1.34 ;; 1.35 - x86 ) 1.36 - CCXXFLAGS_JDK="$CCXXFLAGS_JDK -fno-omit-frame-pointer -fstack-protector" 1.37 - CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing -fstack-protector" 1.38 - ;; 1.39 * ) 1.40 CCXXFLAGS_JDK="$CCXXFLAGS_JDK -fno-omit-frame-pointer" 1.41 CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing"
2.1 --- a/common/autoconf/generated-configure.sh Wed Jul 17 21:18:48 2019 +0100 2.2 +++ b/common/autoconf/generated-configure.sh Wed Jul 24 03:18:35 2019 +0100 2.3 @@ -4376,7 +4376,7 @@ 2.4 #CUSTOM_AUTOCONF_INCLUDE 2.5 2.6 # Do not change or remove the following line, it is needed for consistency checks: 2.7 -DATE_WHEN_GENERATED=1556533111 2.8 +DATE_WHEN_GENERATED=1560366811 2.9 2.10 ############################################################################### 2.11 # 2.12 @@ -41432,16 +41432,8 @@ 2.13 CFLAGS_JDK="${CFLAGS_JDK} -qchars=signed -q64 -qfullpath -qsaveopt" 2.14 CXXFLAGS_JDK="${CXXFLAGS_JDK} -qchars=signed -q64 -qfullpath -qsaveopt" 2.15 elif test "x$TOOLCHAIN_TYPE" = xgcc; then 2.16 - case $OPENJDK_TARGET_CPU_ARCH in 2.17 - x86 ) 2.18 - LEGACY_EXTRA_CFLAGS="$LEGACY_EXTRA_CFLAGS -fstack-protector" 2.19 - LEGACY_EXTRA_CXXFLAGS="$LEGACY_EXTRA_CXXFLAGS -fstack-protector" 2.20 - ;; 2.21 - x86_64 ) 2.22 - LEGACY_EXTRA_CFLAGS="$LEGACY_EXTRA_CFLAGS -fstack-protector" 2.23 - LEGACY_EXTRA_CXXFLAGS="$LEGACY_EXTRA_CXXFLAGS -fstack-protector" 2.24 - ;; 2.25 - esac 2.26 + LEGACY_EXTRA_CFLAGS="$LEGACY_EXTRA_CFLAGS -fstack-protector" 2.27 + LEGACY_EXTRA_CXXFLAGS="$LEGACY_EXTRA_CXXFLAGS -fstack-protector" 2.28 if test "x$OPENJDK_TARGET_OS" != xmacosx; then 2.29 LDFLAGS_JDK="$LDFLAGS_JDK -Wl,-z,relro" 2.30 LEGACY_EXTRA_LDFLAGS="$LEGACY_EXTRA_LDFLAGS -Wl,-z,relro" 2.31 @@ -41552,7 +41544,7 @@ 2.32 if test "x$TOOLCHAIN_TYPE" = xgcc; then 2.33 # these options are used for both C and C++ compiles 2.34 CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -Wall -Wno-parentheses -Wextra -Wno-unused -Wno-unused-parameter -Wformat=2 \ 2.35 - -pipe -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE" 2.36 + -pipe -fstack-protector -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE" 2.37 case $OPENJDK_TARGET_CPU_ARCH in 2.38 arm ) 2.39 # on arm we don't prevent gcc to omit frame pointer but do prevent strict aliasing 2.40 @@ -41561,10 +41553,6 @@ 2.41 ppc ) 2.42 # on ppc we don't prevent gcc to omit frame pointer nor strict-aliasing 2.43 ;; 2.44 - x86 ) 2.45 - CCXXFLAGS_JDK="$CCXXFLAGS_JDK -fno-omit-frame-pointer -fstack-protector" 2.46 - CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing -fstack-protector" 2.47 - ;; 2.48 * ) 2.49 CCXXFLAGS_JDK="$CCXXFLAGS_JDK -fno-omit-frame-pointer" 2.50 CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing"