[aarch64-port-dev ] AArch64 build is broken

Stefan Karlsson stefan.karlsson at oracle.com
Thu May 9 17:46:16 UTC 2019


Thanks,

I searched for Universe:: and missing includes to universe.hpp. I also 
added an updated version of the patch to fix the PPC problem below:
http://cr.openjdk.java.net/~stefank/8223637/webrev.01/

I'll run this patch through the platforms we test, but I don't have a 
setup to test the changes for ppc, s390, or aarch64, so I would 
appreciate if someone could take this for a spin.

Thanks and sorry for breaking these platforms.

StefanK

On 2019-05-09 19:00, Schmidt, Lutz wrote:
> What I found so far:
> Occurences of Universe::non_oop_word() of Universe::heap() with no #include "memory/universe.hpp" in file:
>
> c1_LIRAssembler_ppc.cpp
> c1_LIRAssembler_s390.cpp
> compiledIC_aot_aarch64.cpp
> c1_LIRAssembler_sparc.cpp
> sharedRuntime_x86_64.cpp
>
> Don't build with precompiled headers! And try debug build!
>
> Regards,
> Lutz
>
>
> On 09.05.19, 18:46, "hotspot-dev on behalf of Schmidt, Lutz" <hotspot-dev-bounces at openjdk.java.net on behalf of lutz.schmidt at sap.com> wrote:
>
>      S390 is affected as well. C1_LIRAssembler_s390.cpp is missing universe.hpp.
>      Checking other platforms...
>      
>      Regards,
>      Lutz
>      
>      On 09.05.19, 18:20, "hotspot-dev on behalf of Stefan Karlsson" <hotspot-dev-bounces at openjdk.java.net on behalf of stefan.karlsson at oracle.com> wrote:
>      
>          I searched for references to Universe::narrow and also found a reference
>          in the PPC code:
>          
>          diff --git a/src/hotspot/cpu/ppc/c1_LIRAssembler_ppc.cpp
>          b/src/hotspot/cpu/ppc/c1_LIRAssembler_ppc.cpp
>          --- a/src/hotspot/cpu/ppc/c1_LIRAssembler_ppc.cpp
>          +++ b/src/hotspot/cpu/ppc/c1_LIRAssembler_ppc.cpp
>          @@ -36,6 +36,7 @@
>            #include "gc/shared/barrierSet.hpp"
>            #include "gc/shared/cardTableBarrierSet.hpp"
>            #include "nativeInst_ppc.hpp"
>          +#include "oops/compressedOops.hpp"
>            #include "oops/objArrayKlass.hpp"
>            #include "runtime/frame.inline.hpp"
>            #include "runtime/safepointMechanism.inline.hpp"
>          @@ -1237,7 +1238,7 @@
>              int disp_value = addr->disp();
>              bool needs_patching = (patch_code != lir_patch_none);
>              bool compress_oop = (type == T_ARRAY || type == T_OBJECT) &&
>          UseCompressedOops && !wide &&
>          -                      Universe::narrow_oop_mode() !=
>          Universe::UnscaledNarrowOop;
>          +                      CompressedOops::mode() !=
>          Universe::UnscaledNarrowOop;
>              bool load_disp = addr->index()->is_illegal() &&
>          !Assembler::is_simm16(disp_value);
>              bool use_R29 = compress_oop && load_disp; // Avoid register
>          conflict, also do null check before killing R29.
>              // Null check for large offsets in LIRGenerator::do_StoreField.
>          
>          I created a bug entry for this:
>          https://bugs.openjdk.java.net/browse/JDK-8223637
>          
>          StefanK
>          
>          On 2019-05-09 16:59, Andrew Haley wrote:
>          > I'm testing this patch:
>          >
>          > diff -r 77e95181b5d6 src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp
>          > --- a/src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp	Thu May 09 07:33:28 2019 -0700
>          > +++ b/src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp	Thu May 09 10:58:02 2019 -0400
>          > @@ -27,6 +27,7 @@
>          >   #define CPU_AARCH64_MACROASSEMBLER_AARCH64_HPP
>          >
>          >   #include "asm/assembler.hpp"
>          > +#include "oops/compressedOops.hpp"
>          >
>          >   // MacroAssembler extends Assembler by frequently used macros.
>          >   //
>          > @@ -85,10 +86,10 @@
>          >    public:
>          >     MacroAssembler(CodeBuffer* code) : Assembler(code) {
>          >       use_XOR_for_compressed_class_base
>          > -      = (operand_valid_for_logical_immediate(false /*is32*/,
>          > -                                             (uint64_t)Universe::narrow_klass_base())
>          > -         && ((uint64_t)Universe::narrow_klass_base()
>          > -             > (1UL << log2_intptr(Universe::narrow_klass_range()))));
>          > +      = operand_valid_for_logical_immediate
>          > +           (/*is32*/false, (uint64_t)CompressedKlassPointers::base())
>          > +         && ((uint64_t)CompressedKlassPointers::base()
>          > +             > (1UL << log2_intptr(CompressedKlassPointers::range())));
>          >     }
>          >
>          >    // These routines should emit JVMTI PopFrame and ForceEarlyReturn handling code.
>          >
>          
>          
>      
>      
>



More information about the aarch64-port-dev mailing list