diff options
| author | Ophestra <cat@gensokyo.uk> | 2026-05-20 00:01:03 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2026-05-20 00:01:03 +0900 |
| commit | a7f5a5802d48d26aa2bddb9d98be8e5efdef9db0 (patch) | |
| tree | bce5078cb72653023a9656fc479e4625f2c00fac /internal/rosa/package | |
| parent | bb230378e080bdfdb4e323ec94a44064d67b3386 (diff) | |
internal/rosa/package: migrate spirv-llvm-translator
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal/rosa/package')
| -rw-r--r-- | internal/rosa/package/spirv.az | 47 | ||||
| -rw-r--r-- | internal/rosa/package/spirv/package.az | 139 | ||||
| -rw-r--r-- | internal/rosa/package/spirv/remove-early-prefix.patch | 21 |
3 files changed, 160 insertions, 47 deletions
diff --git a/internal/rosa/package/spirv.az b/internal/rosa/package/spirv.az deleted file mode 100644 index 45ee1dc6..00000000 --- a/internal/rosa/package/spirv.az +++ /dev/null @@ -1,47 +0,0 @@ -package spirv-headers { - description = "machine-readable files for the SPIR-V Registry"; - website = "https://github.com/KhronosGroup/SPIRV-Headers"; - anitya = 230542; - // upstream changed version scheme, anitya incapable of filtering them - latest = anityaFilterSPIRV; - - version* = "1.4.341.0"; - source = remoteGitHub { - suffix = "KhronosGroup/SPIRV-Headers"; - tag = "vulkan-sdk-"+version; - checksum = "0PL43-19Iaw4k7_D8J8BvoJ-iLgCVSYZ2ThgDPGfAJwIJFtre7l0cnQtLjcY-JvD"; - }; - - exec = cmake { - // upstream has no tests - skipTest = true; - }; -} - -package spirv-tools { - description = "an API and commands for processing SPIR-V modules"; - website = "https://github.com/KhronosGroup/SPIRV-Tools"; - anitya = 14894; - latest = anityaFallback; - - version* = "2026.1"; - source = remoteGitHub { - suffix = "KhronosGroup/SPIRV-Tools"; - tag = "v"+version; - checksum = "ZSQPQx8NltCDzQLk4qlaVxyWRWeI_JtsjEpeFt3kezTanl9DTHfLixSUCezMFBjv"; - }; - - exec = cmake { - cache = { - "SPIRV-Headers_SOURCE_DIR": "/system"; - }; - }; - - inputs = [ - python, - - spirv-headers, - ]; - - runtime = [ spirv-headers ]; -} diff --git a/internal/rosa/package/spirv/package.az b/internal/rosa/package/spirv/package.az new file mode 100644 index 00000000..0b4789c6 --- /dev/null +++ b/internal/rosa/package/spirv/package.az @@ -0,0 +1,139 @@ +package spirv-headers { + description = "machine-readable files for the SPIR-V Registry"; + website = "https://github.com/KhronosGroup/SPIRV-Headers"; + anitya = 230542; + // upstream changed version scheme, anitya incapable of filtering them + latest = anityaFilterSPIRV; + + version* = "1.4.341.0"; + source = remoteGitHub { + suffix = "KhronosGroup/SPIRV-Headers"; + tag = "vulkan-sdk-"+version; + checksum = "0PL43-19Iaw4k7_D8J8BvoJ-iLgCVSYZ2ThgDPGfAJwIJFtre7l0cnQtLjcY-JvD"; + }; + + exec = cmake { + // upstream has no tests + skipTest = true; + }; +} + +package spirv-tools { + description = "an API and commands for processing SPIR-V modules"; + website = "https://github.com/KhronosGroup/SPIRV-Tools"; + anitya = 14894; + latest = anityaFallback; + + version* = "2026.1"; + source = remoteGitHub { + suffix = "KhronosGroup/SPIRV-Tools"; + tag = "v"+version; + checksum = "ZSQPQx8NltCDzQLk4qlaVxyWRWeI_JtsjEpeFt3kezTanl9DTHfLixSUCezMFBjv"; + }; + + exec = cmake { + cache = { + "SPIRV-Headers_SOURCE_DIR": "/system"; + }; + }; + + inputs = [ + python, + + spirv-headers, + ]; + + runtime = [ spirv-headers ]; +} + +package spirv-llvm-translator { + description = "bi-directional translation between SPIR-V and LLVM IR"; + website = "https://github.com/KhronosGroup/SPIRV-LLVM-Translator"; + anitya = 227273; + + version* = "22.1.2"; + source = remoteGitHub { + suffix = "KhronosGroup/SPIRV-LLVM-Translator"; + tag = "v"+version; + checksum = "JZAaV5ewYcm-35YA_U2BM2IcsQouZtX1BLZR0zh2vSlfEXMsT5OCtY4Gh5RJkcGy"; + }; + patches = [ "remove-early-prefix.patch" ]; + + // litArgs emits shell syntax + early = "\nexport LIT_OPTS=" + litArgs { + verbose = true; + + skipChecks = arch { + default = [ + // error: line 13: OpTypeCooperativeMatrixKHR Scope is limited to Workgroup and Subgroup + "cooperative_matrix_constant_null.spvasm", + ]; + + arm64 = [ + // error: line 13: OpTypeCooperativeMatrixKHR Scope is limited to Workgroup and Subgroup + "cooperative_matrix_constant_null.spvasm", + + // LLVM ERROR: unsupported calling convention + "DebugInfo/COFF/no-cus.ll", + "DebugInfo/Generic/2009-11-05-DeadGlobalVariable.ll", + "DebugInfo/Generic/2009-11-10-CurrentFn.ll", + "DebugInfo/Generic/2010-01-05-DbgScope.ll", + "DebugInfo/Generic/2010-03-12-llc-crash.ll", + "DebugInfo/Generic/2010-03-24-MemberFn.ll", + "DebugInfo/Generic/2010-04-19-FramePtr.ll", + "DebugInfo/Generic/2010-06-29-InlinedFnLocalVar.ll", + "DebugInfo/Generic/2010-10-01-crash.ll", + "DebugInfo/Generic/PR20038.ll", + "DebugInfo/Generic/constant-pointers.ll", + "DebugInfo/Generic/dead-argument-order.ll", + "DebugInfo/Generic/debug-info-eis-option.ll", + "DebugInfo/Generic/def-line.ll", + "DebugInfo/Generic/discriminator.ll", + "DebugInfo/Generic/dwarf-public-names.ll", + "DebugInfo/Generic/enum.ll", + "DebugInfo/Generic/func-using-decl.ll", + "DebugInfo/Generic/global.ll", + "DebugInfo/Generic/imported-name-inlined.ll", + "DebugInfo/Generic/incorrect-variable-debugloc1.ll", + "DebugInfo/Generic/inline-scopes.ll", + "DebugInfo/Generic/inlined-arguments.ll", + "DebugInfo/Generic/inlined-vars.ll", + "DebugInfo/Generic/linear-dbg-value.ll", + "DebugInfo/Generic/linkage-name-abstract.ll", + "DebugInfo/Generic/member-order.ll", + "DebugInfo/Generic/missing-abstract-variable.ll", + "DebugInfo/Generic/multiline.ll", + "DebugInfo/Generic/namespace_function_definition.ll", + "DebugInfo/Generic/namespace_inline_function_definition.ll", + "DebugInfo/Generic/noscopes.ll", + "DebugInfo/Generic/ptrsize.ll", + "DebugInfo/Generic/restrict.ll", + "DebugInfo/Generic/two-cus-from-same-file.ll", + "DebugInfo/Generic/version.ll", + "DebugInfo/LocalAddressSpace.ll", + "DebugInfo/UnknownBaseType.ll", + "DebugInfo/expr-opcode.ll", + ]; + }; + } + "\n"; + + exec = cmake { + cache = { + "CMAKE_SKIP_BUILD_RPATH": "ON"; + "BUILD_SHARED_LIBS": "ON"; + "LLVM_SPIRV_ENABLE_LIBSPIRV_DIS": "ON"; + "LLVM_EXTERNAL_SPIRV_HEADERS_SOURCE_DIR": "/system"; + "LLVM_EXTERNAL_LIT": "/system/bin/lit"; + "LLVM_INCLUDE_TESTS": "ON"; + }; + }; + + inputs = [ + bash, + lit, + + spirv-tools, + ]; + + runtime = [ spirv-tools ]; +} diff --git a/internal/rosa/package/spirv/remove-early-prefix.patch b/internal/rosa/package/spirv/remove-early-prefix.patch new file mode 100644 index 00000000..f184ebc7 --- /dev/null +++ b/internal/rosa/package/spirv/remove-early-prefix.patch @@ -0,0 +1,21 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index c000a77e..f18f3fde 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -164,7 +164,7 @@ install( + ${LLVM_SPIRV_INCLUDE_DIRS}/LLVMSPIRVOpts.h + ${LLVM_SPIRV_INCLUDE_DIRS}/LLVMSPIRVExtensions.inc + DESTINATION +- ${CMAKE_INSTALL_PREFIX}/include/LLVMSPIRVLib ++ include/LLVMSPIRVLib + ) + + configure_file(LLVMSPIRVLib.pc.in ${CMAKE_BINARY_DIR}/LLVMSPIRVLib.pc @ONLY) +@@ -172,5 +172,5 @@ install( + FILES + ${CMAKE_BINARY_DIR}/LLVMSPIRVLib.pc + DESTINATION +- ${CMAKE_INSTALL_PREFIX}/lib${LLVM_LIBDIR_SUFFIX}/pkgconfig ++ lib${LLVM_LIBDIR_SUFFIX}/pkgconfig + ) +;
\ No newline at end of file |
