The ELF RPATH header (an executable-specific search path for shared libraries) can include the special string $ORIGIN, which should be substituted with the directory in which the binary being loaded resides. On Hurd this is not implemented yet; the filename is not generally available to a newly executed binary.
This series builds on Emilio's file_exec_file_name patches from last year and provides access to this information through a new version of exec_startup_get_info. I'll be posting the libc patches shortly. Emilio Pozuelo Monfort (3): Add a new exec_exec_file_name RPC Add a file_exec_file_name RPC Use the new _hurd_exec_file_name function Jeremie Koenig (1): Make the exec filename available at exec_startup time TODO | 2 +- configure.in | 4 +- doc/hurd.texi | 22 +++++----- exec/exec.c | 88 ++++++++++++++++++++++++++++++++++-- exec/hashexec.c | 50 +++++++++++++++------ exec/priv.h | 5 ++- hurd/exec.defs | 19 +++++++- hurd/exec_startup.defs | 22 +++++++++ hurd/fs.defs | 28 ++++++++++-- hurd/hurd_types.h | 9 ++-- init/init.c | 81 ++++++++++++++++++++++++---------- libdiskfs/boot-start.c | 76 +++++++++++++++++++++++-------- libdiskfs/file-exec.c | 75 ++++++++++++++++++++++++++----- libfshelp/start-translator-long.c | 21 ++++++--- libnetfs/file-exec.c | 67 ++++++++++++++++++++++++---- libtrivfs/file-exec.c | 27 +++++++++++- trans/fakeroot.c | 59 ++++++++++++++++++++++--- utils/fakeauth.c | 9 +++- utils/login.c | 23 +++++++--- utils/rpctrace.c | 6 ++- utils/shd.c | 9 +++- 21 files changed, 566 insertions(+), 136 deletions(-) -- 1.7.5.4