8199319 broke the non-PCH build

Stefan Karlsson stefan.karlsson at oracle.com
Mon Mar 12 16:03:37 UTC 2018


On 2018-03-12 16:39, Volker Simonis wrote:
> Hi,
>
> change "8199319: Remove handles.inline.hpp include from
> reflectionUtils.hpp" breaks the non-PCH build (at least on Ubuntu
> 16.04 with gcc 5.4.0). If you configure with
> "--disable-precompiled-headers" you will get a whole lot of undefined
> reference for "Handle::Handle(Thread*, oopDesc*)" (see attached list
> at the end of the mail).
>
> I wonder if change 8199319 has ever been tested with a non-PCH build?

Before pushing, I built it with these platforms without PCH:

linux-x64
linux-x64-debug
linux-x64-open
linux-x64-debug-open
macosx-x64
macosx-x64-debug
solaris-sparcv9
solaris-sparcv9-debug

> Or maybe this is specific to newer compiler versions? If non-PCH tests
> have been done without running into this issue it would be great to
> know which compiler versions have been used.

I'm running with gcc 4.9.2, which I thought was the "official" compiler 
for jdk/hs.

>
> Finally, I REALLY, REALLY (as I've done for about the last 10 years or
> so :) advise to add a "non-PCH" build to your secrete, internal
> JPRT/Mach5 whatsoever HotSpot tests to catch such errors.

I build with non-PCH when building locally.

>
> I'm currently working on a fix for this. If somebody else is already
> working on this issue, please let me know so we don't duplicate the
> work.

I can't reproduce your problem, so it would be good if we could fix this 
together.

I've uploaded a patch with some more handles.inline.hpp fixes:
http://cr.openjdk.java.net/~stefank/8199319/fixHandlesInline.patch

Maybe try and see how far that gets you.

Thanks,
StefanK

>
> Regards,
> Volker
>
> hotspot/share/oops/arrayKlass.cpp:111: undefined reference to
> `Handle::Handle(Thread*, oopDesc*)'
> hotspot/share/oops/arrayKlass.cpp:111: undefined reference to
> `Handle::Handle(Thread*, oopDesc*)'
> hotspot/share/classfile/classListParser.cpp:347: undefined reference
> to `Handle::Handle(Thread*, oopDesc*)'
> hotspot/share/classfile/classLoaderData.cpp:387: undefined reference
> to `Handle::Handle(Thread*, oopDesc*)'
> hotspot/share/runtime/handles.hpp:121: undefined reference to
> `Handle::Handle(Thread*, oopDesc*)'
> hotspot/share/runtime/jniHandles.cpp:532: undefined reference to
> `Handle::Handle(Thread*, oopDesc*)'
> hotspot/share/runtime/jniHandles.cpp:532: undefined reference to
> `Handle::Handle(Thread*, oopDesc*)'
> hotspot/share/runtime/jniHandles.cpp:532: undefined reference to
> `Handle::Handle(Thread*, oopDesc*)'
> hotspot/share/runtime/jniHandles.cpp:532: undefined reference to
> `Handle::Handle(Thread*, oopDesc*)'
> hotspot/share/oops/klass.cpp:523: undefined reference to
> `Handle::Handle(Thread*, oopDesc*)'
> hotspot/share/runtime/handles.hpp:121: undefined reference to
> `Handle::Handle(Thread*, oopDesc*)'
> hotspot/share/runtime/handles.hpp:123: undefined reference to
> `Handle::Handle(Thread*, oopDesc*)'
> hotspot/share/runtime/handles.hpp:124: undefined reference to
> `Handle::Handle(Thread*, oopDesc*)'
> hotspot/share/classfile/stringTable.cpp:301: undefined reference to
> `Handle::Handle(Thread*, oopDesc*)'
> hotspot/share/classfile/systemDictionaryShared.cpp:131: undefined
> reference to `Handle::Handle(Thread*, oopDesc*)'
> hotspot/share/runtime/handles.hpp:121: undefined reference to
> `Handle::Handle(Thread*, oopDesc*)'
> hotspot/share/runtime/handles.hpp:124: undefined reference to
> `Handle::Handle(Thread*, oopDesc*)'
> hotspot/share/runtime/handles.hpp:121: undefined reference to
> `Handle::Handle(Thread*, oopDesc*)'
> hotspot/share/classfile/systemDictionaryShared.cpp:152: undefined
> reference to `Handle::Handle(Thread*, oopDesc*)'
> hotspot/share/classfile/systemDictionaryShared.cpp:202: undefined
> reference to `Handle::Handle(Thread*, oopDesc*)'
> hotspot/share/runtime/handles.hpp:121: undefined reference to
> `Handle::Handle(Thread*, oopDesc*)'
> hotspot/share/classfile/systemDictionaryShared.cpp:246: undefined
> reference to `Handle::Handle(Thread*, oopDesc*)'
> hotspot/share/classfile/systemDictionaryShared.cpp:263: undefined
> reference to `Handle::Handle(Thread*, oopDesc*)'
> hotspot/share/classfile/systemDictionaryShared.cpp:291: undefined
> reference to `Handle::Handle(Thread*, oopDesc*)'
> hotspot/share/classfile/systemDictionaryShared.cpp:284: undefined
> reference to `Handle::Handle(Thread*, oopDesc*)'
> hotspot/share/classfile/systemDictionaryShared.cpp:499: undefined
> reference to `Handle::Handle(Thread*, oopDesc*)'




More information about the hotspot-runtime-dev mailing list