Investigating GNU ld, I learned that there is no easy way (~= no way) to suppress the warnings (other than 2>/dev/null). It was implemented by the special section named gnu.warning.SYM where SYM is a symbol. I think that this is not-so-good for glibc to notify its users about possible static link problem, by gnu.warning.SYM.
- Queries
- All Stories
- Search
- Advanced Search
- Transactions
- Transaction Logs
Advanced Search
Tue, Feb 10
Wed, Feb 4
I found two issues in libgpg-error for spawning functions.
POSIX documentation never says that PSHARED=0 prevents sharing among processes. In my opinion, it still conforms to POSIX even when a PSHARED=0 semaphore can be shared between parent and child processes.
Tue, Feb 3
I've tried the new patch in my environment, and it fixes the gnupg HEAD self tests as well. Thank you!
In tests/migrations, (unlike tests/openpgp and tests/cms), the tests do not prepare gpg-agent, but it is gpg which invokes gpg-agent if needed.
Because of that, on NetBSD (where POSIX semaphore has a different semantics), it hangs with gpg --list-secret-key, when gpg tries to spawn the gpg-agent process.
In the old code of 2.4, it simply ignore the npth_protect and npth_unprotect when calling fork to spawn a process.
New code in libgpg-error cares about npth_protect and npth_unprotect but it was not sufficient; We need to care about NetBSD's semantics. Child process should not call npth_protect. With shared semantics, child process's calling npth_protect affects to cause parent process: it hangs.
Fri, Jan 30
TL;DR
This ticket was created because building static-linked gpgv shows warnings from glibc for getpwnam and getpwuid.
Basically, we can/should ignore the warnings from glibc at link time (for normal use cases), because it is irrelevant.
Thu, Jan 29
Let us mark this as a feature requests. gepwnam(3) is a standard libc function and if glibc does not support it; this is more likely a glibc bug than a bug in an application.
It seems this broke the self tests (and gpgme, and notmuch) on NetBSD: https://dev.gnupg.org/T8065
Jan 9 2026
I think we won't fix that for 2.2
Dec 12 2025
Dec 10 2025
Dec 9 2025
gpgrt 1.57 will come with gpgrt_fconcat. This can be used to get the sysconfig in a portable way:
Dec 4 2025
@werner For rCd5e3cbfd , my mingw (GCC version 14) complains about the function-return-type difference of the prototype with GetProcAddress.
Nov 28 2025
Scute fixed in rSc3dc9c581631: w32: Use CSIDL_COMMON_APPDATA if available.
Nov 27 2025
Nov 26 2025
Okay, forward porting that patch is the easiest solution. Actually this is not enough: Users of Libgcrypt also need to make sure that the new sysconfig dir has the right permissions. That's a part for the installer and concrete ACLs may differ.
Nov 25 2025
I examined the code of gnupg_sysconfdir in gnupg/common/homedir.c, if we could factor out things to gpgrt, so that something like gpgrt_fconcat with GPGRT_SYSCONFDIR can be implemented.
Nov 20 2025
For GnuPG, applied the change to master: rG57affc4e98ab: common,agent,dirmngr,kbx:w32: Synchronous spawning daemon process.
Nov 12 2025
I checked the code under gnupg/dirmngr. Those are no harm.
Nov 6 2025
Nov 5 2025
I think this is correct even on Unix in case someone really uses /usr/local/etc (which I consider problematic). But for Windows we need to determine this at runtime.
For gpgrt/argparse this could be an option (to remove hard-coded /etc):
Nov 3 2025
Oct 8 2025
Fixed in 1.56.
Oct 7 2025
Jul 18 2025
Jul 17 2025
Jul 16 2025
Fixed with new GPGRT_PROCESS_STDIO_NUL flag.
Jul 15 2025
Pushed the changes:
- Inheriting HANDLEs has been not working accurately
- Before the fix, all HANDLEs were inherited
- Only specified HANDLEs are inherited by: rE0b01950237ab: w32:spawn: Fix inheriting HANDLEs.
- HANDLEs by w32_open_null were leaked
T7723 fix by rE311fb769d1dd: w32:spawn: New flag GPGRT_PROCESS_STDIO_NUL.
Before implementing this feature, it's better to fix T7723: gpgrt:w32: Fix for inheriting stdin/stdout/stderr with "NUL", and do some clean up.
If we will fix gpgconf using GPGRT_PROCESS_STDIO_NUL, we will need to fix gpg-connect-agent to see if it's NUL or not.
Jul 11 2025
Here is an experimental change to support the feature.
Jul 9 2025
Jun 26 2025
Jun 23 2025
Jun 11 2025
I looked at it but we probably need to rework/update the entire libtool stuff which has a high regression risk. Thus I give this bug a low priority because it is not a functional bug.
Jun 5 2025
May 15 2025
Apr 24 2025
Apr 23 2025
Apr 22 2025
doc/HACKING says it's OK to use variadic arg macros (from C99 features).
If it's OK, this patch can fix the initialization (which silences GCC 15 warnings):
Apr 21 2025
Apr 17 2025
Apr 9 2025
Note that 1.53 was released today which fixes a small regression:
Apr 8 2025
Jan 22 2025
In case of build problems related to a failed test you may want to apply rEb6df311368133df90c3bf338fbf5c90bd8d950f8.
Jan 14 2025
@werner I read the code of gpgme/src/posix-io.c. I understand the two points:
- For the correctness sake, the possible interrupted closefrom should be handled.
- we can share the code with closefrom case and non-closefrom case.
Jan 8 2025
@gniibe: Please see gpgme/src/posix-io.c where we have this:
Thank you for your report.
Jan 7 2025
Hm, this might also be relevant in GnuPG's codebase in common/exechelp-posix.c, which contains a copy of the same code (licensed differently).
Jan 6 2025
Dec 20 2024
This problem has gone in libgpg-error 1.51, since the implementation doesn't use environ any more.
Nov 12 2024
Fixed in 1.51, by introducing gpgrt_spawn_actions_set_env_rev, which assumes utf-8 encoding.
Fixed in 1.51.
Fixed in 1.51.
Nov 11 2024
Oct 31 2024
Oct 23 2024
Thanks. Fixed in: rEd14c69a7f256: Avoid use of 'nullptr' for an identifier.