Skip to content
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

[Driver] Have -rdynamic be a no-op on Haiku #67872

Merged
merged 1 commit into from
Oct 12, 2023

Conversation

brad0
Copy link
Contributor

@brad0 brad0 commented Sep 30, 2023

Do the same as the Haiku GCC patches.

haikuports/haikuports@46afdec

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

llvmbot commented Sep 30, 2023

@llvm/pr-subscribers-clang-driver

@llvm/pr-subscribers-clang

Changes

Do the same as the Haiku GCC patches.

haikuports/haikuports@46afdec


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

2 Files Affected:

  • (modified) clang/lib/Driver/ToolChains/Haiku.cpp (+3-2)
  • (modified) clang/test/Driver/haiku.c (+5)
diff --git a/clang/lib/Driver/ToolChains/Haiku.cpp b/clang/lib/Driver/ToolChains/Haiku.cpp
index 33d71f030e51c51..0f8453ad861f9d3 100644
--- a/clang/lib/Driver/ToolChains/Haiku.cpp
+++ b/clang/lib/Driver/ToolChains/Haiku.cpp
@@ -42,6 +42,9 @@ void haiku::Linker::ConstructJob(Compilation &C, const JobAction &JA,
   // Silence warning for "clang -pie foo.o -o foo"
   Args.ClaimAllArgs(options::OPT_pie);
 
+  // -rdynamic is a no-op with Haiku. Claim argument to avoid warning.
+  Args.ClaimAllArgs(options::OPT_rdynamic);
+
   if (!D.SysRoot.empty())
     CmdArgs.push_back(Args.MakeArgString("--sysroot=" + D.SysRoot));
 
@@ -49,8 +52,6 @@ void haiku::Linker::ConstructJob(Compilation &C, const JobAction &JA,
   if (Static) {
     CmdArgs.push_back("-Bstatic");
   } else {
-    if (Args.hasArg(options::OPT_rdynamic))
-      CmdArgs.push_back("-export-dynamic");
     if (Shared)
       CmdArgs.push_back("-shared");
     CmdArgs.push_back("--enable-new-dtags");
diff --git a/clang/test/Driver/haiku.c b/clang/test/Driver/haiku.c
index 021ab522be06e5c..9dcae3631b98925 100644
--- a/clang/test/Driver/haiku.c
+++ b/clang/test/Driver/haiku.c
@@ -56,6 +56,11 @@
 // CHECK-LD-X86_64-SAME: {{^}} "[[SYSROOT]]/boot/system/develop/tools/lib/gcc/x86_64-unknown-haiku/13.2.0/crtendS.o"
 // CHECK-LD-X86_64-SAME: {{^}} "[[SYSROOT]]/boot/system/develop/lib/crtn.o"
 
+// Check -rdynamic is a no-op
+// RUN: %clang -### -rdynamic %s 2>&1 --target=x86_64-unknown-haiku \
+// RUN:    | FileCheck --check-prefix=CHECK-RDYNAMIC %s
+// CHECK-RDYNAMIC-NOT: "-export-dynamic"
+
 // Check the right flags are present with -shared
 // RUN: %clang -### %s -shared 2>&1 --target=x86_64-unknown-haiku \
 // RUN:     --gcc-toolchain="" \

@brad0
Copy link
Contributor Author

brad0 commented Sep 30, 2023

@davidkaroly

@brad0
Copy link
Contributor Author

brad0 commented Oct 9, 2023

@nielx

@nielx
Copy link

nielx commented Oct 12, 2023

Can confirm this is the case on Haiku and this is expected behaviour. Unfortunately, I do not have reviewing rights in GitHub.

@brad0 brad0 merged commit 8da1e3d into llvm:main Oct 12, 2023
@brad0 brad0 deleted the clang_driver_haiku_rdynamic branch October 12, 2023 22:06
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.

3 participants