From 65e696dffff22d271b4143fede2f3d35c9db2aad Mon Sep 17 00:00:00 2001 From: Max Desiatov Date: Sun, 19 Apr 2020 22:09:41 +0100 Subject: [PATCH 1/7] Copy Dispatch and Clang from upstream toolchain --- utils/webassembly/build-toolchain.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/utils/webassembly/build-toolchain.sh b/utils/webassembly/build-toolchain.sh index 5c53ac98acee3..fed6cfff64290 100755 --- a/utils/webassembly/build-toolchain.sh +++ b/utils/webassembly/build-toolchain.sh @@ -61,7 +61,8 @@ cd $TMP_DIR/$TOOLCHAIN_NAME # Merge wasi-sdk and toolchain cp -r $WASI_SDK_PATH/lib/clang usr/lib -cp $WASI_SDK_PATH/bin/* usr/bin +cp -a $SOURCE_PATH/build/Ninja-ReleaseAssert/llvm-*/bin/clang* usr/bin +cp -a $WASI_SDK_PATH/bin/*ld usr/bin cp -r $WASI_SDK_PATH/share/wasi-sysroot usr/share # Build SwiftPM and install it into toolchain @@ -73,7 +74,7 @@ sed -i -e "s@\".*/include@\"../../../../share/wasi-sysroot/include@g" $TMP_DIR/$ # Copy nightly-toolchain's host environment stdlib into toolchain if [[ "$(uname)" == "Linux" ]]; then - cp -r $NIGHTLY_TOOLCHAIN/usr/lib/swift/linux $TMP_DIR/$TOOLCHAIN_NAME/usr/lib/swift + cp -a $NIGHTLY_TOOLCHAIN/usr/lib/* $TMP_DIR/$TOOLCHAIN_NAME/usr/lib || true else cp -r $NIGHTLY_TOOLCHAIN/usr/lib/swift/macosx $TMP_DIR/$TOOLCHAIN_NAME/usr/lib/swift fi From df2f94c9ab9cb398de2332529439e668e214a744 Mon Sep 17 00:00:00 2001 From: Max Desiatov Date: Wed, 6 May 2020 13:40:19 +0100 Subject: [PATCH 2/7] Pass --llvm-install-components "clang" flag --- utils/webassembly/build-toolchain.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/webassembly/build-toolchain.sh b/utils/webassembly/build-toolchain.sh index fed6cfff64290..d77d29251c066 100755 --- a/utils/webassembly/build-toolchain.sh +++ b/utils/webassembly/build-toolchain.sh @@ -40,6 +40,7 @@ $BUILD_SCRIPT \ --installable_package="$INSTALLABLE_PACKAGE" \ --install-prefix=/$TOOLCHAIN_NAME/usr \ --install-swift \ + --llvm-install-components "clang" \ --darwin-toolchain-bundle-identifier="${BUNDLE_IDENTIFIER}" \ --darwin-toolchain-display-name="${DISPLAY_NAME}" \ --darwin-toolchain-display-name-short="${DISPLAY_NAME_SHORT}" \ @@ -61,7 +62,6 @@ cd $TMP_DIR/$TOOLCHAIN_NAME # Merge wasi-sdk and toolchain cp -r $WASI_SDK_PATH/lib/clang usr/lib -cp -a $SOURCE_PATH/build/Ninja-ReleaseAssert/llvm-*/bin/clang* usr/bin cp -a $WASI_SDK_PATH/bin/*ld usr/bin cp -r $WASI_SDK_PATH/share/wasi-sysroot usr/share From 93ae2a9826495331e2a8229b05c00cd56a2ce2f5 Mon Sep 17 00:00:00 2001 From: Yuta Saito Date: Wed, 6 May 2020 13:45:24 +0000 Subject: [PATCH 3/7] Symlink clang resource dir --- utils/webassembly/build-toolchain.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/utils/webassembly/build-toolchain.sh b/utils/webassembly/build-toolchain.sh index d77d29251c066..c7e9be2d494b7 100755 --- a/utils/webassembly/build-toolchain.sh +++ b/utils/webassembly/build-toolchain.sh @@ -39,6 +39,8 @@ $BUILD_SCRIPT \ --install_destdir="$SOURCE_PATH/install" \ --installable_package="$INSTALLABLE_PACKAGE" \ --install-prefix=/$TOOLCHAIN_NAME/usr \ + --swift-install-components "autolink-driver;compiler;clang-builtin-headers;stdlib;sdk-overlay;parser-lib;editor-integration;tools;testsuite-tools;toolchain-tools;license;sourcekit-inproc;swift-remote-mirror;swift-remote-mirror-headers;clang-resource-dir-symlink" + --llvm-install-components "clang" \ --install-swift \ --llvm-install-components "clang" \ --darwin-toolchain-bundle-identifier="${BUNDLE_IDENTIFIER}" \ @@ -74,7 +76,7 @@ sed -i -e "s@\".*/include@\"../../../../share/wasi-sysroot/include@g" $TMP_DIR/$ # Copy nightly-toolchain's host environment stdlib into toolchain if [[ "$(uname)" == "Linux" ]]; then - cp -a $NIGHTLY_TOOLCHAIN/usr/lib/* $TMP_DIR/$TOOLCHAIN_NAME/usr/lib || true + cp -a $NIGHTLY_TOOLCHAIN/usr/lib/* $TMP_DIR/$TOOLCHAIN_NAME/usr/lib else cp -r $NIGHTLY_TOOLCHAIN/usr/lib/swift/macosx $TMP_DIR/$TOOLCHAIN_NAME/usr/lib/swift fi From 3a0e9765051664406ec37ed62c89afa551a2e1da Mon Sep 17 00:00:00 2001 From: Max Desiatov Date: Wed, 6 May 2020 14:53:25 +0100 Subject: [PATCH 4/7] Remove duplicated --llvm-install-components flag --- utils/webassembly/build-toolchain.sh | 1 - 1 file changed, 1 deletion(-) diff --git a/utils/webassembly/build-toolchain.sh b/utils/webassembly/build-toolchain.sh index c7e9be2d494b7..7a4d3850fd92b 100755 --- a/utils/webassembly/build-toolchain.sh +++ b/utils/webassembly/build-toolchain.sh @@ -42,7 +42,6 @@ $BUILD_SCRIPT \ --swift-install-components "autolink-driver;compiler;clang-builtin-headers;stdlib;sdk-overlay;parser-lib;editor-integration;tools;testsuite-tools;toolchain-tools;license;sourcekit-inproc;swift-remote-mirror;swift-remote-mirror-headers;clang-resource-dir-symlink" --llvm-install-components "clang" \ --install-swift \ - --llvm-install-components "clang" \ --darwin-toolchain-bundle-identifier="${BUNDLE_IDENTIFIER}" \ --darwin-toolchain-display-name="${DISPLAY_NAME}" \ --darwin-toolchain-display-name-short="${DISPLAY_NAME_SHORT}" \ From 130474c25f9fa4a0ef7581b5f29c4167880dc9fe Mon Sep 17 00:00:00 2001 From: Yuta Saito Date: Wed, 6 May 2020 16:08:52 +0000 Subject: [PATCH 5/7] Fix missing escaping newline --- utils/webassembly/build-toolchain.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/utils/webassembly/build-toolchain.sh b/utils/webassembly/build-toolchain.sh index 7a4d3850fd92b..92a3ea538a63a 100755 --- a/utils/webassembly/build-toolchain.sh +++ b/utils/webassembly/build-toolchain.sh @@ -39,7 +39,7 @@ $BUILD_SCRIPT \ --install_destdir="$SOURCE_PATH/install" \ --installable_package="$INSTALLABLE_PACKAGE" \ --install-prefix=/$TOOLCHAIN_NAME/usr \ - --swift-install-components "autolink-driver;compiler;clang-builtin-headers;stdlib;sdk-overlay;parser-lib;editor-integration;tools;testsuite-tools;toolchain-tools;license;sourcekit-inproc;swift-remote-mirror;swift-remote-mirror-headers;clang-resource-dir-symlink" + --swift-install-components "autolink-driver;compiler;clang-builtin-headers;stdlib;sdk-overlay;parser-lib;editor-integration;tools;testsuite-tools;toolchain-tools;license;sourcekit-inproc;swift-remote-mirror;swift-remote-mirror-headers;clang-resource-dir-symlink" \ --llvm-install-components "clang" \ --install-swift \ --darwin-toolchain-bundle-identifier="${BUNDLE_IDENTIFIER}" \ From 035912e28e32677e179c665a2983a5c9db533279 Mon Sep 17 00:00:00 2001 From: Max Desiatov Date: Wed, 6 May 2020 21:15:22 +0100 Subject: [PATCH 6/7] Don't attempt to copy the clang dir to /usr/lib --- utils/webassembly/build-toolchain.sh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/utils/webassembly/build-toolchain.sh b/utils/webassembly/build-toolchain.sh index 92a3ea538a63a..cf28c00a35f6f 100755 --- a/utils/webassembly/build-toolchain.sh +++ b/utils/webassembly/build-toolchain.sh @@ -75,7 +75,9 @@ sed -i -e "s@\".*/include@\"../../../../share/wasi-sysroot/include@g" $TMP_DIR/$ # Copy nightly-toolchain's host environment stdlib into toolchain if [[ "$(uname)" == "Linux" ]]; then - cp -a $NIGHTLY_TOOLCHAIN/usr/lib/* $TMP_DIR/$TOOLCHAIN_NAME/usr/lib + cp -a $NIGHTLY_TOOLCHAIN/usr/lib/lib* $TMP_DIR/$TOOLCHAIN_NAME/usr/lib + cp -a $NIGHTLY_TOOLCHAIN/usr/lib/swift $TMP_DIR/$TOOLCHAIN_NAME/usr/lib + cp -a $NIGHTLY_TOOLCHAIN/usr/lib/swift_static $TMP_DIR/$TOOLCHAIN_NAME/usr/lib else cp -r $NIGHTLY_TOOLCHAIN/usr/lib/swift/macosx $TMP_DIR/$TOOLCHAIN_NAME/usr/lib/swift fi From 7bec5b9f9e603fdddab33daf842b9b8e9bd1ba3d Mon Sep 17 00:00:00 2001 From: Yuta Saito Date: Wed, 6 May 2020 23:48:55 +0000 Subject: [PATCH 7/7] Sync lib directory using rsync --- utils/webassembly/build-toolchain.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/utils/webassembly/build-toolchain.sh b/utils/webassembly/build-toolchain.sh index cf28c00a35f6f..c7a3f761d6000 100755 --- a/utils/webassembly/build-toolchain.sh +++ b/utils/webassembly/build-toolchain.sh @@ -75,9 +75,9 @@ sed -i -e "s@\".*/include@\"../../../../share/wasi-sysroot/include@g" $TMP_DIR/$ # Copy nightly-toolchain's host environment stdlib into toolchain if [[ "$(uname)" == "Linux" ]]; then - cp -a $NIGHTLY_TOOLCHAIN/usr/lib/lib* $TMP_DIR/$TOOLCHAIN_NAME/usr/lib - cp -a $NIGHTLY_TOOLCHAIN/usr/lib/swift $TMP_DIR/$TOOLCHAIN_NAME/usr/lib - cp -a $NIGHTLY_TOOLCHAIN/usr/lib/swift_static $TMP_DIR/$TOOLCHAIN_NAME/usr/lib + # Avoid to copy usr/lib/swift/clang because our toolchain's one is a directory + # but nightly's one is symbolic link, so fail to merge them. + rsync -a $NIGHTLY_TOOLCHAIN/usr/lib/ $TMP_DIR/$TOOLCHAIN_NAME/usr/lib/ --exclude 'swift/clang' else cp -r $NIGHTLY_TOOLCHAIN/usr/lib/swift/macosx $TMP_DIR/$TOOLCHAIN_NAME/usr/lib/swift fi