Skip to content

fsl distro sysroot for aarch64 #2

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 26 commits into
base: feature/aarch64
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
ad12b81
Remove libstdc++ patch, instead just clear CXX_OVERLAY flags
xtremekforever Apr 9, 2025
22c0cf0
Fix typo in ./build-sysroot.sh invocation
xtremekforever Apr 7, 2025
6162697
merge with main
xavgru12 Apr 9, 2025
82a3378
add back arch
xavgru12 Apr 9, 2025
426402e
unset armv7 target arch
xavgru12 Apr 11, 2025
34b0e48
comment fetch sources
xavgru12 Apr 11, 2025
8c13c08
fix static build flag
xavgru12 Apr 12, 2025
a74a994
fetch sources depth 1
xavgru12 Apr 12, 2025
1685662
use poky linux and poky sysroot
xavgru12 Apr 12, 2025
f02cfa5
flag trials
xavgru12 Apr 12, 2025
d17d09c
add back gcc install dir
xavgru12 Apr 12, 2025
67129a9
add example toolchain file by https://github.com/vpetrigo/arm-cmake-t…
xavgru12 Apr 13, 2025
c8aeb27
change order in toolchain file so it makes more sense
xavgru12 Apr 13, 2025
0d79d78
remove unneeded
xavgru12 Apr 13, 2025
d27def1
remove more unneeded
xavgru12 Apr 13, 2025
b9518eb
change order once again
xavgru12 Apr 13, 2025
962412f
add toolchain file, mostly from: https://github.com/vpetrigo/arm-cmak…
xavgru12 Apr 13, 2025
eda7866
change generic to what I have
xavgru12 Apr 13, 2025
3b4f812
Revert "add back gcc install dir"
xavgru12 Apr 13, 2025
a7c8ddc
Reapply "add back gcc install dir"
xavgru12 Apr 13, 2025
21a051c
add extra yocto flags
xavgru12 Apr 14, 2025
028a4a3
add libxml dir
xavgru12 Apr 14, 2025
6899dbf
path to libxml and libedit
xavgru12 Apr 14, 2025
f9f08dd
turn off static build
xavgru12 Apr 14, 2025
8025c2e
turn off stdlibcc, it still asks for /opt/swift-armv7/build/swift-lin…
xavgru12 Apr 14, 2025
f6427a6
add back flags in toolchain file
xavgru12 Apr 15, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion build-llvm.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
15 changes: 9 additions & 6 deletions build-swift-stdlib.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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} \
Expand All @@ -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 \
Expand All @@ -39,16 +41,17 @@ 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} \
-DSWIFT_ENABLE_EXPERIMENTAL_CONCURRENCY=ON \
-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 \
Expand All @@ -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/
14 changes: 5 additions & 9 deletions build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
62 changes: 62 additions & 0 deletions clang-arm-gcc-toolchain.cmake
Original file line number Diff line number Diff line change
@@ -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)
53 changes: 49 additions & 4 deletions create-cmake-toolchain.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,56 @@ set -e
source swift-define

cat <<EOT > $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
3 changes: 1 addition & 2 deletions fetch-sources.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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
Expand Down
17 changes: 0 additions & 17 deletions patches/0001-Swift-fix-find-libstdc++-for-cxx-interop.patch

This file was deleted.

24 changes: 16 additions & 8 deletions swift-define
Original file line number Diff line number Diff line change
@@ -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)
Expand All @@ -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!"
Expand All @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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 \
"