[PATCHv3 01/10] tools lib traceevent: Use LDFLAGS in the build commands

From: Jiri Olsa
Date: Wed Dec 12 2018 - 04:12:24 EST


On Wed, Nov 28, 2018 at 10:56:41AM -0300, Arnaldo Carvalho de Melo wrote:

SNIP

> LD /tmp/build/perf/libtraceevent-in.o
> MKDIR /tmp/build/perf/util/
> LINK /tmp/build/perf/libtraceevent.a
> CC /tmp/build/perf/util/block-range.o
> MKDIR /tmp/build/perf/arch/
> CC /tmp/build/perf/arch/common.o
> LD /tmp/build/perf/plugin_mac80211-in.o
> CC /tmp/build/perf/plugin_sched_switch.o
> LD /tmp/build/perf/plugin_sched_switch-in.o
> CC /tmp/build/perf/plugin_function.o
> LD /tmp/build/perf/plugin_function-in.o
> CC /tmp/build/perf/plugin_xen.o
> MKDIR /tmp/build/perf/arch/arm/util/
> CC /tmp/build/perf/arch/arm/util/pmu.o
> LD /tmp/build/perf/plugin_xen-in.o
> CC /tmp/build/perf/plugin_scsi.o
> CC /tmp/build/perf/plugin_cfg80211.o
> LD /tmp/build/perf/plugin_scsi-in.o
> LD /tmp/build/perf/plugin_cfg80211-in.o
> MKDIR /tmp/build/perf/arch/arm/util/
> CC /tmp/build/perf/arch/arm/util/auxtrace.o
> CC /tmp/build/perf/arch/arm/util/cs-etm.o
> LINK /tmp/build/perf/plugin_jbd2.so
> /opt/android-ndk-r12b/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld: error: cannot find -lc
> /opt/android-ndk-r12b/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin/../lib/gcc/arm-linux-androideabi/4.9.x/../../../../arm-linux-androideabi/bin/ld: error: cannot find -ldl
> collect2: error: ld returned 1 exit status
> Makefile:196: recipe for target '/tmp/build/perf/plugin_jbd2.so' failed
> make[3]: *** [/tmp/build/perf/plugin_jbd2.so] Error 1
> Makefile.perf:669: recipe for target 'libtraceevent_plugins' failed
> make[2]: *** [libtraceevent_plugins] Error 2
> make[2]: *** Waiting for unfinished jobs....
>
>

SNIP

> 1 59.08 alpine:3.4 : Ok gcc (Alpine 5.3.0) 5.3.0
> 2 68.75 alpine:3.5 : Ok gcc (Alpine 6.2.1) 6.2.1 20160822
> 3 79.67 alpine:3.6 : Ok gcc (Alpine 6.3.0) 6.3.0
> 4 48.69 alpine:3.7 : Ok gcc (Alpine 6.4.0) 6.4.0
> 5 46.89 alpine:3.8 : Ok gcc (Alpine 6.4.0) 6.4.0
> 6 46.46 alpine:edge : Ok gcc (Alpine 6.4.0) 6.4.0
> 7 38.46 amazonlinux:1 : Ok gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28)
> 8 44.69 amazonlinux:2 : Ok gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5)
> 9 41.88 android-ndk:r12b-arm : Ok arm-linux-androideabi-gcc (GCC) 4.9.x 20150123 (prerelease)
> 10 46.24 android-ndk:r15c-arm : Ok arm-linux-androideabi-gcc (GCC) 4.9.x 20150123 (prerelease)
> 11 22.22 centos:5 : Ok gcc (GCC) 4.1.2 20080704 (Red Hat 4.1.2-55)
> 12 35.54 centos:6 : Ok gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23)

ok, I shouldn't have taken out the CFLAGS,
some build scripts depends on it already

attaching v2

thanks,
jirka


---
So user could specify outside LDFLAGS values.

Keeping the CFLAGS in there as well, so we don't break
existing script.

Cc: Tzvetomir Stoyanov (VMware) <tz.stoyanov@xxxxxxxxx>
Cc: Steven Rostedt <rostedt@xxxxxxxxxxx>
Acked-by: Steven Rostedt (VMware) <rostedt@xxxxxxxxxxx>
Signed-off-by: Jiri Olsa <jolsa@xxxxxxxxxx>
---
tools/lib/traceevent/Makefile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/tools/lib/traceevent/Makefile b/tools/lib/traceevent/Makefile
index 67fe5d7ef190..941761d9923d 100644
--- a/tools/lib/traceevent/Makefile
+++ b/tools/lib/traceevent/Makefile
@@ -177,7 +177,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 $(LDFLAGS) $^ -Wl,-soname,libtraceevent.so.$(EP_VERSION) -o $@
@ln -sf $(@F) $(OUTPUT)libtraceevent.so
@ln -sf $(@F) $(OUTPUT)libtraceevent.so.$(EP_VERSION)

@@ -196,7 +196,7 @@ $(PLUGINS_IN): force
$(Q)$(MAKE) $(build)=$(plugin_obj)

$(OUTPUT)%.so: $(OUTPUT)%-in.o
- $(QUIET_LINK)$(CC) $(CFLAGS) -shared -nostartfiles -o $@ $^
+ $(QUIET_LINK)$(CC) $(CFLAGS) -shared $(LDFLAGS) -nostartfiles -o $@ $^

define make_version.h
(echo '/* This file is automatically generated. Do not modify. */'; \
--
2.17.2