From: Jo-Philipp Wich Date: Fri, 10 Dec 2010 23:09:03 +0000 (+0000) Subject: [packages] libdnet: supply missing macros X-Git-Url: http://git.openwrt.org/?a=commitdiff_plain;h=cc5840ae2f2107062288528278e40a3f4eceb696;p=openwrt%2Fsvn-archive%2Farchive.git [packages] libdnet: supply missing macros SVN-Revision: 24460 --- diff --git a/libs/libdnet/patches/003-missing-macros.patch b/libs/libdnet/patches/003-missing-macros.patch new file mode 100644 index 0000000000..6f9de65ddd --- /dev/null +++ b/libs/libdnet/patches/003-missing-macros.patch @@ -0,0 +1,323 @@ +--- /dev/null ++++ b/dnet.m4 +@@ -0,0 +1,320 @@ ++dnl ++dnl Check for 4.4 BSD sa_len member in sockaddr struct ++dnl ++dnl usage: AC_DNET_SOCKADDR_SA_LEN ++dnl results: HAVE_SOCKADDR_SA_LEN (defined) ++dnl ++AC_DEFUN(AC_DNET_SOCKADDR_SA_LEN, ++ [AC_MSG_CHECKING(for sa_len in sockaddr struct) ++ AC_CACHE_VAL(ac_cv_dnet_sockaddr_has_sa_len, ++ AC_TRY_COMPILE([ ++# ifndef _SOCKADDR_LEN ++# define _SOCKADDR_LEN 1 ++# endif ++# include ++# include ], ++ [u_int i = sizeof(((struct sockaddr *)0)->sa_len)], ++ ac_cv_dnet_sockaddr_has_sa_len=yes, ++ ac_cv_dnet_sockaddr_has_sa_len=no)) ++ AC_MSG_RESULT($ac_cv_dnet_sockaddr_has_sa_len) ++ if test $ac_cv_dnet_sockaddr_has_sa_len = yes ; then ++ AC_DEFINE(HAVE_SOCKADDR_SA_LEN, 1, ++ [Define if sockaddr struct has sa_len.]) ++ fi]) ++ ++dnl ++dnl Check for sockaddr_in6 struct in ++dnl ++dnl usage: AC_DNET_SOCKADDR_IN6 ++dnl results: HAVE_SOCKADDR_IN6 ++dnl ++AC_DEFUN(AC_DNET_SOCKADDR_IN6, ++ [AC_MSG_CHECKING(for sockaddr_in6 struct in ) ++ AC_CACHE_VAL(ac_cv_dnet_netinet_in_h_has_sockaddr_in6, ++ AC_TRY_COMPILE([ ++# include ++# include ++# include ], ++ [struct sockaddr_in6 sin6; sin6.sin6_family = AF_INET6;], ++ ac_cv_dnet_netinet_in_h_has_sockaddr_in6=yes, ++ ac_cv_dnet_netinet_in_h_has_sockaddr_in6=no)) ++ AC_MSG_RESULT($ac_cv_dnet_netinet_in_h_has_sockaddr_in6) ++ if test $ac_cv_dnet_netinet_in_h_has_sockaddr_in6 = yes ; then ++ AC_DEFINE(HAVE_SOCKADDR_IN6, 1, ++ [Define if has sockaddr_in6 struct.]) ++ fi]) ++ ++dnl ++dnl Check for arp_dev member in arpreq struct ++dnl ++dnl usage: AC_DNET_ARPREQ_ARP_DEV ++dnl results: HAVE_ARPREQ_ARP_DEV (defined) ++dnl ++AC_DEFUN(AC_DNET_ARPREQ_ARP_DEV, ++ [AC_MSG_CHECKING(for arp_dev in arpreq struct) ++ AC_CACHE_VAL(ac_cv_dnet_arpreq_has_arp_dev, ++ AC_TRY_COMPILE([ ++# include ++# include ++# include ], ++ [void *p = ((struct arpreq *)0)->arp_dev], ++ ac_cv_dnet_arpreq_has_arp_dev=yes, ++ ac_cv_dnet_arpreq_has_arp_dev=no)) ++ AC_MSG_RESULT($ac_cv_dnet_arpreq_has_arp_dev) ++ if test $ac_cv_dnet_arpreq_has_arp_dev = yes ; then ++ AC_DEFINE(HAVE_ARPREQ_ARP_DEV, 1, ++ [Define if arpreq struct has arp_dev.]) ++ fi]) ++ ++dnl ++dnl Check for rt_msghdr struct in ++dnl ++dnl usage: AC_DNET_ROUTE_RT_MSGHDR ++dnl results: HAVE_ROUTE_RT_MSGHDR ++dnl ++AC_DEFUN(AC_DNET_ROUTE_RT_MSGHDR, ++ [AC_MSG_CHECKING(for rt_msghdr struct in ) ++ AC_CACHE_VAL(ac_cv_dnet_route_h_has_rt_msghdr, ++ AC_TRY_COMPILE([ ++# include ++# include ++# include ++# include ], ++ [struct rt_msghdr rtm; rtm.rtm_msglen = 0;], ++ ac_cv_dnet_route_h_has_rt_msghdr=yes, ++ ac_cv_dnet_route_h_has_rt_msghdr=no)) ++ AC_MSG_RESULT($ac_cv_dnet_route_h_has_rt_msghdr) ++ if test $ac_cv_dnet_route_h_has_rt_msghdr = yes ; then ++ AC_DEFINE(HAVE_ROUTE_RT_MSGHDR, 1, ++ [Define if has rt_msghdr struct.]) ++ fi]) ++ ++dnl ++dnl Check for the Berkeley Packet Filter ++dnl ++dnl usage: AC_DNET_BSD_BPF ++dnl results: HAVE_BSD_BPF ++dnl ++AC_DEFUN(AC_DNET_BSD_BPF, ++ [AC_MSG_CHECKING(for Berkeley Packet Filter) ++ AC_CACHE_VAL(ac_cv_dnet_bsd_bpf, ++ if test -c /dev/bpf0 ; then ++ ac_cv_dnet_bsd_bpf=yes ++ else ++ ac_cv_dnet_bsd_bpf=no ++ fi) ++ AC_MSG_RESULT($ac_cv_dnet_bsd_bpf) ++ if test $ac_cv_dnet_bsd_bpf = yes ; then ++ AC_DEFINE(HAVE_BSD_BPF, 1, ++ [Define if you have the Berkeley Packet Filter.]) ++ fi]) ++ ++dnl ++dnl Check for the Linux /proc filesystem ++dnl ++dnl usage: AC_DNET_LINUX_PROCFS ++dnl results: HAVE_LINUX_PROCFS ++dnl ++AC_DEFUN(AC_DNET_LINUX_PROCFS, ++ [AC_MSG_CHECKING(for Linux proc filesystem) ++ AC_CACHE_VAL(ac_cv_dnet_linux_procfs, ++ if test "x`cat /proc/sys/kernel/ostype 2>&-`" = "xLinux" ; then ++ ac_cv_dnet_linux_procfs=yes ++ else ++ ac_cv_dnet_linux_procfs=no ++ fi) ++ AC_MSG_RESULT($ac_cv_dnet_linux_procfs) ++ if test $ac_cv_dnet_linux_procfs = yes ; then ++ AC_DEFINE(HAVE_LINUX_PROCFS, 1, ++ [Define if you have the Linux /proc filesystem.]) ++ fi]) ++ ++dnl ++dnl Check for Linux PF_PACKET sockets ++dnl ++dnl usage: AC_DNET_LINUX_PF_PACKET ++dnl results: HAVE_LINUX_PF_PACKET ++dnl ++AC_DEFUN(AC_DNET_LINUX_PF_PACKET, ++ [AC_MSG_CHECKING(for Linux PF_PACKET sockets) ++ AC_CACHE_VAL(ac_cv_dnet_linux_pf_packet, ++ if test -f /usr/include/netpacket/packet.h ; then ++ ac_cv_dnet_linux_pf_packet=yes ++ else ++ ac_cv_dnet_linux_pf_packet=no ++ fi) ++ AC_MSG_RESULT($ac_cv_dnet_linux_pf_packet) ++ if test $ac_cv_dnet_linux_pf_packet = yes ; then ++ AC_DEFINE(HAVE_LINUX_PF_PACKET, 1, ++ [Define if you have Linux PF_PACKET sockets.]) ++ fi]) ++ ++dnl ++dnl Check for SNMP MIB2 STREAMS (Solaris only?) ++dnl ++dnl usage: AC_DNET_STREAMS_MIB2 ++dnl results: HAVE_STREAMS_MIB2 ++dnl ++AC_DEFUN(AC_DNET_STREAMS_MIB2, ++ [AC_MSG_CHECKING(for SNMP MIB2 STREAMS) ++ AC_CACHE_VAL(ac_cv_dnet_streams_mib2, ++ if test -f /usr/include/inet/mib2.h -a -c /dev/ip ; then ++ ac_cv_dnet_streams_mib2=yes ++ else ++ ac_cv_dnet_streams_mib2=no ++ fi) ++ AC_MSG_RESULT($ac_cv_dnet_streams_mib2) ++ if test $ac_cv_dnet_streams_mib2 = yes ; then ++ AC_DEFINE(HAVE_STREAMS_MIB2, 1, ++ [Define if you have SNMP MIB2 STREAMS.]) ++ fi]) ++ ++dnl ++dnl Check for route(7) STREAMS (UnixWare only?) ++dnl ++dnl usage: AC_DNET_STREAMS_ROUTE ++dnl results: HAVE_STREAMS_ROUTE ++dnl ++AC_DEFUN(AC_DNET_STREAMS_ROUTE, ++ [AC_MSG_CHECKING(for route(7) STREAMS) ++ AC_CACHE_VAL(ac_cv_dnet_streams_route, ++ if grep RTSTR_SEND /usr/include/net/route.h >/dev/null 2>&1 ; then ++ ac_cv_dnet_streams_route=yes ++ else ++ ac_cv_dnet_streams_route=no ++ fi) ++ AC_MSG_RESULT($ac_cv_dnet_streams_route) ++ if test $ac_cv_dnet_streams_route = yes ; then ++ AC_DEFINE(HAVE_STREAMS_ROUTE, 1, ++ [Define if you have route(7) STREAMS.]) ++ fi]) ++ ++dnl ++dnl Check for arp(7) ioctls ++dnl ++dnl usage: AC_DNET_IOCTL_ARP ++dnl results: HAVE_IOCTL_ARP ++dnl ++AC_DEFUN(AC_DNET_IOCTL_ARP, ++ [AC_MSG_CHECKING(for arp(7) ioctls) ++ AC_CACHE_VAL(ac_cv_dnet_ioctl_arp, ++ AC_EGREP_CPP(werd, [ ++# include ++# define BSD_COMP ++# include ++# ifdef SIOCGARP ++ werd ++# endif], ++ ac_cv_dnet_ioctl_arp=yes, ++ ac_cv_dnet_ioctl_arp=no)) ++ case "$host_os" in ++ irix*) ++ ac_cv_dnet_ioctl_arp=no ;; ++ esac ++ AC_MSG_RESULT($ac_cv_dnet_ioctl_arp) ++ if test $ac_cv_dnet_ioctl_arp = yes ; then ++ AC_DEFINE(HAVE_IOCTL_ARP, 1, ++ [Define if you have arp(7) ioctls.]) ++ fi]) ++ ++dnl ++dnl Check for raw IP sockets ip_{len,off} host byte ordering ++dnl ++dnl usage: AC_DNET_RAWIP_HOST_OFFLEN ++dnl results: HAVE_RAWIP_HOST_OFFLEN ++dnl ++AC_DEFUN(AC_DNET_RAWIP_HOST_OFFLEN, ++ [AC_MSG_CHECKING([for raw IP sockets ip_{len,off} host byte ordering]) ++ AC_CACHE_VAL(ac_cv_dnet_rawip_host_offlen, [ ++ case "$host_os" in ++ *openbsd*) ++ ac_cv_dnet_rawip_host_offlen=no ;; ++ *bsd*|*osf*|*unixware*) ++ ac_cv_dnet_rawip_host_offlen=yes ;; ++ *) ++ ac_cv_dnet_rawip_host_offlen=no ;; ++ esac]) ++ AC_MSG_RESULT($ac_cv_dnet_rawip_host_offlen) ++ if test $ac_cv_dnet_rawip_host_offlen = yes ; then ++ AC_DEFINE(HAVE_RAWIP_HOST_OFFLEN, 1, ++ [Define if raw IP sockets require host byte ordering for ip_off, ip_len.]) ++ fi]) ++ ++dnl ++dnl Check for cooked raw IP sockets ++dnl ++dnl usage: AC_DNET_RAWIP_COOKED ++dnl results: HAVE_RAWIP_COOKED ++dnl ++AC_DEFUN(AC_DNET_RAWIP_COOKED, ++ [AC_MSG_CHECKING(for cooked raw IP sockets) ++ AC_CACHE_VAL(ac_cv_dnet_rawip_cooked, [ ++ case "$host_os" in ++ solaris*|irix*) ++ ac_cv_dnet_rawip_cooked=yes ;; ++ *) ++ ac_cv_dnet_rawip_cooked=no ;; ++ esac]) ++ AC_MSG_RESULT($ac_cv_dnet_rawip_cooked) ++ if test $ac_cv_dnet_rawip_cooked = yes ; then ++ AC_DEFINE(HAVE_RAWIP_COOKED, 1, ++ [Define if you have cooked raw IP sockets.]) ++ fi]) ++ ++dnl ++dnl AC_LBL_LIBRARY_NET ++dnl ++dnl This test is for network applications that need socket() and ++dnl gethostbyname() -ish functions. Under Solaris, those applications ++dnl need to link with "-lsocket -lnsl". Under IRIX, they need to link ++dnl with "-lnsl" but should *not* link with "-lsocket" because ++dnl libsocket.a breaks a number of things (for instance: ++dnl gethostbyname() under IRIX 5.2, and snoop sockets under most ++dnl versions of IRIX). ++dnl ++dnl Unfortunately, many application developers are not aware of this, ++dnl and mistakenly write tests that cause -lsocket to be used under ++dnl IRIX. It is also easy to write tests that cause -lnsl to be used ++dnl under operating systems where neither are necessary (or useful), ++dnl such as SunOS 4.1.4, which uses -lnsl for TLI. ++dnl ++dnl This test exists so that every application developer does not test ++dnl this in a different, and subtly broken fashion. ++ ++dnl It has been argued that this test should be broken up into two ++dnl seperate tests, one for the resolver libraries, and one for the ++dnl libraries necessary for using Sockets API. Unfortunately, the two ++dnl are carefully intertwined and allowing the autoconf user to use ++dnl them independantly potentially results in unfortunate ordering ++dnl dependancies -- as such, such component macros would have to ++dnl carefully use indirection and be aware if the other components were ++dnl executed. Since other autoconf macros do not go to this trouble, ++dnl and almost no applications use sockets without the resolver, this ++dnl complexity has not been implemented. ++dnl ++dnl The check for libresolv is in case you are attempting to link ++dnl statically and happen to have a libresolv.a lying around (and no ++dnl libnsl.a). ++dnl ++AC_DEFUN(AC_LBL_LIBRARY_NET, [ ++ # Most operating systems have gethostbyname() in the default searched ++ # libraries (i.e. libc): ++ AC_CHECK_FUNC(gethostbyname, , ++ # Some OSes (eg. Solaris) place it in libnsl: ++ AC_CHECK_LIB(nsl, gethostbyname, , ++ # Some strange OSes (SINIX) have it in libsocket: ++ AC_CHECK_LIB(socket, gethostbyname, , ++ # Unfortunately libsocket sometimes depends on libnsl. ++ # AC_CHECK_LIB's API is essentially broken so the ++ # following ugliness is necessary: ++ AC_CHECK_LIB(socket, gethostbyname, ++ LIBS="-lsocket -lnsl $LIBS", ++ AC_CHECK_LIB(resolv, gethostbyname), ++ -lnsl)))) ++ AC_CHECK_FUNC(socket, , AC_CHECK_LIB(socket, socket, , ++ AC_CHECK_LIB(socket, socket, LIBS="-lsocket -lnsl $LIBS", , ++ -lnsl))) ++ # DLPI needs putmsg under HPUX so test for -lstr while we're at it ++ AC_CHECK_LIB(str, putmsg) ++ ]) ++