Clang: patch to link with -lc and -lposix
Link with the libc and posix entrypoint library unless the -noposix flag is passed. This allows the Genode Clang to be dropped into legacy build systems. Update the native packages using the Clang stdenv to pass -noposix.
This commit is contained in:
parent
bdcc22d5be
commit
75615fac16
|
@ -1,3 +1,15 @@
|
|||
diff --git a/include/clang/Driver/Options.td b/include/clang/Driver/Options.td
|
||||
index d02d9744d78..b57a7cb0507 100644
|
||||
--- a/include/clang/Driver/Options.td
|
||||
+++ b/include/clang/Driver/Options.td
|
||||
@@ -2452,6 +2452,7 @@ def nolibc : Flag<["-"], "nolibc">;
|
||||
def nomultidefs : Flag<["-"], "nomultidefs">;
|
||||
def nopie : Flag<["-"], "nopie">;
|
||||
def no_pie : Flag<["-"], "no-pie">, Alias<nopie>;
|
||||
+def noposix : Flag<["-"], "noposix">;
|
||||
def noprebind : Flag<["-"], "noprebind">;
|
||||
def noseglinkedit : Flag<["-"], "noseglinkedit">;
|
||||
def nostartfiles : Flag<["-"], "nostartfiles">;
|
||||
diff --git a/lib/Basic/Targets.cpp b/lib/Basic/Targets.cpp
|
||||
index 3c139d72479..89d6df3f5b4 100644
|
||||
--- a/lib/Basic/Targets.cpp
|
||||
|
@ -109,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..9103ce2a5ee
|
||||
index 00000000000..91cb8362a14
|
||||
--- /dev/null
|
||||
+++ b/lib/Driver/ToolChains/Genode.cpp
|
||||
@@ -0,0 +1,133 @@
|
||||
@@ -0,0 +1,138 @@
|
||||
+//===--- Genode.cpp - Genode ToolChain Implementations ----------*- C++ -*-===//
|
||||
+//
|
||||
+// The LLVM Compiler Infrastructure
|
||||
|
@ -206,6 +218,11 @@ index 00000000000..9103ce2a5ee
|
|||
+
|
||||
+ AddLinkerInputs(ToolChain, Inputs, Args, CmdArgs, JA);
|
||||
+
|
||||
+ if (!Args.hasArg(options::OPT_nostdlib, options::OPT_nodefaultlibs, options::OPT_noposix)) {
|
||||
+ CmdArgs.push_back("-lc");
|
||||
+ CmdArgs.push_back("-lposix");
|
||||
+ }
|
||||
+
|
||||
+ const char *Exec = Args.MakeArgString(ToolChain.GetLinkerPath());
|
||||
+ C.addCommand(llvm::make_unique<Command>(JA, *this, Exec, CmdArgs, Inputs));
|
||||
+}
|
||||
|
|
|
@ -10,8 +10,8 @@ stdenv.mkDerivation rec {
|
|||
|
||||
src = fetchgit {
|
||||
url = "https://git.sr.ht/~ehmry/block_router";
|
||||
rev = "v" + version;
|
||||
sha256 = "0vw3s4q3rp5dp1i93sq0cybfssh3gbqgyqg6k69781pjda7mzn54";
|
||||
rev = "d229379abd16d6b19872b83772da81a2473f18ae";
|
||||
sha256 = "1wrz7r72psnxfaaj2gjp5zxy8h4k8ahbyjp8y70ghr9rm1hsdhj4";
|
||||
};
|
||||
|
||||
installPhase = "install -Dm755 {.,$out}/block_router";
|
||||
|
|
|
@ -7,8 +7,8 @@ stdenv.mkDerivation rec {
|
|||
|
||||
src = fetchgit {
|
||||
url = "https://git.sr.ht/~ehmry/nic_bus";
|
||||
rev = "v" + version;
|
||||
sha256 = "DrgZHkUEjkHmSfOqSetGqU/nLl8OqNM0zaJjOout5VY=";
|
||||
rev = "e4e7c5f4af7d6129f64afb019045c40508a619ee";
|
||||
sha256 = "0hxzdkl1w47gha395bx8ykv8ic62chs75ccyyqq841pwghqxscj4";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ tup ];
|
||||
|
|
|
@ -10,8 +10,8 @@ stdenv.mkDerivation rec {
|
|||
|
||||
src = fetchgit {
|
||||
url = "https://git.sr.ht/~ehmry/genode-sotest-producer";
|
||||
rev = "v" + version;
|
||||
sha256 = "01qy86khkihj8jgvgc92w4bb3kpf640g1l2m5h5ym7s03viqinkr";
|
||||
rev = "eed74df5977b01809893efaa84e7ad6d207423d2";
|
||||
sha256 = "1cf08jk2y6advlk9hczzklc220195fj3ybjvd16y8v1sfpfg84lx";
|
||||
};
|
||||
|
||||
installPhase = "install -Dm755 {.,$out/bin}/sotest-harness";
|
||||
|
|
Loading…
Reference in New Issue