aboutsummaryrefslogtreecommitdiffstats
path: root/meta-oe/recipes-extended/mozjs/mozjs_60.5.2.bb
diff options
context:
space:
mode:
authorKhem Raj <raj.khem@gmail.com>2019-05-21 23:27:16 -0700
committerKhem Raj <raj.khem@gmail.com>2019-05-29 02:26:16 -0700
commit9ca3aad9cf7170f352f2d18e335916feeebe0ee4 (patch)
treee5ebc1ef6d8f4334c94fd15d82d0d32e704b3e7c /meta-oe/recipes-extended/mozjs/mozjs_60.5.2.bb
parent2349dd7dc0f5c09534bb6d3411e2b9736a6cdefa (diff)
downloadmeta-openembedded-9ca3aad9cf7170f352f2d18e335916feeebe0ee4.tar.gz
mozjs: Upgrade to version 60.x
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>
Diffstat (limited to 'meta-oe/recipes-extended/mozjs/mozjs_60.5.2.bb')
-rw-r--r--meta-oe/recipes-extended/mozjs/mozjs_60.5.2.bb127
1 files changed, 127 insertions, 0 deletions
diff --git a/meta-oe/recipes-extended/mozjs/mozjs_60.5.2.bb b/meta-oe/recipes-extended/mozjs/mozjs_60.5.2.bb
new file mode 100644
index 0000000000..70bdbc1688
--- /dev/null
+++ b/meta-oe/recipes-extended/mozjs/mozjs_60.5.2.bb
@@ -0,0 +1,127 @@
+SUMMARY = "SpiderMonkey is Mozilla's JavaScript engine written in C/C++"
+HOMEPAGE = "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
+LICENSE = "MPL-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=dc9b6ecd19a14a54a628edaaf23733bf"
+
+SRC_URI = "https://dev.gentoo.org/~axs/distfiles/mozjs-60.5.2.tar.bz2 \
+ file://0001-js.pc.in-do-not-include-RequiredDefines.h-for-depend.patch \
+ file://0010-fix-cross-compilation-on-i586-targets.patch \
+ file://0001-do-not-create-python-environment.patch \
+ file://0002-fix-cannot-find-link.patch \
+ file://0003-workaround-autoconf-2.13-detection-failed.patch \
+ file://0004-do-not-use-autoconf-2.13-to-refresh-old.configure.patch \
+ file://0005-fix-do_compile-failed-on-mips.patch \
+ file://add-riscv-support.patch \
+ file://0001-mozjs-fix-coredump-caused-by-getenv.patch \
+ file://format-overflow.patch \
+ file://0001-To-fix-build-error-on-arm32BE.patch \
+ file://JS_PUBLIC_API.patch \
+ file://0001-riscv-Disable-atomic-operations.patch \
+ "
+SRC_URI_append_libc-musl = " \
+ file://0006-support-musl.patch \
+ file://0001-js-Fix-build-with-musl.patch \
+ "
+SRC_URI_append_mipsarchn32 = " \
+ file://0001-fix-compiling-failure-on-mips64-n32-bsp.patch \
+ "
+SRC_URI[md5sum] = "023ed014e9e93d01620d121bc06a3589"
+SRC_URI[sha256sum] = "f51039c997415fd0f13f8e01966b4a8ff80cbf90deb8b14c18827104a369cc0d"
+
+inherit autotools pkgconfig perlnative pythonnative
+
+inherit distro_features_check
+CONFLICT_DISTRO_FEATURES_mipsarchn32 = "ld-is-gold"
+
+DEPENDS += "nspr zlib python-six-native python-pytoml-native \
+ python-jsmin-native python-futures-native \
+ python-which-native"
+
+# Disable null pointer optimization in gcc >= 6
+# https://bugzilla.redhat.com/show_bug.cgi?id=1328045
+CFLAGS += "-fno-tree-vrp -fno-strict-aliasing -fno-delete-null-pointer-checks"
+CXXFLAGS += "-fno-tree-vrp -fno-strict-aliasing -fno-delete-null-pointer-checks"
+
+# nspr's package-config is ignored so set libs manually
+EXTRA_OECONF = " \
+ --target=${TARGET_SYS} \
+ --host=${BUILD_SYS} \
+ --prefix=${prefix} \
+ --libdir=${libdir} \
+ --disable-tests --disable-strip --disable-optimize \
+ --disable-jemalloc \
+ --with-nspr-libs='-lplds4 -lplc4 -lnspr4' \
+ ${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', "--enable-gold", '--disable-gold', d)} \
+"
+
+EXTRA_OECONF_append_mipsarch = " --disable-ion"
+EXTRA_OECONF_append_riscv64 = " --disable-ion"
+EXTRA_OECONF_append_riscv32 = " --disable-ion"
+
+PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
+PACKAGECONFIG[x11] = "--x-includes=${STAGING_INCDIR} --x-libraries=${STAGING_LIBDIR},--x-includes=no --x-libraries=no,virtual/libx11"
+
+EXTRA_OEMAKE_task-compile += "BUILD_OPT=1 OS_LDFLAGS='-Wl,-latomic ${LDFLAGS}'"
+EXTRA_OEMAKE_task-install += "STATIC_LIBRARY_NAME=js_static"
+
+export HOST_CC = "${BUILD_CC}"
+export HOST_CXX = "${BUILD_CXX}"
+export HOST_CFLAGS = "${BUILD_CFLAGS}"
+export HOST_CPPFLAGS = "${BUILD_CPPFLAGS}"
+export HOST_CXXFLAGS = "${BUILD_CXXFLAGS}"
+
+do_configure() {
+ export SHELL="/bin/sh"
+ export TMP="${B}"
+ ${S}/js/src/configure ${EXTRA_OECONF}
+}
+
+do_compile_prepend() {
+ export SHELL="/bin/sh"
+ export S
+ export PYTHONPATH
+ cd ${S}
+ for sub_dir in python testing/mozbase; do
+ for module_dir in `ls $sub_dir -1`;do
+ [ $module_dir = "virtualenv" ] && continue
+ if [ -d "${S}/$sub_dir/$module_dir" ];then
+ PYTHONPATH="$PYTHONPATH:${S}/$sub_dir/$module_dir"
+ fi
+ done
+ done
+ PYTHONPATH="$PYTHONPATH:${S}/config:${S}/build"
+ cd -
+}
+
+do_install_prepend() {
+ export SHELL="/bin/sh"
+ export S
+ export PYTHONPATH
+ cd ${S}
+ for sub_dir in python testing/mozbase; do
+ for module_dir in `ls $sub_dir -1`;do
+ [ $module_dir = "virtualenv" ] && continue
+ if [ -d "${S}/$sub_dir/$module_dir" ];then
+ PYTHONPATH="$PYTHONPATH:${S}/$sub_dir/$module_dir"
+ fi
+ done
+ done
+ PYTHONPATH="$PYTHONPATH:${S}/config:${S}/build"
+ cd -
+}
+
+PACKAGES =+ "lib${BPN}"
+FILES_lib${BPN} += "${libdir}/lib*.so"
+FILES_${PN}-dev += "${bindir}/js60-config"
+
+# Fails to build with thumb-1 (qemuarm)
+#| {standard input}: Assembler messages:
+#| {standard input}:2172: Error: shifts in CMP/MOV instructions are only supported in unified syntax -- `mov r2,r1,LSR#20'
+#| {standard input}:2173: Error: unshifted register required -- `bic r2,r2,#(1<<11)'
+#| {standard input}:2174: Error: unshifted register required -- `orr r1,r1,#(1<<20)'
+#| {standard input}:2176: Error: instruction not supported in Thumb16 mode -- `subs r2,r2,#0x300'
+#| {standard input}:2178: Error: instruction not supported in Thumb16 mode -- `subs r5,r2,#52'
+ARM_INSTRUCTION_SET_armv5 = "arm"
+ARM_INSTRUCTION_SET_armv4 = "arm"
+
+DISABLE_STATIC = ""