libargp package breaks getent utility

Christian Franke Christian.Franke@t-online.de
Sun Nov 9 10:01:35 GMT 2025


Christian Franke wrote:
> Cedric Blancher via Cygwin wrote:
>> On Sat, 8 Nov 2025 at 12:50, Cedric 
>> Blancher<cedric.blancher@gmail.com> wrote:
>>> Good morning!
>>>
>>> /usr/bin/getent passwd and /usr/bin/getent group no longer yield any
>>> output in the latest Cygwin 3.7-dev binaries.
>>>
>>> Something broke.
>>>
>>> I did some digging, and even /usr/bin/getent --help does not work
>>> anymore. strace getent then reported that the function "argp_parse" is
>>> missing in the binary.
>>> Downgrading the package does not help.
>> Downgrading the libargp package solved the problem.
>
> This also applies to the few other tools which appear in 'rdepends': 
> f3read, f3write, nosleep, rngtest.
> https://cygwin.com/packages/summary/libargp.html

According to gdb, programs fail during startup with 0xc0000139 
(STATUS_ENTRYPOINT_NOT_FOUND).

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

-- 
Regards,
Christian



More information about the Cygwin mailing list