diff mbox series

[1/2] doc: pass AR when building examples

Message ID 20191118170751.32002-1-simon.marchi@efficios.com
State Accepted, archived
Headers show
Series [1/2] doc: pass AR when building examples | expand

Commit Message

Simon Marchi Nov. 18, 2019, 5:07 p.m. UTC
As reported here [1], when cross-compiling lttng-ust, the
"hello-static-lib" example uses the ar tool made for the --build machine
instead of the prefixed one, for the --host machine.

The Makefiles in the subdirectories of doc/examples are written by hand,
so that they can be easily copied and modified by users.  They are
therefore not integrated in the automake build system, and any value
detected by configure must be passed explicitly when invoking it.
For example, the CC value is already explicitly passed, so that the
compiler value found by configure is passed down.  We just need to do
the same for AR.

This patch adds AM_PROG_AR in configure.ac, so that configure finds the
prefixed version of ar, if cross-compiling.

It then sets the AR variable in doc/examples/Makefile.am, when invoking
sub-Makefiles.  I don't think we really need it in the cmake case, but
it doesn't hurt to have it there.

[1] https://lists.lttng.org/pipermail/lttng-dev/2019-November/029388.html

Reported-by: Rolf Eike Beer <eb at emlix.com>
Signed-off-by: Simon Marchi <simon.marchi at efficios.com>
---
 configure.ac             | 1 +
 doc/examples/Makefile.am | 3 ++-
 2 files changed, 3 insertions(+), 1 deletion(-)

Comments

Mathieu Desnoyers Nov. 18, 2019, 5:15 p.m. UTC | #1
Both patches merged into lttng-ust master branch (only).

If you need those backported, please submit separate patches for stable
branches, as those do not apply cleanly because the following commit is
in master but not in stable branches:

commit dc5af9e3311ab28f2728f540f06e61add9d7b5eb
Author: Michael Jeanson <mjeanson at efficios.com>
Date:   Thu Dec 20 15:22:42 2018 -0500

    Add silent mode to examples Makefiles

Thanks,

Mathieu

----- On Nov 18, 2019, at 12:07 PM, Simon Marchi simon.marchi at efficios.com wrote:

> As reported here [1], when cross-compiling lttng-ust, the
> "hello-static-lib" example uses the ar tool made for the --build machine
> instead of the prefixed one, for the --host machine.
> 
> The Makefiles in the subdirectories of doc/examples are written by hand,
> so that they can be easily copied and modified by users.  They are
> therefore not integrated in the automake build system, and any value
> detected by configure must be passed explicitly when invoking it.
> For example, the CC value is already explicitly passed, so that the
> compiler value found by configure is passed down.  We just need to do
> the same for AR.
> 
> This patch adds AM_PROG_AR in configure.ac, so that configure finds the
> prefixed version of ar, if cross-compiling.
> 
> It then sets the AR variable in doc/examples/Makefile.am, when invoking
> sub-Makefiles.  I don't think we really need it in the cmake case, but
> it doesn't hurt to have it there.
> 
> [1] https://lists.lttng.org/pipermail/lttng-dev/2019-November/029388.html
> 
> Reported-by: Rolf Eike Beer <eb at emlix.com>
> Signed-off-by: Simon Marchi <simon.marchi at efficios.com>
> ---
> configure.ac             | 1 +
> doc/examples/Makefile.am | 3 ++-
> 2 files changed, 3 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..2f9811ea4f9b 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 \
> @@ -141,6 +141,7 @@ all-local:
> 				cd $$subdir && \
> 				$(MKDIR_P) build && \
> 				cd build && \
> +				AR="$(AR)" \
> 				CC="$(CC)" \
> 				CXX="$(CXX)" \
> 				cmake \
> --
> 2.24.0
> 
> _______________________________________________
> lttng-dev mailing list
> lttng-dev at lists.lttng.org
> https://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
Simon Marchi Nov. 18, 2019, 5:22 p.m. UTC | #2
On 2019-11-18 12:15 p.m., Mathieu Desnoyers wrote:
> Both patches merged into lttng-ust master branch (only).
> 
> If you need those backported, please submit separate patches for stable
> branches, as those do not apply cleanly because the following commit is
> in master but not in stable branches:
> 
> commit dc5af9e3311ab28f2728f540f06e61add9d7b5eb
> Author: Michael Jeanson <mjeanson at efficios.com>
> Date:   Thu Dec 20 15:22:42 2018 -0500
> 
>     Add silent mode to examples Makefiles
> 
> Thanks,
> 
> Mathieu

Thanks.

I don't think this is really needed in the stable branches, as it's a really minor
change in the examples.

Simon
diff mbox series

Patch

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..2f9811ea4f9b 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 \
@@ -141,6 +141,7 @@  all-local:
 				cd $$subdir && \
 				$(MKDIR_P) build && \
 				cd build && \
+				AR="$(AR)" \
 				CC="$(CC)" \
 				CXX="$(CXX)" \
 				cmake \