glibc/ports
Joseph Myers bc688c1029 Fix __ASSUME_SENDMMSG issues (bug 16611).
Similar to the issues for accept4 and recvmmsg, __ASSUME_SENDMMSG is
also confused about whether it relates to function availability or
socketcall operation availability, and the conditions for the
definition are always wrong (sendmmsg appeared in Linux kernel 3.0,
not 2.6.39); this is now bug 16611.

This patch splits the macro into separate macros like those for
accept4 and recvmmsg, defining them for appropriate kernel versions.

Tested x86_64, including that disassembly of the installed shared
libraries is unchanged by this patch.

	[BZ #16611]
	* sysdeps/unix/sysv/linux/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x030000 && __ASSUME_SOCKETCALL]
	(__ASSUME_SENDMMSG_SOCKETCALL): Define.
	[__LINUX_KERNEL_VERSION >= 0x030000 && (__i386__ || __x86_64__ ||
	__powerpc__ || __sh__ || __sparc__)] (__ASSUME_SENDMMSG_SYSCALL):
	Likewise.
	[__i386__ || __powerpc__ || __sh__ || __sparc__]
	(__ASSUME_SENDMMSG_SYSCALL_WITH_SOCKETCALL): Likewise.
	[__ASSUME_SENDMMSG_SOCKETCALL || __ASSUME_SENDMMSG_SYSCALL]
	(__ASSUME_SENDMMSG): Define instead of using previous
	[__LINUX_KERNEL_VERSION >= 0x020627] condition.
	* sysdeps/unix/sysv/linux/aarch64/kernel-features.h
	(__ASSUME_SENDMMSG_SYSCALL): Define.
	* sysdeps/unix/sysv/linux/alpha/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x030200] (__ASSUME_SENDMMSG_SYSCALL):
	Likewise.
	* sysdeps/unix/sysv/linux/arm/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x030000] (__ASSUME_SENDMMSG_SYSCALL):
	Likewise.
	* sysdeps/unix/sysv/linux/ia64/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x030000] (__ASSUME_SENDMMSG_SYSCALL):
	Likewise.
	* sysdeps/unix/sysv/linux/internal_sendmmsg.S [__ASSUME_SOCKETCALL
	&& !__ASSUME_SENDMMSG_SYSCALL_WITH_SOCKETCALL &&
	!__ASSUME_SENDMMSG_SYSCALL] (__NR_sendmmsg): Undefine.
	[__ASSUME_SENDMMSG]: Change conditionals to
	[__ASSUME_SENDMMSG_SOCKETCALL].
	* sysdeps/unix/sysv/linux/microblaze/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x030300] (__ASSUME_SENDMMSG_SYSCALL):
	Define.
	* sysdeps/unix/sysv/linux/mips/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x030100] (__ASSUME_SENDMMSG_SYSCALL):
	Likewise.
	* sysdeps/unix/sysv/linux/sendmmsg.c [__ASSUME_SOCKETCALL &&
	!__ASSUME_SENDMMSG_SYSCALL_WITH_SOCKETCALL &&
	!__ASSUME_SENDMMSG_SYSCALL] (__NR_sendmmsg): Undefine.
	[!__ASSUME_SENDMMSG]: Change conditional to
	[!__ASSUME_SENDMMSG_SOCKETCALL].
	* sysdeps/unix/sysv/linux/tile/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x030000] (__ASSUME_SENDMMSG_SYSCALL):
	Define.

	* sysdeps/unix/sysv/linux/hppa/kernel-features.h
	[__LINUX_KERNEL_VERSION >= 0x030100] (__ASSUME_SENDMMSG_SYSCALL):
	Define.
