Unverified Commit 8da1e3dd authored by Brad Smith's avatar Brad Smith Committed by GitHub
Browse files

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

parent ab6c3d50
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -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");
+5 −0
Original line number Diff line number Diff line
@@ -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="" \