RFR: 8269120: Build failure with GCC 6.3.0 after JDK-8017163 [v2]

Aleksey Shipilev shade at openjdk.java.net
Tue Jun 22 15:56:07 UTC 2021


On Tue, 22 Jun 2021 15:22:22 GMT, Kim Barrett <kbarrett at openjdk.org> wrote:

>> Aleksey Shipilev has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Much simpler fix
>
> src/hotspot/share/gc/g1/g1CardSetContainers.hpp line 131:
> 
>> 129:   }
>> 130:   typedef LockFreeStack<G1CardSetContainer, &next_ptr> NodeStack;
>> 131: 
> 
> I really dislike making these implementation details public.  At the very least, I'd like a comment or conditionalization or something to warn folks away from using them, with an expiration cleanup RFE or something.  An unannotated compiler workaround runs the risk of someone coming along and cleaning it up, cycling through this again.  Or confusing future readers when the need for the workaround is long over.

Not relevant anymore.

> src/hotspot/share/gc/g1/g1CardSetMemory.hpp line 203:
> 
>> 201: 
>> 202:   static G1CardSetContainer* volatile* next_ptr(G1CardSetContainer& node);
>> 203:   typedef LockFreeStack<G1CardSetContainer, &next_ptr> NodeStack;
> 
> Maybe you've already tried this, but since the problem seems like it might be a name lookup bug, I wonder if s/next_ptr/G1CardSetAllocator::next_ptr/ might work.  (Or maybe G1CardSetAllocator<Elem>::next_ptr, but I think that shouldn't be needed.)  Might also need to similarly qualify NodeStack uses?

D'oh. Of course explicitly referencing `&G1CardSetAllocator::next_ptr` works! Thanks! See new commit.

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

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



More information about the hotspot-gc-dev mailing list