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

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

 



On Wed, 20 Mar 2024 17:43:46 +0100
Bartosz Golaszewski <brgl@xxxxxxxx> wrote:

> 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
> >
> >  

Thank you and apologies, I neglected to mention that I was having a
hard time getting the tests to build because the check2 in Gentoo
doesn't seem compatible with what you expect. Maybe its too new?

(Sending this twice because I forgot to CC the list)





[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