Skip to content

Swift SDKs won't compile for non-matching target arch with swiftbuild system in 6.4 #1574

Description

@xtremekforever

If I do this on a Linux x86_64 host:

$ swiftly install --use 6.4.x-snapshot
$ cd swift-sdk-generator
$ swift run swift-sdk-generator make-linux-sdk --swift-branch swift-6.4.x-branch --swift-version 6.4.x-DEVELOPMENT-SNAPSHOT-2026-07-23-a --target aarch64-unknown-linux-gnu
$ swift sdk install ./Bundles/6.4.x-DEVELOPMENT-SNAPSHOT-2026-07-23-a_ubuntu_jammy_aarch64.artifactbundle
$ swift build --swift-sdk 6.4.x-DEVELOPMENT-SNAPSHOT-2026-07-23-a_ubuntu_jammy_aarch64

The build fails with some fun errors:

Building for debugging...
/usr/bin/x86_64-linux-gnu-ld.bfd: unrecognised emulation mode: aarch64linux
Supported emulations: elf_x86_64 elf_i386 elf32_x86_64 elf_iamcu i386pep i386pe
~/swift-sdk-generator/.build/checkouts/swift-atomics/Package.swift: _AtomicsShims: clang: error: linker command failed with exit code 1 (use -v to see invocation)
error: Ld ~/swift-sdk-generator/.build/out/Products/Debug-linux-aarch64/_AtomicsShims.o normal failed with a nonzero exit code. Command line:     cd ~/swift-sdk-generator/.build/checkouts/swift-atomics
    /home/xtremek/.local/share/swiftly/toolchains/6.4.x-snapshot-2026-07-23/usr/bin/clang -target aarch64-unknown-linux-gnu -r --sysroot /home/xtremek/.swiftpm/swift-sdks/6.4.x-DEVELOPMENT-SNAPSHOT-2026-07-23-a_ubuntu_jammy_aarch64.artifactbundle/6.4.x-DEVELOPMENT-SNAPSHOT-2026-07-23-a_ubuntu_jammy_aarch64/aarch64-unknown-linux-gnu/ubuntu-jammy.sdk -resource-dir /home/xtremek/.swiftpm/swift-sdks/6.4.x-DEVELOPMENT-SNAPSHOT-2026-07-23-a_ubuntu_jammy_aarch64.artifactbundle/6.4.x-DEVELOPMENT-SNAPSHOT-2026-07-23-a_ubuntu_jammy_aarch64/aarch64-unknown-linux-gnu/ubuntu-jammy.sdk/usr/lib/swift/clang -O0 -w @~/swift-sdk-generator/.build/out/Intermediates.noindex/swift-atomics.build/Debug-linux-aarch64/_AtomicsShims-t.build/Objects-normal/aarch64/_AtomicsShims.LinkFileList -nostdlib -o ~/swift-sdk-generator/.build/out/Products/Debug-linux-aarch64/_AtomicsShims.o
[242 / 874] _AtomicsShims
error: Build failed

Since Swift 6.4 defaults to the swiftbuild build system it appears to not be working properly when cross-compiling. If we use the native build system, things compile just as before.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions