All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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.