Backport patch from firefox bugzilla to fix compile error for qemuarm
with some armv7ve tunes such as 'armv7vethf' and 'armv7vet-vfpv3d16':
| /path/to/build/tmp/work/armv7vet2hf-vfp-poky-linux-gnueabi/mozjs-102/102.5.0-r0/build/js/src/jit/AtomicOperationsGenerated.h:240:17:
error: 'asm' operand has impossible constraints
| 240 | asm volatile (
| | ^~~
Ref:
* https://bugzilla.mozilla.org/show_bug.cgi?id=1761665
Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
ARM needs to use system icu, otherwise build fails with gcc-12
firefox-91.8.0/intl/icu/source/common/stringtriebuilder.cpp:388: more undefined references to `std::type_info::operator==(std::type_info const&) const' follow
| collect2: error: ld returned 1 exit status
Keep using vendored ICU on mips since this breaks build for gjs
introspection code which is run under qemu-user
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Mozjs compile failed with this failure:
/bin/sh: /lib64/libc.so.6: version `GLIBC_2.33' not found (required by
/build/tmp-glibc/work/corei7-64-wrs-linux/mozjs/91.1.0-r0/recipe-sysroot-native/usr/lib/libtinfo.so.5)
Root Cause:
cargo-host-linker has /bin/sh as it's interpreter, but cargo run the cmd
with LD_LIBRARY_PATH set to recipe-sysroot-native. The host /bin/sh
links libtinfo.so.5 under recipe-sysroot-native, which needs higher
libc. But host libc is older libc. So the incompatible problem occurred.
Solution:
rewrite cargo-host-linker in python3
Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
do_configure fails occasionally with following error:
| File "/firefox-91.1.0/build/moz.configure/util.configure", line 239, in try_invoke_compiler
| os.remove(path)
| FileNotFoundError: [Errno 2] No such file or directory: '/tmp/conftest.jr1qrcw3.cpp'
change the temp file's prefix to avoid it is deleted by others
Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
* it is a huge chunk of 1.2GB
* it is not used
* it conflicts with other versions of mozjs since there is no version in name
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
* We need mozjs-78 for latest stable gjs
* Other distros/packagers do same
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
some recipes under meta-oe have dependency on meta-python,
and test_world of yocto-check-layer will failed with error
like:
ERROR: test_world (common.CommonCheckLayer)
ERROR: Nothing PROVIDES 'python3-pytoml-native' (but
/meta-openembedded/meta-oe/recipes-extended/mozjs/mozjs_60.9.0.bb
DEPENDS on or otherwise requires it). Close matches:
python3-numpy-native
python3-pycairo-native
python3-rpm-native
ERROR: Required build target 'meta-world-pkgdata' has no buildable
providers.
Missing or unbuildable dependency chain was: ['meta-world-pkgdata',
'mozjs', 'python3-pytoml-native']
fix by make these recipes only active when identified layers are
present
Signed-off-by: Changqing Li <changqing.li@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
While at it:
* cleanup our patches
* remove useless sed in do_configure
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
* build with firefox-esr sources to simplyfy upgrade path
* cleanup: Should make python2-> python3 transition easier
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This fixes mozjs crash, in launching js in qemu during gjs build
Fixes
|
| (process:606857): Gjs-ERROR **: 02:02:06.039: Could not initialize Javascript
Signed-off-by: Khem Raj <raj.khem@gmail.com>
This fixes mozjs crash, in launching js in qemu during gjs build
Fixes
|
| (process:606857): Gjs-ERROR **: 02:02:06.039: Could not initialize Javascript
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Andreas Müller <schnitzeltony@gmail.com>
Option '-std=gnu++14' has been supported from gcc 4.9. But on some build hosts
such as CentOS 7.6 which only has gcc 4.8.5 and fails to configure:
| checking whether the host C compiler can be used... no
| ERROR: Only GCC 4.9 or newer is supported (found version 4.8.5).
Fallback to 2011 C++ standard and lower required gcc version to 4.8.0 which is
the same as in previous version 52.9.1 of mozjs.
Signed-off-by: Kai Kang <kai.kang@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Disable JIT (ion) on all mips
It fails to compile in first place, even if we fix the compilation
next it assert failures and runtime test failures, its best to disable
it for mips for now
Fix build on riscv
Signed-off-by: Khem Raj <raj.khem@gmail.com>
nsinstall must be built for host, so we need to define HOST_* compiler
defines so, it gets built using native compiler correctly
Disable stripping, OE will do it
Disable optimizing, set BUILD_OPT
Signed-off-by: Khem Raj <raj.khem@gmail.com>
The mozjs build system makes use of host headers and libraries if not
passed an invalid path for `--x-includes` and `--x-libraries`. This
fixes host contamination while building in a development host.
Signed-off-by: Otavio Salvador <otavio@ossystems.com.br>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Upgrade mozjs from 52.8.1 to 52.9.1
Signed-off-by: Hong Liu <hongl.fnst@cn.fujitsu.com>
renamed: mozjs_52.8.1.bb -> mozjs_52.9.1.bb
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Mozjs fails to start on several architectures due broken build
optimizations when built with GCC >= 6.
Set -fno-tree-vrp -fno-strict-aliasing -fno-delete-null-pointer-checks
to both CFLAGS and CXXFLAGS as workaround (flags also used by Firefox
and Fedora).
Signed-off-by: Ricardo Salveti <ricardo@foundries.io>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
The tmp dir creation is out of build dir which has
the risk to be broken by others.
...
| File "build/tmp-glibc/work/i586-wrs-linux/mozjs/52.8.1-r0/
mozjs-52.8.1/build/moz.configure/util.configure", line 190,
in try_invoke_compiler
| os.remove(path)
| OSError: [Errno 2] No such file or directory: '/tmp/conftest.OiV37V.cpp'
...
Set var-TMP for tempfile.mktemp to use current build dir to
replace default `/tmp'.
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
getenv need include header stdlib.h, or an assumed int
return for getenv to char * pointer will tripping up
the code
Signed-off-by: Changqing Li <changqing.li@windriver.com>
Otherwise anyone consuming mozjs will fail to start with a segmentation
fault (e.g. polkitd).
Patch also used by Fedora and Debian.
Signed-off-by: Ricardo Salveti <ricardo@foundries.io>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
- Tweak configure for mips64-n32
- Disable gold linker which not supported by mips64-n32
- Since n32 and n64 use the same registers, add n32 to
n64's register definition.
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
- Refactor recipe 52.8.1
0001 ~ 0006
- Rebase patches to 52.8.1;
0001-js.pc.in-do-not-include-RequiredDefines.h-for-depend.patch
0010-fix-cross-compilation-on-i586-targets.patch'
- Drop 0001-regenerate-configure.patch and everything works well
- Drop Manually_mmap_heap_memory_esr17.patch which is backported
- Drop obsolete patches
0001-compare-the-first-character-of-string-to-be-null-or-.patch
0001-mozjs17.0.0-fix-the-compile-bug-of-powerpc.patch
0002-Move-JS_BYTES_PER_WORD-out-of-config.h.patch
0004-mozbug746112-no-decommit-on-large-pages.patch
0005-aarch64-64k-page.patch
fix_milestone_compile_issue.patch
fix-the-compile-error-of-powerpc64.patch
Update-Double-Conversion.patch and Update-the-double-conversion-update-script.patch
- Set DISABLE_STATIC = "" to build without option `--disable-static'
- Set musl patch (0006-support-musl.patch) with musl override.
Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Update the Double-Conversion source inside mozjs to add support for more
architectures.
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Customize HOST_CFLAGS, HOST_CXXFLAGS and HOST_LDFLAGS
to fix do_configure error as previously use the common
CFLAGS and CXXFLAGS in both cross-compile env and host env,
and the option -fstack-protector-strong which not
recognized in host env can result in do_configure
error as below.
| checking whether the host c compiler (gcc -O2 -pipe -g -fstack-protector-strong -D_FORTIFY_SOURCE=2 -Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed -fstack-protector-strong -Wl,-z,relro,-z,now) works... configure: error: installation or configuration problem: host compiler gcc cannot create executables.
Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>