Open madsmtm opened 3 weeks ago
The .old
prefix in the warnings getting spammed would seem to hint that Apple has added a new identifier or ABI version for the arm64e target? This seems to indicate its an upstream LLVM limitation, perhaps.
Firefox has patched their LLVM build to set the correct arch flags based on Apple's LLVM output.
Hey @madsmtm,
You can handle it if you use the LLVM linker (lld).
--set rust.use-lld=true
./configure \
--enable-option-checking \
--enable-verbose-tests \
--codegen-backends=llvm \
--enable-codegen-tests \
--enable-dist-src \
--tools=cargo,clippy,rustdoc,rustfmt,rust-analyzer,analysis,src \
--target=arm64e-apple-ios,aarch64-apple-ios,arm64e-apple-darwin,aarch64-apple-darwin \
--set llvm.download-ci-llvm=true \
--set build.verbose=0 \
--set rust.channel=dev \
--set rust.description="" \
--set rust.use-lld=true \
--dist-compression-formats=xz \
--prefix=install
See tracking issue for these targets in https://github.com/rust-lang/rust/issues/73628.
Building a project using the
arm64e-apple-ios
target fails to link when using Xcode 15.4. Using Xcode 14.3.1 works.This might also be the case for
arm64e-apple-darwin
, but I can't test that due to https://github.com/rust-lang/cc-rs/issues/1205.The exact error is:
I feel fairly confident that we're passing the right arguments to the linker nowadays (this happens even with https://github.com/rust-lang/rust/pull/129369), so I suspect it's the object files that we generate that's the problem somehow, but I may be mistaken?
Meta
rustc +nightly --version --verbose
:Happens as far back as
+nightly-2023-11-22
, the day after the PR introducing these merged, so it's definitely due to changes in Xcode, not because of a regression inrustc
.@rustbot label O-ios O-macos O-AArch64
CC target maintainer @arttet.