community/rust to 1.19.0-1

This commit is contained in:
Kevin Mihelich 2017-07-21 12:43:33 +00:00
parent 5e91cde6bd
commit 2850e7eb03
3 changed files with 161 additions and 16 deletions

View file

@ -0,0 +1,32 @@
From 5dbc650a60ddb230f59e5a18ffd298b033566945 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Johannes=20L=C3=B6thberg?= <johannes@kyriasis.com>
Date: Thu, 20 Jul 2017 23:07:01 +0200
Subject: [PATCH] librustc_llvm/build: Force link against libffi
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
`llvm-config --libs` doesn't output libffi in many cases. Fixing it
turned out to take quite a bit of effort, so force libffi linking in
here for now.
Signed-off-by: Johannes Löthberg <johannes@kyriasis.com>
---
src/librustc_llvm/build.rs | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/librustc_llvm/build.rs b/src/librustc_llvm/build.rs
index 3f0f536960..7dc0c40c9d 100644
--- a/src/librustc_llvm/build.rs
+++ b/src/librustc_llvm/build.rs
@@ -220,6 +220,7 @@ fn main() {
};
println!("cargo:rustc-link-lib={}={}", kind, name);
}
+ println!("cargo:rustc-link-lib=dylib=ffi");
// LLVM ldflags
//
--
2.13.3

View file

