mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2025-02-16 23:57:11 +00:00
community/rust to 1.19.0-1
This commit is contained in:
parent
5e91cde6bd
commit
2850e7eb03
3 changed files with 161 additions and 16 deletions
|
@ -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
|
||||
|
|
@ -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
|
||||
|
|
115
community/rust/bootstrap-config.toml
Normal file
115
community/rust/bootstrap-config.toml
Normal 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"
|
Loading…
Reference in a new issue