--- old/make/autoconf/flags-cflags.m4 2018-06-08 14:40:35.751835784 -0700 +++ new/make/autoconf/flags-cflags.m4 2018-06-08 14:40:35.527835792 -0700 @@ -764,6 +764,26 @@ $1_WARNING_CFLAGS_JVM="-Wno-format-zero-length -Wtype-limits -Wuninitialized" fi + case $TOOLCHAIN_TYPE in + gcc) + $2NO_SPECULATIVE_CTI_CFLAGS="-mindirect-branch=thunk \ + -mfunction-return=thunk -mindirect-branch-register" + ;; + microsoft) + $2NO_SPECULATIVE_CTI_CFLAGS="-Qspectre" + ;; + *) + $2NO_SPECULATIVE_CTI_CFLAGS="" + ;; + esac + if test -n "${$2NO_SPECULATIVE_CTI_CFLAGS}"; then + FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [${$2NO_SPECULATIVE_CTI_CFLAGS}], + IF_FALSE: [ + $2NO_SPECULATIVE_CTI_CFLAGS="" + ] + ) + fi + # EXPORT to API CFLAGS_JVM_COMMON="$ALWAYS_CFLAGS_JVM $ALWAYS_DEFINES_JVM $TOOLCHAIN_CFLAGS_JVM \ $OS_CFLAGS $OS_CFLAGS_JVM $CFLAGS_OS_DEF_JVM $DEBUG_CFLAGS_JVM \ @@ -782,8 +802,10 @@ CFLAGS_JDK_COMMON_CXXONLY="$ALWAYS_DEFINES_JDK_CXXONLY $TOOLCHAIN_CFLAGS_JDK_CXXONLY \ $WARNING_CFLAGS_JDK_CXXONLY ${$2EXTRA_CXXFLAGS}" - $1_CFLAGS_JVM="${$1_DEFINES_CPU_JVM} ${$1_CFLAGS_CPU} ${$1_CFLAGS_CPU_JVM} ${$1_TOOLCHAIN_CFLAGS} ${$1_WARNING_CFLAGS_JVM}" - $1_CFLAGS_JDK="${$1_DEFINES_CPU_JDK} ${$1_CFLAGS_CPU} ${$1_CFLAGS_CPU_JDK} ${$1_TOOLCHAIN_CFLAGS}" + $1_CFLAGS_JVM="${$1_DEFINES_CPU_JVM} ${$1_CFLAGS_CPU} ${$1_CFLAGS_CPU_JVM} \ + ${$1_TOOLCHAIN_CFLAGS} ${$1_WARNING_CFLAGS_JVM}" + $1_CFLAGS_JDK="${$1_DEFINES_CPU_JDK} ${$1_CFLAGS_CPU} ${$1_CFLAGS_CPU_JDK} \ + ${$1_TOOLCHAIN_CFLAGS}" $2JVM_CFLAGS="$CFLAGS_JVM_COMMON ${$1_CFLAGS_JVM} ${$2EXTRA_CXXFLAGS}" @@ -797,6 +819,7 @@ AC_SUBST($2CFLAGS_JDKEXE) AC_SUBST($2CXXFLAGS_JDKLIB) AC_SUBST($2CXXFLAGS_JDKEXE) + AC_SUBST($2NO_SPECULATIVE_CTI_CFLAGS) ]) # FLAGS_SETUP_GCC6_COMPILER_FLAGS([PREFIX])