GNU bug report logs - #74677
[PATCH] nix/local.mk: fix -lgcrypt link on --as-needed toolchains

Previous Next

Package: guix-patches;

Reported by: Sergei Trofimovich <slyich <at> gmail.com>

Date: Tue, 3 Dec 2024 21:16:02 UTC

Severity: normal

Tags: patch

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: tracker <at> debbugs.gnu.org
Subject: bug#74677: closed ([PATCH] nix/local.mk: fix -lgcrypt link on
 --as-needed toolchains)
Date: Mon, 09 Dec 2024 22:18:02 +0000
[Message part 1 (text/plain, inline)]
Your message dated Mon, 09 Dec 2024 23:17:31 +0100
with message-id <871pyglcw4.fsf <at> gnu.org>
and subject line Re: [bug#74677] [PATCH] nix/local.mk: fix -lgcrypt link on --as-needed toolchains
has caused the debbugs.gnu.org bug report #74677,
regarding [PATCH] nix/local.mk: fix -lgcrypt link on --as-needed toolchains
to be marked as done.

(If you believe you have received this mail in error, please contact
help-debbugs <at> gnu.org.)


-- 
74677: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=74677
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Sergei Trofimovich <slyich <at> gmail.com>
To: guix-patches <at> gnu.org
Cc: Sergei Trofimovich <slyich <at> gmail.com>
Subject: [PATCH] nix/local.mk: fix -lgcrypt link on --as-needed toolchains
Date: Tue,  3 Dec 2024 21:15:15 +0000
https://git.savannah.gnu.org/cgit/guix.git/commit/?id=8a7bd211d21f06c1234fbb82bb905d202d58f598
introduced a build regression on Gentoo as:

    x86_64-pc-linux-gnu-g++ -Wall -std=c++11 -O2 -pipe   -Wl,-O1 -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,--hash-style=gnu -lgcrypt -o guix-daemon nix/nix-daemon/guix_daemon-nix-daemon.o nix/nix-daemon/guix_daemon-guix-daemon.o libstore.a libutil.a libformat.a -lz -lsqlite3  -lbz2
    /usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: nix/nix-daemon/guix_daemon-guix-daemon.o: in function `main':
guix-daemon.cc:(.text.startup+0x62): undefined reference to `gcry_check_version'

This happens because:
- Gentoo linker is using --Wl,-as-needed by default
- -lgcrypt is passed before actual use of it's symbols in `guix-daemon.cc`

The change uses `LIBGCRYPT_LDFLAGS` as if it was `LIBGCRYPT_LIBS`.

* nix/local.mk (guix_daemon_LDADD): Use LIBGCRYPT_LDFLAGS instead of
  unset LIBGCRYPT_LIBS.
---
 nix/local.mk | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/nix/local.mk b/nix/local.mk
index 8a2b2b88e8..50368457dd 100644
--- a/nix/local.mk
+++ b/nix/local.mk
@@ -124,7 +124,7 @@ guix_daemon_CPPFLAGS =				\
 
 guix_daemon_LDADD =				\
   libstore.a libutil.a libformat.a -lz		\
-  $(SQLITE3_LIBS) $(LIBGCRYPT_LIBS)
+  $(SQLITE3_LIBS) $(LIBGCRYPT_LDFLAGS)
 
 guix_daemon_headers =				\
   %D%/nix-daemon/shared.hh
-- 
2.47.0



[Message part 3 (message/rfc822, inline)]
From: Ludovic Courtès <ludo <at> gnu.org>
To: Sergei Trofimovich <slyich <at> gmail.com>
Cc: 74677-done <at> debbugs.gnu.org
Subject: Re: [bug#74677] [PATCH] nix/local.mk: fix -lgcrypt link on
 --as-needed toolchains
Date: Mon, 09 Dec 2024 23:17:31 +0100
Hi Sergei,

Sergei Trofimovich <slyich <at> gmail.com> skribis:

> https://git.savannah.gnu.org/cgit/guix.git/commit/?id=8a7bd211d21f06c1234fbb82bb905d202d58f598
> introduced a build regression on Gentoo as:
>
>     x86_64-pc-linux-gnu-g++ -Wall -std=c++11 -O2 -pipe   -Wl,-O1 -Wl,--as-needed -Wl,-z,pack-relative-relocs -Wl,--hash-style=gnu -lgcrypt -o guix-daemon nix/nix-daemon/guix_daemon-nix-daemon.o nix/nix-daemon/guix_daemon-guix-daemon.o libstore.a libutil.a libformat.a -lz -lsqlite3  -lbz2
>     /usr/lib/gcc/x86_64-pc-linux-gnu/14/../../../../x86_64-pc-linux-gnu/bin/ld: nix/nix-daemon/guix_daemon-guix-daemon.o: in function `main':
> guix-daemon.cc:(.text.startup+0x62): undefined reference to `gcry_check_version'
>
> This happens because:
> - Gentoo linker is using --Wl,-as-needed by default
> - -lgcrypt is passed before actual use of it's symbols in `guix-daemon.cc`

I pushed as dcaccc8b722cee279c00bb321baa48ae73563931 the patch
Doğan Çeçen submitted to fix this regression and more:

  https://issues.guix.gnu.org/74686

Thanks,
Ludo’.


This bug report was last modified 161 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.