summaryrefslogtreecommitdiff
path: root/toolchain
diff options
context:
space:
mode:
Diffstat (limited to 'toolchain')
-rw-r--r--toolchain/toolchain/toolchain.mk9
1 files changed, 9 insertions, 0 deletions
diff --git a/toolchain/toolchain/toolchain.mk b/toolchain/toolchain/toolchain.mk
index d317e917d..b16db0150 100644
--- a/toolchain/toolchain/toolchain.mk
+++ b/toolchain/toolchain/toolchain.mk
@@ -16,11 +16,20 @@ TOOLCHAIN_ADD_TOOLCHAIN_DEPENDENCY = NO
# headers and kernel headers. This is a temporary measure until musl finds a
# better solution.
#
+# Augment the original suggestion with __USE_MISC since recent kernels
+# require this glibc internal macro. Also, as musl defines IFF_LOWER_UP,
+# IFF_DORMANT and IFF_ECHO, add another macro to suppress them in the
+# kernel header, and avoid macro/enum conflict.
+#
# [1] http://www.openwall.com/lists/musl/2015/10/08/2
ifeq ($(BR2_TOOLCHAIN_USES_MUSL),y)
define TOOLCHAIN_MUSL_KERNEL_HEADERS_COMPATIBILITY_HACK
$(SED) 's/^#if defined(__GLIBC__)$$/#if 1/' \
$(STAGING_DIR)/usr/include/linux/libc-compat.h
+ $(SED) '1s/^/#define __USE_MISC\n/' \
+ $(STAGING_DIR)/usr/include/linux/libc-compat.h
+ $(SED) '1s/^/#define __UAPI_DEF_IF_NET_DEVICE_FLAGS_LOWER_UP_DORMANT_ECHO 0\n/' \
+ $(STAGING_DIR)/usr/include/linux/libc-compat.h
endef
TOOLCHAIN_POST_INSTALL_STAGING_HOOKS += TOOLCHAIN_MUSL_KERNEL_HEADERS_COMPATIBILITY_HACK
TOOLCHAIN_INSTALL_STAGING = YES