From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 2058) id A20053840C2F; Mon, 7 Sep 2020 15:10:49 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A20053840C2F MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset="utf-8" From: Alexandra Hajkova To: glibc-cvs@sourceware.org Subject: [glibc/sasha/execveat] Linux: Add execveat system call wrapper X-Act-Checkin: glibc X-Git-Author: =?utf-8?q?Alexandra_H=C3=A1jkov=C3=A1?= X-Git-Refname: refs/heads/sasha/execveat X-Git-Oldrev: 721a853415e358ba887c9fc693899cb648ca79f3 X-Git-Newrev: 81078a3ea06956b6afc8f6c96355f73b99827851 Message-Id: <20200907151049.A20053840C2F@sourceware.org> Date: Mon, 7 Sep 2020 15:10:49 +0000 (GMT) X-BeenThere: glibc-cvs@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Glibc-cvs mailing list List-Unsubscribe: , List-Archive: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 07 Sep 2020 15:10:49 -0000 https://sourceware.org/git/gitweb.cgi?p=glibc.git;h=81078a3ea06956b6afc8f6c96355f73b99827851 commit 81078a3ea06956b6afc8f6c96355f73b99827851 Author: Alexandra Hájková Date: Mon Apr 27 10:52:38 2020 -0400 Linux: Add execveat system call wrapper Diff: --- posix/Makefile | 5 +- posix/Versions | 3 + posix/execveat.c | 40 ++++++ posix/tst-execveat.c | 140 +++++++++++++++++++++ posix/unistd.h | 5 + sysdeps/mach/hurd/i386/libc.abilist | 1 + sysdeps/unix/sysv/linux/Makefile | 2 +- sysdeps/unix/sysv/linux/aarch64/libc.abilist | 1 + sysdeps/unix/sysv/linux/alpha/libc.abilist | 1 + sysdeps/unix/sysv/linux/arm/be/libc.abilist | 1 + sysdeps/unix/sysv/linux/arm/le/libc.abilist | 1 + sysdeps/unix/sysv/linux/csky/libc.abilist | 1 + sysdeps/unix/sysv/linux/execveat.c | 79 ++++++++++++ sysdeps/unix/sysv/linux/hppa/libc.abilist | 1 + sysdeps/unix/sysv/linux/i386/libc.abilist | 1 + sysdeps/unix/sysv/linux/ia64/libc.abilist | 1 + sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist | 1 + sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist | 1 + sysdeps/unix/sysv/linux/microblaze/be/libc.abilist | 1 + sysdeps/unix/sysv/linux/microblaze/le/libc.abilist | 1 + .../unix/sysv/linux/mips/mips32/fpu/libc.abilist | 1 + .../unix/sysv/linux/mips/mips32/nofpu/libc.abilist | 1 + .../unix/sysv/linux/mips/mips64/n32/libc.abilist | 1 + .../unix/sysv/linux/mips/mips64/n64/libc.abilist | 1 + sysdeps/unix/sysv/linux/nios2/libc.abilist | 1 + .../sysv/linux/powerpc/powerpc32/fpu/libc.abilist | 1 + .../linux/powerpc/powerpc32/nofpu/libc.abilist | 1 + .../sysv/linux/powerpc/powerpc64/be/libc.abilist | 1 + .../sysv/linux/powerpc/powerpc64/le/libc.abilist | 1 + sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist | 1 + sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist | 1 + sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist | 1 + sysdeps/unix/sysv/linux/sh/be/libc.abilist | 1 + sysdeps/unix/sysv/linux/sh/le/libc.abilist | 1 + sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist | 1 + sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist | 1 + sysdeps/unix/sysv/linux/x86_64/64/libc.abilist | 1 + sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist | 1 + 38 files changed, 302 insertions(+), 3 deletions(-) diff --git a/posix/Makefile b/posix/Makefile index 605ddbade8..2e96d7e4a1 100644 --- a/posix/Makefile +++ b/posix/Makefile @@ -65,7 +65,8 @@ routines := \ spawnattr_setsigmask spawnattr_setschedpolicy spawnattr_setschedparam \ posix_madvise \ get_child_max sched_cpucount sched_cpualloc sched_cpufree \ - streams-compat + streams-compat \ + execveat aux := init-posix environ tests := test-errno tstgetopt testfnm runtests runptests \ @@ -102,7 +103,7 @@ tests := test-errno tstgetopt testfnm runtests runptests \ tst-sysconf-empty-chroot tst-glob_symlinks tst-fexecve \ tst-glob-tilde test-ssize-max tst-spawn4 bug-regex37 \ bug-regex38 tst-regcomp-truncated tst-spawn-chdir \ - tst-wordexp-nocmd + tst-wordexp-nocmd tst-execveat tests-internal := bug-regex5 bug-regex20 bug-regex33 \ tst-rfc3484 tst-rfc3484-2 tst-rfc3484-3 \ tst-glob_lstat_compat tst-spawn4-compat diff --git a/posix/Versions b/posix/Versions index 7d06a6d0c0..8a50a2b617 100644 --- a/posix/Versions +++ b/posix/Versions @@ -147,6 +147,9 @@ libc { } GLIBC_2.30 { } + GLIBC_2.32 { + execveat; + } GLIBC_PRIVATE { __libc_fork; __libc_pread; __libc_pwrite; __nanosleep_nocancel; __pause_nocancel; diff --git a/posix/execveat.c b/posix/execveat.c new file mode 100644 index 0000000000..cab61952b3 --- /dev/null +++ b/posix/execveat.c @@ -0,0 +1,40 @@ +/* Copyright (C) 1991-2020 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#include +#include +#include + +/* Replace the current process, executing PATH relative to DIFRD with + * arguments ARGV and environment ENVP. + * ARGV and ENVP are terminated by NULL pointers. */ +int +__execveat (int dirfd, const char *path, char *const argv[], char *const envp[], + int flags) +{ + if (difrd < 0 || path == NULL || argv == NULL || envp == NULL) + { + __set_errno (EINVAL); + return -1; + } + + __set_errno (ENOSYS); + return -1; +} +stub_warning (execveat) + +weak_alias (__execveat, execveat) diff --git a/posix/tst-execveat.c b/posix/tst-execveat.c new file mode 100644 index 0000000000..c95a01cfe6 --- /dev/null +++ b/posix/tst-execveat.c @@ -0,0 +1,140 @@ +/* Copyright (C) 2017-2020 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +int +call_execveat (int fd, const char *pathname, int flags, DIR * dirp, + int expected_fail) +{ + char *argv[] = { (char *) "sh", (char *) "-c", (char *) "exit 3", NULL }; + char *envp[] = { (char *) "FOO=BAR", NULL }; + pid_t pid; + int status; + + pid = xfork (); + if (pid == 0) + { + execveat (fd, pathname, argv, envp, 0); + + TEST_COMPARE (execveat (fd, "sh", argv, envp, 0), -1); + if (errno == ENOSYS) + FAIL_UNSUPPORTED ("execveat is unimplemented"); + else if (errno == expected_fail) + { + if (test_verbose > 0) + printf ("expected fail: errno %d\n", errno); + _exit(0); + } + else + FAIL_EXIT1 ("execveat failed, errno %d", errno); + } + xwaitpid (pid, &status, 0); + + if (WIFEXITED (status)) + if (expected_fail) + TEST_COMPARE (WEXITSTATUS (status), 0); + else + TEST_COMPARE (WEXITSTATUS (status), 3); + else if (!expected_fail) + FAIL_EXIT1 ("execveat failed"); + return 0; +} + +static int +do_test (void) +{ + DIR *dirp; + int fd; + + dirp = opendir ("/bin"); + if (dirp == NULL) + FAIL_EXIT1 ("failed to open /bin"); + fd = dirfd (dirp); + + /* Call execveat for various fd/pathname combinations */ + + /* fd: valid dir, pathname: relative, flags:: 0 */ + call_execveat (fd, "sh", 0, dirp, 0); + /* fd: valid dir, pathname: relative, flags: O_PATH */ + call_execveat (fd, "sh", O_PATH, dirp, 0); + /* fd: AT_FDCWD, pathname: relative, flags: 0 + If pathname is relative and dirfd is the special value AT_FDCWD, then + pathname is interpreted relative to the current working directory of + the calling process */ + chdir("/bin"); + call_execveat (AT_FDCWD, "sh", 0, dirp, 0); + xclose (fd); + closedir (dirp); + + dirp = opendir ("/usr"); + fd = dirfd (dirp); + chdir ("/etc"); + /* fd: AT_FDCWD, pathname: absolute in different dir, flags: 0 */ + call_execveat (AT_FDCWD, "/bin/sh", 0, dirp, 0); //fails wih ENOENT (2) + + /* fd: valid dir, pathname: absolute in differen dir, flags: 0 */ +// call_execveat (fd, "/bin/sh", 0, dirp, 0); //fails wih ENOENT (2) + /* fd: valid dir, pathname: absolute, flags: O_PATH */ +// call_execveat (fd, "/bin/sh", O_PATH, dirp, 0); + xclose (fd); + closedir (dirp); + + fd = xopen ("/bin/sh", 0, 0); + /* fd: regular file, pathname: relative, flags: 0 */ +// call_execveat(fd, "sh", 0, NULL, 0); // fails with ENOTDIR (20) + /* fd: regular file, pathname: absolute, flags: 0 */ + call_execveat (fd, "/bin/sh", 0, NULL, 0); + xclose (fd); + + fd = xopen ("/bin/sh", O_PATH, 0); + /* fd: O_PATH of regular file, pathname: empty, flags: 0 */ + call_execveat (fd, "", 0, NULL, ENOTDIR); + /* fd: O_PATH of regular file, pathname: empty, flags: AT_EMPTY_PATH */ +// call_execveat (fd, "", AT_EMPTY_PATH, NULL, 0); // fails with ENOTDIR (20) + /* fd: O_PATH of regular file, pathname: empty, + * flags: AT_EMPTY_PATH AT_SYMLINK_NOFOLLOW */ + // call_execveat (fd, "", AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW, NULL, 0); //fails with ENOTDIR + xclose (fd); + + fd = xopen ("/bin/sh", O_NOFOLLOW | O_PATH, 0); + /* fd: O_PATH of symbolic link, pathname: empty, flags: */ +// call_execveat(fd, "", 0, NULL, 1); //fails with errno ENOTDIR + /* fd: O_PATH of symbolic link, pathname: empty, flags: */ +// call_execveat (fd, "", AT_EMPTY_PATH, NULL, 0); //fails with errno ENOTDIR + /* fd: O_PATH of symbolic link, pathname: empty, + * flags: AT_EMPTY_PATH AT_SYMLINK_NOFOLLOW */ + call_execveat (fd, "", AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW, NULL, ENOTDIR); + xclose (fd); + + /* Call execveat with closed fd, we expect this to fail with EBADF */ + call_execveat (fd, "sh", 0, NULL, EBADF); + call_execveat (fd, "/bin/sh", 0, NULL, 0); + + return 0; +} + +#include diff --git a/posix/unistd.h b/posix/unistd.h index 32b8161619..b1117f2eda 100644 --- a/posix/unistd.h +++ b/posix/unistd.h @@ -295,6 +295,11 @@ extern int euidaccess (const char *__name, int __type) /* An alias for `euidaccess', used by some other systems. */ extern int eaccess (const char *__name, int __type) __THROW __nonnull ((1)); + +/* Execute program relative to a directory file descriptor. */ +extern int execveat (int __fd, const char *__path, char *const __argv[], + char *const __envp[], int __flags) + __THROW __nonnull ((2, 3)); #endif #ifdef __USE_ATFILE diff --git a/sysdeps/mach/hurd/i386/libc.abilist b/sysdeps/mach/hurd/i386/libc.abilist index 72537218ba..3ef54af98c 100644 --- a/sysdeps/mach/hurd/i386/libc.abilist +++ b/sysdeps/mach/hurd/i386/libc.abilist @@ -2181,6 +2181,7 @@ GLIBC_2.3.4 xdr_quad_t F GLIBC_2.3.4 xdr_u_quad_t F GLIBC_2.30 twalk_r F GLIBC_2.32 __libc_single_threaded D 0x1 +GLIBC_2.32 execveat F GLIBC_2.32 mach_print F GLIBC_2.32 mremap F GLIBC_2.32 sigabbrev_np F diff --git a/sysdeps/unix/sysv/linux/Makefile b/sysdeps/unix/sysv/linux/Makefile index 5079f33655..889c8e9576 100644 --- a/sysdeps/unix/sysv/linux/Makefile +++ b/sysdeps/unix/sysv/linux/Makefile @@ -233,7 +233,7 @@ endif ifeq ($(subdir),posix) sysdep_headers += bits/initspin.h -sysdep_routines += sched_getcpu oldglob getcpu +sysdep_routines += sched_getcpu oldglob getcpu execveat tests += tst-affinity tst-affinity-pid diff --git a/sysdeps/unix/sysv/linux/aarch64/libc.abilist b/sysdeps/unix/sysv/linux/aarch64/libc.abilist index 6cd61988b4..1c3e937ef0 100644 --- a/sysdeps/unix/sysv/linux/aarch64/libc.abilist +++ b/sysdeps/unix/sysv/linux/aarch64/libc.abilist @@ -2155,6 +2155,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/alpha/libc.abilist b/sysdeps/unix/sysv/linux/alpha/libc.abilist index 8edb5deea1..f7c8c9fe46 100644 --- a/sysdeps/unix/sysv/linux/alpha/libc.abilist +++ b/sysdeps/unix/sysv/linux/alpha/libc.abilist @@ -2237,6 +2237,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/arm/be/libc.abilist b/sysdeps/unix/sysv/linux/arm/be/libc.abilist index 7f4a146d22..e0e2a9feef 100644 --- a/sysdeps/unix/sysv/linux/arm/be/libc.abilist +++ b/sysdeps/unix/sysv/linux/arm/be/libc.abilist @@ -139,6 +139,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/arm/le/libc.abilist b/sysdeps/unix/sysv/linux/arm/le/libc.abilist index a83cc81958..95785be85c 100644 --- a/sysdeps/unix/sysv/linux/arm/le/libc.abilist +++ b/sysdeps/unix/sysv/linux/arm/le/libc.abilist @@ -136,6 +136,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/csky/libc.abilist b/sysdeps/unix/sysv/linux/csky/libc.abilist index 32887b1c58..69db05ef00 100644 --- a/sysdeps/unix/sysv/linux/csky/libc.abilist +++ b/sysdeps/unix/sysv/linux/csky/libc.abilist @@ -2099,6 +2099,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/execveat.c b/sysdeps/unix/sysv/linux/execveat.c new file mode 100644 index 0000000000..62f3f0514e --- /dev/null +++ b/sysdeps/unix/sysv/linux/execveat.c @@ -0,0 +1,79 @@ +/* Copyright (C) 1994-2020 Free Software Foundation, Inc. + This file is part of the GNU C Library. + + The GNU C Library is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2.1 of the License, or (at your option) any later version. + + The GNU C Library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with the GNU C Library; if not, see + . */ + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +/* Execute the file FD refers to, overlaying the running program image. + ARGV and ENVP are passed to the new program, as for `execve'. */ +int +execveat (int dirfd, const char *path, char *const argv[], char *const envp[], + int flags) +{ + /* Avoid implicit array coercion in syscall macros. */ + INLINE_SYSCALL_CALL (execveat, dirfd, path, &argv[0], &envp[0], flags); +#ifndef __ASSUME_EXECVEAT + if (errno != ENOSYS) + return -1; + + if ((flags & ~(AT_EMPTY_PATH | AT_SYMLINK_NOFOLLOW)) != 0) + return EINVAL; + + int fd; + if (path[0] == '\0' && (flags & AT_EMPTY_PATH) && dirfd >= 0) + fd = dirfd; + else + { + int oflags = O_CLOEXEC; + if (flags & AT_SYMLINK_NOFOLLOW) + oflags |= O_NOFOLLOW; + fd = openat (dirfd, path, oflags); + } + if (fd < 0) + return -1; + + struct fd_to_filename fdfilename; + const char *gfilename = __fd_to_filename (fd, &fdfilename); + + /* We do not need the return value. */ + __execve (gfilename, argv, envp); + + int save = errno; + + /* We come here only if the 'execve' call fails. Determine whether + /proc is mounted. If not we return ENOSYS. */ + struct stat st; + if (stat ("/proc/self/fd", &st) != 0 && errno == ENOENT) + save = ENOSYS; + + if (fd != dirfd) + __close_nocancel (fd); + __set_errno (save); +#endif + + return -1; +} diff --git a/sysdeps/unix/sysv/linux/hppa/libc.abilist b/sysdeps/unix/sysv/linux/hppa/libc.abilist index baf425072b..e8c2d3d9a9 100644 --- a/sysdeps/unix/sysv/linux/hppa/libc.abilist +++ b/sysdeps/unix/sysv/linux/hppa/libc.abilist @@ -2058,6 +2058,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/i386/libc.abilist b/sysdeps/unix/sysv/linux/i386/libc.abilist index 8b0242a9b1..fe5ee285d5 100644 --- a/sysdeps/unix/sysv/linux/i386/libc.abilist +++ b/sysdeps/unix/sysv/linux/i386/libc.abilist @@ -2224,6 +2224,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/ia64/libc.abilist b/sysdeps/unix/sysv/linux/ia64/libc.abilist index b6ba86dbe9..4700db072b 100644 --- a/sysdeps/unix/sysv/linux/ia64/libc.abilist +++ b/sysdeps/unix/sysv/linux/ia64/libc.abilist @@ -2090,6 +2090,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist index e1f7e19de9..d5e2f01c42 100644 --- a/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist @@ -140,6 +140,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist index 2d726097ca..e57ceb352a 100644 --- a/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist +++ b/sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist @@ -2170,6 +2170,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist index 7c78649e03..4d62b5275b 100644 --- a/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/be/libc.abilist @@ -2150,6 +2150,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist index da2194b498..74f90d351f 100644 --- a/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist +++ b/sysdeps/unix/sysv/linux/microblaze/le/libc.abilist @@ -2147,6 +2147,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist index 9fa655b3a5..6abb53d150 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist @@ -2141,6 +2141,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist index 3f6da71769..1dd375d8aa 100644 --- a/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist @@ -2139,6 +2139,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist index de990933cf..a14d143e93 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist @@ -2147,6 +2147,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist index 754491f209..0f33c153d3 100644 --- a/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist +++ b/sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist @@ -2141,6 +2141,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/nios2/libc.abilist b/sysdeps/unix/sysv/linux/nios2/libc.abilist index 36a875115c..1940513e01 100644 --- a/sysdeps/unix/sysv/linux/nios2/libc.abilist +++ b/sysdeps/unix/sysv/linux/nios2/libc.abilist @@ -2188,6 +2188,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist index 6de9bed51d..0cf4438e56 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist @@ -2197,6 +2197,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist index 5c8c58974c..a545549cfa 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist @@ -2230,6 +2230,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist index 92114806ac..fc35572358 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist @@ -2060,6 +2060,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist index b01fdcfae1..cafdd74065 100644 --- a/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist +++ b/sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist @@ -2350,6 +2350,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist index 45cbeb1d98..0e874bbcd1 100644 --- a/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist +++ b/sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist @@ -2117,6 +2117,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist index d0752dba6c..1ca91ad322 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist @@ -2195,6 +2195,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist index af5f14d1c6..083a3b31cd 100644 --- a/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist +++ b/sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist @@ -2096,6 +2096,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/sh/be/libc.abilist b/sysdeps/unix/sysv/linux/sh/be/libc.abilist index 038ce27174..40fa763bfc 100644 --- a/sysdeps/unix/sysv/linux/sh/be/libc.abilist +++ b/sysdeps/unix/sysv/linux/sh/be/libc.abilist @@ -2065,6 +2065,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/sh/le/libc.abilist b/sysdeps/unix/sysv/linux/sh/le/libc.abilist index 182970a708..5a9f2a2308 100644 --- a/sysdeps/unix/sysv/linux/sh/le/libc.abilist +++ b/sysdeps/unix/sysv/linux/sh/le/libc.abilist @@ -2062,6 +2062,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist index a2521c3ee3..1e9d86b531 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist @@ -2186,6 +2186,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist index d8188903f9..91c35348c1 100644 --- a/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist +++ b/sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist @@ -2113,6 +2113,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist index 1a96103c68..aa0eee41de 100644 --- a/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/64/libc.abilist @@ -2071,6 +2071,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F diff --git a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist index 35745a75b6..694326c111 100644 --- a/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist +++ b/sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist @@ -2168,6 +2168,7 @@ GLIBC_2.32 pthread_attr_setaffinity_np F GLIBC_2.32 pthread_attr_setsigmask_np F GLIBC_2.32 pthread_getaffinity_np F GLIBC_2.32 pthread_getattr_np F +GLIBC_2.32 execveat F GLIBC_2.32 pthread_sigmask F GLIBC_2.32 sigabbrev_np F GLIBC_2.32 sigdescr_np F