Blame view

buildroot/buildroot-2016.08.1/package/norm/0003-remove-kernel-headers-include-musl-fix.patch 2.83 KB
6b13f685e   김민수   BSP 최초 추가
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
  Remove kernel header includes causing issues with musl
  
  Include the kernel headers from netfilter causes a conflict with the
  <netinet/in.h> way of defining the IPPROTO_* constants, resulting in
  the following build failure:
  
  In file included from /home/peko/autobuild/instance-0/output/host/usr/arm-buildroot-linux-musleabihf/sysroot/usr/include/netdb.h:9:0,
                   from /home/peko/autobuild/instance-0/output/build/norm-1.5r6/protolib/include/protoAddress.h:13,
                   from /home/peko/autobuild/instance-0/output/build/norm-1.5r6/protolib/include/protoDetour.h:5,
                   from ../protolib/src/linux/linuxDetour.cpp:3:
  /home/peko/autobuild/instance-0/output/host/usr/arm-buildroot-linux-musleabihf/sysroot/usr/include/linux/in.h:28:3: error: expected identifier before numeric constant
     IPPROTO_IP = 0,  /* Dummy protocol for TCP  */
     ^
  /home/peko/autobuild/instance-0/output/host/usr/arm-buildroot-linux-musleabihf/sysroot/usr/include/linux/in.h:28:3: error: expected '}' before numeric constant
  /home/peko/autobuild/instance-0/output/host/usr/arm-buildroot-linux-musleabihf/sysroot/usr/include/linux/in.h:28:3: error: expected unqualified-id before numeric constant
  In file included from /home/peko/autobuild/instance-0/output/host/usr/arm-buildroot-linux-musleabihf/sysroot/usr/include/linux/netfilter.h:7:0,
                   from /home/peko/autobuild/instance-0/output/host/usr/arm-buildroot-linux-musleabihf/sysroot/usr/include/linux/netfilter_ipv4.h:8,
                   from ../protolib/src/linux/linuxDetour.cpp:10:
  /home/peko/autobuild/instance-0/output/host/usr/arm-buildroot-linux-musleabihf/sysroot/usr/include/linux/in.h:79:1: error: expected declaration before '}' token
   };
   ^
  
  Since from musl's developers perspective including kernel headers is
  seen as being unsafe, we simply duplicate the necessary netfilter
  definitions (there are just a few) instead of including some kernel
  headers.
  
  Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
  
  Index: b/protolib/src/linux/linuxDetour.cpp
  ===================================================================
  --- a/protolib/src/linux/linuxDetour.cpp
  +++ b/protolib/src/linux/linuxDetour.cpp
  @@ -7,15 +7,18 @@
   #include <stdlib.h>  // for atoi(), getenv()
   #include <stdio.h>
   #include <unistd.h>  // for close()
  -#include <linux/netfilter_ipv4.h>  // for NF_IP_LOCAL_OUT, etc
  -#include <linux/netfilter_ipv6.h>  // for NF_IP6_LOCAL_OUT, etc
  -#include <linux/netfilter.h>  // for NF_ACCEPT, etc
   #include <libnetfilter_queue/libnetfilter_queue.h>
   
   #include <fcntl.h>  // for fcntl(), etc
   #include <linux/if_ether.h>  // for ETH_P_IP
   #include <net/if_arp.h>   // for ARPHRD_ETHER
   
  +/* From netfilter kernel headers */
  +#define NF_IP_LOCAL_OUT		3
  +
  +#define NF_DROP 		0
  +#define NF_ACCEPT 		1
  +
   /** NOTES: 
    *
    * 1) This newer implementation of LinuxDetour uses netfilter_queue