Message ID | 20240118203712.3016674-1-ross.burton@arm.com |
---|---|
State | Accepted |
Headers | show |
Series | mozjs-115: fix the build on ARMv5 | expand |
can you rebase it on master-next for me please. On Thu, Jan 18, 2024 at 12:37 PM Ross Burton <ross.burton@arm.com> wrote: > > From: Ross Burton <ross.burton@arm.com> > > The JIT uses the ISB instruction, but being a multi-core barrier > instruction this doesn't exist on the single-core ARMv5 ISA. Check the > ISA level before using ISB. > > Also set [cleandirs] for ${B} to ensure clean builds are done when > reconfiguring. > > [ YOCTO #14572 ] > > Signed-off-by: Ross Burton <ross.burton@arm.com> > --- > .../mozjs/mozjs-115/armv5.patch | 19 +++++++++++++++++++ > .../mozjs/mozjs-115_115.2.0.bb | 2 ++ > 2 files changed, 21 insertions(+) > create mode 100644 meta-oe/recipes-extended/mozjs/mozjs-115/armv5.patch > > diff --git a/meta-oe/recipes-extended/mozjs/mozjs-115/armv5.patch b/meta-oe/recipes-extended/mozjs/mozjs-115/armv5.patch > new file mode 100644 > index 0000000000..4c45955bca > --- /dev/null > +++ b/meta-oe/recipes-extended/mozjs/mozjs-115/armv5.patch > @@ -0,0 +1,19 @@ > +The ISB instruction isn't available in ARMv5 or v6, so > +guard it's use to fix the build on qemuarmv5. > + > +Upstream-Status: Pending > +Signed-off-by: Ross Burton <ross.burton@arm.com> > + > +diff --git a/js/src/jit/arm/Architecture-arm.cpp b/js/src/jit/arm/Architecture-arm.cpp > +--- a/js/src/jit/arm/Architecture-arm.cpp 2024-01-18 17:31:32.078718197 +0000 > ++++ b/js/src/jit/arm/Architecture-arm.cpp 2024-01-18 18:00:16.738921445 +0000 > +@@ -529,7 +529,9 @@ > + void FlushExecutionContext() { > + #ifndef JS_SIMULATOR_ARM > ++#if __ARM_ARCH >= 7 > + // Ensure that any instructions already in the pipeline are discarded and > + // reloaded from the icache. > + asm volatile("isb\n" : : : "memory"); > ++#endif > + #else > + // We assume the icache flushing routines on other platforms take care of this > diff --git a/meta-oe/recipes-extended/mozjs/mozjs-115_115.2.0.bb b/meta-oe/recipes-extended/mozjs/mozjs-115_115.2.0.bb > index e1a547c339..84db3cd3c2 100644 > --- a/meta-oe/recipes-extended/mozjs/mozjs-115_115.2.0.bb > +++ b/meta-oe/recipes-extended/mozjs/mozjs-115_115.2.0.bb > @@ -16,6 +16,7 @@ SRC_URI = "https://archive.mozilla.org/pub/firefox/releases/${PV}esr/source/fire > file://musl-disable-stackwalk.patch \ > file://0001-add-arm-to-list-of-mozinline.patch \ > file://py3.12.patch \ > + file://armv5.patch \ > " > SRC_URI[sha256sum] = "51534dd2a158d955a2cb67cc1308f100f6c9def0788713ed8b4d743f3ad72457" > > @@ -75,6 +76,7 @@ do_configure() { > ${JIT} \ > ${ICU} > } > +do_configure[cleandirs] += "${B}" > > do_install() { > oe_runmake 'DESTDIR=${D}' install > -- > 2.34.1 > > > -=-=-=-=-=-=-=-=-=-=-=- > Links: You receive all messages sent to this group. > View/Reply Online (#108352): https://lists.openembedded.org/g/openembedded-devel/message/108352 > Mute This Topic: https://lists.openembedded.org/mt/103816972/1997914 > Group Owner: openembedded-devel+owner@lists.openembedded.org > Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub [raj.khem@gmail.com] > -=-=-=-=-=-=-=-=-=-=-=- >
diff --git a/meta-oe/recipes-extended/mozjs/mozjs-115/armv5.patch b/meta-oe/recipes-extended/mozjs/mozjs-115/armv5.patch new file mode 100644 index 0000000000..4c45955bca --- /dev/null +++ b/meta-oe/recipes-extended/mozjs/mozjs-115/armv5.patch @@ -0,0 +1,19 @@ +The ISB instruction isn't available in ARMv5 or v6, so +guard it's use to fix the build on qemuarmv5. + +Upstream-Status: Pending +Signed-off-by: Ross Burton <ross.burton@arm.com> + +diff --git a/js/src/jit/arm/Architecture-arm.cpp b/js/src/jit/arm/Architecture-arm.cpp +--- a/js/src/jit/arm/Architecture-arm.cpp 2024-01-18 17:31:32.078718197 +0000 ++++ b/js/src/jit/arm/Architecture-arm.cpp 2024-01-18 18:00:16.738921445 +0000 +@@ -529,7 +529,9 @@ + void FlushExecutionContext() { + #ifndef JS_SIMULATOR_ARM ++#if __ARM_ARCH >= 7 + // Ensure that any instructions already in the pipeline are discarded and + // reloaded from the icache. + asm volatile("isb\n" : : : "memory"); ++#endif + #else + // We assume the icache flushing routines on other platforms take care of this diff --git a/meta-oe/recipes-extended/mozjs/mozjs-115_115.2.0.bb b/meta-oe/recipes-extended/mozjs/mozjs-115_115.2.0.bb index e1a547c339..84db3cd3c2 100644 --- a/meta-oe/recipes-extended/mozjs/mozjs-115_115.2.0.bb +++ b/meta-oe/recipes-extended/mozjs/mozjs-115_115.2.0.bb @@ -16,6 +16,7 @@ SRC_URI = "https://archive.mozilla.org/pub/firefox/releases/${PV}esr/source/fire file://musl-disable-stackwalk.patch \ file://0001-add-arm-to-list-of-mozinline.patch \ file://py3.12.patch \ + file://armv5.patch \ " SRC_URI[sha256sum] = "51534dd2a158d955a2cb67cc1308f100f6c9def0788713ed8b4d743f3ad72457" @@ -75,6 +76,7 @@ do_configure() { ${JIT} \ ${ICU} } +do_configure[cleandirs] += "${B}" do_install() { oe_runmake 'DESTDIR=${D}' install