Skip to content

Redox build fails when building ring

  • I agree that I have searched opened and closed issues to prevent duplicates.

Description

Redox build consistently fails when building ring, a rust crypto library.

Environment info

  • Redox OS Release:
  • git describe --tags 0.6.0-29-g9011083
  • Operating system: Black Arch Linux
  • uname -a: Linux arch 5.12.8-arch1-1 #1 SMP PREEMPT Fri, 28 May 2021 15:10:20 +0000 x86_64 GNU/Linux
  • rustc -V: rustc 1.47.0-nightly (6c8927b0c 2020-07-26)
  • git rev-parse HEAD: 901108353f2427809f98e29d8e4165d432bbd715
  • I ran the pacman command to install pre-reqs but I could not find the following libfuse-dev libhtml-parser-perl aclocal (but I did install all the others).
  • echo $PATH | tr : '\n' | grep cargo /home/trey/.cargo/bin
  • I also tried following the instructions for docker, ran docker run --privileged ... docker: unknown server OS: .
  • Also, potentially related, the only directory in redox/prefix/ is redox/prefix/x86_64-unkown-redox/
  • Please see the log below
  • Could cc1: all warnings being treated as errors be the problem?

Steps to reproduce

  1. Follow chapter 2 (Getting Started) on the redox book.
  2. Fails for make all and make qemu

Behavior

  • Expected behavior: Following the build process should succeed.
  • Actual behavior: Build fails
running "cc" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m64" "-I" "include" "-Wall" "-Wextra" "-std=c1x" "-Wbad-function-cast" "-Wmissing-prototypes" "-Wnested-externs" "-Wstrict-prototypes" "-pedantic" "-pedantic-errors" "-Wall" "-Wextra" "-Wcast-align" "-Wcast-qual" "-Wenum-compare" "-Wfloat-equal" "-Wformat=2" "-Winline" "-Winvalid-pch" "-Wmissing-declarations" "-Wmissing-field-initializers" "-Wmissing-include-dirs" "-Wredundant-decls" "-Wshadow" "-Wsign-compare" "-Wundef" "-Wuninitialized" "-Wwrite-strings" "-fno-strict-aliasing" "-fvisibility=hidden" "-Wno-cast-align" "-fstack-protector" "-g3" "-Werror" "-DNDEBUG" "-D_XOPEN_SOURCE=700" "-c" "-o/home/trey/tmp/redox/installer/target/release/build/ring-d4a7368997960aad/out/curve25519.o" "third_party/fiat/curve25519.c"

  --- stderr
  third_party/fiat/curve25519.c:1877:61: error: argument 2 of type ‘const uint8_t *’ {aka ‘const unsigned char *’} declared as a pointer [-Werror=array-parameter=]
   1877 | void GFp_x25519_ge_scalarmult_base(ge_p3 *h, const uint8_t *a) {
        |                                              ~~~~~~~~~~~~~~~^
  In file included from third_party/fiat/curve25519.c:43:
  third_party/fiat/internal.h:129:60: note: previously declared as an array ‘const uint8_t[32]’ {aka ‘const unsigned char[32]’}
    129 | void GFp_x25519_ge_scalarmult_base(ge_p3 *h, const uint8_t a[32]);
        |                                              ~~~~~~~~~~~~~~^~~~~
  third_party/fiat/curve25519.c:3013:36: error: argument 1 of type ‘uint8_t[32]’ {aka ‘unsigned char[32]’} with mismatched bound [-Werror=array-parameter=]
   3013 | void GFp_x25519_fe_tobytes(uint8_t s[32], const fe *h) {
        |                            ~~~~~~~~^~~~~
  In file included from third_party/fiat/curve25519.c:43:
  third_party/fiat/internal.h:124:37: note: previously declared as ‘uint8_t *’ {aka ‘unsigned char *’}
    124 | void GFp_x25519_fe_tobytes(uint8_t *s, const fe *h);
        |                            ~~~~~~~~~^
  cc1: all warnings being treated as errors
  thread 'main' panicked at 'execution failed', /home/trey/.cargo/git/checkouts/ring-673443d3342e1630/e10e9b8/build.rs:644:9
  note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
error: build failed
make: *** [mk/initfs.mk:5: build/initfs.tag] Error 101
  • Proposed solution: Is there some way to disable failing on warnings?

Optional references

Optional extras

  • Very new to rust and operating system development, but I very much want to learn both and I think redox is a good way for me to learn.
  • This is my first git issue ever, let me know if I missed anything.