@ -12,7 +12,7 @@ highmem=1
pkgname=('rust' 'rust-docs')
epoch=1
pkgver=1.18.0
pkgver=1.19.0
pkgrel=1
pkgdesc='Systems programming language focused on safety, speed and concurrency'
@ -24,13 +24,22 @@ makedepends=('rust' 'cargo' 'libffi' 'perl' 'python2' 'curl' 'llvm' 'jemalloc')
options=('!emptydirs')
source=("https://static.rust-lang.org/dist/rustc-$pkgver-src.tar.gz"{,.asc})
source=("https://static.rust-lang.org/dist/rustc-$pkgver-src.tar.gz"{,.asc}
0001-librustc_llvm-build-Force-link-against-libffi.patch
bootstrap-config.toml)
sha256sums=('d2dc36e99b9e2269488b2bcddde43c234e6bde03edf70cba82a027ff49c36111'
'SKIP')
sha256sums=('15231f5053fb72ad82be91f5abfd6aa60cb7898c5089e4f1ac5910a731090c51'
'SKIP'
'563529da8e02f575ddde7247d5fc5350d74031daa54743b86d075f3c45ae2713'
'8b25eaee73ad3f349300b6d2b752df5e54abaad0555953db1b294294c5a1a6c9')
validpgpkeys=('108F66205EAEB0AAA8DD5E1C85AB96E6FA1BE5FE') # Rust Language (Tag and Release Signing Key) <rust-key@rust-lang.org>
prepare() {
cd "rustc-$pkgver-src"
patch -p1 <"$srcdir"/0001-librustc_llvm-build-Force-link-against-libffi.patch
cp "$srcdir"/bootstrap-config.toml config.toml
if [[ $CARCH == armv7h ]]; then
mkdir path
ln -s /usr/bin/g++ path/arm-linux-gnueabihf-g++
@ -41,17 +50,6 @@ prepare() {
build() {
cd "rustc-$pkgver-src"
./configure \
--prefix=/usr \
--release-channel=stable \
--llvm-root=/usr \
--enable-llvm-link-shared \
--disable-codegen-tests \
--jemalloc-root=/usr/lib \
--enable-local-rust
export RUSTFLAGS="$RUSTFLAGS -C link-args=-lffi"
msg2 "Run build under x.py"
python2 ./x.py build
}
@ -62,7 +60,7 @@ package_rust() {
cd "rustc-$pkgver-src"
make DESTDIR="$pkgdir" install
DESTDIR="$pkgdir" python2 ./x.py install
for license in APACHE MIT; do install -Dm644 "LICENSE-$license" \
"$pkgdir/usr/share/licenses/$pkgname/LICENSE-$license"; done

View file

@ -0,0 +1,115 @@
# All options are commented out by default in this file, and they're commented
# out with their default values. The build system by default looks for
# `config.toml` in the current directory of a build for build configuration, but
# a custom configuration file can also be specified with `--config` to the build
# system.
# =============================================================================
# Tweaking how LLVM is compiled
# =============================================================================
[llvm]
# Indicates whether ccache is used when building LLVM
#ccache = false
# or alternatively ...
#ccache = "/path/to/ccache"
# LLVM targets to build support for.
# Note: this is NOT related to Rust compilation targets. However, as Rust is
# dependent on LLVM for code generation, turning targets off here WILL lead to
# the resulting rustc being unable to compile for the disabled architectures.
# Also worth pointing out is that, in case support for new targets are added to
# LLVM, enabling them here doesn't mean Rust is automatically gaining said
# support. You'll need to write a target specification at least, and most
# likely, teach rustc about the C ABI of the target. Get in touch with the
# Rust team and file an issue if you need assistance in porting!
#targets = "X86;ARM;AArch64;Mips;PowerPC;SystemZ;JSBackend;MSP430;Sparc;NVPTX;Hexagon"
# Cap the number of parallel linker invocations when compiling LLVM.
# This can be useful when building LLVM with debug info, which significantly
# increases the size of binaries and consequently the memory required by
# each linker process.
# If absent or 0, linker invocations are treated like any other job and
# controlled by rustbuild's -j parameter.
#link-jobs = 0
# =============================================================================
# General build configuration options
# =============================================================================
[build]
# Instead of downloading the src/stage0.txt version of Cargo specified, use
# this Cargo binary instead to build all Rust code
cargo = "/usr/bin/cargo"
# Instead of downloading the src/stage0.txt version of the compiler
# specified, use this rustc binary instead as the stage0 snapshot compiler.
rustc = "/usr/bin/rustc"
# Python interpreter to use for various tasks throughout the build, notably
# rustdoc tests, the lldb python interpreter, and some dist bits and pieces.
# Note that Python 2 is currently required.
python = "python2.7"
# Verbosity level: 0 == not verbose, 1 == verbose, 2 == very verbose
verbose = 1
# Build the sanitizer runtimes
#sanitizers = false
# =============================================================================
# General install configuration options
# =============================================================================
[install]
# Instead of installing to /usr/local, install to this path instead.
prefix = "/usr"
# =============================================================================
# Options for compiling Rust code itself
# =============================================================================
[rust]
# Number of codegen units to use for each compiler invocation. A value of 0
# means "the number of cores on this machine", and 1+ is passed through to the
# compiler.
codegen-units = 0
# Whether or not debuginfo is emitted
debuginfo = true
# Whether or not line number debug information is emitted
#debuginfo-lines = false
# The "channel" for the Rust build to produce. The stable/beta channels only
# allow using stable features, whereas the nightly and dev channels allow using
# nightly features
channel = "stable"
# =============================================================================
# Options for specific targets
#
# Each of the following options is scoped to the specific target triple in
# question and is used for determining how to compile each target.
# =============================================================================
[target.x86_64-unknown-linux-gnu]
# Path to the `llvm-config` binary of the installation of a custom LLVM to link
# against. Note that if this is specifed we don't compile LLVM at all for this
# target.
llvm-config = "/usr/bin/llvm-config"
# Path to the custom jemalloc static library to link into the standard library
# by default. This is only used if jemalloc is still enabled above
jemalloc = "/usr/lib/libjemalloc_pic.a"
[target.i686-unknown-linux-gnu]
# Path to the `llvm-config` binary of the installation of a custom LLVM to link
# against. Note that if this is specifed we don't compile LLVM at all for this
# target.
llvm-config = "/usr/bin/llvm-config"
# Path to the custom jemalloc static library to link into the standard library
# by default. This is only used if jemalloc is still enabled above
jemalloc = "/usr/lib/libjemalloc_pic.a"