Clang: patch to fix linking shared libraries
This commit is contained in:
parent
541cd34b7a
commit
cffa29c68d
|
@ -121,10 +121,10 @@ index 1a46073aaa3..72b6f7389a3 100644
|
|||
StringRef S = A->getValue();
|
||||
diff --git a/lib/Driver/ToolChains/Genode.cpp b/lib/Driver/ToolChains/Genode.cpp
|
||||
new file mode 100644
|
||||
index 00000000000..91cb8362a14
|
||||
index 00000000000..cf87b10ba2a
|
||||
--- /dev/null
|
||||
+++ b/lib/Driver/ToolChains/Genode.cpp
|
||||
@@ -0,0 +1,138 @@
|
||||
@@ -0,0 +1,145 @@
|
||||
+//===--- Genode.cpp - Genode ToolChain Implementations ----------*- C++ -*-===//
|
||||
+//
|
||||
+// The LLVM Compiler Infrastructure
|
||||
|
@ -201,9 +201,14 @@ index 00000000000..91cb8362a14
|
|||
+ if (Args.hasArg(options::OPT_static)) {
|
||||
+ CmdArgs.push_back("-Bstatic");
|
||||
+ } else {
|
||||
+ CmdArgs.push_back(Args.MakeArgString("-T" + D.SysRoot + "/ld/genode_dyn.ld"));
|
||||
+ CmdArgs.push_back(Args.MakeArgString("--dynamic-list=" + D.SysRoot + "/ld/genode_dyn.dl"));
|
||||
+ CmdArgs.push_back("--dynamic-linker=ld.lib.so");
|
||||
+ if (Args.hasArg(options::OPT_shared)) {
|
||||
+ CmdArgs.push_back(Args.MakeArgString("-shared"));
|
||||
+ CmdArgs.push_back(Args.MakeArgString("-T" + D.SysRoot + "/ld/genode_rel.ld"));
|
||||
+ } else {
|
||||
+ CmdArgs.push_back(Args.MakeArgString("-T" + D.SysRoot + "/ld/genode_dyn.ld"));
|
||||
+ CmdArgs.push_back(Args.MakeArgString("--dynamic-list=" + D.SysRoot + "/ld/genode_dyn.dl"));
|
||||
+ CmdArgs.push_back("--dynamic-linker=ld.lib.so");
|
||||
+ }
|
||||
+ if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nodefaultlibs)) {
|
||||
+ CmdArgs.push_back("-l:ld.lib.so");
|
||||
+ }
|
||||
|
@ -220,7 +225,9 @@ index 00000000000..91cb8362a14
|
|||
+
|
||||
+ if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nodefaultlibs, options::OPT_noposix)) {
|
||||
+ CmdArgs.push_back("-lc");
|
||||
+ CmdArgs.push_back("-lposix");
|
||||
+ if (!Args.hasArg(options::OPT_shared)) {
|
||||
+ CmdArgs.push_back("-lposix");
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ const char *Exec = Args.MakeArgString(ToolChain.GetLinkerPath());
|
||||
|
|
Loading…
Reference in New Issue