rust: update to 1.35.0

[ci skip]
This commit is contained in:
q66 2019-05-24 17:45:28 +02:00 committed by Johannes
parent 2f7aaa739c
commit eaea45593f
8 changed files with 114 additions and 170 deletions

View File

@ -1,58 +0,0 @@
From faca3fbd15d0c3108493c3c54cd93138e049ac43 Mon Sep 17 00:00:00 2001
From: Andrea Brancaleoni <miwaxe@gmail.com>
Date: Tue, 8 Sep 2015 22:03:02 +0200
Subject: [PATCH 3/3] musl
---
include/llvm/Analysis/TargetLibraryInfo.h | 9 +++++++++
lib/Support/DynamicLibrary.cpp | 2 +-
lib/Support/Unix/Signals.inc | 6 +++---
utils/unittest/googletest/src/gtest.cc | 1 +
5 files changed, 17 insertions(+), 6 deletions(-)
diff --git a/include/llvm/Analysis/TargetLibraryInfo.h b/include/llvm/Analysis/TargetLibraryInfo.h
index e0a1ee3..465b65a 100644
--- a/include/llvm/Analysis/TargetLibraryInfo.h
+++ b/include/llvm/Analysis/TargetLibraryInfo.h
@@ -18,6 +18,15 @@
#include "llvm/IR/Module.h"
#include "llvm/Pass.h"
+#undef fopen64
+#undef fseeko64
+#undef fstat64
+#undef fstatvfs64
+#undef ftello64
+#undef lstat64
+#undef stat64
+#undef tmpfile64
+
namespace llvm {
/// VecDesc - Describes a possible vectorization of a function.
/// Function 'VectorFnName' is equivalent to 'ScalarFnName' vectorized
diff --git a/utils/unittest/googletest/src/gtest.cc b/utils/unittest/googletest/src/gtest.cc
index 5780764..1d548c1 100644
--- a/utils/unittest/googletest/src/gtest.cc
+++ b/utils/unittest/googletest/src/gtest.cc
@@ -120,6 +120,7 @@
#if GTEST_CAN_STREAM_RESULTS_
# include <arpa/inet.h> // NOLINT
+# include <sys/socket.h> // NOLINT
# include <netdb.h> // NOLINT
#endif
--
2.5.1
--- llvm-5.0.0.src/lib/Support/Unix/DynamicLibrary.inc.orig
+++ llvm-5.0.0.src/lib/Support/Unix/DynamicLibrary.inc
@@ -103,7 +103,7 @@
// This macro returns the address of a well-known, explicit symbol
#define EXPLICIT_SYMBOL(SYM) \
- if (!strcmp(SymbolName, #SYM)) return &SYM
+ if (!strcmp(SymbolName, #SYM)) return (void *)&SYM
// Under glibc we have a weird situation. The stderr/out/in symbols are both
// macros and global variables because of standards requirements. So, we

View File

@ -1,18 +0,0 @@
This patches LLVM to use ELFv2 on ppc64 uncoditionally unless overridden. We
need this because unlike most distros we use ELFv2 for both glibc and musl
on big endian ppc64.
--- a/lib/Target/PowerPC/PPCTargetMachine.cpp
+++ b/lib/Target/PowerPC/PPCTargetMachine.cpp
@@ -197,9 +197,9 @@ static PPCTargetMachine::PPCABI computeTargetABI(const Triple &TT,
switch (TT.getArch()) {
case Triple::ppc64le:
- return PPCTargetMachine::PPC_ABI_ELFv2;
case Triple::ppc64:
- return PPCTargetMachine::PPC_ABI_ELFv1;
+ /* we use elfv2 by default for both endians and both libcs */
+ return PPCTargetMachine::PPC_ABI_ELFv2;
default:
return PPCTargetMachine::PPC_ABI_UNKNOWN;
}

View File

@ -0,0 +1,13 @@
--- rustc-1.30.0-src/src/librustc_llvm/lib.rs.orig
+++ rustc-1.30.0-src/src/librustc_llvm/lib.rs
@@ -121,3 +121,10 @@
LLVMInitializeWebAssemblyTargetMC,
LLVMInitializeWebAssemblyAsmPrinter);
}
+
+#[link(name = "ffi")]
+extern {}
+#[link(name = "z")]
+extern {}
+#[link(name = "ncursesw")]
+extern {}

View File

@ -1,13 +1,11 @@
we use libgcc_s for unwind, no need for libunwind.a we use libgcc_s for unwind, no need for libunwind.a
https://github.com/void-linux/void-packages/issues/3605 https://github.com/void-linux/void-packages/issues/3605
--- rustc-1.35.0-src/src/libunwind/build.rs
+++ rustc-1.35.0-src/src/libunwind/build.rs
--- rustc-1.28.0-src/src/libunwind/build.rs.orig 2018-10-11 10:37:16.617653976 +0200 @@ -11,9 +11,7 @@ fn main() {
+++ rustc-1.28.0-src/src/libunwind/build.rs 2018-10-11 10:37:33.584492467 +0200 #[cfg(feature = "llvm-libunwind")]
@@ -15,9 +15,7 @@ llvm_libunwind::compile();
let target = env::var("TARGET").expect("TARGET was not set"); } else if target.contains("linux") {
if target.contains("linux") {
- if target.contains("musl") { - if target.contains("musl") {
- // musl is handled in lib.rs - // musl is handled in lib.rs
- } else if !target.contains("android") { - } else if !target.contains("android") {
@ -15,9 +13,9 @@ https://github.com/void-linux/void-packages/issues/3605
println!("cargo:rustc-link-lib=gcc_s"); println!("cargo:rustc-link-lib=gcc_s");
} }
} else if target.contains("freebsd") { } else if target.contains("freebsd") {
--- rustc-1.28.0-src/src/libunwind/lib.rs.orig 2018-10-11 10:37:51.012326568 +0200 --- rustc-1.35.0-src/src/libunwind/lib.rs
+++ rustc-1.28.0-src/src/libunwind/lib.rs 2018-10-11 10:38:03.512207577 +0200 +++ rustc-1.35.0-src/src/libunwind/lib.rs
@@ -33,8 +33,3 @@ @@ -24,8 +24,3 @@ cfg_if! {
pub use libunwind::*; pub use libunwind::*;
} }
} }
@ -27,9 +25,9 @@ https://github.com/void-linux/void-packages/issues/3605
-#[link(name = "gcc_s", cfg(not(target_feature = "crt-static")))] -#[link(name = "gcc_s", cfg(not(target_feature = "crt-static")))]
-extern {} -extern {}
--- rustc-1.28.0-src/src/bootstrap/sanity.rs.orig 2018-10-11 10:29:34.169735519 +0200 --- rustc-1.35.0-src/src/bootstrap/sanity.rs
+++ rustc-1.28.0-src/src/bootstrap/sanity.rs 2018-10-11 10:30:02.467509880 +0200 +++ rustc-1.35.0-src/src/bootstrap/sanity.rs
@@ -186,34 +186,6 @@ @@ -171,34 +171,6 @@ pub fn check(build: &mut Build) {
} }
} }
@ -64,4 +62,3 @@ https://github.com/void-linux/void-packages/issues/3605
if target.contains("msvc") { if target.contains("msvc") {
// There are three builds of cmake on windows: MSVC, MinGW, and // There are three builds of cmake on windows: MSVC, MinGW, and
// Cygwin. The Cygwin build does not have generators for Visual // Cygwin. The Cygwin build does not have generators for Visual

View File

@ -1,7 +1,7 @@
--- rustc-1.33.0-src/src/bootstrap/compile.rs --- rustc-1.35.0-src/src/bootstrap/compile.rs
+++ rustc-1.33.0-src/src/bootstrap/compile.rs +++ rustc-1.35.0-src/src/bootstrap/compile.rs
@@ -114,21 +114,6 @@ impl Step for Std { @@ -114,20 +114,7 @@ impl Step for Std {
fn copy_third_party_objects(builder: &Builder, compiler: &Compiler, target: Interned<String>) { fn copy_third_party_objects(builder: &Builder<'_>, compiler: &Compiler, target: Interned<String>) {
let libdir = builder.sysroot_libdir(*compiler, target); let libdir = builder.sysroot_libdir(*compiler, target);
- // Copies the crt(1,i,n).o startup objects - // Copies the crt(1,i,n).o startup objects
@ -17,14 +17,14 @@
- &libdir.join(obj), - &libdir.join(obj),
- ); - );
- } - }
- } - } else if target.ends_with("-wasi") {
- + if target.ends_with("-wasi") {
// Copies libunwind.a compiled to be linked wit x86_64-fortanix-unknown-sgx. for &obj in &["crt1.o"] {
// builder.copy(
// This target needs to be linked to Fortanix's port of llvm's libunwind. &builder.wasi_root(target).unwrap().join("lib/wasm32-wasi").join(obj),
--- rustc-1.33.0-src/vendor/libc/src/unix/mod.rs --- rustc-1.35.0-src/vendor/libc/src/unix/mod.rs
+++ rustc-1.33.0-src/vendor/libc/src/unix/mod.rs +++ rustc-1.35.0-src/vendor/libc/src/unix/mod.rs
@@ -317,13 +317,6 @@ cfg_if! { @@ -306,13 +306,6 @@ cfg_if! {
} else if #[cfg(feature = "use_std")] { } else if #[cfg(feature = "use_std")] {
// cargo build, don't pull in anything extra as the libstd dep // cargo build, don't pull in anything extra as the libstd dep
// already pulls in all libs. // already pulls in all libs.

View File

@ -3,8 +3,8 @@ LLVM. While this is not perfect (it does not allow rustc to compile legacy
binaries), rustc never requests specific ABI from llvm in the first place, binaries), rustc never requests specific ABI from llvm in the first place,
so at least match the environment we have. so at least match the environment we have.
--- a/src/librustc_target/abi/call/powerpc64.rs --- rustc-1.35.0-src/src/librustc_target/abi/call/powerpc64.rs
+++ b/src/librustc_target/abi/call/powerpc64.rs +++ rustc-1.35.0-src/src/librustc_target/abi/call/powerpc64.rs
@@ -124,7 +124,7 @@ pub fn compute_abi_info<'a, Ty, C>(cx: &C, fty: &mut FnType<'a, Ty>) @@ -124,7 +124,7 @@ pub fn compute_abi_info<'a, Ty, C>(cx: &C, fty: &mut FnType<'a, Ty>)
where Ty: TyLayoutMethods<'a, C> + Copy, where Ty: TyLayoutMethods<'a, C> + Copy,
C: LayoutOf<Ty = Ty, TyLayout = TyLayout<'a, Ty>> + HasDataLayout + HasTargetSpec C: LayoutOf<Ty = Ty, TyLayout = TyLayout<'a, Ty>> + HasDataLayout + HasTargetSpec
@ -14,11 +14,11 @@ so at least match the environment we have.
ELFv2 ELFv2
} else { } else {
match cx.data_layout().endian { match cx.data_layout().endian {
--- a/src/librustc_target/spec/powerpc64_unknown_linux_gnu.rs --- rustc-1.35.0-src/src/librustc_target/spec/powerpc64_unknown_linux_gnu.rs
+++ b/src/librustc_target/spec/powerpc64_unknown_linux_gnu.rs +++ rustc-1.35.0-src/src/librustc_target/spec/powerpc64_unknown_linux_gnu.rs
@@ -1,4 +1,4 @@ @@ -1,4 +1,4 @@
-use crate::spec::{LinkerFlavor, Target, TargetResult, RelroLevel}; -use crate::spec::{LinkerFlavor, Target, TargetOptions, TargetResult, RelroLevel};
+use crate::spec::{LinkerFlavor, Target, TargetResult}; +use crate::spec::{LinkerFlavor, Target, TargetOptions, TargetResult};
pub fn target() -> TargetResult { pub fn target() -> TargetResult {
let mut base = super::linux_base::opts(); let mut base = super::linux_base::opts();

View File

@ -1,78 +1,73 @@
# Template file for 'rust' # Template file for 'rust'
pkgname=rust pkgname=rust
version=1.34.2 version=1.35.0
revision=1 revision=1
_rust_dist_version=1.33.0 _rust_dist_version=1.35.0
_cargo_dist_version=0.33.0 _cargo_dist_version=0.36.0
# NB. if you push any(!) new version, don't forget to put a build # Always make sure custom distfiles used for bootstrap are
# output of musl to https://alpha.de.repo.voidlinux.org/distfiles/ # uploaded to https://alpha.de.repo.voidlinux.org/distfiles/
wrksrc="rustc-${version}-src" wrksrc="rustc-${version}-src"
build_style=configure build_style=configure
make_build_args="dist VERBOSE=1" make_build_args="dist VERBOSE=1"
hostmakedepends="cmake curl pkg-config python" hostmakedepends="cmake curl pkg-config python"
makedepends="libffi-devel ncurses-devel libxml2-devel zlib-devel makedepends="libffi-devel ncurses-devel libxml2-devel zlib-devel llvm"
$(vopt_if internal_llvm python-devel llvm)"
depends="rust-std" depends="rust-std"
short_desc="Safe, concurrent, practical systems language" short_desc="Safe, concurrent, practical systems language"
maintainer="Enno Boland <gottox@voidlinux.org>" maintainer="Enno Boland <gottox@voidlinux.org>"
license="MIT, Apache-2.0" license="MIT, Apache-2.0"
homepage="https://www.rust-lang.org/" homepage="https://www.rust-lang.org/"
distfiles="https://static.rust-lang.org/dist/rustc-${version}-src.tar.gz" distfiles="https://static.rust-lang.org/dist/rustc-${version}-src.tar.gz"
checksum=c69a4a85a1c464368597df8878cb9e1121aae93e215616d45ad7d23af3052f56 checksum=5a4d637a716bac18d085f44dd87ef48b32195f71b967d872d80280b38cff712d
lib32disabled=yes lib32disabled=yes
patch_args="-Np1" patch_args="-Np1"
build_options="internal_llvm" build_options="static_llvm"
if [ "$CROSS_BUILD" ]; then if [ "$CROSS_BUILD" ]; then
hostmakedepends+=" cargo $(vopt_if internal_llvm '' llvm)" hostmakedepends+=" cargo llvm"
# These are required for building the buildhost's stage0/1 # These are required for building the buildhost's stage0/1
hostmakedepends+=" libffi-devel libxml2-devel hostmakedepends+=" libffi-devel libxml2-devel ncurses-devel zlib-devel"
ncurses-devel zlib-devel"
else else
case "$XBPS_MACHINE" in case "$XBPS_MACHINE" in
x86_64-musl) x86_64-musl)
distfiles+=" distfiles+="
https://alpha.de.repo.voidlinux.org/distfiles/rustc-${_rust_dist_version}-x86_64-unknown-linux-musl.tar.xz https://static.rust-lang.org/dist/rustc-${_rust_dist_version}-x86_64-unknown-linux-musl.tar.xz
https://alpha.de.repo.voidlinux.org/distfiles/rust-std-${_rust_dist_version}-x86_64-unknown-linux-musl.tar.xz https://static.rust-lang.org/dist/rust-std-${_rust_dist_version}-x86_64-unknown-linux-musl.tar.xz
https://alpha.de.repo.voidlinux.org/distfiles/cargo-${_cargo_dist_version}-x86_64-unknown-linux-musl.tar.xz" https://static.rust-lang.org/dist/cargo-${_cargo_dist_version}-x86_64-unknown-linux-musl.tar.xz"
checksum+=" checksum+="
27133fe50d7f43009b802d608654c828e4589cf27810fd7151b67de7de3706e0 961df84a116c7b1b11eb912d33c8edb233b76980f97983f9ed3989621f9f90c3
6971b0b9147371eaf81ece7ac6ee91d2f7adbbd3129b9a80170f394c9a35636a 3574e0d43b2746ea0cb9f8084670699f5cb920cee646026cec1da152818c51ba
7d3e669dc5ddde7529ab0df2d0397648a679426fc56dd4c93d94f84fd68366d5" 0466ed241c44d137ee65aa7dbba8fc1cc94e56b252c323c387523b5cb430210e"
;; ;;
x86_64) x86_64)
# extract from src/stage0.txt
distfiles+=" distfiles+="
https://static.rust-lang.org/dist/rustc-${_rust_dist_version}-x86_64-unknown-linux-gnu.tar.gz https://static.rust-lang.org/dist/rustc-${_rust_dist_version}-x86_64-unknown-linux-gnu.tar.gz
https://static.rust-lang.org/dist/rust-std-${_rust_dist_version}-x86_64-unknown-linux-gnu.tar.gz https://static.rust-lang.org/dist/rust-std-${_rust_dist_version}-x86_64-unknown-linux-gnu.tar.gz
https://static.rust-lang.org/dist/cargo-${_cargo_dist_version}-x86_64-unknown-linux-gnu.tar.xz" https://static.rust-lang.org/dist/cargo-${_cargo_dist_version}-x86_64-unknown-linux-gnu.tar.xz"
checksum+=" checksum+="
54a342f718b712d8a17fd7878ebd37d22a82ebc70b59c421168cd4153fd04c2b bb3a07a1f2fdc3eeeee25fc40131d3f05494e3838dfd4e9275475ffc500d7a9e
661c2ba717ae1502f002b4c6e7aeb8941685c7ea8fe7ac26ed9ede26f615b7af 5dfa92661ff1a22680785bd6999b6117ae66841e2bd9e5318eb97002956131e4
c2c31db68c4dcb50ad856a19e6f11489a0d4df1212f31bd068dfbb73c5425761" ab5a6ff1947463dbd2477ca5dac2012494dae821112098ae0c54add652adfdc3"
;; ;;
i686) i686)
# extract from src/stage0.txt
distfiles+=" distfiles+="
https://static.rust-lang.org/dist/rustc-${_rust_dist_version}-i686-unknown-linux-gnu.tar.gz https://static.rust-lang.org/dist/rustc-${_rust_dist_version}-i686-unknown-linux-gnu.tar.gz
https://static.rust-lang.org/dist/rust-std-${_rust_dist_version}-i686-unknown-linux-gnu.tar.gz https://static.rust-lang.org/dist/rust-std-${_rust_dist_version}-i686-unknown-linux-gnu.tar.gz
https://static.rust-lang.org/dist/cargo-${_cargo_dist_version}-i686-unknown-linux-gnu.tar.xz" https://static.rust-lang.org/dist/cargo-${_cargo_dist_version}-i686-unknown-linux-gnu.tar.xz"
checksum+=" checksum+="
be4cdc82b511b0f2499fc9b7048b01069257ca2dedb270a7938e1846beb5a349 b05ca05cfb6f106f92283bb06158845f29abb3c1145a8dc306d2aa210f42d106
f4bba5b77c61a30f0a4c83e152f216c62f974185c4c012c295a5d19d44381a62 ab41c886af02a16a9a38780043d7f3da24c637629afa222b38f616fe6de86402
13acdb3c9f2505805ceed8a696f5f62ab8cd73e443cd43d6edd588aad88e1c32" 4c1521691a22e24e40aac18e75ea95957477284adda9ad79df64d56861aec610"
;; ;;
ppc64le) ppc64le)
distfiles+=" distfiles+="
https://static.rust-lang.org/dist/rustc-${_rust_dist_version}-powerpc64le-unknown-linux-gnu.tar.xz https://static.rust-lang.org/dist/rustc-${_rust_dist_version}-powerpc64le-unknown-linux-gnu.tar.xz
https://static.rust-lang.org/dist/rust-std-${_rust_dist_version}-powerpc64le-unknown-linux-gnu.tar.xz https://static.rust-lang.org/dist/rust-std-${_rust_dist_version}-powerpc64le-unknown-linux-gnu.tar.xz
https://alpha.de.repo.voidlinux.org/distfiles/cargo-${_cargo_dist_version}-powerpc64le-unknown-linux-gnu.tar.xz" https://static.rust-lang.org/dist/cargo-${_cargo_dist_version}-powerpc64le-unknown-linux-gnu.tar.xz"
checksum+=" checksum+="
75ef3992b3de501f0b3442315e6ddef9d6f10070174fdd0f3d62e87534fddbc5 fd7709e00ff49d8e388f52c92a386cef075897b4363e76bec1c850d8d5d67145
984d3ca2a47db04345a2bddd657761f66d209ef95a02097ad4bd549f45a0dc9f b09fe43521f1e50d4b40eb8b4803a5d49dc9c5447eb0ef4da1ab723c093877ba
03ece4d677ad59f08a514eb90dd3bd6cad4399fbbaf3d0e916323fbce38e25d1" 46419ba92849bcf8f4970ae042c333c1d82c1e18fda0531a745f88baee0e7f22"
;; ;;
ppc64le-musl) ppc64le-musl)
distfiles+=" distfiles+="
@ -80,9 +75,19 @@ else
https://alpha.de.repo.voidlinux.org/distfiles/rust-std-${_rust_dist_version}-powerpc64le-unknown-linux-musl.tar.xz https://alpha.de.repo.voidlinux.org/distfiles/rust-std-${_rust_dist_version}-powerpc64le-unknown-linux-musl.tar.xz
https://alpha.de.repo.voidlinux.org/distfiles/cargo-${_cargo_dist_version}-powerpc64le-unknown-linux-musl.tar.xz" https://alpha.de.repo.voidlinux.org/distfiles/cargo-${_cargo_dist_version}-powerpc64le-unknown-linux-musl.tar.xz"
checksum+=" checksum+="
f3a493414b07e9b1b535269cd39552ece586ccad3bfadddd92a952e08179844d 1e2831db0a45c3e3bd44f375678a1738407cf8f7d44af9fd3444248bc1b5d574
698dbec4d359bb4a378eef807035c9b0b4fffe478e50af044ae47b485b9b6f8e 0bf05a5d0521dec481d67ea3a74626e884fd18f8215b774ba89d818bbdb3d8c0
801490f04eac96e883f56434747042c375aa3d210b224c2735e02a3a1eab95a0" 9347f6c8b391e0142cda60988690f7bc9a877f8012ea2e71c35343a4cb9b7ee4"
;;
ppc64)
distfiles+="
https://alpha.de.repo.voidlinux.org/distfiles/rustc-${_rust_dist_version}-powerpc64-unknown-linux-gnu.tar.xz
https://alpha.de.repo.voidlinux.org/distfiles/rust-std-${_rust_dist_version}-powerpc64-unknown-linux-gnu.tar.xz
https://alpha.de.repo.voidlinux.org/distfiles/cargo-${_cargo_dist_version}-powerpc64-unknown-linux-gnu.tar.xz"
checksum+="
7ba9b81bdc3bda8e0945d37424c5a47364961f90c4765d5223afe8c7ae865d78
abb807fbb6c3ca86f9f05014581b84a8105e2fc4ecdac33817093ba6fdb5c613
512c69762fe2a18b6d9781186e77f76333f7ac179e76135cb85ba19e703afaca"
;; ;;
ppc64-musl) ppc64-musl)
distfiles+=" distfiles+="
@ -90,9 +95,29 @@ else
https://alpha.de.repo.voidlinux.org/distfiles/rust-std-${_rust_dist_version}-powerpc64-unknown-linux-musl.tar.xz https://alpha.de.repo.voidlinux.org/distfiles/rust-std-${_rust_dist_version}-powerpc64-unknown-linux-musl.tar.xz
https://alpha.de.repo.voidlinux.org/distfiles/cargo-${_cargo_dist_version}-powerpc64-unknown-linux-musl.tar.xz" https://alpha.de.repo.voidlinux.org/distfiles/cargo-${_cargo_dist_version}-powerpc64-unknown-linux-musl.tar.xz"
checksum+=" checksum+="
56805b5a8a7a2d07937ab12a00154a64bf756d0c85d0d69573bc27365fc3157b fa843921197f51a9c5042528789531daef0e89b7b861cf94116d079bbfc2a523
e9e15702928f2633b1b971911c992c5ed5c552cf4a05f40bc177e53daa05a764 01145b57d2e11ca7bd06dd57a8582ac5d34c683a9cd827920f2489dbdbc51539
ae90844974681c3ee85a855ae0ed27f06d22215e40f825f3b7ca705d8a7cfe7b" 9b8cdacbb4859addfe63cf8ea1df9eb32343e25a18bef2a6422f990728d0e78a"
;;
ppc)
distfiles+="
https://static.rust-lang.org/dist/rustc-${_rust_dist_version}-powerpc-unknown-linux-gnu.tar.xz
https://static.rust-lang.org/dist/rust-std-${_rust_dist_version}-powerpc-unknown-linux-gnu.tar.xz
https://static.rust-lang.org/dist/cargo-${_cargo_dist_version}-powerpc-unknown-linux-gnu.tar.xz"
checksum+="
194ae7493942b5b291870c5857a1e3126b95b6f3b028d5cbfe997f10875a78c4
901b169e011b6d2f675939c014165330756acd5bf2233c4c770229712cd9f19e
42b997dc8b562241d563993b11c070394cf48ced55c6cf86c387d0a15ff0847e"
;;
ppc-musl)
distfiles+="
https://alpha.de.repo.voidlinux.org/distfiles/rustc-${_rust_dist_version}-powerpc-unknown-linux-musl.tar.xz
https://alpha.de.repo.voidlinux.org/distfiles/rust-std-${_rust_dist_version}-powerpc-unknown-linux-musl.tar.xz
https://alpha.de.repo.voidlinux.org/distfiles/cargo-${_cargo_dist_version}-powerpc-unknown-linux-musl.tar.xz"
checksum+="
163dfdeaeda1237a37c59b436d0288529da3277098286d7d92aa577a3e658433
e47a378ddd4d54520c2ae1a8aba74ec2933ce33a5ce30687ef14ef0303085207
eee6637b48d9bbf6375a2de75e36b8670fae26d8da9c53a9890380b9a29d0bcf"
;; ;;
esac esac
fi fi
@ -104,13 +129,7 @@ post_extract() {
cp -bflr ../rustc-*/rustc/* stage0 cp -bflr ../rustc-*/rustc/* stage0
rm ../rust-std-*/rust-std-*/manifest.in rm ../rust-std-*/rust-std-*/manifest.in
cp -bflr ../rust-std-*/rust-std-*/* stage0 cp -bflr ../rust-std-*/rust-std-*/* stage0
case "$XBPS_MACHINE" in cp -bflr ../cargo-${_cargo_dist_version}-${RUST_TARGET}/cargo/bin/cargo stage0/bin
*-musl|ppc64*) cp -bflr ../cargo stage0/bin;;
*)
rm ../cargo-*/cargo/manifest.in
cp -flr ../cargo-*/cargo/* stage0
;;
esac
fi fi
} }
@ -122,18 +141,9 @@ _clear_vendor_checksums() {
} }
post_patch() { post_patch() {
if [ "$build_option_internal_llvm" ]; then
# patches for Rust's bundled LLVM
pushd src/llvm-project/llvm
for x in ${FILESDIR}/patches/internal-llvm/llvm-*.patch; do
msg_normal "Applying $x to llvm\n"
patch -sNp1 -i ${x}
done
popd
else
rm -rf src/llvm-project rm -rf src/llvm-project
# patches for system LLVM if [ "$build_option_static_llvm" ]; then
for x in ${FILESDIR}/patches/sys-llvm/*.patch; do for x in ${FILESDIR}/patches/static-llvm/*.patch; do
msg_normal "Applying patch $x\n" msg_normal "Applying patch $x\n"
patch -sNp1 -i ${x} patch -sNp1 -i ${x}
done done
@ -160,13 +170,14 @@ do_configure() {
--disable-docs --disable-docs
--disable-codegen-tests --disable-codegen-tests
--enable-vendor --enable-vendor
"
if ! [ "$build_option_internal_llvm" ]; then
configure_args+="
--llvm-root=/usr --llvm-root=/usr
--set=target.${RUST_BUILD}.llvm-config=/usr/bin/llvm-config --set=target.${RUST_BUILD}.llvm-config=/usr/bin/llvm-config
--set=target.${RUST_TARGET}.llvm-config=/usr/bin/llvm-config --set=target.${RUST_TARGET}.llvm-config=/usr/bin/llvm-config
--set=target.${RUST_TARGET}.crt-static=false
"
if [ ! "$build_option_static_llvm" ]; then
configure_args+="
--enable-llvm-link-shared --enable-llvm-link-shared
" "
fi fi
@ -209,7 +220,6 @@ pre_build() {
# Set the correct CFLAGS for the build host, we have to compile libbacktrace # Set the correct CFLAGS for the build host, we have to compile libbacktrace
# for it during stage1. Otherwise it attemps to use CFLAGS, which are the CFLAGS # for it during stage1. Otherwise it attemps to use CFLAGS, which are the CFLAGS
# of the cross host. # of the cross host.
# Unset LDFLAGS, otherwise cross builds to the same arch will fail
do_build() { do_build() {
env CFLAGS_${RUST_BUILD}="${CFLAGS_host}" make ${makejobs} ${make_build_args} env CFLAGS_${RUST_BUILD}="${CFLAGS_host}" make ${makejobs} ${make_build_args}
} }