Re: [PATCH 1/3] tools include: Add uapi mman.h for each architecture

From: Wangnan (F)
Date: Tue Sep 13 2016 - 02:36:41 EST




On 2016/9/13 5:15, Arnaldo Carvalho de Melo wrote:
Em Mon, Sep 12, 2016 at 04:07:42PM -0300, Arnaldo Carvalho de Melo escreveu:
Em Mon, Sep 12, 2016 at 12:54:29PM +0000, Wang Nan escreveu:
Some mmap related macros have different values for different
architectures. This patch introduces uapi mman.h for each
architectures.

Three headers are cloned from kernel include to tools/include:

tools/include/uapi/asm-generic/mman-common.h
tools/include/uapi/asm-generic/mman.h
tools/include/uapi/linux/mman.h
Cool, the above was done as copies, why not the rest? IIRC you mentioned
some reasoning behind that decision, but we need it spelled out here.

For instance, I went on and look at arch/xtensa/include/uapi/asm/mman.h,
and couldn't find why we shouldn't copy it just like the three files
above.

I'm looking now at why the build breaks in so many systems, first hunch
is that bits/ part (the ones without the failure details probably have
the same errors), alpine uses musl libc, but some that broke are glibc
based.
So, please take a look at my perf/core branch, I applied 1/3 and 3/3,
but took a different path for 2/3, now it builds for all systems I have
containers for:

Clever! The key is to use mman.h in uapi instead of <sys/mman.h>.
Code require these macros is coincidentally needn't the definition
of functions like mmap, munmap and mprotect. Your solution is
better.

Thank you.

# time dm
1 67.700 alpine:3.4: Ok
2 23.565 android-ndk:r12b-arm: Ok
3 67.823 archlinux:latest: Ok
4 37.277 centos:5: Ok
5 57.621 centos:6: Ok
6 68.348 centos:7: Ok
7 61.971 debian:7: Ok
8 65.711 debian:8: Ok
9 36.894 debian:experimental: Ok
10 66.274 fedora:20: Ok
11 70.054 fedora:21: Ok
12 68.310 fedora:22: Ok
13 68.033 fedora:23: Ok
14 72.322 fedora:24: Ok
15 29.529 fedora:24-x-ARC-uClibc: Ok
16 77.458 fedora:rawhide: Ok
17 80.110 mageia:5: Ok
18 72.664 opensuse:13.2: Ok
19 70.878 opensuse:42.1: Ok
20 80.322 opensuse:tumbleweed: Ok
21 62.237 ubuntu:12.04.5: Ok
22 39.998 ubuntu:14.04: Ok
23 69.383 ubuntu:14.04.4: Ok
24 76.120 ubuntu:15.10: Ok
25 69.668 ubuntu:16.04: Ok
26 69.061 ubuntu:16.04-x-arm: Ok
27 73.337 ubuntu:16.04-x-arm64: Ok
28 77.061 ubuntu:16.04-x-powerpc64: Ok
29 55.340 ubuntu:16.04-x-powerpc64el: Ok
30 85.579 ubuntu:16.10: Ok
31 59.645 ubuntu:16.10-x-s390: Ok

real 32m59.385s
user 0m1.856s
sys 0m2.077s
#