glibc/sysdeps/unix/sysv/linux/generic
Adhemerval Zanella 60f9423b6b Consolidate Linux send implementation
This patch consolidates the send Linux syscall implementation on
sysdeps/unix/sysv/linux/send{to}.c.  The changes are:

  1. Remove send from auto-generation syscalls.list on the architecture
     that uses __NR_send.
  2. Define __NR_send for architectures that supports it. It was done instead
     of defining in default kernel-features.h because current Linux practice
     for new ports are to implement only __NR_sendto [1] and it will
     require adding new kernel-features for ports that do not require it
     (aarch64 for instance).
  3. Remove __ASSUME_SENDTO_FOR_SEND_SYSCALL and decide to use
     __NR_sendto for send generation based on __ASSUME_SENDTO_SYSCALL.

Checked on i686-linux-gnu, x86_64-linux-gnu, x86_64-linux-gnux32,
aarch64-linux-gnu, arm-linux-gnueabihf, and powerpc64le-linux-gnu.

	* sysdeps/unix/sysv/linux/sysdep.h (HAVE_INTERNAL_SEND_SYMBOL):
	Define.
	* sysdeps/unix/sysv/linux/aarch64/sysdep.h
	(HAVE_INTERNAL_SEND_SYMBOL): Undefine.
	* sysdeps/unix/sysv/linux/nios2/sysdep.h
	(HAVE_INTERNAL_SEND_SYMBOL): Likewise.
	* sysdeps/unix/sysv/linux/tile/sysdep.h
	(HAVE_INTERNAL_SEND_SYMBOL): Likewise.
	* sysdeps/unix/sysv/linux/alpha/kernel-features.h
	(__ASSUME_RECV_SYSCALL): Define.
	* sysdeps/unix/sysv/linux/arm/kernel-features.h
	(__ASSUME_RECV_SYSCALL): Likewise.
	* sysdeps/unix/sysv/linux/hppa/kernel-features.h
	(__ASSUME_RECV_SYSCALL): Likewise.
	* sysdeps/unix/sysv/linux/ia64/kernel-features.h
	(__ASSUME_RECV_SYSCALL): Likewise.
	* sysdeps/unix/sysv/linux/mips/kernel-features.h
	(__ASSUME_RECV_SYSCALL): Likewise.
	* sysdeps/unix/sysv/linux/i386/kernel-features.h
	(__ASSUME_SENDTO_FOR_SEND_SYSCALL): Remove define.
	* sysdeps/unix/sysv/linux/m68k/kernel-features.h
	(__ASSUME_SENDTO_FOR_SEND_SYSCALL): Likewise.
	* sysdeps/unix/sysv/linux/s390/kernel-features.h
	(__ASSUME_SENDTO_FOR_SEND_SYSCALL): Likewise.
	* sysdeps/unix/sysv/linux/alpha/syscalls.list: Remove send from
	auto-generation list.
	* sysdeps/unix/sysv/linux/arm/syscalls.list: Likewise.
	* sysdeps/unix/sysv/linux/hppa/syscalls.list: Likewise.
	* sysdeps/unix/sysv/linux/ia64/syscalls.list: Likewike.
	* sysdeps/unix/sysv/linux/mips/syscalls.list: Likewise.
	* sysdeps/unix/sysv/linux/sparc/sparc64/syscalls.list: Likewise.
	* sysdeps/unix/sysv/linux/send.c: Simplify includes.
	(__ASSUME_SENDTO_FOR_SEND_SYSCALL): Replace by
	__ASSUME_SENDTO_SYSCALL.
	* sysdeps/unix/sysv/linux/x86_64/send.c: Remove file.
	* sysdeps/unix/sysv/linux/mips/mips64/send.c: Likewise.
	* sysdeps/unix/sysv/linux/generic/send.c: Likewise.
2017-03-09 15:22:06 +01:00
..
bits Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
wordsize-32 Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
____longjmp_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
brk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
chmod.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
chown.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
creat.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
dl-origin.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
dup2.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
epoll_create.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
epoll_wait.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
futimesat.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
getdents64.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
getdents.c Move tilegx, tilepro, and linux-generic from ports to libc. 2014-02-10 11:04:39 -05:00
inotify_init.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
kernel_stat.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
lchown.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
link.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
lxstat.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
Makefile Move tilegx, tilepro, and linux-generic from ports to libc. 2014-02-10 11:04:39 -05:00
mkdir.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
open64.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
open.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
pause.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
pipe.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
poll.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
readlink_chk.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
readlink.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
README linux-generic: add a README 2015-03-19 13:33:01 -04:00
rmdir.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
select.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
symlink.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
syscalls.list Consolidate Linux sendto implementation 2017-03-09 15:22:06 +01:00
sysctl.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
sysdep.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
umount.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
unlink.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
ustat.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
utimes.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
xmknod.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
xstat.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00

This hierarchy supports Linux systems using the new
asm-generic/unistd.h, which removes many familiar old syscalls.  For
example, to implement open(), newer Linux architectures require glibc
to invoke the __NR_openat syscall with AT_FDCWD.  This hierarchy
provides all those implementations.

It also provides support for 32-bit platforms using the 64-bit kernel
syscall APIs, as the 32-bit ones are no longer provided.  Note that
newer ILP32 environments (x32 or AArch64:ILP32, for example) are
converting to use more 64-bit types in kernel syscalls, so that aspect
of this support is in more flux as of this writing.