Re: [PATCH] bindings: cxx: link using the libtool archives

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Mar 20, 2024 at 2:50 PM <orbea@xxxxxxxxxx> wrote:
>
> From: orbea <orbea@xxxxxxxxxx>
>
> When linking with internal dependencies that were built with libtool the
> most reliable method is to use the libtool archive (.la) files.
>
> When building with slibtool it fails when it doesn't find the -lgpiod
> linker flag, but if libgpiod is already installed to the system it will
> be built using the system version instead of the newly built libraries.
>
> Gentoo issue: https://bugs.gentoo.org/913899
>
> Signed-off-by: orbea <orbea@xxxxxxxxxx>
> ---
>  bindings/cxx/Makefile.am          | 2 +-
>  bindings/cxx/examples/Makefile.am | 2 +-
>  bindings/cxx/tests/Makefile.am    | 6 +++---
>  3 files changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/bindings/cxx/Makefile.am b/bindings/cxx/Makefile.am
> index 1eafaa2..e2a89cf 100644
> --- a/bindings/cxx/Makefile.am
> +++ b/bindings/cxx/Makefile.am
> @@ -24,8 +24,8 @@ libgpiodcxx_la_CXXFLAGS = -Wall -Wextra -g -std=gnu++17
>  libgpiodcxx_la_CXXFLAGS += -fvisibility=hidden -I$(top_srcdir)/include/
>  libgpiodcxx_la_CXXFLAGS += $(PROFILING_CFLAGS)
>  libgpiodcxx_la_LDFLAGS = -version-info $(subst .,:,$(ABI_CXX_VERSION))
> -libgpiodcxx_la_LDFLAGS += -lgpiod -L$(top_builddir)/lib
>  libgpiodcxx_la_LDFLAGS += $(PROFILING_LDFLAGS)
> +libgpiodcxx_la_LIBADD = $(top_builddir)/lib/libgpiod.la
>
>  include_HEADERS = gpiod.hpp
>
> diff --git a/bindings/cxx/examples/Makefile.am b/bindings/cxx/examples/Makefile.am
> index 64ced20..eca4d64 100644
> --- a/bindings/cxx/examples/Makefile.am
> +++ b/bindings/cxx/examples/Makefile.am
> @@ -3,7 +3,7 @@
>
>  AM_CXXFLAGS = -I$(top_srcdir)/bindings/cxx/ -I$(top_srcdir)/include
>  AM_CXXFLAGS += -Wall -Wextra -g -std=gnu++17
> -AM_LDFLAGS = -lgpiodcxx -L$(top_builddir)/bindings/cxx/
> +LDADD = $(top_builddir)/bindings/cxx/libgpiodcxx.la
>
>  noinst_PROGRAMS = \
>         async_watch_line_value \
> diff --git a/bindings/cxx/tests/Makefile.am b/bindings/cxx/tests/Makefile.am
> index 02b5b6d..4d40d33 100644
> --- a/bindings/cxx/tests/Makefile.am
> +++ b/bindings/cxx/tests/Makefile.am
> @@ -4,9 +4,9 @@
>  AM_CXXFLAGS = -I$(top_srcdir)/bindings/cxx/ -I$(top_srcdir)/include
>  AM_CXXFLAGS += -I$(top_srcdir)/tests/gpiosim/
>  AM_CXXFLAGS += -Wall -Wextra -g -std=gnu++17 $(CATCH2_CFLAGS)
> -AM_LDFLAGS = -lgpiodcxx -L$(top_builddir)/bindings/cxx/
> -AM_LDFLAGS += -lgpiosim -L$(top_builddir)/tests/gpiosim/
> -AM_LDFLAGS += -pthread
> +AM_LDFLAGS = -pthread
> +LDADD = $(top_builddir)/bindings/cxx/libgpiodcxx.la
> +LDADD += $(top_builddir)/tests/gpiosim/libgiosim.la

Please test your changes, this is a typo and it doesn't build. It
should have been "libgpiosim".

I fixed it up when applying.

Thanks,
Bartosz

>
>  noinst_PROGRAMS = gpiod-cxx-test
>
> --
> 2.43.2
>
>





[Index of Archives]     [Linux SPI]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux