On 7/31/19 4:46 PM, Andrew Dinn wrote:
> Well, the failure happened during the build process so I didn't
> (couldn't) debug it. I disabled the assert in supports_cpuflush() in
> order to allow the build to complete and then ran up the resulting JVM
> inside gdb to check what was going on. The problem is that with my patch
> supports_cpuflush() is called from Assembler::clflush() and the latter
> is called from icache_x86.cpp very early during bootstrap (I think this
> is neded to flush the flush routine used to flush the code cache).
> Anyway, the call happens so early that it precedes the call to
> VM_Version::get_processor_features which sets up the _features mask
> tested by the assert.

I believe you can untie this bootstrapping circularity by relaxing the assert 
with
Universe::is_fully_unitialized(). It still gives us window to fail with SIGILL 
if the stub is called
early during bootstrap, but that would be something to fix *if* we ever find 
ourselves there.

-Aleksey

Reply via email to