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:
parent
fec10a2823
commit
996b502961
4 changed files with 6 additions and 3 deletions
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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>
|
||||
|
|
Loading…
Add table
Reference in a new issue