2
0
Fork 0

Update Genode to 20.02 release

This commit is contained in:
Emery Hemingway 2020-02-28 14:42:34 +01:00
parent 52fe694be4
commit 57d8d01e42
2 changed files with 3 additions and 91 deletions

View File

@ -1,6 +1,6 @@
{ nixpkgs, apps }:
{ name, targets, arch, kernel ? "hw", board ? "pc", patches ? [], ... }@extraAttrs:
{ name, targets, arch, kernel ? "hw", board ? "pc", ... }@extraAttrs:
let
sourceForgeToolchain =
nixpkgs.buildPackages.callPackage ./../genode/toolchain.nix { };
@ -8,7 +8,7 @@ let
stdenvGcc = let
env = nixpkgs.stdenvAdapters.overrideCC nixpkgs.stdenv sourceForgeToolchain;
in assert env.cc.isGNU; env;
version = "19.11";
version = "20.02";
toolPrefix = if arch == "x86_64" then
"genode-x86-"
else
@ -21,11 +21,9 @@ in stdenvGcc.mkDerivation ({
owner = "genodelabs";
repo = "genode";
rev = version;
sha256 = "0j0wfwqmv8mivfkpra1pb02a8dy1nnsakr3v6l5y964dfkq3737i";
sha256 = "0idk92ibrasla0y2xkrmyh49dx0nzg96gqkcmn6r3w5r3fdpsfjy";
};
patches = [ ./unlabeled-log.patch ] ++ patches;
nativeBuildInputs = with nixpkgs.buildPackages; [ binutils tcl which ];
enableParallelBuilding = true;

View File

@ -1,86 +0,0 @@
diff --git a/repos/base/src/core/include/log_root.h b/repos/base/src/core/include/log_root.h
index db98ebfc5b..085c6053f9 100644
--- a/repos/base/src/core/include/log_root.h
+++ b/repos/base/src/core/include/log_root.h
@@ -30,12 +30,7 @@ namespace Genode {
*/
Log_session_component *_create_session(const char *args) override
{
- char label_buf[Log_session_component::LABEL_LEN];
-
- Arg label_arg = Arg_string::find_arg(args, "label");
- label_arg.string(label_buf, sizeof(label_buf), "");
-
- return new (md_alloc()) Log_session_component(label_buf);
+ return new (md_alloc()) Log_session_component(label_from_args(args));
}
public:
diff --git a/repos/base/src/core/include/log_session_component.h b/repos/base/src/core/include/log_session_component.h
index 7b6ddab815..29bda822cc 100644
--- a/repos/base/src/core/include/log_session_component.h
+++ b/repos/base/src/core/include/log_session_component.h
@@ -17,27 +17,32 @@
#include <util/string.h>
#include <base/log.h>
#include <base/rpc_server.h>
+#include <base/session_label.h>
#include <log_session/log_session.h>
namespace Genode {
class Log_session_component : public Rpc_object<Log_session>
{
- public:
-
- enum { LABEL_LEN = 128 };
-
private:
- char _label[LABEL_LEN];
+ Session_label const _label;
+
+ static Session_label _expand_label(Session_label const &label)
+ {
+ if (label == "init -> unlabeled")
+ return "";
+ else
+ return Session_label("[", label, "] ");
+ }
public:
/**
* Constructor
*/
- Log_session_component(const char *label) {
- strncpy(_label, label, sizeof(_label)); }
+ Log_session_component(Session_label const &label)
+ : _label(_expand_label(label)) { }
/*****************
@@ -54,21 +59,17 @@ namespace Genode {
char const *string = string_buf.string();
size_t len = strlen(string);
- char buf[string_buf.MAX_SIZE];
unsigned from_i = 0;
-
for (unsigned i = 0; i < len; i++) {
if (string[i] == '\n') {
- memcpy(buf, string + from_i, i - from_i);
- buf[i - from_i] = 0;
- log("[", Cstring(_label), "] ", Cstring(buf));
+ log(_label, Cstring(string + from_i, i - from_i));
from_i = i + 1;
}
}
/* if last character of string was not a line break, add one */
if (from_i < len)
- log("[", Cstring(_label), "] ", Cstring(string + from_i));
+ log(_label, Cstring(string + from_i));
return len;
}