RFR(S) 8074010: followup to 8072383
David Holmes
david.holmes at oracle.com
Fri Feb 27 08:43:42 UTC 2015
Thanks Dean - looks good to me.
David
On 27/02/2015 4:32 PM, Dean Long wrote:
> Thanks David for looking at this. Round two no longer tries to simplify
> the
> makefile logic, but instead keeps existing variables names and minimizes
> the number of lines changed.
>
> dl
>
> http://cr.openjdk.java.net/~dlong/8074010/8u60.01/
>
> On 2/26/2015 10:09 PM, David Holmes wrote:
>> Hi Dean,
>>
>> On 27/02/2015 3:32 PM, Dean Long wrote:
>>> This changeset removes references to closed platforms from gcc.make,
>>> allows $(HS_ALT_MAKE)/linux/makefiles/gcc.make to override the
>>> default values, and simplifies the logic a bit. It is targeted for
>>> 8u60.
>>
>> For the benefit of other readers the problem with the existing code is
>> that we use platform specific variables to define an additional flag eg:
>>
>> DEBUG_CFLAGS/amd64 = -g
>>
>> which is then added to the primary flag variable ie:
>>
>> DEBUG_CFLAGS += $(DEBUG_CFLAGS/$(BUILDARCH))
>>
>> That is all good. The problem is the code used to set a default:
>>
>> ifeq ($(DEBUG_CFLAGS/$(BUILDARCH)),)
>> ifeq ($(USE_CLANG), true)
>> # Clang doesn't understand -gstabs
>> DEBUG_CFLAGS += -g
>> else
>> DEBUG_CFLAGS += -gstabs
>> endif
>> endif
>>
>> Here we check the current value of $(DEBUG_CFLAGS/$(BUILDARCH)) and
>> use it's emptiness to hard-wire a specific flag onto the primary flag
>> variable. The problem with that is when we include
>> $(HS_ALT_MAKE)/linux/makefiles/gcc.make at the end of the file, it
>> wants to set a value of DEBUG_CFLAGS/$(BUILDARCH) for another
>> BUILDARCH and consequently the main flags variable will get that value
>> AND the default that was hard-wired - and we don't won't that.
>>
>> However, a cleaner solution that Dean and I have discussed is to
>> simply adjust the default-setting as follows:
>>
>> ifeq ($(DEBUG_CFLAGS/$(BUILDARCH)),)
>> ifeq ($(USE_CLANG), true)
>> # Clang doesn't understand -gstabs
>> DEBUG_CFLAGS/$(BUILDARCH) = -g
>> else
>> DEBUG_CFLAGS/$(BUILDARCH) = -gstabs
>> endif
>> endif
>>
>> so now if we later set DEBUG_CFLAGS/$(BUILDARCH) for a hitherto unseen
>> BUILDARCH it will be expanded in the primary flags variable as
>> expected and the "default" will not be used.
>>
>> Note there's also an existing bug in setting of the FASTDEBUG_CFLAGS
>> which has since been fixed in 9 and is now fixed here as well:
>>
>> - FASTDEBUG_CFLAGS += $(DEBUG_CFLAGS/$(BUILDARCH))
>> + FASTDEBUG_CFLAGS += $(FASTDEBUG_CFLAGS/$(BUILDARCH))
>>
>> Thanks,
>> David
>>
>>> dl
>>>
>>> https://bugs.openjdk.java.net/browse/JDK-8074010
>>> http://cr.openjdk.java.net/~dlong/8074010/8u60.00/
>>>
>
More information about the hotspot-compiler-dev
mailing list