The build failure is with lnx_kbd.c . An implicit declaration of the function getpgid is treated as an error. It seems to be a missing include, because POSIX and uclibc have it. Reproducible: Always Steps to Reproduce: 1. emerge -u1 x11-drivers/xf86-input-keyboard 2. 3. Actual Results: * ERROR: x11-drivers/xf86-input-keyboard-1.8.1::gentoo failed (compile phase): * emake failed Expected Results: xf86-input-keyboard updated on system
Created attachment 418658 [details] emerge --info
Created attachment 418660 [details] build.log from emerge
Adding <unistd.h> does not help unfortunately. The implicit declaration still exists. It still exists with a simple test C program. To get rid of it, I must avoid unistd.h at all costs, as in my minimal test: /*#include <unistd.h>*/ #include <sys/types.h> extern pid_t getpgid(pid_t id); #include <stdio.h> int main(int argc, char** argv) { printf("%d\n", getpgid(0)); return 0; } This is something not possible with xf86-input-keyboard source. However, its configure checks for -Werror=implicit, making the implicit declaration an error. In case of uclibc, which has a getpgid symbol, we can simply revert back to a warning with append-cflag in the ebuild. Ugly, but works.
Created attachment 424440 [details, diff] xf86-input-keyboard-1.8.1.ebuild.patch On uclibc, disable -Werror=implicit-function-declaration with append-cflags
packages shouldn't be building with -Werror flags in the first place, so the fix is to disable all of those for this package
Created attachment 424662 [details, diff] Simpler ebuild patch I found out the configure script provides a way to disable all those errors, so this new ebuild patch uses the option.
This should be fixed by commit 6aaaf15f8882dd112d22454600294e37969fa822 Author: Matt Turner <mattst88@gentoo.org> Date: Sun Jan 29 11:30:39 2017 -0800 xorg-2.eclass: Use --disable-selective-werror. Please confirm.