base, python: Allow dirname selection for the interpreter
authorGiacomo Travaglini <giacomo.travaglini@arm.com>
Mon, 25 Nov 2019 14:03:46 +0000 (14:03 +0000)
committerGiacomo Travaglini <giacomo.travaglini@arm.com>
Wed, 27 Nov 2019 23:30:05 +0000 (23:30 +0000)
commit2a0140593f652f446464be1f0e01e5c1f9069a4b
tree88ce2c3966b70d50a09987fa4ebeb2ed2c6771c9
parent8e493b5fd275cdb15513dc3466ca4b108ab688e2
base, python: Allow dirname selection for the interpreter

This is the second step towards being able to run dynamically linked
applications when the guest ISA != than host ISA.

Once the guest interpreter is loaded to memory, we are able to redirect
shared object loads through the redirectPath interface.
How do we load the guest interpreter?
The elf file is for example asking for the /lib/ld-linux-aarch64.so
interpreter.
That would point to a valid dynamic linker/loader if guest ISA == host
ISA, but if we are running on X86 we should point to the guest
(aarch64 in the example) toolchain wherever it is installed.

This patch is adding the --interp-dir option to point to the parent
folder of the guest /lib in the host fs.

Change-Id: Id27b97c060008d2e847776a49323d45c8809a27f
Signed-off-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/23066
Reviewed-by: Jason Lowe-Power <jason@lowepower.com>
Maintainer: Jason Lowe-Power <jason@lowepower.com>
Tested-by: kokoro <noreply+kokoro@google.com>
configs/common/FileSystemConfig.py
configs/common/Options.py
src/base/loader/elf_object.cc
src/base/loader/elf_object.hh
src/python/m5/core.py
src/python/pybind11/core.cc