mirror of
https://git.yoctoproject.org/poky
synced 2026-01-29 21:08:42 +01:00
rust: Drop rust-llvm
Dropping rust-llvm because now rust depends on llvm. 0001-AsmMatcherEmitter-sort-ClassInfo-lists-by-name-as-we.patch 0002-llvm-allow-env-override-of-exe-path.patch (We have the above two patches in llvm) (From OE-Core rev: c116828a876853cd5b53f7bd4607f0037fef4ee4) Signed-off-by: Deepesh Varatharajan <Deepesh.Varatharajan@windriver.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
committed by
Richard Purdie
parent
6fc05011a1
commit
a6666d530a
@@ -774,7 +774,6 @@ RECIPE_MAINTAINER:pn-ruby = "Ross Burton <ross.burton@arm.com>"
|
||||
RECIPE_MAINTAINER:pn-run-postinsts = "Ross Burton <ross.burton@arm.com>"
|
||||
RECIPE_MAINTAINER:pn-rust = "Randy MacLeod <Randy.MacLeod@windriver.com>"
|
||||
RECIPE_MAINTAINER:pn-rust-cross-canadian-${TRANSLATED_TARGET_ARCH} = "Randy MacLeod <Randy.MacLeod@windriver.com>"
|
||||
RECIPE_MAINTAINER:pn-rust-llvm = "Randy MacLeod <Randy.MacLeod@windriver.com>"
|
||||
RECIPE_MAINTAINER:pn-rxvt-unicode = "Unassigned <unassigned@yoctoproject.org>"
|
||||
RECIPE_MAINTAINER:pn-sassc = "Simone Weiß <simone.p.weiss@posteo.com>"
|
||||
RECIPE_MAINTAINER:pn-sato-screenshot = "Ross Burton <ross.burton@arm.com>"
|
||||
|
||||
@@ -2,6 +2,5 @@
|
||||
SECURITY_CFLAGS:pn-rust-native = "${SECURITY_NO_PIE_CFLAGS}"
|
||||
SECURITY_CFLAGS:pn-rust-cross-${TARGET_ARCH} = "${SECURITY_NO_PIE_CFLAGS}"
|
||||
SECURITY_CFLAGS:pn-rust = "${SECURITY_NO_PIE_CFLAGS}"
|
||||
SECURITY_CFLAGS:pn-rust-llvm = "${SECURITY_NO_PIE_CFLAGS}"
|
||||
|
||||
SECURITY_LDFLAGS:pn-rust-cross-arm = " -lssp_nonshared -lssp"
|
||||
|
||||
@@ -43,7 +43,5 @@ PREFERRED_VERSION_cargo-native ?= "${RUSTVERSION}"
|
||||
PREFERRED_VERSION_libstd-rs ?= "${RUSTVERSION}"
|
||||
PREFERRED_VERSION_rust ?= "${RUSTVERSION}"
|
||||
PREFERRED_VERSION_rust-cross-${TARGET_ARCH} ?= "${RUSTVERSION}"
|
||||
PREFERRED_VERSION_rust-llvm ?= "${RUSTVERSION}"
|
||||
PREFERRED_VERSION_rust-llvm-native ?= "${RUSTVERSION}"
|
||||
PREFERRED_VERSION_rust-native ?= "${RUSTVERSION}"
|
||||
|
||||
|
||||
@@ -1,31 +0,0 @@
|
||||
From 86940d87026432683fb6741cd8a34d3b9b18e40d Mon Sep 17 00:00:00 2001
|
||||
From: Alexander Kanavin <alex.kanavin@gmail.com>
|
||||
Date: Fri, 27 Nov 2020 10:11:08 +0000
|
||||
Subject: [PATCH] AsmMatcherEmitter: sort ClassInfo lists by name as well
|
||||
|
||||
Otherwise, there are instances which are identical in
|
||||
every other field and therefore sort non-reproducibly
|
||||
(which breaks binary and source reproducibiliy).
|
||||
|
||||
Upstream-Status: Submitted [https://reviews.llvm.org/D97477]
|
||||
Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com>
|
||||
---
|
||||
llvm/utils/TableGen/AsmMatcherEmitter.cpp | 5 ++++-
|
||||
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/llvm/utils/TableGen/AsmMatcherEmitter.cpp b/llvm/utils/TableGen/AsmMatcherEmitter.cpp
|
||||
index ccf0959389b..1f801e83b7d 100644
|
||||
--- a/llvm/utils/TableGen/AsmMatcherEmitter.cpp
|
||||
+++ b/llvm/utils/TableGen/AsmMatcherEmitter.cpp
|
||||
@@ -359,7 +359,10 @@ public:
|
||||
// name of a class shouldn't be significant. However, some of the backends
|
||||
// accidentally rely on this behaviour, so it will have to stay like this
|
||||
// until they are fixed.
|
||||
- return ValueName < RHS.ValueName;
|
||||
+ if (ValueName != RHS.ValueName)
|
||||
+ return ValueName < RHS.ValueName;
|
||||
+ // All else being equal, we should sort by name, for source and binary reproducibility
|
||||
+ return Name < RHS.Name;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
From 7111770e8290082530d920e120995bf81431b0aa Mon Sep 17 00:00:00 2001
|
||||
From: Martin Kelly <mkelly@xevo.com>
|
||||
Date: Fri, 19 May 2017 00:22:57 -0700
|
||||
Subject: [PATCH 12/18] llvm: allow env override of exe path
|
||||
|
||||
When using a native llvm-config from inside a sysroot, we need llvm-config to
|
||||
return the libraries, include directories, etc. from inside the sysroot rather
|
||||
than from the native sysroot. Thus provide an env override for calling
|
||||
llvm-config from a target sysroot.
|
||||
|
||||
Upstream-Status: Inappropriate [oe-core specific]
|
||||
Signed-off-by: Martin Kelly <mkelly@xevo.com>
|
||||
Signed-off-by: Khem Raj <raj.khem@gmail.com>
|
||||
---
|
||||
llvm/tools/llvm-config/llvm-config.cpp | 7 +++++++
|
||||
1 file changed, 7 insertions(+)
|
||||
|
||||
--- a/llvm/tools/llvm-config/llvm-config.cpp
|
||||
+++ b/llvm/tools/llvm-config/llvm-config.cpp
|
||||
@@ -226,6 +226,13 @@ Typical components:\n\
|
||||
|
||||
/// Compute the path to the main executable.
|
||||
std::string GetExecutablePath(const char *Argv0) {
|
||||
+ // Hack for Yocto: we need to override the root path when we are using
|
||||
+ // llvm-config from within a target sysroot.
|
||||
+ const char *Sysroot = std::getenv("YOCTO_ALTERNATE_EXE_PATH");
|
||||
+ if (Sysroot != nullptr) {
|
||||
+ return Sysroot;
|
||||
+ }
|
||||
+
|
||||
// This just needs to be some symbol in the binary; C++ doesn't
|
||||
// allow taking the address of ::main however.
|
||||
void *P = (void *)(intptr_t)GetExecutablePath;
|
||||
@@ -1,98 +0,0 @@
|
||||
SUMMARY = "LLVM compiler framework (packaged with rust)"
|
||||
LICENSE ?= "Apache-2.0-with-LLVM-exception"
|
||||
HOMEPAGE = "http://www.rust-lang.org"
|
||||
|
||||
# check src/llvm-project/llvm/CMakeLists.txt for llvm version in use
|
||||
#
|
||||
LLVM_RELEASE = "20.1.8"
|
||||
|
||||
require rust-source.inc
|
||||
|
||||
SRC_URI += "file://0002-llvm-allow-env-override-of-exe-path.patch;striplevel=2 \
|
||||
file://0001-AsmMatcherEmitter-sort-ClassInfo-lists-by-name-as-we.patch;striplevel=2 \
|
||||
"
|
||||
|
||||
S = "${RUSTSRC}/src/llvm-project/llvm"
|
||||
|
||||
LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=8a15a0759ef07f2682d2ba4b893c9afe"
|
||||
|
||||
inherit cmake
|
||||
|
||||
DEPENDS += "ninja-native rust-llvm-native"
|
||||
|
||||
ARM_INSTRUCTION_SET:armv5 = "arm"
|
||||
ARM_INSTRUCTION_SET:armv4t = "arm"
|
||||
|
||||
# rustc_llvm with debug info is not recognized as a valid crate that's
|
||||
# generated by rust-llvm-native.
|
||||
CFLAGS:remove = "-g"
|
||||
CXXFLAGS:remove = "-g"
|
||||
|
||||
LLVM_DIR = "llvm${LLVM_RELEASE}"
|
||||
|
||||
RUST_LLVM_TARGETS ?= "ARM;AArch64;Mips;PowerPC;RISCV;X86"
|
||||
|
||||
EXTRA_OECMAKE = " \
|
||||
-DCMAKE_BUILD_TYPE=Release \
|
||||
-DLLVM_TARGETS_TO_BUILD='${RUST_LLVM_TARGETS}' \
|
||||
-DLLVM_BUILD_DOCS=OFF \
|
||||
-DLLVM_ENABLE_TERMINFO=OFF \
|
||||
-DLLVM_ENABLE_ZLIB=OFF \
|
||||
-DLLVM_ENABLE_ZSTD=OFF \
|
||||
-DLLVM_ENABLE_LIBXML2=OFF \
|
||||
-DLLVM_ENABLE_FFI=OFF \
|
||||
-DLLVM_ENABLE_LIBEDIT=OFF \
|
||||
-DLLVM_INSTALL_UTILS=ON \
|
||||
-DLLVM_BUILD_EXAMPLES=OFF \
|
||||
-DLLVM_BUILD_LLVM_DYLIB=ON \
|
||||
-DLLVM_LINK_LLVM_DYLIB=ON \
|
||||
-DLLVM_INCLUDE_EXAMPLES=OFF \
|
||||
-DLLVM_BUILD_TESTS=OFF \
|
||||
-DLLVM_INCLUDE_TESTS=OFF \
|
||||
-DLLVM_INCLUDE_BENCHMARKS=OFF \
|
||||
-DLLVM_TARGET_ARCH=${TARGET_ARCH} \
|
||||
-DCMAKE_INSTALL_PREFIX:PATH=${libdir}/llvm-rust \
|
||||
"
|
||||
|
||||
# Forcibly disable the detection of these packages as otherwise
|
||||
# it will look at the host Python install
|
||||
EXTRA_OECMAKE += "\
|
||||
-DPY_PYGMENTS_FOUND=OFF \
|
||||
-DPY_PYGMENTS_LEXERS_C_CPP_FOUND=OFF \
|
||||
-DPY_YAML_FOUND=OFF \
|
||||
"
|
||||
|
||||
EXTRA_OECMAKE:append:class-target = "\
|
||||
-DLLVM_BUILD_TOOLS=OFF \
|
||||
-DLLVM_TABLEGEN=${STAGING_LIBDIR_NATIVE}/llvm-rust/bin/llvm-tblgen \
|
||||
-DLLVM_CONFIG_PATH=${STAGING_LIBDIR_NATIVE}/llvm-rust/bin/llvm-config \
|
||||
"
|
||||
|
||||
EXTRA_OECMAKE:append:class-nativesdk = "\
|
||||
-DLLVM_BUILD_TOOLS=OFF \
|
||||
-DLLVM_TABLEGEN=${STAGING_LIBDIR_NATIVE}/llvm-rust/bin/llvm-tblgen \
|
||||
-DLLVM_CONFIG_PATH=${STAGING_LIBDIR_NATIVE}/llvm-rust/bin/llvm-config \
|
||||
"
|
||||
|
||||
# The debug symbols are huge here (>2GB) so suppress them since they
|
||||
# provide almost no value. If you really need them then override this
|
||||
INHIBIT_PACKAGE_DEBUG_SPLIT = "1"
|
||||
|
||||
export YOCTO_ALTERNATE_EXE_PATH = "${STAGING_LIBDIR}/llvm-rust/bin/llvm-config"
|
||||
|
||||
do_install:append () {
|
||||
# we don't need any of this stuff to build Rust
|
||||
rm -rf "${D}/usr/lib/cmake"
|
||||
}
|
||||
|
||||
PACKAGES =+ "${PN}-bugpointpasses ${PN}-llvmhello ${PN}-liblto"
|
||||
|
||||
# Add the extra locations to avoid the complaints about unpackaged files
|
||||
FILES:${PN}-bugpointpasses = "${libdir}/llvm-rust/lib/BugpointPasses.so"
|
||||
FILES:${PN}-llvmhello = "${libdir}/llvm-rust/lib/LLVMHello.so"
|
||||
FILES:${PN}-liblto = "${libdir}/llvm-rust/lib/libLTO.so.*"
|
||||
FILES:${PN}-staticdev =+ "${libdir}/llvm-rust/*/*.a"
|
||||
FILES:${PN} += "${libdir}/libLLVM*.so.* ${libdir}/llvm-rust/lib/*.so.* ${libdir}/llvm-rust/bin"
|
||||
FILES:${PN}-dev += "${datadir}/llvm ${libdir}/llvm-rust/lib/*.so ${libdir}/llvm-rust/include ${libdir}/llvm-rust/share ${libdir}/llvm-rust/lib/cmake"
|
||||
|
||||
BBCLASSEXTEND = "native nativesdk"
|
||||
Reference in New Issue
Block a user