Thread (6 messages) flat view 6 messages, 4 authors, 2017-10-11

Re: [PATCH iproute2] iproute: build more easily on Android

From: Stephen Hemminger <stephen@networkplumber.org>
Date: 2017-10-02 17:36:18

On Tue,  3 Oct 2017 02:03:37 +0900
Lorenzo Colitti [off-list ref] wrote:
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 <redacted>
Signed-off-by: Lorenzo Colitti <redacted>
Rather than moving everything, why not make kernel headers directory
configurable as part of the configure script setup process.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help