Date: Friday, July 24, 2020 @ 02:39:24 Author: svenstaro Revision: 665126
upgpkg: emscripten 1.39.20-2: Minimize package according to upstream instructions See discussion on https://github.com/emscripten-core/emscripten/pull/11713 Modified: emscripten/trunk/PKGBUILD emscripten/trunk/emscripten-config -------------------+ PKGBUILD | 42 ++++++++++++++++++++++++++++++++++-------- emscripten-config | 2 +- 2 files changed, 35 insertions(+), 9 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2020-07-24 00:16:25 UTC (rev 665125) +++ PKGBUILD 2020-07-24 02:39:24 UTC (rev 665126) @@ -13,7 +13,7 @@ # variable. It has the llvm commit to use here. _llvm_commit=55fa315b0352b63454206600d6803fafacb42d5e pkgver=1.39.20 -pkgrel=1 +pkgrel=2 pkgdesc="LLVM-based project that compiles C and C++ into highly-optimizable JavaScript for the web" arch=('x86_64') url="http://emscripten.org" @@ -32,7 +32,7 @@ sha512sums=('SKIP' 'SKIP' 'a87cf5d4a5ac10a4f84ff02ea577d54b560929dc64457b874cd1cbd88311cf6c4dcfbf3242150f6e556f4ba6efd370a99b9f9065faf494f25d91fc012cd5aa58' - '4a93ea4291701a509f30541ad534f325b3e4f014a496e030bc19791095640931f18706264fa83a113225c6ee1a2ecd97bdefdc1dd15caaa5799105f7a96e3b7d' + '8b5951493f69631045f44736917144b7679beb2bf087fca8a8ba887224cfc598fe8c76c5a4e7aa4a09fbb8f1b7b42556b68f4aa9e5b93fb130fd8bdab79053d9' 'b2e0c162335c40ee84968ab8c5bae5083a96f18dcc6c4d4f50e4a7f312d075ad965f9afb0a9d2ca290068ed1ef5fe2599c681162690c645ca1f36f3af592a05f') prepare() { @@ -48,14 +48,21 @@ cmake . \ -Bbuild \ -GNinja \ + -DCMAKE_CXX_FLAGS=-Wno-nonportable-include-path \ + -DLLVM_ENABLE_LIBXML2=OFF \ + -DLLVM_INCLUDE_EXAMPLES=OFF \ + -DCOMPILER_RT_BUILD_XRAY=OFF \ + -DCOMPILER_RT_INCLUDE_TESTS=OFF \ + -DCOMPILER_RT_ENABLE_IOS=OFF \ + -DCMAKE_INSTALL_PREFIX=/opt/emscripten-llvm \ -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_SKIP_RPATH=YES \ - -DLLVM_TARGETS_TO_BUILD="X86;WebAssembly" \ + -DCMAKE_SKIP_RPATH=ON \ -DLLVM_BUILD_RUNTIME=OFF \ -DLLVM_TOOL_LTO_BUILD=ON \ -DLLVM_INSTALL_TOOLCHAIN_ONLY=ON \ -DLLVM_INCLUDE_EXAMPLES=OFF \ -DLLVM_INCLUDE_TESTS=OFF \ + -DLLVM_TARGETS_TO_BUILD="X86;WebAssembly" \ -DLLVM_ENABLE_PROJECTS="lld;clang" \ -DCLANG_INCLUDE_TESTS=OFF ninja -C build @@ -62,12 +69,31 @@ } package() { - # Install LLVM stuff according to https://github.com/emscripten-core/emscripten/blob/master/docs/packaging.md - install -d "$pkgdir"/usr/lib - cp -r "$srcdir"/llvm-project/llvm/build/bin "$pkgdir"/usr/lib/emscripten-llvm + # Install LLVM stuff according to + # https://github.com/emscripten-core/emscripten/blob/master/docs/packaging.md + # and + # https://github.com/WebAssembly/waterfall/blob/d4a504ffee488a68d09b336897c00d404544601d/src/build.py#L915 + DESTDIR="$pkgdir" ninja -C "$srcdir"/llvm-project/llvm/build install + cd "$pkgdir"/opt/emscripten-llvm/bin + ln -s clang wasm32-clang + ln -s clang wasm32-wasi-clang + ln -s clang++ wasm32-clang++ + ln -s clang++ wasm32-wasi-clang++ + # Clean up some unnecessary bins and libs + rm clang-check clang-cl clang-cpp clang-extdef-mapping clang-format \ + clang-offload-bundler clang-refactor clang-rename clang-scan-deps \ + lld-link ld.lld llvm-lib + cd ../lib + rm libclang.so + + # Copy some stuff that we need but that wasn't installed by default + for bin in FileCheck llc llvm-as llvm-dis llvm-link llvm-mc llvm-nm llvm-objdump llvm-readobj llvm-size opt llvm-dwarfdump; do + install -Dm755 "$srcdir"/llvm-project/llvm/build/bin/$bin "$pkgdir"/opt/emscripten-llvm/bin/$bin + done + # Install emscripten - cd emscripten + cd "$srcdir"/emscripten make DESTDIR="$pkgdir"/usr/lib/emscripten install install -Dm644 "$srcdir"/emscripten-config "$pkgdir"/usr/lib/emscripten/.emscripten Modified: emscripten-config =================================================================== --- emscripten-config 2020-07-24 00:16:25 UTC (rev 665125) +++ emscripten-config 2020-07-24 02:39:24 UTC (rev 665126) @@ -1,4 +1,4 @@ NODE_JS = '/usr/bin/node' -LLVM_ROOT = '/usr/lib/emscripten-llvm' +LLVM_ROOT = '/opt/emscripten-llvm/bin' BINARYEN_ROOT = '/usr' EMSCRIPTEN_ROOT = '/usr/lib/emscripten'