Re: [PATCH] perf tools: Fix bfd dependency libraries detection

From: Jiri Olsa
Date: Mon Apr 28 2014 - 11:18:03 EST


On Mon, Apr 28, 2014 at 09:01:57AM -0600, David Ahern wrote:
> On 4/28/14, 3:22 AM, Jiri Olsa wrote:
> >From: Jiri Olsa <jolsa@xxxxxxxxxx>
> >
> >There's false assumption in the library detection code
> >assuming -liberty and -lz are always present once bfd
> >is detected. The fails on Ubuntu (14.04) as reported
> >by Ingo.
> >
> >Forcing the bdf dependency libraries detection any
> >time bfd library is detected.
>
> Have you tried static builds? I need to do those occasionally and I
> always have to muck around with the Makefiles to get it to succeed
> -- something with the -liberty and bfd checks.

hm, I just tried and even without of the fix I wasn't able
to do static build.. so far I ended up with:

---
$ make LDFLAGS=-static NO_LIBUNWIND=1 NO_GTK2=1 JOBS=1
...

SUBDIR /home/jolsa/kernel.org/linux-perf/tools/lib/traceevent/
LINK perf
/bin/ld: cannot find -lelf
/home/jolsa/kernel.org/linux-perf/tools/lib/traceevent/libtraceevent.a(event-plugin.o): In function `load_plugin':
/home/jolsa/kernel.org/linux-perf/tools/lib/traceevent/event-plugin.c:60: warning: Using 'dlopen' in statically linked applications requires at runtime the shared libraries from the glibc version used for linking
/bin/ld: cannot find -lelf
/bin/ld: cannot find -ldw
/bin/ld: cannot find -laudit
/bin/ld: cannot find -lslang
/bin/ld: cannot find -lperl
libperf.a(target.o): In function `target__parse_uid':
/home/jolsa/kernel.org/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.org/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
/usr/lib/gcc/x86_64-redhat-linux/4.8.2/../../../../lib64/libpthread.a(libpthread.o): In function `sem_open':
(.text+0x67eb): warning: the use of `mktemp' is dangerous, better use `mkstemp'
/bin/ld: cannot find -lpython2.7
/bin/ld: cannot find -lz
/bin/ld: cannot find -lnuma
collect2: error: ld returned 1 exit status
make[1]: *** [perf] Error 1
make: *** [all] Error 2
---

Any hints what you did to make it pass?
Let's fix it and put test for this in tests/make suite ;-)

thanks,
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/