Message ID | 1484043770-13206-2-git-send-email-sudeep.holla@arm.com |
---|---|
State | New |
Headers | show |
Em Tue, Jan 10, 2017 at 10:22:50AM +0000, Sudeep Holla escreveu: > All the other occurrence refer "uapi/asm-generic/*.h" directly instead > of "uapi/asm/*.h" in tools/include except mman.h. Without this patch, > the following build failure is seen. > Seen where? I don't see it here, and I build perf for lots of different systems: # time dm 1 alpine:3.4: Ok 2 android-ndk:r12b-arm: Ok 3 archlinux:latest: Ok 4 centos:5: Ok 5 centos:6: Ok 6 centos:7: Ok 7 debian:7: Ok 8 debian:8: Ok 9 debian:experimental: Ok 10 debian:experimental-x-arm64: Ok 11 debian:experimental-x-mips64: Ok 12 debian:experimental-x-mipsel: Ok 13 fedora:20: Ok 14 fedora:21: Ok 15 fedora:22: Ok 16 fedora:23: Ok 17 fedora:24: Ok 18 fedora:24-x-ARC-uClibc: Ok 19 fedora:25: Ok 20 fedora:rawhide: Ok 21 mageia:5: Ok 22 opensuse:13.2: Ok 23 opensuse:42.1: Ok 24 opensuse:tumbleweed: Ok 25 ubuntu:12.04.5: Ok 26 ubuntu:14.04.4-x-linaro-arm64: Ok 27 ubuntu:15.10: Ok 28 ubuntu:16.04: Ok 29 ubuntu:16.04-x-arm: Ok 30 ubuntu:16.04-x-arm64: Ok 31 ubuntu:16.04-x-powerpc: Ok 32 ubuntu:16.04-x-powerpc64: Ok 33 ubuntu:16.04-x-powerpc64el: Ok 34 ubuntu:16.04-x-s390: Ok 35 ubuntu:16.10: Ok The ones for cross compiling (-x-) mostly don't have the full set of devel packages, but even so, I am not seeing this problem, can you please describe more precisely the environment where you notice this problem? Assuming this is on ARM, based on your e-mail address, for instance, debian:experimental-x-arm64 is built with this Dockerfile, look at the packages used: [root@jouet x-arm64]# cat Dockerfile # docker.io/acmel/linux-perf-tools-build-debian:experimental-x-arm64 FROM docker.io/debian:experimental MAINTAINER Arnaldo Carvalho de Melo <acme@kernel.org> #ENV DEBIAN_FRONTEND noninteractive # libelf-dev, a host package, is needed to build objtool, that will run # on the host checking target object files. It is also needed for samples/bpf/, # but that is disabled as cross compilation is not available for it, would require # a cross clang, etc. # objtool is disabled because it requires a per arch function that is # missing for # arm64: # make[1]: Leaving directory '/git/linux/tools/objtool' # LINK /tmp/build/objtool/objtool # /tmp/build/objtool/objtool-in.o: In function `decode_instructions': # /git/linux/tools/objtool/builtin-check.c:296: undefined reference to `arch_decode_instruction' # collect2: error: ld returned 1 exit status # Makefile:45: recipe for target '/tmp/build/objtool/objtool' failed # make: *** [/tmp/build/objtool/objtool] Error 1 # make: Leaving directory '/git/linux/tools/objtool' # debian:experimental-x-arm64: FAIL ENV ARCH arm64 ENV TARGET aarch64-linux-gnu RUN dpkg --add-architecture ${ARCH} && \ apt-get -y update && \ apt-get -y install \ make flex bison \ crossbuild-essential-${ARCH} \ libaudit-dev:${ARCH} \ libdw-dev:${ARCH} \ libelf-dev:${ARCH} \ liblzma-dev:${ARCH} \ libnuma-dev:${ARCH} \ libperl-dev:${ARCH} \ libslang2-dev:${ARCH} \ libssl-dev:${ARCH} \ libunwind-dev:${ARCH} \ systemtap-sdt-dev:${ARCH} && \ apt-get -y clean && \ rm -rf /usr/share/doc /usr/share/gtk-doc /usr/share/locale /usr/share/man && \ mkdir -m 777 -p /tmp/build/perf /tmp/build/objtool /tmp/build/linux && \ groupadd -r perfbuilder && \ useradd -m -r -g perfbuilder perfbuilder && \ unset TARGET INSTALLDIR TARGETMACH CROSS CC LD AS && \ chown -R perfbuilder.perfbuilder /tmp/build/ USER perfbuilder ENTRYPOINT make ARCH=${ARCH} CROSS_COMPILE=${TARGET}- -C /git/linux/tools/perf O=/tmp/build/perf && \ rm -rf /tmp/build/perf/{.[^.]*,*} && \ make ARCH=${ARCH} CROSS_COMPILE=${TARGET}- -C /git/linux/tools/perf O=/tmp/build/perf NO_LIBELF=1 # make ARCH=${ARCH} CROSS_COMPILE=${TARGET}- -C /git/linux/tools/objtool O=/tmp/build/objtool && \ # make ARCH=${ARCH} CROSS_COMPILE=${TARGET}- -C /git/linux O=/tmp/build/linux allmodconfig && \ # make ARCH=${ARCH} CROSS_COMPILE=${TARGET}- -C /git/linux O=/tmp/build/linux headers_install && \ # make ARCH=${ARCH} CROSS_COMPILE=${TARGET}- -C /git/linux O=/tmp/build/linux samples/bpf/ [root@jouet x-arm64]# > In file included from util/event.c:2:0: > tools/include/uapi/linux/mman.h:4:27: fatal error: uapi/asm/mman.h: No such file or directory > compilation terminated. > > Fixes: f3539c12d819 ("tools include: Add uapi mman.h for each architecture") > Cc: Wang Nan <wangnan0@huawei.com> > Cc: Arnaldo Carvalho de Melo <acme@redhat.com> > Cc: Peter Zijlstra <peterz@infradead.org> > Cc: Ingo Molnar <mingo@redhat.com> > Signed-off-by: Sudeep Holla <sudeep.holla@arm.com> > --- > tools/include/uapi/linux/mman.h | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/tools/include/uapi/linux/mman.h b/tools/include/uapi/linux/mman.h > index 81d8edf11789..74a19ae15cd1 100644 > --- a/tools/include/uapi/linux/mman.h > +++ b/tools/include/uapi/linux/mman.h > @@ -1,7 +1,7 @@ > #ifndef _UAPI_LINUX_MMAN_H > #define _UAPI_LINUX_MMAN_H > > -#include <uapi/asm/mman.h> > +#include <uapi/asm-generic/mman.h> > > #define MREMAP_MAYMOVE 1 > #define MREMAP_FIXED 2 > -- > 2.7.4
On 10/01/17 14:43, Arnaldo Carvalho de Melo wrote: > Em Tue, Jan 10, 2017 at 10:22:50AM +0000, Sudeep Holla escreveu: >> All the other occurrence refer "uapi/asm-generic/*.h" directly instead >> of "uapi/asm/*.h" in tools/include except mman.h. Without this patch, >> the following build failure is seen. >> > > Seen where? I don't see it here, and I build perf for lots of different > systems: > [...] > The ones for cross compiling (-x-) mostly don't have the full set of > devel packages, but even so, I am not seeing this problem, can you > please describe more precisely the environment where you notice this > problem? > > Assuming this is on ARM, based on your e-mail address, for instance, > debian:experimental-x-arm64 is built with this Dockerfile, look at the > packages used: In fact this is on x86_64. I noticed the actual difference today when I was experimenting further. make ARCH=x86_64 -C tools O=/tmp/perf perf ----> fails to build make -C tools O=/tmp/perf perf ----> Builds fine -- Regards, Sudeep
diff --git a/tools/include/uapi/linux/mman.h b/tools/include/uapi/linux/mman.h index 81d8edf11789..74a19ae15cd1 100644 --- a/tools/include/uapi/linux/mman.h +++ b/tools/include/uapi/linux/mman.h @@ -1,7 +1,7 @@ #ifndef _UAPI_LINUX_MMAN_H #define _UAPI_LINUX_MMAN_H -#include <uapi/asm/mman.h> +#include <uapi/asm-generic/mman.h> #define MREMAP_MAYMOVE 1 #define MREMAP_FIXED 2
All the other occurrence refer "uapi/asm-generic/*.h" directly instead of "uapi/asm/*.h" in tools/include except mman.h. Without this patch, the following build failure is seen. In file included from util/event.c:2:0: tools/include/uapi/linux/mman.h:4:27: fatal error: uapi/asm/mman.h: No such file or directory compilation terminated. Fixes: f3539c12d819 ("tools include: Add uapi mman.h for each architecture") Cc: Wang Nan <wangnan0@huawei.com> Cc: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Ingo Molnar <mingo@redhat.com> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com> --- tools/include/uapi/linux/mman.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- 2.7.4