aboutsummaryrefslogtreecommitdiff
path: root/hurd/hurd.h
diff options
context:
space:
mode:
authorSamuel Thibault <samuel.thibault@ens-lyon.org>2018-01-09 01:36:58 +0100
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2018-01-09 01:37:34 +0100
commit311ba8dc4416467947eff2ab327854f124226309 (patch)
treead9a00d6a87de80ddc241b60b2d52aad971fa10e /hurd/hurd.h
parentd7ff3f11b64a28273285d341f795217bbf18ac9c (diff)
downloadglibc-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.h13
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