Message ID | 20240320134957.7928-1-orbea@riseup.net |
---|---|
State | New |
Headers | show |
Series | bindings: cxx: link using the libtool archives | expand |
On Wed, Mar 20, 2024 at 2:50 PM <orbea@riseup.net> wrote: > > From: orbea <orbea@riseup.net> > > 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@riseup.net> > --- Thanks, Could you use your real name for the sake of code attribution (if we need a license change later on or whatever)? Bart
On Wed, 20 Mar 2024 16:18:38 +0100 Bartosz Golaszewski <brgl@bgdev.pl> wrote: > On Wed, Mar 20, 2024 at 2:50 PM <orbea@riseup.net> wrote: > > > > From: orbea <orbea@riseup.net> > > > > 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@riseup.net> > > --- > > Thanks, > > Could you use your real name for the sake of code attribution (if we > need a license change later on or whatever)? > > Bart If its possible I would really prefer to not, my change is trivial and I do not think it is significant enough to claim copyright. So that I could easily link to it in the Gentoo issue I also made an github PR which is gpg signed if that helps? https://github.com/brgl/libgpiod/pull/65
On Wed, Mar 20, 2024 at 5:01 PM orbea <orbea@riseup.net> wrote: > > > > > Thanks, > > > > Could you use your real name for the sake of code attribution (if we > > need a license change later on or whatever)? > > > > Bart > > If its possible I would really prefer to not, my change is trivial and > I do not think it is significant enough to claim copyright. > > So that I could easily link to it in the Gentoo issue I also made an > github PR which is gpg signed if that helps? > > https://github.com/brgl/libgpiod/pull/65 Whatever, I guess it doesn't touch the code anyway. Bart
On Wed, Mar 20, 2024 at 2:50 PM <orbea@riseup.net> wrote: > > From: orbea <orbea@riseup.net> > > 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@riseup.net> > --- > 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 > >
On Wed, 20 Mar 2024 17:43:46 +0100 Bartosz Golaszewski <brgl@bgdev.pl> wrote: > On Wed, Mar 20, 2024 at 2:50 PM <orbea@riseup.net> wrote: > > > > From: orbea <orbea@riseup.net> > > > > 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@riseup.net> > > --- > > 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)
On Thu, Mar 21, 2024 at 2:34 PM orbea <orbea@riseup.net> wrote: > > 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? > I suppose you mean Catch2? What version does Gentoo provide? Bart
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 noinst_PROGRAMS = gpiod-cxx-test