briansmith / ring

Safe, fast, small crypto using Rust
Other
3.7k stars 698 forks source link

Unable to build for i686-musl #1871

Closed M00NLIG7 closed 8 months ago

M00NLIG7 commented 8 months ago

Operating system: Fedora Linux x86_64

My build output is as shown below. I do have musl-gcc installed so i am not sure what the issue is.

cargo build --release --target=i686-unknown-linux-musl                                                                                           ↵ 101
warning: profiles for the non root package will be ignored, specify profiles at the workspace root:
package:   /home/cm03/dev/pandoras_box/pandoras_box/Cargo.toml
workspace: /home/cm03/dev/pandoras_box/Cargo.toml
warning: /home/cm03/dev/pandoras_box/chimera/Cargo.toml: unused manifest key: target.x86_64-pc-windows-gnu.linker
   Compiling libc v0.2.151
   Compiling cfg-if v1.0.0
   Compiling pin-project-lite v0.2.13
   Compiling bytes v1.5.0
   Compiling itoa v1.0.10
   Compiling once_cell v1.19.0
   Compiling no-std-net v0.6.0
   Compiling futures-core v0.3.30
   Compiling spin v0.9.8
   Compiling untrusted v0.9.0
   Compiling fnv v1.0.7
   Compiling pin-utils v0.1.0
   Compiling futures-sink v0.3.30
   Compiling tinyvec_macros v0.1.1
   Compiling equivalent v1.0.1
   Compiling futures-task v0.3.30
   Compiling bitflags v2.4.1
   Compiling hashbrown v0.14.3
   Compiling serde v1.0.193
   Compiling crossbeam-utils v0.8.18
   Compiling crc32fast v1.3.2
   Compiling rustix v0.38.28
   Compiling httparse v1.8.0
   Compiling percent-encoding v2.3.1
   Compiling linux-raw-sys v0.4.12
   Compiling iana-time-zone v0.1.58
   Compiling pnet_base v0.34.0
   Compiling regex-automata v0.4.3
   Compiling num-traits v0.2.17
   Compiling slab v0.4.9
   Compiling tinyvec v1.6.0
   Compiling utf8parse v0.2.1
   Compiling serde_derive v1.0.193
   Compiling tokio-macros v2.2.0
   Compiling try-lock v0.2.5
   Compiling ring v0.17.5
   Compiling log v0.4.20
   Compiling adler v1.0.2
   Compiling rayon-core v1.12.0
   Compiling unicode-bidi v0.3.14
   Compiling either v1.9.0
   Compiling tower-service v0.3.2
   Compiling futures-util v0.3.30
   Compiling futures-channel v0.3.30
   Compiling anstyle-parse v0.2.3
   Compiling anstyle-query v1.0.2
   Compiling pnet_macros_support v0.34.0
   Compiling miniz_oxide v0.7.1
   Compiling form_urlencoded v1.2.1
   Compiling want v0.3.1
   Compiling anstyle v1.0.4
   Compiling tracing-core v0.1.32
   Compiling ryu v1.0.16
   Compiling httpdate v1.0.3
   Compiling colorchoice v1.0.0
   Compiling hex v0.4.3
   Compiling serde_json v1.0.108
   Compiling pnet v0.34.0
   Compiling procfs v0.16.0
   Compiling strsim v0.10.0
   Compiling clap_lex v0.6.0
   Compiling base64 v0.21.5
   Compiling lazy_static v1.4.0
   Compiling anstream v0.6.5
   Compiling sys-info v0.9.1
   Compiling encoding_rs v0.8.33
   Compiling home v0.5.9
   Compiling ipnet v2.9.0
   Compiling mime v0.3.17
   Compiling webpki-roots v0.25.2
   Compiling http v0.2.11
   Compiling rustls-pemfile v1.0.3
   Compiling flate2 v1.0.28
   Compiling clap_builder v4.4.11
   Compiling crossbeam-epoch v0.9.17
   Compiling tracing v0.1.40
   Compiling socket2 v0.5.5
   Compiling num_cpus v1.16.0
   Compiling getrandom v0.2.11
   Compiling mio v0.8.10
   Compiling pnet_sys v0.34.0
   Compiling crossbeam-deque v0.8.4
   Compiling indexmap v2.1.0
   Compiling chrono v0.4.31
   Compiling tokio v1.35.1
   Compiling unicode-normalization v0.1.22
   Compiling http-body v0.4.6
   Compiling rayon v1.8.0
   Compiling idna v0.5.0
   Compiling url v2.5.0
   Compiling procfs-core v0.16.0
   Compiling regex v1.10.2
   Compiling clap v4.4.11
   Compiling pnet_macros v0.34.0
   Compiling sysinfo v0.29.11
   Compiling which v5.0.0
