Marius Bakke
2018-04-16 17:15:16 UTC
Hello!
Building 'bootstrap-tarballs' for other architectures fails on
core-updates. Here is the comparison to the previous core-updates
evaluation in December:
https://hydra.gnu.org/eval/109945?compare=109875#tabs-now-fail
There seems to be a couple of different problems here.
'patch' fails to build due to a conflicting declaration of
'__mktime_internal':
--8<---------------cut here---------------start------------->8---
CCLD patch
/gnu/store/9v09kidvqykyk2kh26q297di3lkjc8vy-glibc-cross-arm-linux-gnueabihf-2.27-static/lib/libc.a(mktime.o): In function `__mktime_internal':
/tmp/guix-build-glibc-cross-arm-linux-gnueabihf-2.27.drv-0/glibc-2.27/time/mktime.c:353: multiple definition of `__mktime_internal'
../lib/libpatch.a(mktime.o):/tmp/guix-build-patch-2.7.6.drv-0/patch-2.7.6/lib/mktime.c:317: first defined here
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:1230: patch] Error 1
--8<---------------cut here---------------end--------------->8---
Note that there is a warning about __mktime_internal earlier:
--8<---------------cut here---------------start------------->8---
In file included from timegm.c:20:0:
timegm.c: In function 'rpl_timegm':
../config.h:1974:25: warning: implicit declaration of function '__mktime_internal' [-Wimplicit-function-declaration]
#define mktime_internal __mktime_internal
timegm.c:30:28: note: in expansion of macro 'mktime_internal'
# define __mktime_internal mktime_internal
timegm.c:39:10: note: in expansion of macro '__mktime_internal'
return __mktime_internal (tmp, __gmtime_r, &gmtime_offset);
--8<---------------cut here---------------end--------------->8---
Then we have 'ncurses' failing in the install phase with:
--8<---------------cut here---------------start------------->8---
make[1]: Entering directory '/tmp/guix-build-ncurses-6.1.drv-0/ncurses-6.1/progs'
mkdir -p /gnu/store/553j76738bh6bcr31vsyri0wpxir2wkw-ncurses-6.1/bin
/gnu/store/63gkgnixg6xj3m9cgl25ib2zxl51ngw0-coreutils-8.29/bin/install -c -s tic /gnu/store/553j76738bh6bcr31vsyri0wpxir2wkw-ncurses-6.1/bin/`echo tic| sed 's/$//'|sed 's,x,x,'|sed 's/$//'`
strip: Unable to recognise the format of the input file `/gnu/store/553j76738bh6bcr31vsyri0wpxir2wkw-ncurses-6.1/bin/tic'
/gnu/store/63gkgnixg6xj3m9cgl25ib2zxl51ngw0-coreutils-8.29/bin/install: strip process terminated abnormally
make[1]: *** [Makefile:201: install.progs] Error 1
--8<---------------cut here---------------end--------------->8---
The error message here is odd: /gnu/store/.../bin/tic is not installed
yet at this point. The built binary looks fine however. Quoth `file`:
/dev/shm/guix-build-ncurses-6.1.drv-0/ncurses-6.1/progs/tic: ELF 32-bit LSB executable, ARM, EABI5
version 1 (SYSV), dynamically linked, interpreter /gnu/store/jiw5wrjvcipfxnpl56572x4bf6gdvypf-glibc-cross-arm-linux-gnueabihf-2.27/lib/ld-linux-armhf.so.3, for GNU/Linux 2.6.32, with debug_info, not stripped
I'm not sure why these failures happen only when cross-compiling. The
respective native builds are okay. Thoughts?
For those following along at home, you can reproduce these failures by
checking out the core-updates branch, and then run:
./pre-inst-env guix build --target=arm-linux-gnueabihf bootstrap-tarballs
(or any other target triplet, they fail in the same way)
Building 'bootstrap-tarballs' for other architectures fails on
core-updates. Here is the comparison to the previous core-updates
evaluation in December:
https://hydra.gnu.org/eval/109945?compare=109875#tabs-now-fail
There seems to be a couple of different problems here.
'patch' fails to build due to a conflicting declaration of
'__mktime_internal':
--8<---------------cut here---------------start------------->8---
CCLD patch
/gnu/store/9v09kidvqykyk2kh26q297di3lkjc8vy-glibc-cross-arm-linux-gnueabihf-2.27-static/lib/libc.a(mktime.o): In function `__mktime_internal':
/tmp/guix-build-glibc-cross-arm-linux-gnueabihf-2.27.drv-0/glibc-2.27/time/mktime.c:353: multiple definition of `__mktime_internal'
../lib/libpatch.a(mktime.o):/tmp/guix-build-patch-2.7.6.drv-0/patch-2.7.6/lib/mktime.c:317: first defined here
collect2: error: ld returned 1 exit status
make[2]: *** [Makefile:1230: patch] Error 1
--8<---------------cut here---------------end--------------->8---
Note that there is a warning about __mktime_internal earlier:
--8<---------------cut here---------------start------------->8---
In file included from timegm.c:20:0:
timegm.c: In function 'rpl_timegm':
../config.h:1974:25: warning: implicit declaration of function '__mktime_internal' [-Wimplicit-function-declaration]
#define mktime_internal __mktime_internal
timegm.c:30:28: note: in expansion of macro 'mktime_internal'
# define __mktime_internal mktime_internal
timegm.c:39:10: note: in expansion of macro '__mktime_internal'
return __mktime_internal (tmp, __gmtime_r, &gmtime_offset);
--8<---------------cut here---------------end--------------->8---
Then we have 'ncurses' failing in the install phase with:
--8<---------------cut here---------------start------------->8---
make[1]: Entering directory '/tmp/guix-build-ncurses-6.1.drv-0/ncurses-6.1/progs'
mkdir -p /gnu/store/553j76738bh6bcr31vsyri0wpxir2wkw-ncurses-6.1/bin
/gnu/store/63gkgnixg6xj3m9cgl25ib2zxl51ngw0-coreutils-8.29/bin/install -c -s tic /gnu/store/553j76738bh6bcr31vsyri0wpxir2wkw-ncurses-6.1/bin/`echo tic| sed 's/$//'|sed 's,x,x,'|sed 's/$//'`
strip: Unable to recognise the format of the input file `/gnu/store/553j76738bh6bcr31vsyri0wpxir2wkw-ncurses-6.1/bin/tic'
/gnu/store/63gkgnixg6xj3m9cgl25ib2zxl51ngw0-coreutils-8.29/bin/install: strip process terminated abnormally
make[1]: *** [Makefile:201: install.progs] Error 1
--8<---------------cut here---------------end--------------->8---
The error message here is odd: /gnu/store/.../bin/tic is not installed
yet at this point. The built binary looks fine however. Quoth `file`:
/dev/shm/guix-build-ncurses-6.1.drv-0/ncurses-6.1/progs/tic: ELF 32-bit LSB executable, ARM, EABI5
version 1 (SYSV), dynamically linked, interpreter /gnu/store/jiw5wrjvcipfxnpl56572x4bf6gdvypf-glibc-cross-arm-linux-gnueabihf-2.27/lib/ld-linux-armhf.so.3, for GNU/Linux 2.6.32, with debug_info, not stripped
I'm not sure why these failures happen only when cross-compiling. The
respective native builds are okay. Thoughts?
For those following along at home, you can reproduce these failures by
checking out the core-updates branch, and then run:
./pre-inst-env guix build --target=arm-linux-gnueabihf bootstrap-tarballs
(or any other target triplet, they fail in the same way)