Browse Source

tinc: fix musl compatibility

Let configure include `sys/if_tun.h` when testing for `netinet/if_ether.h`
to detect the Kernel/libc header conflict on musl.

After this patch, configure will correctly detect `netinet/if_ether.h` as
unusable and the subsequent compilation will not attempt to use it.

Fixes the following compatibility error:

	In file included from .../staging_dir/toolchain-mips_mips32_gcc-4.8-linaro_musl-1.1.9/include/linux/if_tun.h:20:0,
	                 from linux/device.c:24:
	.../staging_dir/toolchain-mips_mips32_gcc-4.8-linaro_musl-1.1.9/include/linux/if_ether.h:137:8: error: redefinition of 'struct ethhdr'
	 struct ethhdr {
	        ^
	In file included from .../staging_dir/toolchain-mips_mips32_gcc-4.8-linaro_musl-1.1.9/include/net/ethernet.h:10:0,
	                 from linux/../have.h:180,
	                 from linux/../system.h:26,
	                 from linux/device.c:21:
	.../staging_dir/toolchain-mips_mips32_gcc-4.8-linaro_musl-1.1.9/include/netinet/if_ether.h:96:8: note: originally defined here
	 struct ethhdr {
	        ^
	make[5]: *** [linux/device.o] Error 1

Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
Jo-Philipp Wich 9 years ago
parent
commit
4004ec2c75
2 changed files with 13 additions and 2 deletions
  1. 2
    2
      net/tinc/Makefile
  2. 11
    0
      net/tinc/patches/100-musl-compat.patch

+ 2
- 2
net/tinc/Makefile View File

@@ -1,5 +1,5 @@
1 1
 #
2
-# Copyright (C) 2007-2014 OpenWrt.org
2
+# Copyright (C) 2007-2015 OpenWrt.org
3 3
 #
4 4
 # This is free software, licensed under the GNU General Public License v2.
5 5
 # See /LICENSE for more information.
@@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
9 9
 
10 10
 PKG_NAME:=tinc
11 11
 PKG_VERSION:=1.0.25
12
-PKG_RELEASE:=1
12
+PKG_RELEASE:=2
13 13
 
14 14
 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
15 15
 PKG_SOURCE_URL:=http://www.tinc-vpn.org/packages

+ 11
- 0
net/tinc/patches/100-musl-compat.patch View File

@@ -0,0 +1,11 @@
1
+--- a/src/have.h
2
++++ b/src/have.h
3
+@@ -196,4 +196,8 @@
4
+ #include <netinet/if_ether.h>
5
+ #endif
6
+ 
7
++#ifdef HAVE_LINUX_IF_TUN_H
8
++#include <linux/if_tun.h>
9
++#endif
10
++
11
+ #endif /* __TINC_SYSTEM_H__ */