Message ID | 20250424-clang-merge-v1-2-5a492a8461aa@gmail.com |
---|---|
State | New |
Headers | show |
Series | clang-merge: Bring clang recipes from meta-clang | expand |
On Thu, Apr 24, 2025 at 12:20:36AM -0700, Khem Raj wrote: > Signed-off-by: Khem Raj <raj.khem@gmail.com> > --- > ...mitter-sort-ClassInfo-lists-by-name-as-we.patch | 31 --- > ...g-remove-LLVM_LDFLAGS-from-ldflags-output.patch | 34 --- > .../0007-llvm-allow-env-override-of-exe-path.patch | 36 ---- > ...configure-for-packages-using-find_package.patch | 117 ----------- > meta/recipes-devtools/llvm/llvm/llvm-config | 54 ----- > .../llvm/llvm/spirv-internal-build.patch | 30 --- > .../llvm/llvm/spirv-shared-library.patch | 25 --- > meta/recipes-devtools/llvm/llvm_20.1.2.bb | 233 --------------------- > 8 files changed, 560 deletions(-) Could you please squash this into the patch #6? It would be easier to review it then. > > diff --git a/meta/recipes-devtools/llvm/llvm/0001-AsmMatcherEmitter-sort-ClassInfo-lists-by-name-as-we.patch b/meta/recipes-devtools/llvm/llvm/0001-AsmMatcherEmitter-sort-ClassInfo-lists-by-name-as-we.patch > deleted file mode 100644 > index f71c5d4bd4748b286b4354fd5ca7c686512da8ac..0000000000000000000000000000000000000000 > --- a/meta/recipes-devtools/llvm/llvm/0001-AsmMatcherEmitter-sort-ClassInfo-lists-by-name-as-we.patch > +++ /dev/null > @@ -1,31 +0,0 @@ > -From 001d56983078842c5aa2a1786b84dc429bd46abd 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 7684387d8..d225a3b6d 100644 > ---- a/llvm/utils/TableGen/AsmMatcherEmitter.cpp > -+++ b/llvm/utils/TableGen/AsmMatcherEmitter.cpp > -@@ -361,7 +361,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; > - } > - }; > - > diff --git a/meta/recipes-devtools/llvm/llvm/0001-llvm-config-remove-LLVM_LDFLAGS-from-ldflags-output.patch b/meta/recipes-devtools/llvm/llvm/0001-llvm-config-remove-LLVM_LDFLAGS-from-ldflags-output.patch > deleted file mode 100644 > index 2320399d5f7de44cf9cc4269d180c097c1b4a616..0000000000000000000000000000000000000000 > --- a/meta/recipes-devtools/llvm/llvm/0001-llvm-config-remove-LLVM_LDFLAGS-from-ldflags-output.patch > +++ /dev/null > @@ -1,34 +0,0 @@ > -From caff2482f786dd7fd5f1f46f2667f7ed847cb8f8 Mon Sep 17 00:00:00 2001 > -From: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> > -Date: Wed, 2 Apr 2025 17:05:17 +0300 > -Subject: [PATCH] llvm-config: remove LLVM_LDFLAGS from --ldflags output > - > -On native OE builds the LLVM_LDFLAGS gets a lot of extra flags which may > -depend on exact build dir and as such be inappropriate to binaries > -shared through sstate-cache. It is not possible to override this > -behaviour in llvm-config since crossscripts are not being used for > -native builds. As a OE-specific modification ignore LLVM_LDFLAGS for > -native builds. > - > -Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> > -Upstream-Status: Inappropriate [OE-Specific] > ---- > - llvm/tools/llvm-config/llvm-config.cpp | 2 +- > - 1 file changed, 1 insertion(+), 1 deletion(-) > - > -diff --git a/llvm/tools/llvm-config/llvm-config.cpp b/llvm/tools/llvm-config/llvm-config.cpp > -index d5b76b1bb6c1..29f7c2eaa419 100644 > ---- a/llvm/tools/llvm-config/llvm-config.cpp > -+++ b/llvm/tools/llvm-config/llvm-config.cpp > -@@ -529,7 +529,7 @@ int main(int argc, char **argv) { > - OS << ActiveIncludeOption << ' ' << LLVM_CXXFLAGS << '\n'; > - } else if (Arg == "--ldflags") { > - OS << ((HostTriple.isWindowsMSVCEnvironment()) ? "-LIBPATH:" : "-L") > -- << ActiveLibDir << ' ' << LLVM_LDFLAGS << '\n'; > -+ << ActiveLibDir << '\n'; > - } else if (Arg == "--system-libs") { > - PrintSystemLibs = true; > - } else if (Arg == "--libs") { > --- > -2.39.5 > - > diff --git a/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch b/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch > deleted file mode 100644 > index f1ab0054640c56f78b13ec2fdd1870fc207472be..0000000000000000000000000000000000000000 > --- a/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch > +++ /dev/null > @@ -1,36 +0,0 @@ > -From 3eb1eefed6fc654d19ab97bbc748454c22a29009 Mon Sep 17 00:00:00 2001 > -From: Martin Kelly <mkelly@xevo.com> > -Date: Fri, 19 May 2017 00:22:57 -0700 > -Subject: [PATCH] llvm: allow env override of exe and libdir 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-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(+) > - > -diff --git a/llvm/tools/llvm-config/llvm-config.cpp b/llvm/tools/llvm-config/llvm-config.cpp > -index d5b76b1bb..6c28c34bc 100644 > ---- a/llvm/tools/llvm-config/llvm-config.cpp > -+++ b/llvm/tools/llvm-config/llvm-config.cpp > -@@ -246,6 +246,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; > diff --git a/meta/recipes-devtools/llvm/llvm/0014-cmake-Fix-configure-for-packages-using-find_package.patch b/meta/recipes-devtools/llvm/llvm/0014-cmake-Fix-configure-for-packages-using-find_package.patch > deleted file mode 100644 > index 94c056ab8e0abcdf4b96fc3c9bf22842018941e8..0000000000000000000000000000000000000000 > --- a/meta/recipes-devtools/llvm/llvm/0014-cmake-Fix-configure-for-packages-using-find_package.patch > +++ /dev/null > @@ -1,117 +0,0 @@ > -From 93141cee493022d9f39dbd1f5f0bb0a1110ac829 Mon Sep 17 00:00:00 2001 > -From: Ovidiu Panait <ovidiu.panait@windriver.com> > -Date: Fri, 31 Jan 2020 10:56:11 +0200 > -Subject: [PATCH] cmake: Fix configure for packages using find_package() > - > -Currently, when a package (i.e. bcc [https://github.com/iovisor/bcc.git]) > -that depends on LLVM/Clang tries to run cmake find_package() during > -do_configure, it will fail with a similar error: > - > -| The imported target "llvm-tblgen" references the file > -| ".../recipe-sysroot/usr/bin/llvm-tblgen" > -| > -| but this file does not exist. Possible reasons include: > -| * The file was deleted, renamed, or moved to another location. > -| * An install or uninstall procedure did not complete successfully. > -| * The installation package was faulty and contained > -| ".../recipe-sysroot/usr/lib/cmake/LLVMExports.cmake" > -| but not all the files it references. > - > -This is due to the fact that currently the cmake scripts look for target > -binaries in sysroot. Work around this by not exporting the target binaries in > -Exports-* cmake files. > - > -Upstream-Status: Inappropriate [oe-specific] > - > -Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com> > ---- > - clang/cmake/modules/AddClang.cmake | 2 -- > - llvm/cmake/modules/AddLLVM.cmake | 9 ++------- > - llvm/cmake/modules/TableGen.cmake | 6 ------ > - 3 files changed, 2 insertions(+), 15 deletions(-) > - > -diff --git a/clang/cmake/modules/AddClang.cmake b/clang/cmake/modules/AddClang.cmake > -index cdc8bd5cd503..5faa9117a30f 100644 > ---- a/clang/cmake/modules/AddClang.cmake > -+++ b/clang/cmake/modules/AddClang.cmake > -@@ -182,7 +182,6 @@ macro(add_clang_tool name) > - if (CLANG_BUILD_TOOLS) > - get_target_export_arg(${name} Clang export_to_clangtargets) > - install(TARGETS ${name} > -- ${export_to_clangtargets} > - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" > - COMPONENT ${name}) > - > -@@ -191,7 +190,6 @@ macro(add_clang_tool name) > - DEPENDS ${name} > - COMPONENT ${name}) > - endif() > -- set_property(GLOBAL APPEND PROPERTY CLANG_EXPORTS ${name}) > - endif() > - endif() > - set_target_properties(${name} PROPERTIES XCODE_GENERATE_SCHEME ON) > -diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake > -index d3e9377c8d2f..fe22d6f2b35a 100644 > ---- a/llvm/cmake/modules/AddLLVM.cmake > -+++ b/llvm/cmake/modules/AddLLVM.cmake > -@@ -1492,7 +1492,6 @@ macro(llvm_add_tool project name) > - if( LLVM_BUILD_TOOLS ) > - get_target_export_arg(${name} ${project} export_to_llvmexports) > - install(TARGETS ${name} > -- ${export_to_llvmexports} > - RUNTIME DESTINATION ${${project}_TOOLS_INSTALL_DIR} > - COMPONENT ${name}) > - > -@@ -1503,10 +1502,8 @@ macro(llvm_add_tool project name) > - endif() > - endif() > - endif() > -- if( LLVM_BUILD_TOOLS ) > -- string(TOUPPER "${project}" project_upper) > -- set_property(GLOBAL APPEND PROPERTY ${project_upper}_EXPORTS ${name}) > -- endif() > -+ string(TOUPPER "${project}" project_upper) > -+ set_target_properties(${name} PROPERTIES FOLDER "Tools") > - endif() > - get_subproject_title(subproject_title) > - set_target_properties(${name} PROPERTIES FOLDER "${subproject_title}/Tools") > -@@ -1556,7 +1553,6 @@ macro(add_llvm_utility name) > - if (LLVM_INSTALL_UTILS AND LLVM_BUILD_UTILS) > - get_target_export_arg(${name} LLVM export_to_llvmexports) > - install(TARGETS ${name} > -- ${export_to_llvmexports} > - RUNTIME DESTINATION ${LLVM_UTILS_INSTALL_DIR} > - COMPONENT ${name}) > - > -@@ -1565,7 +1561,6 @@ macro(add_llvm_utility name) > - DEPENDS ${name} > - COMPONENT ${name}) > - endif() > -- set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name}) > - elseif(LLVM_BUILD_UTILS) > - set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS_BUILDTREE_ONLY ${name}) > - endif() > -diff --git a/llvm/cmake/modules/TableGen.cmake b/llvm/cmake/modules/TableGen.cmake > -index ffcc718b4777..a76f28e74b86 100644 > ---- a/llvm/cmake/modules/TableGen.cmake > -+++ b/llvm/cmake/modules/TableGen.cmake > -@@ -232,12 +232,7 @@ macro(add_tablegen target project) > - > - if (ADD_TABLEGEN_DESTINATION AND NOT LLVM_INSTALL_TOOLCHAIN_ONLY AND > - (LLVM_BUILD_UTILS OR ${target} IN_LIST LLVM_DISTRIBUTION_COMPONENTS)) > -- set(export_arg) > -- if(ADD_TABLEGEN_EXPORT) > -- get_target_export_arg(${target} ${ADD_TABLEGEN_EXPORT} export_arg) > -- endif() > - install(TARGETS ${target} > -- ${export_arg} > - COMPONENT ${target} > - RUNTIME DESTINATION "${ADD_TABLEGEN_DESTINATION}") > - if(NOT LLVM_ENABLE_IDE) > -@@ -248,6 +243,5 @@ macro(add_tablegen target project) > - endif() > - if(ADD_TABLEGEN_EXPORT) > - string(TOUPPER ${ADD_TABLEGEN_EXPORT} export_upper) > -- set_property(GLOBAL APPEND PROPERTY ${export_upper}_EXPORTS ${target}) > - endif() > - endmacro() > diff --git a/meta/recipes-devtools/llvm/llvm/llvm-config b/meta/recipes-devtools/llvm/llvm/llvm-config > deleted file mode 100644 > index 6cf3e7578fa96f2893f73077bece4db45f29547c..0000000000000000000000000000000000000000 > --- a/meta/recipes-devtools/llvm/llvm/llvm-config > +++ /dev/null > @@ -1,54 +0,0 @@ > -#!/bin/bash > -# > -# Copyright OpenEmbedded Contributors > -# > -# SPDX-License-Identifier: MIT > -# > -# Wrap llvm-config since the native llvm-config will remap some values correctly > -# if placed in the target sysroot but for flags, it would provide the native ones. > -# Provide ours from the environment instead. > - > -NEXT_LLVM_CONFIG="$(which -a llvm-config | sed -n 2p)" > -if [[ $# == 0 ]]; then > - exec "$NEXT_LLVM_CONFIG" > -fi > - > -remain="" > -output="" > -for arg in "$@"; do > - case "$arg" in > - --cppflags) > - output="${output} ${CPPFLAGS}" > - ;; > - --cflags) > - output="${output} ${CFLAGS}" > - ;; > - --cxxflags) > - output="${output} ${CXXFLAGS}" > - ;; > - --ldflags) > - output="${output} ${LDFLAGS}" > - ;; > - --shared-mode) > - output="${output} shared" > - ;; > - --libs) > - output="${output} -lLLVM" > - ;; > - --libdir) > - output="${output} ${libdir}" > - ;; > - --link-shared) > - break > - ;; > - *) > - remain="${remain} ${arg}" > - ;; > - esac > -done > - > -if [ "${remain}" != "" ]; then > - output="${output} "$("$NEXT_LLVM_CONFIG" ${remain}) > -fi > - > -echo "${output}" > diff --git a/meta/recipes-devtools/llvm/llvm/spirv-internal-build.patch b/meta/recipes-devtools/llvm/llvm/spirv-internal-build.patch > deleted file mode 100644 > index 555d40f4fb07342cc204c7c578662688605b2cb1..0000000000000000000000000000000000000000 > --- a/meta/recipes-devtools/llvm/llvm/spirv-internal-build.patch > +++ /dev/null > @@ -1,30 +0,0 @@ > -From e94e529aefb28b65165e978daa2bfd89867ee8d0 Mon Sep 17 00:00:00 2001 > -From: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> > -Date: Fri, 21 Mar 2025 17:17:52 +0200 > -Subject: [PATCH] SPIRV-LLVM-Translator: fix handling of built-in SPIRV targer > - > -If the SPIRV-LLVM-Translator is being built together with the LLVM, set > -the defines declaring whether SPIRV target is also included into the > -LLVM library or not. Otherwise llvm-spirv execution fails because > -spirv-ext option is registered twice. > - > -Upstream-Status: Pending [will be submitted upstream after internal clearance] > -Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> > - > -Index: llvm-project-20.1.0.src/llvm/projects/SPIRV-LLVM-Translator/CMakeLists.txt > -=================================================================== > ---- llvm-project-20.1.0.src.orig/llvm/projects/SPIRV-LLVM-Translator/CMakeLists.txt > -+++ llvm-project-20.1.0.src/llvm/projects/SPIRV-LLVM-Translator/CMakeLists.txt > -@@ -116,6 +116,12 @@ if(LLVM_SPIRV_BUILD_EXTERNAL) > - set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache) > - set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache) > - endif() > -+else() > -+ is_llvm_target_library("SPIRV" spirv_present_result INCLUDED_TARGETS) > -+ if(spirv_present_result) > -+ set(SPIRV_BACKEND_FOUND TRUE) > -+ add_compile_definitions(LLVM_SPIRV_BACKEND_TARGET_PRESENT) > -+ endif() > - endif() > - > - set(LLVM_SPIRV_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/include) > diff --git a/meta/recipes-devtools/llvm/llvm/spirv-shared-library.patch b/meta/recipes-devtools/llvm/llvm/spirv-shared-library.patch > deleted file mode 100644 > index edc595d57699a682e62f3b3b1cf999e409060226..0000000000000000000000000000000000000000 > --- a/meta/recipes-devtools/llvm/llvm/spirv-shared-library.patch > +++ /dev/null > @@ -1,25 +0,0 @@ > -From e94e529aefb28b65165e978daa2bfd89867ee8d0 Mon Sep 17 00:00:00 2001 > -From: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> > -Date: Thu, 9 Apr 2025 15:20:32 +0200 > -Subject: [PATCH] SPIRV-LLVM-Translator: build shared library > - > -By default SPIRV-LLVM-Translator builds only a static version of the library. > -Unfortunately this might result in linking erros when uninative is in play, if > -libLLVMSPIRV uses symbols which are provided only by the uninative libc and are > -not provided by the host libc. > - > -Upstream-Status: Inappropriate [OE-Specific] > -Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> > - > -Index: llvm-project-20.1.1.src/llvm/projects/SPIRV-LLVM-Translator/lib/SPIRV/CMakeLists.txt > -=================================================================== > ---- llvm-project-20.1.1.src.orig/llvm/projects/SPIRV-LLVM-Translator/lib/SPIRV/CMakeLists.txt > -+++ llvm-project-20.1.1.src/llvm/projects/SPIRV-LLVM-Translator/lib/SPIRV/CMakeLists.txt > -@@ -42,6 +42,7 @@ set(SRC_LIST > - ) > - add_llvm_library(LLVMSPIRVLib > - ${SRC_LIST} > -+ SHARED > - LINK_COMPONENTS > - Analysis > - BitWriter > diff --git a/meta/recipes-devtools/llvm/llvm_20.1.2.bb b/meta/recipes-devtools/llvm/llvm_20.1.2.bb > deleted file mode 100644 > index 98855fa4c14d1f5eef6dd946a64927d778b99e3d..0000000000000000000000000000000000000000 > --- a/meta/recipes-devtools/llvm/llvm_20.1.2.bb > +++ /dev/null > @@ -1,233 +0,0 @@ > -# Copyright (C) 2017 Khem Raj <raj.khem@gmail.com> > -# Released under the MIT license (see COPYING.MIT for the terms) > - > -SUMMARY = "The LLVM Compiler Infrastructure" > -HOMEPAGE = "http://llvm.org" > -LICENSE = "Apache-2.0-with-LLVM-exception" > -SECTION = "devel" > - > -LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=8a15a0759ef07f2682d2ba4b893c9afe" > - > -DEPENDS = "libffi libxml2 zlib zstd libedit ninja-native llvm-native" > - > -RDEPENDS:${PN}:append:class-target = " ncurses-terminfo" > - > -inherit cmake pkgconfig > -# could be 'rcX' or 'git' or empty ( for release ) > -VER_SUFFIX = "" > - > -PV .= "${VER_SUFFIX}" > - > -MAJOR_VERSION = "${@oe.utils.trim_version("${PV}", 1)}" > -MAJ_MIN_VERSION = "${@oe.utils.trim_version("${PV}", 2)}" > - > -LLVM_RELEASE = "${PV}" > - > -SRCREV_spirv = "68edc9d3d10ff6ec6353803a1bc60a5c25e7b715" > -# pattern: llvm_branch_200, currently there are no minor releases, so, no llvm_branch_201 > -SPIRV_BRANCH = "llvm_release_${@oe.utils.trim_version('${PV}', 1).replace('.', '')}0" > - > -SRC_URI_SPIRV = " \ > - git://github.com/KhronosGroup/SPIRV-LLVM-Translator;protocol=https;name=spirv;branch=${SPIRV_BRANCH};destsuffix=llvm-project-${PV}.src/llvm/projects/SPIRV-LLVM-Translator \ > - file://spirv-internal-build.patch \ > -" > - > -SRC_URI_SPIRV:append:class-native = " \ > - file://spirv-shared-library.patch \ > -" > - > -SRC_URI = "https://github.com/llvm/llvm-project/releases/download/llvmorg-${PV}/llvm-project-${PV}.src.tar.xz \ > - file://0007-llvm-allow-env-override-of-exe-path.patch \ > - file://0001-AsmMatcherEmitter-sort-ClassInfo-lists-by-name-as-we.patch \ > - file://0014-cmake-Fix-configure-for-packages-using-find_package.patch \ > - ${@bb.utils.contains('PACKAGECONFIG', 'spirv-llvm-translator', '${SRC_URI_SPIRV}', '', d)} \ > - file://llvm-config \ > - " > -SRC_URI[sha256sum] = "f0a4a240aabc9b056142d14d5478bb6d962aeac549cbd75b809f5499240a8b38" > -UPSTREAM_CHECK_URI = "https://github.com/llvm/llvm-project" > -UPSTREAM_CHECK_REGEX = "llvmorg-(?P<pver>\d+(\.\d+)+)" > - > -SRC_URI:append:class-native = " file://0001-llvm-config-remove-LLVM_LDFLAGS-from-ldflags-output.patch" > - > -S = "${WORKDIR}/llvm-project-${PV}.src" > - > -OECMAKE_SOURCEPATH = "${S}/llvm" > - > -LLVM_INSTALL_DIR = "${WORKDIR}/llvm-install" > - > -PACKAGECONFIG ??= "libllvm libclc spirv-llvm-translator" > -# if optviewer OFF, force the modules to be not found or the ones on the host would be found > -PACKAGECONFIG[optviewer] = ",-DPY_PYGMENTS_FOUND=OFF -DPY_PYGMENTS_LEXERS_C_CPP_FOUND=OFF -DPY_YAML_FOUND=OFF,python3-pygments python3-pyyaml,python3-pygments python3-pyyaml" > -PACKAGECONFIG[libllvm] = "" > -PACKAGECONFIG[libclc] = "" > -PACKAGECONFIG[spirv-llvm-translator] = "-DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=${STAGING_INCDIR}/.. ,,spirv-tools-native spirv-headers" > - > -# > -# Default to build all OE-Core supported target arches (user overridable). > -# > -LLVM_TARGETS ?= "AMDGPU;AArch64;ARM;BPF;Mips;PowerPC;RISCV;X86;LoongArch;NVPTX;SPIRV" > - > -ARM_INSTRUCTION_SET:armv5 = "arm" > -ARM_INSTRUCTION_SET:armv4t = "arm" > - > -LLVM_PROJECTS_CLANG = "${@bb.utils.contains_any('PACKAGECONFIG', 'libclc spirv-llvm-translator', 'clang', '', d)}" > -LLVM_PROJECTS_CLC = "${@bb.utils.contains('PACKAGECONFIG', 'libclc', ';libclc', '', d)}" > -LLVM_PROJECTS = "${LLVM_PROJECTS_CLANG}${LLVM_PROJECTS_CLC}" > - > -EXTRA_OECMAKE += "-DLLVM_ENABLE_ASSERTIONS=OFF \ > - -DLLVM_ENABLE_EXPENSIVE_CHECKS=OFF \ > - -DLLVM_ENABLE_PIC=ON \ > - -DLLVM_BINDINGS_LIST='' \ > - -DLLVM_LINK_LLVM_DYLIB=ON \ > - -DLLVM_ENABLE_FFI=ON \ > - -DLLVM_ENABLE_RTTI=ON \ > - -DFFI_INCLUDE_DIR=$(pkg-config --variable=includedir libffi) \ > - -DLLVM_OPTIMIZED_TABLEGEN=ON \ > - -DLLVM_TARGETS_TO_BUILD='${LLVM_TARGETS}' \ > - -DLLVM_VERSION_SUFFIX='${VER_SUFFIX}' \ > - -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON \ > - -DCMAKE_BUILD_TYPE=Release \ > - -DLLVM_ENABLE_PROJECTS='${LLVM_PROJECTS}' \ > - " > - > -EXTRA_OECMAKE:append:class-target = "\ > - -DCMAKE_CROSSCOMPILING:BOOL=ON \ > - -DLLVM_HOST_TRIPLE=${TARGET_SYS} \ > - -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen${PV} \ > - -DLLVM_CONFIG_PATH=${STAGING_BINDIR_NATIVE}/llvm-config${PV} \ > - -DLLVM_NATIVE_TOOL_DIR=${STAGING_BINDIR_NATIVE} \ > - " > - > -EXTRA_OECMAKE:append:class-nativesdk = "\ > - -DCMAKE_CROSSCOMPILING:BOOL=ON \ > - -DLLVM_HOST_TRIPLE=${SDK_SYS} \ > - -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen${PV} \ > - -DLLVM_CONFIG_PATH=${STAGING_BINDIR_NATIVE}/llvm-config${PV} \ > - -DLLVM_NATIVE_TOOL_DIR=${STAGING_BINDIR_NATIVE} \ > - " > - > -# patch out build host paths for reproducibility > -do_compile:prepend:class-target() { > - sed -i -e "s,${WORKDIR},,g" ${B}/tools/llvm-config/BuildVariables.inc > -} > - > -do_compile:prepend:class-nativesdk() { > - sed -i -e "s,${WORKDIR},,g" ${B}/tools/llvm-config/BuildVariables.inc > -} > - > -do_compile() { > - if ${@bb.utils.contains('PACKAGECONFIG', 'libllvm', 'true', 'false', d)}; then > - ninja -v ${PARALLEL_MAKE} > - else > - ninja -v ${PARALLEL_MAKE} llvm-config llvm-tblgen > - fi > -} > - > -do_install() { > - if ${@bb.utils.contains('PACKAGECONFIG', 'libllvm', 'true', 'false', d)}; then > - DESTDIR=${D} ninja -v install > - > - # llvm harcodes usr/lib as install path, so this corrects it to actual libdir > - mv -T -n ${D}/${prefix}/lib ${D}/${libdir} || true > - > - # Remove opt-viewer: https://llvm.org/docs/Remarks.html > - rm -rf ${D}${datadir}/opt-viewer > - > - # reproducibility > - sed -i -e 's,${WORKDIR},,g' ${D}/${libdir}/cmake/llvm/LLVMConfig.cmake > - fi > - > - # Remove clang bits from target packages, we are not providing it for the system > - if ${@bb.utils.contains_any('PACKAGECONFIG', 'libclc spirv-llvm-translator', 'true', 'false', d)} && > - [ "${CLASSOVERRIDE}" != "class-native" ] ; then > - rm -f ${D}${bindir}/clang* > - rm -fr ${D}${libdir}/clang > - rm -fr ${D}${datadir}/clang > - > - rm -f ${D}${bindir}/scan* > - rm -fr ${D}${libdir}/libscanbuild > - rm -fr ${D}${datadir}/scan-build > - rm -fr ${D}${datadir}/scan-view > - > - rm -fr ${D}${libdir}/libear > - fi > - > - # Try to clean up datadir if it is empty, but don't fail if there are > - # libclc files there > - rmdir ${D}${datadir} || true > -} > - > -do_install:append:class-native() { > - install -D -m 0755 ${B}/bin/llvm-tblgen ${D}${bindir}/llvm-tblgen${PV} > - install -D -m 0755 ${B}/bin/llvm-min-tblgen ${D}${bindir}/llvm-min-tblgen > - install -D -m 0755 ${B}/bin/llvm-config ${D}${bindir}/llvm-config${PV} > - ln -sf llvm-config${PV} ${D}${bindir}/llvm-config > - > - if ${@bb.utils.contains('PACKAGECONFIG', 'libclc', 'true', 'false', d)} ; then > - install -D -m 0755 ${B}/bin/prepare_builtins ${D}${bindir}/prepare_builtins > - fi > -} > - > -SYSROOT_PREPROCESS_FUNCS:append:class-target = " llvm_sysroot_preprocess" > -SYSROOT_PREPROCESS_FUNCS:append:class-nativesdk = " llvm_sysroot_preprocess" > - > -llvm_sysroot_preprocess() { > - install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/ > - install -m 0755 ${UNPACKDIR}/llvm-config ${SYSROOT_DESTDIR}${bindir_crossscripts}/ > - ln -sf llvm-config ${SYSROOT_DESTDIR}${bindir_crossscripts}/llvm-config${PV} > -} > - > -PACKAGES =+ "${PN}-bugpointpasses ${PN}-llvmhello ${PN}-libllvm ${PN}-liboptremarks ${PN}-liblto ${PN}-clc ${PN}-spirv" > -PROVIDES = "${@bb.utils.filter('PACKAGECONFIG', 'libclc spirv-llvm-translator', d)}" > - > -RRECOMMENDS:${PN}-dev += "${PN}-bugpointpasses ${PN}-llvmhello ${PN}-liboptremarks" > -RPROVIDES:${PN}-clc = "${@bb.utils.filter('PACKAGECONFIG', 'libclc', d)}" > -RPROVIDES:${PN}-spirv = "${@bb.utils.filter('PACKAGECONFIG', 'spirv-llvm-translator', d)}" > - > -FILES:${PN}-bugpointpasses = "\ > - ${libdir}/BugpointPasses.so \ > -" > - > -FILES:${PN}-libllvm = "\ > - ${libdir}/libLLVM-${MAJOR_VERSION}.so \ > - ${libdir}/libLLVM.so.${MAJ_MIN_VERSION} \ > -" > - > -FILES:${PN}-liblto += "\ > - ${libdir}/libLTO.so.* \ > -" > - > -FILES:${PN}-liboptremarks += "\ > - ${libdir}/libRemarks.so.* \ > -" > - > -FILES:${PN}-llvmhello = "\ > - ${libdir}/LLVMHello.so \ > -" > - > -FILES:${PN}-dev += " \ > - ${libdir}/llvm-config \ > - ${libdir}/libRemarks.so \ > - ${libdir}/libLLVM-${PV}.so \ > -" > - > -FILES:${PN}-staticdev += "\ > - ${libdir}/*.a \ > -" > - > -FILES:${PN}-clc += "${datadir}/clc" > - > -FILES:${PN}-spirv = " \ > - ${bindir}/llvm-spirv \ > - ${includedir}/LLVMSPIRVLib \ > - ${libdir}/pkgconfig/LLVMSPIRVLib.pc \ > - ${libdir}/libLLVMSPIRV* \ > -" > - > -INSANE_SKIP:${PN}-libllvm += "dev-so" > - > -# SPIRV-LLVM-Translator provides only static libraries, they are included into > -# the llvm-spirv package. > -INSANE_SKIP:${PN}-spirv += "staticdev" > - > -BBCLASSEXTEND = "native nativesdk" > > -- > 2.49.0 > >
On 4/24/25 2:05 AM, Dmitry Baryshkov wrote: > On Thu, Apr 24, 2025 at 12:20:36AM -0700, Khem Raj wrote: >> Signed-off-by: Khem Raj <raj.khem@gmail.com> >> --- >> ...mitter-sort-ClassInfo-lists-by-name-as-we.patch | 31 --- >> ...g-remove-LLVM_LDFLAGS-from-ldflags-output.patch | 34 --- >> .../0007-llvm-allow-env-override-of-exe-path.patch | 36 ---- >> ...configure-for-packages-using-find_package.patch | 117 ----------- >> meta/recipes-devtools/llvm/llvm/llvm-config | 54 ----- >> .../llvm/llvm/spirv-internal-build.patch | 30 --- >> .../llvm/llvm/spirv-shared-library.patch | 25 --- >> meta/recipes-devtools/llvm/llvm_20.1.2.bb | 233 --------------------- >> 8 files changed, 560 deletions(-) > > Could you please squash this into the patch #6? It would be easier to > review it then. I thought of keeping them separate for rebasing reasons. But I can merge them together in v2 > >> >> diff --git a/meta/recipes-devtools/llvm/llvm/0001-AsmMatcherEmitter-sort-ClassInfo-lists-by-name-as-we.patch b/meta/recipes-devtools/llvm/llvm/0001-AsmMatcherEmitter-sort-ClassInfo-lists-by-name-as-we.patch >> deleted file mode 100644 >> index f71c5d4bd4748b286b4354fd5ca7c686512da8ac..0000000000000000000000000000000000000000 >> --- a/meta/recipes-devtools/llvm/llvm/0001-AsmMatcherEmitter-sort-ClassInfo-lists-by-name-as-we.patch >> +++ /dev/null >> @@ -1,31 +0,0 @@ >> -From 001d56983078842c5aa2a1786b84dc429bd46abd 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 7684387d8..d225a3b6d 100644 >> ---- a/llvm/utils/TableGen/AsmMatcherEmitter.cpp >> -+++ b/llvm/utils/TableGen/AsmMatcherEmitter.cpp >> -@@ -361,7 +361,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; >> - } >> - }; >> - >> diff --git a/meta/recipes-devtools/llvm/llvm/0001-llvm-config-remove-LLVM_LDFLAGS-from-ldflags-output.patch b/meta/recipes-devtools/llvm/llvm/0001-llvm-config-remove-LLVM_LDFLAGS-from-ldflags-output.patch >> deleted file mode 100644 >> index 2320399d5f7de44cf9cc4269d180c097c1b4a616..0000000000000000000000000000000000000000 >> --- a/meta/recipes-devtools/llvm/llvm/0001-llvm-config-remove-LLVM_LDFLAGS-from-ldflags-output.patch >> +++ /dev/null >> @@ -1,34 +0,0 @@ >> -From caff2482f786dd7fd5f1f46f2667f7ed847cb8f8 Mon Sep 17 00:00:00 2001 >> -From: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> >> -Date: Wed, 2 Apr 2025 17:05:17 +0300 >> -Subject: [PATCH] llvm-config: remove LLVM_LDFLAGS from --ldflags output >> - >> -On native OE builds the LLVM_LDFLAGS gets a lot of extra flags which may >> -depend on exact build dir and as such be inappropriate to binaries >> -shared through sstate-cache. It is not possible to override this >> -behaviour in llvm-config since crossscripts are not being used for >> -native builds. As a OE-specific modification ignore LLVM_LDFLAGS for >> -native builds. >> - >> -Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> >> -Upstream-Status: Inappropriate [OE-Specific] >> ---- >> - llvm/tools/llvm-config/llvm-config.cpp | 2 +- >> - 1 file changed, 1 insertion(+), 1 deletion(-) >> - >> -diff --git a/llvm/tools/llvm-config/llvm-config.cpp b/llvm/tools/llvm-config/llvm-config.cpp >> -index d5b76b1bb6c1..29f7c2eaa419 100644 >> ---- a/llvm/tools/llvm-config/llvm-config.cpp >> -+++ b/llvm/tools/llvm-config/llvm-config.cpp >> -@@ -529,7 +529,7 @@ int main(int argc, char **argv) { >> - OS << ActiveIncludeOption << ' ' << LLVM_CXXFLAGS << '\n'; >> - } else if (Arg == "--ldflags") { >> - OS << ((HostTriple.isWindowsMSVCEnvironment()) ? "-LIBPATH:" : "-L") >> -- << ActiveLibDir << ' ' << LLVM_LDFLAGS << '\n'; >> -+ << ActiveLibDir << '\n'; >> - } else if (Arg == "--system-libs") { >> - PrintSystemLibs = true; >> - } else if (Arg == "--libs") { >> --- >> -2.39.5 >> - >> diff --git a/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch b/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch >> deleted file mode 100644 >> index f1ab0054640c56f78b13ec2fdd1870fc207472be..0000000000000000000000000000000000000000 >> --- a/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch >> +++ /dev/null >> @@ -1,36 +0,0 @@ >> -From 3eb1eefed6fc654d19ab97bbc748454c22a29009 Mon Sep 17 00:00:00 2001 >> -From: Martin Kelly <mkelly@xevo.com> >> -Date: Fri, 19 May 2017 00:22:57 -0700 >> -Subject: [PATCH] llvm: allow env override of exe and libdir 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-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(+) >> - >> -diff --git a/llvm/tools/llvm-config/llvm-config.cpp b/llvm/tools/llvm-config/llvm-config.cpp >> -index d5b76b1bb..6c28c34bc 100644 >> ---- a/llvm/tools/llvm-config/llvm-config.cpp >> -+++ b/llvm/tools/llvm-config/llvm-config.cpp >> -@@ -246,6 +246,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; >> diff --git a/meta/recipes-devtools/llvm/llvm/0014-cmake-Fix-configure-for-packages-using-find_package.patch b/meta/recipes-devtools/llvm/llvm/0014-cmake-Fix-configure-for-packages-using-find_package.patch >> deleted file mode 100644 >> index 94c056ab8e0abcdf4b96fc3c9bf22842018941e8..0000000000000000000000000000000000000000 >> --- a/meta/recipes-devtools/llvm/llvm/0014-cmake-Fix-configure-for-packages-using-find_package.patch >> +++ /dev/null >> @@ -1,117 +0,0 @@ >> -From 93141cee493022d9f39dbd1f5f0bb0a1110ac829 Mon Sep 17 00:00:00 2001 >> -From: Ovidiu Panait <ovidiu.panait@windriver.com> >> -Date: Fri, 31 Jan 2020 10:56:11 +0200 >> -Subject: [PATCH] cmake: Fix configure for packages using find_package() >> - >> -Currently, when a package (i.e. bcc [https://github.com/iovisor/bcc.git]) >> -that depends on LLVM/Clang tries to run cmake find_package() during >> -do_configure, it will fail with a similar error: >> - >> -| The imported target "llvm-tblgen" references the file >> -| ".../recipe-sysroot/usr/bin/llvm-tblgen" >> -| >> -| but this file does not exist. Possible reasons include: >> -| * The file was deleted, renamed, or moved to another location. >> -| * An install or uninstall procedure did not complete successfully. >> -| * The installation package was faulty and contained >> -| ".../recipe-sysroot/usr/lib/cmake/LLVMExports.cmake" >> -| but not all the files it references. >> - >> -This is due to the fact that currently the cmake scripts look for target >> -binaries in sysroot. Work around this by not exporting the target binaries in >> -Exports-* cmake files. >> - >> -Upstream-Status: Inappropriate [oe-specific] >> - >> -Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com> >> ---- >> - clang/cmake/modules/AddClang.cmake | 2 -- >> - llvm/cmake/modules/AddLLVM.cmake | 9 ++------- >> - llvm/cmake/modules/TableGen.cmake | 6 ------ >> - 3 files changed, 2 insertions(+), 15 deletions(-) >> - >> -diff --git a/clang/cmake/modules/AddClang.cmake b/clang/cmake/modules/AddClang.cmake >> -index cdc8bd5cd503..5faa9117a30f 100644 >> ---- a/clang/cmake/modules/AddClang.cmake >> -+++ b/clang/cmake/modules/AddClang.cmake >> -@@ -182,7 +182,6 @@ macro(add_clang_tool name) >> - if (CLANG_BUILD_TOOLS) >> - get_target_export_arg(${name} Clang export_to_clangtargets) >> - install(TARGETS ${name} >> -- ${export_to_clangtargets} >> - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" >> - COMPONENT ${name}) >> - >> -@@ -191,7 +190,6 @@ macro(add_clang_tool name) >> - DEPENDS ${name} >> - COMPONENT ${name}) >> - endif() >> -- set_property(GLOBAL APPEND PROPERTY CLANG_EXPORTS ${name}) >> - endif() >> - endif() >> - set_target_properties(${name} PROPERTIES XCODE_GENERATE_SCHEME ON) >> -diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake >> -index d3e9377c8d2f..fe22d6f2b35a 100644 >> ---- a/llvm/cmake/modules/AddLLVM.cmake >> -+++ b/llvm/cmake/modules/AddLLVM.cmake >> -@@ -1492,7 +1492,6 @@ macro(llvm_add_tool project name) >> - if( LLVM_BUILD_TOOLS ) >> - get_target_export_arg(${name} ${project} export_to_llvmexports) >> - install(TARGETS ${name} >> -- ${export_to_llvmexports} >> - RUNTIME DESTINATION ${${project}_TOOLS_INSTALL_DIR} >> - COMPONENT ${name}) >> - >> -@@ -1503,10 +1502,8 @@ macro(llvm_add_tool project name) >> - endif() >> - endif() >> - endif() >> -- if( LLVM_BUILD_TOOLS ) >> -- string(TOUPPER "${project}" project_upper) >> -- set_property(GLOBAL APPEND PROPERTY ${project_upper}_EXPORTS ${name}) >> -- endif() >> -+ string(TOUPPER "${project}" project_upper) >> -+ set_target_properties(${name} PROPERTIES FOLDER "Tools") >> - endif() >> - get_subproject_title(subproject_title) >> - set_target_properties(${name} PROPERTIES FOLDER "${subproject_title}/Tools") >> -@@ -1556,7 +1553,6 @@ macro(add_llvm_utility name) >> - if (LLVM_INSTALL_UTILS AND LLVM_BUILD_UTILS) >> - get_target_export_arg(${name} LLVM export_to_llvmexports) >> - install(TARGETS ${name} >> -- ${export_to_llvmexports} >> - RUNTIME DESTINATION ${LLVM_UTILS_INSTALL_DIR} >> - COMPONENT ${name}) >> - >> -@@ -1565,7 +1561,6 @@ macro(add_llvm_utility name) >> - DEPENDS ${name} >> - COMPONENT ${name}) >> - endif() >> -- set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name}) >> - elseif(LLVM_BUILD_UTILS) >> - set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS_BUILDTREE_ONLY ${name}) >> - endif() >> -diff --git a/llvm/cmake/modules/TableGen.cmake b/llvm/cmake/modules/TableGen.cmake >> -index ffcc718b4777..a76f28e74b86 100644 >> ---- a/llvm/cmake/modules/TableGen.cmake >> -+++ b/llvm/cmake/modules/TableGen.cmake >> -@@ -232,12 +232,7 @@ macro(add_tablegen target project) >> - >> - if (ADD_TABLEGEN_DESTINATION AND NOT LLVM_INSTALL_TOOLCHAIN_ONLY AND >> - (LLVM_BUILD_UTILS OR ${target} IN_LIST LLVM_DISTRIBUTION_COMPONENTS)) >> -- set(export_arg) >> -- if(ADD_TABLEGEN_EXPORT) >> -- get_target_export_arg(${target} ${ADD_TABLEGEN_EXPORT} export_arg) >> -- endif() >> - install(TARGETS ${target} >> -- ${export_arg} >> - COMPONENT ${target} >> - RUNTIME DESTINATION "${ADD_TABLEGEN_DESTINATION}") >> - if(NOT LLVM_ENABLE_IDE) >> -@@ -248,6 +243,5 @@ macro(add_tablegen target project) >> - endif() >> - if(ADD_TABLEGEN_EXPORT) >> - string(TOUPPER ${ADD_TABLEGEN_EXPORT} export_upper) >> -- set_property(GLOBAL APPEND PROPERTY ${export_upper}_EXPORTS ${target}) >> - endif() >> - endmacro() >> diff --git a/meta/recipes-devtools/llvm/llvm/llvm-config b/meta/recipes-devtools/llvm/llvm/llvm-config >> deleted file mode 100644 >> index 6cf3e7578fa96f2893f73077bece4db45f29547c..0000000000000000000000000000000000000000 >> --- a/meta/recipes-devtools/llvm/llvm/llvm-config >> +++ /dev/null >> @@ -1,54 +0,0 @@ >> -#!/bin/bash >> -# >> -# Copyright OpenEmbedded Contributors >> -# >> -# SPDX-License-Identifier: MIT >> -# >> -# Wrap llvm-config since the native llvm-config will remap some values correctly >> -# if placed in the target sysroot but for flags, it would provide the native ones. >> -# Provide ours from the environment instead. >> - >> -NEXT_LLVM_CONFIG="$(which -a llvm-config | sed -n 2p)" >> -if [[ $# == 0 ]]; then >> - exec "$NEXT_LLVM_CONFIG" >> -fi >> - >> -remain="" >> -output="" >> -for arg in "$@"; do >> - case "$arg" in >> - --cppflags) >> - output="${output} ${CPPFLAGS}" >> - ;; >> - --cflags) >> - output="${output} ${CFLAGS}" >> - ;; >> - --cxxflags) >> - output="${output} ${CXXFLAGS}" >> - ;; >> - --ldflags) >> - output="${output} ${LDFLAGS}" >> - ;; >> - --shared-mode) >> - output="${output} shared" >> - ;; >> - --libs) >> - output="${output} -lLLVM" >> - ;; >> - --libdir) >> - output="${output} ${libdir}" >> - ;; >> - --link-shared) >> - break >> - ;; >> - *) >> - remain="${remain} ${arg}" >> - ;; >> - esac >> -done >> - >> -if [ "${remain}" != "" ]; then >> - output="${output} "$("$NEXT_LLVM_CONFIG" ${remain}) >> -fi >> - >> -echo "${output}" >> diff --git a/meta/recipes-devtools/llvm/llvm/spirv-internal-build.patch b/meta/recipes-devtools/llvm/llvm/spirv-internal-build.patch >> deleted file mode 100644 >> index 555d40f4fb07342cc204c7c578662688605b2cb1..0000000000000000000000000000000000000000 >> --- a/meta/recipes-devtools/llvm/llvm/spirv-internal-build.patch >> +++ /dev/null >> @@ -1,30 +0,0 @@ >> -From e94e529aefb28b65165e978daa2bfd89867ee8d0 Mon Sep 17 00:00:00 2001 >> -From: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> >> -Date: Fri, 21 Mar 2025 17:17:52 +0200 >> -Subject: [PATCH] SPIRV-LLVM-Translator: fix handling of built-in SPIRV targer >> - >> -If the SPIRV-LLVM-Translator is being built together with the LLVM, set >> -the defines declaring whether SPIRV target is also included into the >> -LLVM library or not. Otherwise llvm-spirv execution fails because >> -spirv-ext option is registered twice. >> - >> -Upstream-Status: Pending [will be submitted upstream after internal clearance] >> -Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> >> - >> -Index: llvm-project-20.1.0.src/llvm/projects/SPIRV-LLVM-Translator/CMakeLists.txt >> -=================================================================== >> ---- llvm-project-20.1.0.src.orig/llvm/projects/SPIRV-LLVM-Translator/CMakeLists.txt >> -+++ llvm-project-20.1.0.src/llvm/projects/SPIRV-LLVM-Translator/CMakeLists.txt >> -@@ -116,6 +116,12 @@ if(LLVM_SPIRV_BUILD_EXTERNAL) >> - set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache) >> - set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache) >> - endif() >> -+else() >> -+ is_llvm_target_library("SPIRV" spirv_present_result INCLUDED_TARGETS) >> -+ if(spirv_present_result) >> -+ set(SPIRV_BACKEND_FOUND TRUE) >> -+ add_compile_definitions(LLVM_SPIRV_BACKEND_TARGET_PRESENT) >> -+ endif() >> - endif() >> - >> - set(LLVM_SPIRV_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/include) >> diff --git a/meta/recipes-devtools/llvm/llvm/spirv-shared-library.patch b/meta/recipes-devtools/llvm/llvm/spirv-shared-library.patch >> deleted file mode 100644 >> index edc595d57699a682e62f3b3b1cf999e409060226..0000000000000000000000000000000000000000 >> --- a/meta/recipes-devtools/llvm/llvm/spirv-shared-library.patch >> +++ /dev/null >> @@ -1,25 +0,0 @@ >> -From e94e529aefb28b65165e978daa2bfd89867ee8d0 Mon Sep 17 00:00:00 2001 >> -From: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> >> -Date: Thu, 9 Apr 2025 15:20:32 +0200 >> -Subject: [PATCH] SPIRV-LLVM-Translator: build shared library >> - >> -By default SPIRV-LLVM-Translator builds only a static version of the library. >> -Unfortunately this might result in linking erros when uninative is in play, if >> -libLLVMSPIRV uses symbols which are provided only by the uninative libc and are >> -not provided by the host libc. >> - >> -Upstream-Status: Inappropriate [OE-Specific] >> -Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> >> - >> -Index: llvm-project-20.1.1.src/llvm/projects/SPIRV-LLVM-Translator/lib/SPIRV/CMakeLists.txt >> -=================================================================== >> ---- llvm-project-20.1.1.src.orig/llvm/projects/SPIRV-LLVM-Translator/lib/SPIRV/CMakeLists.txt >> -+++ llvm-project-20.1.1.src/llvm/projects/SPIRV-LLVM-Translator/lib/SPIRV/CMakeLists.txt >> -@@ -42,6 +42,7 @@ set(SRC_LIST >> - ) >> - add_llvm_library(LLVMSPIRVLib >> - ${SRC_LIST} >> -+ SHARED >> - LINK_COMPONENTS >> - Analysis >> - BitWriter >> diff --git a/meta/recipes-devtools/llvm/llvm_20.1.2.bb b/meta/recipes-devtools/llvm/llvm_20.1.2.bb >> deleted file mode 100644 >> index 98855fa4c14d1f5eef6dd946a64927d778b99e3d..0000000000000000000000000000000000000000 >> --- a/meta/recipes-devtools/llvm/llvm_20.1.2.bb >> +++ /dev/null >> @@ -1,233 +0,0 @@ >> -# Copyright (C) 2017 Khem Raj <raj.khem@gmail.com> >> -# Released under the MIT license (see COPYING.MIT for the terms) >> - >> -SUMMARY = "The LLVM Compiler Infrastructure" >> -HOMEPAGE = "http://llvm.org" >> -LICENSE = "Apache-2.0-with-LLVM-exception" >> -SECTION = "devel" >> - >> -LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=8a15a0759ef07f2682d2ba4b893c9afe" >> - >> -DEPENDS = "libffi libxml2 zlib zstd libedit ninja-native llvm-native" >> - >> -RDEPENDS:${PN}:append:class-target = " ncurses-terminfo" >> - >> -inherit cmake pkgconfig >> -# could be 'rcX' or 'git' or empty ( for release ) >> -VER_SUFFIX = "" >> - >> -PV .= "${VER_SUFFIX}" >> - >> -MAJOR_VERSION = "${@oe.utils.trim_version("${PV}", 1)}" >> -MAJ_MIN_VERSION = "${@oe.utils.trim_version("${PV}", 2)}" >> - >> -LLVM_RELEASE = "${PV}" >> - >> -SRCREV_spirv = "68edc9d3d10ff6ec6353803a1bc60a5c25e7b715" >> -# pattern: llvm_branch_200, currently there are no minor releases, so, no llvm_branch_201 >> -SPIRV_BRANCH = "llvm_release_${@oe.utils.trim_version('${PV}', 1).replace('.', '')}0" >> - >> -SRC_URI_SPIRV = " \ >> - git://github.com/KhronosGroup/SPIRV-LLVM-Translator;protocol=https;name=spirv;branch=${SPIRV_BRANCH};destsuffix=llvm-project-${PV}.src/llvm/projects/SPIRV-LLVM-Translator \ >> - file://spirv-internal-build.patch \ >> -" >> - >> -SRC_URI_SPIRV:append:class-native = " \ >> - file://spirv-shared-library.patch \ >> -" >> - >> -SRC_URI = "https://github.com/llvm/llvm-project/releases/download/llvmorg-${PV}/llvm-project-${PV}.src.tar.xz \ >> - file://0007-llvm-allow-env-override-of-exe-path.patch \ >> - file://0001-AsmMatcherEmitter-sort-ClassInfo-lists-by-name-as-we.patch \ >> - file://0014-cmake-Fix-configure-for-packages-using-find_package.patch \ >> - ${@bb.utils.contains('PACKAGECONFIG', 'spirv-llvm-translator', '${SRC_URI_SPIRV}', '', d)} \ >> - file://llvm-config \ >> - " >> -SRC_URI[sha256sum] = "f0a4a240aabc9b056142d14d5478bb6d962aeac549cbd75b809f5499240a8b38" >> -UPSTREAM_CHECK_URI = "https://github.com/llvm/llvm-project" >> -UPSTREAM_CHECK_REGEX = "llvmorg-(?P<pver>\d+(\.\d+)+)" >> - >> -SRC_URI:append:class-native = " file://0001-llvm-config-remove-LLVM_LDFLAGS-from-ldflags-output.patch" >> - >> -S = "${WORKDIR}/llvm-project-${PV}.src" >> - >> -OECMAKE_SOURCEPATH = "${S}/llvm" >> - >> -LLVM_INSTALL_DIR = "${WORKDIR}/llvm-install" >> - >> -PACKAGECONFIG ??= "libllvm libclc spirv-llvm-translator" >> -# if optviewer OFF, force the modules to be not found or the ones on the host would be found >> -PACKAGECONFIG[optviewer] = ",-DPY_PYGMENTS_FOUND=OFF -DPY_PYGMENTS_LEXERS_C_CPP_FOUND=OFF -DPY_YAML_FOUND=OFF,python3-pygments python3-pyyaml,python3-pygments python3-pyyaml" >> -PACKAGECONFIG[libllvm] = "" >> -PACKAGECONFIG[libclc] = "" >> -PACKAGECONFIG[spirv-llvm-translator] = "-DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=${STAGING_INCDIR}/.. ,,spirv-tools-native spirv-headers" >> - >> -# >> -# Default to build all OE-Core supported target arches (user overridable). >> -# >> -LLVM_TARGETS ?= "AMDGPU;AArch64;ARM;BPF;Mips;PowerPC;RISCV;X86;LoongArch;NVPTX;SPIRV" >> - >> -ARM_INSTRUCTION_SET:armv5 = "arm" >> -ARM_INSTRUCTION_SET:armv4t = "arm" >> - >> -LLVM_PROJECTS_CLANG = "${@bb.utils.contains_any('PACKAGECONFIG', 'libclc spirv-llvm-translator', 'clang', '', d)}" >> -LLVM_PROJECTS_CLC = "${@bb.utils.contains('PACKAGECONFIG', 'libclc', ';libclc', '', d)}" >> -LLVM_PROJECTS = "${LLVM_PROJECTS_CLANG}${LLVM_PROJECTS_CLC}" >> - >> -EXTRA_OECMAKE += "-DLLVM_ENABLE_ASSERTIONS=OFF \ >> - -DLLVM_ENABLE_EXPENSIVE_CHECKS=OFF \ >> - -DLLVM_ENABLE_PIC=ON \ >> - -DLLVM_BINDINGS_LIST='' \ >> - -DLLVM_LINK_LLVM_DYLIB=ON \ >> - -DLLVM_ENABLE_FFI=ON \ >> - -DLLVM_ENABLE_RTTI=ON \ >> - -DFFI_INCLUDE_DIR=$(pkg-config --variable=includedir libffi) \ >> - -DLLVM_OPTIMIZED_TABLEGEN=ON \ >> - -DLLVM_TARGETS_TO_BUILD='${LLVM_TARGETS}' \ >> - -DLLVM_VERSION_SUFFIX='${VER_SUFFIX}' \ >> - -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON \ >> - -DCMAKE_BUILD_TYPE=Release \ >> - -DLLVM_ENABLE_PROJECTS='${LLVM_PROJECTS}' \ >> - " >> - >> -EXTRA_OECMAKE:append:class-target = "\ >> - -DCMAKE_CROSSCOMPILING:BOOL=ON \ >> - -DLLVM_HOST_TRIPLE=${TARGET_SYS} \ >> - -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen${PV} \ >> - -DLLVM_CONFIG_PATH=${STAGING_BINDIR_NATIVE}/llvm-config${PV} \ >> - -DLLVM_NATIVE_TOOL_DIR=${STAGING_BINDIR_NATIVE} \ >> - " >> - >> -EXTRA_OECMAKE:append:class-nativesdk = "\ >> - -DCMAKE_CROSSCOMPILING:BOOL=ON \ >> - -DLLVM_HOST_TRIPLE=${SDK_SYS} \ >> - -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen${PV} \ >> - -DLLVM_CONFIG_PATH=${STAGING_BINDIR_NATIVE}/llvm-config${PV} \ >> - -DLLVM_NATIVE_TOOL_DIR=${STAGING_BINDIR_NATIVE} \ >> - " >> - >> -# patch out build host paths for reproducibility >> -do_compile:prepend:class-target() { >> - sed -i -e "s,${WORKDIR},,g" ${B}/tools/llvm-config/BuildVariables.inc >> -} >> - >> -do_compile:prepend:class-nativesdk() { >> - sed -i -e "s,${WORKDIR},,g" ${B}/tools/llvm-config/BuildVariables.inc >> -} >> - >> -do_compile() { >> - if ${@bb.utils.contains('PACKAGECONFIG', 'libllvm', 'true', 'false', d)}; then >> - ninja -v ${PARALLEL_MAKE} >> - else >> - ninja -v ${PARALLEL_MAKE} llvm-config llvm-tblgen >> - fi >> -} >> - >> -do_install() { >> - if ${@bb.utils.contains('PACKAGECONFIG', 'libllvm', 'true', 'false', d)}; then >> - DESTDIR=${D} ninja -v install >> - >> - # llvm harcodes usr/lib as install path, so this corrects it to actual libdir >> - mv -T -n ${D}/${prefix}/lib ${D}/${libdir} || true >> - >> - # Remove opt-viewer: https://llvm.org/docs/Remarks.html >> - rm -rf ${D}${datadir}/opt-viewer >> - >> - # reproducibility >> - sed -i -e 's,${WORKDIR},,g' ${D}/${libdir}/cmake/llvm/LLVMConfig.cmake >> - fi >> - >> - # Remove clang bits from target packages, we are not providing it for the system >> - if ${@bb.utils.contains_any('PACKAGECONFIG', 'libclc spirv-llvm-translator', 'true', 'false', d)} && >> - [ "${CLASSOVERRIDE}" != "class-native" ] ; then >> - rm -f ${D}${bindir}/clang* >> - rm -fr ${D}${libdir}/clang >> - rm -fr ${D}${datadir}/clang >> - >> - rm -f ${D}${bindir}/scan* >> - rm -fr ${D}${libdir}/libscanbuild >> - rm -fr ${D}${datadir}/scan-build >> - rm -fr ${D}${datadir}/scan-view >> - >> - rm -fr ${D}${libdir}/libear >> - fi >> - >> - # Try to clean up datadir if it is empty, but don't fail if there are >> - # libclc files there >> - rmdir ${D}${datadir} || true >> -} >> - >> -do_install:append:class-native() { >> - install -D -m 0755 ${B}/bin/llvm-tblgen ${D}${bindir}/llvm-tblgen${PV} >> - install -D -m 0755 ${B}/bin/llvm-min-tblgen ${D}${bindir}/llvm-min-tblgen >> - install -D -m 0755 ${B}/bin/llvm-config ${D}${bindir}/llvm-config${PV} >> - ln -sf llvm-config${PV} ${D}${bindir}/llvm-config >> - >> - if ${@bb.utils.contains('PACKAGECONFIG', 'libclc', 'true', 'false', d)} ; then >> - install -D -m 0755 ${B}/bin/prepare_builtins ${D}${bindir}/prepare_builtins >> - fi >> -} >> - >> -SYSROOT_PREPROCESS_FUNCS:append:class-target = " llvm_sysroot_preprocess" >> -SYSROOT_PREPROCESS_FUNCS:append:class-nativesdk = " llvm_sysroot_preprocess" >> - >> -llvm_sysroot_preprocess() { >> - install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/ >> - install -m 0755 ${UNPACKDIR}/llvm-config ${SYSROOT_DESTDIR}${bindir_crossscripts}/ >> - ln -sf llvm-config ${SYSROOT_DESTDIR}${bindir_crossscripts}/llvm-config${PV} >> -} >> - >> -PACKAGES =+ "${PN}-bugpointpasses ${PN}-llvmhello ${PN}-libllvm ${PN}-liboptremarks ${PN}-liblto ${PN}-clc ${PN}-spirv" >> -PROVIDES = "${@bb.utils.filter('PACKAGECONFIG', 'libclc spirv-llvm-translator', d)}" >> - >> -RRECOMMENDS:${PN}-dev += "${PN}-bugpointpasses ${PN}-llvmhello ${PN}-liboptremarks" >> -RPROVIDES:${PN}-clc = "${@bb.utils.filter('PACKAGECONFIG', 'libclc', d)}" >> -RPROVIDES:${PN}-spirv = "${@bb.utils.filter('PACKAGECONFIG', 'spirv-llvm-translator', d)}" >> - >> -FILES:${PN}-bugpointpasses = "\ >> - ${libdir}/BugpointPasses.so \ >> -" >> - >> -FILES:${PN}-libllvm = "\ >> - ${libdir}/libLLVM-${MAJOR_VERSION}.so \ >> - ${libdir}/libLLVM.so.${MAJ_MIN_VERSION} \ >> -" >> - >> -FILES:${PN}-liblto += "\ >> - ${libdir}/libLTO.so.* \ >> -" >> - >> -FILES:${PN}-liboptremarks += "\ >> - ${libdir}/libRemarks.so.* \ >> -" >> - >> -FILES:${PN}-llvmhello = "\ >> - ${libdir}/LLVMHello.so \ >> -" >> - >> -FILES:${PN}-dev += " \ >> - ${libdir}/llvm-config \ >> - ${libdir}/libRemarks.so \ >> - ${libdir}/libLLVM-${PV}.so \ >> -" >> - >> -FILES:${PN}-staticdev += "\ >> - ${libdir}/*.a \ >> -" >> - >> -FILES:${PN}-clc += "${datadir}/clc" >> - >> -FILES:${PN}-spirv = " \ >> - ${bindir}/llvm-spirv \ >> - ${includedir}/LLVMSPIRVLib \ >> - ${libdir}/pkgconfig/LLVMSPIRVLib.pc \ >> - ${libdir}/libLLVMSPIRV* \ >> -" >> - >> -INSANE_SKIP:${PN}-libllvm += "dev-so" >> - >> -# SPIRV-LLVM-Translator provides only static libraries, they are included into >> -# the llvm-spirv package. >> -INSANE_SKIP:${PN}-spirv += "staticdev" >> - >> -BBCLASSEXTEND = "native nativesdk" >> >> -- >> 2.49.0 >> >> >
diff --git a/meta/recipes-devtools/llvm/llvm/0001-AsmMatcherEmitter-sort-ClassInfo-lists-by-name-as-we.patch b/meta/recipes-devtools/llvm/llvm/0001-AsmMatcherEmitter-sort-ClassInfo-lists-by-name-as-we.patch deleted file mode 100644 index f71c5d4bd4748b286b4354fd5ca7c686512da8ac..0000000000000000000000000000000000000000 --- a/meta/recipes-devtools/llvm/llvm/0001-AsmMatcherEmitter-sort-ClassInfo-lists-by-name-as-we.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 001d56983078842c5aa2a1786b84dc429bd46abd 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 7684387d8..d225a3b6d 100644 ---- a/llvm/utils/TableGen/AsmMatcherEmitter.cpp -+++ b/llvm/utils/TableGen/AsmMatcherEmitter.cpp -@@ -361,7 +361,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; - } - }; - diff --git a/meta/recipes-devtools/llvm/llvm/0001-llvm-config-remove-LLVM_LDFLAGS-from-ldflags-output.patch b/meta/recipes-devtools/llvm/llvm/0001-llvm-config-remove-LLVM_LDFLAGS-from-ldflags-output.patch deleted file mode 100644 index 2320399d5f7de44cf9cc4269d180c097c1b4a616..0000000000000000000000000000000000000000 --- a/meta/recipes-devtools/llvm/llvm/0001-llvm-config-remove-LLVM_LDFLAGS-from-ldflags-output.patch +++ /dev/null @@ -1,34 +0,0 @@ -From caff2482f786dd7fd5f1f46f2667f7ed847cb8f8 Mon Sep 17 00:00:00 2001 -From: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> -Date: Wed, 2 Apr 2025 17:05:17 +0300 -Subject: [PATCH] llvm-config: remove LLVM_LDFLAGS from --ldflags output - -On native OE builds the LLVM_LDFLAGS gets a lot of extra flags which may -depend on exact build dir and as such be inappropriate to binaries -shared through sstate-cache. It is not possible to override this -behaviour in llvm-config since crossscripts are not being used for -native builds. As a OE-specific modification ignore LLVM_LDFLAGS for -native builds. - -Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> -Upstream-Status: Inappropriate [OE-Specific] ---- - llvm/tools/llvm-config/llvm-config.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/llvm/tools/llvm-config/llvm-config.cpp b/llvm/tools/llvm-config/llvm-config.cpp -index d5b76b1bb6c1..29f7c2eaa419 100644 ---- a/llvm/tools/llvm-config/llvm-config.cpp -+++ b/llvm/tools/llvm-config/llvm-config.cpp -@@ -529,7 +529,7 @@ int main(int argc, char **argv) { - OS << ActiveIncludeOption << ' ' << LLVM_CXXFLAGS << '\n'; - } else if (Arg == "--ldflags") { - OS << ((HostTriple.isWindowsMSVCEnvironment()) ? "-LIBPATH:" : "-L") -- << ActiveLibDir << ' ' << LLVM_LDFLAGS << '\n'; -+ << ActiveLibDir << '\n'; - } else if (Arg == "--system-libs") { - PrintSystemLibs = true; - } else if (Arg == "--libs") { --- -2.39.5 - diff --git a/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch b/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch deleted file mode 100644 index f1ab0054640c56f78b13ec2fdd1870fc207472be..0000000000000000000000000000000000000000 --- a/meta/recipes-devtools/llvm/llvm/0007-llvm-allow-env-override-of-exe-path.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 3eb1eefed6fc654d19ab97bbc748454c22a29009 Mon Sep 17 00:00:00 2001 -From: Martin Kelly <mkelly@xevo.com> -Date: Fri, 19 May 2017 00:22:57 -0700 -Subject: [PATCH] llvm: allow env override of exe and libdir 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-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(+) - -diff --git a/llvm/tools/llvm-config/llvm-config.cpp b/llvm/tools/llvm-config/llvm-config.cpp -index d5b76b1bb..6c28c34bc 100644 ---- a/llvm/tools/llvm-config/llvm-config.cpp -+++ b/llvm/tools/llvm-config/llvm-config.cpp -@@ -246,6 +246,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; diff --git a/meta/recipes-devtools/llvm/llvm/0014-cmake-Fix-configure-for-packages-using-find_package.patch b/meta/recipes-devtools/llvm/llvm/0014-cmake-Fix-configure-for-packages-using-find_package.patch deleted file mode 100644 index 94c056ab8e0abcdf4b96fc3c9bf22842018941e8..0000000000000000000000000000000000000000 --- a/meta/recipes-devtools/llvm/llvm/0014-cmake-Fix-configure-for-packages-using-find_package.patch +++ /dev/null @@ -1,117 +0,0 @@ -From 93141cee493022d9f39dbd1f5f0bb0a1110ac829 Mon Sep 17 00:00:00 2001 -From: Ovidiu Panait <ovidiu.panait@windriver.com> -Date: Fri, 31 Jan 2020 10:56:11 +0200 -Subject: [PATCH] cmake: Fix configure for packages using find_package() - -Currently, when a package (i.e. bcc [https://github.com/iovisor/bcc.git]) -that depends on LLVM/Clang tries to run cmake find_package() during -do_configure, it will fail with a similar error: - -| The imported target "llvm-tblgen" references the file -| ".../recipe-sysroot/usr/bin/llvm-tblgen" -| -| but this file does not exist. Possible reasons include: -| * The file was deleted, renamed, or moved to another location. -| * An install or uninstall procedure did not complete successfully. -| * The installation package was faulty and contained -| ".../recipe-sysroot/usr/lib/cmake/LLVMExports.cmake" -| but not all the files it references. - -This is due to the fact that currently the cmake scripts look for target -binaries in sysroot. Work around this by not exporting the target binaries in -Exports-* cmake files. - -Upstream-Status: Inappropriate [oe-specific] - -Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com> ---- - clang/cmake/modules/AddClang.cmake | 2 -- - llvm/cmake/modules/AddLLVM.cmake | 9 ++------- - llvm/cmake/modules/TableGen.cmake | 6 ------ - 3 files changed, 2 insertions(+), 15 deletions(-) - -diff --git a/clang/cmake/modules/AddClang.cmake b/clang/cmake/modules/AddClang.cmake -index cdc8bd5cd503..5faa9117a30f 100644 ---- a/clang/cmake/modules/AddClang.cmake -+++ b/clang/cmake/modules/AddClang.cmake -@@ -182,7 +182,6 @@ macro(add_clang_tool name) - if (CLANG_BUILD_TOOLS) - get_target_export_arg(${name} Clang export_to_clangtargets) - install(TARGETS ${name} -- ${export_to_clangtargets} - RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" - COMPONENT ${name}) - -@@ -191,7 +190,6 @@ macro(add_clang_tool name) - DEPENDS ${name} - COMPONENT ${name}) - endif() -- set_property(GLOBAL APPEND PROPERTY CLANG_EXPORTS ${name}) - endif() - endif() - set_target_properties(${name} PROPERTIES XCODE_GENERATE_SCHEME ON) -diff --git a/llvm/cmake/modules/AddLLVM.cmake b/llvm/cmake/modules/AddLLVM.cmake -index d3e9377c8d2f..fe22d6f2b35a 100644 ---- a/llvm/cmake/modules/AddLLVM.cmake -+++ b/llvm/cmake/modules/AddLLVM.cmake -@@ -1492,7 +1492,6 @@ macro(llvm_add_tool project name) - if( LLVM_BUILD_TOOLS ) - get_target_export_arg(${name} ${project} export_to_llvmexports) - install(TARGETS ${name} -- ${export_to_llvmexports} - RUNTIME DESTINATION ${${project}_TOOLS_INSTALL_DIR} - COMPONENT ${name}) - -@@ -1503,10 +1502,8 @@ macro(llvm_add_tool project name) - endif() - endif() - endif() -- if( LLVM_BUILD_TOOLS ) -- string(TOUPPER "${project}" project_upper) -- set_property(GLOBAL APPEND PROPERTY ${project_upper}_EXPORTS ${name}) -- endif() -+ string(TOUPPER "${project}" project_upper) -+ set_target_properties(${name} PROPERTIES FOLDER "Tools") - endif() - get_subproject_title(subproject_title) - set_target_properties(${name} PROPERTIES FOLDER "${subproject_title}/Tools") -@@ -1556,7 +1553,6 @@ macro(add_llvm_utility name) - if (LLVM_INSTALL_UTILS AND LLVM_BUILD_UTILS) - get_target_export_arg(${name} LLVM export_to_llvmexports) - install(TARGETS ${name} -- ${export_to_llvmexports} - RUNTIME DESTINATION ${LLVM_UTILS_INSTALL_DIR} - COMPONENT ${name}) - -@@ -1565,7 +1561,6 @@ macro(add_llvm_utility name) - DEPENDS ${name} - COMPONENT ${name}) - endif() -- set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name}) - elseif(LLVM_BUILD_UTILS) - set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS_BUILDTREE_ONLY ${name}) - endif() -diff --git a/llvm/cmake/modules/TableGen.cmake b/llvm/cmake/modules/TableGen.cmake -index ffcc718b4777..a76f28e74b86 100644 ---- a/llvm/cmake/modules/TableGen.cmake -+++ b/llvm/cmake/modules/TableGen.cmake -@@ -232,12 +232,7 @@ macro(add_tablegen target project) - - if (ADD_TABLEGEN_DESTINATION AND NOT LLVM_INSTALL_TOOLCHAIN_ONLY AND - (LLVM_BUILD_UTILS OR ${target} IN_LIST LLVM_DISTRIBUTION_COMPONENTS)) -- set(export_arg) -- if(ADD_TABLEGEN_EXPORT) -- get_target_export_arg(${target} ${ADD_TABLEGEN_EXPORT} export_arg) -- endif() - install(TARGETS ${target} -- ${export_arg} - COMPONENT ${target} - RUNTIME DESTINATION "${ADD_TABLEGEN_DESTINATION}") - if(NOT LLVM_ENABLE_IDE) -@@ -248,6 +243,5 @@ macro(add_tablegen target project) - endif() - if(ADD_TABLEGEN_EXPORT) - string(TOUPPER ${ADD_TABLEGEN_EXPORT} export_upper) -- set_property(GLOBAL APPEND PROPERTY ${export_upper}_EXPORTS ${target}) - endif() - endmacro() diff --git a/meta/recipes-devtools/llvm/llvm/llvm-config b/meta/recipes-devtools/llvm/llvm/llvm-config deleted file mode 100644 index 6cf3e7578fa96f2893f73077bece4db45f29547c..0000000000000000000000000000000000000000 --- a/meta/recipes-devtools/llvm/llvm/llvm-config +++ /dev/null @@ -1,54 +0,0 @@ -#!/bin/bash -# -# Copyright OpenEmbedded Contributors -# -# SPDX-License-Identifier: MIT -# -# Wrap llvm-config since the native llvm-config will remap some values correctly -# if placed in the target sysroot but for flags, it would provide the native ones. -# Provide ours from the environment instead. - -NEXT_LLVM_CONFIG="$(which -a llvm-config | sed -n 2p)" -if [[ $# == 0 ]]; then - exec "$NEXT_LLVM_CONFIG" -fi - -remain="" -output="" -for arg in "$@"; do - case "$arg" in - --cppflags) - output="${output} ${CPPFLAGS}" - ;; - --cflags) - output="${output} ${CFLAGS}" - ;; - --cxxflags) - output="${output} ${CXXFLAGS}" - ;; - --ldflags) - output="${output} ${LDFLAGS}" - ;; - --shared-mode) - output="${output} shared" - ;; - --libs) - output="${output} -lLLVM" - ;; - --libdir) - output="${output} ${libdir}" - ;; - --link-shared) - break - ;; - *) - remain="${remain} ${arg}" - ;; - esac -done - -if [ "${remain}" != "" ]; then - output="${output} "$("$NEXT_LLVM_CONFIG" ${remain}) -fi - -echo "${output}" diff --git a/meta/recipes-devtools/llvm/llvm/spirv-internal-build.patch b/meta/recipes-devtools/llvm/llvm/spirv-internal-build.patch deleted file mode 100644 index 555d40f4fb07342cc204c7c578662688605b2cb1..0000000000000000000000000000000000000000 --- a/meta/recipes-devtools/llvm/llvm/spirv-internal-build.patch +++ /dev/null @@ -1,30 +0,0 @@ -From e94e529aefb28b65165e978daa2bfd89867ee8d0 Mon Sep 17 00:00:00 2001 -From: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> -Date: Fri, 21 Mar 2025 17:17:52 +0200 -Subject: [PATCH] SPIRV-LLVM-Translator: fix handling of built-in SPIRV targer - -If the SPIRV-LLVM-Translator is being built together with the LLVM, set -the defines declaring whether SPIRV target is also included into the -LLVM library or not. Otherwise llvm-spirv execution fails because -spirv-ext option is registered twice. - -Upstream-Status: Pending [will be submitted upstream after internal clearance] -Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> - -Index: llvm-project-20.1.0.src/llvm/projects/SPIRV-LLVM-Translator/CMakeLists.txt -=================================================================== ---- llvm-project-20.1.0.src.orig/llvm/projects/SPIRV-LLVM-Translator/CMakeLists.txt -+++ llvm-project-20.1.0.src/llvm/projects/SPIRV-LLVM-Translator/CMakeLists.txt -@@ -116,6 +116,12 @@ if(LLVM_SPIRV_BUILD_EXTERNAL) - set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache) - set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache) - endif() -+else() -+ is_llvm_target_library("SPIRV" spirv_present_result INCLUDED_TARGETS) -+ if(spirv_present_result) -+ set(SPIRV_BACKEND_FOUND TRUE) -+ add_compile_definitions(LLVM_SPIRV_BACKEND_TARGET_PRESENT) -+ endif() - endif() - - set(LLVM_SPIRV_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/include) diff --git a/meta/recipes-devtools/llvm/llvm/spirv-shared-library.patch b/meta/recipes-devtools/llvm/llvm/spirv-shared-library.patch deleted file mode 100644 index edc595d57699a682e62f3b3b1cf999e409060226..0000000000000000000000000000000000000000 --- a/meta/recipes-devtools/llvm/llvm/spirv-shared-library.patch +++ /dev/null @@ -1,25 +0,0 @@ -From e94e529aefb28b65165e978daa2bfd89867ee8d0 Mon Sep 17 00:00:00 2001 -From: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> -Date: Thu, 9 Apr 2025 15:20:32 +0200 -Subject: [PATCH] SPIRV-LLVM-Translator: build shared library - -By default SPIRV-LLVM-Translator builds only a static version of the library. -Unfortunately this might result in linking erros when uninative is in play, if -libLLVMSPIRV uses symbols which are provided only by the uninative libc and are -not provided by the host libc. - -Upstream-Status: Inappropriate [OE-Specific] -Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> - -Index: llvm-project-20.1.1.src/llvm/projects/SPIRV-LLVM-Translator/lib/SPIRV/CMakeLists.txt -=================================================================== ---- llvm-project-20.1.1.src.orig/llvm/projects/SPIRV-LLVM-Translator/lib/SPIRV/CMakeLists.txt -+++ llvm-project-20.1.1.src/llvm/projects/SPIRV-LLVM-Translator/lib/SPIRV/CMakeLists.txt -@@ -42,6 +42,7 @@ set(SRC_LIST - ) - add_llvm_library(LLVMSPIRVLib - ${SRC_LIST} -+ SHARED - LINK_COMPONENTS - Analysis - BitWriter diff --git a/meta/recipes-devtools/llvm/llvm_20.1.2.bb b/meta/recipes-devtools/llvm/llvm_20.1.2.bb deleted file mode 100644 index 98855fa4c14d1f5eef6dd946a64927d778b99e3d..0000000000000000000000000000000000000000 --- a/meta/recipes-devtools/llvm/llvm_20.1.2.bb +++ /dev/null @@ -1,233 +0,0 @@ -# Copyright (C) 2017 Khem Raj <raj.khem@gmail.com> -# Released under the MIT license (see COPYING.MIT for the terms) - -SUMMARY = "The LLVM Compiler Infrastructure" -HOMEPAGE = "http://llvm.org" -LICENSE = "Apache-2.0-with-LLVM-exception" -SECTION = "devel" - -LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=8a15a0759ef07f2682d2ba4b893c9afe" - -DEPENDS = "libffi libxml2 zlib zstd libedit ninja-native llvm-native" - -RDEPENDS:${PN}:append:class-target = " ncurses-terminfo" - -inherit cmake pkgconfig -# could be 'rcX' or 'git' or empty ( for release ) -VER_SUFFIX = "" - -PV .= "${VER_SUFFIX}" - -MAJOR_VERSION = "${@oe.utils.trim_version("${PV}", 1)}" -MAJ_MIN_VERSION = "${@oe.utils.trim_version("${PV}", 2)}" - -LLVM_RELEASE = "${PV}" - -SRCREV_spirv = "68edc9d3d10ff6ec6353803a1bc60a5c25e7b715" -# pattern: llvm_branch_200, currently there are no minor releases, so, no llvm_branch_201 -SPIRV_BRANCH = "llvm_release_${@oe.utils.trim_version('${PV}', 1).replace('.', '')}0" - -SRC_URI_SPIRV = " \ - git://github.com/KhronosGroup/SPIRV-LLVM-Translator;protocol=https;name=spirv;branch=${SPIRV_BRANCH};destsuffix=llvm-project-${PV}.src/llvm/projects/SPIRV-LLVM-Translator \ - file://spirv-internal-build.patch \ -" - -SRC_URI_SPIRV:append:class-native = " \ - file://spirv-shared-library.patch \ -" - -SRC_URI = "https://github.com/llvm/llvm-project/releases/download/llvmorg-${PV}/llvm-project-${PV}.src.tar.xz \ - file://0007-llvm-allow-env-override-of-exe-path.patch \ - file://0001-AsmMatcherEmitter-sort-ClassInfo-lists-by-name-as-we.patch \ - file://0014-cmake-Fix-configure-for-packages-using-find_package.patch \ - ${@bb.utils.contains('PACKAGECONFIG', 'spirv-llvm-translator', '${SRC_URI_SPIRV}', '', d)} \ - file://llvm-config \ - " -SRC_URI[sha256sum] = "f0a4a240aabc9b056142d14d5478bb6d962aeac549cbd75b809f5499240a8b38" -UPSTREAM_CHECK_URI = "https://github.com/llvm/llvm-project" -UPSTREAM_CHECK_REGEX = "llvmorg-(?P<pver>\d+(\.\d+)+)" - -SRC_URI:append:class-native = " file://0001-llvm-config-remove-LLVM_LDFLAGS-from-ldflags-output.patch" - -S = "${WORKDIR}/llvm-project-${PV}.src" - -OECMAKE_SOURCEPATH = "${S}/llvm" - -LLVM_INSTALL_DIR = "${WORKDIR}/llvm-install" - -PACKAGECONFIG ??= "libllvm libclc spirv-llvm-translator" -# if optviewer OFF, force the modules to be not found or the ones on the host would be found -PACKAGECONFIG[optviewer] = ",-DPY_PYGMENTS_FOUND=OFF -DPY_PYGMENTS_LEXERS_C_CPP_FOUND=OFF -DPY_YAML_FOUND=OFF,python3-pygments python3-pyyaml,python3-pygments python3-pyyaml" -PACKAGECONFIG[libllvm] = "" -PACKAGECONFIG[libclc] = "" -PACKAGECONFIG[spirv-llvm-translator] = "-DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=${STAGING_INCDIR}/.. ,,spirv-tools-native spirv-headers" - -# -# Default to build all OE-Core supported target arches (user overridable). -# -LLVM_TARGETS ?= "AMDGPU;AArch64;ARM;BPF;Mips;PowerPC;RISCV;X86;LoongArch;NVPTX;SPIRV" - -ARM_INSTRUCTION_SET:armv5 = "arm" -ARM_INSTRUCTION_SET:armv4t = "arm" - -LLVM_PROJECTS_CLANG = "${@bb.utils.contains_any('PACKAGECONFIG', 'libclc spirv-llvm-translator', 'clang', '', d)}" -LLVM_PROJECTS_CLC = "${@bb.utils.contains('PACKAGECONFIG', 'libclc', ';libclc', '', d)}" -LLVM_PROJECTS = "${LLVM_PROJECTS_CLANG}${LLVM_PROJECTS_CLC}" - -EXTRA_OECMAKE += "-DLLVM_ENABLE_ASSERTIONS=OFF \ - -DLLVM_ENABLE_EXPENSIVE_CHECKS=OFF \ - -DLLVM_ENABLE_PIC=ON \ - -DLLVM_BINDINGS_LIST='' \ - -DLLVM_LINK_LLVM_DYLIB=ON \ - -DLLVM_ENABLE_FFI=ON \ - -DLLVM_ENABLE_RTTI=ON \ - -DFFI_INCLUDE_DIR=$(pkg-config --variable=includedir libffi) \ - -DLLVM_OPTIMIZED_TABLEGEN=ON \ - -DLLVM_TARGETS_TO_BUILD='${LLVM_TARGETS}' \ - -DLLVM_VERSION_SUFFIX='${VER_SUFFIX}' \ - -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN=ON \ - -DCMAKE_BUILD_TYPE=Release \ - -DLLVM_ENABLE_PROJECTS='${LLVM_PROJECTS}' \ - " - -EXTRA_OECMAKE:append:class-target = "\ - -DCMAKE_CROSSCOMPILING:BOOL=ON \ - -DLLVM_HOST_TRIPLE=${TARGET_SYS} \ - -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen${PV} \ - -DLLVM_CONFIG_PATH=${STAGING_BINDIR_NATIVE}/llvm-config${PV} \ - -DLLVM_NATIVE_TOOL_DIR=${STAGING_BINDIR_NATIVE} \ - " - -EXTRA_OECMAKE:append:class-nativesdk = "\ - -DCMAKE_CROSSCOMPILING:BOOL=ON \ - -DLLVM_HOST_TRIPLE=${SDK_SYS} \ - -DLLVM_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-tblgen${PV} \ - -DLLVM_CONFIG_PATH=${STAGING_BINDIR_NATIVE}/llvm-config${PV} \ - -DLLVM_NATIVE_TOOL_DIR=${STAGING_BINDIR_NATIVE} \ - " - -# patch out build host paths for reproducibility -do_compile:prepend:class-target() { - sed -i -e "s,${WORKDIR},,g" ${B}/tools/llvm-config/BuildVariables.inc -} - -do_compile:prepend:class-nativesdk() { - sed -i -e "s,${WORKDIR},,g" ${B}/tools/llvm-config/BuildVariables.inc -} - -do_compile() { - if ${@bb.utils.contains('PACKAGECONFIG', 'libllvm', 'true', 'false', d)}; then - ninja -v ${PARALLEL_MAKE} - else - ninja -v ${PARALLEL_MAKE} llvm-config llvm-tblgen - fi -} - -do_install() { - if ${@bb.utils.contains('PACKAGECONFIG', 'libllvm', 'true', 'false', d)}; then - DESTDIR=${D} ninja -v install - - # llvm harcodes usr/lib as install path, so this corrects it to actual libdir - mv -T -n ${D}/${prefix}/lib ${D}/${libdir} || true - - # Remove opt-viewer: https://llvm.org/docs/Remarks.html - rm -rf ${D}${datadir}/opt-viewer - - # reproducibility - sed -i -e 's,${WORKDIR},,g' ${D}/${libdir}/cmake/llvm/LLVMConfig.cmake - fi - - # Remove clang bits from target packages, we are not providing it for the system - if ${@bb.utils.contains_any('PACKAGECONFIG', 'libclc spirv-llvm-translator', 'true', 'false', d)} && - [ "${CLASSOVERRIDE}" != "class-native" ] ; then - rm -f ${D}${bindir}/clang* - rm -fr ${D}${libdir}/clang - rm -fr ${D}${datadir}/clang - - rm -f ${D}${bindir}/scan* - rm -fr ${D}${libdir}/libscanbuild - rm -fr ${D}${datadir}/scan-build - rm -fr ${D}${datadir}/scan-view - - rm -fr ${D}${libdir}/libear - fi - - # Try to clean up datadir if it is empty, but don't fail if there are - # libclc files there - rmdir ${D}${datadir} || true -} - -do_install:append:class-native() { - install -D -m 0755 ${B}/bin/llvm-tblgen ${D}${bindir}/llvm-tblgen${PV} - install -D -m 0755 ${B}/bin/llvm-min-tblgen ${D}${bindir}/llvm-min-tblgen - install -D -m 0755 ${B}/bin/llvm-config ${D}${bindir}/llvm-config${PV} - ln -sf llvm-config${PV} ${D}${bindir}/llvm-config - - if ${@bb.utils.contains('PACKAGECONFIG', 'libclc', 'true', 'false', d)} ; then - install -D -m 0755 ${B}/bin/prepare_builtins ${D}${bindir}/prepare_builtins - fi -} - -SYSROOT_PREPROCESS_FUNCS:append:class-target = " llvm_sysroot_preprocess" -SYSROOT_PREPROCESS_FUNCS:append:class-nativesdk = " llvm_sysroot_preprocess" - -llvm_sysroot_preprocess() { - install -d ${SYSROOT_DESTDIR}${bindir_crossscripts}/ - install -m 0755 ${UNPACKDIR}/llvm-config ${SYSROOT_DESTDIR}${bindir_crossscripts}/ - ln -sf llvm-config ${SYSROOT_DESTDIR}${bindir_crossscripts}/llvm-config${PV} -} - -PACKAGES =+ "${PN}-bugpointpasses ${PN}-llvmhello ${PN}-libllvm ${PN}-liboptremarks ${PN}-liblto ${PN}-clc ${PN}-spirv" -PROVIDES = "${@bb.utils.filter('PACKAGECONFIG', 'libclc spirv-llvm-translator', d)}" - -RRECOMMENDS:${PN}-dev += "${PN}-bugpointpasses ${PN}-llvmhello ${PN}-liboptremarks" -RPROVIDES:${PN}-clc = "${@bb.utils.filter('PACKAGECONFIG', 'libclc', d)}" -RPROVIDES:${PN}-spirv = "${@bb.utils.filter('PACKAGECONFIG', 'spirv-llvm-translator', d)}" - -FILES:${PN}-bugpointpasses = "\ - ${libdir}/BugpointPasses.so \ -" - -FILES:${PN}-libllvm = "\ - ${libdir}/libLLVM-${MAJOR_VERSION}.so \ - ${libdir}/libLLVM.so.${MAJ_MIN_VERSION} \ -" - -FILES:${PN}-liblto += "\ - ${libdir}/libLTO.so.* \ -" - -FILES:${PN}-liboptremarks += "\ - ${libdir}/libRemarks.so.* \ -" - -FILES:${PN}-llvmhello = "\ - ${libdir}/LLVMHello.so \ -" - -FILES:${PN}-dev += " \ - ${libdir}/llvm-config \ - ${libdir}/libRemarks.so \ - ${libdir}/libLLVM-${PV}.so \ -" - -FILES:${PN}-staticdev += "\ - ${libdir}/*.a \ -" - -FILES:${PN}-clc += "${datadir}/clc" - -FILES:${PN}-spirv = " \ - ${bindir}/llvm-spirv \ - ${includedir}/LLVMSPIRVLib \ - ${libdir}/pkgconfig/LLVMSPIRVLib.pc \ - ${libdir}/libLLVMSPIRV* \ -" - -INSANE_SKIP:${PN}-libllvm += "dev-so" - -# SPIRV-LLVM-Translator provides only static libraries, they are included into -# the llvm-spirv package. -INSANE_SKIP:${PN}-spirv += "staticdev" - -BBCLASSEXTEND = "native nativesdk"
Signed-off-by: Khem Raj <raj.khem@gmail.com> --- ...mitter-sort-ClassInfo-lists-by-name-as-we.patch | 31 --- ...g-remove-LLVM_LDFLAGS-from-ldflags-output.patch | 34 --- .../0007-llvm-allow-env-override-of-exe-path.patch | 36 ---- ...configure-for-packages-using-find_package.patch | 117 ----------- meta/recipes-devtools/llvm/llvm/llvm-config | 54 ----- .../llvm/llvm/spirv-internal-build.patch | 30 --- .../llvm/llvm/spirv-shared-library.patch | 25 --- meta/recipes-devtools/llvm/llvm_20.1.2.bb | 233 --------------------- 8 files changed, 560 deletions(-)