The following warnings were emitted during compilation:

warning: In file included from crypto/curve25519/internal.h:20,
warning:                  from crypto/curve25519/curve25519.c:24:
warning: crypto/curve25519/../internal.h: In function ‘CRYPTO_bswap8’:
warning: crypto/curve25519/../internal.h:374:10: warning: conversion from ‘long long unsigned int’ to ‘uint64_t’ {aka ‘long unsigned int’} may change value [-Wconversion]
warning:   374 |   return __builtin_bswap64(x);
warning:       |          ^~~~~~~~~~~~~~~~~~~~
warning: In file included from crypto/fipsmodule/aes/aes_nohw.c:17:
warning: crypto/fipsmodule/aes/../../internal.h: In function ‘CRYPTO_bswap8’:
warning: crypto/fipsmodule/aes/../../internal.h:374:10: warning: conversion from ‘long long unsigned int’ to ‘uint64_t’ {aka ‘long unsigned int’} may change value [-Wconversion]
warning:   374 |   return __builtin_bswap64(x);
warning:       |          ^~~~~~~~~~~~~~~~~~~~
warning: In file included from crypto/fipsmodule/bn/internal.h:135,
warning:                  from crypto/fipsmodule/bn/montgomery.c:109:
warning: crypto/fipsmodule/bn/../../internal.h: In function ‘CRYPTO_bswap8’:
warning: crypto/fipsmodule/bn/../../internal.h:374:10: warning: conversion from ‘long long unsigned int’ to ‘uint64_t’ {aka ‘long unsigned int’} may change value [-Wconversion]
warning:   374 |   return __builtin_bswap64(x);
warning:       |          ^~~~~~~~~~~~~~~~~~~~
warning: crypto/fipsmodule/bn/internal.h: In function ‘bn_umult_lohi’:
warning: crypto/fipsmodule/bn/internal.h:193:33: warning: right shift count >= width of type [-Wshift-count-overflow]
warning:   193 |   *high_out = (BN_ULONG)(result >> BN_BITS2);
warning:       |                                 ^~
warning: In file included from crypto/fipsmodule/bn/montgomery.c:113:
warning: crypto/fipsmodule/bn/../../limbs/limbs.inl: In function ‘limb_adc’:
warning: crypto/fipsmodule/bn/../../limbs/limbs.inl:66:19: warning: right shift count >= width of type [-Wshift-count-overflow]
warning:    66 |   ret = (Carry)(x >> LIMB_BITS);
warning:       |                   ^~
warning: crypto/fipsmodule/bn/../../limbs/limbs.inl: In function ‘limb_add’:
warning: crypto/fipsmodule/bn/../../limbs/limbs.inl:80:19: warning: right shift count >= width of type [-Wshift-count-overflow]
warning:    80 |   ret = (Carry)(x >> LIMB_BITS);
warning:       |                   ^~
warning: crypto/fipsmodule/bn/../../limbs/limbs.inl: In function ‘limb_sbb’:
warning: crypto/fipsmodule/bn/../../limbs/limbs.inl:96:20: warning: right shift count >= width of type [-Wshift-count-overflow]
warning:    96 |   ret = (Carry)((x >> LIMB_BITS) & 1);
warning:       |                    ^~
warning: crypto/fipsmodule/bn/../../limbs/limbs.inl: In function ‘limb_sub’:
warning: crypto/fipsmodule/bn/../../limbs/limbs.inl:110:20: warning: right shift count >= width of type [-Wshift-count-overflow]
warning:   110 |   ret = (Carry)((x >> LIMB_BITS) & 1);
warning:       |                    ^~
warning: In file included from include/ring-core/base.h:78,
warning:                  from crypto/fipsmodule/bn/internal.h:126:
warning: crypto/fipsmodule/bn/montgomery.c: At top level:
warning: include/ring-core/type_check.h:71:42: error: static assertion failed: "uint64_t is insufficient precision for n0"
warning:    71 | #define OPENSSL_STATIC_ASSERT(cond, msg) _Static_assert(cond, msg)
warning:       |                                          ^~~~~~~~~~~~~~
warning: crypto/fipsmodule/bn/montgomery.c:117:1: note: in expansion of macro ‘OPENSSL_STATIC_ASSERT’
warning:   117 | OPENSSL_STATIC_ASSERT(
warning:       | ^~~~~~~~~~~~~~~~~~~~~

error: failed to run custom build command for `ring v0.17.5`

Caused by:
  process didn't exit successfully: `/home/cm03/dev/pandoras_box/target/release/build/ring-a9c2abab136473fd/build-script-build` (exit status: 1)
  --- stdout
  cargo:rerun-if-env-changed=RING_PREGENERATE_ASM
  cargo:rustc-env=RING_CORE_PREFIX=ring_core_0_17_5_
  OPT_LEVEL = Some("3")
  TARGET = Some("i686-unknown-linux-musl")
  HOST = Some("x86_64-unknown-linux-gnu")
  cargo:rerun-if-env-changed=CC_i686-unknown-linux-musl
  CC_i686-unknown-linux-musl = None
  cargo:rerun-if-env-changed=CC_i686_unknown_linux_musl
  CC_i686_unknown_linux_musl = None
  cargo:rerun-if-env-changed=TARGET_CC
  TARGET_CC = None
  cargo:rerun-if-env-changed=CC
  CC = None
  RUSTC_LINKER = None
  cargo:rerun-if-env-changed=CROSS_COMPILE
  CROSS_COMPILE = None
  cargo:rerun-if-env-changed=CRATE_CC_NO_DEFAULTS
  CRATE_CC_NO_DEFAULTS = None
  DEBUG = Some("false")
  CARGO_CFG_TARGET_FEATURE = Some("fxsr,sse,sse2")
  cargo:rerun-if-env-changed=CFLAGS_i686-unknown-linux-musl
  CFLAGS_i686-unknown-linux-musl = None
  cargo:rerun-if-env-changed=CFLAGS_i686_unknown_linux_musl
  CFLAGS_i686_unknown_linux_musl = None
  cargo:rerun-if-env-changed=TARGET_CFLAGS
  TARGET_CFLAGS = None
  cargo:rerun-if-env-changed=CFLAGS
  CFLAGS = None
  running: "musl-gcc" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m32" "-march=i686" "-Wl,-melf_i386" "-I" "include" "-I" "/home/cm03/dev/pandoras_box/target/i686-unknown-linux-musl/release/build/ring-1192e94164d221aa/out" "-Wall" "-Wextra" "-fvisibility=hidden" "-std=c1x" "-pedantic" "-Wall" "-Wextra" "-Wbad-function-cast" "-Wcast-align" "-Wcast-qual" "-Wconversion" "-Wenum-compare" "-Wfloat-equal" "-Wformat=2" "-Winline" "-Winvalid-pch" "-Wmissing-field-initializers" "-Wmissing-include-dirs" "-Wnested-externs" "-Wredundant-decls" "-Wshadow" "-Wsign-compare" "-Wsign-conversion" "-Wstrict-prototypes" "-Wundef" "-Wuninitialized" "-Wwrite-strings" "-g3" "-DNDEBUG" "-o" "/home/cm03/dev/pandoras_box/target/i686-unknown-linux-musl/release/build/ring-1192e94164d221aa/out/crypto/curve25519/curve25519.o" "-c" "crypto/curve25519/curve25519.c"
  cargo:warning=In file included from crypto/curve25519/internal.h:20,

  cargo:warning=                 from crypto/curve25519/curve25519.c:24:

  cargo:warning=crypto/curve25519/../internal.h: In function ‘CRYPTO_bswap8’:

  cargo:warning=crypto/curve25519/../internal.h:374:10: warning: conversion from ‘long long unsigned int’ to ‘uint64_t’ {aka ‘long unsigned int’} may change value [-Wconversion]

  cargo:warning=  374 |   return __builtin_bswap64(x);

  cargo:warning=      |          ^~~~~~~~~~~~~~~~~~~~

  exit status: 0
  running: "musl-gcc" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m32" "-march=i686" "-Wl,-melf_i386" "-I" "include" "-I" "/home/cm03/dev/pandoras_box/target/i686-unknown-linux-musl/release/build/ring-1192e94164d221aa/out" "-Wall" "-Wextra" "-fvisibility=hidden" "-std=c1x" "-pedantic" "-Wall" "-Wextra" "-Wbad-function-cast" "-Wcast-align" "-Wcast-qual" "-Wconversion" "-Wenum-compare" "-Wfloat-equal" "-Wformat=2" "-Winline" "-Winvalid-pch" "-Wmissing-field-initializers" "-Wmissing-include-dirs" "-Wnested-externs" "-Wredundant-decls" "-Wshadow" "-Wsign-compare" "-Wsign-conversion" "-Wstrict-prototypes" "-Wundef" "-Wuninitialized" "-Wwrite-strings" "-g3" "-DNDEBUG" "-o" "/home/cm03/dev/pandoras_box/target/i686-unknown-linux-musl/release/build/ring-1192e94164d221aa/out/crypto/fipsmodule/aes/aes_nohw.o" "-c" "crypto/fipsmodule/aes/aes_nohw.c"
  cargo:warning=In file included from crypto/fipsmodule/aes/aes_nohw.c:17:

  cargo:warning=crypto/fipsmodule/aes/../../internal.h: In function ‘CRYPTO_bswap8’:

  cargo:warning=crypto/fipsmodule/aes/../../internal.h:374:10: warning: conversion from ‘long long unsigned int’ to ‘uint64_t’ {aka ‘long unsigned int’} may change value [-Wconversion]

  cargo:warning=  374 |   return __builtin_bswap64(x);

  cargo:warning=      |          ^~~~~~~~~~~~~~~~~~~~

  exit status: 0
  running: "musl-gcc" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m32" "-march=i686" "-Wl,-melf_i386" "-I" "include" "-I" "/home/cm03/dev/pandoras_box/target/i686-unknown-linux-musl/release/build/ring-1192e94164d221aa/out" "-Wall" "-Wextra" "-fvisibility=hidden" "-std=c1x" "-pedantic" "-Wall" "-Wextra" "-Wbad-function-cast" "-Wcast-align" "-Wcast-qual" "-Wconversion" "-Wenum-compare" "-Wfloat-equal" "-Wformat=2" "-Winline" "-Winvalid-pch" "-Wmissing-field-initializers" "-Wmissing-include-dirs" "-Wnested-externs" "-Wredundant-decls" "-Wshadow" "-Wsign-compare" "-Wsign-conversion" "-Wstrict-prototypes" "-Wundef" "-Wuninitialized" "-Wwrite-strings" "-g3" "-DNDEBUG" "-o" "/home/cm03/dev/pandoras_box/target/i686-unknown-linux-musl/release/build/ring-1192e94164d221aa/out/crypto/fipsmodule/bn/montgomery.o" "-c" "crypto/fipsmodule/bn/montgomery.c"
  cargo:warning=In file included from crypto/fipsmodule/bn/internal.h:135,

  cargo:warning=                 from crypto/fipsmodule/bn/montgomery.c:109:

  cargo:warning=crypto/fipsmodule/bn/../../internal.h: In function ‘CRYPTO_bswap8’:

  cargo:warning=crypto/fipsmodule/bn/../../internal.h:374:10: warning: conversion from ‘long long unsigned int’ to ‘uint64_t’ {aka ‘long unsigned int’} may change value [-Wconversion]

  cargo:warning=  374 |   return __builtin_bswap64(x);

  cargo:warning=      |          ^~~~~~~~~~~~~~~~~~~~

  cargo:warning=crypto/fipsmodule/bn/internal.h: In function ‘bn_umult_lohi’:

  cargo:warning=crypto/fipsmodule/bn/internal.h:193:33: warning: right shift count >= width of type [-Wshift-count-overflow]

  cargo:warning=  193 |   *high_out = (BN_ULONG)(result >> BN_BITS2);

  cargo:warning=      |                                 ^~

  cargo:warning=In file included from crypto/fipsmodule/bn/montgomery.c:113:

  cargo:warning=crypto/fipsmodule/bn/../../limbs/limbs.inl: In function ‘limb_adc’:

  cargo:warning=crypto/fipsmodule/bn/../../limbs/limbs.inl:66:19: warning: right shift count >= width of type [-Wshift-count-overflow]

  cargo:warning=   66 |   ret = (Carry)(x >> LIMB_BITS);

  cargo:warning=      |                   ^~

  cargo:warning=crypto/fipsmodule/bn/../../limbs/limbs.inl: In function ‘limb_add’:

  cargo:warning=crypto/fipsmodule/bn/../../limbs/limbs.inl:80:19: warning: right shift count >= width of type [-Wshift-count-overflow]

  cargo:warning=   80 |   ret = (Carry)(x >> LIMB_BITS);

  cargo:warning=      |                   ^~

  cargo:warning=crypto/fipsmodule/bn/../../limbs/limbs.inl: In function ‘limb_sbb’:

  cargo:warning=crypto/fipsmodule/bn/../../limbs/limbs.inl:96:20: warning: right shift count >= width of type [-Wshift-count-overflow]

  cargo:warning=   96 |   ret = (Carry)((x >> LIMB_BITS) & 1);

  cargo:warning=      |                    ^~

  cargo:warning=crypto/fipsmodule/bn/../../limbs/limbs.inl: In function ‘limb_sub’:

  cargo:warning=crypto/fipsmodule/bn/../../limbs/limbs.inl:110:20: warning: right shift count >= width of type [-Wshift-count-overflow]

  cargo:warning=  110 |   ret = (Carry)((x >> LIMB_BITS) & 1);

  cargo:warning=      |                    ^~

  cargo:warning=In file included from include/ring-core/base.h:78,

  cargo:warning=                 from crypto/fipsmodule/bn/internal.h:126:

  cargo:warning=crypto/fipsmodule/bn/montgomery.c: At top level:

  cargo:warning=include/ring-core/type_check.h:71:42: error: static assertion failed: "uint64_t is insufficient precision for n0"

  cargo:warning=   71 | #define OPENSSL_STATIC_ASSERT(cond, msg) _Static_assert(cond, msg)

  cargo:warning=      |                                          ^~~~~~~~~~~~~~

  cargo:warning=crypto/fipsmodule/bn/montgomery.c:117:1: note: in expansion of macro ‘OPENSSL_STATIC_ASSERT’

  cargo:warning=  117 | OPENSSL_STATIC_ASSERT(

  cargo:warning=      | ^~~~~~~~~~~~~~~~~~~~~

  exit status: 1

  --- stderr

  error occurred: Command "musl-gcc" "-O3" "-ffunction-sections" "-fdata-sections" "-fPIC" "-m32" "-march=i686" "-Wl,-melf_i386" "-I" "include" "-I" "/home/cm03/dev/pandoras_box/target/i686-unknown-linux-musl/release/build/ring-1192e94164d221aa/out" "-Wall" "-Wextra" "-fvisibility=hidden" "-std=c1x" "-pedantic" "-Wall" "-Wextra" "-Wbad-function-cast" "-Wcast-align" "-Wcast-qual" "-Wconversion" "-Wenum-compare" "-Wfloat-equal" "-Wformat=2" "-Winline" "-Winvalid-pch" "-Wmissing-field-initializers" "-Wmissing-include-dirs" "-Wnested-externs" "-Wredundant-decls" "-Wshadow" "-Wsign-compare" "-Wsign-conversion" "-Wstrict-prototypes" "-Wundef" "-Wuninitialized" "-Wwrite-strings" "-g3" "-DNDEBUG" "-o" "/home/cm03/dev/pandoras_box/target/i686-unknown-linux-musl/release/build/ring-1192e94164d221aa/out/crypto/fipsmodule/bn/montgomery.o" "-c" "crypto/fipsmodule/bn/montgomery.c" with args "musl-gcc" did not execute successfully (status code exit status: 1).
M00NLIG7 commented 8 months ago

Solved by using "cross" to compile inside of a container, not a problem with the repo. Thank you!