mozjs_60.9.0.bb 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  1. SUMMARY = "SpiderMonkey is Mozilla's JavaScript engine written in C/C++"
  2. HOMEPAGE = "https://developer.mozilla.org/en-US/docs/Mozilla/Projects/SpiderMonkey"
  3. LICENSE = "MPL-2.0"
  4. LIC_FILES_CHKSUM = "file://LICENSE;md5=dc9b6ecd19a14a54a628edaaf23733bf"
  5. SRC_URI = "https://archive.mozilla.org/pub/firefox/releases/${PV}esr/source/firefox-${PV}esr.source.tar.xz \
  6. file://0001-js.pc.in-do-not-include-RequiredDefines.h-for-depend.patch \
  7. file://0010-fix-cross-compilation-on-i586-targets.patch \
  8. file://0001-do-not-create-python-environment.patch \
  9. file://0002-fix-cannot-find-link.patch \
  10. file://0003-workaround-autoconf-2.13-detection-failed.patch \
  11. file://0005-fix-do_compile-failed-on-mips.patch \
  12. file://add-riscv-support.patch \
  13. file://0001-mozjs-fix-coredump-caused-by-getenv.patch \
  14. file://format-overflow.patch \
  15. file://0001-To-fix-build-error-on-arm32BE.patch \
  16. file://JS_PUBLIC_API.patch \
  17. file://0001-riscv-Disable-atomic-operations.patch \
  18. file://fallback-to-2011-C++-standard.patch \
  19. "
  20. SRC_URI_append_libc-musl = " \
  21. file://0006-support-musl.patch \
  22. file://0001-js-Fix-build-with-musl.patch \
  23. "
  24. SRC_URI_append_mipsarchn32 = " \
  25. file://0001-fix-compiling-failure-on-mips64-n32-bsp.patch \
  26. "
  27. SRC_URI[md5sum] = "69a0be9ce695e5dc4941ed0c78ef00c2"
  28. SRC_URI[sha256sum] = "9f453c8cc5669e46e38f977764d49a36295bf0d023619d9aac782e6bb3e8c53f"
  29. S = "${WORKDIR}/firefox-${@d.getVar("PV").replace("esr", "")}"
  30. inherit autotools pkgconfig perlnative ${@bb.utils.contains("BBFILE_COLLECTIONS", "meta-python2", "pythonnative", "", d)}
  31. inherit features_check
  32. CONFLICT_DISTRO_FEATURES_mipsarchn32 = "ld-is-gold"
  33. DEPENDS += "nspr zlib autoconf-2.13-native \
  34. python-six-native python-pytoml-native \
  35. python-jsmin-native python-futures-native \
  36. python-which-native"
  37. # Disable null pointer optimization in gcc >= 6
  38. # https://bugzilla.redhat.com/show_bug.cgi?id=1328045
  39. CFLAGS += "-fno-tree-vrp -fno-strict-aliasing -fno-delete-null-pointer-checks"
  40. CXXFLAGS += "-fno-tree-vrp -fno-strict-aliasing -fno-delete-null-pointer-checks"
  41. # nspr's package-config is ignored so set libs manually
  42. EXTRA_OECONF = " \
  43. --target=${TARGET_SYS} \
  44. --host=${BUILD_SYS} \
  45. --prefix=${prefix} \
  46. --libdir=${libdir} \
  47. --disable-tests --disable-strip --disable-optimize \
  48. --disable-jemalloc \
  49. --with-nspr-libs='-lplds4 -lplc4 -lnspr4' \
  50. ${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', "--enable-gold", '--disable-gold', d)} \
  51. "
  52. # Without this, JS_Init() will fail for mips64.
  53. EXTRA_OECONF_append_mipsarch = " --with-intl-api=build"
  54. EXTRA_OECONF_append_powerpc = " --with-intl-api=build"
  55. EXTRA_OECONF_append_mipsarch = " --disable-ion"
  56. EXTRA_OECONF_append_riscv64 = " --disable-ion"
  57. EXTRA_OECONF_append_riscv32 = " --disable-ion"
  58. PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
  59. PACKAGECONFIG[x11] = "--x-includes=${STAGING_INCDIR} --x-libraries=${STAGING_LIBDIR},--x-includes=no --x-libraries=no,virtual/libx11"
  60. EXTRA_OEMAKE_task-compile += "BUILD_OPT=1 OS_LDFLAGS='-Wl,-latomic ${LDFLAGS}'"
  61. EXTRA_OEMAKE_task-install += "STATIC_LIBRARY_NAME=js_static"
  62. export HOST_CC = "${BUILD_CC}"
  63. export HOST_CXX = "${BUILD_CXX}"
  64. export HOST_CFLAGS = "${BUILD_CFLAGS}"
  65. export HOST_CPPFLAGS = "${BUILD_CPPFLAGS}"
  66. export HOST_CXXFLAGS = "${BUILD_CXXFLAGS}"
  67. do_configure() {
  68. export SHELL="/bin/sh"
  69. cd ${S}
  70. # Add mozjs python-modules necessary
  71. PYTHONPATH="$PYTHONPATH:${S}/config:${S}/build"
  72. for sub_dir in python testing/mozbase; do
  73. for module_dir in `ls $sub_dir -1`;do
  74. [ $module_dir = "virtualenv" ] && continue
  75. if [ -d "${S}/$sub_dir/$module_dir" ];then
  76. PYTHONPATH="$PYTHONPATH:${S}/$sub_dir/$module_dir"
  77. fi
  78. done
  79. done
  80. echo "$PYTHONPATH" > ${B}/PYTHONPATH
  81. export PYTHONPATH=`cat ${B}/PYTHONPATH`
  82. cd ${S}/js/src
  83. autoconf213 --macrodir=${STAGING_DATADIR_NATIVE}/autoconf213 old-configure.in > old-configure
  84. sed -i 's:refresh = True:refresh = False:g' ${S}/build/moz.configure/old.configure
  85. cd ${B}
  86. ${S}/js/src/configure ${EXTRA_OECONF}
  87. # Make standard Makefile checks pass
  88. touch ${S}/js/src/configure
  89. touch ${B}/config.status
  90. }
  91. do_compile_prepend() {
  92. export SHELL="/bin/sh"
  93. export PYTHONPATH=`cat ${B}/PYTHONPATH`
  94. }
  95. do_install_prepend() {
  96. export SHELL="/bin/sh"
  97. export PYTHONPATH=`cat ${B}/PYTHONPATH`
  98. }
  99. PACKAGES =+ "lib${BPN}"
  100. FILES_lib${BPN} += "${libdir}/lib*.so"
  101. FILES_${PN}-dev += "${bindir}/js60-config"
  102. # Fails to build with thumb-1 (qemuarm)
  103. #| {standard input}: Assembler messages:
  104. #| {standard input}:2172: Error: shifts in CMP/MOV instructions are only supported in unified syntax -- `mov r2,r1,LSR#20'
  105. #| {standard input}:2173: Error: unshifted register required -- `bic r2,r2,#(1<<11)'
  106. #| {standard input}:2174: Error: unshifted register required -- `orr r1,r1,#(1<<20)'
  107. #| {standard input}:2176: Error: instruction not supported in Thumb16 mode -- `subs r2,r2,#0x300'
  108. #| {standard input}:2178: Error: instruction not supported in Thumb16 mode -- `subs r5,r2,#52'
  109. ARM_INSTRUCTION_SET_armv5 = "arm"
  110. ARM_INSTRUCTION_SET_armv4 = "arm"
  111. DISABLE_STATIC = ""