diff options
author | Alex Lorenz <arphaman@gmail.com> | 2020-06-26 14:57:00 -0700 |
---|---|---|
committer | Alex Lorenz <arphaman@gmail.com> | 2020-06-26 17:15:37 -0700 |
commit | 253988f0f400201adb094d0f81d2c0c3fac94f4f (patch) | |
tree | c96a07edf8bbf16560b81874c160c7b600629c38 /clang | |
parent | 5fb5f7b5ab340b7c2ebdfd0b5538308a2f8a85b0 (diff) | |
download | llvm-253988f0f400201adb094d0f81d2c0c3fac94f4f.zip llvm-253988f0f400201adb094d0f81d2c0c3fac94f4f.tar.gz llvm-253988f0f400201adb094d0f81d2c0c3fac94f4f.tar.bz2 |
[darwin][driver] Do not link with libarclite when building for Apple Silicon macOS
Diffstat (limited to 'clang')
-rw-r--r-- | clang/lib/Driver/ToolChains/Darwin.cpp | 2 | ||||
-rw-r--r-- | clang/lib/Driver/ToolChains/Darwin.h | 11 | ||||
-rw-r--r-- | clang/test/Driver/arclite-link.c | 3 |
3 files changed, 16 insertions, 0 deletions
diff --git a/clang/lib/Driver/ToolChains/Darwin.cpp b/clang/lib/Driver/ToolChains/Darwin.cpp index 1b3a3e9..3655948 100644 --- a/clang/lib/Driver/ToolChains/Darwin.cpp +++ b/clang/lib/Driver/ToolChains/Darwin.cpp @@ -971,6 +971,8 @@ void DarwinClang::AddLinkARCArgs(const ArgList &Args, // Avoid linking compatibility stubs on i386 mac. if (isTargetMacOS() && getArch() == llvm::Triple::x86) return; + if (isTargetAppleSiliconMac()) + return; ObjCRuntime runtime = getDefaultObjCRuntime(/*nonfragile*/ true); diff --git a/clang/lib/Driver/ToolChains/Darwin.h b/clang/lib/Driver/ToolChains/Darwin.h index 1b193a4..e6f2beb 100644 --- a/clang/lib/Driver/ToolChains/Darwin.h +++ b/clang/lib/Driver/ToolChains/Darwin.h @@ -409,6 +409,17 @@ protected: return TargetPlatform == MacOS; } + bool isTargetMacOSBased() const { + assert(TargetInitialized && "Target not initialized!"); + // FIXME (Alex L): Add remaining MacCatalyst suppport. + return TargetPlatform == MacOS; + } + + bool isTargetAppleSiliconMac() const { + assert(TargetInitialized && "Target not initialized!"); + return isTargetMacOSBased() && getArch() == llvm::Triple::aarch64; + } + bool isTargetInitialized() const { return TargetInitialized; } VersionTuple getTargetVersion() const { diff --git a/clang/test/Driver/arclite-link.c b/clang/test/Driver/arclite-link.c index 2cc0271..a53b12d 100644 --- a/clang/test/Driver/arclite-link.c +++ b/clang/test/Driver/arclite-link.c @@ -15,3 +15,6 @@ // RUN: %clang -### -target x86_64-apple-darwin10 -fobjc-link-runtime -fobjc-arc -mmacosx-version-min=10.10 %s 2>&1 | FileCheck -check-prefix=CHECK-UNUSED %s // CHECK-UNUSED-NOT: warning: argument unused during compilation: '-fobjc-link-runtime' + +// RUN: %clang -### -target arm64-apple-macos10.8 -fobjc-link-runtime %t.o 2>&1 | FileCheck -check-prefix=CHECK-ARCLITE-ARM-MAC %s +// CHECK-ARCLITE-ARM-MAC-NOT: libarclite |