libargp package breaks getent utility

Jon Turney jon.turney@dronecode.org.uk
Sun Nov 9 19:44:27 GMT 2025


On 09/11/2025 16:02, Andrew Schulman via Cygwin wrote:
>> A message box shown when running an affected program directly from
>> cmd.exe reveals the problem: Entrypoint "argp_parse" is missing.
>>
>> $ objdump -p /bin/cygargp-0.dll | grep argp_parse
>>          [  56] +base[  57]  0038 rpl_argp_parse
>>
>> Previous version:
>>
>> $ objdump -p /bin/cygargp-0.dll | grep argp_parse
>>          [  24] +base[  25]  0018 argp_parse
>>
>>
>> Current <argp.h> actually maps 'argp_parse' to 'rpl_argp_parse':
>>
>> $ printf '#include <argp.h>\nargp_parse' | gcc -E -xc - | tail -1
>> rpl_argp_parse
>>
>> $ grep -B1 rpl_argp_parse /usr/include/argp-config.h
>> /* Define to the name of argp_parse outside libc. */
>> #define argp_parse rpl_argp_parse
> 
> Good grief. Thanks Christian. So I see a few possible solutions to this:
> 
> (1) Recompile all of the Cygwin programs that use argp, so they call the new
> entry point rpl_argp_parse, aliased from argp_parse. (I don't really want to
> do this)
> 
> (2) Patch the gnulib source to make argp_parse a function that points to
> rpl_argp_parse, instead of just a #define.
> 
> (3) File a bug report with the gnulib project and see if they'll fix it.

There are a few other possibilities, such as:

(4) If upstream really intends this to be an ABI break, bump the 
soversion to 1 in a new package libargp1 (and we'll keep the existing 
libargp (effectively libargp0) around until stuff linking with it is 
rebuilt).

(5) If upstream thinks there isn't a stable ABI, stop providing a shared 
library, only a static one in libargp-devel.

> While I sort that out, I'm going to release another update that will revert to
> the previous release. That should get everything working again for now.
> 
> Sorry for the trouble, everyone. This was a breaking ABI change and
> unfortunately that meant that it passed all of our tests with newly compiled
> code.



More information about the Cygwin mailing list