]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
iproute: build more easily on Android
authorLorenzo Colitti <lorenzo@google.com>
Mon, 2 Oct 2017 17:03:37 +0000 (02:03 +0900)
committerStephen Hemminger <stephen@networkplumber.org>
Wed, 11 Oct 2017 17:35:45 +0000 (10:35 -0700)
iproute2 contains a bunch of kernel headers, including uapi ones.
Android's libc uses uapi headers almost directly, and uses a
script to fix kernel types that don't match what userspace
expects.

For example: https://issuetracker.google.com/36987220 reports
that our struct ip_mreq_source contains "__be32 imr_multiaddr"
rather than "struct in_addr imr_multiaddr". The script addresses
this by replacing the uapi struct definition with a #include
<bits/ip_mreq.h> which contains the traditional userspace
definition.

Unfortunately, when we compile iproute2, this definition
conflicts with the one in iproute2's linux/in.h.

Historically we've just solved this problem by running "git rm"
on all the iproute2 include/linux headers that break Android's
libc.  However, deleting the files in this way makes it harder to
keep up with upstream, because every upstream change to
an include file causes a merge conflict with the delete.

This patch fixes the problem by moving the iproute2 linux headers
from include/linux to include/uapi/linux.

Tested: compiles on ubuntu trusty (glibc)

