[Ubuntu 16.04] xargo errors during build of libnewlib_redox.a do not stop newlib compilation, although is later necessary
Created by: eddyp
I am trying to build from scratch the compiler, but got some errors related to crt0.o which did not seem to make sense. Looking back even higher in the log, I found this cargo update error which seems to fatal, but the build script doesn't stop when running into it:
cd /home/eddy/usr/src/redox/libc/newlib/newlib/libc/sys/redox; cargo update
x86_64-unknown-redox-gcc -B/home/eddy/usr/src/redox/libc/build/cross/newlib/x86_64-unknown-redox/newlib/ -isystem /home/eddy/usr/src/redox/libc/build/cross/newlib/x86_64-unknown-redox/newlib/targ-include -isystem /home/eddy/usr/src/redox/libc/newlib/newlib/libc/include -B/home/eddy/usr/src/redox/libc/build/cross/newlib/x86_64-unknown-redox/libgloss/x86_64 -L/home/eddy/usr/src/redox/libc/build/cross/newlib/x86_64-unknown-redox/libgloss/libnosys -L/home/eddy/usr/src/redox/libc/newlib/libgloss/x86_64 -DPACKAGE_NAME=\"newlib\" -DPACKAGE_TARNAME=\"newlib\" -DPACKAGE_VERSION=\"2.5.0\" -DPACKAGE_STRING=\"newlib\ 2.5.0\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -I. -I/home/eddy/usr/src/redox/libc/newlib/newlib/libc/sys/redox -I/home/eddy/usr/src/redox/libc/newlib/newlib/libc/sys/redox/include -D_I386MACH_ALLOW_HW_INTERRUPTS -DHAVE_NANOSLEEP -DHAVE_OPENDIR -DHAVE_SYSTEM -DHAVE_RENAME -D_NO_GETCWD -D_NO_GETLOGIN -D_NO_GETPWENT -D_NO_GETUT -D_NO_GETPASS -D_NO_SIGSET -D_NO_TTYNAME -D_NO_WORDEXP -DHAVE_RENAME -DHAVE_FCNTL -fno-builtin -g -O2 -c /home/eddy/usr/src/redox/libc/newlib/newlib/libc/sys/redox/crt0.c
/home/eddy/usr/src/redox/libc/newlib/newlib/libc/sys/redox/crt0.c:10:1: warning: 'naked' attribute directive ignored [-Wattributes]
__attribute__((naked)) void _start() {
^~~~~~~~~~~~~
Updating registry `https://github.com/rust-lang/crates.io-index`
Updating git repository `https://github.com/rust-lang-nursery/compiler-builtins`
Updating git repository `https://github.com/redox-os/liblibc`
cd /home/eddy/usr/src/redox/libc/newlib/newlib/libc/sys/redox; CC=x86_64-unknown-redox-gcc CFLAGS="-g -O2 -I /home/eddy/usr/src/redox/libc/newlib/newlib/libc/sys/redox/../../include" xargo build --verbose --target x86_64-unknown-redox --release ; echo xargo return code $? ; echo
+ "rustc" "--print" "sysroot"
WARNING: the sysroot can't be built for the Stable channel. Switch to nightly.
+ "cargo" "build" "--verbose" "--target" "x86_64-unknown-redox" "--release"
Compiling byteorder v1.2.1
Compiling redox_syscall v0.1.37
Compiling libc v0.2.30 (https://github.com/redox-os/liblibc#d18565cf)
Running `rustc --crate-name byteorder /home/eddy/.cargo/registry/src/github.com-1ecc6299db9ec823/byteorder-1.2.1/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C panic=abort -C metadata=076a46515ae86e4c -C extra-filename=-076a46515ae86e4c --out-dir /home/eddy/usr/src/redox/libc/newlib/newlib/libc/sys/redox/target/x86_64-unknown-redox/release/deps --target x86_64-unknown-redox -C linker=x86_64-elf-redox-gcc -L dependency=/home/eddy/usr/src/redox/libc/newlib/newlib/libc/sys/redox/target/x86_64-unknown-redox/release/deps -L dependency=/home/eddy/usr/src/redox/libc/newlib/newlib/libc/sys/redox/target/release/deps --cap-lints allow -C metadata=newlib_redox`
Running `rustc --crate-name syscall /home/eddy/.cargo/registry/src/github.com-1ecc6299db9ec823/redox_syscall-0.1.37/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C panic=abort -C metadata=ab8208dfa4d22125 -C extra-filename=-ab8208dfa4d22125 --out-dir /home/eddy/usr/src/redox/libc/newlib/newlib/libc/sys/redox/target/x86_64-unknown-redox/release/deps --target x86_64-unknown-redox -C linker=x86_64-elf-redox-gcc -L dependency=/home/eddy/usr/src/redox/libc/newlib/newlib/libc/sys/redox/target/x86_64-unknown-redox/release/deps -L dependency=/home/eddy/usr/src/redox/libc/newlib/newlib/libc/sys/redox/target/release/deps --cap-lints allow -C metadata=newlib_redox`
Running `rustc --crate-name libc /home/eddy/.cargo/git/checkouts/liblibc-47fa012775572a9a/d18565c/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C panic=abort -C metadata=ccb819e641be9320 -C extra-filename=-ccb819e641be9320 --out-dir /home/eddy/usr/src/redox/libc/newlib/newlib/libc/sys/redox/target/x86_64-unknown-redox/release/deps --target x86_64-unknown-redox -C linker=x86_64-elf-redox-gcc -L dependency=/home/eddy/usr/src/redox/libc/newlib/newlib/libc/sys/redox/target/x86_64-unknown-redox/release/deps -L dependency=/home/eddy/usr/src/redox/libc/newlib/newlib/libc/sys/redox/target/release/deps --cap-lints allow -C metadata=newlib_redox`
Compiling compiler_builtins v0.1.0 (https://github.com/rust-lang-nursery/compiler-builtins#266ea074)
Running `rustc --crate-name compiler_builtins /home/eddy/.cargo/git/checkouts/compiler-builtins-ec094dc45a0179c8/266ea07/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C panic=abort --cfg 'feature="compiler-builtins"' --cfg 'feature="default"' -C metadata=539fe757b56305e7 -C extra-filename=-539fe757b56305e7 --out-dir /home/eddy/usr/src/redox/libc/newlib/newlib/libc/sys/redox/target/x86_64-unknown-redox/release/deps --target x86_64-unknown-redox -C linker=x86_64-elf-redox-gcc -L dependency=/home/eddy/usr/src/redox/libc/newlib/newlib/libc/sys/redox/target/x86_64-unknown-redox/release/deps -L dependency=/home/eddy/usr/src/redox/libc/newlib/newlib/libc/sys/redox/target/release/deps --cap-lints allow -C metadata=newlib_redox`
error[E0463]: can't find crate for `core`
|
= note: the `x86_64-unknown-redox` target may not be installed
error: aborting due to previous error
error[E0463]: can't find crate for `core`
|
= note: the `x86_64-unknown-redox` target may not be installed
error: aborting due to previous error
error: Could not compile `redox_syscall`.
Caused by:
process didn't exit successfully: `rustc --crate-name syscall /home/eddy/.cargo/registry/src/github.com-1ecc6299db9ec823/redox_syscall-0.1.37/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C panic=abort -C metadata=ab8208dfa4d22125 -C extra-filename=-ab8208dfa4d22125 --out-dir /home/eddy/usr/src/redox/libc/newlib/newlib/libc/sys/redox/target/x86_64-unknown-redox/release/deps --target x86_64-unknown-redox -C linker=x86_64-elf-redox-gcc -L dependency=/home/eddy/usr/src/redox/libc/newlib/newlib/libc/sys/redox/target/x86_64-unknown-redox/release/deps -L dependency=/home/eddy/usr/src/redox/libc/newlib/newlib/libc/sys/redox/target/release/deps --cap-lints allow -C metadata=newlib_redox` (exit code: 101)
warning: build failed, waiting for other jobs to finish...
error: Could not compile `byteorder`.
Caused by:
process didn't exit successfully: `rustc --crate-name byteorder /home/eddy/.cargo/registry/src/github.com-1ecc6299db9ec823/byteorder-1.2.1/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C panic=abort -C metadata=076a46515ae86e4c -C extra-filename=-076a46515ae86e4c --out-dir /home/eddy/usr/src/redox/libc/newlib/newlib/libc/sys/redox/target/x86_64-unknown-redox/release/deps --target x86_64-unknown-redox -C linker=x86_64-elf-redox-gcc -L dependency=/home/eddy/usr/src/redox/libc/newlib/newlib/libc/sys/redox/target/x86_64-unknown-redox/release/deps -L dependency=/home/eddy/usr/src/redox/libc/newlib/newlib/libc/sys/redox/target/release/deps --cap-lints allow -C metadata=newlib_redox` (exit code: 101)
warning: build failed, waiting for other jobs to finish...
error[E0463]: can't find crate for `core`
|
= note: the `x86_64-unknown-redox` target may not be installed
error: aborting due to previous error
error: Could not compile `libc`.
Caused by:
process didn't exit successfully: `rustc --crate-name libc /home/eddy/.cargo/git/checkouts/liblibc-47fa012775572a9a/d18565c/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C panic=abort -C metadata=ccb819e641be9320 -C extra-filename=-ccb819e641be9320 --out-dir /home/eddy/usr/src/redox/libc/newlib/newlib/libc/sys/redox/target/x86_64-unknown-redox/release/deps --target x86_64-unknown-redox -C linker=x86_64-elf-redox-gcc -L dependency=/home/eddy/usr/src/redox/libc/newlib/newlib/libc/sys/redox/target/x86_64-unknown-redox/release/deps -L dependency=/home/eddy/usr/src/redox/libc/newlib/newlib/libc/sys/redox/target/release/deps --cap-lints allow -C metadata=newlib_redox` (exit code: 101)
warning: build failed, waiting for other jobs to finish...
error[E0463]: can't find crate for `core`
|
= note: the `x86_64-unknown-redox` target may not be installed
error: aborting due to previous error
error: Could not compile `compiler_builtins`.
Caused by:
process didn't exit successfully: `rustc --crate-name compiler_builtins /home/eddy/.cargo/git/checkouts/compiler-builtins-ec094dc45a0179c8/266ea07/src/lib.rs --crate-type lib --emit=dep-info,link -C opt-level=3 -C panic=abort --cfg feature="compiler-builtins" --cfg feature="default" -C metadata=539fe757b56305e7 -C extra-filename=-539fe757b56305e7 --out-dir /home/eddy/usr/src/redox/libc/newlib/newlib/libc/sys/redox/target/x86_64-unknown-redox/release/deps --target x86_64-unknown-redox -C linker=x86_64-elf-redox-gcc -L dependency=/home/eddy/usr/src/redox/libc/newlib/newlib/libc/sys/redox/target/x86_64-unknown-redox/release/deps -L dependency=/home/eddy/usr/src/redox/libc/newlib/newlib/libc/sys/redox/target/release/deps --cap-lints allow -C metadata=newlib_redox` (exit code: 101)
xargo return code 101
cp /home/eddy/usr/src/redox/libc/newlib/newlib/libc/sys/redox/target/x86_64-unknown-redox/release/libnewlib_redox.a lib.a
cp: nu se poate face stat '/home/eddy/usr/src/redox/libc/newlib/newlib/libc/sys/redox/target/x86_64-unknown-redox/release/libnewlib_redox.a': No such file or directory
Makefile:473: recipe for target 'lib.a' failed
make[6]: *** [lib.a] Error 1
make[6]: Leaving directory '/home/eddy/usr/src/redox/libc/build/cross/newlib/x86_64-unknown-redox/newlib/libc/sys/redox'
Making all in .
make[6]: Entering directory '/home/eddy/usr/src/redox/libc/build/cross/newlib/x86_64-unknown-redox/newlib/libc/sys'
make[6]: *** No rule to make target 'redox/lib.a', needed by 'lib.a'. Stop.
make[6]: Leaving directory '/home/eddy/usr/src/redox/libc/build/cross/newlib/x86_64-unknown-redox/newlib/libc/sys'
Makefile:324: recipe for target 'all-recursive' failed
make[5]: *** [all-recursive] Error 1
make[5]: Leaving directory '/home/eddy/usr/src/redox/libc/build/cross/newlib/x86_64-unknown-redox/newlib/libc/sys'
Making all in reent
make[5]: Entering directory '/home/eddy/usr/src/redox/libc/build/cross/newlib/x86_64-unknown-redox/newlib/libc/reent'
Because the error is not fatal, this trickles down into the build system and the user gets this confusing error regarding crt0.o
x86_64-unknown-redox-ar cru lib.a lib_a-sysclose.o lib_a-sysfcntl.o lib_a-sysfstat.o lib_a-sysgetpid.o lib_a-sysgettod.o lib_a-sysisatty.o lib_a-syskill.o lib_a-syslink.o lib_a-syslseek.o lib_a-sysopen.o lib_a-sysread.o lib_a-syssbrk.o lib_a-sysstat.o lib_a-systimes.o lib_a-sysunlink.o lib_a-syswrite.o lib_a-sysexecve.o lib_a-sysfork.o lib_a-syswait.o
x86_64-unknown-redox-ranlib lib.a
make[5]: Leaving directory '/home/eddy/usr/src/redox/libc/build/cross/newlib/x86_64-unknown-redox/newlib/libc/syscalls'
Making all in .
make[5]: Entering directory '/home/eddy/usr/src/redox/libc/build/cross/newlib/x86_64-unknown-redox/newlib/libc'
rm -f libc.a
rm -f crt0.o
rm -rf tmp
ln sys/crt0.o crt0.o >/dev/null 2>/dev/null || cp sys/crt0.o crt0.o
mkdir tmp
cd tmp; \
for i in argz/lib.a stdlib/lib.a ctype/lib.a search/lib.a stdio/lib.a string/lib.a signal/lib.a time/lib.a locale/lib.a reent/lib.a errno/lib.a misc/lib.a unix/lib.a posix/lib.a syscalls/lib.a machine/lib.a sys/lib.a; do \
x86_64-unknown-redox-ar x ../$i; \
done; \
x86_64-unknown-redox-ar rc ../libc.a *.o
cp: nu se poate face stat 'sys/crt0.o': No such file or directory
Makefile:1042: recipe for target 'crt0.o' failed
make[5]: *** [crt0.o] Error 1
make[5]: *** Waiting for unfinished jobs....
x86_64-unknown-redox-ar: ../sys/lib.a: No such file or directory
x86_64-unknown-redox-ranlib libc.a
rm -rf tmp
make[5]: Leaving directory '/home/eddy/usr/src/redox/libc/build/cross/newlib/x86_64-unknown-redox/newlib/libc'
Makefile:680: recipe for target 'all-recursive' failed
make[4]: *** [all-recursive] Error 1
I tried pulling in the newest newlib commit from the redox branch but got the same error.