Some macros have different value for different archs. For example: $ grep '#define MAP_HUGETLB' ./arch/*/include/ ./include/ -r ./arch/alpha/include/uapi/asm/mman.h:#define MAP_HUGETLB 0x100000 ./arch/mips/include/uapi/asm/mman.h:#define MAP_HUGETLB 0x80000 ./arch/parisc/include/uapi/asm/mman.h:#define MAP_HUGETLB 0x80000 ./arch/powerpc/include/uapi/asm/mman.h:#define MAP_HUGETLB 0x40000 ./arch/sparc/include/uapi/asm/mman.h:#define MAP_HUGETLB 0x40000 ./arch/tile/include/uapi/asm/mman.h:#define MAP_HUGETLB 0x4000 ./arch/xtensa/include/uapi/asm/mman.h:#define MAP_HUGETLB 0x80000 ./include/uapi/asm-generic/mman.h:#define MAP_HUGETLB 0x40000
Current tools/perf/trace/beauty/mmap.c works for x86 only. This patchset clone required macros from kernel source tree to tools/. By replacing bits/mman.h, #include <sys/mman.h> automatically use correct macros. Wang Nan (3): tools include: Add uapi mman.h for each architecture tools include: Introduce bits/mman.h perf build: Compare mman.h related headers againest kernel tools/arch/alpha/include/uapi/asm/mman.h | 38 ++++++++++++++ tools/arch/arm/include/uapi/asm/mman.h | 4 ++ tools/arch/arm64/include/uapi/asm/mman.h | 4 ++ tools/arch/frv/include/uapi/asm/mman.h | 4 ++ tools/arch/h8300/include/uapi/asm/mman.h | 4 ++ tools/arch/hexagon/include/uapi/asm/mman.h | 4 ++ tools/arch/ia64/include/uapi/asm/mman.h | 4 ++ tools/arch/m32r/include/uapi/asm/mman.h | 4 ++ tools/arch/microblaze/include/uapi/asm/mman.h | 4 ++ tools/arch/mips/include/uapi/asm/mman.h | 39 ++++++++++++++ tools/arch/mn10300/include/uapi/asm/mman.h | 4 ++ tools/arch/parisc/include/uapi/asm/mman.h | 38 ++++++++++++++ tools/arch/powerpc/include/uapi/asm/mman.h | 13 +++++ tools/arch/s390/include/uapi/asm/mman.h | 4 ++ tools/arch/score/include/uapi/asm/mman.h | 4 ++ tools/arch/sh/include/uapi/asm/mman.h | 4 ++ tools/arch/sparc/include/uapi/asm/mman.h | 13 +++++ tools/arch/tile/include/uapi/asm/mman.h | 13 +++++ tools/arch/x86/include/uapi/asm/mman.h | 5 ++ tools/arch/xtensa/include/uapi/asm/mman.h | 38 ++++++++++++++ tools/include/bits/mman.h | 6 +++ tools/include/uapi/asm-generic/mman-common.h | 75 +++++++++++++++++++++++++++ tools/include/uapi/asm-generic/mman.h | 22 ++++++++ tools/include/uapi/linux/mman.h | 13 +++++ tools/perf/Makefile.perf | 9 ++++ 25 files changed, 370 insertions(+) create mode 100644 tools/arch/alpha/include/uapi/asm/mman.h create mode 100644 tools/arch/arm/include/uapi/asm/mman.h create mode 100644 tools/arch/arm64/include/uapi/asm/mman.h create mode 100644 tools/arch/frv/include/uapi/asm/mman.h create mode 100644 tools/arch/h8300/include/uapi/asm/mman.h create mode 100644 tools/arch/hexagon/include/uapi/asm/mman.h create mode 100644 tools/arch/ia64/include/uapi/asm/mman.h create mode 100644 tools/arch/m32r/include/uapi/asm/mman.h create mode 100644 tools/arch/microblaze/include/uapi/asm/mman.h create mode 100644 tools/arch/mips/include/uapi/asm/mman.h create mode 100644 tools/arch/mn10300/include/uapi/asm/mman.h create mode 100644 tools/arch/parisc/include/uapi/asm/mman.h create mode 100644 tools/arch/powerpc/include/uapi/asm/mman.h create mode 100644 tools/arch/s390/include/uapi/asm/mman.h create mode 100644 tools/arch/score/include/uapi/asm/mman.h create mode 100644 tools/arch/sh/include/uapi/asm/mman.h create mode 100644 tools/arch/sparc/include/uapi/asm/mman.h create mode 100644 tools/arch/tile/include/uapi/asm/mman.h create mode 100644 tools/arch/x86/include/uapi/asm/mman.h create mode 100644 tools/arch/xtensa/include/uapi/asm/mman.h create mode 100644 tools/include/bits/mman.h create mode 100644 tools/include/uapi/asm-generic/mman-common.h create mode 100644 tools/include/uapi/asm-generic/mman.h create mode 100644 tools/include/uapi/linux/mman.h -- 1.8.3.4