Wrong "ar" used when cross-building lttng
diff mbox series

Message ID 2e655403-71d2-ee11-3675-d9ad81d6fe85@simark.ca
State Superseded, archived
Headers show
Series
  • Wrong "ar" used when cross-building lttng
Related show

Commit Message

Simon Marchi Nov. 14, 2019, 4:01 p.m. UTC
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(-)

Comments

Rolf Eike Beer Nov. 14, 2019, 4:24 p.m. UTC | #1
Simon Marchi wrote:
> 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
> 
> 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.

Works for me.

I have not checked latest git, but maybe you may want to fix this warning, 
too?

With 2.11.0 release tarball:

-./configure: line 24663: test: -eq: unary operator expected

Greetings,

Eike
Simon Marchi Nov. 14, 2019, 4:43 p.m. UTC | #2
On 2019-11-14 11:24 a.m., Rolf Eike Beer wrote:
> Works for me.

Thanks.

> I have not checked latest git, but maybe you may want to fix this warning, 
> too?
> 
> With 2.11.0 release tarball:
> 
> -./configure: line 24663: test: -eq: unary operator expected
> 
> Greetings,
> 
> Eike

Hmm I don't remember seeing this error, and I don't see it now.

Could you please try with master?  If it still happens, you can try to
find from which line of the configure.ac or an m4 file this line comes
from.  I presume it won't be too hard to fix.

Simon
Rolf Eike Beer Nov. 15, 2019, 8:18 a.m. UTC | #3
Simon Marchi wrote:
> On 2019-11-14 11:24 a.m., Rolf Eike Beer wrote:

> > I have not checked latest git, but maybe you may want to fix this warning,
> > too?
> > 
> > With 2.11.0 release tarball:
> > 
> > -./configure: line 24663: test: -eq: unary operator expected

> Hmm I don't remember seeing this error, and I don't see it now.
> 
> Could you please try with master?  If it still happens, you can try to
> find from which line of the configure.ac or an m4 file this line comes
> from.  I presume it won't be too hard to fix.

Sorry, my fault. If I had looked a little closer I could have given you the 
context:

 checking for tput... /usr/bin/tput
 tput: No value for $TERM and no -T specified
./configure: line 24663: test: -eq: unary operator expected

When the package is built inside our automated buildsystem these variables are 
not set because this is no interactive shell. If I build with an interactive 
shell these warnings are in fact not there.

Eike
Simon Marchi Nov. 15, 2019, 3:34 p.m. UTC | #4
On 2019-11-15 3:18 a.m., Rolf Eike Beer wrote:
> Simon Marchi wrote:
>> On 2019-11-14 11:24 a.m., Rolf Eike Beer wrote:
> 
>>> I have not checked latest git, but maybe you may want to fix this warning,
>>> too?
>>>
>>> With 2.11.0 release tarball:
>>>
>>> -./configure: line 24663: test: -eq: unary operator expected
> 
>> Hmm I don't remember seeing this error, and I don't see it now.
>>
>> Could you please try with master?  If it still happens, you can try to
>> find from which line of the configure.ac or an m4 file this line comes
>> from.  I presume it won't be too hard to fix.
> 
> Sorry, my fault. If I had looked a little closer I could have given you the 
> context:
> 
>  checking for tput... /usr/bin/tput
>  tput: No value for $TERM and no -T specified
> ./configure: line 24663: test: -eq: unary operator expected
> 
> When the package is built inside our automated buildsystem these variables are 
> not set because this is no interactive shell. If I build with an interactive 
> shell these warnings are in fact not there.

It still sounds like the "test" command should be improved, it should not fail with
an invalid syntax.  Can you give us the relevant lines of configure around 24663,
and if possible match them to the source lines in configure.ac and/or one of the
m4 files in the m4 directory?

Simon
Rolf Eike Beer Nov. 18, 2019, 8:10 a.m. UTC | #5
Am Freitag, 15. November 2019, 16:34:33 CET schrieb Simon Marchi:
> On 2019-11-15 3:18 a.m., Rolf Eike Beer wrote:
> > Simon Marchi wrote:
> >> On 2019-11-14 11:24 a.m., Rolf Eike Beer wrote:
> >>> I have not checked latest git, but maybe you may want to fix this
> >>> warning,
> >>> too?
> >>> 
> >>> With 2.11.0 release tarball:
> >>> 
> >>> -./configure: line 24663: test: -eq: unary operator expected
> >> 
> >> Hmm I don't remember seeing this error, and I don't see it now.
> >> 
> >> Could you please try with master?  If it still happens, you can try to
> >> find from which line of the configure.ac or an m4 file this line comes
> >> from.  I presume it won't be too hard to fix.
> > 
> > Sorry, my fault. If I had looked a little closer I could have given you
> > the
> > 
> > context:
> >  checking for tput... /usr/bin/tput
> >  tput: No value for $TERM and no -T specified
> > 
> > ./configure: line 24663: test: -eq: unary operator expected
> > 
> > When the package is built inside our automated buildsystem these variables
> > are not set because this is no interactive shell. If I build with an
> > interactive shell these warnings are in fact not there.
> 
> It still sounds like the "test" command should be improved, it should not
> fail with an invalid syntax.  Can you give us the relevant lines of
> configure around 24663, and if possible match them to the source lines in
> configure.ac and/or one of the m4 files in the m4 directory?

The line in configure is this:

    if test -n "$PS1" && test `"$pprint_tput" colors` -eq 256 && test -t 1; 
then :

Which seems to be one of these 3 lines from configure.ac:

PPRINT_INIT
PPRINT_SET_INDENT(1)
PPRINT_SET_TS(38)

Eike

Patch
diff mbox series

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 \