Signed-off-by: Elliott Hughes <enh@google.com>
Signed-off-by: Lorenzo Colitti <lorenzo@google.com>
111 files changed:
Makefile
include/uapi/linux/atm.h [moved from include/linux/atm.h with 100% similarity]
include/uapi/linux/atmapi.h [moved from include/linux/atmapi.h with 100% similarity]
include/uapi/linux/atmarp.h [moved from include/linux/atmarp.h with 100% similarity]
include/uapi/linux/atmdev.h [moved from include/linux/atmdev.h with 100% similarity]
include/uapi/linux/atmioc.h [moved from include/linux/atmioc.h with 100% similarity]
include/uapi/linux/atmsap.h [moved from include/linux/atmsap.h with 100% similarity]
include/uapi/linux/bpf.h [moved from include/linux/bpf.h with 100% similarity]
include/uapi/linux/bpf_common.h [moved from include/linux/bpf_common.h with 100% similarity]
include/uapi/linux/can.h [moved from include/linux/can.h with 100% similarity]
include/uapi/linux/can/netlink.h [moved from include/linux/can/netlink.h with 100% similarity]
include/uapi/linux/can/vxcan.h [moved from include/linux/can/vxcan.h with 100% similarity]
include/uapi/linux/devlink.h [moved from include/linux/devlink.h with 100% similarity]
include/uapi/linux/elf-em.h [moved from include/linux/elf-em.h with 100% similarity]
include/uapi/linux/fib_rules.h [moved from include/linux/fib_rules.h with 100% similarity]
include/uapi/linux/filter.h [moved from include/linux/filter.h with 100% similarity]
include/uapi/linux/fou.h [moved from include/linux/fou.h with 100% similarity]
include/uapi/linux/gen_stats.h [moved from include/linux/gen_stats.h with 100% similarity]
include/uapi/linux/genetlink.h [moved from include/linux/genetlink.h with 100% similarity]
include/uapi/linux/hdlc/ioctl.h [moved from include/linux/hdlc/ioctl.h with 100% similarity]
include/uapi/linux/icmpv6.h [moved from include/linux/icmpv6.h with 100% similarity]
include/uapi/linux/if.h [moved from include/linux/if.h with 100% similarity]
include/uapi/linux/if_addr.h [moved from include/linux/if_addr.h with 100% similarity]
include/uapi/linux/if_addrlabel.h [moved from include/linux/if_addrlabel.h with 100% similarity]
include/uapi/linux/if_alg.h [moved from include/linux/if_alg.h with 100% similarity]
include/uapi/linux/if_arp.h [moved from include/linux/if_arp.h with 100% similarity]
include/uapi/linux/if_bonding.h [moved from include/linux/if_bonding.h with 100% similarity]
include/uapi/linux/if_bridge.h [moved from include/linux/if_bridge.h with 100% similarity]
include/uapi/linux/if_ether.h [moved from include/linux/if_ether.h with 100% similarity]
include/uapi/linux/if_link.h [moved from include/linux/if_link.h with 100% similarity]
include/uapi/linux/if_macsec.h [moved from include/linux/if_macsec.h with 100% similarity]
include/uapi/linux/if_packet.h [moved from include/linux/if_packet.h with 100% similarity]
include/uapi/linux/if_tun.h [moved from include/linux/if_tun.h with 100% similarity]
include/uapi/linux/if_tunnel.h [moved from include/linux/if_tunnel.h with 100% similarity]
include/uapi/linux/if_vlan.h [moved from include/linux/if_vlan.h with 100% similarity]
include/uapi/linux/ife.h [moved from include/linux/ife.h with 100% similarity]
include/uapi/linux/ila.h [moved from include/linux/ila.h with 100% similarity]
include/uapi/linux/in.h [moved from include/linux/in.h with 100% similarity]
include/uapi/linux/in6.h [moved from include/linux/in6.h with 100% similarity]
include/uapi/linux/in_route.h [moved from include/linux/in_route.h with 100% similarity]
include/uapi/linux/inet_diag.h [moved from include/linux/inet_diag.h with 100% similarity]
include/uapi/linux/ip.h [moved from include/linux/ip.h with 100% similarity]
include/uapi/linux/ip6_tunnel.h [moved from include/linux/ip6_tunnel.h with 100% similarity]
include/uapi/linux/ipsec.h [moved from include/linux/ipsec.h with 100% similarity]
include/uapi/linux/kernel.h [moved from include/linux/kernel.h with 100% similarity]
include/uapi/linux/l2tp.h [moved from include/linux/l2tp.h with 100% similarity]
include/uapi/linux/libc-compat.h [moved from include/linux/libc-compat.h with 100% similarity]
include/uapi/linux/limits.h [moved from include/linux/limits.h with 100% similarity]
include/uapi/linux/lwtunnel.h [moved from include/linux/lwtunnel.h with 100% similarity]
include/uapi/linux/magic.h [moved from include/linux/magic.h with 100% similarity]
include/uapi/linux/mpls.h [moved from include/linux/mpls.h with 100% similarity]
include/uapi/linux/mpls_iptunnel.h [moved from include/linux/mpls_iptunnel.h with 100% similarity]
include/uapi/linux/neighbour.h [moved from include/linux/neighbour.h with 100% similarity]
include/uapi/linux/net_namespace.h [moved from include/linux/net_namespace.h with 100% similarity]
include/uapi/linux/netconf.h [moved from include/linux/netconf.h with 100% similarity]
include/uapi/linux/netdevice.h [moved from include/linux/netdevice.h with 100% similarity]
include/uapi/linux/netfilter.h [moved from include/linux/netfilter.h with 100% similarity]
include/uapi/linux/netfilter/ipset/ip_set.h [moved from include/linux/netfilter/ipset/ip_set.h with 100% similarity]
include/uapi/linux/netfilter/x_tables.h [moved from include/linux/netfilter/x_tables.h with 100% similarity]
include/uapi/linux/netfilter/xt_set.h [moved from include/linux/netfilter/xt_set.h with 100% similarity]
include/uapi/linux/netfilter/xt_tcpudp.h [moved from include/linux/netfilter/xt_tcpudp.h with 100% similarity]
include/uapi/linux/netfilter_ipv4.h [moved from include/linux/netfilter_ipv4.h with 100% similarity]
include/uapi/linux/netfilter_ipv4/ip_tables.h [moved from include/linux/netfilter_ipv4/ip_tables.h with 100% similarity]
include/uapi/linux/netfilter_ipv6.h [moved from include/linux/netfilter_ipv6.h with 100% similarity]
include/uapi/linux/netfilter_ipv6/ip6_tables.h [moved from include/linux/netfilter_ipv6/ip6_tables.h with 100% similarity]
include/uapi/linux/netlink.h [moved from include/linux/netlink.h with 100% similarity]
include/uapi/linux/netlink_diag.h [moved from include/linux/netlink_diag.h with 100% similarity]
include/uapi/linux/packet_diag.h [moved from include/linux/packet_diag.h with 100% similarity]
include/uapi/linux/param.h [moved from include/linux/param.h with 100% similarity]
include/uapi/linux/pfkeyv2.h [moved from include/linux/pfkeyv2.h with 100% similarity]
include/uapi/linux/pkt_cls.h [moved from include/linux/pkt_cls.h with 100% similarity]
include/uapi/linux/pkt_sched.h [moved from include/linux/pkt_sched.h with 100% similarity]
include/uapi/linux/posix_types.h [moved from include/linux/posix_types.h with 100% similarity]
include/uapi/linux/rtnetlink.h [moved from include/linux/rtnetlink.h with 100% similarity]
include/uapi/linux/sctp.h [moved from include/linux/sctp.h with 100% similarity]
include/uapi/linux/seg6.h [moved from include/linux/seg6.h with 100% similarity]
include/uapi/linux/seg6_genl.h [moved from include/linux/seg6_genl.h with 100% similarity]
include/uapi/linux/seg6_hmac.h [moved from include/linux/seg6_hmac.h with 100% similarity]
include/uapi/linux/seg6_iptunnel.h [moved from include/linux/seg6_iptunnel.h with 100% similarity]
include/uapi/linux/seg6_local.h [moved from include/linux/seg6_local.h with 100% similarity]
include/uapi/linux/sock_diag.h [moved from include/linux/sock_diag.h with 100% similarity]
include/uapi/linux/socket.h [moved from include/linux/socket.h with 100% similarity]
include/uapi/linux/sockios.h [moved from include/linux/sockios.h with 100% similarity]
include/uapi/linux/stddef.h [moved from include/linux/stddef.h with 100% similarity]
include/uapi/linux/sysinfo.h [moved from include/linux/sysinfo.h with 100% similarity]
include/uapi/linux/tc_act/tc_bpf.h [moved from include/linux/tc_act/tc_bpf.h with 100% similarity]
include/uapi/linux/tc_act/tc_connmark.h [moved from include/linux/tc_act/tc_connmark.h with 100% similarity]
include/uapi/linux/tc_act/tc_csum.h [moved from include/linux/tc_act/tc_csum.h with 100% similarity]
include/uapi/linux/tc_act/tc_defact.h [moved from include/linux/tc_act/tc_defact.h with 100% similarity]
include/uapi/linux/tc_act/tc_gact.h [moved from include/linux/tc_act/tc_gact.h with 100% similarity]
include/uapi/linux/tc_act/tc_ife.h [moved from include/linux/tc_act/tc_ife.h with 100% similarity]
include/uapi/linux/tc_act/tc_ipt.h [moved from include/linux/tc_act/tc_ipt.h with 100% similarity]
include/uapi/linux/tc_act/tc_mirred.h [moved from include/linux/tc_act/tc_mirred.h with 100% similarity]
include/uapi/linux/tc_act/tc_nat.h [moved from include/linux/tc_act/tc_nat.h with 100% similarity]
include/uapi/linux/tc_act/tc_pedit.h [moved from include/linux/tc_act/tc_pedit.h with 100% similarity]
include/uapi/linux/tc_act/tc_sample.h [moved from include/linux/tc_act/tc_sample.h with 100% similarity]
include/uapi/linux/tc_act/tc_skbedit.h [moved from include/linux/tc_act/tc_skbedit.h with 100% similarity]
include/uapi/linux/tc_act/tc_skbmod.h [moved from include/linux/tc_act/tc_skbmod.h with 100% similarity]
include/uapi/linux/tc_act/tc_tunnel_key.h [moved from include/linux/tc_act/tc_tunnel_key.h with 100% similarity]
include/uapi/linux/tc_act/tc_vlan.h [moved from include/linux/tc_act/tc_vlan.h with 100% similarity]
include/uapi/linux/tc_ematch/tc_em_cmp.h [moved from include/linux/tc_ematch/tc_em_cmp.h with 100% similarity]
include/uapi/linux/tc_ematch/tc_em_meta.h [moved from include/linux/tc_ematch/tc_em_meta.h with 100% similarity]
include/uapi/linux/tc_ematch/tc_em_nbyte.h [moved from include/linux/tc_ematch/tc_em_nbyte.h with 100% similarity]
include/uapi/linux/tcp.h [moved from include/linux/tcp.h with 100% similarity]
include/uapi/linux/tcp_metrics.h [moved from include/linux/tcp_metrics.h with 100% similarity]
include/uapi/linux/tipc.h [moved from include/linux/tipc.h with 100% similarity]
include/uapi/linux/tipc_netlink.h [moved from include/linux/tipc_netlink.h with 100% similarity]
include/uapi/linux/types.h [moved from include/linux/types.h with 100% similarity]
include/uapi/linux/unix_diag.h [moved from include/linux/unix_diag.h with 100% similarity]
include/uapi/linux/veth.h [moved from include/linux/veth.h with 100% similarity]
include/uapi/linux/xfrm.h [moved from include/linux/xfrm.h with 100% similarity]

