Closed
Description
OS: Alpine 3.12
内核: Linux 4.4.0-1060-aws x86_64
GCC: gcc version: 9.3.0 (Alpine 9.3.0)
Nginx 版本: 1.19.10
quiche 版本: 直接 clone 了这个 repo 到 /tmp/quiche/
目录,然后回滚到 d8bb8e36d5c549c2bc8b87525737899abd061daf 这个commit (大佬 README 所写的测试时的 commit)
Nginx 的部分编译配置:
--with-openssl=/tmp/quiche/deps/boringssl
--with-quiche=/tmp/quiche
--with-cc-opt="-g -Ofast -fPIE -pie -march=native -fstack-protector-strong -D_FORTIFY_SOURCE=2 -m64 -O3 -fno-strict-aliasing -DTCP_FASTOPEN=23 -D_GLIBCXX_USE_CXX11_ABI=0 -ffast-math -flto -fuse-linker-plugin --param=ssp-buffer-size=4 -Wformat -Wno-deprecated-declarations -DNGX_LUA_ABORT_AT_PANIC"
--with-ld-opt="-lapr-1 -laprutil-1 -licudata -licuuc -lrt -lpng -lturbojpeg -ljpeg -Wl,-Bsymbolic-functions -fPIE -pie -Wl,-z,relro -Wl,-z,now -Wl,-rpath,/usr/local/lib"
编译时的部分 log(出错前后):
`rustc --crate-name build_script_build --edition=2018 src/build.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type bin --emit=dep-info,link -C debuginfo=2 --cfg 'feature="ffi"' -C metadata=f9071125c3d69bbb -C extra-filename=-f9071125c3d69bbb --out-dir /tmp/quiche/target/debug/build/quiche-f9071125c3d69bbb -C incremental=/tmp/quiche/target/debug/incremental -L dependency=/tmp/quiche/target/debug/deps --extern cmake=/tmp/quiche/target/debug/deps/libcmake-68aa8b03865be436.rlib`
Running `/tmp/quiche/target/debug/build/ring-e390dddfe04ab00b/build-script-build`
Running `/tmp/quiche/target/debug/build/quiche-f9071125c3d69bbb/build-script-build`
Running `rustc --crate-name ring --edition=2018 /root/.cargo/registry/src/github.heygears.com-1ecc6299db9ec823/ring-0.16.20/src/lib.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type lib --emit=dep-info,metadata,link -C debuginfo=2 --cfg 'feature="alloc"' --cfg 'feature="default"' --cfg 'feature="dev_urandom_fallback"' --cfg 'feature="once_cell"' -C metadata=28f9ff3d173ba057 -C extra-filename=-28f9ff3d173ba057 --out-dir /tmp/quiche/target/debug/deps -L dependency=/tmp/quiche/target/debug/deps --extern libc=/tmp/quiche/target/debug/deps/liblibc-cfa004638bb84817.rmeta --extern once_cell=/tmp/quiche/target/debug/deps/libonce_cell-bf7e2012cdbe5b0f.rmeta --extern spin=/tmp/quiche/target/debug/deps/libspin-69e46ebdf28e1a75.rmeta --extern untrusted=/tmp/quiche/target/debug/deps/libuntrusted-9605fa52722215b8.rmeta --cap-lints allow -L native=/tmp/quiche/target/debug/build/ring-741b744bfaca4f3a/out -l static=ring-core -l static=ring-test`
Running `rustc --crate-name quiche --edition=2018 src/lib.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type lib --crate-type staticlib --crate-type cdylib --emit=dep-info,link -C debuginfo=2 --cfg 'feature="ffi"' -C metadata=46e4b4bd1a86cc9d --out-dir /tmp/quiche/target/debug/deps -C incremental=/tmp/quiche/target/debug/incremental -L dependency=/tmp/quiche/target/debug/deps --extern lazy_static=/tmp/quiche/target/debug/deps/liblazy_static-685a72be080b70c1.rlib --extern libc=/tmp/quiche/target/debug/deps/liblibc-cfa004638bb84817.rlib --extern libm=/tmp/quiche/target/debug/deps/liblibm-c6ab75713beb40d2.rlib --extern log=/tmp/quiche/target/debug/deps/liblog-668c510e02672168.rlib --extern ring=/tmp/quiche/target/debug/deps/libring-28f9ff3d173ba057.rlib -L native=/tmp/quiche/target/debug/build/ring-741b744bfaca4f3a/out`
error[E0658]: use of unstable library feature 'slice_fill'
--> src/lib.rs:2132:39
|
2132 | out[done..done + pad_len].fill(0);
| ^^^^
|
= note: see issue #70758 <https://github.com/rust-lang/rust/issues/70758> for more information
error: aborting due to previous error
For more information about this error, try `rustc --explain E0658`.
error: could not compile `quiche`.
Caused by:
process didn't exit successfully: `rustc --crate-name quiche --edition=2018 src/lib.rs --error-format=json --json=diagnostic-rendered-ansi --crate-type lib --crate-type staticlib --crate-type cdylib --emit=dep-info,link -C debuginfo=2 --cfg 'feature="ffi"' -C metadata=46e4b4bd1a86cc9d --out-dir /tmp/quiche/target/debug/deps -C incremental=/tmp/quiche/target/debug/incremental -L dependency=/tmp/quiche/target/debug/deps --extern lazy_static=/tmp/quiche/target/debug/deps/liblazy_static-685a72be080b70c1.rlib --extern libc=/tmp/quiche/target/debug/deps/liblibc-cfa004638bb84817.rlib --extern libm=/tmp/quiche/target/debug/deps/liblibm-c6ab75713beb40d2.rlib --extern log=/tmp/quiche/target/debug/deps/liblog-668c510e02672168.rlib --extern ring=/tmp/quiche/target/debug/deps/libring-28f9ff3d173ba057.rlib -L native=/tmp/quiche/target/debug/build/ring-741b744bfaca4f3a/out` (exit code: 1)
make[1]: *** [objs/Makefile:2441: /tmp/quiche/target/debug/libquiche.a] Error 101
make[1]: Leaving directory '/tmp/nginx-1.19.10'
make: *** [Makefile:10: build] Error 2
看着像是 quiche 自己的错误?但是看大佬好像编译通过了,所以想请教一下大佬编译时的一些配置什么的
Edited:
好像是 Rust 的错误?
里面提到了 Rust 1.50
版本: rust-lang/rust#70758 (comment)
看了下 Alpine 3.12
的 Rust 版本好像是 1.44.0-r0
,先试一下用 Alpine Edge
编译看看
Metadata
Metadata
Assignees
Labels
No labels