From 3be834a04f8d9a5ad4bd7138cb1efb55d8e062a0 Mon Sep 17 00:00:00 2001 From: "A. Wilcox" Date: Thu, 3 Oct 2019 21:19:22 +0000 Subject: user/firefox-esr: maybe 32-bit builds supported --- user/firefox-esr/APKBUILD | 11 ++++++++-- user/firefox-esr/ppc32-fix.patch | 43 +++++++++++++++++++++++++++++++++++++++ user/firefox-esr/rust-32bit.patch | 20 ++++++++++++++++++ 3 files changed, 72 insertions(+), 2 deletions(-) create mode 100644 user/firefox-esr/ppc32-fix.patch create mode 100644 user/firefox-esr/rust-32bit.patch (limited to 'user/firefox-esr') diff --git a/user/firefox-esr/APKBUILD b/user/firefox-esr/APKBUILD index ebaf536bf..baa6d1ec2 100644 --- a/user/firefox-esr/APKBUILD +++ b/user/firefox-esr/APKBUILD @@ -38,6 +38,8 @@ source="https://ftp.mozilla.org/pub/firefox/releases/$_ffxver/source/firefox-$_f fix-mutex-build.patch fix-seccomp-bpf.patch mozilla-build-arm.patch + ppc32-fix.patch + rust-32bit.patch rust-config.patch shut-up-warning.patch stackwalk-x86-ppc.patch @@ -108,8 +110,8 @@ prepare() { echo "ac_add_options --host=\"$CHOST\"" >> "$builddir"/mozconfig echo "ac_add_options --target=\"$CTARGET\"" >> "$builddir"/mozconfig # too much memory - if [ -z "$JOBS" ] || [ $JOBS -ge 16 ]; then - JOBS=16 + if [ -z "$JOBS" ] || [ $JOBS -ge 32 ]; then + JOBS=32 fi echo "mk_add_options MOZ_MAKE_FLAGS=\"-j$JOBS\"" >> "$builddir"/mozconfig @@ -117,6 +119,9 @@ prepare() { pmmx|x86*) echo "ac_add_options --disable-elf-hack" >> "$builddir"/mozconfig ;; + ppc) + echo "ac_add_options --disable-webrtc" >> "$builddir"/mozconfig + ;; esac rm "$builddir"/third_party/python/virtualenv/virtualenv_support/pip*.whl @@ -200,6 +205,8 @@ ace7492f4fb0523c7340fdc09c831906f74fddad93822aff367135538dacd3f56288b907f5a04f53 c0b2bf43206c2a5154e560ef30189a1062ae856861b39f52ce69002390ff9972d43e387bfd2bf8d2ab3cac621987bc042c8c0a8b4cf90ae05717ca7705271880 fix-mutex-build.patch 70863b985427b9653ce5e28d6064f078fb6d4ccf43dd1b68e72f97f44868fc0ce063161c39a4e77a0a1a207b7365d5dc7a7ca5e68c726825eba814f2b93e2f5d fix-seccomp-bpf.patch e61664bc93eadce5016a06a4d0684b34a05074f1815e88ef2613380d7b369c6fd305fb34f83b5eb18b9e3138273ea8ddcfdcb1084fdcaa922a1e5b30146a3b18 mozilla-build-arm.patch +06a3f4ee6d3726adf3460952fcbaaf24bb15ef8d15b3357fdd1766c7a62b00bd53a1e943b5df7f4e1a69f4fae0d44b64fae1e027d7812499c77894975969ea10 ppc32-fix.patch +7c615703dc9b8427eeadd13bc9beda02e1c3d986cac1167feaf48fdfdcc15b7456460d4d58f301054cf459242ee75bbcd76bf67e26c2a443bc5655975d24ca1b rust-32bit.patch 45613d476e85fe333ef8091acce4806803953c1a99de4f03ff577cf20c5a1a3d635d0589e1490da104ef80721f4f1b1d35045af3c6892c1a468fa84095f27ad8 rust-config.patch 39ddb15d1453a8412275c36fc8db3befc69dffd4a362e932d280fb7fd1190db595a2af9b468ee49e0714f5e9df6e48eb5794122a64fa9f30d689de8693acbb15 shut-up-warning.patch 452b47b825294779f98ed46bc1065dad76b79ff453521ef049934a120f349c84a1c863b16af1828fe053059823da9690ec917c055ae02dcc5c80c54cad732448 stackwalk-x86-ppc.patch diff --git a/user/firefox-esr/ppc32-fix.patch b/user/firefox-esr/ppc32-fix.patch new file mode 100644 index 000000000..b4103c65f --- /dev/null +++ b/user/firefox-esr/ppc32-fix.patch @@ -0,0 +1,43 @@ +--- firefox-68.1.0/xpcom/reflect/xptcall/md/unix/xptcinvoke_ppc_linux.cpp ++++ firefox-68.1.0/xpcom/reflect/xptcall/md/unix/xptcinvoke_ppc_linux.cpp +@@ -45,11 +45,8 @@ invoke_copy_to_stack(uint32_t* d, + uint64_t tempu64; + + for(uint32_t i = 0; i < paramCount; i++, s++) { +- if(s->IsPtrData()) { +- if(s->type == nsXPTType::T_JSVAL) +- tempu32 = (uint32_t) &s->ptr; +- else +- tempu32 = (uint32_t) s->ptr; ++ if(s->IsIndirect()) { ++ tempu32 = (uint32_t) &s->val; + } + else { + switch(s->type) { +@@ -70,7 +67,7 @@ invoke_copy_to_stack(uint32_t* d, + } + } + +- if (!s->IsPtrData() && s->type == nsXPTType::T_DOUBLE) { ++ if (!s->IsIndirect() && s->type == nsXPTType::T_DOUBLE) { + #ifndef __NO_FPRS__ + if (fpr < FPR_COUNT) + fpregs[fpr++] = s->val.d; +@@ -88,7 +85,7 @@ invoke_copy_to_stack(uint32_t* d, + d += 2; + } + } +- else if (!s->IsPtrData() && s->type == nsXPTType::T_FLOAT) { ++ else if (!s->IsIndirect() && s->type == nsXPTType::T_FLOAT) { + #ifndef __NO_FPRS__ + if (fpr < FPR_COUNT) + fpregs[fpr++] = s->val.f; // if passed in registers, floats are promoted to doubles +@@ -99,7 +96,7 @@ invoke_copy_to_stack(uint32_t* d, + else + *((float*) d++) = s->val.f; + } +- else if (!s->IsPtrData() && (s->type == nsXPTType::T_I64 ++ else if (!s->IsIndirect() && (s->type == nsXPTType::T_I64 + || s->type == nsXPTType::T_U64)) { + if (gpr & 1) gpr++; // longlongs are aligned in odd/even register pairs, eg. r5/r6 + if ((gpr + 1) < GPR_COUNT) { diff --git a/user/firefox-esr/rust-32bit.patch b/user/firefox-esr/rust-32bit.patch new file mode 100644 index 000000000..f9281cb7a --- /dev/null +++ b/user/firefox-esr/rust-32bit.patch @@ -0,0 +1,20 @@ +--- firefox-68.1.0/config/makefiles/rust.mk.old 2019-08-26 16:52:20.000000000 +0000 ++++ firefox-68.1.0/config/makefiles/rust.mk 2019-10-03 21:17:55.062373830 +0000 +@@ -47,7 +47,7 @@ + ifndef DEVELOPER_OPTIONS + ifndef MOZ_DEBUG_RUST + # Enable link-time optimization for release builds. +-cargo_rustc_flags += -C lto ++# OOMs on 32-bit machines: cargo_rustc_flags += -C lto + endif + endif + +@@ -246,7 +246,7 @@ + ifndef DEVELOPER_OPTIONS + ifndef MOZ_DEBUG_RUST + ifeq ($(OS_ARCH), Linux) +- $(call py_action,check_binary,--target --networking $@) ++# Fails because we disable LTO: $(call py_action,check_binary,--target --networking $@) + endif + endif + endif -- cgit v1.2.3-70-g09d2