glibc/sysdeps/unix/sysv/linux
Joseph Myers d82468d100 Fix fexecve build where syscall macros call sizeof.
The recent fexecve changes broke the build on (at least) alpha (maybe
other configurations, that was the first breakage I saw in my
build-many-glibcs.py run):

In file included from ../sysdeps/unix/sysv/linux/alpha/sysdep.h:29:0,
                 from ../sysdeps/alpha/nptl/tls.h:31,
                 from ../include/errno.h:25,
                 from ../sysdeps/unix/sysv/linux/fexecve.c:18:
../sysdeps/unix/sysv/linux/fexecve.c: In function 'fexecve':
../sysdeps/unix/alpha/sysdep.h:203:10: error: 'sizeof' on array function parameter 'argv' will return size of 'char * const*' [-Werror=sizeof-array-argument]
   (sizeof(arg) == 4 ? (long)(int)(long)(arg) : (long)(arg))
          ^
../sysdeps/unix/alpha/sysdep.h:302:26: note: in expansion of macro 'syscall_promote'
  register long _tmp_18 = syscall_promote (arg3);  \
                          ^~~~~~~~~~~~~~~
../sysdeps/unix/alpha/sysdep.h:173:2: note: in expansion of macro 'inline_syscall5'
  inline_syscall##nr(__NR_##name, args); \
  ^~~~~~~~~~~~~~
../sysdeps/unix/sysv/linux/alpha/sysdep.h:85:2: note: in expansion of macro 'INLINE_SYSCALL1'
  INLINE_SYSCALL1(name, nr, args);    \
  ^~~~~~~~~~~~~~~
../sysdeps/unix/sysv/linux/fexecve.c:42:3: note: in expansion of macro 'INLINE_SYSCALL'
   INLINE_SYSCALL (execveat, 5, fd, "", argv, envp, AT_EMPTY_PATH);
   ^~~~~~~~~~~~~~
../sysdeps/unix/sysv/linux/fexecve.c:33:30: note: declared here
 fexecve (int fd, char *const argv[], char *const envp[])
                              ^~~~

This patch fixes this similarly to previous fixes for such issues: use
&argv[0] and &envp[0] as the syscall macro arguments.  Tested
(compilation only) for alpha-linux-gnu with build-many-glibcs.py.

	* sysdeps/unix/sysv/linux/fexecve.c (fexecve) [__NR_execveat]:
	Explicitly take address of first element of array arguments in
	call to INLINE_SYSCALL.
