daemon: Fix linking gcrypt when --as-needed linker arg is used

This is a followup to 8a7bd211d2.

As it is mentioned in autoconf manual that library names should be
specified in LIBS, not LDFLAGS. See:

https://www.gnu.org/savannah-checkouts/gnu/autoconf/manual/autoconf-2.72/html_node/Preset-Output-Variables.html#index-LDFLAGS-2

This change also brings back the save_* vars trick that was there
before. I missed in my earlier change that nix/local.mk was referring
LIBGCRYPT_* vars directly.

And, instead of CXXFLAGS, CPPFLAGS is used since the latter is probably
more correct as this is used for include dirs, therefore using
preprocessor flags.

Tested with ./configure LDFLAGS="-Wl,--as-needed" --with-libgcrypt-prefix=... combinations.

* config-daemon.ac: Set ‘LIBGCRYPT_CPPFLAGS’ instead of
‘LIBGCRYPT_CXXFLAGS’.  Set ‘LIBGCRYPT_LIBS’ in addition to
‘LIBGCRYPT_LDFLAGS’.  Save and restore ‘CPPFLAGS’, ‘LDFLAGS’, and ‘LIBS’
around test.
* nix/local.mk (libutil_a_CPPFLAGS): Add $(LIBGCRYPT_CPPFLAGS).
(libstore_a_CXXFLAGS): Remove $(LIBGCRYPT_CFLAGS).
(guix_daemon_LDFLAGS): New variable.

Change-Id: Iadb10e1994c9a78e2927847af2cfe5e096fbb2a8
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
This commit is contained in:
Doğan Çeçen 2024-12-04 12:10:11 +02:00 committed by Ludovic Courtès
parent b0421cc964
commit dcaccc8b72
No known key found for this signature in database
GPG key ID: 090B11993D9AEBB5
2 changed files with 20 additions and 8 deletions

View file

@ -69,7 +69,8 @@ libutil_headers = \
libutil_a_CPPFLAGS = \
-I$(top_builddir)/nix \
-I$(top_srcdir)/%D%/libutil \
$(libformat_a_CPPFLAGS)
$(libformat_a_CPPFLAGS) \
$(LIBGCRYPT_CPPFLAGS)
libstore_a_SOURCES = \
%D%/libstore/gc.cc \
@ -109,7 +110,7 @@ libstore_a_CPPFLAGS = \
-DDEFAULT_CHROOT_DIRS="\"\""
libstore_a_CXXFLAGS = $(AM_CXXFLAGS) \
$(SQLITE3_CFLAGS) $(LIBGCRYPT_CFLAGS)
$(SQLITE3_CFLAGS)
bin_PROGRAMS = guix-daemon
@ -122,6 +123,9 @@ guix_daemon_CPPFLAGS = \
$(libutil_a_CPPFLAGS) \
-I$(top_srcdir)/%D%/libstore
guix_daemon_LDFLAGS = \
$(LIBGCRYPT_LDFLAGS)
guix_daemon_LDADD = \
libstore.a libutil.a libformat.a -lz \
$(SQLITE3_LIBS) $(LIBGCRYPT_LIBS)