First of all I'm using Linux 5.0.17 & glibc-2.29-15 so as far as I'm aware accept4 exists and fully works and gnulib shouldn't be replacing it at all. I don't understand why it's being replaced.
But given that, in libguestfs we call: r = accept4 (console_sock, NULL, NULL, SOCK_NONBLOCK|SOCK_CLOEXEC); https://github.com/libguestfs/libguestfs/blob/master/lib/launch-libvirt.c#L639 This is a valid set of flags according to the Linux man page for accept4(2). But it fails with EINVAL because of the following test in gnulib: if ((flags & ~(SOCK_CLOEXEC | O_TEXT | O_BINARY)) != 0) { errno = EINVAL; return -1; } https://git.savannah.gnu.org/cgit/gnulib.git/tree/lib/accept4.c#n61 So I think the set of flags should be broadened to include SOCK_NONBLOCK + add a call to set_nonblocking_flag. As for why accept4 is being replaced at all, the only reference to it in config.log is: configure:25630: checking whether accept4 is declared configure:25630: gcc -c -O2 -g -pipe -Wall -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong -grecord-gcc-switches -specs=/usr/lib/rpm/redhat/redhat-hardened-cc1 -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mtune=generic -fasynchronous-unwind-tables -fstack-clash-protection -fcf-protection conftest.c >&5 configure:25630: $? = 0 configure:25630: result: yes Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-builder quickly builds VMs from scratch http://libguestfs.org/virt-builder.1.html