Go to file
Lorenzo Colitti 596b1c94aa iproute: build more easily on Android
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>
2017-10-11 10:35:45 -07:00
bash-completion tc: bash-completion: Add support for matchall 2017-02-07 11:44:53 -08:00
bridge config: put CFLAGS/LDLIBS in config.mk 2017-08-23 10:03:09 -07:00
devlink devlink: Add support for protocol IPv4/IPv6/Ethernet special formats 2017-09-07 15:10:25 -07:00
doc/actions doc: drop old ip command documentation 2017-09-29 10:51:02 -07:00
etc/iproute2 whitespace cleanup 2017-01-12 17:31:20 -08:00
examples examples: Some shell fixes to cbq.init 2017-08-18 09:11:00 -07:00
genl Merge branch 'master' into net-next 2017-09-01 12:17:48 -07:00
include iproute: build more easily on Android 2017-10-11 10:35:45 -07:00
ip Check user supplied interface name lengths 2017-10-02 08:01:21 -07:00
lib Check user supplied interface name lengths 2017-10-02 08:01:21 -07:00
man man: fix documentation for range of route table ID 2017-09-22 10:09:04 -07:00
misc Check user supplied interface name lengths 2017-10-02 08:01:21 -07:00
netem Merge branch 'master' into net-next 2017-08-24 15:30:32 -07:00
rdma Merge branch 'master' into net-next 2017-08-24 15:30:32 -07:00
schema bridge: add json schema for bridge fdb show 2016-07-20 12:02:02 -07:00
tc Check user supplied interface name lengths 2017-10-02 08:01:21 -07:00
testsuite testsuite: search for kernel config in /boot 2017-02-17 15:26:30 -08:00
tipc tipc: don't need custom CFLAGS 2017-10-11 10:35:38 -07:00
.gitignore ignore generated Config file 2017-09-29 10:02:45 -07:00
configure config: put CFLAGS/LDLIBS in config.mk 2017-08-23 10:03:09 -07:00
COPYING Update address of FSF in license 2008-03-08 13:31:03 -08:00
Makefile iproute: build more easily on Android 2017-10-11 10:35:45 -07:00
README config: put CFLAGS/LDLIBS in config.mk 2017-08-23 10:03:09 -07:00
README.decnet Decnet documentation update 2005-06-13 18:47:56 +00:00
README.devel iproute2: fix minor typo in comments 2011-07-11 10:11:09 -07:00
README.distribution README cleanup's 2012-01-03 15:04:55 -08:00
README.iproute2+tc tc, bpf: finalize eBPF support for cls and act front-end 2015-04-10 13:31:19 -07:00
README.lnstat Rename: misc/README.lnstat -> README.lnstat 2004-10-19 20:24:47 +00:00

This is a set of utilities for Linux networking.

Information:
    http://www.linuxfoundation.org/collaborate/workgroups/networking/iproute2

Download:
    http://www.kernel.org/pub/linux/utils/net/iproute2/

Repository:
    git://git.kernel.org/pub/scm/linux/kernel/git/shemminger/iproute2.git

How to compile this.
--------------------
1. libdbm

arpd needs to have the db4 development libraries. For Debian
users this is the package with a name like libdb4.x-dev.
DBM_INCLUDE points to the directory with db_185.h which
is the include file used by arpd to get to the old format Berkeley
database routines.  Often this is in the db-devel package.

2. make

The makefile will automatically build a config.mk file which
contains definitions of libraries that may or may not be available
on the system such as: ATM, ELF, MNL, and SELINUX.

3. To make documentation, cd to doc/ directory , then
   look at start of Makefile and set correct values for
   PAGESIZE=a4		, ie: a4 , letter ...	(string)
   PAGESPERPAGE=2	, ie: 1 , 2 ...		(numeric)
   and make there. It assumes, that latex, dvips and psnup
   are in your path.

4. This package includes matching sanitized kernel headers because
   the build environment may not have up to date versions. See Makefile
   if you have special requirements and need to point at different
   kernel include files.

Stephen Hemminger
stephen@networkplumber.org

Alexey Kuznetsov
kuznet@ms2.inr.ac.ru