Skip to content

Commit d9196ec

Browse files
Merge pull request #11 from xavgru12/dunfell_destupify
Cleanup swift-stdlib, remove need for SWIFT_GCC_VERSION hardcoded
2 parents a3fddbe + 067991f commit d9196ec

File tree

3 files changed

+53
-91
lines changed

3 files changed

+53
-91
lines changed

recipes-devtools/swift/swift-stdlib.bb

Lines changed: 13 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -21,68 +21,21 @@ DEPENDS += " swift-native swift-llvm-native libgcc gcc glibc libxml2"
2121

2222
inherit swift-cmake-base
2323

24-
SWIFT_GGC_VERSION = "9.3.0"
25-
26-
EXTRA_INCLUDE_FLAGS = "\
27-
-I${STAGING_DIR_TARGET}/usr/include/c++/${SWIFT_GGC_VERSION}/${TARGET_SYS} \
28-
-I${STAGING_DIR_TARGET}/usr/include/c++/${SWIFT_GGC_VERSION} \
29-
-I${STAGING_DIR_TARGET}"
30-
31-
TARGET_LDFLAGS += "-w -fuse-ld=lld -L${STAGING_DIR_TARGET}/usr/lib/${TARGET_SYS}/current"
32-
33-
HOST_SWIFT_SUPPORT_DIR = "/tmp/swift-stdlib-yocto"
24+
HOST_SWIFT_SUPPORT_DIR = "${WORKDIR}/swift-stdlib-yocto"
3425
SWIFT_CMAKE_TOOLCHAIN_FILE = "${HOST_SWIFT_SUPPORT_DIR}/linux-${SWIFT_TARGET_ARCH}-toolchain.cmake"
3526
SWIFT_CONFIGURE_CMAKE_SCRIPT="${WORKDIR}/cmake-configure-swift-stdlib.sh"
36-
SWIFT_C_FLAGS = "-w -fuse-ld=lld -target ${SWIFT_TARGET_NAME} --sysroot ${STAGING_DIR_TARGET} -B${STAGING_DIR_TARGET}/usr/lib/${TARGET_SYS}/${SWIFT_GGC_VERSION} -L${STAGING_DIR_TARGET}/usr/lib/${TARGET_SYS}/${SWIFT_GGC_VERSION} -I${STAGING_DIR_TARGET}/usr/include ${EXTRA_INCLUDE_FLAGS}"
27+
EXTRA_INCLUDE_FLAGS = "\
28+
-I${STAGING_DIR_TARGET}/usr/include/c++/current/${TARGET_SYS} \
29+
-I${STAGING_DIR_TARGET}/usr/include/c++/current"
30+
TARGET_LDFLAGS += "-w -fuse-ld=lld -L${STAGING_DIR_TARGET}/usr/lib/${TARGET_SYS}/current"
31+
SWIFT_C_FLAGS = "-w -fuse-ld=lld -target ${SWIFT_TARGET_NAME} \
32+
--sysroot ${STAGING_DIR_TARGET} \
33+
-B${STAGING_DIR_TARGET}/usr/lib/${TARGET_SYS}/current \
34+
-L${STAGING_DIR_TARGET}/usr/lib/${TARGET_SYS}/current \
35+
${EXTRA_INCLUDE_FLAGS}"
3736
SWIFT_C_LINK_FLAGS = "-target ${SWIFT_TARGET_NAME} --sysroot ${STAGING_DIR_TARGET} ${EXTRA_INCLUDE_FLAGS}"
38-
SWIFT_CXX_FLAGS = "-w -fuse-ld=lld -target ${SWIFT_TARGET_NAME} --sysroot ${STAGING_DIR_TARGET} -B${STAGING_DIR_TARGET}/usr/lib/${TARGET_SYS}/${SWIFT_GGC_VERSION} -L${STAGING_DIR_TARGET}/usr/lib/${TARGET_SYS}/${SWIFT_GGC_VERSION} -I${STAGING_DIR_TARGET}/usr/include -B${STAGING_DIR_TARGET}/usr/lib ${EXTRA_INCLUDE_FLAGS}"
39-
SWIFT_CXX_LINK_FLAGS = "-target ${SWIFT_TARGET_NAME} --sysroot ${STAGING_DIR_TARGET} ${EXTRA_INCLUDE_FLAGS}"
40-
41-
SWIFT_CMAKE_TOOLCHAIN = "set(CMAKE_SYSTEM_NAME Linux) \
42-
\nset(CMAKE_C_COMPILER ${STAGING_DIR_NATIVE}/opt/usr/bin/clang) \
43-
\nset(CMAKE_CXX_COMPILER ${STAGING_DIR_NATIVE}/opt/usr/bin/clang++) \
44-
\nset(CMAKE_C_FLAGS \"${SWIFT_C_FLAGS}\") \
45-
\nset(CMAKE_C_LINK_FLAGS \"${SWIFT_C_LINK_FLAGS}\") \
46-
\nset(CMAKE_CXX_FLAGS \"${SWIFT_CXX_FLAGS}\") \
47-
\nset(CMAKE_CXX_LINK_FLAGS \"${SWIFT_CXX_LINK_FLAGS}\") \
48-
\nset(SWIFT_USE_LINKER lld) \
49-
\nset(LLVM_USE_LINKER lld) \
50-
\nset(LLVM_DIR ${HOST_LLVM_PATH}/lib/cmake/llvm) \
51-
\nset(LLVM_BUILD_LIBRARY_DIR ${HOST_LLVM_PATH}) \
52-
\nset(LLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN ON) \
53-
\nset(SWIFT_INCLUDE_TOOLS OFF) \
54-
\nset(SWIFT_BUILD_RUNTIME_WITH_HOST_COMPILER ON) \
55-
\nset(SWIFT_PREBUILT_CLANG ON) \
56-
\nset(SWIFT_NATIVE_CLANG_TOOLS_PATH ${STAGING_DIR_NATIVE}/opt/usr/bin) \
57-
\nset(SWIFT_NATIVE_LLVM_TOOLS_PATH ${STAGING_DIR_NATIVE}/opt/usr/bin) \
58-
\nset(SWIFT_NATIVE_SWIFT_TOOLS_PATH ${STAGING_DIR_NATIVE}/opt/usr/bin) \
59-
\nset(SWIFT_BUILD_AST_ANALYZER OFF) \
60-
\nset(SWIFT_BUILD_DYNAMIC_SDK_OVERLAY ON) \
61-
\nset(SWIFT_BUILD_DYNAMIC_STDLIB ON) \
62-
\nset(SWIFT_BUILD_REMOTE_MIRROR OFF) \
63-
\nset(SWIFT_BUILD_SOURCEKIT OFF) \
64-
\nset(SWIFT_BUILD_STDLIB_EXTRA_TOOLCHAIN_CONTENT OFF) \
65-
\nset(SWIFT_BUILD_SYNTAXPARSERLIB OFF) \
66-
\nset(SWIFT_BUILD_REMOTE_MIRROR OFF) \
67-
\nset(SWIFT_ENABLE_SOURCEKIT_TESTS OFF) \
68-
\nset(SWIFT_INCLUDE_DOCS OFF) \
69-
\nset(SWIFT_INCLUDE_TOOLS OFF) \
70-
\nset(SWIFT_INCLUDE_TESTS OFF) \
71-
\nset(SWIFT_LIBRARY_EVOLUTION 0) \
72-
\nset(SWIFT_RUNTIME_OS_VERSIONING OFF) \
73-
\nset(SWIFT_HOST_VARIANT_ARCH ${SWIFT_TARGET_ARCH}) \
74-
\nset(SWIFT_SDKS LINUX) \
75-
\nset(SWIFT_SDK_LINUX_ARCH_${SWIFT_TARGET_ARCH}_PATH ${STAGING_DIR_TARGET} ) \
76-
\nset(SWIFT_SDK_LINUX_ARCH_${SWIFT_TARGET_ARCH}_LIBC_INCLUDE_DIRECTORY ${STAGING_DIR_TARGET}/usr/include ) \
77-
\nset(SWIFT_SDK_LINUX_ARCH_${SWIFT_TARGET_ARCH}_LIBC_ARCHITECTURE_INCLUDE_DIRECTORY ${STAGING_DIR_TARGET}/usr/include) \
78-
\nset(SWIFT_LINUX_${SWIFT_TARGET_ARCH}_ICU_I18N ${STAGING_DIR_TARGET}/usr/lib/libicui18n.so) \
79-
\nset(SWIFT_LINUX_${SWIFT_TARGET_ARCH}_ICU_UC ${STAGING_DIR_TARGET}/usr/lib/libicuuc.so) \
80-
\nset(ZLIB_LIBRARY ${STAGING_DIR_TARGET}/usr/lib/libz.so) \
81-
\nset(ICU_I18N_LIBRARIES ${STAGING_DIR_TARGET}/usr/lib/libicui18n.so) \
82-
\nset(ICU_UC_LIBRARIES ${STAGING_DIR_TARGET}/usr/lib/libicuuc.so) \
83-
\nset(SWIFT_PATH_TO_LIBDISPATCH_SOURCE ${WORKDIR}/libdispatch) \
84-
\nset(SWIFT_ENABLE_EXPERIMENTAL_CONCURRENCY ON) \
85-
"
37+
SWIFT_CXX_FLAGS = "${SWIFT_C_FLAGS}"
38+
SWIFT_CXX_LINK_FLAGS = "${SWIFT_C_LINK_FLAGS}"
8639

8740
do_configure() {
8841
export LDFLAGS=""
@@ -104,7 +57,7 @@ do_configure() {
10457
export CXXFLAGS="${SWIFT_CXX_FLAGS}"
10558
export SWIFT_TARGET_ARCH=${SWIFT_TARGET_ARCH}
10659
export SWIFT_TARGET_NAME=${SWIFT_TARGET_NAME}
107-
60+
10861
mkdir -p ${HOST_SWIFT_SUPPORT_DIR}
10962
rm -rf $SWIFT_BUILDDIR
11063
mkdir -p $SWIFT_BUILDDIR

recipes-devtools/swift/swift-stdlib/0001-Float16.patch

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
From 8b1dfbee0a542fe44b931f1d63bec253e320915b Mon Sep 17 00:00:00 2001
2+
From: Alsey Coleman Miller <[email protected]>
3+
Date: Fri, 11 Feb 2022 03:13:27 +0000
4+
Subject: [PATCH] Added Float16 patch
5+
6+
---
7+
stdlib/public/runtime/Float16Support.cpp | 2 +-
8+
1 file changed, 1 insertion(+), 1 deletion(-)
9+
110
diff --git a/stdlib/public/runtime/Float16Support.cpp b/stdlib/public/runtime/Float16Support.cpp
211
index 817739d4cdf..5ccd5639d67 100644
312
--- a/stdlib/public/runtime/Float16Support.cpp
@@ -10,4 +19,4 @@ index 817739d4cdf..5ccd5639d67 100644
1019
+#if ((defined(__ANDROID__) || defined(__linux__)) && defined(__ARM_ARCH_7A__) && defined(__ARM_EABI__)) || \
1120
((defined(__i386__) || defined(__i686__) || defined(__x86_64__)) && !defined(__APPLE__))
1221

13-
#include "../SwiftShims/Visibility.h"
22+
#include "../SwiftShims/Visibility.h"

recipes-devtools/swift/swift-stdlib/cmake-configure-swift-stdlib.sh

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
11
echo "Generate cmake toolchain"
22
rm -f ${SWIFT_CMAKE_TOOLCHAIN_FILE}
33
touch ${SWIFT_CMAKE_TOOLCHAIN_FILE}
4-
printf "set(CMAKE_SYSTEM_NAME Linux)\n" >> ${SWIFT_CMAKE_TOOLCHAIN_FILE}
5-
printf "set(CMAKE_C_COMPILER $SWIFT_NATIVE_PATH/clang)\n" >> ${SWIFT_CMAKE_TOOLCHAIN_FILE}
4+
printf "set(CMAKE_SYSTEM_NAME Linux)\n" >> ${SWIFT_CMAKE_TOOLCHAIN_FILE}
5+
printf "set(CMAKE_C_COMPILER $SWIFT_NATIVE_PATH/clang)\n" >> ${SWIFT_CMAKE_TOOLCHAIN_FILE}
66
printf "set(CMAKE_CXX_COMPILER ${SWIFT_NATIVE_PATH}/clang++)\n" >> ${SWIFT_CMAKE_TOOLCHAIN_FILE}
77
printf "set(CMAKE_C_FLAGS \"${SWIFT_C_FLAGS}\")\n" >> ${SWIFT_CMAKE_TOOLCHAIN_FILE}
8-
printf "set(CMAKE_C_LINK_FLAGS \"${SWIFT_C_LINK_FLAGS}\")\n" >> ${SWIFT_CMAKE_TOOLCHAIN_FILE}
9-
printf "set(CMAKE_CXX_FLAGS \"${SWIFT_CXX_FLAGS}\")\n" >> ${SWIFT_CMAKE_TOOLCHAIN_FILE}
8+
printf "set(CMAKE_C_LINK_FLAGS \"${SWIFT_C_LINK_FLAGS}\")\n" >> ${SWIFT_CMAKE_TOOLCHAIN_FILE}
9+
printf "set(CMAKE_CXX_FLAGS \"${SWIFT_CXX_FLAGS}\")\n" >> ${SWIFT_CMAKE_TOOLCHAIN_FILE}
1010
printf "set(CMAKE_CXX_LINK_FLAGS \"${SWIFT_CXX_LINK_FLAGS}\")\n" >> ${SWIFT_CMAKE_TOOLCHAIN_FILE}
11-
printf "set(SWIFT_USE_LINKER lld)\n" >> ${SWIFT_CMAKE_TOOLCHAIN_FILE}
11+
printf "set(SWIFT_USE_LINKER lld)\n" >> ${SWIFT_CMAKE_TOOLCHAIN_FILE}
1212
printf "set(LLVM_USE_LINKER lld)\n" >> ${SWIFT_CMAKE_TOOLCHAIN_FILE}
1313
printf "set(LLVM_DIR ${SWIFT_LLVM_DIR}/lib/cmake/llvm)\n" >> ${SWIFT_CMAKE_TOOLCHAIN_FILE}
1414
printf "set(LLVM_BUILD_LIBRARY_DIR ${SWIFT_LLVM_DIR})\n" >> ${SWIFT_CMAKE_TOOLCHAIN_FILE}
1515
printf "set(LLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN ON)\n" >> ${SWIFT_CMAKE_TOOLCHAIN_FILE}
16-
printf "set(SWIFT_INCLUDE_TOOLS OFF)\n" >> ${SWIFT_CMAKE_TOOLCHAIN_FILE}
16+
printf "set(SWIFT_INCLUDE_TOOLS OFF)\n" >> ${SWIFT_CMAKE_TOOLCHAIN_FILE}
1717
printf "set(SWIFT_BUILD_RUNTIME_WITH_HOST_COMPILER ON)\n" >> ${SWIFT_CMAKE_TOOLCHAIN_FILE}
18-
printf "set(SWIFT_PREBUILT_CLANG ON)\n" >> ${SWIFT_CMAKE_TOOLCHAIN_FILE}
18+
printf "set(SWIFT_PREBUILT_CLANG ON)\n" >> ${SWIFT_CMAKE_TOOLCHAIN_FILE}
1919
printf "set(SWIFT_NATIVE_CLANG_TOOLS_PATH ${SWIFT_NATIVE_PATH})\n" >> ${SWIFT_CMAKE_TOOLCHAIN_FILE}
20-
printf "set(SWIFT_NATIVE_LLVM_TOOLS_PATH ${SWIFT_NATIVE_PATH})\n" >> ${SWIFT_CMAKE_TOOLCHAIN_FILE}
20+
printf "set(SWIFT_NATIVE_LLVM_TOOLS_PATH ${SWIFT_NATIVE_PATH})\n" >> ${SWIFT_CMAKE_TOOLCHAIN_FILE}
2121
printf "set(SWIFT_NATIVE_SWIFT_TOOLS_PATH ${SWIFT_NATIVE_PATH})\n" >> ${SWIFT_CMAKE_TOOLCHAIN_FILE}
2222
printf "set(SWIFT_BUILD_AST_ANALYZER OFF)\n" >> ${SWIFT_CMAKE_TOOLCHAIN_FILE}
2323
printf "set(SWIFT_BUILD_DYNAMIC_SDK_OVERLAY ON)\n" >> ${SWIFT_CMAKE_TOOLCHAIN_FILE}
@@ -44,33 +44,33 @@ touch ${SWIFT_CMAKE_TOOLCHAIN_FILE}
4444
printf "set(ICU_I18N_INCLUDE_DIRS ${STAGING_DIR}/usr/include)\n" >> ${SWIFT_CMAKE_TOOLCHAIN_FILE}
4545
printf "set(ICU_UC_LIBRARIES ${STAGING_DIR}/usr/lib/libicuuc.so)\n" >> ${SWIFT_CMAKE_TOOLCHAIN_FILE}
4646
printf "set(ICU_UC_INCLUDE_DIRS ${STAGING_DIR}/usr/include)\n" >> ${SWIFT_CMAKE_TOOLCHAIN_FILE}
47-
printf "set(LibRT_LIBRARIES ${STAGING_DIR}/usr/lib/librt.a)\n" >> ${SWIFT_CMAKE_TOOLCHAIN_FILE}
48-
printf "set(ZLIB_LIBRARY ${STAGING_DIR}/usr/lib/libz.so)\n" >> ${SWIFT_CMAKE_TOOLCHAIN_FILE}
49-
printf "set(SWIFT_PATH_TO_LIBDISPATCH_SOURCE ${LIBDISPATCH_SRCDIR})\n" >> ${SWIFT_CMAKE_TOOLCHAIN_FILE}
50-
printf "set(SWIFT_ENABLE_EXPERIMENTAL_CONCURRENCY ON)\n" >> ${SWIFT_CMAKE_TOOLCHAIN_FILE}
47+
printf "set(LibRT_LIBRARIES ${STAGING_DIR}/usr/lib/librt.a)\n" >> ${SWIFT_CMAKE_TOOLCHAIN_FILE}
48+
printf "set(ZLIB_LIBRARY ${STAGING_DIR}/usr/lib/libz.so)\n" >> ${SWIFT_CMAKE_TOOLCHAIN_FILE}
49+
printf "set(SWIFT_PATH_TO_LIBDISPATCH_SOURCE ${LIBDISPATCH_SRCDIR})\n" >> ${SWIFT_CMAKE_TOOLCHAIN_FILE}
50+
printf "set(SWIFT_ENABLE_EXPERIMENTAL_CONCURRENCY ON)\n" >> ${SWIFT_CMAKE_TOOLCHAIN_FILE}
5151

5252
echo "Configure Swift"
53-
LIBS="-latomic" cmake -S $SWIFT_SRCDIR -B $SWIFT_BUILDDIR -G Ninja \
54-
-DCMAKE_INSTALL_PREFIX="/usr" \
55-
-DCMAKE_COLOR_MAKEFILE=OFF \
56-
-DBUILD_DOC=OFF \
57-
-DBUILD_DOCS=OFF \
58-
-DBUILD_EXAMPLE=OFF \
59-
-DBUILD_EXAMPLES=OFF \
60-
-DBUILD_TEST=OFF \
61-
-DBUILD_TESTS=OFF \
62-
-DBUILD_TESTING=OFF \
63-
-DBUILD_SHARED_LIBS=ON \
64-
-DCMAKE_CROSSCOMPILING=ON \
65-
-DCMAKE_TOOLCHAIN_FILE=$SWIFT_CMAKE_TOOLCHAIN_FILE \
66-
-DCMAKE_BUILD_TYPE=Release \
67-
-DCMAKE_C_COMPILER=${SWIFT_NATIVE_PATH}/clang \
68-
-DCMAKE_CXX_COMPILER=${SWIFT_NATIVE_PATH}/clang++ \
53+
cmake -S $SWIFT_SRCDIR -B $SWIFT_BUILDDIR -G Ninja \
54+
-DCMAKE_INSTALL_PREFIX="/usr" \
55+
-DCMAKE_COLOR_MAKEFILE=OFF \
56+
-DBUILD_DOC=OFF \
57+
-DBUILD_DOCS=OFF \
58+
-DBUILD_EXAMPLE=OFF \
59+
-DBUILD_EXAMPLES=OFF \
60+
-DBUILD_TEST=OFF \
61+
-DBUILD_TESTS=OFF \
62+
-DBUILD_TESTING=OFF \
63+
-DBUILD_SHARED_LIBS=ON \
64+
-DCMAKE_CROSSCOMPILING=ON \
65+
-DCMAKE_TOOLCHAIN_FILE=$SWIFT_CMAKE_TOOLCHAIN_FILE \
66+
-DCMAKE_BUILD_TYPE=Release \
67+
-DCMAKE_C_COMPILER=${SWIFT_NATIVE_PATH}/clang \
68+
-DCMAKE_CXX_COMPILER=${SWIFT_NATIVE_PATH}/clang++ \
6969
-DCMAKE_C_FLAGS="${SWIFT_C_FLAGS}" \
70-
-DCMAKE_C_LINK_FLAGS="${SWIFT_C_LINK_FLAGS}" \
70+
-DCMAKE_C_LINK_FLAGS="${SWIFT_C_LINK_FLAGS}" \
7171
-DCMAKE_CXX_FLAGS="${SWIFT_CXX_FLAGS}" \
7272
-DCMAKE_CXX_LINK_FLAGS="${SWIFT_CXX_LINK_FLAGS}" \
73-
-DSWIFT_USE_LINKER=lld \
73+
-DSWIFT_USE_LINKER=lld \
7474
-DLLVM_USE_LINKER=lld \
7575
-DLLVM_DIR=${SWIFT_LLVM_DIR}/lib/cmake/llvm \
7676
-DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON \

0 commit comments

Comments
 (0)