From a7c5417369b16d42c3feb1f0869792771e1f2b0a Mon Sep 17 00:00:00 2001 From: Christian Helmuth Date: Fri, 6 Sep 2013 16:33:29 +0200 Subject: [PATCH] base-linux: ld.lib.so loads dynamic binaries For ARM support on N900, commit 4a9b1c6 changed the process library to start dynamic binaries directly depending on the Linux kernel to comply to the interp section info ("ld.lib.so"). This seems not required on more recent platforms or kernel versions and also introduced challenging corner cases in region handling on Linux. Therefore, this commit restores the original behavior. --- base-linux/src/base/process/process.cc | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/base-linux/src/base/process/process.cc b/base-linux/src/base/process/process.cc index 88d0425bc..06866b380 100644 --- a/base-linux/src/base/process/process.cc +++ b/base-linux/src/base/process/process.cc @@ -70,13 +70,7 @@ Process::Process(Dataspace_capability elf_data_ds_cap, PERR("Dynamically linked file found, but no dynamic linker binary present"); return; } - /* - * Starting the dynamic linker directly may cause it to be loaded at the - * wrong address on ARM-Linux. But since the dynamically linked - * application has a dynamic linker (by default ld.lib.so) defined as its - * interpreter in the ELF image, it's okay to just start the application - * directly on Linux. - */ + elf_data_ds_cap = _dynamic_linker_cap; } /*