mozjs_60.5.2.bb 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  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://dev.gentoo.org/~axs/distfiles/mozjs-60.5.2.tar.bz2 \
  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://0004-do-not-use-autoconf-2.13-to-refresh-old.configure.patch \
  12. file://0005-fix-do_compile-failed-on-mips.patch \
  13. file://add-riscv-support.patch \
  14. file://0001-mozjs-fix-coredump-caused-by-getenv.patch \
  15. file://format-overflow.patch \
  16. file://0001-To-fix-build-error-on-arm32BE.patch \
  17. file://JS_PUBLIC_API.patch \
  18. file://0001-riscv-Disable-atomic-operations.patch \
  19. file://fallback-to-2011-C++-standard.patch \
  20. "
  21. SRC_URI_append_libc-musl = " \
  22. file://0006-support-musl.patch \
  23. file://0001-js-Fix-build-with-musl.patch \
  24. "
  25. SRC_URI_append_mipsarchn32 = " \
  26. file://0001-fix-compiling-failure-on-mips64-n32-bsp.patch \
  27. "
  28. SRC_URI[md5sum] = "023ed014e9e93d01620d121bc06a3589"
  29. SRC_URI[sha256sum] = "f51039c997415fd0f13f8e01966b4a8ff80cbf90deb8b14c18827104a369cc0d"
  30. inherit autotools pkgconfig perlnative pythonnative
  31. inherit features_check
  32. CONFLICT_DISTRO_FEATURES_mipsarchn32 = "ld-is-gold"
  33. DEPENDS += "nspr zlib python-six-native python-pytoml-native \
  34. python-jsmin-native python-futures-native \
  35. python-which-native"
  36. # Disable null pointer optimization in gcc >= 6
  37. # https://bugzilla.redhat.com/show_bug.cgi?id=1328045
  38. CFLAGS += "-fno-tree-vrp -fno-strict-aliasing -fno-delete-null-pointer-checks"
  39. CXXFLAGS += "-fno-tree-vrp -fno-strict-aliasing -fno-delete-null-pointer-checks"
  40. # nspr's package-config is ignored so set libs manually
  41. EXTRA_OECONF = " \
  42. --target=${TARGET_SYS} \
  43. --host=${BUILD_SYS} \
  44. --prefix=${prefix} \
  45. --libdir=${libdir} \
  46. --disable-tests --disable-strip --disable-optimize \
  47. --disable-jemalloc \
  48. --with-nspr-libs='-lplds4 -lplc4 -lnspr4' \
  49. ${@bb.utils.contains('DISTRO_FEATURES', 'ld-is-gold', "--enable-gold", '--disable-gold', d)} \
  50. "
  51. # Without this, JS_Init() will fail for mips64.
  52. EXTRA_OECONF_append_mips64 = " --with-intl-api=build"
  53. EXTRA_OECONF_append_mipsarch = " --disable-ion"
  54. EXTRA_OECONF_append_riscv64 = " --disable-ion"
  55. EXTRA_OECONF_append_riscv32 = " --disable-ion"
  56. PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
  57. PACKAGECONFIG[x11] = "--x-includes=${STAGING_INCDIR} --x-libraries=${STAGING_LIBDIR},--x-includes=no --x-libraries=no,virtual/libx11"
  58. EXTRA_OEMAKE_task-compile += "BUILD_OPT=1 OS_LDFLAGS='-Wl,-latomic ${LDFLAGS}'"
  59. EXTRA_OEMAKE_task-install += "STATIC_LIBRARY_NAME=js_static"
  60. export HOST_CC = "${BUILD_CC}"
  61. export HOST_CXX = "${BUILD_CXX}"
  62. export HOST_CFLAGS = "${BUILD_CFLAGS}"
  63. export HOST_CPPFLAGS = "${BUILD_CPPFLAGS}"
  64. export HOST_CXXFLAGS = "${BUILD_CXXFLAGS}"
  65. do_configure() {
  66. export SHELL="/bin/sh"
  67. export TMP="${B}"
  68. ${S}/js/src/configure ${EXTRA_OECONF}
  69. }
  70. do_compile_prepend() {
  71. export SHELL="/bin/sh"
  72. export S
  73. export PYTHONPATH
  74. cd ${S}
  75. for sub_dir in python testing/mozbase; do
  76. for module_dir in `ls $sub_dir -1`;do
  77. [ $module_dir = "virtualenv" ] && continue
  78. if [ -d "${S}/$sub_dir/$module_dir" ];then
  79. PYTHONPATH="$PYTHONPATH:${S}/$sub_dir/$module_dir"
  80. fi
  81. done
  82. done
  83. PYTHONPATH="$PYTHONPATH:${S}/config:${S}/build"
  84. cd -
  85. }
  86. do_install_prepend() {
  87. export SHELL="/bin/sh"
  88. export S
  89. export PYTHONPATH
  90. cd ${S}
  91. for sub_dir in python testing/mozbase; do
  92. for module_dir in `ls $sub_dir -1`;do
  93. [ $module_dir = "virtualenv" ] && continue
  94. if [ -d "${S}/$sub_dir/$module_dir" ];then
  95. PYTHONPATH="$PYTHONPATH:${S}/$sub_dir/$module_dir"
  96. fi
  97. done
  98. done
  99. PYTHONPATH="$PYTHONPATH:${S}/config:${S}/build"
  100. cd -
  101. }
  102. PACKAGES =+ "lib${BPN}"
  103. FILES_lib${BPN} += "${libdir}/lib*.so"
  104. FILES_${PN}-dev += "${bindir}/js60-config"
  105. # Fails to build with thumb-1 (qemuarm)
  106. #| {standard input}: Assembler messages:
  107. #| {standard input}:2172: Error: shifts in CMP/MOV instructions are only supported in unified syntax -- `mov r2,r1,LSR#20'
  108. #| {standard input}:2173: Error: unshifted register required -- `bic r2,r2,#(1<<11)'
  109. #| {standard input}:2174: Error: unshifted register required -- `orr r1,r1,#(1<<20)'
  110. #| {standard input}:2176: Error: instruction not supported in Thumb16 mode -- `subs r2,r2,#0x300'
  111. #| {standard input}:2178: Error: instruction not supported in Thumb16 mode -- `subs r5,r2,#52'
  112. ARM_INSTRUCTION_SET_armv5 = "arm"
  113. ARM_INSTRUCTION_SET_armv4 = "arm"
  114. DISABLE_STATIC = ""