loom fiber branch doesn't build
Chris Plummer
chris.plummer at oracle.com
Sat Dec 22 21:32:43 UTC 2018
I think you need --with-jvm-features=-shenandoahgc now when running
configure. Alan can clarify.
Chris
On 12/22/18 8:58 AM, Aleksey Shipilev wrote:
> (re-sending from the proper email)
>
> Hi Remi,
>
> On 12/22/18 4:37 PM, Remi Forax wrote:
>> Hi all,
>> the branch fibers of loom (eeeb45c9ba8e) doesn't build anymore.
>>
>> https://travis-ci.org/forax/java-next/jobs/471336518
> My CI failed with the same:
> https://builds.shipilev.net/openjdk-loom/openjdk-loom-b33-20181222-jdk-12+24-linux-x86_64-release.build.log
>
> Okay. So, fibers branch has these changes:
>
> https://builds.shipilev.net/patch-openjdk-loom-fibers/latest/src/hotspot/share/gc/shared/memAllocator.hpp.udiff.html
> https://builds.shipilev.net/patch-openjdk-loom-fibers/latest/src/hotspot/share/gc/shared/memAllocator.cpp.udiff.html
>
> ...which come from this changeset:
> http://hg.openjdk.java.net/loom/loom/rev/259c05b297e4
>
> changeset: 51685:259c05b297e4
> branch: cont
> parent: 51683:604f34b6c6cf
> user: rbackman
> date: Thu Sep 13 14:21:01 2018 +0200
> summary: Stack and refStack allocation in native
>
> Obviously, after this change, we have to also match the definitions for those changes in Shenandoah,
> otherwise, we get:
>
> /home/travis/build/forax/java-next/loom/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp:782:61:
> error: no matching function for call to
> ‘ShenandoahMemAllocator::mem_allocate(MemAllocator::Allocation&) const’
> HeapWord* result = MemAllocator::mem_allocate(allocation);
>
> The minimal fix is:
>
> diff -r eeeb45c9ba8e src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp
> --- a/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Thu Dec 20 13:15:58 2018 +0000
> +++ b/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp Sat Dec 22 17:52:04 2018 +0100
> @@ -778,8 +778,8 @@
> _initializer(initializer) {}
>
> protected:
> - virtual HeapWord* mem_allocate(Allocation& allocation) const {
> - HeapWord* result = MemAllocator::mem_allocate(allocation);
> + virtual HeapWord* mem_allocate(Allocation& allocation, bool try_tlab) const {
> + HeapWord* result = MemAllocator::mem_allocate(allocation, try_tlab);
> // Initialize brooks-pointer
> if (result != NULL) {
> result += ShenandoahBrooksPointer::word_size();
>
> Loom maintainers, please push this where appropriate.
>
> Separately, I _think_ this build failure was not caught during the merge, because Oracle decides not
> to build Shenandoah by default, and Alan (or whoever does the actual merge chore at Oracle side)
> cannot see the failure in their builds:
> https://twitter.com/shipilev/status/1072210769448706048
>
> -Aleksey
>
More information about the loom-dev
mailing list