mirror of https://gitee.com/openkylin/glibc.git
local-exec_filename
Keep compatibility with experimental implementation Gbp-Pq: Topic hurd-i386 Gbp-Pq: Name local-exec_filename.diff
This commit is contained in:
parent
64c8c1f639
commit
4c3f94c23e
|
@ -32,8 +32,8 @@ user-interfaces := $(addprefix hurd/,\
|
||||||
auth auth_request auth_reply startup \
|
auth auth_request auth_reply startup \
|
||||||
process process_request \
|
process process_request \
|
||||||
msg msg_reply msg_request \
|
msg msg_reply msg_request \
|
||||||
exec exec_startup crash interrupt \
|
exec exec_experimental exec_startup crash interrupt \
|
||||||
fs fsys io io_reply io_request \
|
fs fs_experimental fsys io io_reply io_request \
|
||||||
term tioctl socket ifsock \
|
term tioctl socket ifsock \
|
||||||
login password pfinet pci \
|
login password pfinet pci \
|
||||||
)
|
)
|
||||||
|
|
|
@ -123,6 +123,10 @@ libc {
|
||||||
# functions used in macros & inline functions
|
# functions used in macros & inline functions
|
||||||
__errno_location;
|
__errno_location;
|
||||||
}
|
}
|
||||||
|
GLIBC_2.21 {
|
||||||
|
# "quasi-internal" functions
|
||||||
|
_hurd_exec_file_name;
|
||||||
|
}
|
||||||
GLIBC_2.26 {
|
GLIBC_2.26 {
|
||||||
# "quasi-internal" functions
|
# "quasi-internal" functions
|
||||||
_hurd_exec_paths;
|
_hurd_exec_paths;
|
||||||
|
|
|
@ -25,9 +25,12 @@
|
||||||
#include <hurd/fd.h>
|
#include <hurd/fd.h>
|
||||||
#include <hurd/signal.h>
|
#include <hurd/signal.h>
|
||||||
#include <hurd/id.h>
|
#include <hurd/id.h>
|
||||||
|
#include <hurd/fs_experimental.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <argz.h>
|
#include <argz.h>
|
||||||
|
|
||||||
|
#include <shlib-compat.h>
|
||||||
|
|
||||||
/* Overlay TASK, executing FILE with arguments ARGV and environment ENVP.
|
/* Overlay TASK, executing FILE with arguments ARGV and environment ENVP.
|
||||||
If TASK == mach_task_self (), some ports are dealloc'd by the exec server.
|
If TASK == mach_task_self (), some ports are dealloc'd by the exec server.
|
||||||
ARGV and ENVP are terminated by NULL pointers.
|
ARGV and ENVP are terminated by NULL pointers.
|
||||||
|
@ -39,6 +42,13 @@ _hurd_exec (task_t task, file_t file,
|
||||||
return _hurd_exec_paths (task, file, NULL, NULL, argv, envp);
|
return _hurd_exec_paths (task, file, NULL, NULL, argv, envp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
error_t
|
||||||
|
__hurd_exec_file_name (task_t task, file_t file, const char *filename,
|
||||||
|
char *const argv[], char *const envp[])
|
||||||
|
{
|
||||||
|
return _hurd_exec_paths (task, file, filename, filename, argv, envp);
|
||||||
|
}
|
||||||
|
|
||||||
link_warning (_hurd_exec,
|
link_warning (_hurd_exec,
|
||||||
"_hurd_exec is deprecated, use _hurd_exec_paths instead");
|
"_hurd_exec is deprecated, use _hurd_exec_paths instead");
|
||||||
|
|
||||||
|
@ -392,6 +402,19 @@ _hurd_exec_paths (task_t task, file_t file,
|
||||||
task == __mach_task_self () ? 1 : 0);
|
task == __mach_task_self () ? 1 : 0);
|
||||||
/* Fall back for backwards compatibility. This can just be removed
|
/* Fall back for backwards compatibility. This can just be removed
|
||||||
when __file_exec goes away. */
|
when __file_exec goes away. */
|
||||||
|
if (err == MIG_BAD_ID)
|
||||||
|
err = __file_exec_file_name (file, task, flags,
|
||||||
|
path ? path : "",
|
||||||
|
args, argslen, env, envlen,
|
||||||
|
dtable, MACH_MSG_TYPE_COPY_SEND, dtablesize,
|
||||||
|
ports, MACH_MSG_TYPE_COPY_SEND,
|
||||||
|
_hurd_nports,
|
||||||
|
ints, INIT_INT_MAX,
|
||||||
|
please_dealloc, pdp - please_dealloc,
|
||||||
|
&_hurd_msgport,
|
||||||
|
task == __mach_task_self () ? 1 : 0);
|
||||||
|
/* Fall back for backwards compatibility. This can just be removed
|
||||||
|
when __file_exec goes away. */
|
||||||
if (err == MIG_BAD_ID)
|
if (err == MIG_BAD_ID)
|
||||||
err = __file_exec (file, task, flags,
|
err = __file_exec (file, task, flags,
|
||||||
args, argslen, env, envlen,
|
args, argslen, env, envlen,
|
||||||
|
@ -436,3 +459,9 @@ _hurd_exec_paths (task_t task, file_t file,
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
libc_hidden_def (_hurd_exec_paths)
|
libc_hidden_def (_hurd_exec_paths)
|
||||||
|
extern error_t _hurd_exec_file_name (task_t task,
|
||||||
|
file_t file,
|
||||||
|
const char *filename,
|
||||||
|
char *const argv[],
|
||||||
|
char *const envp[]);
|
||||||
|
versioned_symbol (libc, __hurd_exec_file_name, _hurd_exec_file_name, GLIBC_2_21);
|
||||||
|
|
|
@ -1947,6 +1947,7 @@ GLIBC_2.2.6 xprt_register F
|
||||||
GLIBC_2.2.6 xprt_unregister F
|
GLIBC_2.2.6 xprt_unregister F
|
||||||
GLIBC_2.21 __mach_host_self_ D 0x4
|
GLIBC_2.21 __mach_host_self_ D 0x4
|
||||||
GLIBC_2.21 __pthread_get_cleanup_stack F
|
GLIBC_2.21 __pthread_get_cleanup_stack F
|
||||||
|
GLIBC_2.21 _hurd_exec_file_name F
|
||||||
GLIBC_2.21 mach_print F
|
GLIBC_2.21 mach_print F
|
||||||
GLIBC_2.21 pthread_attr_destroy F
|
GLIBC_2.21 pthread_attr_destroy F
|
||||||
GLIBC_2.21 pthread_attr_getdetachstate F
|
GLIBC_2.21 pthread_attr_getdetachstate F
|
||||||
|
|
|
@ -30,6 +30,7 @@
|
||||||
#include <hurd/id.h>
|
#include <hurd/id.h>
|
||||||
#include <hurd/lookup.h>
|
#include <hurd/lookup.h>
|
||||||
#include <hurd/resource.h>
|
#include <hurd/resource.h>
|
||||||
|
#include <hurd/fs_experimental.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
#include <argz.h>
|
#include <argz.h>
|
||||||
#include "spawn_int.h"
|
#include "spawn_int.h"
|
||||||
|
@ -772,6 +773,18 @@ __spawni (pid_t *pid, const char *file,
|
||||||
ints, INIT_INT_MAX,
|
ints, INIT_INT_MAX,
|
||||||
NULL, 0, NULL, 0);
|
NULL, 0, NULL, 0);
|
||||||
|
|
||||||
|
/* Fallback for backwards compatibility. This can just be removed
|
||||||
|
when __file_exec goes away. */
|
||||||
|
if (err == MIG_BAD_ID)
|
||||||
|
err = __file_exec_file_name
|
||||||
|
(file, task,
|
||||||
|
__sigismember (&_hurdsig_traced, SIGKILL) ? EXEC_SIGTRAP : 0,
|
||||||
|
relpath, args, argslen, env, envlen,
|
||||||
|
dtable, MACH_MSG_TYPE_COPY_SEND, dtablesize,
|
||||||
|
ports, MACH_MSG_TYPE_COPY_SEND, _hurd_nports,
|
||||||
|
ints, INIT_INT_MAX,
|
||||||
|
NULL, 0, NULL, 0);
|
||||||
|
|
||||||
/* Fallback for backwards compatibility. This can just be removed
|
/* Fallback for backwards compatibility. This can just be removed
|
||||||
when __file_exec goes away. */
|
when __file_exec goes away. */
|
||||||
if (err == MIG_BAD_ID)
|
if (err == MIG_BAD_ID)
|
||||||
|
|
Loading…
Reference in New Issue