dect
/
libnl
Archived
13
0
Fork 0

FTBFS with musl libc: Missing includes

Hello,
libnl 3.2.9 does not build with musl libc, without patching.
I' using a current musl libc (http://www.etalabs.net/musl/)
with linux 2.6.32 headers.
At first there were a couple problems on the musl side, but those are
resolved.
However, I found some other issues:
First, two files were missing
#include <byteswap.h>:
lib/netfilter/log_msg.c
lib/netfilter/queue_msg.c
These files used __bswap_64 (which should be bswap_64), a macro
declared in byteswap.h

Second, I got this error after fixing that:

In file included from nf-queue.c:16:
./include/linux/netfilter.h:53: error: field in has incomplete type
./include/linux/netfilter.h:54: error: field in6 has incomplete type

I found that src/nf-queue.c is missing an
#include <netinet/in.h>

Attached is a patch which resolves these issues.  I've tested with both
musl and glibc, and it builds cleanly on both.
This commit is contained in:
Isaac 2012-05-12 22:37:48 -07:00 committed by Thomas Graf
parent fec10a2823
commit 996b502961
4 changed files with 6 additions and 3 deletions

View File

@ -38,7 +38,7 @@ static uint64_t ntohll(uint64_t x)
#elif __BYTE_ORDER == __LITTLE_ENDIAN
static uint64_t ntohll(uint64_t x)
{
return __bswap_64(x);
return bswap_64(x);
}
#endif

View File

@ -26,6 +26,7 @@
#include <netlink/attr.h>
#include <netlink/netfilter/nfnl.h>
#include <netlink/netfilter/log_msg.h>
#include <byteswap.h>
#if __BYTE_ORDER == __BIG_ENDIAN
static uint64_t ntohll(uint64_t x)
@ -35,7 +36,7 @@ static uint64_t ntohll(uint64_t x)
#elif __BYTE_ORDER == __LITTLE_ENDIAN
static uint64_t ntohll(uint64_t x)
{
return __bswap_64(x);
return bswap_64(x);
}
#endif

View File

@ -24,6 +24,7 @@
#include <netlink/attr.h>
#include <netlink/netfilter/nfnl.h>
#include <netlink/netfilter/queue_msg.h>
#include <byteswap.h>
static struct nl_cache_ops nfnl_queue_msg_ops;
@ -35,7 +36,7 @@ static uint64_t ntohll(uint64_t x)
#elif __BYTE_ORDER == __LITTLE_ENDIAN
static uint64_t ntohll(uint64_t x)
{
return __bswap_64(x);
return bswap_64(x);
}
#endif

View File

@ -13,6 +13,7 @@
#include <netlink/cli/utils.h>
#include <netlink/cli/link.h>
#include <netinet/in.h>
#include <linux/netfilter.h>
#include <linux/netfilter/nfnetlink_queue.h>
#include <netlink/netfilter/nfnl.h>