-
Notifications
You must be signed in to change notification settings - Fork 15k
[Driver] Enable outline atomics for NetBSD/aarch64 #156143
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
|
@llvm/pr-subscribers-clang-driver Author: Brad Smith (brad0) ChangesFull diff: https://github.com/llvm/llvm-project/pull/156143.diff 2 Files Affected:
diff --git a/clang/lib/Driver/ToolChains/NetBSD.h b/clang/lib/Driver/ToolChains/NetBSD.h
index 96303acaa0099..eb34032aa296f 100644
--- a/clang/lib/Driver/ToolChains/NetBSD.h
+++ b/clang/lib/Driver/ToolChains/NetBSD.h
@@ -68,6 +68,11 @@ class LLVM_LIBRARY_VISIBILITY NetBSD : public Generic_ELF {
const llvm::opt::ArgList &DriverArgs,
llvm::opt::ArgStringList &CC1Args) const override;
+ bool IsAArch64OutlineAtomicsDefault(
+ const llvm::opt::ArgList &Args) const override {
+ return true;
+ }
+
UnwindTableLevel
getDefaultUnwindTableLevel(const llvm::opt::ArgList &Args) const override {
return UnwindTableLevel::Asynchronous;
diff --git a/clang/test/Driver/aarch64-features.c b/clang/test/Driver/aarch64-features.c
index 05dd3bf39fae3..f97e86cbfd96f 100644
--- a/clang/test/Driver/aarch64-features.c
+++ b/clang/test/Driver/aarch64-features.c
@@ -44,6 +44,9 @@
// RUN: %clang --target=aarch64-windows-gnu -rtlib=compiler-rt \
// RUN: -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-OUTLINE-ATOMICS-OFF %s
+// RUN: %clang --target=aarch64-unknown-netbsd -rtlib=libgcc \
+// RUN: -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-OUTLINE-ATOMICS-ON %s
+
// RUN: %clang --target=aarch64-unknown-openbsd -rtlib=compiler-rt \
// RUN: -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-OUTLINE-ATOMICS-ON %s
|
|
@llvm/pr-subscribers-clang Author: Brad Smith (brad0) ChangesFull diff: https://github.com/llvm/llvm-project/pull/156143.diff 2 Files Affected:
diff --git a/clang/lib/Driver/ToolChains/NetBSD.h b/clang/lib/Driver/ToolChains/NetBSD.h
index 96303acaa0099..eb34032aa296f 100644
--- a/clang/lib/Driver/ToolChains/NetBSD.h
+++ b/clang/lib/Driver/ToolChains/NetBSD.h
@@ -68,6 +68,11 @@ class LLVM_LIBRARY_VISIBILITY NetBSD : public Generic_ELF {
const llvm::opt::ArgList &DriverArgs,
llvm::opt::ArgStringList &CC1Args) const override;
+ bool IsAArch64OutlineAtomicsDefault(
+ const llvm::opt::ArgList &Args) const override {
+ return true;
+ }
+
UnwindTableLevel
getDefaultUnwindTableLevel(const llvm::opt::ArgList &Args) const override {
return UnwindTableLevel::Asynchronous;
diff --git a/clang/test/Driver/aarch64-features.c b/clang/test/Driver/aarch64-features.c
index 05dd3bf39fae3..f97e86cbfd96f 100644
--- a/clang/test/Driver/aarch64-features.c
+++ b/clang/test/Driver/aarch64-features.c
@@ -44,6 +44,9 @@
// RUN: %clang --target=aarch64-windows-gnu -rtlib=compiler-rt \
// RUN: -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-OUTLINE-ATOMICS-OFF %s
+// RUN: %clang --target=aarch64-unknown-netbsd -rtlib=libgcc \
+// RUN: -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-OUTLINE-ATOMICS-ON %s
+
// RUN: %clang --target=aarch64-unknown-openbsd -rtlib=compiler-rt \
// RUN: -### -c %s 2>&1 | FileCheck -check-prefix=CHECK-OUTLINE-ATOMICS-ON %s
|
|
cc @0-wiz-0 |
|
I am not running an aarch64 machine, but I've asked for testers on the mailing list: |
Thanks. Just looking for testing and feedback. |
|
I can test this. How do I find out if it works? Would it just fail to compile if not? |
|
I'm sorry but I'm not doing NetBSD anymore, and I don't think I can contribute any useful feedback to this. I think you need someone who understands toolchain better than I do. |
Thanks for letting me know. |
|
@brad0 |
It looks like NetBSD 10, 11 and anything newer has the libgcc helper functions.
outline atomics were enabled by default with GCC 10 and newer.