internal/rosa/package: migrate spirv-llvm-translator
All checks were successful
Test / Create distribution (push) Successful in 1m4s
Test / Sandbox (push) Successful in 2m57s
Test / ShareFS (push) Successful in 3m43s
Test / Hakurei (push) Successful in 3m49s
Test / Sandbox (race detector) (push) Successful in 5m25s
Test / Hakurei (race detector) (push) Successful in 6m29s
Test / Flake checks (push) Successful in 1m21s
All checks were successful
Test / Create distribution (push) Successful in 1m4s
Test / Sandbox (push) Successful in 2m57s
Test / ShareFS (push) Successful in 3m43s
Test / Hakurei (push) Successful in 3m49s
Test / Sandbox (race detector) (push) Successful in 5m25s
Test / Hakurei (race detector) (push) Successful in 6m29s
Test / Flake checks (push) Successful in 1m21s
Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
@@ -1,121 +0,0 @@
|
||||
package rosa
|
||||
|
||||
import "hakurei.app/internal/pkg"
|
||||
|
||||
func (t Toolchain) newSPIRVLLVMTranslator() (pkg.Artifact, string) {
|
||||
const (
|
||||
version = "22.1.2"
|
||||
checksum = "JZAaV5ewYcm-35YA_U2BM2IcsQouZtX1BLZR0zh2vSlfEXMsT5OCtY4Gh5RJkcGy"
|
||||
)
|
||||
skipChecks := []string{
|
||||
// error: line 13: OpTypeCooperativeMatrixKHR Scope is limited to Workgroup and Subgroup
|
||||
"cooperative_matrix_constant_null.spvasm",
|
||||
}
|
||||
|
||||
switch t.arch {
|
||||
case "arm64":
|
||||
skipChecks = append(skipChecks,
|
||||
// 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",
|
||||
)
|
||||
}
|
||||
|
||||
return t.NewPackage("spirv-llvm-translator", version, newFromGitHub(
|
||||
"KhronosGroup/SPIRV-LLVM-Translator",
|
||||
"v"+version, checksum,
|
||||
), &PackageAttr{
|
||||
Patches: []KV{
|
||||
{"remove-early-prefix", `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
|
||||
)
|
||||
;`},
|
||||
},
|
||||
|
||||
// litArgs emits shell syntax
|
||||
ScriptEarly: `
|
||||
export LIT_OPTS=` + litArgs(true, skipChecks...) + `
|
||||
`,
|
||||
}, &CMakeHelper{
|
||||
Cache: []KV{
|
||||
{"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"},
|
||||
},
|
||||
},
|
||||
Bash,
|
||||
LIT,
|
||||
|
||||
SPIRVTools,
|
||||
), version
|
||||
}
|
||||
func init() {
|
||||
native.mustRegister(Toolchain.newSPIRVLLVMTranslator, &Metadata{
|
||||
Name: "spirv-llvm-translator",
|
||||
Description: "bi-directional translation between SPIR-V and LLVM IR",
|
||||
Website: "https://github.com/KhronosGroup/SPIRV-LLVM-Translator",
|
||||
|
||||
Dependencies: P{
|
||||
SPIRVTools,
|
||||
},
|
||||
|
||||
ID: 227273,
|
||||
})
|
||||
}
|
||||
@@ -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 ];
|
||||
}
|
||||
139
internal/rosa/package/spirv/package.az
Normal file
139
internal/rosa/package/spirv/package.az
Normal file
@@ -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 ];
|
||||
}
|
||||
21
internal/rosa/package/spirv/remove-early-prefix.patch
Normal file
21
internal/rosa/package/spirv/remove-early-prefix.patch
Normal file
@@ -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
|
||||
)
|
||||
;
|
||||
@@ -516,6 +516,24 @@ func (s *S) getFrame() azalea.Frame {
|
||||
return
|
||||
}},
|
||||
|
||||
// formatting helpers
|
||||
|
||||
k("litArgs"): {F: func(
|
||||
args azalea.FArgs,
|
||||
) (v any, set bool, err error) {
|
||||
var verbose bool
|
||||
var skipChecks []string
|
||||
if err = args.Apply(map[unique.Handle[azalea.Ident]]any{
|
||||
k("verbose"): &verbose,
|
||||
k("skipChecks"): &skipChecks,
|
||||
}); err != nil {
|
||||
return
|
||||
}
|
||||
v = litArgs(verbose, skipChecks...)
|
||||
set = true
|
||||
return
|
||||
}},
|
||||
|
||||
// intenral/pkg built-ins
|
||||
|
||||
k("remoteTar"): {F: func(
|
||||
|
||||
Reference in New Issue
Block a user