> On Jan 2, 2021, at 11:17 PM, Kim Barrett <kim.barr...@oracle.com> wrote: > >> On Dec 29, 2020, at 10:33 PM, Hao Sun >> <github.com+16932759+shqk...@openjdk.java.net> wrote: >> >>> _Mailing list message from [Kim Barrett](mailto:kim.barr...@oracle.com) on >>> [build-dev](mailto:build-dev@openjdk.java.net):_ >>> But I discovered something alarming while experimenting. Building >>> with gcc10.2 with -fno-elide-constructors doesn't seem to be possible. >>> I get different kinds of failures depending on how DUIterator is >>> defined: >>> >>> - implict: deprecation warning (as expected) >>> - =delete: error, deleted function used >>> - =default: assert in os::free >>> - _idx and reset from that: assert in reset >>> >>> Without -fno-elide-constructors, all of the variants seem to work >>> except =delete, which still fails because the deleted function is >>> used. (I didn't test the "working" cases extensively though.) >>> >>> So there's something problematic, though I don't understand the code >>> well enough to understand what. >> >> Thanks for your tests. >> But I have no idea how to fix it right now either. >> Do you know anyone who is familiar with these code and maybe we can invite >> him/her to help take a look at this issue? >> Thanks. > > I have a suspicion that the assert failure when building with > -fno-elide-constructors has nothing to do with DUIterator stuff, and is > instead a problem elsewhere. But it certainly makes it hard to feel > confident that the additional constructors being added are correct. > > I'm going to try to do some investigating of that assert failure, and see if > I can figure out what's going on. Anyone else should feel free to join in. > The failure is > > # Internal Error (../../src/hotspot/share/runtime/thread.hpp:850), > pid=29939, tid=29939 > # assert(current != __null) failed: Thread::current() called on detached > thread
The assert failure when building with -fno-elide-constructors is a known issue: https://bugs.openjdk.java.net/browse/JDK-8234773 I thought it looked vaguely familiar, but it took a while to track down. I think I'm going to deal with it so nobody runs into it again.