Skip to content

Conversation

@anoopkg6
Copy link
Contributor

Making -funwind-tables by default for SystemZ like other architectures in driver by setting UnwindTableLevel::Asynchronous.
This enables eh_frame to be generated by default.

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

llvmbot commented May 13, 2025

@llvm/pr-subscribers-compiler-rt-sanitizer

@llvm/pr-subscribers-clang-driver

Author: None (anoopkg6)

Changes

Making -funwind-tables by default for SystemZ like other architectures in driver by setting UnwindTableLevel::Asynchronous.
This enables eh_frame to be generated by default.


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

1 Files Affected:

  • (modified) clang/lib/Driver/ToolChains/Gnu.cpp (+1)
diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp
index 8397f1121ec2c..73e372537927c 100644
--- a/clang/lib/Driver/ToolChains/Gnu.cpp
+++ b/clang/lib/Driver/ToolChains/Gnu.cpp
@@ -3103,6 +3103,7 @@ Generic_GCC::getDefaultUnwindTableLevel(const ArgList &Args) const {
   case llvm::Triple::ppc64le:
   case llvm::Triple::riscv32:
   case llvm::Triple::riscv64:
+  case llvm::Triple::systemz:
   case llvm::Triple::x86:
   case llvm::Triple::x86_64:
     return UnwindTableLevel::Asynchronous;

@llvmbot
Copy link
Member

llvmbot commented May 13, 2025

@llvm/pr-subscribers-clang

Author: None (anoopkg6)

Changes

Making -funwind-tables by default for SystemZ like other architectures in driver by setting UnwindTableLevel::Asynchronous.
This enables eh_frame to be generated by default.


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

1 Files Affected:

  • (modified) clang/lib/Driver/ToolChains/Gnu.cpp (+1)
diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp
index 8397f1121ec2c..73e372537927c 100644
--- a/clang/lib/Driver/ToolChains/Gnu.cpp
+++ b/clang/lib/Driver/ToolChains/Gnu.cpp
@@ -3103,6 +3103,7 @@ Generic_GCC::getDefaultUnwindTableLevel(const ArgList &Args) const {
   case llvm::Triple::ppc64le:
   case llvm::Triple::riscv32:
   case llvm::Triple::riscv64:
+  case llvm::Triple::systemz:
   case llvm::Triple::x86:
   case llvm::Triple::x86_64:
     return UnwindTableLevel::Asynchronous;

@MaskRay
Copy link
Member

MaskRay commented Jul 14, 2025

This PR actually enables -fasynchronous-unwind-tables instead of -funwind-tables.

-fasynchronous-unwind-tables and -funwind-tables control different boolean values. When both are enabled, -fasynchronous-unwind-tables takes precedence.

@github-actions
Copy link

github-actions bot commented Sep 27, 2025

✅ With the latest revision this PR passed the Python code formatter.

@anoopkg6 anoopkg6 closed this Oct 3, 2025
@anoopkg6 anoopkg6 deleted the eh_llvm branch October 3, 2025 13:16
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 compiler-rt:sanitizer compiler-rt llvm:transforms

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants