RFR: JDK-8081692 Configure should verify that -fstack-protector is valid

Magnus Ihse Bursie magnus.ihse.bursie at oracle.com
Thu Jun 4 12:38:50 UTC 2015


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?

/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
>>




More information about the build-dev mailing list