RFR: 8210703: vmStructs.cpp compiled with -O0
Erik Joelsson
erik.joelsson at oracle.com
Thu Sep 13 16:16:21 UTC 2018
Looks good to me. Thanks for cleaning this up!
/Erik
On 2018-09-13 08:06, Severin Gehwolf wrote:
> Hi Magnus,
>
> On Thu, 2018-09-13 at 13:52 +0200, Magnus Ihse Bursie wrote:
>> Severin,
>>
>> Your patch looks good to me. I'm assuming you have tested that nothing breaks.
> Thanks for the review!
>
> Yes, I've tested with run-test-tier1 which seems OK. It includes
> serviceability/sa/ClhsdbVmStructsDump. I've also run VMStructs gtest.
> I'm currently running this through jdk-submit.
>
> Thanks,
> Severin
>
>> /Magnus
>>
>>> 13 sep. 2018 kl. 10:43 skrev Severin Gehwolf <sgehwolf at redhat.com>:
>>>
>>> Hi Erik,
>>>
>>>> On Wed, 2018-09-12 at 10:25 -0700, Erik Joelsson wrote:
>>>> Hello,
>>>>
>>>> I very much doubt it was included with the new build system. We were
>>>> extremely careful to use the exact same flags then, and did binary
>>>> comparisons of all object files to verify equal builds.
>>>>
>>>> Tracing back, it was caused (probably unintentionally) by this change:
>>>>
>>>> http://hg.openjdk.java.net/jdk9/jdk9/hotspot/rev/e796d52ca85b
>>> Thanks for the detective work! This looks very much unintentional to me
>>> as JDK-8114853 is about silencing a note.
>>>
>>>> In the old build, setting OPT_CFLAGS/<file> overrides the common
>>>> OPT_CFLAGS. In the new build, we have a more general way of adding flags
>>>> for specific files that does not directly override any other flags. To
>>>> get the same behavior for vmStructs.cpp in the new build as in the old
>>>> at the time of the switch, we had to add -O0 explicitly in the new build.
>>> I've filed JDK-8210703 and posting this patch as review for the bug.
>>> Note I've changed the subject. Does this look OK?
>>>
>>> diff --git a/make/hotspot/lib/JvmOverrideFiles.gmk b/make/hotspot/lib/JvmOverrideFiles.gmk
>>> --- a/make/hotspot/lib/JvmOverrideFiles.gmk
>>> +++ b/make/hotspot/lib/JvmOverrideFiles.gmk
>>> @@ -30,7 +30,7 @@
>>> # status for individual files on specific platforms.
>>>
>>> ifeq ($(TOOLCHAIN_TYPE), gcc)
>>> - BUILD_LIBJVM_vmStructs.cpp_CXXFLAGS := -fno-var-tracking-assignments -O0
>>> + BUILD_LIBJVM_vmStructs.cpp_CXXFLAGS := -fno-var-tracking-assignments
>>> BUILD_LIBJVM_jvmciCompilerToVM.cpp_CXXFLAGS := -fno-var-tracking-assignments
>>> BUILD_LIBJVM_jvmciCompilerToVMInit.cpp_CXXFLAGS := -fno-var-tracking-assignments
>>> BUILD_LIBJVM_assembler_x86.cpp_CXXFLAGS := -Wno-maybe-uninitialized
>>>
>>> Thanks,
>>> Severin
>>>
>>> On 2018-09-12 09:13, Severin Gehwolf wrote:
>>>>> Hi,
>>>>>
>>>>> Does anybody know why vmStructs.cpp gets an override in
>>>>> JvmOverrideFiles.gmk:
>>>>>
>>>>> $ grep -C3 -n vmStructs.cpp make/hotspot/lib/JvmOverrideFiles.gmk
>>>>> 30-# status for individual files on specific platforms.
>>>>> 31-
>>>>> 32-ifeq ($(TOOLCHAIN_TYPE), gcc)
>>>>> 33: BUILD_LIBJVM_vmStructs.cpp_CXXFLAGS := -fno-var-tracking-assignments -O0
>>>>> 34- BUILD_LIBJVM_jvmciCompilerToVM.cpp_CXXFLAGS := -fno-var-tracking-assignments
>>>>> 35- BUILD_LIBJVM_jvmciCompilerToVMInit.cpp_CXXFLAGS := -fno-var-tracking-assignments
>>>>> 36- BUILD_LIBJVM_assembler_x86.cpp_CXXFLAGS := -Wno-maybe-uninitialized
>>>>>
>>>>> It seems to have been introduced with the new build system. JDK 8
>>>>> doesn't seem to have it. Thoughts?
>>>>>
>>>>> Thanks,
>>>>> Severin
>>
More information about the build-dev
mailing list