RECIPE_MAINTAINER:pn-speex = "Michael Opdenacker <michael@opdenacker.org>"
RECIPE_MAINTAINER:pn-speexdsp = "Michael Opdenacker <michael@opdenacker.org>"
RECIPE_MAINTAINER:pn-spirv-headers = "Jose Quaresma <quaresma.jose@gmail.com>"
+RECIPE_MAINTAINER:pn-spirv-llvm-translator = "Khem Raj <raj.khem@gmail.com>"
RECIPE_MAINTAINER:pn-spirv-tools = "Jose Quaresma <quaresma.jose@gmail.com>"
RECIPE_MAINTAINER:pn-sqlite3 = "Anuj Mittal <anuj.mittal@intel.com>"
RECIPE_MAINTAINER:pn-squashfs-tools = "Robert Yang <liezhi.yang@windriver.com>"
+++ /dev/null
-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)
+++ /dev/null
-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
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_FLAGS_RELEASE='${CXXFLAGS} -DNDEBUG -g0' \
-DCMAKE_C_FLAGS_RELEASE='${CFLAGS} -DNDEBUG -g0' \
- -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=${S}/llvm/projects/SPIRV-LLVM-Translator/SPIRV-Headers \
-DLLVM_ENABLE_PROJECTS='${LLVM_PROJECTS}' \
-DLLVM_BINUTILS_INCDIR=${STAGING_INCDIR} \
-DLLVM_VERSION_SUFFIX='${VER_SUFFIX}' \
-DCROSS_TOOLCHAIN_FLAGS_NATIVE='-DLLDB_PYTHON_RELATIVE_PATH=${PYTHON_SITEPACKAGES_DIR} \
-DLLDB_PYTHON_EXE_RELATIVE_PATH=${PYTHON_PN} \
-DLLDB_PYTHON_EXT_SUFFIX=${SOLIBSDEV} \
- -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=${S}/llvm/projects/SPIRV-LLVM-Translator/SPIRV-Headers \
-DCMAKE_TOOLCHAIN_FILE=${WORKDIR}/toolchain-native.cmake' \
-DCMAKE_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ranlib \
-DCMAKE_AR=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ar \
-DPYTHON_EXECUTABLE='${PYTHON}' \
"
EXTRA_OECMAKE:append:class-target = "\
- -DCROSS_TOOLCHAIN_FLAGS_NATIVE='-DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=${S}/llvm/projects/SPIRV-LLVM-Translator/SPIRV-Headers \
-' \
-DLLVM_NATIVE_TOOL_DIR=${STAGING_BINDIR_NATIVE} \
-DLLVM_HEADERS_TABLEGEN=${STAGING_BINDIR_NATIVE}/llvm-min-tblgen \
-DCMAKE_RANLIB=${STAGING_BINDIR_TOOLCHAIN}/${TARGET_PREFIX}llvm-ranlib \
fi
}
-PROVIDES:append:class-native = " llvm-native libclc-native spirv-llvm-translator-native"
-PROVIDES:append:class-target = " llvm libclc spirv-llvm-translator"
-PROVIDES:append:class-nativesdk = " nativesdk-llvm nativesdk-libclc nativesdk-spirv-llvm-translator"
+PROVIDES:append:class-native = " llvm-native libclc-native"
+PROVIDES:append:class-target = " llvm libclc"
+PROVIDES:append:class-nativesdk = " nativesdk-llvm nativesdk-libclc"
-PACKAGES =+ "${PN}-libllvm ${PN}-lldb-python ${PN}-libclang-cpp ${PN}-tidy ${PN}-format ${PN}-tools ${PN}-clc ${PN}-spirv \
+PACKAGES =+ "${PN}-libllvm ${PN}-lldb-python ${PN}-libclang-cpp ${PN}-tidy ${PN}-format ${PN}-tools ${PN}-clc \
libclang lldb lldb-server liblldb llvm-linker-tools"
perl-module-term-ansicolor \
"
-RPROVIDES:${PN}-spirv = "${MLPREFIX}spirv-llvm-translator"
RPROVIDES:${PN}-clc = "${MLPREFIX}libclc"
RRECOMMENDS:${PN}-tidy += "${PN}-tools"
FILES:${PN}-clc += "${datadir}/clc"
-FILES:${PN}-spirv = " \
- ${bindir}/llvm-spirv \
- ${libdir}/libLLVMSPIRV.so.* \
-"
-
FILES:lldb = "\
${bindir}/lldb \
${bindir}/lldb-argdumper \
INSANE_SKIP:${MLPREFIX}liblldb = "dev-so"
INSANE_SKIP:${PN}-libllvm = "dev-so"
-# SPIRV-LLVM-Translator provides only static libraries, they are included into
-# the clang-spirv package.
-INSANE_SKIP:${PN}-spirv += "dev-so"
-
#Avoid SSTATE_SCAN_COMMAND running sed over llvm-config.
SSTATE_SCAN_FILES:remove = "*-config"
SOURCEDIR ?= "llvm-project-${PV}.src"
SRC_URI[sha256sum] = "b6183c41281ee3f23da7fda790c6d4f5877aed103d1e759763b1008bdd0e2c50"
-SRCREV_spirv = "6dd8f2a1681a27f16c53d932d2765920f312aeb2"
-SRCREV_spirvheaders = "09913f088a1197aba4aefd300a876b2ebbaa3391"
-SRCREV_FORMAT .= "spirv_spirvheaders"
-# 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"
-SPIRVURI = " \
- git://github.com/KhronosGroup/SPIRV-LLVM-Translator;protocol=https;name=spirv;branch=${SPIRV_BRANCH};destsuffix=llvm-project-${PV}.src/llvm/projects/SPIRV-LLVM-Translator \
- git://github.com/KhronosGroup/SPIRV-Headers;protocol=https;destsuffix=llvm-project-${PV}.src/llvm/projects/SPIRV-LLVM-Translator/SPIRV-Headers;name=spirvheaders;branch=main \
- file://spirv-internal-build.patch \
- file://spirv-shared-library.patch \
-"
-
SRC_URI = "\
${BASEURI} \
- ${SPIRVURI} \
file://0001-libcxxabi-Find-libunwind-headers-when-LIBCXXABI_LIBU.patch \
file://0002-compiler-rt-support-a-new-embedded-linux-target.patch \
file://0003-compiler-rt-Simplify-cross-compilation.-Don-t-use-na.patch \
--- /dev/null
+HOMEPAGE = "https://github.com/KhronosGroup/SPIRV-LLVM-Translator"
+SUMMARY = "LLVM/SPIR-V Bi-Directional Translator, a library and tool for translation between LLVM IR and SPIR-V."
+
+LICENSE = "NCSA"
+LIC_FILES_CHKSUM = "file://LICENSE.TXT;md5=47e311aa9caedd1b3abf098bd7814d1d"
+
+# 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 = " \
+ git://github.com/KhronosGroup/SPIRV-LLVM-Translator;protocol=https;name=spirv;branch=${SPIRV_BRANCH} \
+"
+
+SRCREV_spirv = "6dd8f2a1681a27f16c53d932d2765920f312aeb2"
+
+UPSTREAM_CHECK_GITTAGREGEX = "v(?P<pver>\d+(\.\d+)+)"
+
+S = "${WORKDIR}/git"
+
+DEPENDS = "clang spirv-tools spirv-headers"
+
+inherit cmake pkgconfig python3native
+
+# Specify any options you want to pass to cmake using EXTRA_OECMAKE:
+# for CMAKE_SHARED_LIBS=OFF see https://github.com/KhronosGroup/SPIRV-LLVM-Translator/issues/1868
+EXTRA_OECMAKE = "\
+ -DBUILD_SHARED_LIBS=ON \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_POSITION_INDEPENDENT_CODE=ON \
+ -DCMAKE_SKIP_RPATH=ON \
+ -DLLVM_EXTERNAL_LIT=lit \
+ -DLLVM_INCLUDE_TESTS=ON \
+ -Wno-dev \
+ -DLLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR=${STAGING_INCDIR}/.. \
+"
+
+BBCLASSEXTEND = "native nativesdk"