Fix execve mapping of special libraries
This commit is contained in:
parent
fbf4a9c26c
commit
bf7c80502e
|
@ -1,11 +1,11 @@
|
|||
commit f7b706b179c6faff24b94b1f89153568146d398f
|
||||
commit 2db637f21b83701d21aa66295cd35c737649ecdc
|
||||
Author: Emery Hemingway <ehmry@posteo.net>
|
||||
Date: Tue May 5 21:39:21 2020 +0530
|
||||
|
||||
Produce libraries with conventional names
|
||||
|
||||
diff --git a/repos/base/mk/dep_lib.mk b/repos/base/mk/dep_lib.mk
|
||||
index b3c980c906..385318bd46 100644
|
||||
index 21fcb77e58..533aebffa3 100644
|
||||
--- a/repos/base/mk/dep_lib.mk
|
||||
+++ b/repos/base/mk/dep_lib.mk
|
||||
@@ -142,8 +142,8 @@ endif
|
||||
|
@ -67,7 +67,7 @@ index d551ac205b..e23fade62f 100644
|
|||
- $(VERBOSE)ln -sf $(call select_so,$@) $@
|
||||
+ $(VERBOSE)ln -sf $(call select_so,$@) $(patsubst liblib%,lib%,$@)
|
||||
diff --git a/repos/base/mk/lib.mk b/repos/base/mk/lib.mk
|
||||
index c482457af6..7abae9ecdc 100644
|
||||
index bfee2c7420..fac49c7298 100644
|
||||
--- a/repos/base/mk/lib.mk
|
||||
+++ b/repos/base/mk/lib.mk
|
||||
@@ -123,14 +123,20 @@ message:
|
||||
|
@ -102,7 +102,7 @@ index c482457af6..7abae9ecdc 100644
|
|||
#
|
||||
LIB_TAG := $(addsuffix .lib.tag,$(LIB))
|
||||
all: $(LIB_TAG)
|
||||
@@ -202,7 +208,7 @@ STATIC_LIBS := $(sort $(foreach l,$(ARCHIVES:.lib.a=),$(LIB_CACHE_DIR)/$l/
|
||||
@@ -203,7 +209,7 @@ STATIC_LIBS := $(sort $(foreach l,$(ARCHIVES:.lib.a=),$(LIB_CACHE_DIR)/$l/
|
||||
STATIC_LIBS_BRIEF := $(subst $(LIB_CACHE_DIR),$$libs,$(STATIC_LIBS))
|
||||
|
||||
#
|
||||
|
@ -123,6 +123,63 @@ index 04caae01b2..8d64b0d34e 100644
|
|||
+ $(VERBOSE)$(RM) -f *.d *.i *.ii *.s *.ali *.lib.so lib*.so
|
||||
|
||||
clean: clean_prg_objects
|
||||
diff --git a/repos/base/src/lib/ldso/include/file.h b/repos/base/src/lib/ldso/include/file.h
|
||||
index 1c9ce53ca3..a8875a781e 100644
|
||||
--- a/repos/base/src/lib/ldso/include/file.h
|
||||
+++ b/repos/base/src/lib/ldso/include/file.h
|
||||
@@ -132,10 +132,10 @@ struct Linker::Elf_file : File
|
||||
* the end of the linker area to ensure that the newly loaded
|
||||
* binary has enough room within the linker area.
|
||||
*/
|
||||
- bool const resident = (name == "libc.lib.so")
|
||||
- || (name == "libm.lib.so")
|
||||
- || (name == "posix.lib.so")
|
||||
- || (strcmp(name.string(), "vfs", 3) == 0);
|
||||
+ bool const resident = (name == "libc.so")
|
||||
+ || (name == "libm.so")
|
||||
+ || (name == "libposix.so")
|
||||
+ || (strcmp(name.string(), "libvfs", 6) == 0);
|
||||
|
||||
reloc_base = resident ? Region_map::r()->alloc_region_at_end(size)
|
||||
: Region_map::r()->alloc_region(size);
|
||||
diff --git a/repos/libports/src/lib/libc/execve.cc b/repos/libports/src/lib/libc/execve.cc
|
||||
index 73fd407db7..554d943763 100644
|
||||
--- a/repos/libports/src/lib/libc/execve.cc
|
||||
+++ b/repos/libports/src/lib/libc/execve.cc
|
||||
@@ -325,10 +325,10 @@ void Libc::init_execve(Env &env, Genode::Allocator &alloc, void *user_stack_ptr,
|
||||
_binary_name_ptr = &binary_name;
|
||||
_fd_alloc_ptr = &fd_alloc;
|
||||
|
||||
- Dynamic_linker::keep(env, "libc.lib.so");
|
||||
- Dynamic_linker::keep(env, "libm.lib.so");
|
||||
- Dynamic_linker::keep(env, "posix.lib.so");
|
||||
- Dynamic_linker::keep(env, "vfs.lib.so");
|
||||
+ Dynamic_linker::keep(env, "libc.so");
|
||||
+ Dynamic_linker::keep(env, "libm.so");
|
||||
+ Dynamic_linker::keep(env, "libposix.so");
|
||||
+ Dynamic_linker::keep(env, "libvfs.so");
|
||||
}
|
||||
|
||||
|
||||
diff --git a/repos/libports/src/lib/libc/kernel.cc b/repos/libports/src/lib/libc/kernel.cc
|
||||
index 5dd4b2a2d6..430295e7d5 100644
|
||||
--- a/repos/libports/src/lib/libc/kernel.cc
|
||||
+++ b/repos/libports/src/lib/libc/kernel.cc
|
||||
@@ -308,10 +308,10 @@ void Libc::Kernel::_clone_state_from_parent()
|
||||
* regular startup of the child.
|
||||
*/
|
||||
bool const blacklisted = (name == "ld.lib.so")
|
||||
- || (name == "libc.lib.so")
|
||||
- || (name == "libm.lib.so")
|
||||
- || (name == "posix.lib.so")
|
||||
- || (strcmp(name.string(), "vfs", 3) == 0);
|
||||
+ || (name == "libc.so")
|
||||
+ || (name == "libm.so")
|
||||
+ || (name == "libposix.so")
|
||||
+ || (strcmp(name.string(), "libvfs", 6) == 0);
|
||||
if (!blacklisted)
|
||||
copy_from_parent(range_attr(node));
|
||||
}
|
||||
diff --git a/repos/os/src/lib/vfs/file_system_factory.cc b/repos/os/src/lib/vfs/file_system_factory.cc
|
||||
index 48069d3fb8..53e8678757 100644
|
||||
--- a/repos/os/src/lib/vfs/file_system_factory.cc
|
||||
|
|
Loading…
Reference in New Issue