diff --git a/.github/actions/3-build-cross/action.yml b/.github/actions/3-build-cross/action.yml index 51acd708d69..2116bc201df 100644 --- a/.github/actions/3-build-cross/action.yml +++ b/.github/actions/3-build-cross/action.yml @@ -79,7 +79,7 @@ runs: set -eux cd .. arch='${{ inputs.arch }}' - triple="$arch-apple-macos" + triple="$arch-apple-macos$MACOSX_DEPLOYMENT_TARGET" echo "DFLAGS=-mtriple=$triple -L-L$PWD/build-cross-libs/lib -Xcc=-target -Xcc=$triple -Xcc=-isysroot -Xcc=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk" >> $GITHUB_ENV echo "CROSS_TRIPLE=$triple" >> $GITHUB_ENV echo "CROSS_CMAKE_FLAGS=-DCMAKE_OSX_ARCHITECTURES=$arch" >> $GITHUB_ENV diff --git a/.github/actions/merge-macos/action.yml b/.github/actions/merge-macos/action.yml index 7efd0e4a906..ebaee4f6fa6 100644 --- a/.github/actions/merge-macos/action.yml +++ b/.github/actions/merge-macos/action.yml @@ -64,7 +64,7 @@ runs: switches = [ \"-defaultlib=phobos2-ldc,druntime-ldc\", \"-Xcc=-target\", - \"-Xcc=x86_64-apple-macos\", + \"-Xcc=x86_64-apple-macos$MACOSX_DEPLOYMENT_TARGET\", ]; lib-dirs = [ \"%%ldcbinarypath%%/../lib-x86_64\", @@ -77,7 +77,7 @@ runs: switches = [ \"-defaultlib=phobos2-ldc,druntime-ldc\", \"-Xcc=-target\", - \"-Xcc=arm64-apple-macos\", + \"-Xcc=arm64-apple-macos$MACOSX_DEPLOYMENT_TARGET\", ]; lib-dirs = [ \"%%ldcbinarypath%%/../lib-arm64\", diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 55a645c6ab8..60bc02f45ec 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -248,6 +248,8 @@ jobs: name: macOS universal runs-on: macos-latest timeout-minutes: 30 + env: + MACOSX_DEPLOYMENT_TARGET: 11.0 needs: - build-native - build-cross diff --git a/driver/targetmachine.cpp b/driver/targetmachine.cpp index da61df6dea8..73de806ac40 100644 --- a/driver/targetmachine.cpp +++ b/driver/targetmachine.cpp @@ -450,10 +450,10 @@ createTargetMachine(const std::string targetTriple, const std::string arch, triple = llvm::Triple( llvm::Triple::normalize(llvm::sys::getDefaultTargetTriple())); + // Apple: translate darwin to macos, apparently like clang if (triple.getOS() == llvm::Triple::Darwin) { - // We only support OSX, so darwin should really be macosx. llvm::SmallString<16> osname; - osname += "macosx"; + osname += "macos"; // We have to specify OS version in the triple to avoid linker warnings, // see https://github.com/ldc-developers/ldc/issues/4501. // If environment variable MACOSX_DEPLOYMENT_TARGET is not set, then use diff --git a/tests/compilable/gh4489.d b/tests/compilable/gh4489.d index 5b20273e458..450a49b8e1a 100644 --- a/tests/compilable/gh4489.d +++ b/tests/compilable/gh4489.d @@ -1,5 +1,5 @@ // REQUIRES: target_AArch64 -// RUN: %ldc -mtriple=arm64-apple-macos -c %s +// RUN: %ldc -mtriple=arm64-apple-macos11.0 -c %s void foo(inout float[3]);