glibc/sysdeps/unix
Joseph Myers 2288c2674d Fix bits/socket.h IOC* namespace issues (bug 21267).
sysdeps/unix/sysv/linux/bits/socket.h includes asm/socket.h.  That
includes asm/sockios.h, which on MIPS includes asm/ioctl.h, resulting
in namespace violations from IOC* macros.

bits/socket.h already has code to handle asm/socket.h unconditionally
defining macros that are only wanted for __USE_MISC.  This patch
extends it to handle the IOC* macros as well (always undefining them
if not defined when bits/socket.h was included, as I don't think they
are part of the intended API even for __USE_MISC).

It's possible there should also be a kernel fix - it's not clear to me
that IOC* belong in the uapi headers, and even if they do they might
best be split out into another header to avoid getting defined by this
particular path.  But since glibc needs to deal with existing kernel
headers, it also seems appropriate to extend the existing workaround
to these macros.

Tested (compilation only) with build-many-glibcs.py.

	[BZ #21267]
	* sysdeps/unix/sysv/linux/bits/socket.h (IOCSIZE_MASK): Undefine
	if defined by <asm/socket.h> and not previously defined.
	(IOCSIZE_SHIFT): Likewise.
	(IOC_IN): Likewise.
	(IOC_INOUT): Likewise.
	(IOC_OUT): Likewise.
2017-04-18 21:22:51 +00:00
..
alpha Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
arm Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
bsd Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
i386 Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
inet
mips Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
powerpc Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
sh Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
sysv/linux Fix bits/socket.h IOC* namespace issues (bug 21267). 2017-04-18 21:22:51 +00:00
x86_64 Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
clock_gettime.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
clock_nanosleep.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
clock_settime.c Narrowing the visibility of libc-internal.h even further. 2017-03-01 20:33:46 -05:00
confstr.h
get_child_max.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
getlogin_r.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
getlogin.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
getpagesize.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
grantpt.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
ifreq.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
Implies
make-syscalls.sh Do not stack-protect ifunc resolvers [BZ #7065] 2016-12-26 10:08:41 +01:00
Makefile Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
s-proto-cancel.S
s-proto.S
setxid.h
sockatmark.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
stime.c Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
syscall-template.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
syscall.S Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00
syscalls.list Fix nice getpriority, setpriority namespace (bug 18553). 2015-06-17 20:22:39 +00:00
sysdep.h Update copyright dates with scripts/update-copyrights. 2017-01-01 00:14:16 +00:00