From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752916AbcHBJcr (ORCPT ); Tue, 2 Aug 2016 05:32:47 -0400 Received: from mx1.redhat.com ([209.132.183.28]:56222 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751426AbcHBJch (ORCPT ); Tue, 2 Aug 2016 05:32:37 -0400 Date: Tue, 2 Aug 2016 11:31:34 +0200 From: Jiri Olsa To: Namhyung Kim Cc: Jiri Olsa , Arnaldo Carvalho de Melo , lkml , David Ahern , Ingo Molnar , Peter Zijlstra , "Steven Rostedt (Red Hat)" Subject: Re: [RFC 0/4] tools lib traceevent: Install fixes Message-ID: <20160802093134.GB2036@krava> References: <1470073292-18114-1-git-send-email-jolsa@kernel.org> <20160802031055.GB25068@danjae.aot.lge.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20160802031055.GB25068@danjae.aot.lge.com> User-Agent: Mutt/1.6.2 (2016-07-01) X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.27]); Tue, 02 Aug 2016 09:31:37 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Aug 02, 2016 at 12:10:55PM +0900, Namhyung Kim wrote: > On Mon, Aug 01, 2016 at 07:41:28PM +0200, Jiri Olsa wrote: > > hi, > > sending traceevent changes to make this lib installable > > under rpm spec. > > > > Basically adding support to: > > - install header files > > - install version links > > > > Having this patchset applied over the fedora source, > > I could built following rpms: > > > > kernel-tools-libs > > kernel-tools-libs-devel > > > > with added libtraceevent stuff: > > > > $ rpm -ql kernel-tools-libs > > /usr/lib64/libcpupower.so.0 > > /usr/lib64/libcpupower.so.0.0.0 > > /usr/lib64/libtraceevent.so.1 > > /usr/lib64/libtraceevent.so.1.1.0 > > > > $ rpm -ql kernel-tools-libs-devel > > /usr/include/cpufreq.h > > /usr/include/traceevent > > /usr/include/traceevent/event-parse.h > > /usr/include/traceevent/event-utils.h > > /usr/include/traceevent/kbuffer.h > > /usr/lib64/libcpupower.so > > /usr/lib64/libtraceevent.a > > /usr/lib64/libtraceevent.so > > > > and could build following ex.c outside the kernel tree: > > > > $ cat ex.c > > #include > > > > int main(void) > > { > > struct pevent *pevent = pevent_alloc(); > > printf("krava %p\n", pevent); > > return 0; > > } > > $ gcc -o ex ex.c -ltraceevent -ldl > > $ ./ex > > krava 0x10c6010 > > $ > > On my system, building ex.c with libtraceevent failed: > > $ gcc -I ~/.local/include/ ex.c -L ~/.local/lib64 -ltraceevent -ldl > /home/namhyung/.local/lib64/libtraceevent.so: undefined reference to `str_error_r' > collect2: error: ld returned 1 exit status > > > Also I think it'd be better for libtraceevent has dependency to libdl > explicitly so that we can get rid of -ldl at the end. agreed, I'll queue your patch if v2 is needed thanks, jirka > > > From ac7dc027274cb31f5860c4cf6219ea7584611e17 Mon Sep 17 00:00:00 2001 > From: Namhyung Kim > Date: Tue, 2 Aug 2016 12:03:00 +0900 > Subject: [PATCH] tools lib traceevent: Add dependency to libdl > > The libtraceevent has dependency to libdl due to plugins. So if > external program wants to link libtraceevent it also needs to add -ldl > to the compiler command line. Make it explicit so that external > programs doesn't care about the internel dependency of libtraceevent > anymore. > > Signed-off-by: Namhyung Kim > --- > tools/lib/traceevent/Makefile | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/tools/lib/traceevent/Makefile b/tools/lib/traceevent/Makefile > index c76012ebdb9c..bae0c090c638 100644 > --- a/tools/lib/traceevent/Makefile > +++ b/tools/lib/traceevent/Makefile > @@ -173,7 +173,7 @@ $(TE_IN): force > $(Q)$(MAKE) $(build)=libtraceevent > > $(OUTPUT)libtraceevent.so.$(EVENT_PARSE_VERSION): $(TE_IN) > - $(QUIET_LINK)$(CC) --shared $^ -Wl,-soname,libtraceevent.so.$(EP_VERSION) -o $@ > + $(QUIET_LINK)$(CC) --shared $^ -Wl,-soname,libtraceevent.so.$(EP_VERSION) -o $@ -ldl > @ln -sf $(@F) $(OUTPUT)libtraceevent.so > @ln -sf $(@F) $(OUTPUT)libtraceevent.so.$(EP_VERSION) > > -- > 2.9.2 >