Skip to content

Commit 1a963d3

Browse files
committed
[Driver] Make -moutline-atomics default for aarch64-fuchsia targets
This makes Fuchsia consistent with Linux on AArch64. Reviewed By: abrachet Differential Revision: https://reviews.llvm.org/D122613
1 parent 2c20c90 commit 1a963d3

File tree

2 files changed

+15
-11
lines changed

2 files changed

+15
-11
lines changed

clang/lib/Driver/ToolChains/Fuchsia.h

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -75,24 +75,27 @@ class LLVM_LIBRARY_VISIBILITY Fuchsia : public ToolChain {
7575

7676
RuntimeLibType
7777
GetRuntimeLibType(const llvm::opt::ArgList &Args) const override;
78-
CXXStdlibType
79-
GetCXXStdlibType(const llvm::opt::ArgList &Args) const override;
78+
CXXStdlibType GetCXXStdlibType(const llvm::opt::ArgList &Args) const override;
79+
80+
bool IsAArch64OutlineAtomicsDefault(
81+
const llvm::opt::ArgList &Args) const override {
82+
return true;
83+
}
8084

81-
void addClangTargetOptions(const llvm::opt::ArgList &DriverArgs,
82-
llvm::opt::ArgStringList &CC1Args,
83-
Action::OffloadKind DeviceOffloadKind) const override;
85+
void
86+
addClangTargetOptions(const llvm::opt::ArgList &DriverArgs,
87+
llvm::opt::ArgStringList &CC1Args,
88+
Action::OffloadKind DeviceOffloadKind) const override;
8489
void
8590
AddClangSystemIncludeArgs(const llvm::opt::ArgList &DriverArgs,
8691
llvm::opt::ArgStringList &CC1Args) const override;
87-
void
88-
AddClangCXXStdlibIncludeArgs(const llvm::opt::ArgList &DriverArgs,
89-
llvm::opt::ArgStringList &CC1Args) const override;
92+
void AddClangCXXStdlibIncludeArgs(
93+
const llvm::opt::ArgList &DriverArgs,
94+
llvm::opt::ArgStringList &CC1Args) const override;
9095
void AddCXXStdlibLibArgs(const llvm::opt::ArgList &Args,
9196
llvm::opt::ArgStringList &CmdArgs) const override;
9297

93-
const char *getDefaultLinker() const override {
94-
return "ld.lld";
95-
}
98+
const char *getDefaultLinker() const override { return "ld.lld"; }
9699

97100
protected:
98101
Tool *buildLinker() const override;

clang/test/Driver/fuchsia.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
// CHECK-AARCH64: "-fsanitize=shadow-call-stack"
3535
// CHECK-X86_64: "-fsanitize=safe-stack"
3636
// CHECK: "-stack-protector" "2"
37+
// CHECK-AARCH64: "-target-feature" "+outline-atomics"
3738
// CHECK-NOT: "-fcommon"
3839
// CHECK: {{.*}}ld.lld{{.*}}" "-z" "max-page-size=4096" "-z" "now" "-z" "rodynamic" "-z" "separate-loadable-segments" "-z" "rel" "--pack-dyn-relocs=relr"
3940
// CHECK: "--sysroot=[[SYSROOT]]"

0 commit comments

Comments
 (0)