On 4/06/2015 10:38 PM, Magnus Ihse Bursie wrote:
On 2015-06-04 07:41, David Holmes wrote:
Magnus,

You missed the hotspot side of this:

./solaris/makefiles/gcc.make:  DEBUG_CFLAGS += -fstack-protector-all
--param ssp-buffer-size=1
./bsd/makefiles/gcc.make:    DEBUG_CFLAGS += -fstack-protector-all
--param ssp-buffer-size=1
./linux/makefiles/gcc.make:    DEBUG_CFLAGS += -fstack-protector-all
--param ssp-buffer-size=1

I'm not actually sure how to do this in hotspot. We have no access to
the FLAGS_COMPILER_CHECK_ARGUMENTS configure argument.

Should I move the definition of the DEBUG_CFLAGS from the hotspot
makefiles into configure, and pass e.g. HOTSPOT_DEBUG_CFLAGS into
hotspot-spec.gmk? Would that seem like a good idea to you?

I guess I was expecting a SUPPORTS_STACK_PROTECTOR variable that could be exported to spec.gmk.

BTW in this:

CFLAGS_DEBUG_OPTIONS="$STACK_PROTECTOR_CFLAG --param ssp-buffer-size=1"

the --param ssp-buffer-size is only meaningful when using -fstack-protector[-all]. It doesn't produce any warnings though so I assume it is harmless.

Thanks,
David

/Magnus
(I'm soooo longing for the build-infra hotspot replacement...)


David

On 3/06/2015 10:33 PM, Magnus Ihse Bursie wrote:
Not all versions of gcc support -fstack-protector. We should check that
it is accepted as an argument before adding it to the flags.

Bug: https://bugs.openjdk.java.net/browse/JDK-8081692
WebRev inline:

diff --git a/common/autoconf/flags.m4 b/common/autoconf/flags.m4
--- a/common/autoconf/flags.m4
+++ b/common/autoconf/flags.m4
@@ -338,14 +338,16 @@
        # no adjustment
        ;;
      slowdebug )
-      # Add runtime stack smashing and undefined behavior checks
-      CFLAGS_DEBUG_OPTIONS="-fstack-protector-all --param
ssp-buffer-size=1"
-      CXXFLAGS_DEBUG_OPTIONS="-fstack-protector-all --param
ssp-buffer-size=1"
+      # Add runtime stack smashing and undefined behavior checks.
+      # Not all versions of gcc support -fstack-protector
+      STACK_PROTECTOR_CFLAG="-fstack-protector-all"
+      FLAGS_COMPILER_CHECK_ARGUMENTS([$STACK_PROTECTOR_CFLAG], [],
[STACK_PROTECTOR_CFLAG=""])
+
+      CFLAGS_DEBUG_OPTIONS="$STACK_PROTECTOR_CFLAG --param
ssp-buffer-size=1"
+      CXXFLAGS_DEBUG_OPTIONS="$STACK_PROTECTOR_CFLAG --param
ssp-buffer-size=1"
        ;;
      esac
    fi
-  AC_SUBST(CFLAGS_DEBUG_OPTIONS)
-  AC_SUBST(CXXFLAGS_DEBUG_OPTIONS)

    # Optimization levels
    if test "x$TOOLCHAIN_TYPE" = xsolstudio; then

The AC_SUBST removal is just a bit of cleanup, we didn't use the
*_DEBUG_OPTIONS in the spec files, just later on when constructing
JDK_CFLAGS.

/Magnus


Reply via email to