RFR: Fix Shenandoah build on ppc64
Andrew Hughes
gnu.andrew at redhat.com
Thu Aug 23 03:46:06 UTC 2018
Bug: https://icedtea.classpath.org/bugzilla/show_bug.cgi?id=3620
Webrev: http://cr.openjdk.java.net/~andrew/shenandoah-8/pr3620/
A simple fix is needed to get Shenandoah building on ppc64{be,le}.
That port is missing an implementation of shenandoahBarrierSet, as
provided for aarch64, sparc, zero & x86:
$ find -name '*shenandoahBarrierSet*'
./src/share/vm/gc_implementation/shenandoah/shenandoahBarrierSet.inline.hpp
./src/share/vm/gc_implementation/shenandoah/shenandoahBarrierSet.hpp
./src/share/vm/gc_implementation/shenandoah/shenandoahBarrierSet.cpp
./src/cpu/x86/vm/shenandoahBarrierSet_x86.cpp
./src/cpu/aarch64/vm/shenandoahBarrierSet_aarch64.cpp
./src/cpu/sparc/vm/shenandoahBarrierSet_sparc.cpp
./src/cpu/zero/vm/shenandoahBarrierSet_zero.cpp
To rectify this, I've just copied over the unimplemented zero version
to src/cpu/ppc/vm/shenandoahBarrierSet_ppc.cpp and removed three
functions which weren't needed:
/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.181-8.b13.el7.ppc64le/openjdk/hotspot/src/cpu/ppc/vm/shenandoahBarrierSet_ppc.cpp:39:92:
error: no 'void
ShenandoahBarrierSet::interpreter_read_barrier_impl(MacroAssembler*,
Register)' member function declared in class 'ShenandoahBarrierSet'
void ShenandoahBarrierSet::interpreter_read_barrier_impl(MacroAssembler*
masm, Register dst) {
^
/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.181-8.b13.el7.ppc64le/openjdk/hotspot/src/cpu/ppc/vm/shenandoahBarrierSet_ppc.cpp:47:101:
error: no 'void
ShenandoahBarrierSet::interpreter_read_barrier_not_null_impl(MacroAssembler*,
Register)' member function declared in class 'ShenandoahBarrierSet'
void ShenandoahBarrierSet::interpreter_read_barrier_not_null_impl(MacroAssembler*
masm, Register dst) {
^
/builddir/build/BUILD/java-1.8.0-openjdk-1.8.0.181-8.b13.el7.ppc64le/openjdk/hotspot/src/cpu/ppc/vm/shenandoahBarrierSet_ppc.cpp:55:105:
error: no 'void
ShenandoahBarrierSet::interpreter_storeval_barrier(MacroAssembler*,
Register, Register)' member function declared in class
'ShenandoahBarrierSet'
void ShenandoahBarrierSet::interpreter_storeval_barrier(MacroAssembler*
masm, Register dst, Register tmp) {
^
--
Andrew :)
Senior Free Java Software Engineer
Red Hat, Inc. (http://www.redhat.com)
Web Site: http://fuseyism.com
Twitter: https://twitter.com/gnu_andrew_java
PGP Key: ed25519/0xCFDA0F9B35964222 (hkp://keys.gnupg.net)
Fingerprint = 5132 579D D154 0ED2 3E04 C5A0 CFDA 0F9B 3596 4222
More information about the shenandoah-dev
mailing list