index 75c0e57006ce262d225a754fc087fd6952c7cadb..6ad9610430526f93419878b3c13d3851986be9bd 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -46,7 +46,7 @@ CCOPTS = -O2
 WFLAGS := -Wall -Wstrict-prototypes  -Wmissing-prototypes
 WFLAGS += -Wmissing-declarations -Wold-style-definition -Wformat=2
 
-CFLAGS := $(WFLAGS) $(CCOPTS) -I../include $(DEFINES) $(CFLAGS)
+CFLAGS := $(WFLAGS) $(CCOPTS) -I../include -I../include/uapi $(DEFINES) $(CFLAGS)
 YACCFLAGS = -d -t -v
 
 SUBDIRS=lib ip tc bridge misc netem genl tipc devlink rdma man
similarity index 100%
rename from include/linux/atm.h
rename to include/uapi/linux/atm.h
similarity index 100%
rename from include/linux/bpf.h
rename to include/uapi/linux/bpf.h
similarity index 100%
rename from include/linux/can.h
rename to include/uapi/linux/can.h
similarity index 100%
rename from include/linux/fou.h
rename to include/uapi/linux/fou.h
similarity index 100%
rename from include/linux/if.h
rename to include/uapi/linux/if.h
similarity index 100%
rename from include/linux/ife.h
rename to include/uapi/linux/ife.h
similarity index 100%
rename from include/linux/ila.h
rename to include/uapi/linux/ila.h
similarity index 100%
rename from include/linux/in.h
rename to include/uapi/linux/in.h
similarity index 100%
rename from include/linux/in6.h
rename to include/uapi/linux/in6.h
similarity index 100%
rename from include/linux/ip.h
rename to include/uapi/linux/ip.h
similarity index 100%
rename from include/linux/tcp.h
rename to include/uapi/linux/tcp.h