Skip to content

Conversation

@brad0
Copy link
Contributor

@brad0 brad0 commented Aug 30, 2025

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.

@llvmbot llvmbot added clang Clang issues not falling into any other category clang:driver 'clang' and 'clang++' user-facing binaries. Not 'clang-cl' labels Aug 30, 2025
@llvmbot
Copy link
Member

llvmbot commented Aug 30, 2025

@llvm/pr-subscribers-clang-driver

Author: Brad Smith (brad0)

Changes

Full diff: https://github.com/llvm/llvm-project/pull/156143.diff

2 Files Affected:

  • (modified) clang/lib/Driver/ToolChains/NetBSD.h (+5)
  • (modified) clang/test/Driver/aarch64-features.c (+3)
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
 

@llvmbot
Copy link
Member

llvmbot commented Aug 30, 2025

@llvm/pr-subscribers-clang

Author: Brad Smith (brad0)

Changes

Full diff: https://github.com/llvm/llvm-project/pull/156143.diff

2 Files Affected:

  • (modified) clang/lib/Driver/ToolChains/NetBSD.h (+5)
  • (modified) clang/test/Driver/aarch64-features.c (+3)
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
 

@brad0 brad0 requested a review from mgorny August 30, 2025 05:23
@brad0
Copy link
Contributor Author

brad0 commented Aug 30, 2025

cc @0-wiz-0

@0-wiz-0
Copy link
Contributor

0-wiz-0 commented Aug 30, 2025

I am not running an aarch64 machine, but I've asked for testers on the mailing list:
https://mail-index.netbsd.org/port-arm/2025/08/30/msg009377.html

@brad0
Copy link
Contributor Author

brad0 commented Aug 30, 2025

I am not running an aarch64 machine, but I've asked for testers on the mailing list: https://mail-index.netbsd.org/port-arm/2025/08/30/msg009377.html

Thanks. Just looking for testing and feedback.

@bsiegert
Copy link

I can test this. How do I find out if it works? Would it just fail to compile if not?

@mgorny mgorny removed their request for review August 30, 2025 15:56
@mgorny
Copy link
Member

mgorny commented Aug 30, 2025

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.

@brad0
Copy link
Contributor Author

brad0 commented Sep 1, 2025

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.

@0-wiz-0
Copy link
Contributor

0-wiz-0 commented Sep 17, 2025

@brad0
Can you please let us know what kind of feedback you're interested in?
Build testing?
Code review?
Runtime testing - what in particular?
Thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

clang:driver 'clang' and 'clang++' user-facing binaries. Not 'clang-cl' clang Clang issues not falling into any other category

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants