Skip to content

Commit 288423e

Browse files
committed
8223219: Backport of JDK-8199552 to OpenJDK 8 leads to duplicate -fstack-protector flags, overriding --with-extra-cflags
Apply -fstack-protector to all archs and remove duplication in JDK build Reviewed-by: sgehwolf
1 parent 4ac4465 commit 288423e

File tree

2 files changed

+7
-31
lines changed

2 files changed

+7
-31
lines changed

common/autoconf/flags.m4

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -388,16 +388,8 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK],
388388
CFLAGS_JDK="${CFLAGS_JDK} -qchars=signed -q64 -qfullpath -qsaveopt"
389389
CXXFLAGS_JDK="${CXXFLAGS_JDK} -qchars=signed -q64 -qfullpath -qsaveopt"
390390
elif test "x$TOOLCHAIN_TYPE" = xgcc; then
391-
case $OPENJDK_TARGET_CPU_ARCH in
392-
x86 )
393-
LEGACY_EXTRA_CFLAGS="$LEGACY_EXTRA_CFLAGS -fstack-protector"
394-
LEGACY_EXTRA_CXXFLAGS="$LEGACY_EXTRA_CXXFLAGS -fstack-protector"
395-
;;
396-
x86_64 )
397-
LEGACY_EXTRA_CFLAGS="$LEGACY_EXTRA_CFLAGS -fstack-protector"
398-
LEGACY_EXTRA_CXXFLAGS="$LEGACY_EXTRA_CXXFLAGS -fstack-protector"
399-
;;
400-
esac
391+
LEGACY_EXTRA_CFLAGS="$LEGACY_EXTRA_CFLAGS -fstack-protector"
392+
LEGACY_EXTRA_CXXFLAGS="$LEGACY_EXTRA_CXXFLAGS -fstack-protector"
401393
if test "x$OPENJDK_TARGET_OS" != xmacosx; then
402394
LDFLAGS_JDK="$LDFLAGS_JDK -Wl,-z,relro"
403395
LEGACY_EXTRA_LDFLAGS="$LEGACY_EXTRA_LDFLAGS -Wl,-z,relro"
@@ -456,7 +448,7 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK],
456448
if test "x$TOOLCHAIN_TYPE" = xgcc; then
457449
# these options are used for both C and C++ compiles
458450
CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -Wall -Wno-parentheses -Wextra -Wno-unused -Wno-unused-parameter -Wformat=2 \
459-
-pipe -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE"
451+
-pipe -fstack-protector -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE"
460452
case $OPENJDK_TARGET_CPU_ARCH in
461453
arm )
462454
# on arm we don't prevent gcc to omit frame pointer but do prevent strict aliasing
@@ -465,10 +457,6 @@ AC_DEFUN_ONCE([FLAGS_SETUP_COMPILER_FLAGS_FOR_JDK],
465457
ppc )
466458
# on ppc we don't prevent gcc to omit frame pointer nor strict-aliasing
467459
;;
468-
x86 )
469-
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -fno-omit-frame-pointer -fstack-protector"
470-
CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing -fstack-protector"
471-
;;
472460
* )
473461
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -fno-omit-frame-pointer"
474462
CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing"

common/autoconf/generated-configure.sh

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4376,7 +4376,7 @@ VS_SDK_PLATFORM_NAME_2017=
43764376
#CUSTOM_AUTOCONF_INCLUDE
43774377

43784378
# Do not change or remove the following line, it is needed for consistency checks:
4379-
DATE_WHEN_GENERATED=1556533111
4379+
DATE_WHEN_GENERATED=1560366811
43804380

43814381
###############################################################################
43824382
#
@@ -41432,16 +41432,8 @@ $as_echo "$ac_cv_c_bigendian" >&6; }
4143241432
CFLAGS_JDK="${CFLAGS_JDK} -qchars=signed -q64 -qfullpath -qsaveopt"
4143341433
CXXFLAGS_JDK="${CXXFLAGS_JDK} -qchars=signed -q64 -qfullpath -qsaveopt"
4143441434
elif test "x$TOOLCHAIN_TYPE" = xgcc; then
41435-
case $OPENJDK_TARGET_CPU_ARCH in
41436-
x86 )
41437-
LEGACY_EXTRA_CFLAGS="$LEGACY_EXTRA_CFLAGS -fstack-protector"
41438-
LEGACY_EXTRA_CXXFLAGS="$LEGACY_EXTRA_CXXFLAGS -fstack-protector"
41439-
;;
41440-
x86_64 )
41441-
LEGACY_EXTRA_CFLAGS="$LEGACY_EXTRA_CFLAGS -fstack-protector"
41442-
LEGACY_EXTRA_CXXFLAGS="$LEGACY_EXTRA_CXXFLAGS -fstack-protector"
41443-
;;
41444-
esac
41435+
LEGACY_EXTRA_CFLAGS="$LEGACY_EXTRA_CFLAGS -fstack-protector"
41436+
LEGACY_EXTRA_CXXFLAGS="$LEGACY_EXTRA_CXXFLAGS -fstack-protector"
4144541437
if test "x$OPENJDK_TARGET_OS" != xmacosx; then
4144641438
LDFLAGS_JDK="$LDFLAGS_JDK -Wl,-z,relro"
4144741439
LEGACY_EXTRA_LDFLAGS="$LEGACY_EXTRA_LDFLAGS -Wl,-z,relro"
@@ -41552,7 +41544,7 @@ fi
4155241544
if test "x$TOOLCHAIN_TYPE" = xgcc; then
4155341545
# these options are used for both C and C++ compiles
4155441546
CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -Wall -Wno-parentheses -Wextra -Wno-unused -Wno-unused-parameter -Wformat=2 \
41555-
-pipe -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE"
41547+
-pipe -fstack-protector -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE"
4155641548
case $OPENJDK_TARGET_CPU_ARCH in
4155741549
arm )
4155841550
# on arm we don't prevent gcc to omit frame pointer but do prevent strict aliasing
@@ -41561,10 +41553,6 @@ fi
4156141553
ppc )
4156241554
# on ppc we don't prevent gcc to omit frame pointer nor strict-aliasing
4156341555
;;
41564-
x86 )
41565-
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -fno-omit-frame-pointer -fstack-protector"
41566-
CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing -fstack-protector"
41567-
;;
4156841556
* )
4156941557
CCXXFLAGS_JDK="$CCXXFLAGS_JDK -fno-omit-frame-pointer"
4157041558
CFLAGS_JDK="${CFLAGS_JDK} -fno-strict-aliasing"

0 commit comments

Comments
 (0)