From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Tiezhu Yang <yangtiezhu@loongson.cn>
Cc: Peter Zijlstra <peterz@infradead.org>,
Ingo Molnar <mingo@redhat.com>,
Mark Rutland <mark.rutland@arm.com>,
Alexander Shishkin <alexander.shishkin@linux.intel.com>,
Jiri Olsa <jolsa@redhat.com>, Namhyung Kim <namhyung@kernel.org>,
linux-kernel@vger.kernel.org, Xuefeng Li <lixuefeng@loongson.cn>
Subject: Re: [PATCH v2] tools build: Check libasan and libubsan in Makefile.feature
Date: Tue, 16 Jun 2020 16:39:41 -0300 [thread overview]
Message-ID: <20200616193941.GD6393@kernel.org> (raw)
In-Reply-To: <7bbd7c0c-7e09-7eaf-5a54-602e70e36112@loongson.cn>
Em Mon, Jun 15, 2020 at 10:20:10AM +0800, Tiezhu Yang escreveu:
> On 06/03/2020 07:32 PM, Arnaldo Carvalho de Melo wrote:
> > Em Wed, Jun 03, 2020 at 02:10:04PM +0800, Tiezhu Yang escreveu:
> > > When build perf with ASan or UBSan, if libasan or libubsan can not find,
> > > the feature-glibc is 0 and there exists the following error log which is
> > > wrong, because we can find gnu/libc-version.h in /usr/include, glibc-devel
> > > is also installed.
> > > [yangtiezhu@linux perf]$ make DEBUG=1 EXTRA_CFLAGS='-fno-omit-frame-pointer -fsanitize=address'
> > > BUILD: Doing 'make -j4' parallel build
> > > HOSTCC fixdep.o
> > > HOSTLD fixdep-in.o
> > > LINK fixdep
> > > <stdin>:1:0: warning: -fsanitize=address and -fsanitize=kernel-address are not supported for this target
> > > <stdin>:1:0: warning: -fsanitize=address not supported for this target
> > > Auto-detecting system features:
> > > ... dwarf: [ OFF ]
> > > ... dwarf_getlocations: [ OFF ]
> > > ... glibc: [ OFF ]
> > > ... gtk2: [ OFF ]
> > > ... libaudit: [ OFF ]
> > > ... libbfd: [ OFF ]
> > > ... libcap: [ OFF ]
> > > ... libelf: [ OFF ]
> > > ... libnuma: [ OFF ]
> > > ... numa_num_possible_cpus: [ OFF ]
> > > ... libperl: [ OFF ]
> > > ... libpython: [ OFF ]
> > > ... libcrypto: [ OFF ]
> > > ... libunwind: [ OFF ]
> > > ... libdw-dwarf-unwind: [ OFF ]
> > > ... zlib: [ OFF ]
> > > ... lzma: [ OFF ]
> > > ... get_cpuid: [ OFF ]
> > > ... bpf: [ OFF ]
> > > ... libaio: [ OFF ]
> > > ... libzstd: [ OFF ]
> > > ... disassembler-four-args: [ OFF ]
> > >
> > > Makefile.config:393: *** No gnu/libc-version.h found, please install glibc-dev[el]. Stop.
> > > Makefile.perf:224: recipe for target 'sub-make' failed
> > > make[1]: *** [sub-make] Error 2
> > > Makefile:69: recipe for target 'all' failed
> > > make: *** [all] Error 2
> > > [yangtiezhu@linux perf]$ ls /usr/include/gnu/libc-version.h
> > > /usr/include/gnu/libc-version.h
> > >
> > > After install libasan and libubsan, the feature-glibc is 1 and the build
> > > process is success, so the cause is related with libasan or libubsan, we
> > > should check them and print an error log to reflect the reality.
> > >
> > > Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
> > > ---
> > >
> > > v2:
> > > - Check libasan and libubsan in tools/build/Makefile.feature
> > > - Modify the patch subject
> > >
> > > tools/build/Makefile.feature | 7 +++++++
> > > 1 file changed, 7 insertions(+)
> > >
> > > diff --git a/tools/build/Makefile.feature b/tools/build/Makefile.feature
> > > index 3abd431..e147c17 100644
> > > --- a/tools/build/Makefile.feature
> > > +++ b/tools/build/Makefile.feature
> > > @@ -252,3 +252,10 @@ ifeq ($(feature_verbose),1)
> > > $(foreach feat,$(TMP),$(call feature_print_status,$(feat),))
> > > $(info )
> > > endif
> > > +
> > > +ifneq ($(shell ldconfig -p | grep libasan >/dev/null 2>&1; echo $$?), 0)
> > > + msg := $(error No libasan found, please install libasan);
> > > +endif
> > > +ifneq ($(shell ldconfig -p | grep libubsan >/dev/null 2>&1; echo $$?), 0)
> > > + msg := $(error No libubsan found, please install libubsan);
> > > +endif
> > Hey, we need to only do that if -fsanitize=address is in EXTRA_CFLAGS,
> > right?
>
> Sorry for the late reply.
> Maybe -fsanitize=undefined is also needed.
> Please reference tools/perf/Documentation/Build.txt
Can you send an updated patch then?
> >
> > I applied it and got:
> >
> > $ rm -rf /tmp/build/perf ; mkdir -p /tmp/build/perf
> > $ make O=/tmp/build/perf -C tools/perf install-bin
> > make: Entering directory '/home/acme/git/perf/tools/perf'
> > BUILD: Doing 'make -j8' parallel build
> > HOSTCC /tmp/build/perf/fixdep.o
> > HOSTLD /tmp/build/perf/fixdep-in.o
> > LINK /tmp/build/perf/fixdep
> > Warning: Kernel ABI header at 'tools/perf/util/hashmap.h' differs from latest version at 'tools/lib/bpf/hashmap.h'
> > diff -u tools/perf/util/hashmap.h tools/lib/bpf/hashmap.h
> > Warning: Kernel ABI header at 'tools/perf/util/hashmap.c' differs from latest version at 'tools/lib/bpf/hashmap.c'
> > diff -u tools/perf/util/hashmap.c tools/lib/bpf/hashmap.c
> > Auto-detecting system features:
> > ... dwarf: [ on ]
> > ... dwarf_getlocations: [ on ]
> > ... glibc: [ on ]
> > ... gtk2: [ on ]
> > ... libbfd: [ on ]
> > ... libcap: [ on ]
> > ... libelf: [ on ]
> > ... libnuma: [ on ]
> > ... numa_num_possible_cpus: [ on ]
> > ... libperl: [ on ]
> > ... libpython: [ on ]
> > ... libcrypto: [ on ]
> > ... libunwind: [ on ]
> > ... libdw-dwarf-unwind: [ on ]
> > ... zlib: [ on ]
> > ... lzma: [ on ]
> > ... get_cpuid: [ on ]
> > ... bpf: [ on ]
> > ... libaio: [ on ]
> > ... libzstd: [ on ]
> > ... disassembler-four-args: [ on ]
> > /home/acme/git/perf/tools/build/Makefile.feature:255: *** No libasan found, please install libasan. Stop.
> > make[1]: *** [Makefile.perf:231: sub-make] Error 2
> > make: *** [Makefile:110: install-bin] Error 2
> > make: Leaving directory '/home/acme/git/perf/tools/perf'
> > $
> >
> > Something enclosed in:
> >
> > ifneq ($(filter s% -fsanitize=address%,$(EXTRA_CFLAGS),),)
> >
> > Right Jiri?
> >
> > - Arnaldo
>
--
- Arnaldo
next prev parent reply other threads:[~2020-06-16 19:39 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-03 6:10 [PATCH v2] tools build: Check libasan and libubsan in Makefile.feature Tiezhu Yang
2020-06-03 11:32 ` Arnaldo Carvalho de Melo
2020-06-15 2:20 ` Tiezhu Yang
2020-06-16 19:39 ` Arnaldo Carvalho de Melo [this message]
2020-06-17 1:55 ` Tiezhu Yang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200616193941.GD6393@kernel.org \
--to=acme@kernel.org \
--cc=alexander.shishkin@linux.intel.com \
--cc=jolsa@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lixuefeng@loongson.cn \
--cc=mark.rutland@arm.com \
--cc=mingo@redhat.com \
--cc=namhyung@kernel.org \
--cc=peterz@infradead.org \
--cc=yangtiezhu@loongson.cn \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.