diff --git a/lang/spidermonkey102/Makefile b/lang/spidermonkey102/Makefile index 636f95efde5d..5b46f6f45726 100644 --- a/lang/spidermonkey102/Makefile +++ b/lang/spidermonkey102/Makefile @@ -1,93 +1,91 @@ PORTNAME= spidermonkey DISTVERSION= 102.4.0 PORTREVISION= 4 CATEGORIES= lang MASTER_SITES= MOZILLA/firefox/releases/${DISTVERSION}esr/source PKGNAMESUFFIX= ${SP_VER} DISTNAME= firefox-${DISTVERSION}esr.source MAINTAINER= nc@FreeBSD.org COMMENT= Standalone JavaScript based from Mozilla 102-esr WWW= https://spidermonkey.dev/ LICENSE= MPL20 LICENSE_FILE= ${WRKSRC}/LICENSE -BROKEN_FreeBSD_12= ERROR: Cannot find readelf - BUILD_DEPENDS= ${LOCALBASE}/bin/python${PYTHON3_DEFAULT}:lang/python${PYTHON3_DEFAULT:S/.//g} \ ${RUST_DEFAULT}>=1.35:lang/${RUST_DEFAULT} \ autoconf2.13:devel/autoconf2.13 \ rust-cbindgen>=0.8.7:devel/rust-cbindgen LIB_DEPENDS= libffi.so:devel/libffi \ libicudata.so:devel/icu \ libnspr4.so:devel/nspr USES= compiler:c++17-lang gmake localbase pathfix pkgconfig \ python:build readline tar:xz USE_LDCONFIG= yes SP_VER= 102 HAS_CONFIGURE= yes WRKSRC= ${WRKDIR}/firefox-${DISTVERSION}/ PATCH_WRKSRC= ${WRKDIR}/firefox-${DISTVERSION}/ CONFIGURE_OUTSOURCE= yes CONFIGURE_SCRIPT= ../firefox-${DISTVERSION}/js/src/configure CONFIGURE_ARGS= --disable-debug \ --disable-debug-symbols \ --disable-jemalloc \ --disable-tests \ --enable-optimize \ --enable-readline \ --enable-shared-js \ --prefix=${PREFIX:Q} \ --target=${CONFIGURE_TARGET} \ --with-intl-api \ --with-system-icu \ --with-system-nspr \ --with-system-zlib CONFIGURE_ENV= HOST_CC=${CC} \ HOST_CXX=${CXX} BINARY_ALIAS= python3=${PYTHON_CMD} PLIST_SUB= SP_VER=${SP_VER} .include .if ${ARCH} == amd64 CONFIGURE_TARGET= x86_64-portbld-freebsd${OSREL} .elif ${ARCH} == powerpc EXTRA_PATCHES= ${FILESDIR}/extra-patch-config_makefiles_rust.mk .endif # Require newer Clang than what's in base system unless user opted out # or the base system is new enough. .if ${CHOSEN_COMPILER_TYPE} == gcc CONFIGURE_ENV+= LLVM_CONFIG=llvm-config${LLVM_DEFAULT} \ LLVM_OBJDUMP=llvm-objdump${LLVM_DEFAULT} BUILD_DEPENDS+= ${LOCALBASE}/bin/llvm-objdump${LLVM_DEFAULT}:devel/llvm${LLVM_DEFAULT} USE_GCC= yes .elif ${CC} == cc && ${CXX} == c++ && exists(/usr/lib/libc++.so) && \ ${COMPILER_VERSION} < 80 CPP= ${LOCALBASE}/bin/clang-cpp${LLVM_DEFAULT} CC= ${LOCALBASE}/bin/clang${LLVM_DEFAULT} CXX= ${LOCALBASE}/bin/clang++${LLVM_DEFAULT} CONFIGURE_ENV+= LLVM_CONFIG=llvm-config${LLVM_DEFAULT} \ LLVM_OBJDUMP=llvm-objdump${LLVM_DEFAULT} BUILD_DEPENDS+= ${LOCALBASE}/bin/clang${LLVM_DEFAULT}:devel/llvm${LLVM_DEFAULT} .endif pre-configure: (cd ${WRKSRC}/js/src/ && ${LOCALBASE}/bin/autoconf2.13) post-patch: @${REINPLACE_CMD} -e 's|%%LOCALBASE%%|${LOCALBASE}|g' ${WRKSRC}/js/moz.configure post-install: ${RM} ${STAGEDIR}${PREFIX}/lib/libjs_static.ajs ${LN} -fs libmozjs-${SP_VER}.so ${STAGEDIR}${PREFIX}/lib/libmozjs-${SP_VER}.so.1 ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libmozjs-${SP_VER}.* .include diff --git a/lang/spidermonkey102/files/patch-moz.configure b/lang/spidermonkey102/files/patch-moz.configure index 94ae8c5f0b07..40a6a8adbcc3 100644 --- a/lang/spidermonkey102/files/patch-moz.configure +++ b/lang/spidermonkey102/files/patch-moz.configure @@ -1,14 +1,26 @@ - Fix awk detection +- also look in stderr for readelf --help output (elftoolchain bsd readelf) + Index: moz.configure ---- moz.configure.orig 2022-03-30 19:25:49 UTC +--- moz.configure.orig 2022-10-10 09:55:56 UTC +++ moz.configure @@ -708,7 +708,7 @@ add_old_configure_assignment("CLANG_PLUGIN", clang_plu # Awk detection # ============================================================== -awk = check_prog("AWK", ("gawk", "mawk", "nawk", "awk")) +awk = check_prog('AWK', ('awk',)) # Until the AWK variable is not necessary in old-configure +@@ -812,7 +812,8 @@ def validate_readelf(path): + # option in the `--help` output, which fortunately, s compatible between + # llvm-readelf and readelf. + retcode, stdout, stderr = get_cmd_output(path, "--help") +- return retcode == 0 and any(l.startswith(" -d ") for l in stdout.splitlines()) ++ return retcode == 0 and (any(l.startswith(" -d ") for l in stdout.splitlines()) \ ++ or any(l.startswith(" -d ") for l in stderr.splitlines())) + + + @depends("--enable-compile-environment", target, host)