mirror of
https://codeberg.org/kiss-community/repo
synced 2024-07-04 23:12:28 +00:00
rust (testing): bump to 1.40.0
This commit is contained in:
parent
0d843192fe
commit
286b5368fc
56
testing/rust/build
Executable file
56
testing/rust/build
Executable file
|
@ -0,0 +1,56 @@
|
||||||
|
#!/bin/sh -e
|
||||||
|
|
||||||
|
# This package mimics the download process of rust's 'x.py'
|
||||||
|
# bootstrap library to allow for the removal of the internet
|
||||||
|
# connection requirement per build further enabling checksums
|
||||||
|
# and signature verification by KISS.
|
||||||
|
{
|
||||||
|
cache_dir=build/cache/2019-11-07
|
||||||
|
mkdir -p "$cache_dir"
|
||||||
|
|
||||||
|
for tarball in *.tar.gz\?no-extract; do
|
||||||
|
mv -f "$tarball" "$cache_dir/${tarball%%\?no-extract}"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
patch -p1 < musl-libressl.patch
|
||||||
|
|
||||||
|
# 'rust' checksums files in 'vendor/', but we patch a few files.
|
||||||
|
for vendor in libc openssl-sys; do
|
||||||
|
sed -i 's/\("files":{\)[^}]*/\1/' "vendor/$vendor/.cargo-checksum.json"
|
||||||
|
done
|
||||||
|
|
||||||
|
cat > config.toml <<EOF
|
||||||
|
[llvm]
|
||||||
|
link-shared = true
|
||||||
|
|
||||||
|
[build]
|
||||||
|
build = "x86_64-unknown-linux-musl"
|
||||||
|
host = [ "x86_64-unknown-linux-musl" ]
|
||||||
|
target = [ "x86_64-unknown-linux-musl" ]
|
||||||
|
docs = false
|
||||||
|
extended = true
|
||||||
|
submodules = false
|
||||||
|
python = "python3"
|
||||||
|
locked-deps = true
|
||||||
|
vendor = true
|
||||||
|
|
||||||
|
[install]
|
||||||
|
prefix = "/usr"
|
||||||
|
|
||||||
|
[rust]
|
||||||
|
channel = "stable"
|
||||||
|
rpath = false
|
||||||
|
codegen-units = 1
|
||||||
|
debuginfo-level = 0
|
||||||
|
backtrace = false
|
||||||
|
jemalloc = false
|
||||||
|
codegen-tests = false
|
||||||
|
|
||||||
|
[target.x86_64-unknown-linux-musl]
|
||||||
|
llvm-config = "/usr/bin/llvm-config"
|
||||||
|
crt-static = false
|
||||||
|
EOF
|
||||||
|
|
||||||
|
python3 ./x.py build -j "$(nproc)"
|
||||||
|
DESTDIR="$1" python3 ./x.py install
|
5
testing/rust/checksums
Normal file
5
testing/rust/checksums
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
dd97005578defc10a482bff3e4e728350d2099c60ffcf1f5e189540c39a549ad rustc-1.40.0-src.tar.gz
|
||||||
|
9c6b49e161e53c174b4fd46825a96b78854cfbcd0971ce846d4edd33c2b5f275 rust-std-1.39.0-x86_64-unknown-linux-musl.tar.gz?no-extract
|
||||||
|
07a9705dd77c6859ef921389dc6a958a297030e53571fe015163c79aa93d1e43 rustc-1.39.0-x86_64-unknown-linux-musl.tar.gz?no-extract
|
||||||
|
c3a04bfe988f84dc4bffd8b4fef29f2ad461483fd22e4bf329d2189e16213d0c cargo-0.40.0-x86_64-unknown-linux-musl.tar.gz?no-extract
|
||||||
|
bc6a567b76c3186ac868c13831c402c595015ad48e047387b32f833af460f7fa musl-libressl.patch
|
7
testing/rust/depends
Normal file
7
testing/rust/depends
Normal file
|
@ -0,0 +1,7 @@
|
||||||
|
cmake make
|
||||||
|
curl make
|
||||||
|
libressl
|
||||||
|
llvm
|
||||||
|
python make
|
||||||
|
xz
|
||||||
|
zlib
|
128
testing/rust/patches/musl-libressl.patch
Normal file
128
testing/rust/patches/musl-libressl.patch
Normal file
|
@ -0,0 +1,128 @@
|
||||||
|
diff --git a/src/bootstrap/compile.rs b/src/bootstrap/compile.rs
|
||||||
|
index 8e5fe25..0d3e27e 100644
|
||||||
|
--- a/src/bootstrap/compile.rs
|
||||||
|
+++ b/src/bootstrap/compile.rs
|
||||||
|
@@ -136,7 +136,7 @@ fn copy_third_party_objects(builder: &Builder<'_>, compiler: &Compiler, target:
|
||||||
|
// with a glibc-targeting toolchain, given we have the appropriate startup
|
||||||
|
// files. As those shipped with glibc won't work, copy the ones provided by
|
||||||
|
// musl so we have them on linux-gnu hosts.
|
||||||
|
- if target.contains("musl") {
|
||||||
|
+ if target.contains("noop") {
|
||||||
|
let srcdir = builder.musl_root(target).unwrap().join("lib");
|
||||||
|
for &obj in &["crt1.o", "crti.o", "crtn.o"] {
|
||||||
|
copy_and_stamp(&srcdir, obj);
|
||||||
|
diff --git a/src/bootstrap/sanity.rs b/src/bootstrap/sanity.rs
|
||||||
|
index bffe748f3..40f9f597f 100644
|
||||||
|
--- a/src/bootstrap/sanity.rs
|
||||||
|
+++ b/src/bootstrap/sanity.rs
|
||||||
|
@@ -188,7 +188,7 @@ pub fn check(build: &mut Build) {
|
||||||
|
}
|
||||||
|
|
||||||
|
// Make sure musl-root is valid
|
||||||
|
- if target.contains("musl") {
|
||||||
|
+ if target.contains("noop") {
|
||||||
|
// If this is a native target (host is also musl) and no musl-root is given,
|
||||||
|
// fall back to the system toolchain in /usr before giving up
|
||||||
|
if build.musl_root(*target).is_none() && build.config.build == *target {
|
||||||
|
diff --git a/src/librustc_target/spec/linux_musl_base.rs b/src/librustc_target/spec/linux_musl_base.rs
|
||||||
|
index e294e6398..17fecb3b2 100644
|
||||||
|
--- a/src/librustc_target/spec/linux_musl_base.rs
|
||||||
|
+++ b/src/librustc_target/spec/linux_musl_base.rs
|
||||||
|
@@ -26,7 +26,7 @@ pub fn opts() -> TargetOptions {
|
||||||
|
base.post_link_objects_crt.push("crtn.o".to_string());
|
||||||
|
|
||||||
|
// These targets statically link libc by default
|
||||||
|
- base.crt_static_default = true;
|
||||||
|
+ base.crt_static_default = false;
|
||||||
|
// These targets allow the user to choose between static and dynamic linking.
|
||||||
|
base.crt_static_respected = true;
|
||||||
|
|
||||||
|
diff --git a/src/libunwind/build.rs b/src/libunwind/build.rs
|
||||||
|
index f24d957d6..4632212fd 100644
|
||||||
|
--- a/src/libunwind/build.rs
|
||||||
|
+++ b/src/libunwind/build.rs
|
||||||
|
@@ -10,7 +10,7 @@ fn main() {
|
||||||
|
// Build the unwinding from libunwind C/C++ source code.
|
||||||
|
llvm_libunwind::compile();
|
||||||
|
} else if target.contains("linux") {
|
||||||
|
- if target.contains("musl") {
|
||||||
|
+ if target.contains("noop") {
|
||||||
|
// linking for musl is handled in lib.rs
|
||||||
|
llvm_libunwind::compile();
|
||||||
|
} else if !target.contains("android") {
|
||||||
|
diff --git a/src/libunwind/lib.rs b/src/libunwind/lib.rs
|
||||||
|
index 8d9164471..3adaaf43d 100644
|
||||||
|
--- a/src/libunwind/lib.rs
|
||||||
|
+++ b/src/libunwind/lib.rs
|
||||||
|
@@ -20,7 +20,7 @@ cfg_if::cfg_if! {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
-#[cfg(target_env = "musl")]
|
||||||
|
+#[cfg(target_env = "noop")]
|
||||||
|
#[link(name = "unwind", kind = "static", cfg(target_feature = "crt-static"))]
|
||||||
|
#[link(name = "gcc_s", cfg(not(target_feature = "crt-static")))]
|
||||||
|
extern {}
|
||||||
|
diff --git a/vendor/libc/src/unix/mod.rs b/vendor/libc/src/unix/mod.rs
|
||||||
|
index 721d24116..26bf271cd 100644
|
||||||
|
--- a/vendor/libc/src/unix/mod.rs
|
||||||
|
+++ b/vendor/libc/src/unix/mod.rs
|
||||||
|
@@ -296,7 +296,7 @@ cfg_if! {
|
||||||
|
} else if #[cfg(feature = "std")] {
|
||||||
|
// cargo build, don't pull in anything extra as the libstd dep
|
||||||
|
// already pulls in all libs.
|
||||||
|
- } else if #[cfg(target_env = "musl")] {
|
||||||
|
+ } else if #[cfg(target_env = "noop")] {
|
||||||
|
#[cfg_attr(feature = "rustc-dep-of-std",
|
||||||
|
link(name = "c", kind = "static",
|
||||||
|
cfg(target_feature = "crt-static")))]
|
||||||
|
diff --git a/vendor/openssl-sys/build/main.rs b/vendor/openssl-sys/build/main.rs
|
||||||
|
index 02b93b90a..27deca5fe 100644
|
||||||
|
--- a/vendor/openssl-sys/build/main.rs
|
||||||
|
+++ b/vendor/openssl-sys/build/main.rs
|
||||||
|
@@ -183,27 +183,30 @@ See rust-openssl README for more information:
|
||||||
|
if let Some(libressl_version) = libressl_version {
|
||||||
|
println!("cargo:libressl_version_number={:x}", libressl_version);
|
||||||
|
|
||||||
|
+ let major = (libressl_version >> 28) as u8;
|
||||||
|
let minor = (libressl_version >> 20) as u8;
|
||||||
|
let fix = (libressl_version >> 12) as u8;
|
||||||
|
- let (minor, fix) = match (minor, fix) {
|
||||||
|
- (5, 0) => ('5', '0'),
|
||||||
|
- (5, 1) => ('5', '1'),
|
||||||
|
- (5, 2) => ('5', '2'),
|
||||||
|
- (5, _) => ('5', 'x'),
|
||||||
|
- (6, 0) => ('6', '0'),
|
||||||
|
- (6, 1) => ('6', '1'),
|
||||||
|
- (6, 2) => ('6', '2'),
|
||||||
|
- (6, _) => ('6', 'x'),
|
||||||
|
- (7, _) => ('7', 'x'),
|
||||||
|
- (8, 0) => ('8', '0'),
|
||||||
|
- (8, 1) => ('8', '1'),
|
||||||
|
- (8, _) => ('8', 'x'),
|
||||||
|
- (9, 0) => ('9', '0'),
|
||||||
|
+ let (major, minor, fix) = match (major, minor, fix) {
|
||||||
|
+ (2, 5, 0) => ('2', '5', '0'),
|
||||||
|
+ (2, 5, 1) => ('2', '5', '1'),
|
||||||
|
+ (2, 5, 2) => ('2', '5', '2'),
|
||||||
|
+ (2, 5, _) => ('2', '5', 'x'),
|
||||||
|
+ (2, 6, 0) => ('2', '6', '0'),
|
||||||
|
+ (2, 6, 1) => ('2', '6', '1'),
|
||||||
|
+ (2, 6, 2) => ('2', '6', '2'),
|
||||||
|
+ (2, 6, _) => ('2', '6', 'x'),
|
||||||
|
+ (2, 7, _) => ('2', '7', 'x'),
|
||||||
|
+ (2, 8, 0) => ('2', '8', '0'),
|
||||||
|
+ (2, 8, 1) => ('2', '8', '1'),
|
||||||
|
+ (3, 0, _) => ('3', '0', 'x'),
|
||||||
|
+ (2, 9, 0) => ('2', '9', '0'),
|
||||||
|
+ (2, 9, _) => ('2', '9', 'x'),
|
||||||
|
+ (3, 0, 0) => ('3', '0', '0'),
|
||||||
|
_ => version_error(),
|
||||||
|
};
|
||||||
|
|
||||||
|
println!("cargo:libressl=true");
|
||||||
|
- println!("cargo:libressl_version=2{}{}", minor, fix);
|
||||||
|
+ println!("cargo:libressl_version={}{}{}", major, minor, fix);
|
||||||
|
println!("cargo:version=101");
|
||||||
|
Version::Libressl
|
||||||
|
} else {
|
5
testing/rust/sources
Normal file
5
testing/rust/sources
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
https://static.rust-lang.org/dist/rustc-1.40.0-src.tar.gz
|
||||||
|
https://static.rust-lang.org/dist/2019-11-07/rust-std-1.39.0-x86_64-unknown-linux-musl.tar.gz?no-extract
|
||||||
|
https://static.rust-lang.org/dist/2019-11-07/rustc-1.39.0-x86_64-unknown-linux-musl.tar.gz?no-extract
|
||||||
|
https://static.rust-lang.org/dist/2019-11-07/cargo-0.40.0-x86_64-unknown-linux-musl.tar.gz?no-extract
|
||||||
|
patches/musl-libressl.patch
|
1
testing/rust/version
Normal file
1
testing/rust/version
Normal file
|
@ -0,0 +1 @@
|
||||||
|
1.40.0 1
|
Loading…
Reference in New Issue
Block a user