AArch64 build is broken

Schmidt, Lutz lutz.schmidt at sap.com
Thu May 9 17:00:15 UTC 2019


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 hotspot-dev mailing list