[lttng-dev] Wrong "ar" used when cross-building lttng

Simon Marchi simark at simark.ca
Thu Nov 14 11:01:54 EST 2019


On 2019-11-14 2:58 a.m., Rolf Eike Beer wrote:
> The unprefixed version of "ar" is being used, leading to this error:
> 
> arm-unknown-linux-gnueabi-gcc  -I. -Wall -I../../../include/ -I../../../
> include/ \
>         -O2 -g -march=armv7-a -mtune=cortex-a9 -mfpu=neon-fp16 -mfloat-
> abi=hard -mthumb-interwork -pipe -Wl,--no-copy-dt-needed-entries,--as-needed -
> Wl,--build-id -Wdate-time -c -o lttng-ust-provider-hello.o tp.c
> ar -rc lttng-ust-provider-hello.a lttng-ust-provider-hello.o
> make[4]: ar: Command not found
> 
> I fixed it for the moment with "make AR=arm-unknown-linux-gnueabi-ar", but 
> ideally this would not be needed.
> 
> Greetings,
> 
> Eike
> -- 
> Rolf Eike Beer, emlix GmbH, http://www.emlix.com
> Fon +49 551 30664-0, Fax +49 551 30664-11
> Gothaer Platz 3, 37083 Göttingen, Germany
> Sitz der Gesellschaft: Göttingen, Amtsgericht Göttingen HR B 3160
> Geschäftsführung: Heike Jordan, Dr. Uwe Kracke – Ust-IdNr.: DE 205 198 055
> 
> emlix - smart embedded open source

Hi Rofl,

Indeed, I can see the problem.

Can you please try the patch below?  It adds an autoconf check for ar and then passes
it as an environment variable to the Makefiles of doc/examples.

Note that the Makefiles in doc/examples are written by hand to be standalone on purpose,
so that one can easily copy them to bootstrap their project (at least that's what I
supposed).  This means that doc/examples/hello-static-lib/Makefile is not directly
influenced by the configure checks.  It will not pick up the right tools if you
run "make" directly in  doc/examples/hello-static-lib, but only if you run it from a
directory above.

Simon


>From cb819ba1e9dbba612dd22d143c4fb57185b6ac7b Mon Sep 17 00:00:00 2001
From: Simon Marchi <simon.marchi at efficios.com>
Date: Thu, 14 Nov 2019 10:54:34 -0500
Subject: [PATCH] doc: pass AR when building examples

---
 configure.ac             | 1 +
 doc/examples/Makefile.am | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/configure.ac b/configure.ac
index 001c44289790..e07888c093fd 100644
--- a/configure.ac
+++ b/configure.ac
@@ -66,6 +66,7 @@ AS_IF([test "x${ax_cv_sys_weak_alias}" = "xno"], [
 ])

 # Checks for programs.
+AM_PROG_AR
 AC_PROG_SED
 AC_PROG_GREP
 AC_PROG_LN_S
diff --git a/doc/examples/Makefile.am b/doc/examples/Makefile.am
index d5d00b090c61..2d8b86d1001a 100644
--- a/doc/examples/Makefile.am
+++ b/doc/examples/Makefile.am
@@ -123,7 +123,7 @@ all-local:
 		rel_build_subdir="../"; \
 	fi; \
 	for subdir in $(SUBDIRS_PROXY); do \
-		(cd $$subdir && $(MAKE) CC="$(CC)" CPPFLAGS="$(CPPFLAGS)" AM_CPPFLAGS="$(AM_CPPFLAGS) -I$$rel_src_subdir$(top_srcdir)/include/ -I$$rel_build_subdir$(top_builddir)/include/" CFLAGS='$(CFLAGS)' AM_CFLAGS='$(AM_CFLAGS)' LDFLAGS="$(LDFLAGS)" AM_LDFLAGS='$(AM_LDFLAGS) -L../../../liblttng-ust/.libs -Wl,-rpath="$(PWD)/../../liblttng-ust/.libs/" -Wl,-rpath-link="$(PWD)/../../liblttng-ust/.libs/"' LTTNG_GEN_TP_PATH="../../../tools/" AM_V_P="$(AM_V_P)" AM_V_at="$(AM_V_at)" $(AM_MAKEFLAGS) all && cd ..) || exit 1; \
+		(cd $$subdir && $(MAKE) AR="$(AR)" CC="$(CC)" CPPFLAGS="$(CPPFLAGS)" AM_CPPFLAGS="$(AM_CPPFLAGS) -I$$rel_src_subdir$(top_srcdir)/include/ -I$$rel_build_subdir$(top_builddir)/include/" CFLAGS='$(CFLAGS)' AM_CFLAGS='$(AM_CFLAGS)' LDFLAGS="$(LDFLAGS)" AM_LDFLAGS='$(AM_LDFLAGS) -L../../../liblttng-ust/.libs -Wl,-rpath="$(PWD)/../../liblttng-ust/.libs/" -Wl,-rpath-link="$(PWD)/../../liblttng-ust/.libs/"' LTTNG_GEN_TP_PATH="../../../tools/" AM_V_P="$(AM_V_P)" AM_V_at="$(AM_V_at)" $(AM_MAKEFLAGS) all && cd ..) || exit 1; \
 	done; \
 	if [ x"$(SUBDIRS_JUL)" != x"" ]; then \
 		for subdir in $(SUBDIRS_JUL); do \
-- 
2.24.0




More information about the lttng-dev mailing list