diff --git a/build-llvm.sh b/build-llvm.sh index 49346c4..cb56c68 100755 --- a/build-llvm.sh +++ b/build-llvm.sh @@ -13,4 +13,4 @@ cmake -S $LLVM_SRCDIR/llvm -B $LLVM_BUILDDIR -G Ninja \ -DCMAKE_CXX_COMPILER=$SWIFT_NATIVE_PATH/clang++ \ -DLLVM_TARGETS_TO_BUILD="X86;ARM;AArch64" \ -DLLVM_ENABLE_PROJECTS="llvm" \ - -DCMAKE_BUILD_TYPE=Release + -DCMAKE_BUILD_TYPE=Release --fresh diff --git a/build-swift-stdlib.sh b/build-swift-stdlib.sh index c7eb730..0f22596 100755 --- a/build-swift-stdlib.sh +++ b/build-swift-stdlib.sh @@ -9,6 +9,8 @@ mkdir -p $SWIFT_INSTALL_PREFIX echo "Configure Swift" rm -rf $SWIFT_BUILDDIR/CMakeCache.txt cmake -S $SWIFT_SRCDIR -B $SWIFT_BUILDDIR -G Ninja \ + -DLIBXML2_LIBRARY=${STAGING_DIR}/usr/lib/libxml2.so.2.12.8 \ + -DLibEdit_LIBRARIES=${STAGING_DIR}/usr/lib/libedit.so.0.0.72 \ -DCMAKE_INSTALL_PREFIX=${SWIFT_INSTALL_PREFIX} \ -DBUILD_SHARED_LIBS=ON \ -DCMAKE_BUILD_TYPE=${SWIFT_BUILD_CONFIGURATION} \ @@ -28,7 +30,7 @@ cmake -S $SWIFT_SRCDIR -B $SWIFT_BUILDDIR -G Ninja \ -DSWIFT_NATIVE_SWIFT_TOOLS_PATH=$SWIFT_NATIVE_PATH \ -DSWIFT_BUILD_DYNAMIC_SDK_OVERLAY=ON \ -DSWIFT_BUILD_DYNAMIC_STDLIB=ON \ - -DSWIFT_BUILD_STATIC_STDLIB=ON \ + -DSWIFT_BUILD_STATIC_STDLIB=OFF \ -DSWIFT_BUILD_REMOTE_MIRROR=ON \ -DSWIFT_BUILD_SOURCEKIT=ON \ -DSWIFT_BUILD_STDLIB_EXTRA_TOOLCHAIN_CONTENT=ON \ @@ -39,6 +41,7 @@ cmake -S $SWIFT_SRCDIR -B $SWIFT_BUILDDIR -G Ninja \ -DSWIFT_HOST_VARIANT_ARCH=$SWIFT_TARGET_ARCH \ -DSWIFT_SDKS=LINUX \ -DSWIFT_SDK_LINUX_ARCH_${SWIFT_TARGET_ARCH}_PATH=${STAGING_DIR} \ + -DSWIFT_SDK_LINUX_CXX_OVERLAY_SWIFT_COMPILE_FLAGS="" \ -DZLIB_LIBRARY=${STAGING_DIR}/usr/lib/libz.so \ -DZLIB_INCLUDE_DIR=${STAGING_DIR}/usr/include \ -DSWIFT_PATH_TO_LIBDISPATCH_SOURCE=${LIBDISPATCH_SRCDIR} \ @@ -46,9 +49,9 @@ cmake -S $SWIFT_SRCDIR -B $SWIFT_BUILDDIR -G Ninja \ -DSWIFT_PATH_TO_SWIFT_SYNTAX_SOURCE=${SYNTAX_SRCDIR} \ -DSWIFT_PATH_TO_STRING_PROCESSING_SOURCE=${STRING_PROCESSING_SRCDIR} \ -DSWIFT_ENABLE_EXPERIMENTAL_STRING_PROCESSING=ON \ - -DSWIFT_ENABLE_EXPERIMENTAL_CXX_INTEROP=ON \ - -DSWIFT_ENABLE_CXX_INTEROP_SWIFT_BRIDGING_HEADER=ON \ - -DSWIFT_BUILD_STDLIB_CXX_MODULE=ON \ + -DSWIFT_ENABLE_EXPERIMENTAL_CXX_INTEROP=OFF \ + -DSWIFT_ENABLE_CXX_INTEROP_SWIFT_BRIDGING_HEADER=OFF \ + -DSWIFT_BUILD_STDLIB_CXX_MODULE=OFF \ -DSWIFT_ENABLE_EXPERIMENTAL_DIFFERENTIABLE_PROGRAMMING=ON \ -DSWIFT_ENABLE_EXPERIMENTAL_DISTRIBUTED=ON \ -DSWIFT_ENABLE_EXPERIMENTAL_NONESCAPABLE_TYPES=ON \ @@ -71,8 +74,8 @@ echo "Install Swift StdLib" (cd $SWIFT_BUILDDIR && ninja install) # https://github.com/swiftlang/swift/issues/78003 -echo "Fix libswiftCxx installation location..." -cp -rf ${SWIFT_INSTALL_PREFIX}/lib/swift/linux/libswiftCxx*.a ${SWIFT_INSTALL_PREFIX}/lib/swift_static/linux +#echo "Fix libswiftCxx installation location..." +#cp -rf ${SWIFT_INSTALL_PREFIX}/lib/swift/linux/libswiftCxx*.a ${SWIFT_INSTALL_PREFIX}/lib/swift_static/linux echo "Install Swift Stdlib to sysroot" cp -rf ${SWIFT_INSTALL_PREFIX}/* ${STAGING_DIR}/usr/ diff --git a/build.sh b/build.sh index 9ea9d23..d9249e9 100755 --- a/build.sh +++ b/build.sh @@ -8,10 +8,10 @@ if [[ $OSTYPE == 'darwin'* ]]; then fi # Fetch and patch sources -if [ -z $SKIP_FETCH_SOURCES ]; then - ./fetch-sources.sh -fi -./fetch-binaries.sh +#if [ -z $SKIP_FETCH_SOURCES ]; then +# ./fetch-sources.sh +#fi +#./fetch-binaries.sh # Generate Xcode toolchain if [[ $OSTYPE == 'darwin'* && ! -d "$XCTOOLCHAIN" ]]; then @@ -52,11 +52,7 @@ fi # Archive ./build-tar.sh -# Cross compile test package +#export STATIC_SWIFT_STDLIB=1 ./generate-swiftpm-toolchain.sh ./build-swift-hello.sh -# Cross compile test package with --static-swift-stdlib -export STATIC_SWIFT_STDLIB=1 -./generate-swiftpm-toolchain.sh -./build-swift-hello.sh diff --git a/clang-arm-gcc-toolchain.cmake b/clang-arm-gcc-toolchain.cmake new file mode 100644 index 0000000..30cdbd5 --- /dev/null +++ b/clang-arm-gcc-toolchain.cmake @@ -0,0 +1,62 @@ + +set(TOOLCHAIN_PREFIX arm-none-eabi-) +set(TOOLCHAIN_TRIPLE arm-none-eabi) +find_program(BINUTILS_PATH ${TOOLCHAIN_PREFIX}gcc NO_CACHE) + +if (NOT BINUTILS_PATH) + message(FATAL_ERROR "ARM GCC toolchain not found") +endif () + +get_filename_component(ARM_TOOLCHAIN_DIR ${BINUTILS_PATH} DIRECTORY) +set(ARM_GCC_C_COMPILER ${TOOLCHAIN_PREFIX}gcc) +execute_process(COMMAND ${ARM_GCC_C_COMPILER} -print-sysroot + OUTPUT_VARIABLE ARM_GCC_SYSROOT OUTPUT_STRIP_TRAILING_WHITESPACE) +# get GNU ARM GCC version +execute_process(COMMAND ${ARM_GCC_C_COMPILER} --version + OUTPUT_VARIABLE ARM_GCC_VERSION OUTPUT_STRIP_TRAILING_WHITESPACE) +string(REGEX MATCH "[0-9]+\.[0-9]+\.[0-9]+" ARM_GCC_VERSION ${ARM_GCC_VERSION}) +# set compiler triple +set(triple ${TOOLCHAIN_TRIPLE}) +set(CMAKE_ASM_COMPILER_TARGET ${triple}) +set(CMAKE_C_COMPILER_TARGET ${triple}) +set(CMAKE_CXX_COMPILER_TARGET ${triple}) + +set(CMAKE_C_FLAGS_INIT " -B${ARM_TOOLCHAIN_DIR}") +set(CMAKE_CXX_FLAGS_INIT " -B${ARM_TOOLCHAIN_DIR} ") +# Without that flag CMake is not able to pass test compilation check +if (${CMAKE_VERSION} VERSION_EQUAL "3.6.0" OR ${CMAKE_VERSION} VERSION_GREATER "3.6") + set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) +else () + set(CMAKE_EXE_LINKER_FLAGS_INIT "-nostdlib") +endif () + +set(CMAKE_OBJCOPY llvm-objcopy CACHE INTERNAL "objcopy tool") +set(CMAKE_SIZE_UTIL llvm-size CACHE INTERNAL "size tool") +# Default C compiler flags +set(CMAKE_C_FLAGS_DEBUG_INIT "-g3 -Og -Wall -pedantic -DDEBUG") +set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG_INIT}" CACHE STRING "" FORCE) +set(CMAKE_C_FLAGS_RELEASE_INIT "-O3 -Wall") +set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE_INIT}" CACHE STRING "" FORCE) +set(CMAKE_C_FLAGS_MINSIZEREL_INIT "-Oz -Wall") +set(CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL_INIT}" CACHE STRING "" FORCE) +set(CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "-O2 -g -Wall") +set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO_INIT}" CACHE STRING "" FORCE) +# Default C++ compiler flags +set(TOOLCHAIN_CXX_INCLUDE_DIRS_FLAG "") +string(APPEND TOOLCHAIN_CXX_INCLUDE_DIRS_FLAG " -cxx-isystem ${ARM_GCC_SYSROOT}/include/c++/${ARM_GCC_VERSION}") +string(APPEND TOOLCHAIN_CXX_INCLUDE_DIRS_FLAG " -cxx-isystem ${ARM_GCC_SYSROOT}/include/c++/${ARM_GCC_VERSION}/arm-none-eabi") +string(APPEND TOOLCHAIN_CXX_INCLUDE_DIRS_FLAG " -cxx-isystem ${ARM_GCC_SYSROOT}/include/c++/${ARM_GCC_VERSION}/backward") +set(CMAKE_CXX_FLAGS_DEBUG_INIT "-g3 -Og -Wall -pedantic -DDEBUG ${TOOLCHAIN_CXX_INCLUDE_DIRS_FLAG}") +set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG_INIT}" CACHE STRING "" FORCE) +set(CMAKE_CXX_FLAGS_RELEASE_INIT "-O3 -Wall ${TOOLCHAIN_CXX_INCLUDE_DIRS_FLAG}") +set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE_INIT}" CACHE STRING "" FORCE) +set(CMAKE_CXX_FLAGS_MINSIZEREL_INIT "-Oz -Wall ${TOOLCHAIN_CXX_INCLUDE_DIRS_FLAG}") +set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL_INIT}" CACHE STRING "" FORCE) +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "-O2 -g -Wall ${TOOLCHAIN_CXX_INCLUDE_DIRS_FLAG}") +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT}" CACHE STRING "" FORCE) + +set(CMAKE_SYSROOT ${ARM_GCC_SYSROOT}) +set(CMAKE_FIND_ROOT_PATH ${ARM_GCC_SYSROOT}) +set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) +set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY BOTH) +set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE BOTH) diff --git a/create-cmake-toolchain.sh b/create-cmake-toolchain.sh index 88ba77d..fcc39bd 100755 --- a/create-cmake-toolchain.sh +++ b/create-cmake-toolchain.sh @@ -3,11 +3,56 @@ set -e source swift-define cat < $CROSS_TOOLCHAIN_FILE -set(CMAKE_C_COMPILER_TARGET ${SWIFT_TARGET_NAME}) -set(CMAKE_CXX_COMPILER_TARGET ${SWIFT_TARGET_NAME}) -set(CMAKE_SYSROOT ${STAGING_DIR}) -set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) set(CMAKE_SYSTEM_NAME Linux) set(CMAKE_SYSTEM_PROCESSOR ${CMAKE_TARGET_ARCH}) +set(CMAKE_SYSROOT ${STAGING_DIR}) set(CMAKE_Swift_COMPILER_TARGET ${SWIFT_TARGET_NAME}) + +find_program(BINUTILS_PATH ${SWIFT_TARGET_NAME_PREFIX}gcc NO_CACHE) + +if (NOT BINUTILS_PATH) + message(FATAL_ERROR "ARM GCC toolchain not found") +endif () + +# set compiler triple +set(CMAKE_ASM_COMPILER_TARGET ${SWIFT_TARGET_NAME}) +set(CMAKE_C_COMPILER_TARGET ${SWIFT_TARGET_NAME}) +set(CMAKE_CXX_COMPILER_TARGET ${SWIFT_TARGET_NAME}) + +set(CMAKE_C_FLAGS_INIT CACHE " -B${STAGING_DIR}/bin " FORCE) +set(CMAKE_CXX_FLAGS_INIT " -B${STAGING_DIR}/bin ") +# Without that flag CMake is not able to pass test compilation check +set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) + +set(CMAKE_OBJCOPY llvm-objcopy CACHE INTERNAL "objcopy tool") +set(CMAKE_SIZE_UTIL llvm-size CACHE INTERNAL "size tool") +# Default C compiler flags +set(CMAKE_C_FLAGS_DEBUG_INIT "-g3 -Og -Wall -pedantic -DDEBUG") +set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG_INIT}" CACHE STRING "" FORCE) +set(CMAKE_C_FLAGS_RELEASE_INIT "-O3 -Wall") +set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE_INIT}" CACHE STRING "" FORCE) +set(CMAKE_C_FLAGS_MINSIZEREL_INIT "-Oz -Wall") +set(CMAKE_C_FLAGS_MINSIZEREL "${CMAKE_C_FLAGS_MINSIZEREL_INIT}" CACHE STRING "" FORCE) +set(CMAKE_C_FLAGS_RELWITHDEBINFO_INIT "-O2 -g -Wall") +set(CMAKE_C_FLAGS_RELWITHDEBINFO "${CMAKE_C_FLAGS_RELWITHDEBINFO_INIT}" CACHE STRING "" FORCE) +# Default C++ compiler flags +set(TOOLCHAIN_CXX_INCLUDE_DIRS_FLAG "") +string(APPEND TOOLCHAIN_CXX_INCLUDE_DIRS_FLAG " -cxx-isystem ${STAGING_DIR}/usr/include/c++/13.3.0") +string(APPEND TOOLCHAIN_CXX_INCLUDE_DIRS_FLAG " -cxx-isystem ${STAGING_DIR}/usr/include/c++/13.3.0/${SWIFT_TARGET_NAME}") +string(APPEND TOOLCHAIN_CXX_INCLUDE_DIRS_FLAG " -cxx-isystem ${STAGING_DIR}/usr/include/c++/13.3.0/backward") +set(CMAKE_CXX_FLAGS_DEBUG_INIT "-g3 -Og -Wall -pedantic -DDEBUG ${TOOLCHAIN_CXX_INCLUDE_DIRS_FLAG}") +set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG_INIT}" CACHE STRING "" FORCE) +set(CMAKE_CXX_FLAGS_RELEASE_INIT "-O3 -Wall ${TOOLCHAIN_CXX_INCLUDE_DIRS_FLAG}") +set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE_INIT}" CACHE STRING "" FORCE) +set(CMAKE_CXX_FLAGS_MINSIZEREL_INIT "-Oz -Wall ${TOOLCHAIN_CXX_INCLUDE_DIRS_FLAG}") +set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_MINSIZEREL_INIT}" CACHE STRING "" FORCE) +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT "-O2 -g -Wall ${TOOLCHAIN_CXX_INCLUDE_DIRS_FLAG}") +set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO_INIT}" CACHE STRING "" FORCE) + +set(CMAKE_FIND_ROOT_PATH ${STAGING_DIR}) + +set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) +set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) +set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY) EOT diff --git a/fetch-sources.sh b/fetch-sources.sh index 9de128c..f47e3c7 100755 --- a/fetch-sources.sh +++ b/fetch-sources.sh @@ -15,7 +15,7 @@ if [[ -d "$SWIFT_SRCDIR" ]]; then git stash else echo "Checkout Swift" - git clone https://github.com/apple/swift.git + git clone https://github.com/swiftlang/swift.git --depth 1 cd $SWIFT_SRCDIR fi @@ -65,7 +65,6 @@ fi # Apply patches echo "Apply CXX interop patch" -patch -d . -p1 <$SRC_ROOT/patches/0001-Swift-fix-find-libstdc++-for-cxx-interop.patch patch -d . -p1 <$SRC_ROOT/patches/0002-Add-arm-to-float16support-for-missing-symbol.patch if [[ $SWIFT_VERSION == *"5.9"* ]] || [[ $SWIFT_VERSION == *"5.10-"* ]]; then diff --git a/patches/0001-Swift-fix-find-libstdc++-for-cxx-interop.patch b/patches/0001-Swift-fix-find-libstdc++-for-cxx-interop.patch deleted file mode 100644 index e233463..0000000 --- a/patches/0001-Swift-fix-find-libstdc++-for-cxx-interop.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff --git a/cmake/modules/SwiftConfigureSDK.cmake b/cmake/modules/SwiftConfigureSDK.cmake -index 2d4f798bb11..020215b689e 100644 ---- a/cmake/modules/SwiftConfigureSDK.cmake -+++ b/cmake/modules/SwiftConfigureSDK.cmake -@@ -321,9 +321,9 @@ macro(configure_sdk_unix name architectures) - # but add_swift_target_library does not allow passing different values - # depending on the architecture, so having a single value is the only - # possibility right now. -- set(SWIFT_SDK_${prefix}_CXX_OVERLAY_SWIFT_COMPILE_FLAGS -- -Xcc --gcc-toolchain=/usr -- CACHE STRING "Extra flags for compiling the C++ overlay") -+ set(SWIFT_SDK_${prefix}_CXX_OVERLAY_SWIFT_COMPILE_FLAGS -+ -Xcc --gcc-toolchain=${CMAKE_SYSROOT}/usr -+ CACHE STRING "Extra flags for compiling the C++ overlay") - - set(_default_threading_package "pthreads") - if("${prefix}" STREQUAL "LINUX") diff --git a/swift-define b/swift-define index 6a1e35a..4717b3c 100644 --- a/swift-define +++ b/swift-define @@ -1,6 +1,6 @@ # Version SWIFT_VERSION=${SWIFT_VERSION:=swift-6.1-RELEASE} -SWIFT_TARGET_ARCH=${SWIFT_TARGET_ARCH:=armv7} +#SWIFT_TARGET_ARCH=${SWIFT_TARGET_ARCH:=armv7} case ${SWIFT_TARGET_ARCH} in armv6) @@ -20,7 +20,8 @@ case ${SWIFT_TARGET_ARCH} in aarch64) CMAKE_TARGET_ARCH="aarch64" DEBIAN_TARGET_ARCH=arm64 - SWIFT_TARGET_NAME=${SWIFT_TARGET_ARCH}-unknown-linux-gnu + SWIFT_TARGET_NAME=${SWIFT_TARGET_ARCH}-poky-linux + SWIFT_TARGET_NAME_PREFIX=${SWIFT_TARGET_ARCH}-poky-linux- ;; *) echo "Unsupported architecture $SWIFT_TARGET_ARCH!" @@ -36,7 +37,7 @@ fi SRC_ROOT="${SRC_ROOT:=$(pwd)}" XCTOOLCHAIN="${XCTOOLCHAIN:=$SRC_ROOT/build/$SWIFT_VERSION-armv7-debian12.xctoolchain}" XCTOOLCHAIN_SDK="${XCTOOLCHAIN_SDK:=/tmp/cross-toolchain/debian-bookworm.sdk}" -STAGING_DIR="${STAGING_DIR:=$SRC_ROOT/sysroot-debian-bookworm-$DEBIAN_TARGET_ARCH}" +STAGING_DIR="${STAGING_DIR:=$SRC_ROOT/sysroot-imx8}" if [[ $OSTYPE == 'darwin'* ]]; then SWIFT_NATIVE_PATH="${SWIFT_NATIVE_PATH:=$XCTOOLCHAIN/usr/bin}" else @@ -47,6 +48,11 @@ SWIFTPM_CONFIGURATION="${SWIFTPM_CONFIGURATION:=release}" SWIFT_PACKAGE_SRCDIR="${SWIFT_PACKAGE_SRCDIR:=$SRC_ROOT/swift-hello}" SWIFT_PACKAGE_BUILDDIR="${SWIFT_PACKAGE_BUILDDIR:=$SWIFT_PACKAGE_SRCDIR/.build}" CROSS_TOOLCHAIN_FILE="${CROSS_TOOLCHAIN_FILE:=$SRC_ROOT/build/build-toolchain-${SWIFT_TARGET_ARCH}.cmake}" +if [ -d ${STAGING_DIR} ]; then + GCC_INSTALL_DIR=$(dirname $(find ${STAGING_DIR} -name crtbegin.o)) +else + GCC_INSTALL_DIR=${STAGING_DIR} +fi # Build Paths LLVM_SRCDIR=$SRC_ROOT/downloads/llvm-project @@ -79,13 +85,15 @@ INSTALL_PREFIX=$SRC_ROOT/build/swift-install/usr INSTALL_TAR=${INSTALL_TAR:=$SRC_ROOT/build/$SWIFT_VERSION-$SWIFT_TARGET_ARCH.tar.gz} PREBUILT_XCTOOLCHAIN=$SRC_ROOT/downloads/${SWIFT_VERSION}-osx.pkg +EXTRA_YOCTO_FLAGS="-I${STAGING_DIR}/usr/include/c++/13.3.0 -I${STAGING_DIR}/usr/include/c++/13.3.0/${SWIFT_TARGET_NAME}" + # Compilation flags -RUNTIME_FLAGS="-w -fuse-ld=lld --sysroot=${STAGING_DIR} -target ${SWIFT_TARGET_NAME} ${EXTRA_FLAGS}" -LINK_FLAGS="--sysroot=${STAGING_DIR} -target ${SWIFT_TARGET_NAME} ${EXTRA_FLAGS}" -ASM_FLAGS="--sysroot=${STAGING_DIR} -target ${SWIFT_TARGET_NAME}" +RUNTIME_FLAGS="-w -fuse-ld=lld --sysroot=${STAGING_DIR} --gcc-install-dir=${GCC_INSTALL_DIR} -target ${SWIFT_TARGET_NAME} ${EXTRA_FLAGS} ${EXTRA_YOCTO_FLAGS}" +LINK_FLAGS="--sysroot=${STAGING_DIR} --gcc-install-dir=${GCC_INSTALL_DIR} -target ${SWIFT_TARGET_NAME} ${EXTRA_FLAGS} ${EXTRA_YOCTO_FLAGS}" +ASM_FLAGS="--sysroot=${STAGING_DIR} -target ${SWIFT_TARGET_NAME} ${EXTRA_YOCTO_FLAGS}" -SWIFTC_FLAGS="-target ${SWIFT_TARGET_NAME} \ +SWIFTC_FLAGS="-target ${SWIFT_TARGET_NAME} ${EXTRA_YOCTO_FLAGS} \ -use-ld=lld \ -sdk ${STAGING_DIR} \ --resource-dir ${SWIFT_BUILDDIR}/lib/swift \ +-resource-dir ${SWIFT_BUILDDIR}/lib/swift \ "