[aarch64-port-dev ] AArch64 build is broken
Stefan Karlsson
stefan.karlsson at oracle.com
Thu May 9 18:03:35 UTC 2019
Hi Lutz,
On 2019-05-09 19:59, Schmidt, Lutz wrote:
> Hi Stefan,
>
> the change looks good. I'm not a reviewer, though.
Thanks.
>
> What happened to compiledIC_aot_aarch64.cpp? Did you find that file not to need the #include?
Andrew already fixed that with JDK-8223645.
>
> Re. Testing: It's too late now for SAP's nightly builds and tests. They start between 6pm and 8pm (UTC). I will run some builds tomorrow (Friday), during the day, at least on ppc, ppcle, and s390. I'll post the results as they come in.
OK. Thanks.
StefanK
>
> Thanks,
> Lutz
>
> On 09.05.19, 19:46, "Stefan Karlsson" <stefan.karlsson at oracle.com> wrote:
>
> 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