On Thu, 16 Apr 2026 14:51:27 GMT, Matthias Baesken <[email protected]> wrote:

> When building hotspot on linuxx86_64/gcc with LTO enabled 
> (--enable-jvm-feature-link-time-opt), we get various test errors in the 
> serviceability/sa area.
> Example serviceability/sa/CDSJMapClstats.java
> 
> 
> finding class loader instances ..java.lang.InternalError: Metadata does not 
> appear to be polymorphic
> at 
> jdk.hotspot.agent/sun.jvm.hotspot.types.basic.BasicTypeDataBase.findDynamicTypeForAddress(BasicTypeDataBase.java:223)
> at 
> jdk.hotspot.agent/sun.jvm.hotspot.runtime.VirtualBaseConstructor.instantiateWrapperFor(VirtualBaseConstructor.java:104)
> at 
> jdk.hotspot.agent/sun.jvm.hotspot.oops.Metadata.instantiateWrapperFor(Metadata.java:77)
> at 
> jdk.hotspot.agent/sun.jvm.hotspot.memory.SystemDictionary.getClassLoaderKlass(SystemDictionary.java:102)
> at 
> jdk.hotspot.agent/sun.jvm.hotspot.tools.ClassLoaderStats.printClassLoaderStatistics(ClassLoaderStats.java:93)
> at 
> jdk.hotspot.agent/sun.jvm.hotspot.tools.ClassLoaderStats.run(ClassLoaderStats.java:78)
> at jdk.hotspot.agent/sun.jvm.hotspot.tools.JMap.run(JMap.java:121)
> at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.startInternal(Tool.java:278)
> at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.start(Tool.java:241)
> at jdk.hotspot.agent/sun.jvm.hotspot.tools.Tool.execute(Tool.java:134)
> at jdk.hotspot.agent/sun.jvm.hotspot.tools.JMap.main(JMap.java:202)
> at jdk.hotspot.agent/sun.jvm.hotspot.SALauncher.runJMAP(SALauncher.java:344)
> at jdk.hotspot.agent/sun.jvm.hotspot.SALauncher.main(SALauncher.java:507)
> 
> 
> Seems we have to avoid elimination of the Metadata vtable ; this can be 
> achieved by linker flags or by modifying class Metadata.
> 
> ---------
> - [x] I confirm that I make this contribution in accordance with the [OpenJDK 
> Interim AI Policy](https://openjdk.org/legal/ai).

@plummercj  , could you maybe have a look at the metadata change ?
Other C++ 'tricks' to keep the vtable seem not to work 
- typeid usage is not compiling because we set `-fno-rtti` in the hotspot 
compile flags
- some 'virtual destructor tricks'  fail because of the class hierarchy  class 
Metadata is in

-------------

PR Comment: https://git.openjdk.org/jdk/pull/30771#issuecomment-4266368227

Reply via email to