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