RFR (s) 8141570: Fix Zero interpreter build for --disable-precompiled-headers

Coleen Phillimore coleen.phillimore at oracle.com
Tue Nov 17 00:56:26 UTC 2015


After much discussion between Kim and I, I have a new change which 
doesn't include .inline.hpp into a .hpp file.  This also fixes the Zero 
build on my Ubuntu system.

open webrev at http://cr.openjdk.java.net/~coleenp/8140685.02/
bug link https://bugs.openjdk.java.net/browse/JDK-8140685

Thanks,
Coleen

On 11/10/15 6:00 AM, Severin Gehwolf wrote:
> On Mon, 2015-11-09 at 17:24 -0500, Coleen Phillimore wrote:
>>> FWIW, the below hunk seems to be all that's necessary in order to
>>> fix
>>> the --disable-precompiled-headers Zero build for me:
>>>
>>> diff --git a/src/share/vm/runtime/java.cpp
>>> b/src/share/vm/runtime/java.cpp
>>> --- a/src/share/vm/runtime/java.cpp
>>> +++ b/src/share/vm/runtime/java.cpp
>>> @@ -49,6 +49,7 @@
>>>    #include "runtime/arguments.hpp"
>>>    #include "runtime/biasedLocking.hpp"
>>>    #include "runtime/compilationPolicy.hpp"
>>> +#include "runtime/deoptimization.hpp"
>>>    #include "runtime/fprofiler.hpp"
>>>    #include "runtime/init.hpp"
>>>    #include "runtime/interfaceSupport.hpp"
>>>
>>> It does not seem the other change is required. Tested with
>>> fastdebug
>>> build of Zero with --disable-precompiled-headers that failed to
>>> build
>>> without and built fine with the fix.
>> I could check in just the deoptimization.hpp change and build only
>> fastdebug until the other bug is fixed.
> This sounds good to me.
>
>>> Coleen, do you have details about the failure which gets supposedly
>>> fixed by the other hunk?
>> The only thing I have is the g++ compilation failures without these
>> changes.  The one that was fixed by including allocation.inline.hpp
>> was:
>>
>> Building target 'images' in configuration 'linux-x86_64-normal-zero-
>> release'
>> g1EvacStats.o: In function `G1EvacStats::~G1EvacStats()':
>> /home/cphillim/hg.local/jdk9.zero/hotspot/src/share/vm/gc/g1/g1EvacSt
>> ats.hpp:32:
>> undefined reference to `CHeapObj<(MemoryType)5>::operator
>> delete(void*)'
>> collect2: error: ld returned 1 exit status
>>
>> Since the destructor is complaining about the missing delete
>> operator, I
>> assume this compiler has the sort of destructor that implicitly can
>> also
>> call delete.  I don't have any other information or ideas really why
>> this fails to compile.
> Thanks!
>
> FWIW, I don't reproduce the g1EvacStats.o linking problem. With the
> deoptimization.hpp change a Zero JVM builds fine here in all variants:
> release/fastdebug/slowdebug.
>
> $ gcc --version
> gcc (GCC) 5.1.1 20150618 (Red Hat 5.1.1-4)
> Copyright (C) 2015 Free Software Foundation, Inc.
> This is free software; see the source for copying conditions.  There is NO
> warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
>
> Thanks,
> Severin



More information about the hotspot-dev mailing list