From e6a0a756a3947c4809450fd87c65d883efd3077f Mon Sep 17 00:00:00 2001 From: Patrick J Volkerding Date: Sun, 26 Apr 2020 03:34:28 +0000 Subject: Sun Apr 26 03:34:28 UTC 2020 d/rust-1.43.0-x86_64-2.txz: Rebuilt. Patched and recompiled with the system LLVM 10 instead of the bundled LLVM 9. --- source/d/clisp/clisp.SlackBuild | 11 ++- .../d/clisp/clisp.link.libgnu.whole-archive.diff | 12 +++ source/d/rust/rust.SlackBuild | 11 ++- ....497f879b1e24c369362bcd821959ffabc50a8a31.patch | 28 ++++++ ....66008eb9e4e46bb5c12a215e2abe2338617c2582.patch | 34 +++++++ ....7a14f9ed4fa60f4d8fc042fc678c80c14a850dc0.patch | 100 +++++++++++++++++++++ ....841558d3bdc9c9510b841c438838196378741021.patch | 23 +++++ ....a94fa896cc92d5e0678376cf5aa8b64af0899732.patch | 27 ++++++ 8 files changed, 240 insertions(+), 6 deletions(-) create mode 100644 source/d/clisp/clisp.link.libgnu.whole-archive.diff create mode 100644 source/d/rust/rust.llvm10.497f879b1e24c369362bcd821959ffabc50a8a31.patch create mode 100644 source/d/rust/rust.llvm10.66008eb9e4e46bb5c12a215e2abe2338617c2582.patch create mode 100644 source/d/rust/rust.llvm10.7a14f9ed4fa60f4d8fc042fc678c80c14a850dc0.patch create mode 100644 source/d/rust/rust.llvm10.841558d3bdc9c9510b841c438838196378741021.patch create mode 100644 source/d/rust/rust.llvm10.a94fa896cc92d5e0678376cf5aa8b64af0899732.patch (limited to 'source/d') diff --git a/source/d/clisp/clisp.SlackBuild b/source/d/clisp/clisp.SlackBuild index cc9440619..c958fddb7 100755 --- a/source/d/clisp/clisp.SlackBuild +++ b/source/d/clisp/clisp.SlackBuild @@ -1,6 +1,6 @@ #!/bin/bash -# Copyright 2008, 2009, 2010, 2013, 2015, 2017, 2018, 2019 Patrick J. Volkerding, Sebeka, MN, USA +# Copyright 2008, 2009, 2010, 2013, 2015, 2017, 2018, 2019, 2020 Patrick J. Volkerding, Sebeka, MN, USA # All rights reserved. # # Redistribution and use of this script, with or without modification, is @@ -24,10 +24,10 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=clisp VERSION=${VERSION:-$(echo $PKGNAM-*.tar.?z | rev | cut -f 3- -d . | cut -f 1 -d - | rev)} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} # Bundled libraries: -FFCALLVER=2.1 +FFCALLVER=2.2 # Automatically determine the architecture we're building on: if [ -z "$ARCH" ]; then @@ -124,7 +124,10 @@ find . \ -exec chmod 644 {} \+ # Fix build failure with missing struct member: -zcat $CWD/clisp.c_data.compact_empty_buckets.diff.gz | patch -p1 --verbose || exit +zcat $CWD/clisp.c_data.compact_empty_buckets.diff.gz | patch -p1 --verbose || exit 1 + +# Fix modules that need access to symbols in libgnu.a: +zcat $CWD/clisp.link.libgnu.whole-archive.diff.gz | patch -p1 --verbose || exit 1 # I'll be unsafe if I want to: export FORCE_UNSAFE_CONFIGURE=1 diff --git a/source/d/clisp/clisp.link.libgnu.whole-archive.diff b/source/d/clisp/clisp.link.libgnu.whole-archive.diff new file mode 100644 index 000000000..9f47080fe --- /dev/null +++ b/source/d/clisp/clisp.link.libgnu.whole-archive.diff @@ -0,0 +1,12 @@ +diff -u -r --new-file clisp-2.50_20191103_c26de7873.orig/src/makemake.in clisp-2.50_20191103_c26de7873/src/makemake.in +--- clisp-2.50_20191103_c26de7873.orig/src/makemake.in 2019-12-30 13:50:09.000000000 -0600 ++++ clisp-2.50_20191103_c26de7873/src/makemake.in 2020-04-24 22:40:43.272361884 -0500 +@@ -1995,7 +1995,7 @@ + + GLLIB_A=libgnu.a + # libgnu.a must come _before_ -lws2_32 -lintl &c +-LIBS="${GLLIB_A} ${LIBS} ${LIBSOCKET}" ++LIBS="-Wl,--whole-archive ${GLLIB_A} -Wl,--no-whole-archive ${LIBS} -ldl ${LIBSOCKET}" + FILES="${GLLIB_A} "${FILES} + + FILES='lisp.a '$FILES diff --git a/source/d/rust/rust.SlackBuild b/source/d/rust/rust.SlackBuild index 189d1c0f9..e84d9824c 100755 --- a/source/d/rust/rust.SlackBuild +++ b/source/d/rust/rust.SlackBuild @@ -27,11 +27,11 @@ cd $(dirname $0) ; CWD=$(pwd) PKGNAM=rust SRCNAM="${PKGNAM}c" VERSION=${VERSION:-1.43.0} -BUILD=${BUILD:-1} +BUILD=${BUILD:-2} # Set this to YES to build with the system LLVM, or NO to use the bundled LLVM. # YES is probably better (when it works...) -SYSTEM_LLVM=${SYSTEM_LLVM:-NO} +SYSTEM_LLVM=${SYSTEM_LLVM:-YES} # Bootstrap variables (might not be kept updated for latest Rust): RSTAGE0_VERSION=${RSTAGE0_VERSION:-1.42.0} @@ -135,6 +135,13 @@ rm -rf $SRCNAM-$VERSION-src tar xvf $CWD/$SRCNAM-$VERSION-src.tar.?z || exit 1 cd $SRCNAM-$VERSION-src || exit 1 +# Fixes for LLVM 10: +zcat $CWD/rust.llvm10.7a14f9ed4fa60f4d8fc042fc678c80c14a850dc0.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/rust.llvm10.66008eb9e4e46bb5c12a215e2abe2338617c2582.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/rust.llvm10.841558d3bdc9c9510b841c438838196378741021.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/rust.llvm10.a94fa896cc92d5e0678376cf5aa8b64af0899732.patch.gz | patch -p1 --verbose || exit 1 +zcat $CWD/rust.llvm10.497f879b1e24c369362bcd821959ffabc50a8a31.patch.gz | patch -p1 --verbose || exit 1 + # Link with -lffi in case of using system LLVM: if [ "${SYSTEM_LLVM}" = "YES" ]; then zcat $CWD/link_libffi.diff.gz | patch -p1 --verbose || exit 1 diff --git a/source/d/rust/rust.llvm10.497f879b1e24c369362bcd821959ffabc50a8a31.patch b/source/d/rust/rust.llvm10.497f879b1e24c369362bcd821959ffabc50a8a31.patch new file mode 100644 index 000000000..972cdf608 --- /dev/null +++ b/source/d/rust/rust.llvm10.497f879b1e24c369362bcd821959ffabc50a8a31.patch @@ -0,0 +1,28 @@ +From 497f879b1e24c369362bcd821959ffabc50a8a31 Mon Sep 17 00:00:00 2001 +From: Nikita Popov +Date: Mon, 2 Mar 2020 22:37:55 +0100 +Subject: [PATCH] Update CreateMemSet() usage for LLVM 10 + +--- + src/rustllvm/RustWrapper.cpp | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/src/rustllvm/RustWrapper.cpp b/src/rustllvm/RustWrapper.cpp +index 25cfee3373dc4..799adb418822d 100644 +--- a/src/rustllvm/RustWrapper.cpp ++++ b/src/rustllvm/RustWrapper.cpp +@@ -1333,8 +1333,13 @@ extern "C" LLVMValueRef LLVMRustBuildMemSet(LLVMBuilderRef B, + LLVMValueRef Dst, unsigned DstAlign, + LLVMValueRef Val, + LLVMValueRef Size, bool IsVolatile) { ++#if LLVM_VERSION_GE(10, 0) ++ return wrap(unwrap(B)->CreateMemSet( ++ unwrap(Dst), unwrap(Val), unwrap(Size), MaybeAlign(DstAlign), IsVolatile)); ++#else + return wrap(unwrap(B)->CreateMemSet( + unwrap(Dst), unwrap(Val), unwrap(Size), DstAlign, IsVolatile)); ++#endif + } + + extern "C" LLVMValueRef + diff --git a/source/d/rust/rust.llvm10.66008eb9e4e46bb5c12a215e2abe2338617c2582.patch b/source/d/rust/rust.llvm10.66008eb9e4e46bb5c12a215e2abe2338617c2582.patch new file mode 100644 index 000000000..28a23594b --- /dev/null +++ b/source/d/rust/rust.llvm10.66008eb9e4e46bb5c12a215e2abe2338617c2582.patch @@ -0,0 +1,34 @@ +From 66008eb9e4e46bb5c12a215e2abe2338617c2582 Mon Sep 17 00:00:00 2001 +From: Nikita Popov +Date: Sun, 19 Jan 2020 22:47:45 +0100 +Subject: [PATCH] Adjust data layout in test + +--- + .../run-make-fulldeps/target-specs/my-awesome-platform.json | 2 +- + .../target-specs/my-x86_64-unknown-linux-gnu-platform.json | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/src/test/run-make-fulldeps/target-specs/my-awesome-platform.json b/src/test/run-make-fulldeps/target-specs/my-awesome-platform.json +index 8d028280a8da7..00de3de05f07a 100644 +--- a/src/test/run-make-fulldeps/target-specs/my-awesome-platform.json ++++ b/src/test/run-make-fulldeps/target-specs/my-awesome-platform.json +@@ -1,5 +1,5 @@ + { +- "data-layout": "e-m:e-p:32:32-f64:32:64-f80:32-n8:16:32-S128", ++ "data-layout": "e-m:e-p:32:32-p270:32:32-p271:32:32-p272:64:64-f64:32:64-f80:32-n8:16:32-S128", + "linker-flavor": "gcc", + "llvm-target": "i686-unknown-linux-gnu", + "target-endian": "little", +diff --git a/src/test/run-make-fulldeps/target-specs/my-x86_64-unknown-linux-gnu-platform.json b/src/test/run-make-fulldeps/target-specs/my-x86_64-unknown-linux-gnu-platform.json +index 48040ae3da0ef..6d5e964ed4fee 100644 +--- a/src/test/run-make-fulldeps/target-specs/my-x86_64-unknown-linux-gnu-platform.json ++++ b/src/test/run-make-fulldeps/target-specs/my-x86_64-unknown-linux-gnu-platform.json +@@ -1,6 +1,6 @@ + { + "pre-link-args": {"gcc": ["-m64"]}, +- "data-layout": "e-m:e-i64:64-f80:128-n8:16:32:64-S128", ++ "data-layout": "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128", + "linker-flavor": "gcc", + "llvm-target": "x86_64-unknown-linux-gnu", + "target-endian": "little", + diff --git a/source/d/rust/rust.llvm10.7a14f9ed4fa60f4d8fc042fc678c80c14a850dc0.patch b/source/d/rust/rust.llvm10.7a14f9ed4fa60f4d8fc042fc678c80c14a850dc0.patch new file mode 100644 index 000000000..5394aff2d --- /dev/null +++ b/source/d/rust/rust.llvm10.7a14f9ed4fa60f4d8fc042fc678c80c14a850dc0.patch @@ -0,0 +1,100 @@ +From 7a14f9ed4fa60f4d8fc042fc678c80c14a850dc0 Mon Sep 17 00:00:00 2001 +From: Nikita Popov +Date: Sat, 18 Jan 2020 23:00:30 +0100 +Subject: [PATCH] Fix LLVM version handling in compiletest + +Convert version string to integer before comparing. Otherwise +we get into trouble with double digit versions ;) +--- + src/tools/compiletest/src/header.rs | 27 ++++++++++++++++++----- + src/tools/compiletest/src/header/tests.rs | 5 ++--- + 2 files changed, 23 insertions(+), 9 deletions(-) + +diff --git a/src/tools/compiletest/src/header.rs b/src/tools/compiletest/src/header.rs +index 2a24a8c3c9485..cb648db8830ef 100644 +--- a/src/tools/compiletest/src/header.rs ++++ b/src/tools/compiletest/src/header.rs +@@ -191,6 +191,7 @@ impl EarlyProps { + return true; + } + if let Some(ref actual_version) = config.llvm_version { ++ let actual_version = version_to_int(actual_version); + if line.starts_with("min-llvm-version") { + let min_version = line + .trim_end() +@@ -199,7 +200,7 @@ impl EarlyProps { + .expect("Malformed llvm version directive"); + // Ignore if actual version is smaller the minimum required + // version +- &actual_version[..] < min_version ++ actual_version < version_to_int(min_version) + } else if line.starts_with("min-system-llvm-version") { + let min_version = line + .trim_end() +@@ -208,7 +209,7 @@ impl EarlyProps { + .expect("Malformed llvm version directive"); + // Ignore if using system LLVM and actual version + // is smaller the minimum required version +- config.system_llvm && &actual_version[..] < min_version ++ config.system_llvm && actual_version < version_to_int(min_version) + } else if line.starts_with("ignore-llvm-version") { + // Syntax is: "ignore-llvm-version [- ]" + let range_components = line +@@ -219,15 +220,15 @@ impl EarlyProps { + .take(3) // 3 or more = invalid, so take at most 3. + .collect::>(); + match range_components.len() { +- 1 => &actual_version[..] == range_components[0], ++ 1 => actual_version == version_to_int(range_components[0]), + 2 => { +- let v_min = range_components[0]; +- let v_max = range_components[1]; ++ let v_min = version_to_int(range_components[0]); ++ let v_max = version_to_int(range_components[1]); + if v_max < v_min { + panic!("Malformed LLVM version range: max < min") + } + // Ignore if version lies inside of range. +- &actual_version[..] >= v_min && &actual_version[..] <= v_max ++ actual_version >= v_min && actual_version <= v_max + } + _ => panic!("Malformed LLVM version directive"), + } +@@ -238,6 +239,20 @@ impl EarlyProps { + false + } + } ++ ++ fn version_to_int(version: &str) -> u32 { ++ let version_without_suffix = version.split('-').next().unwrap(); ++ let components: Vec = version_without_suffix ++ .split('.') ++ .map(|s| s.parse().expect("Malformed version component")) ++ .collect(); ++ match components.len() { ++ 1 => components[0] * 10000, ++ 2 => components[0] * 10000 + components[1] * 100, ++ 3 => components[0] * 10000 + components[1] * 100 + components[2], ++ _ => panic!("Malformed version"), ++ } ++ } + } + } + +diff --git a/src/tools/compiletest/src/header/tests.rs b/src/tools/compiletest/src/header/tests.rs +index 6c478f7e29da4..31d991e0c2f87 100644 +--- a/src/tools/compiletest/src/header/tests.rs ++++ b/src/tools/compiletest/src/header/tests.rs +@@ -122,9 +122,8 @@ fn llvm_version() { + config.llvm_version = Some("9.3.1-rust-1.43.0-dev".to_owned()); + assert!(!parse_rs(&config, "// min-llvm-version 9.2").ignore); + +- // FIXME. +- // config.llvm_version = Some("10.0.0-rust".to_owned()); +- // assert!(!parse_rs(&config, "// min-llvm-version 9.0").ignore); ++ config.llvm_version = Some("10.0.0-rust".to_owned()); ++ assert!(!parse_rs(&config, "// min-llvm-version 9.0").ignore); + } + + #[test] + diff --git a/source/d/rust/rust.llvm10.841558d3bdc9c9510b841c438838196378741021.patch b/source/d/rust/rust.llvm10.841558d3bdc9c9510b841c438838196378741021.patch new file mode 100644 index 000000000..983e144d5 --- /dev/null +++ b/source/d/rust/rust.llvm10.841558d3bdc9c9510b841c438838196378741021.patch @@ -0,0 +1,23 @@ +From 841558d3bdc9c9510b841c438838196378741021 Mon Sep 17 00:00:00 2001 +From: Nikita Popov +Date: Tue, 4 Feb 2020 19:23:45 +0100 +Subject: [PATCH] Remove trailing newline from llvm-config output + +--- + src/bootstrap/test.rs | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/src/bootstrap/test.rs b/src/bootstrap/test.rs +index aa1d1b7c42413..b52fbe4666eb3 100644 +--- a/src/bootstrap/test.rs ++++ b/src/bootstrap/test.rs +@@ -1141,6 +1141,8 @@ impl Step for Compiletest { + let llvm_config = builder.ensure(native::Llvm { target: builder.config.build }); + if !builder.config.dry_run { + let llvm_version = output(Command::new(&llvm_config).arg("--version")); ++ // Remove trailing newline from llvm-config output. ++ let llvm_version = llvm_version.trim_end(); + cmd.arg("--llvm-version").arg(llvm_version); + } + if !builder.is_rust_llvm(target) { + diff --git a/source/d/rust/rust.llvm10.a94fa896cc92d5e0678376cf5aa8b64af0899732.patch b/source/d/rust/rust.llvm10.a94fa896cc92d5e0678376cf5aa8b64af0899732.patch new file mode 100644 index 000000000..7765a9609 --- /dev/null +++ b/source/d/rust/rust.llvm10.a94fa896cc92d5e0678376cf5aa8b64af0899732.patch @@ -0,0 +1,27 @@ +From a94fa896cc92d5e0678376cf5aa8b64af0899732 Mon Sep 17 00:00:00 2001 +From: Nikita Popov +Date: Tue, 4 Feb 2020 20:35:50 +0100 +Subject: [PATCH] Fix timeTraceProfilerInitialize for LLVM 10 + +--- + src/rustllvm/PassWrapper.cpp | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/src/rustllvm/PassWrapper.cpp b/src/rustllvm/PassWrapper.cpp +index 90d24d20737db..9e8614e3b6d34 100644 +--- a/src/rustllvm/PassWrapper.cpp ++++ b/src/rustllvm/PassWrapper.cpp +@@ -67,7 +67,11 @@ extern "C" void LLVMInitializePasses() { + } + + extern "C" void LLVMTimeTraceProfilerInitialize() { +-#if LLVM_VERSION_GE(9, 0) ++#if LLVM_VERSION_GE(10, 0) ++ timeTraceProfilerInitialize( ++ /* TimeTraceGranularity */ 0, ++ /* ProcName */ "rustc"); ++#elif LLVM_VERSION_GE(9, 0) + timeTraceProfilerInitialize(); + #endif + } + -- cgit v1.2.3