RFR(XS): 8156929: [aix] Add missing includes.

David Holmes david.holmes at oracle.com
Sun May 15 23:47:00 UTC 2016


Hi Goetz,

On 15/05/2016 2:44 AM, Lindenmaier, Goetz wrote:
> Hi David,
>
> The linker says:
>
> ld: 0711-318 ERROR: Undefined symbols were found.
> 	The following symbols are in error:
>  Symbol                    Inpndx  TY CL Source-File(Object-File) OR Import-File{Shared-object}
>                               RLD: Address  Section  Rld-type Referencing Symbol
>  ----------------------------------------------------------------------------------------------
>  .__nw__8CHeapObjXSP5_FUl  [96]    ER PR /sapmnt/home1/d045726/oJ/ppc-stkRsrvd-hs/hotspot/src/share/vm/gc/g1/g1HeapSizingPolicy_ext.cpp(/sapmnt/home1/d045726/oJ/ppc-stkRsrvd-hs/build/aix-ppc64-normal-server-slowdebug-is3044/hotspot/variant-server/libjvm/objs/g1HeapSizingPolicy_ext.o)
>                                    00000024 .text    R_RBR    [79]    .create__18G1HeapSizingPolicyFPC15G1CollectedHeapPC11G1Analytics
>
> c++filt .create__18G1HeapSizingPolicyFPC15G1CollectedHeapPC11G1Analytics
> .G1HeapSizingPolicy::create(G1CollectedHeap const *, G1Analytics const *)

I can't parse that - what is it actually missing? Is __nw__ some obscure 
reference to "new" operator?

>
> I would just assume that the new-operator, which is in allocation.inline.hpp,
> is deleted from all the files where allocation.inline.hpp is included because it's
> either inlined or not called.

Not sure what the underlying issue is or why it would only surface on 
your platform. I did a full open-only Solaris build (no PCH) and it 
builds fine. I guess must be something peculiar to this compiler and or 
linker - but then I wonder if we're actually hitting a bug in the 
compiler/linker ??

Anyway I won't block this but I am perplexed by it.

I'll take over sponsorship as Coleen is now on vacation.

Thanks,
David

> Best regards,
>   Goetz.
>
>
>> -----Original Message-----
>> From: David Holmes [mailto:david.holmes at oracle.com]
>> Sent: Saturday, May 14, 2016 1:34 AM
>> To: Lindenmaier, Goetz <goetz.lindenmaier at sap.com>; hotspot-runtime-
>> dev at openjdk.java.net
>> Subject: Re: RFR(XS): 8156929: [aix] Add missing includes.
>>
>> Thinking more ...
>>
>> On 13/05/2016 11:18 PM, David Holmes wrote:
>>> On 13/05/2016 11:09 PM, Lindenmaier, Goetz wrote:
>>>> Hi,
>>>>
>>>> I had problems with the dbg build (didn't try opt) and without
>>>> precompiled headers.
>>>>
>>>>> In mutex.cpp there is no aix version of
>>>>>
>>>>>   #ifdef TARGET_OS_FAMILY_linux
>>>>>   # include "mutex_linux.inline.hpp"
>>>>>   #endif
>>>> Yes, but that file is empty.  They should be removed.
>>>> And mutex.cpp should be self-contained with its includes.
>>>
>>> I see. So the other platforms are getting the missing includes from the
>>> mutex_<os>.inline.hpp file and they don't actually contain anything
>>> inline just a few includes - which is weird. That said I consider the
>>> inline.hpp file part of the mutex.cpp file in terms of being "self
>>> contained".
>>>
>>>>> which definition is coming from the missing include ??
>>>> The new operator.
>>>
>>> Have to wonder where that comes from on other platforms.
>>
>> This seems wrong to me. You should not need to include
>> allocation.inline.hpp because you use operator new for a class! To do
>> "new G1HeapSizingPolicy" all you should need to include is
>> g1HeapSizingPolicy.hpp.
>>
>> David
>> -----
>>
>>> But okay - thanks for clarifying. Wish there was a tool to sort out
>>> include dependencies .. oh wait, there was ;-)
>>>
>>> Cheers,
>>> David
>>>
>>>> Best regards,
>>>>   Goetz.
>>>>
>>>>
>>>>


More information about the hotspot-runtime-dev mailing list