2017-09-19 15:50:38 +00:00
..
aarch64 Add thunderx2t99 and thunderx2t99p1 CPU names to tunables list 2017-09-08 11:02:09 -07:00
alpha Use execveat syscall in fexecve (bug 22134) 2017-09-19 16:19:14 +02:00
arm posix: Consolidate Linux glob implementation 2017-09-08 16:34:02 +02:00
bits Add Linux 4.13 constants to bits/fcntl-linux.h. 2017-09-08 16:20:23 +00:00
generic Hide __chmod and __mkdir [BZ #18822] 2017-09-04 13:38:51 -07:00
hppa Use execveat syscall in fexecve (bug 22134) 2017-09-19 16:19:14 +02:00
i386 posix: Consolidate Linux glob implementation 2017-09-08 16:34:02 +02:00
ia64 Remove NO_CANCELLATION macro 2017-08-31 16:10:34 -03:00
include Add shim header for bits/syscall.h. 2017-06-01 10:56:10 -04:00
m68k posix: Consolidate Linux glob implementation 2017-09-08 16:34:02 +02:00
microblaze Use execveat syscall in fexecve (bug 22134) 2017-09-19 16:19:14 +02:00
mips posix: Consolidate Linux glob implementation 2017-09-08 16:34:02 +02:00
net
netash
netatalk
netax25
neteconet
netinet
netipx
netiucv
netpacket
netrom
netrose
nfs
nios2 Remove NO_CANCELLATION macro 2017-08-31 16:10:34 -03:00
powerpc posix: Consolidate Linux glob implementation 2017-09-08 16:34:02 +02:00
s390 posix: Fix compat glob code on s390 and alpha 2017-09-13 09:24:12 -03:00
scsi
sh Remove NO_CANCELLATION macro 2017-08-31 16:10:34 -03:00
sparc posix: Consolidate Linux glob implementation 2017-09-08 16:34:02 +02:00
sys sys/ptrace.h: remove obsolete Linux PTRACE_SEIZE_DEVEL constant [BZ #21928] 2017-08-09 22:58:45 +00:00
tile Remove NO_CANCELLATION macro 2017-08-31 16:10:34 -03:00
wordsize-64 posix: Consolidate Linux glob implementation 2017-09-08 16:34:02 +02:00
x86 Fix mcontext_t sigcontext namespace (bug 21457). 2017-08-30 22:02:04 +00:00
x86_64 posix: Consolidate Linux glob implementation 2017-09-08 16:34:02 +02:00
Implies
Makefile posix: Sync glob with gnulib [BZ #1062] 2017-09-08 09:39:13 +02:00
Versions Consolidate non cancellable close call 2017-08-18 18:38:55 -03:00
_G_config.h Remove __need macros from stdio.h and wchar.h. 2017-06-08 13:58:17 -04:00
_exit.c
a.out.h
accept.c
accept4.c Simplify accept4, recvmmsg, sendmmsg code. 2017-05-09 21:59:36 +00:00
access.c tunables: Use direct syscall for access (BZ#21744) 2017-07-24 11:21:07 -03:00
adjtime.c
aio_misc.h
aio_sigqueue.c aio: Remove internal_function function attribute 2017-08-31 15:59:06 +02:00
arch-fork.h
bind.c
check_native.c Consolidate non cancellable close call 2017-08-18 18:38:55 -03:00
check_pf.c Consolidate non cancellable close call 2017-08-18 18:38:55 -03:00
clock.c
clock_getcpuclockid.c
clock_getres.c
clock_gettime.c
clock_nanosleep.c
clock_settime.c
close.c Consolidate non cancellable close call 2017-08-18 18:38:55 -03:00
cmsg_nxthdr.c
configure
configure.ac
connect.c
creat.c Consolidate Linux creat implementation 2017-05-11 17:27:27 -03:00
creat64.c Consolidate Linux creat implementation 2017-05-11 17:27:27 -03:00
createthread.c
default-sched.h
device-nrs.h
dl-brk.c
dl-execstack.c NPTL: Remove internal_function from stack marking functions 2017-08-13 21:11:38 +02:00
dl-fxstatat64.c
dl-getcwd.c
dl-librecon.h ld.so: Consolidate 2 strtouls into _dl_strtoul [BZ #21528] 2017-06-08 12:52:42 -07:00
dl-openat64.c
dl-opendir.c
dl-origin.c
dl-osinfo.h
dl-sbrk.c
dl-sysdep.c
dl-sysdep.h
dl-vdso.c elf: Remove internal_function attribute 2017-08-31 16:59:37 +02:00
dl-vdso.h elf: Remove internal_function attribute 2017-08-31 16:59:37 +02:00
dl-writev.h
epoll_pwait.c
epoll_wait.c
errqueue.h Consistently use uintN_t not u_intN_t everywhere. 2017-08-07 19:55:34 +00:00
eventfd_read.c
eventfd_write.c
exit-thread.h
faccessat.c
fallocate.c
fallocate64.c
fatal-prepare.h
fchmodat.c
fcntl.c Remove NO_CANCELLATION macro 2017-08-31 16:10:34 -03:00
fd_to_filename.h
fdatasync.c posix: Consolidate Linux fdatasync syscall 2017-05-18 18:06:47 -03:00
fexecve.c Fix fexecve build where syscall macros call sizeof. 2017-09-19 15:50:38 +00:00
filter-nr-syscalls.awk <bits/syscall.h>: Use an arch-independent system call list on Linux 2017-08-28 11:58:52 +02:00
fips-private.h Consolidate non cancellable close call 2017-08-18 18:38:55 -03:00
fpathconf.c
fstatfs64.c
fstatvfs.c
fstatvfs64.c
fsync.c posix: Consolidate Linux fsync syscall 2017-05-18 18:06:47 -03:00
ftime.c
ftruncate.c
ftruncate64.c
futex-internal.h
futimens.c
futimes.c
futimesat.c
fxstat.c
fxstat64.c
fxstatat.c
fxstatat64.c
gai_sigqueue.c resolv: Remove internal_function attribute 2017-08-31 16:07:52 +02:00
gen-syscall-h.awk <bits/syscall.h>: Use an arch-independent system call list on Linux 2017-08-28 11:58:52 +02:00
gentempfd.c Include <string.h> for strcmp call from sysdeps/unix/sysv/linux/gentempfd.c. 2017-09-01 17:14:43 +00:00
getclktck.c
getcwd.c Linux getcwd: Remove internal_function attribute 2017-08-31 15:59:07 +02:00
getdents.c dirent: Remove internal_function attribute 2017-08-31 16:02:40 +02:00
getdents64.c
getdirentries.c
getdirentries64.c
getdtsz.c
getentropy.c
gethostid.c Consolidate non cancellable close call 2017-08-18 18:38:55 -03:00
getipv4sourcefilter.c
getloadavg.c Consolidate non cancellable close call 2017-08-18 18:38:55 -03:00
getlogin.c
getlogin_r.c Consolidate non cancellable close call 2017-08-18 18:38:55 -03:00
getpagesize.c
getpeername.c
getpriority.c
getpt.c
getrandom.c
getrlimit.c
getrlimit64.c Assume prlimit64 is available. 2017-05-09 14:05:09 +00:00
getsockname.c
getsockopt.c
getsourcefilter.c
getsysstats.c Consolidate non cancellable close call 2017-08-18 18:38:55 -03:00
gettimeofday.c
glob.c posix: Consolidate Linux glob implementation 2017-09-08 16:34:02 +02:00
glob64.c posix: Consolidate Linux glob implementation 2017-09-08 16:34:02 +02:00
globfree.c posix: Consolidate Linux glob implementation 2017-09-08 16:34:02 +02:00
globfree64.c posix: Consolidate Linux glob implementation 2017-09-08 16:34:02 +02:00
grantpt.c Consolidate non cancellable close call 2017-08-18 18:38:55 -03:00
if_index.c Consolidate non cancellable close call 2017-08-18 18:38:55 -03:00
ifaddrs.c inet: Remove internal_function attribute 2017-08-31 18:52:00 +02:00
ifreq.c
internal_statvfs.c Remove __ASSUME_STATFS_F_FLAGS. 2017-05-12 11:48:37 +00:00
internal_statvfs64.c
ipc_ops.h
ipc_priv.h
kernel-features.h Use execveat syscall in fexecve (bug 22134) 2017-09-19 16:19:14 +02:00
kernel-posix-cpu-timers.h
kernel-posix-timers.h
kernel_sigaction.h
kernel_stat.h
kernel_termios.h
ldd-rewrite.sed
lddlibc4.c
ldsodefs.h
libc_fatal.c Consolidate non cancellable close call 2017-08-18 18:38:55 -03:00
linux_fsinfo.h
listen.c
local-setxid.h
lowlevellock-futex.h
lseek.c
lseek64.c
lutimes.c
lxstat.c
lxstat64.c
malloc-sysdep.h Consolidate non cancellable close call 2017-08-18 18:38:55 -03:00
mmap.c posix: Fix mmap for m68k and ia64 (BZ#21908) 2017-08-14 10:35:14 -03:00
mmap64.c Clean pthread functions namespaces for C11 threads 2017-06-23 17:38:17 -03:00
mmap_internal.h posix: Fix mmap for m68k and ia64 (BZ#21908) 2017-08-14 10:35:14 -03:00
mq_close.c
mq_getattr.c
mq_notify.c Consolidate non cancellable close call 2017-08-18 18:38:55 -03:00
mq_open.c
mq_receive.c
mq_send.c
mq_timedreceive.c posix: Consolidate Linux mq_timedreceive syscall 2017-05-18 18:06:47 -03:00
mq_timedsend.c posix: Consolidate Linux mq_timedsend syscall 2017-05-18 18:06:47 -03:00
mq_unlink.c
msgctl.c
msgget.c
msgrcv.c
msgsnd.c
msync.c posix: Consolidate Linux msync syscall 2017-05-18 18:06:47 -03:00
nanosleep.c Consolidate non cancellable nanosleep call 2017-08-22 14:25:08 -03:00
netlink_assert_response.c __netlink_assert_response: Remove internal_function attribute 2017-08-13 21:11:28 +02:00
netlinkaccess.h __netlink_assert_response: Remove internal_function attribute 2017-08-13 21:11:28 +02:00
nice.c
not-cancel.h Remove NO_CANCELLATION macro 2017-08-31 16:10:34 -03:00
not-errno.h tunables: Use direct syscall for access (BZ#21744) 2017-07-24 11:21:07 -03:00
nptl-signals.h Remove __need macros from signal.h. 2017-05-20 19:04:43 -04:00
nscd_setup_thread.c
ntp_gettime.c
ntp_gettimex.c
olddirent.h posix: Consolidate Linux glob implementation 2017-09-08 16:34:02 +02:00
oldglob.c posix: Consolidate Linux glob implementation 2017-09-08 16:34:02 +02:00
open.c Consolidate non cancellable open call 2017-08-17 16:50:35 -03:00
open64.c Consolidate non cancellable open call 2017-08-17 16:50:35 -03:00
open_by_handle_at.c linux: Consolidate Linux open_by_handle_at syscall 2017-05-18 18:06:47 -03:00
openat.c Consolidate non cancellable openat call 2017-08-18 16:30:05 -03:00
openat64.c Consolidate non cancellable openat call 2017-08-18 16:30:05 -03:00
opendir.c
opensock.c __opensock: Remove internal_function attribute 2017-08-17 10:18:15 +02:00
pathconf.c
pathconf.h
paths.h
pause.c Consolidate non cancellable pause call 2017-08-22 14:25:03 -03:00
personality.c
poll.c
posix_fadvise.c
posix_fadvise64.c
posix_fallocate.c
posix_fallocate64.c
posix_madvise.c
ppoll.c
pread.c
pread64.c
preadv.c posix: Remove internal_function attribute 2017-08-31 18:52:00 +02:00
preadv2.c posix: Set p{read,write}v2 to return ENOTSUP (BZ#21780) 2017-08-08 09:59:46 -03:00
preadv64.c posix: Remove internal_function attribute 2017-08-31 18:52:00 +02:00
preadv64v2.c posix: Set p{read,write}v2 to return ENOTSUP (BZ#21780) 2017-08-08 09:59:46 -03:00
prlimit.c Assume prlimit64 is available. 2017-05-09 14:05:09 +00:00
prof-freq.c
profil.c
pselect.c
pt-raise.c
pthread-pids.h
pthread_getaffinity.c
pthread_getcpuclockid.c
pthread_getname.c Consolidate non cancellable close call 2017-08-18 18:38:55 -03:00
pthread_kill.c
pthread_setaffinity.c
pthread_setname.c Consolidate non cancellable close call 2017-08-18 18:38:55 -03:00
pthread_sigmask.c
pthread_sigqueue.c
ptrace.c
ptsname.c Remove check for NULL buffer passed to `ptsname_r' 2017-06-07 17:37:59 +02:00
pwrite.c
pwrite64.c posix: Implement preadv2 and pwritev2 2017-05-31 17:35:46 -03:00
pwritev.c posix: Remove internal_function attribute 2017-08-31 18:52:00 +02:00
pwritev2.c posix: Set p{read,write}v2 to return ENOTSUP (BZ#21780) 2017-08-08 09:59:46 -03:00
pwritev64.c posix: Remove internal_function attribute 2017-08-31 18:52:00 +02:00
pwritev64v2.c posix: Set p{read,write}v2 to return ENOTSUP (BZ#21780) 2017-08-08 09:59:46 -03:00
raise.c
read.c Consolidate non cancellable read call 2017-08-18 10:31:16 -03:00
readahead.c
readdir64.c
readdir64_r.c
readonly-area.c
readv.c Consolidate Linux readv implementation 2017-05-11 17:27:31 -03:00
reboot.c
recv.c
recvfrom.c
recvmmsg.c Simplify accept4, recvmmsg, sendmmsg code. 2017-05-09 21:59:36 +00:00
recvmsg.c
remove.c
rename.c
renameat.c
sa_len.c
safe-fatal.h
sched_getaffinity.c
sched_getcpu.c
sched_setaffinity.c
segfault.c
select.c
semctl.c
semget.c
semop.c
semtimedop.c
send.c
sendmmsg.c Simplify accept4, recvmmsg, sendmmsg code. 2017-05-09 21:59:36 +00:00
sendmsg.c
sendto.c
setegid.c
seteuid.c
setgid.c
setgroups.c
sethostid.c
setipv4sourcefilter.c
setregid.c
setresgid.c
setresuid.c
setreuid.c
setrlimit.c Assume prlimit64 is available. 2017-05-09 14:05:09 +00:00
setrlimit64.c Assume prlimit64 is available. 2017-05-09 14:05:09 +00:00
setsockopt.c
setsourcefilter.c
setuid.c
shlib-versions
shm-directory.c
shmat.c
shmctl.c
shmdt.c
shmget.c
shutdown.c
sigaction.c
siglist.h
signal.c
signalfd.c
sigpending.c
sigprocmask.c
sigqueue.c
sigreturn.c
sigset-cvt-mask.h
sigsetops.h Remove __need macros from signal.h. 2017-05-20 19:04:43 -04:00
sigstack.c
sigsuspend.c posix: Consolidate Linux sigsuspend implementation 2017-05-18 18:06:47 -03:00
sigtimedwait.c
sigwait.c
sigwaitinfo.c
sizes.h
socket.c
socketcall.h
socketpair.c
spawni.c Consolidate non cancellable close call 2017-08-18 18:38:55 -03:00
speed.c
splice.c linux: Consolidate Linux splice syscall 2017-05-18 18:06:47 -03:00
statfs64.c
statvfs.c
statvfs64.c
sync_file_range.c
syscall-names.list Update kernel version in syscall-names.list to 4.13. 2017-09-04 20:16:07 +00:00
syscalls.list posix: Consolidate Linux mq_timedsend syscall 2017-05-18 18:06:47 -03:00
sysconf.c Consolidate non cancellable close call 2017-08-18 18:38:55 -03:00
sysctl.c
sysctl.mk
sysdep-vdso.h
sysdep.h
syslog.c
system.c
tcdrain.c
tcflow.c
tcflush.c
tcgetattr.c
tcgetpgrp.c
tcsendbrk.c
tcsetattr.c Clean pthread functions namespaces for C11 threads 2017-06-23 17:38:17 -03:00
tcsetpgrp.c
tee.c linux: Consolidate Linux tee implementation 2017-05-18 18:06:47 -03:00
termio.h
test-errno-linux.c
time.c
timer_create.c
timer_delete.c
timer_getoverr.c
timer_gettime.c
timer_routines.c
timer_settime.c
times.c
timespec_get.c
truncate.c
truncate64.c
tst-affinity-pid.c
tst-affinity.c
tst-align-clone.c
tst-clone.c
tst-clone2.c Use test-driver in sysdeps/unix/sysv/linux/tst-clone2.c 2017-06-07 14:05:42 +02:00
tst-clone3.c Call exit directly in clone (BZ #21512) 2017-06-26 17:52:20 -03:00
tst-fallocate-common.c
tst-fallocate.c
tst-fallocate64.c
tst-fanotify.c
tst-getpid1.c
tst-personality.c
tst-quota.c
tst-setgetname.c
tst-signal-numbers.sh Factor out shared definitions from bits/signum.h. 2017-06-20 20:32:50 -04:00
tst-skeleton-affinity.c
tst-skeleton-thread-affinity.c
tst-sync_file_range.c
tst-syscall-list.sh <bits/syscall.h>: Use an arch-independent system call list on Linux 2017-08-28 11:58:52 +02:00
tst-thread-affinity-pthread.c
tst-thread-affinity-pthread2.c
tst-thread-affinity-sched.c
ttyname.c posix: Remove internal_function attribute 2017-08-31 18:52:00 +02:00
ttyname.h
ttyname_r.c posix: Remove internal_function attribute 2017-08-31 18:52:00 +02:00
ualarm.c
umount.S
umount2.S
unlockpt.c
updwtmp.c
ustat.c
utimensat.c
utimes.c
utmp_file.c
vfork.c
vmsplice.c linux: Consolidate Linux vmsplice syscall 2017-05-18 18:06:47 -03:00
wait.c
wait3.c
waitid.c
waitpid.c Consolidate non cancellable waitpid call 2017-08-21 15:37:45 -03:00
write.c Consolidate non cancellable write call 2017-08-18 10:53:47 -03:00
writev.c Consolidate Linux writev implementation 2017-05-11 17:27:31 -03:00
xmknod.c
xmknodat.c
xstat.c
xstat64.c
xstatconv.c
xstatconv.h