Yocto recipe for mozjs 68.2

Hello everyone,

I’m trying to create yocto recipe for mozjs 68.2 from this link: https://ftp.mozilla.org/pub/firefox/releases/68.2.0esr/source/

it is marking me this error:

| Exception: Failed to create virtualenv: /mypath/qemu-x86/build/tmp/work/core2-64-poky-linux/mozjs/68.2-r0/firefox-68.2.0/js/src/_build/_virtualenvs/init
| WARNING: /mypath/qemu-x86/build/tmp/work/core2-64-poky-linux/mozjs/68.2-r0/temp/run.do_configure.5061:1 exit 1 from ‘…/configure --disable-jemalloc --enable-posix-nspr-emulation --enable-unaligned-private-values --with-system-zlib --with-intl-api --enable-debug --enable-optimize --x-includes=no --x-libraries=no’
| ERROR: Function failed: do_configure (log file is located at /mypath/qemu-x86/build/tmp/work/core2-64-poky-linux/mozjs/68.2-r0/temp/log.do_configure.5061)
ERROR: Task (/mypath/meta-mylayer/recipes-myrecipes/mozjs/mozjs_68.2.bb:do_configure) failed with exit code ‘1’

I base my recipe on:
http://cgit.openembedded.org/meta-openembedded/tree/meta-oe/recipes-extended/mozjs/mozjs_52.9.1.bb?h=thud

here is what I have so far:

SUMMARY = “SpiderMonkey is Mozilla’s JavaScript engine written in C/C++”
HOMEPAGE = “https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey
LICENSE = “CLOSED”
#LIC_FILES_CHKSUM = “file://LICENSE;md5=815ca599c9df247a0c7f619bab123dad”

SRC_URI = “https://ftp.mozilla.org/pub/firefox/releases/68.2.0esr/source/firefox-68.2.0esr.source.tar.xz

SRC_URI[md5sum] = “ff667d8504e9f6ab215e73ba66d11722”
SRC_URI[sha256sum] = “85f1c2eaf68ebedcbc0b78a342f6d16ef0865dedd426a1bba94b75c85f716f38”

inherit autotools pkgconfig perlnative pythonnative

inherit distro_features_check
CONFLICT_DISTRO_FEATURES_mipsarchn32 = “ld-is-gold”

DEPENDS += “nspr zlib”

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 = " --disable-jemalloc --enable-posix-nspr-emulation --enable-unaligned-private-values --with-system-zlib --with-intl-api --enable-debug --enable-optimize"

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}"
echo ${WORKDIR}
mkdir -p ${WORKDIR}/firefox-68.2.0/js/src/_build
cd ${WORKDIR}/firefox-68.2.0/js/src/_build
pwd
…/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}/js68-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 = “”

Thanks


Ulises S. Vega A.