Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756596AbcJMToi (ORCPT ); Thu, 13 Oct 2016 15:44:38 -0400 Received: from mail.kernel.org ([198.145.29.136]:55642 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756513AbcJMTod (ORCPT ); Thu, 13 Oct 2016 15:44:33 -0400 Date: Thu, 13 Oct 2016 16:44:15 -0300 From: Arnaldo Carvalho de Melo To: Maciej Debski Cc: Stephane Eranian , linux-kernel@vger.kernel.org, Jiri Olsa , Peter Zijlstra , Ingo Molnar , Anton Blanchard , Namhyung Kim Subject: Re: [PATCH 2/9] perf/jit: enable jitdump support without dwarf Message-ID: <20161013194415.GK23873@kernel.org> References: <1476356383-30100-1-git-send-email-eranian@google.com> <1476356383-30100-3-git-send-email-eranian@google.com> <20161013181643.GG23873@kernel.org> <20161013183742.GH23873@kernel.org> <20161013185135.GI23873@kernel.org> <20161013190311.GJ23873@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20161013190311.GJ23873@kernel.org> X-Url: http://acmel.wordpress.com User-Agent: Mutt/1.7.0 (2016-08-17) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3633 Lines: 93 Em Thu, Oct 13, 2016 at 04:03:11PM -0300, Arnaldo Carvalho de Melo escreveu: > Em Thu, Oct 13, 2016 at 03:51:35PM -0300, Arnaldo Carvalho de Melo escreveu: > > So we need: > > > > [acme@jouet linux]$ git diff > > diff --git a/tools/perf/Makefile.config b/tools/perf/Makefile.config > > index 8cfc310d4358..cffdd9cf3ebf 100644 > > --- a/tools/perf/Makefile.config > > +++ b/tools/perf/Makefile.config > > @@ -366,8 +366,10 @@ ifndef NO_SDT > > endif > > > > ifdef PERF_HAVE_JITDUMP > > + ifndef NO_LIBELF > > $(call detected,CONFIG_JITDUMP) > > CFLAGS += -DHAVE_JITDUMP > > + endif > > endif > > > > ifeq ($(ARCH),powerpc) > > [acme@jouet linux]$ > > > > To get that fixed. > > > > Please let me know if this suits your needs. > > > > I'll now try building with elfutils static libraries to see if in that case it > > all gets linked. > > After installing these packages, on fedora, i.e. installing what is > needed to statically link against libelf: > > elfutils-devel-static > elfutils-libelf-devel-static > zlib-static > > Then it all works, libelf is statically linked and we also statically > link the jitdump code: > > $ make -C tools/perf LDFLAGS=-static O=/tmp/build/perf install-bin > $ grep libelf /tmp/build/perf/FEATURE-DUMP > feature-libelf=1 > feature-libelf-getphdrnum=1 > feature-libelf-gelf_getnote=1 > feature-libelf-getshdrstrndx=1 > feature-libelf-mmap=1 > $ > > And: > > [acme@jouet linux]$ size /tmp/build/perf/perf > text data bss dec hex filename > 4478822 581702 23919240 28979764 1ba3234 /tmp/build/perf/perf > [acme@jouet linux]$ > [acme@jouet linux]$ file /tmp/build/perf/perf > /tmp/build/perf/perf: ELF 64-bit LSB executable, x86-64, version 1 (GNU/Linux), statically linked, for GNU/Linux 2.6.32, BuildID[sha1]=c2950590a0f24d76baa0ce4896414e5d523fefba, not stripped > [acme@jouet linux]$ > [acme@jouet linux]$ nm /tmp/build/perf/perf | grep jit > 00000000005007f0 T jit_process > 0000000000501920 T jit_write_elf > 0000000000431a50 t perf_event__jit_repipe_mmap > 0000000000431b20 t perf_event__jit_repipe_mmap2 > [acme@jouet linux]$ Ok, now this cset is bisected as causing this problem when built on Alpine Linux 3.4: CC /tmp/build/perf/util/demangle-java.o CC /tmp/build/perf/util/demangle-rust.o CC /tmp/build/perf/util/jitdump.o CC /tmp/build/perf/util/genelf.o util/jitdump.c: In function 'jit_process': util/jitdump.c:622:3: error: 'ret' may be used uninitialized in this function [-Werror=maybe-uninitialized] fprintf(stderr, "injected: %s (%d)\n", path, ret); ^ util/jitdump.c:584:6: note: 'ret' was declared here int ret; ^ FLEX /tmp/build/perf/util/parse-events-flex.c / $ gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-alpine-linux-musl/5.3.0/lto-wrapper Target: x86_64-alpine-linux-musl Configured with: /home/buildozer/aports/main/gcc/src/gcc-5.3.0/configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --build=x86_64-alpine-linux-musl --host=x86_64-alpine-linux-musl --target=x86_64-alpine-linux-musl --with-pkgversion='Alpine 5.3.0' --enable-checking=release --disable-fixed-point --disable-libstdcxx-pch --disable-multilib --disable-nls --disable-werror --disable-symvers --enable-__cxa_atexit --enable-esp --enable-cloog-backend --enable-languages=c,c++,objc,java,fortran,ada --disable-libssp --disable-libmudflap --disable-libsanitizer --enable-shared --enable-threads --enable-tls --with-system-zlib Thread model: posix gcc version 5.3.0 (Alpine 5.3.0) / $ Investigating... - Arnaldo