Hello, Carl Dong <cont...@carldong.me> skribis:
> I believe there's been a recent regression w/re MAKE-GCC-TOOLCHAIN. I'm unable > to guix build the following minimal reproducer: > > (use-modules (gnu packages commencement) > (gnu packages gcc) > (gnu packages base)) > > (make-gcc-toolchain gcc glibc-2.27) > > My guix describe output: > Generation 33 Oct 22 2019 15:07:03 (current) > guix f5d6c88 > repository URL: https://git.savannah.gnu.org/git/guix.git > commit: f5d6c88d0f5e1556295c1a19c46ddfcb7a23107f > > The build failure logs can be found here: > https://www.dropbox.com/s/y7sg3m786ziiwvb/gcc-glibc-2.27-7.4.0.drv.log?dl=0 So we see tons of things like: --8<---------------cut here---------------start------------->8--- In file included from /gnu/store/5k8l1l6j8sjws40xvlhs7hqjb68ylf7l-glibc-2.27/include/bits/fcntl.h:61:0, from /gnu/store/5k8l1l6j8sjws40xvlhs7hqjb68ylf7l-glibc-2.27/include/fcntl.h:35, from ../../gcc-7.4.0/gcc/system.h:349, from ../../gcc-7.4.0/gcc/genchecksum.c:21: /gnu/store/5k8l1l6j8sjws40xvlhs7hqjb68ylf7l-glibc-2.27/include/bits/fcntl-linux.h:355:27: warning: ISO C++ forbids zero-size array ‘f_handle’ [-Wpedantic] unsigned char f_handle[0]; ^ In file included from ./bconfig.h:3:0, from ../../gcc-7.4.0/gcc/genchecksum.c:20: ./auto-host.h:2363:16: error: declaration does not declare anything [-fpermissive] #define rlim_t long ^ /gnu/store/5k8l1l6j8sjws40xvlhs7hqjb68ylf7l-glibc-2.27/include/bits/resource.h:131:18: note: in expansion of macro ‘rlim_t’ typedef __rlim_t rlim_t; ^~~~~~ […] ../../gcc-7.4.0/gcc/system.h:540:20: error: conflicting declaration of C function ‘const char* strsignal(int)’ extern const char *strsignal (int); ^~~~~~~~~ In file included from /gnu/store/x3jx25cd3q363mr7nbgzrhrv1vza6cf7-gcc-7.4.0/include/c++/cstring:42:0, from ../../gcc-7.4.0/gcc/system.h:235, from ../../gcc-7.4.0/gcc/genhooks.c:21: /gnu/store/5k8l1l6j8sjws40xvlhs7hqjb68ylf7l-glibc-2.27/include/string.h:446:14: note: previous declaration ‘char* strsignal(int)’ extern char *strsignal (int __sig) __THROW; ^~~~~~~~~ […] In file included from ../../gcc-7.4.0/gcc/genmodes.c:21:0: ../../gcc-7.4.0/gcc/system.h:488:14: error: conflicting declaration of C function ‘void* sbrk(int)’ extern void *sbrk (int); ^~~~ In file included from ../../gcc-7.4.0/gcc/system.h:294:0, from ../../gcc-7.4.0/gcc/genmodes.c:21: /gnu/store/5k8l1l6j8sjws40xvlhs7hqjb68ylf7l-glibc-2.27/include/unistd.h:1044:14: note: previous declaration ‘void* sbrk(intptr_t)’ extern void *sbrk (intptr_t __delta) __THROW; ^~~~ […] make[1]: Leaving directory '/tmp/guix-build-gcc-glibc-2.27-7.4.0.drv-0/build' make: *** [Makefile:934: all] Error 2 command "make" "-j" "48" "FLAGS_FOR_TARGET=-B/gnu/store/5k8l1l6j8sjws40xvlhs7hqjb68ylf7l-glibc-2.27/lib" "LDFLAGS_FOR_TARGET=-B/gnu/store/5k8l1l6j8sjws40xvlhs7hqjb68ylf7l-glibc-2.27/lib -Wl,-dynamic-linker -Wl,/gnu/store/5k8l1l6j8sjws40xvlhs7hqjb68ylf7l-glibc-2.27/lib/ld-linux-x86-64.so.2" "LDFLAGS=-Wl,-rpath=/gnu/store/5k8l1l6j8sjws40xvlhs7hqjb68ylf7l-glibc-2.27/lib -Wl,-dynamic-linker -Wl,/gnu/store/5k8l1l6j8sjws40xvlhs7hqjb68ylf7l-glibc-2.27/lib/ld-linux-x86-64.so.2" "BOOT_CFLAGS=-O2 -g0" failed with status --8<---------------cut here---------------end--------------->8--- The ‘configure’ phase shows that ‘strsignal’ and ‘sbrk’ were not quite found, but this is confusing: --8<---------------cut here---------------start------------->8--- checking for strsignal... no checking for pstat_getstatic... yes checking for sysconf... no checking for realpath... yes checking for sysctl... yes checking for setrlimit... yes checking for sysmp... yes checking for sbrk... no checking for table... yes checking for spawnve... no checking for times... no checking for spawnvpe... yes checking for wait3... no checking for strerror... yes checking for wait4... yes checking for strsignal... yes […] checking whether sbrk is declared... yes --8<---------------cut here---------------end--------------->8--- Does it work with ‘glibc-2.28’? We’re not building any such toolchain in CI but we probably should… Ludo’.