2014-02-20 17:55:35 +00:00
..
sysdeps Fix __ASSUME_SENDMMSG issues (bug 16611). 2014-02-20 17:55:35 +00:00
ChangeLog rename configure.in to configure.ac 2013-10-30 17:32:08 +10:00
ChangeLog.aarch64 Relocate AArch64 from ports to libc. 2014-02-11 11:36:00 +00:00
ChangeLog.aix Move all files into ports/ subdirectory in preparation for merge with glibc 2012-07-01 13:06:41 +00:00
ChangeLog.alpha ia64: relocate out of ports/ subdir 2014-02-16 01:12:38 -05:00
ChangeLog.am33 Remove am33 port. 2014-02-08 00:16:57 +00:00
ChangeLog.arm Move arm from ports to libc. 2014-02-08 01:49:39 +00:00
ChangeLog.cris Move all files into ports/ subdirectory in preparation for merge with glibc 2012-07-01 13:06:41 +00:00
ChangeLog.hppa Fix __ASSUME_SENDMMSG issues (bug 16611). 2014-02-20 17:55:35 +00:00
ChangeLog.ia64 ia64: relocate out of ports/ subdir 2014-02-16 01:12:38 -05:00
ChangeLog.linux-generic Move tilegx, tilepro, and linux-generic from ports to libc. 2014-02-10 11:04:39 -05:00
ChangeLog.m68k Move m68k from ports to libc 2014-02-10 20:22:40 +01:00
ChangeLog.microblaze [MicroBlaze]: Move MicroBlaze from ports to sysdeps. 2014-02-17 11:08:21 +10:00
ChangeLog.mips ia64: relocate out of ports/ subdir 2014-02-16 01:12:38 -05:00
ChangeLog.powerpc Move powerpc ports pieces to libc. 2013-10-04 16:02:33 +00:00
ChangeLog.tile Move tilegx, tilepro, and linux-generic from ports to libc. 2014-02-10 11:04:39 -05:00
README rename configure.in to configure.ac 2013-10-30 17:32:08 +10:00

This is the glibc ports add-on, an add-on for the GNU C Library (glibc).
It contains code that is not maintained in the official glibc source tree.

This includes working ports to GNU/Linux on some machine architectures that
are not maintained in the official glibc source tree.  It also includes
some code once used by old libc ports now defunct, which has been abandoned
but may be useful for some future porter to examine.  It may also include
some optimized functions tailored for specific CPU implementations of an
architecture, to be selected using --with-cpu.

The ports add-on is cooperatively maintained by volunteers on the
<libc-ports@sourceware.org> mailing list, and housed in the ports
subdirectory of the glibc git repository.  See
http://www.gnu.org/software/libc/download.html for details on using
git.  To report a bug in code housed in the ports add-on, please go to
http://sourceware.org/bugzilla/ and file a bug report under the glibc
"ports" component.

An add-on for an individual port can be made from just the sysdeps/
subdirectories containing the port's code.  You may want to include a
README and Banner of your own talking about your port's code in particular,
rather than the generic ones here.

The real source code for any ports is found in the sysdeps/ subdirectories.
These should be exactly what would go into the main libc source tree if you
were to incorporate it directly.  The only exceptions are the files
sysdeps/*/preconfigure and sysdeps/*/preconfigure.ac; these are fragments
used by this add-on's configure fragment.  The purpose of these is to set
$base_machine et al when the main libc configure's defaults are not right
for some machine.  Everything else can and should be done from a normal
sysdeps/.../configure fragment that is used only when the configuration
selects that sysdeps subdirectory.  Each port that requires some special
treatment before the sysdeps directory list is calculated, should add a
sysdeps/CPU/preconfigure file; this can either be written by hand or
generated by Autoconf from sysdeps/CPU/preconfigure.ac, and follow the
rules for glibc add-on configure fragments.  No preconfigure file should do
anything on an unrelated configuration, so that disparate ports can be put
into a single add-on without interfering with each other.

Like all glibc add-ons, this must be used by specifying the directory in
the --enable-add-ons option when running glibc's configure script.

The GNU C Library is free software.  See the file COPYING.LIB in the
libc repository for copying conditions, and LICENSES for notices about
a few contributions that require these additional notices to be
distributed.  License copyright years may be listed using range
notation, e.g., 2000-2013, indicating that every year in the range,
inclusive, is a copyrightable year that would otherwise be listed
individually.