RFR: 8254297: Zero and Minimal VMs are broken with undeclared identifier 'DerivedPointerTable' after JDK-8253180

Aleksey Shipilev shade at openjdk.java.net
Fri Oct 9 14:56:26 UTC 2020


On Fri, 9 Oct 2020 14:22:06 GMT, Jie Fu <jiefu at openjdk.org> wrote:

> The change fixes Zero and Minimal builds broken after JDK-8253180.
> 
> Two build errors were fixed:
>   1 ./src/hotspot/share/runtime/frame.cpp:1047:38: error: use of undeclared identifier 'DerivedPointerTable'
>        oops_do_internal(f, cf, map, true, DerivedPointerTable::is_active() ?
> 
>   2. ./src/hotspot/share/utilities/vmError.cpp: In static member function 'static void
>   VMError::print_stack_trace(outputStream*, JavaThread*, char*, int, bool)':
>      ./src/hotspot/share/utilities/vmError.cpp:214:28: error: no matching function for call to
>      'StackFrameStream::StackFrameStream(JavaThread*&)'
>          StackFrameStream sfs(jt);
>                             ^

I think this is fine. @fisk might need to ack this.

src/hotspot/share/compiler/oopMap.cpp line 196:

> 194: #if COMPILER2_OR_JVMCI
> 195:   DerivedPointerTable::add(derived, base);
> 196: #endif // COMPILER2_OR_JVMCI

This looks correct and actually reverses the JDK-8253180 change. It is correct because `DerivedPointerTable` is
protected by the same `#if`:

#if COMPILER2_OR_JVMCI
class DerivedPointerTable : public AllStatic {
...

src/hotspot/share/runtime/frame.cpp line 1053:

> 1051: #else
> 1052:   oops_do_internal(f, cf, map, true, DerivedPointerIterationMode::_ignore);
> 1053: #endif

We could have used `COMPILER2_OR_JVMCI_PRESENT` inline macro, but I think that would be messier.

src/hotspot/share/utilities/vmError.cpp line 214:

> 212:
> 213:     // Print the frames
> 214:     StackFrameStream sfs(jt, true /* update */, true /* process_frames */);

This looks correct, also because it does the same thing as L227 below does.

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

Marked as reviewed by shade (Reviewer).

PR: https://git.openjdk.java.net/jdk/pull/578


More information about the hotspot-dev mailing list