include $(TOPDIR)/rules.mk
PKG_NAME:=libnl
-PKG_VERSION:=3.4.0
-PKG_RELEASE:=2
+PKG_VERSION:=3.5.0
+PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://github.com/thom311/libnl/releases/download/libnl3_4_0
-PKG_HASH:=b7287637ae71c6db6f89e1422c995f0407ff2fe50cecd61a312b6a9b0921f5bf
+PKG_SOURCE_URL:=https://github.com/thom311/libnl/releases/download/libnl$(subst .,_,$(PKG_VERSION))
+PKG_HASH:=352133ec9545da76f77e70ccb48c9d7e5324d67f6474744647a7ed382b5e05fa
PKG_LICENSE:=LGPL-2.1
PKG_INSTALL:=1
+++ /dev/null
---- a/include/linux-private/linux/if_ether.h
-+++ b/include/linux-private/linux/if_ether.h
-@@ -22,6 +22,7 @@
- #define _LINUX_IF_ETHER_H
-
- #include <linux/types.h>
-+#include <linux/libc-compat.h>
-
- /*
- * IEEE 802.3 Ethernet magic constants. The frame sizes omit the preamble
-@@ -117,10 +118,12 @@
- * This is an Ethernet frame header.
- */
-
-+#if __UAPI_DEF_ETHHDR
- struct ethhdr {
- unsigned char h_dest[ETH_ALEN]; /* destination eth addr */
- unsigned char h_source[ETH_ALEN]; /* source ether addr */
- __be16 h_proto; /* packet type ID field */
- } __attribute__((packed));
-+#endif
-
- #endif /* _LINUX_IF_ETHER_H */
---- a/include/linux-private/linux/libc-compat.h
-+++ b/include/linux-private/linux/libc-compat.h
-@@ -48,10 +48,18 @@
- #ifndef _LIBC_COMPAT_H
- #define _LIBC_COMPAT_H
-
--/* We have included glibc headers... */
--#if defined(__GLIBC__)
-+/* We're used from userspace... */
-+#if !defined(__KERNEL__)
-
--/* Coordinate with glibc netinet/in.h header. */
-+/* Coordinate with libc netinet/if_ether.h */
-+#ifdef _NETINET_IF_ETHER_H /* musl */
-+#define __UAPI_DEF_ETHHDR 0
-+#else
-+/* glibc uses __NETINET_IF_ETHER_H, and uses the uapi header. */
-+#define __UAPI_DEF_ETHHDR 1
-+#endif
-+
-+/* Coordinate with libc netinet/in.h header. */
- #if defined(_NETINET_IN_H)
-
- /* GLIBC headers included first so don't define anything
-@@ -64,15 +72,7 @@
- #define __UAPI_DEF_IN_CLASS 0
-
- #define __UAPI_DEF_IN6_ADDR 0
--/* The exception is the in6_addr macros which must be defined
-- * if the glibc code didn't define them. This guard matches
-- * the guard in glibc/inet/netinet/in.h which defines the
-- * additional in6_addr macros e.g. s6_addr16, and s6_addr32. */
--#if defined(__USE_MISC) || defined (__USE_GNU)
- #define __UAPI_DEF_IN6_ADDR_ALT 0
--#else
--#define __UAPI_DEF_IN6_ADDR_ALT 1
--#endif
- #define __UAPI_DEF_SOCKADDR_IN6 0
- #define __UAPI_DEF_IPV6_MREQ 0
- #define __UAPI_DEF_IPPROTO_V6 0
-@@ -83,7 +83,7 @@
- #else
-
- /* Linux headers included first, and we must define everything
-- * we need. The expectation is that glibc will check the
-+ * we need. The expectation is that libc will check the
- * __UAPI_DEF_* defines and adjust appropriately. */
- #define __UAPI_DEF_IN_ADDR 1
- #define __UAPI_DEF_IN_IPPROTO 1
-@@ -93,7 +93,7 @@
- #define __UAPI_DEF_IN_CLASS 1
-
- #define __UAPI_DEF_IN6_ADDR 1
--/* We unconditionally define the in6_addr macros and glibc must
-+/* We unconditionally define the in6_addr macros and libc must
- * coordinate. */
- #define __UAPI_DEF_IN6_ADDR_ALT 1
- #define __UAPI_DEF_SOCKADDR_IN6 1
-@@ -115,7 +115,10 @@
- /* If we did not see any headers from any supported C libraries,
- * or we are being included in the kernel, then define everything
- * that we need. */
--#else /* !defined(__GLIBC__) */
-+#else /* defined(__KERNEL__) */
-+
-+/* Definitions for if/ether.h */
-+#define __UAPI_DEF_ETHHDR 1
-
- /* Definitions for in.h */
- #define __UAPI_DEF_IN_ADDR 1
-@@ -138,6 +141,6 @@
- /* Definitions for xattr.h */
- #define __UAPI_DEF_XATTR 1
-
--#endif /* __GLIBC__ */
-+#endif /* defined(__KERNEL__) */
-
- #endif /* _LIBC_COMPAT_H */
+++ /dev/null
-From 68f8393bd356a3d0598cf77e1044b7e8b98aa4d8 Mon Sep 17 00:00:00 2001
-Message-Id: <68f8393bd356a3d0598cf77e1044b7e8b98aa4d8.1493920165.git.baruch@tkos.co.il>
-From: Baruch Siach <baruch@tkos.co.il>
-Date: Thu, 4 May 2017 15:56:14 +0300
-Subject: [PATCH] Revert "build: enable building cli during tests"
-
-This reverts commit 3cb28534d34392ceec4adead0cfa97039796ccb7.
-
-Contrary to what 3cb28534d commit log claims, the cli programs depend on
-dynamic libraries support of the toolchain. Enabling cli programs
-unconditionally breaks static build as follows:
-
-In file included from lib/cli/cls/basic.c:12:0:
-./include/netlink/cli/utils.h:25:19: fatal error: dlfcn.h: No such file or directory
-compilation terminated.
-Makefile:3666: recipe for target 'lib/cli/cls/lib_cli_cls_basic_la-basic.lo' failed
-make[1]: *** [lib/cli/cls/lib_cli_cls_basic_la-basic.lo] Error 1
-
-Revert that commit to restore the ability of static only build of libnl, and
-its dependencies.
-
-Signed-off-by: Baruch Siach <baruch@tkos.co.il>
----
-Upstream status: https://github.com/thom311/libnl/pull/141
-
- Makefile.am | 21 ++++++---------------
- 1 file changed, 6 insertions(+), 15 deletions(-)
-
---- a/Makefile.am
-+++ b/Makefile.am
-@@ -3,8 +3,6 @@
- ACLOCAL_AMFLAGS = -I m4
-
- lib_LTLIBRARIES =
--noinst_LTLIBRARIES =
--check_LTLIBRARIES =
-
- check_PROGRAMS =
- check_programs =
-@@ -511,6 +509,8 @@ EXTRA_lib_libnl_xfrm_3_la_DEPENDENCIES =
- lib_libnl_xfrm_3_la_LIBADD = \
- lib/libnl-3.la
-
-+if ENABLE_CLI
-+
- lib_cli_ltlibraries_cls = \
- lib/cli/cls/basic.la \
- lib/cli/cls/cgroup.la
-@@ -524,15 +524,11 @@ lib_cli_ltlibraries_qdisc = \
- lib/cli/qdisc/pfifo.la \
- lib/cli/qdisc/plug.la
-
--if ENABLE_CLI
- pkglib_clsdir = $(pkglibdir)/cli/cls
- pkglib_qdiscdir = $(pkglibdir)/cli/qdisc
- pkglib_cls_LTLIBRARIES = $(lib_cli_ltlibraries_cls)
- pkglib_qdisc_LTLIBRARIES = $(lib_cli_ltlibraries_qdisc)
--else
--check_LTLIBRARIES += \
-- $(lib_cli_ltlibraries_cls) \
-- $(lib_cli_ltlibraries_qdisc)
-+
- endif
-
- lib_cli_ldflags = \
-@@ -565,9 +561,6 @@ src_lib_ldflags =
-
- if ENABLE_CLI
- lib_LTLIBRARIES += src/lib/libnl-cli-3.la
--src_lib_ldflags += -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)
--else
--check_LTLIBRARIES += src/lib/libnl-cli-3.la
- endif
-
- src_lib_libnl_cli_3_la_SOURCES = \
-@@ -594,7 +587,7 @@ src_lib_libnl_cli_3_la_CPPFLAGS = \
- -I$(srcdir)/include \
- -I$(builddir)/include
- src_lib_libnl_cli_3_la_LDFLAGS = \
-- $(src_lib_ldflags) \
-+ -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) \
- -Wl,--version-script=$(srcdir)/libnl-cli-3.sym
- src_lib_libnl_cli_3_la_LIBADD = \
- lib/libnl-3.la \
-@@ -679,8 +672,6 @@ else
- noinst_PROGRAMS += $(cli_programs)
- endif
- endif
--else
--check_PROGRAMS += $(cli_programs)
- endif
-
- src_genl_ctrl_list_CPPFLAGS = $(src_cppflags)
-@@ -858,10 +849,12 @@ tests_test_complex_HTB_with_hash_filters
- tests_test_u32_filter_with_actions_CPPFLAGS = $(tests_cppflags)
- tests_test_u32_filter_with_actions_LDADD = $(tests_ldadd)
-
-+if ENABLE_CLI
- check_PROGRAMS += \
- tests/test-cache-mngr \
- tests/test-genl \
- tests/test-nf-cache-mngr
-+endif
-
- tests_cli_ldadd = \
- $(tests_ldadd) \