[oe] [PATCH] inetutils_1.8.bb: Fix build when DISTRO_FEATURES lacks ipv6.

Graham Gower graham.gower at gmail.com
Thu Dec 2 00:35:58 UTC 2010


In file included from ./ping.h:19:0,
                 from ping_address.c:47:
./ping_common.h:23:27: fatal error: netinet/icmp6.h: No such file or directory
compilation terminated.
In file included from ./ping.h:19:0,
                 from ping_router.c:46:
./ping_common.h:23:27: fatal error: netinet/icmp6.h: No such file or directory
compilation terminated.
make[2]: *** [ping_address.o] Error 1
make[2]: *** Waiting for unfinished jobs....
make[2]: *** [ping_router.o] Error 1
In file included from ping_common.c:32:0:
ping_common.h:23:27: fatal error: netinet/icmp6.h: No such file or directory
compilation terminated.
make[2]: *** [ping_common.o] Error 1
In file included from ping.h:19:0,
                 from libping.c:38:
ping_common.h:23:27: fatal error: netinet/icmp6.h: No such file or directory
compilation terminated.
make[2]: *** [libping.o] Error 1
In file included from ./ping.h:19:0,
                 from ping_timestamp.c:46:
./ping_common.h:23:27: fatal error: netinet/icmp6.h: No such file or directory
compilation terminated.
make[2]: *** [ping_timestamp.o] Error 1
In file included from ./ping.h:19:0,
                 from ping_echo.c:47:
./ping_common.h:23:27: fatal error: netinet/icmp6.h: No such file or directory
compilation terminated.
make[2]: *** [ping_echo.o] Error 1
In file included from ./ping.h:19:0,
                 from ping.c:49:
./ping_common.h:23:27: fatal error: netinet/icmp6.h: No such file or directory
compilation terminated.
make[2]: *** [ping.o] Error 1

Signed-off-by: Graham Gower <graham.gower at gmail.com>
---
 .../inetutils/inetutils-1.8/fix-disable-ipv6.patch |   58 ++++++++++++++++++++
 recipes/inetutils/inetutils_1.8.bb                 |    6 ++-
 2 files changed, 63 insertions(+), 1 deletions(-)
 create mode 100644 recipes/inetutils/inetutils-1.8/fix-disable-ipv6.patch

diff --git a/recipes/inetutils/inetutils-1.8/fix-disable-ipv6.patch b/recipes/inetutils/inetutils-1.8/fix-disable-ipv6.patch
new file mode 100644
index 0000000..75d51a1
--- /dev/null
+++ b/recipes/inetutils/inetutils-1.8/fix-disable-ipv6.patch
@@ -0,0 +1,58 @@
+Upstream: http://www.mail-archive.com/bug-inetutils@gnu.org/msg02103.html
+
+diff -ur inetutils-1.8.orig/ping/ping_common.h inetutils-1.8/ping/ping_common.h
+--- inetutils-1.8.orig/ping/ping_common.h	2010-05-15 20:55:47.000000000 +0930
++++ inetutils-1.8/ping/ping_common.h	2010-12-01 12:19:08.000000000 +1030
+@@ -17,10 +17,14 @@
+   You should have received a copy of the GNU General Public License
+   along with this program.  If not, see `http://www.gnu.org/licenses/'. */
+ 
++#include <config.h>
++
+ #include <netinet/in_systm.h>
+ #include <netinet/in.h>
+ #include <netinet/ip.h>
++#ifdef HAVE_IPV6
+ #include <netinet/icmp6.h>
++#endif
+ #include <icmp.h>
+ #include <error.h>
+ #include <progname.h>
+@@ -66,13 +70,19 @@
+   (t).tv_usec = ((i)%PING_PRECISION)*(1000000/PING_PRECISION) ;\
+ } while (0)
+ 
++#ifdef HAVE_IPV6
+ /* Not sure about this step*/
+ #define _PING_BUFLEN(p, USE_IPV6) ((USE_IPV6)? ((p)->ping_datalen + sizeof (struct icmp6_hdr)) : \
+ 				   ((p)->ping_datalen + sizeof (icmphdr_t)))
++#else
++#define _PING_BUFLEN(p, USE_IPV6) ((p)->ping_datalen + sizeof (icmphdr_t))
++#endif
+ 
++#ifdef HAVE_IPV6
+ typedef int (*ping_efp6) (int code, void *closure, struct sockaddr_in6 * dest,
+ 			  struct sockaddr_in6 * from, struct icmp6_hdr * icmp,
+ 			  int datalen);
++#endif
+ 
+ typedef int (*ping_efp) (int code,
+ 			 void *closure,
+@@ -81,13 +91,17 @@
+ 			 struct ip * ip, icmphdr_t * icmp, int datalen);
+ 
+ union event {
++#ifdef HAVE_IPV6
+   ping_efp6 handler6;
++#endif
+   ping_efp handler;
+ };
+ 
+ union ping_address {
+   struct sockaddr_in ping_sockaddr;
++#ifdef HAVE_IPV6
+   struct sockaddr_in6 ping_sockaddr6;
++#endif
+ };
+ 
+ typedef struct ping_data PING;
diff --git a/recipes/inetutils/inetutils_1.8.bb b/recipes/inetutils/inetutils_1.8.bb
index 42fb760..1e3d2ab 100644
--- a/recipes/inetutils/inetutils_1.8.bb
+++ b/recipes/inetutils/inetutils_1.8.bb
@@ -17,12 +17,16 @@ SRC_URI = "${GNU_MIRROR}/inetutils/inetutils-${PV}.tar.gz \
            file://inetutils-1.8-1003-use-daemon-from-the-C-library-when-possible.patch \
            file://inetutils-1.8-1004-detect-fork-support.patch \
            file://inetutils-1.8-1005-ftpd-add-daemon-D-nommu-support.patch \
+           file://fix-disable-ipv6.patch \
 "
 
 inherit autotools
 
+noipv6="${@base_contains('DISTRO_FEATURES', 'ipv6', '', '--disable-ipv6 gl_cv_socket_ipv6=no', d)}"
 EXTRA_OECONF = "--with-ncurses-include-dir=${STAGING_INCDIR} \
-		--with-path-procnet-dev=/proc/net/dev"
+		--with-path-procnet-dev=/proc/net/dev \
+		${noipv6} \
+		"
 
 do_configure_prepend () {
 	export HELP2MAN='true'
-- 
1.7.1





More information about the Openembedded-devel mailing list