Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in
L
libc
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 8
    • Issues 8
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 0
    • Merge Requests 0
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
  • redox-os
  • libc
  • Issues
  • #48

Closed
Open
Opened Feb 15, 2018 by Jeremy Soller@jackpot51Owner

[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.

Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
Reference: redox-os/libc#48