diff options
-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" | ||