All of lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v2] package/cryptopp: add a target build configuration
Date: Mon, 27 Jul 2020 15:03:13 +0200	[thread overview]
Message-ID: <20200727150313.634b6b59@windsurf.home> (raw)
In-Reply-To: <20200727124232.GX19818@scaer>

On Mon, 27 Jul 2020 14:42:32 +0200
"Yann E. MORIN" <yann.morin.1998@free.fr> wrote:

> > +diff --git a/GNUmakefile b/GNUmakefile
> > +index e7b7b3a6..730e2a6f 100755
> > +--- a/GNUmakefile
> > ++++ b/GNUmakefile
> > +@@ -1256,6 +1256,7 @@ ifneq ($(wildcard libcryptopp.so$(SOLIB_VERSION_SUFFIX)),)
> > + 	$(CHMOD) 0755 $(DESTDIR)$(LIBDIR)/libcryptopp.so$(SOLIB_VERSION_SUFFIX)
> > + ifeq ($(HAS_SOLIB_VERSION),1)
> > + 	-$(LN) libcryptopp.so$(SOLIB_VERSION_SUFFIX) $(DESTDIR)$(LIBDIR)/libcryptopp.so
> > ++	-$(LN) libcryptopp.so$(SOLIB_VERSION_SUFFIX) $(DESTDIR)$(LIBDIR)/libcryptopp.so$(SOLIB_COMPAT_SUFFIX)  
> 
> Why do we need that?

Because on the target you need a symlink from the SONAME to the actual
library. Right now, the Makefile only:

 * Installs the library as libcryptopp.so.8.2.0. It has a SONAME of
   libcryptopp.so.8.

 * Creates a symlink libcryptopp.so -> libcryptopp.so.8.2.0, which
   allows to link new applications

 * Does NOT create the libcryptopp.so.8 -> libcryptopp.so.8.2.0 which
   would allow using the library at runtime.

> > + 	$(LDCONF) $(DESTDIR)$(LIBDIR)  

And it is this invocation of ldconfig that creates it!

> Note that in corss-compilation, running ldconfig is flawed, and we have
> explcitly idable its use. See commit 9c4072348 (Makefile: drop ldconfig
> handling).

Yes.

> As a consequence, you want to explcitly configure with LDCONF=/bin/true,
> see for example package/e2fsprogs/e2fsprogs.mk (for the target variant)
> (Nothe that a few other packages do something similar as well)

Yes.

> Which means that with your patch and without a call to ldconfig, the .so
> symlink will no longer exist, and so it will no longer be possible to
> link against the library.

No correct: the .so symlink still exists. Re-read the patch from Kamel,
it creates the .so.8 symlink in *addition* to creating the .so symlink,
which was already there.

> Note that the host variant is not OK either, because not all systems
> have ldconfig on the host either... See 64d4b34073 (e2fsprogs: do not
> use ldconfig when building the host variant).

Yes, agreed.

So all what we need is:

 (1) LDCONF=/bin/true
 (2) An improved commit description for the patch that adds the symlink

Thomas
-- 
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com

  reply	other threads:[~2020-07-27 13:03 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-27 12:23 [Buildroot] [PATCH v2] package/cryptopp: add a target build configuration Kamel Bouhara
2020-07-27 12:42 ` Yann E. MORIN
2020-07-27 13:03   ` Thomas Petazzoni [this message]
2020-07-27 13:17     ` Yann E. MORIN
2020-07-28  9:56       ` Kamel Bouhara

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200727150313.634b6b59@windsurf.home \
    --to=thomas.petazzoni@bootlin.com \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.