diff options
Diffstat (limited to 'meta')
| -rw-r--r-- | meta/conf/distro/include/maintainers.inc | 1 | ||||
| -rw-r--r-- | meta/recipes-devtools/clang/clang/spirv-internal-build.patch | 30 | ||||
| -rw-r--r-- | meta/recipes-devtools/clang/clang/spirv-shared-library.patch | 25 | ||||
| -rw-r--r-- | meta/recipes-devtools/clang/clang_git.bb | 22 | ||||
| -rw-r--r-- | meta/recipes-devtools/clang/common.inc | 13 | ||||
| -rw-r--r-- | meta/recipes-graphics/spir/spirv-llvm-translator_20.1.2.bb | 36 |
6 files changed, 41 insertions, 86 deletions
diff --git a/meta/conf/distro/include/maintainers.inc b/meta/conf/distro/include/maintainers.inc index b67433d4d2..7d4a8e2417 100644 --- a/meta/conf/distro/include/maintainers.inc +++ b/meta/conf/distro/include/maintainers.inc | |||
| @@ -792,6 +792,7 @@ RECIPE_MAINTAINER:pn-socat = "Hongxu Jia <hongxu.jia@windriver.com>" | |||
| 792 | RECIPE_MAINTAINER:pn-speex = "Michael Opdenacker <michael@opdenacker.org>" | 792 | RECIPE_MAINTAINER:pn-speex = "Michael Opdenacker <michael@opdenacker.org>" |
| 793 | RECIPE_MAINTAINER:pn-speexdsp = "Michael Opdenacker <michael@opdenacker.org>" | 793 | RECIPE_MAINTAINER:pn-speexdsp = "Michael Opdenacker <michael@opdenacker.org>" |
| 794 | RECIPE_MAINTAINER:pn-spirv-headers = "Jose Quaresma <quaresma.jose@gmail.com>" | 794 | RECIPE_MAINTAINER:pn-spirv-headers = "Jose Quaresma <quaresma.jose@gmail.com>" |
| 795 | RECIPE_MAINTAINER:pn-spirv-llvm-translator = "Khem Raj <raj.khem@gmail.com>" | ||
| 795 | RECIPE_MAINTAINER:pn-spirv-tools = "Jose Quaresma <quaresma.jose@gmail.com>" | 796 | RECIPE_MAINTAINER:pn-spirv-tools = "Jose Quaresma <quaresma.jose@gmail.com>" |
| 796 | RECIPE_MAINTAINER:pn-sqlite3 = "Anuj Mittal <anuj.mittal@intel.com>" | 797 | RECIPE_MAINTAINER:pn-sqlite3 = "Anuj Mittal <anuj.mittal@intel.com>" |
| 797 | RECIPE_MAINTAINER:pn-squashfs-tools = "Robert Yang <liezhi.yang@windriver.com>" | 798 | RECIPE_MAINTAINER:pn-squashfs-tools = "Robert Yang <liezhi.yang@windriver.com>" |
diff --git a/meta/recipes-devtools/clang/clang/spirv-internal-build.patch b/meta/recipes-devtools/clang/clang/spirv-internal-build.patch deleted file mode 100644 index 555d40f4fb..0000000000 --- a/meta/recipes-devtools/clang/clang/spirv-internal-build.patch +++ /dev/null | |||
| @@ -1,30 +0,0 @@ | |||
| 1 | From e94e529aefb28b65165e978daa2bfd89867ee8d0 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> | ||
| 3 | Date: Fri, 21 Mar 2025 17:17:52 +0200 | ||
| 4 | Subject: [PATCH] SPIRV-LLVM-Translator: fix handling of built-in SPIRV targer | ||
| 5 | |||
| 6 | If the SPIRV-LLVM-Translator is being built together with the LLVM, set | ||
| 7 | the defines declaring whether SPIRV target is also included into the | ||
| 8 | LLVM library or not. Otherwise llvm-spirv execution fails because | ||
| 9 | spirv-ext option is registered twice. | ||
| 10 | |||
| 11 | Upstream-Status: Pending [will be submitted upstream after internal clearance] | ||
| 12 | Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> | ||
| 13 | |||
| 14 | Index: llvm-project-20.1.0.src/llvm/projects/SPIRV-LLVM-Translator/CMakeLists.txt | ||
| 15 | =================================================================== | ||
| 16 | --- llvm-project-20.1.0.src.orig/llvm/projects/SPIRV-LLVM-Translator/CMakeLists.txt | ||
| 17 | +++ llvm-project-20.1.0.src/llvm/projects/SPIRV-LLVM-Translator/CMakeLists.txt | ||
| 18 | @@ -116,6 +116,12 @@ if(LLVM_SPIRV_BUILD_EXTERNAL) | ||
| 19 | set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache) | ||
| 20 | set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache) | ||
| 21 | endif() | ||
| 22 | +else() | ||
| 23 | + is_llvm_target_library("SPIRV" spirv_present_result INCLUDED_TARGETS) | ||
| 24 | + if(spirv_present_result) | ||
| 25 | + set(SPIRV_BACKEND_FOUND TRUE) | ||
| 26 | + add_compile_definitions(LLVM_SPIRV_BACKEND_TARGET_PRESENT) | ||
| 27 | + endif() | ||
| 28 | endif() | ||
| 29 | |||
| 30 | set(LLVM_SPIRV_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/include) | ||
diff --git a/meta/recipes-devtools/clang/clang/spirv-shared-library.patch b/meta/recipes-devtools/clang/clang/spirv-shared-library.patch deleted file mode 100644 index edc595d576..0000000000 --- a/meta/recipes-devtools/clang/clang/spirv-shared-library.patch +++ /dev/null | |||
| @@ -1,25 +0,0 @@ | |||
| 1 | From e94e529aefb28b65165e978daa2bfd89867ee8d0 Mon Sep 17 00:00:00 2001 | ||
| 2 | From: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> | ||
| 3 | Date: Thu, 9 Apr 2025 15:20:32 +0200 | ||
| 4 | Subject: [PATCH] SPIRV-LLVM-Translator: build shared library | ||
| 5 | |||
| 6 | By default SPIRV-LLVM-Translator builds only a static version of the library. | ||
| 7 | Unfortunately this might result in linking erros when uninative is in play, if | ||
| 8 | libLLVMSPIRV uses symbols which are provided only by the uninative libc and are | ||
| 9 | not provided by the host libc. | ||
| 10 | |||
| 11 | Upstream-Status: Inappropriate [OE-Specific] | ||
| 12 | Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> | ||
| 13 | |||
| 14 | Index: llvm-project-20.1.1.src/llvm/projects/SPIRV-LLVM-Translator/lib/SPIRV/CMakeLists.txt | ||
| 15 | =================================================================== | ||
| 16 | --- llvm-project-20.1.1.src.orig/llvm/projects/SPIRV-LLVM-Translator/lib/SPIRV/CMakeLists.txt | ||
| 17 | +++ llvm-project-20.1.1.src/llvm/projects/SPIRV-LLVM-Translator/lib/SPIRV/CMakeLists.txt | ||
| 18 | @@ -42,6 +42,7 @@ set(SRC_LIST | ||
| 19 | ) | ||
| 20 | add_llvm_library(LLVMSPIRVLib | ||
| 21 | ${SRC_LIST} | ||
| 22 | + SHARED | ||
| 23 | LINK_COMPONENTS | ||
| 24 | Analysis | ||
| 25 | BitWriter | ||
diff --git a/meta/recipes-devtools/clang/clang_git.bb b/meta/recipes-devtools/clang/clang_git.bb index 67cd5151df..ba037e5978 100644 --- a/meta/recipes-devtools/clang/clang_git.bb +++ b/meta/recipes-devtools/clang/clang_git.bb | |||
| @@ -155,7 +155,6 @@ EXTRA_OECMAKE += "-DLLVM_ENABLE_ASSERTIONS=OFF \ | |||
| 155 | -DCMAKE_BUILD_TYPE=Release \ | 155 | -DCMAKE_BUILD_TYPE=Release \ |
| 156 | -DCMAKE_CXX_FLAGS_RELEASE='${CXXFLAGS} -DNDEBUG -g0' \ | 156 | -DCMAKE_CXX_FLAGS_RELEASE='${CXXFLAGS} -DNDEBUG -g0' \ |
| 157 | -DCMAKE_C_FLAGS_RELEASE='${CFLAGS} -DNDEBUG -g0' \ | 157 | -DCMAKE_C_FLAGS_RELEASE='${CFLAGS} -DNDEBUG -g0' \ |
| 158 | -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=${S}/llvm/projects/SPIRV-LLVM-Translator/SPIRV-Headers \ | ||
| 159 | -DLLVM_ENABLE_PROJECTS='${LLVM_PROJECTS}' \ | 158 | -DLLVM_ENABLE_PROJECTS='${LLVM_PROJECTS}' \ |
| 160 | -DLLVM_BINUTILS_INCDIR=${STAGING_INCDIR} \ | 159 | -DLLVM_BINUTILS_INCDIR=${STAGING_INCDIR} \ |
| 161 | -DLLVM_VERSION_SUFFIX='${VER_SUFFIX}' \ | 160 | -DLLVM_VERSION_SUFFIX='${VER_SUFFIX}' \ |
| @@ -171,7 +170,6 @@ EXTRA_OECMAKE:append:class-nativesdk = "\ | |||
| 171 | -DCROSS_TOOLCHAIN_FLAGS_NATIVE='-DLLDB_PYTHON_RELATIVE_PATH=${PYTHON_SITEPACKAGES_DIR} \ | 170 | -DCROSS_TOOLCHAIN_FLAGS_NATIVE='-DLLDB_PYTHON_RELATIVE_PATH=${PYTHON_SITEPACKAGES_DIR} \ |
| 172 | -DLLDB_PYTHON_EXE_RELATIVE_PATH=${PYTHON_PN} \ | 171 | -DLLDB_PYTHON_EXE_RELATIVE_PATH=${PYTHON_PN} \ |
| 173 | -DLLDB_PYTHON_EXT_SUFFIX=${SOLIBSDEV} \ | 172 | -DLLDB_PYTHON_EXT_SUFFIX=${SOLIBSDEV} \ |
| 174 | -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=${S}/llvm/projects/SPIRV-LLVM-Translator/SPIRV-Headers \ | ||
| 175 | -DCMAKE_TOOLCHAIN_FILE=${WORKDIR}/toolchain-native.cmake' \ | 173 | -DCMAKE_TOOLCHAIN_FILE=${WORKDIR}/toolchain-native.cmake' \ |
| 176 | -DCMAKE_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ranlib \ | 174 | -DCMAKE_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ranlib \ |
| 177 | -DCMAKE_AR=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ar \ | 175 | -DCMAKE_AR=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ar \ |
| @@ -187,8 +185,6 @@ EXTRA_OECMAKE:append:class-nativesdk = "\ | |||
| 187 | -DPYTHON_EXECUTABLE='${PYTHON}' \ | 185 | -DPYTHON_EXECUTABLE='${PYTHON}' \ |
| 188 | " | 186 | " |
| 189 | EXTRA_OECMAKE:append:class-target = "\ | 187 | EXTRA_OECMAKE:append:class-target = "\ |
| 190 | -DCROSS_TOOLCHAIN_FLAGS_NATIVE='-DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=${S}/llvm/projects/SPIRV-LLVM-Translator/SPIRV-Headers \ | ||
| 191 | ' \ | ||
| 192 | -DLLVM_NATIVE_TOOL_DIR=${STAGING_BINDIR_NATIVE} \ | 188 | -DLLVM_NATIVE_TOOL_DIR=${STAGING_BINDIR_NATIVE} \ |
| 193 | -DLLVM_HEADERS_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-min-tblgen \ | 189 | -DLLVM_HEADERS_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-min-tblgen \ |
| 194 | -DCMAKE_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ranlib \ | 190 | -DCMAKE_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ranlib \ |
| @@ -310,11 +306,11 @@ do_install:append:class-nativesdk () { | |||
| 310 | fi | 306 | fi |
| 311 | } | 307 | } |
| 312 | 308 | ||
| 313 | PROVIDES:append:class-native = " llvm-native libclc-native spirv-llvm-translator-native" | 309 | PROVIDES:append:class-native = " llvm-native libclc-native" |
| 314 | PROVIDES:append:class-target = " llvm libclc spirv-llvm-translator" | 310 | PROVIDES:append:class-target = " llvm libclc" |
| 315 | PROVIDES:append:class-nativesdk = " nativesdk-llvm nativesdk-libclc nativesdk-spirv-llvm-translator" | 311 | PROVIDES:append:class-nativesdk = " nativesdk-llvm nativesdk-libclc" |
| 316 | 312 | ||
| 317 | PACKAGES =+ "${PN}-libllvm ${PN}-lldb-python ${PN}-libclang-cpp ${PN}-tidy ${PN}-format ${PN}-tools ${PN}-clc ${PN}-spirv \ | 313 | PACKAGES =+ "${PN}-libllvm ${PN}-lldb-python ${PN}-libclang-cpp ${PN}-tidy ${PN}-format ${PN}-tools ${PN}-clc \ |
| 318 | libclang lldb lldb-server liblldb llvm-linker-tools" | 314 | libclang lldb lldb-server liblldb llvm-linker-tools" |
| 319 | 315 | ||
| 320 | 316 | ||
| @@ -334,7 +330,6 @@ RDEPENDS:${PN}-tools += "\ | |||
| 334 | perl-module-term-ansicolor \ | 330 | perl-module-term-ansicolor \ |
| 335 | " | 331 | " |
| 336 | 332 | ||
| 337 | RPROVIDES:${PN}-spirv = "${MLPREFIX}spirv-llvm-translator" | ||
| 338 | RPROVIDES:${PN}-clc = "${MLPREFIX}libclc" | 333 | RPROVIDES:${PN}-clc = "${MLPREFIX}libclc" |
| 339 | 334 | ||
| 340 | RRECOMMENDS:${PN}-tidy += "${PN}-tools" | 335 | RRECOMMENDS:${PN}-tidy += "${PN}-tools" |
| @@ -405,11 +400,6 @@ FILES:${PN} += "\ | |||
| 405 | 400 | ||
| 406 | FILES:${PN}-clc += "${datadir}/clc" | 401 | FILES:${PN}-clc += "${datadir}/clc" |
| 407 | 402 | ||
| 408 | FILES:${PN}-spirv = " \ | ||
| 409 | ${bindir}/llvm-spirv \ | ||
| 410 | ${libdir}/libLLVMSPIRV.so.* \ | ||
| 411 | " | ||
| 412 | |||
| 413 | FILES:lldb = "\ | 403 | FILES:lldb = "\ |
| 414 | ${bindir}/lldb \ | 404 | ${bindir}/lldb \ |
| 415 | ${bindir}/lldb-argdumper \ | 405 | ${bindir}/lldb-argdumper \ |
| @@ -456,10 +446,6 @@ INSANE_SKIP:${PN}-lldb-python += "dev-so dev-deps" | |||
| 456 | INSANE_SKIP:${MLPREFIX}liblldb = "dev-so" | 446 | INSANE_SKIP:${MLPREFIX}liblldb = "dev-so" |
| 457 | INSANE_SKIP:${PN}-libllvm = "dev-so" | 447 | INSANE_SKIP:${PN}-libllvm = "dev-so" |
| 458 | 448 | ||
| 459 | # SPIRV-LLVM-Translator provides only static libraries, they are included into | ||
| 460 | # the clang-spirv package. | ||
| 461 | INSANE_SKIP:${PN}-spirv += "dev-so" | ||
| 462 | |||
| 463 | #Avoid SSTATE_SCAN_COMMAND running sed over llvm-config. | 449 | #Avoid SSTATE_SCAN_COMMAND running sed over llvm-config. |
| 464 | SSTATE_SCAN_FILES:remove = "*-config" | 450 | SSTATE_SCAN_FILES:remove = "*-config" |
| 465 | 451 | ||
diff --git a/meta/recipes-devtools/clang/common.inc b/meta/recipes-devtools/clang/common.inc index f733566bc8..a7b508039f 100644 --- a/meta/recipes-devtools/clang/common.inc +++ b/meta/recipes-devtools/clang/common.inc | |||
| @@ -17,21 +17,8 @@ BASEURI ?= "${LLVM_HTTP}/llvm-project/releases/download/llvmorg-${PV}/llvm-proje | |||
| 17 | SOURCEDIR ?= "llvm-project-${PV}.src" | 17 | SOURCEDIR ?= "llvm-project-${PV}.src" |
| 18 | SRC_URI[sha256sum] = "b6183c41281ee3f23da7fda790c6d4f5877aed103d1e759763b1008bdd0e2c50" | 18 | SRC_URI[sha256sum] = "b6183c41281ee3f23da7fda790c6d4f5877aed103d1e759763b1008bdd0e2c50" |
| 19 | 19 | ||
| 20 | SRCREV_spirv = "6dd8f2a1681a27f16c53d932d2765920f312aeb2" | ||
| 21 | SRCREV_spirvheaders = "09913f088a1197aba4aefd300a876b2ebbaa3391" | ||
| 22 | SRCREV_FORMAT .= "spirv_spirvheaders" | ||
| 23 | # pattern: llvm_branch_200, currently there are no minor releases, so, no llvm_branch_201 | ||
| 24 | SPIRV_BRANCH = "llvm_release_${@oe.utils.trim_version('${PV}', 1).replace('.', '')}0" | ||
| 25 | SPIRVURI = " \ | ||
| 26 | git://github.com/KhronosGroup/SPIRV-LLVM-Translator;protocol=https;name=spirv;branch=${SPIRV_BRANCH};destsuffix=llvm-project-${PV}.src/llvm/projects/SPIRV-LLVM-Translator \ | ||
| 27 | git://github.com/KhronosGroup/SPIRV-Headers;protocol=https;destsuffix=llvm-project-${PV}.src/llvm/projects/SPIRV-LLVM-Translator/SPIRV-Headers;name=spirvheaders;branch=main \ | ||
| 28 | file://spirv-internal-build.patch \ | ||
| 29 | file://spirv-shared-library.patch \ | ||
| 30 | " | ||
| 31 | |||
| 32 | SRC_URI = "\ | 20 | SRC_URI = "\ |
| 33 | ${BASEURI} \ | 21 | ${BASEURI} \ |
| 34 | ${SPIRVURI} \ | ||
| 35 | file://0001-libcxxabi-Find-libunwind-headers-when-LIBCXXABI_LIBU.patch \ | 22 | file://0001-libcxxabi-Find-libunwind-headers-when-LIBCXXABI_LIBU.patch \ |
| 36 | file://0002-compiler-rt-support-a-new-embedded-linux-target.patch \ | 23 | file://0002-compiler-rt-support-a-new-embedded-linux-target.patch \ |
| 37 | file://0003-compiler-rt-Simplify-cross-compilation.-Don-t-use-na.patch \ | 24 | file://0003-compiler-rt-Simplify-cross-compilation.-Don-t-use-na.patch \ |
diff --git a/meta/recipes-graphics/spir/spirv-llvm-translator_20.1.2.bb b/meta/recipes-graphics/spir/spirv-llvm-translator_20.1.2.bb new file mode 100644 index 0000000000..bc2bebcda8 --- /dev/null +++ b/meta/recipes-graphics/spir/spirv-llvm-translator_20.1.2.bb | |||
| @@ -0,0 +1,36 @@ | |||
| 1 | HOMEPAGE = "https://github.com/KhronosGroup/SPIRV-LLVM-Translator" | ||
| 2 | SUMMARY = "LLVM/SPIR-V Bi-Directional Translator, a library and tool for translation between LLVM IR and SPIR-V." | ||
| 3 | |||
| 4 | LICENSE = "NCSA" | ||
| 5 | LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=47e311aa9caedd1b3abf098bd7814d1d" | ||
| 6 | |||
| 7 | # pattern: llvm_branch_200, currently there are no minor releases, so, no llvm_branch_201 | ||
| 8 | SPIRV_BRANCH = "llvm_release_${@oe.utils.trim_version('${PV}', 1).replace('.', '')}0" | ||
| 9 | SRC_URI = " \ | ||
| 10 | git://github.com/KhronosGroup/SPIRV-LLVM-Translator;protocol=https;name=spirv;branch=${SPIRV_BRANCH} \ | ||
| 11 | " | ||
| 12 | |||
| 13 | SRCREV_spirv = "6dd8f2a1681a27f16c53d932d2765920f312aeb2" | ||
| 14 | |||
| 15 | UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)" | ||
| 16 | |||
| 17 | S = "${WORKDIR}/git" | ||
| 18 | |||
| 19 | DEPENDS = "clang spirv-tools spirv-headers" | ||
| 20 | |||
| 21 | inherit cmake pkgconfig python3native | ||
| 22 | |||
| 23 | # Specify any options you want to pass to cmake using EXTRA_OECMAKE: | ||
| 24 | # for CMAKE_SHARED_LIBS=OFF see https://github.com/KhronosGroup/SPIRV-LLVM-Translator/issues/1868 | ||
| 25 | EXTRA_OECMAKE = "\ | ||
| 26 | -DBUILD_SHARED_LIBS=ON \ | ||
| 27 | -DCMAKE_BUILD_TYPE=Release \ | ||
| 28 | -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ | ||
| 29 | -DCMAKE_SKIP_RPATH=ON \ | ||
| 30 | -DLLVM_EXTERNAL_LIT=lit \ | ||
| 31 | -DLLVM_INCLUDE_TESTS=ON \ | ||
| 32 | -Wno-dev \ | ||
| 33 | -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=${STAGING_INCDIR}/.. \ | ||
| 34 | " | ||
| 35 | |||
| 36 | BBCLASSEXTEND = "native nativesdk" | ||
