From 1a95f1c2e09a06653ad448e8e33524e4360fc6bd Mon Sep 17 00:00:00 2001 From: Ryan Liptak Date: Fri, 27 Mar 2020 17:36:43 -0700 Subject: [PATCH 1/2] Fix -rdynamic not sending --export-dynamic to the ELF linker --- src/link.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/link.cpp b/src/link.cpp index 25b913be21..c98f1cab3d 100644 --- a/src/link.cpp +++ b/src/link.cpp @@ -1646,6 +1646,10 @@ static void construct_linker_job_elf(LinkJob *lj) { lj->args.append("--eh-frame-hdr"); } + if (g->linker_rdynamic) { + lj->args.append("--export-dynamic"); + } + lj->args.append("-m"); lj->args.append(getLDMOption(g->zig_target)); From e7847f8d42ce30dfb79d030836d3432e1bb71fdf Mon Sep 17 00:00:00 2001 From: Ryan Liptak Date: Fri, 27 Mar 2020 17:42:02 -0700 Subject: [PATCH 2/2] zig cc: Add --export-dynamic linker flag support --- src/main.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/main.cpp b/src/main.cpp index a543b43579..61e4ba9226 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -768,6 +768,11 @@ static int main0(int argc, char **argv) { return EXIT_FAILURE; } dynamic_linker = buf_ptr(linker_args.at(i)); + } else if (buf_eql_str(arg, "-E") || + buf_eql_str(arg, "--export-dynamic") || + buf_eql_str(arg, "-export-dynamic")) + { + rdynamic = true; } else { fprintf(stderr, "warning: unsupported linker arg: %s\n", buf_ptr(arg)); }