Re: [RFC/BUG] perf tools: static build fails

From: Jiri Olsa
Date: Wed Jul 29 2015 - 04:30:43 EST


On Tue, Jul 28, 2015 at 06:21:38PM -0300, Arnaldo Carvalho de Melo wrote:
> Em Wed, Jul 29, 2015 at 12:14:41AM +0300, Adrian Hunter escreveu:
> > On 28/07/2015 7:11 p.m., Arnaldo Carvalho de Melo wrote:
> > >Em Tue, Jul 28, 2015 at 05:13:47PM +0200, Jiri Olsa escreveu:
>
> > >>it's failing on perf-read-vdso32 tool.. attached patch fixes that
> > >>for me
>
> > >To build it statically:
>
> > > make -C tools/perf O=/tmp/build/perf LDFLAGS=-static install-bin
>
> > >Adrian, I wonder if building just these utilities non-statically when we
> > >ask for a static build of the main tool is ok, is it?
>
> > Not really.
>
> > Static build works for me, including building perf-read-vdso32 statically,
> > so I am not sure what the problem is?

oops, it was the 32bit glibc-static pkg missing.. I'm good now ;-)

>
> The static build stops for me way before getting to these utilities, so
> I don't know, I fixed an unrelated problem, but Jiri is the one having
> trouble in this one, Jiri, can you post the output of the build when it
> fails?

[jolsa@krava perf]$ make LDFLAGS=-static JOBS=1

SNIP

GEN libtraceevent-dynamic-list
LINK perf
/home/jolsa/kernel/linux-perf/tools/lib/traceevent/libtraceevent.a(libtraceevent-in.o): In function `load_plugin':
/home/jolsa/kernel/linux-perf/tools/lib/traceevent/event-plugin.c:304: warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
libperf.a(libperf-in.o): In function `target__parse_uid':
/home/jolsa/kernel/linux-perf/tools/perf/util/target.c:79: warning: Using 'getpwnam_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/home/jolsa/kernel/linux-perf/tools/perf/util/target.c:91: warning: Using 'getpwuid_r' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
CC perf-read-vdso32
/bin/ld: cannot find -lc
collect2: error: ld returned 1 exit status
Makefile.perf:373: recipe for target 'perf-read-vdso32' failed
make[1]: *** [perf-read-vdso32] Error 1
Makefile:68: recipe for target 'all' failed
make: *** [all] Error 2


jirka
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/