mirror of
git://sourceware.org/git/glibc.git
synced 2024-12-09 04:11:27 +08:00
f2bea4da2e
Several network-related structures are defined conditionally under __USE_MISC, but unconditionally used by other headers. The path of least resistance is usually to condition the uses on __USE_MISC as well. * sysdeps/mach/hurd/net/if_ppp.h * sysdeps/unix/sysv/linux/net/if_ppp.h: Only define struct ifpppstatsreq and struct ifpppcstatsreq if __USE_MISC is defined, to ensure struct ifreq is declared. * inet/netinet/ether.h: Condition all function prototypes on __USE_MISC, to ensure struct ether_addr is declared. sys/socket.h defines struct osockaddr only under __USE_MISC, whereas protocols/talkd.h requires it unconditionally. Here it doesn't make sense to condition the entire body of protocols/talkd.h on __USE_MISC. Rather than complicate sys/socket.h with a __need macro or duplicate the definition, I am introducing a new concept: tiny headers named bits/types/TYPE.h that define TYPE and nothing else. This can, I hope, ultimately replace *all* the __need macros. The guard macro for such headers will be __TYPE_defined, just in case application or third-party library code is looking at them. * socket/bits/types/struct_osockaddr.h: New header. * include/bits/types/struct_osockaddr.h: New wrapper. * socket/Makefile: Install the new header. * socket/sys/socket.h, inet/protocols/talkd.h: Refer to bits/types/struct_osockaddr.h for the definition of struct osockaddr.
37 lines
1.3 KiB
Makefile
37 lines
1.3 KiB
Makefile
# Copyright (C) 1991-2016 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
|
|
# <http://www.gnu.org/licenses/>.
|
|
|
|
#
|
|
# Sub-makefile for socket portion of the library.
|
|
#
|
|
subdir := socket
|
|
|
|
include ../Makeconfig
|
|
|
|
headers := sys/socket.h sys/un.h bits/sockaddr.h bits/socket.h \
|
|
bits/socket2.h bits/types/struct_osockaddr.h \
|
|
sys/socketvar.h net/if.h
|
|
|
|
routines := accept bind connect getpeername getsockname getsockopt \
|
|
listen recv recvfrom recvmsg send sendmsg sendto \
|
|
setsockopt shutdown socket socketpair isfdtype opensock \
|
|
sockatmark accept4 recvmmsg sendmmsg
|
|
|
|
aux := have_sock_cloexec sa_len
|
|
|
|
include ../Rules
|