diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2018-01-09 01:36:58 +0100 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2018-01-09 01:37:34 +0100 |
commit | 311ba8dc4416467947eff2ab327854f124226309 (patch) | |
tree | ad9a00d6a87de80ddc241b60b2d52aad971fa10e /hurd/hurd.h | |
parent | d7ff3f11b64a28273285d341f795217bbf18ac9c (diff) | |
download | glibc-311ba8dc4416467947eff2ab327854f124226309.zip glibc-311ba8dc4416467947eff2ab327854f124226309.tar.gz glibc-311ba8dc4416467947eff2ab327854f124226309.tar.bz2 |
hurd: Use the new file_exec_paths RPC
From: Emilio Pozuelo Monfort <pochu27@gmail.com>
From: Svante Signell <svante.signell@gmail.com>
Pass the file paths of executable to the exec server, both relative and
absolute, which exec needs to properly execute and avertise #!-scripts.
Previously, the exec server tried to guess the name from argv[0] but argv[0]
only contains the executable name by convention.
* hurd/hurdexec.c (_hurd_exec): Deprecate function.
(_hurd_exec_paths): New function.
* hurd/hurd.h (_hurd_exec): Deprecate function.
(_hurd_exec_paths): Declare function.
* hurd/Versions: Export _hurd_exec_paths.
* sysdeps/mach/hurd/execve.c: Include <stdlib.h> and <stdio.h>
(__execve): Use __getcwd to build absolute path, and use
_hurd_exec_paths instead of _hurd_exec.
* sysdeps/mach/hurd/spawni.c: Likewise.
* sysdeps/mach/hurd/fexecve.c: Use _hurd_exec_paths instead of
_hurd_exec.
Diffstat (limited to 'hurd/hurd.h')
-rw-r--r-- | hurd/hurd.h | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/hurd/hurd.h b/hurd/hurd.h index a3d534a..7cf23b5 100644 --- a/hurd/hurd.h +++ b/hurd/hurd.h @@ -240,12 +240,21 @@ extern FILE *fopenport (io_t port, const char *mode); extern FILE *__fopenport (io_t port, const char *mode); -/* Execute a file, replacing TASK's current program image. */ +/* Deprecated: use _hurd_exec_paths instead. */ extern error_t _hurd_exec (task_t task, file_t file, char *const argv[], - char *const envp[]); + char *const envp[]) __attribute_deprecated__; + +/* Execute a file, replacing TASK's current program image. */ + +extern error_t _hurd_exec_paths (task_t task, + file_t file, + const char *path, + const char *abspath, + char *const argv[], + char *const envp[]); /* Inform the proc server we have exited with STATUS, and kill the |