diff --git a/packages/genodelabs/binary-labels.patch b/packages/genodelabs/binary-labels.patch new file mode 100644 index 0000000..af5752a --- /dev/null +++ b/packages/genodelabs/binary-labels.patch @@ -0,0 +1,98 @@ +commit 2d76b3271fa826a97c3974b7e67f2799e9ba448d +Author: Emery Hemingway +Date: Fri May 29 18:42:57 2020 +0530 + + Use 128-byte strings for session labels + + Sixty-four bytes is insufficient for Nix store paths. + +diff --git a/repos/base/include/base/child.h b/repos/base/include/base/child.h +index 8c7b33a9d9..3bd6483547 100644 +--- a/repos/base/include/base/child.h ++++ b/repos/base/include/base/child.h +@@ -44,9 +44,9 @@ namespace Genode { + */ + struct Genode::Child_policy + { +- typedef String<64> Name; +- typedef String<64> Binary_name; +- typedef String<64> Linker_name; ++ typedef String<128> Name; ++ typedef String<128> Binary_name; ++ typedef String<128> Linker_name; + + virtual ~Child_policy() { } + +@@ -407,7 +407,7 @@ class Genode::Child : protected Rpc_object, + + Id_space::Id const _client_id; + +- typedef String<64> Label; ++ typedef String<128> Label; + + Args const _args; + +diff --git a/repos/base/include/base/shared_object.h b/repos/base/include/base/shared_object.h +index f4dd1622fe..7ffe5fa34c 100644 +--- a/repos/base/include/base/shared_object.h ++++ b/repos/base/include/base/shared_object.h +@@ -128,7 +128,7 @@ class Genode::Dynamic_linker + struct Object_info + { + /* name of shared library, or "binary" for the main program */ +- typedef String<64> Name; ++ typedef String<128> Name; + Name name; + + Rom_dataspace_capability ds_cap; +diff --git a/repos/base/src/lib/ldso/include/file.h b/repos/base/src/lib/ldso/include/file.h +index a8875a781e..e06749f7ef 100644 +--- a/repos/base/src/lib/ldso/include/file.h ++++ b/repos/base/src/lib/ldso/include/file.h +@@ -98,7 +98,7 @@ struct Linker::Elf_file : File + Ram_dataspace_capability ram_cap[Phdr::MAX_PHDR]; + bool const loaded; + +- typedef String<64> Name; ++ typedef String<128> Name; + + Rom_dataspace_capability _rom_dataspace(Name const &name) + { +diff --git a/repos/libports/src/lib/libc/internal/types.h b/repos/libports/src/lib/libc/internal/types.h +index 233da10b47..afaee3f8d7 100644 +--- a/repos/libports/src/lib/libc/internal/types.h ++++ b/repos/libports/src/lib/libc/internal/types.h +@@ -23,7 +23,7 @@ namespace Libc { + using namespace Genode; + + typedef Genode::uint64_t uint64_t; +- typedef String<64> Binary_name; ++ typedef String<128> Binary_name; + } + + #endif /* _LIBC__INTERNAL__TYPES_H_ */ +diff --git a/repos/libports/src/lib/libc/kernel.cc b/repos/libports/src/lib/libc/kernel.cc +index 430295e7d5..bdb3c66598 100644 +--- a/repos/libports/src/lib/libc/kernel.cc ++++ b/repos/libports/src/lib/libc/kernel.cc +@@ -300,7 +300,7 @@ void Libc::Kernel::_clone_state_from_parent() + + /* clone RW segment of a shared library or the binary */ + if (node.type() == "rw") { +- typedef String<64> Name; ++ typedef String<128> Name; + Name const name = node.attribute_value("name", Name()); + + /* +diff --git a/repos/os/src/lib/sandbox/child.h b/repos/os/src/lib/sandbox/child.h +index 030ccbd66d..5164d33ba5 100644 +--- a/repos/os/src/lib/sandbox/child.h ++++ b/repos/os/src/lib/sandbox/child.h +@@ -119,7 +119,6 @@ class Sandbox::Child : Child_policy, Routed_service::Wakeup + throw Missing_name_attribute(); + } + +- typedef String<64> Name; + Name const _unique_name { _name_from_xml(_start_node->xml()) }; + + static Binary_name _binary_from_xml(Xml_node start_node, diff --git a/packages/genodelabs/default.nix b/packages/genodelabs/default.nix index e1edfe3..003b27c 100644 --- a/packages/genodelabs/default.nix +++ b/packages/genodelabs/default.nix @@ -26,7 +26,7 @@ let hash = "sha256-5Fd8ywGbDtQF+9yDZ5xAQ7l1Vzh1jQAQeqVj+EtO1us="; }; nativeBuildInputs = [ expect gnumake tcl ]; - patches = [ ./LIB.patch ]; + patches = [ ./LIB.patch ./binary-labels.patch ]; configurePhase = '' patchShebangs ./tool substituteInPlace repos/base/etc/tools.conf \