diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index ffac21692..e2ef502ec 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -8,6 +8,7 @@ stages: - test fmt: + image: "rust:trixie" stage: lint rules: - if: '$CI_COMMIT_BRANCH == "master" && $CI_PROJECT_NAMESPACE == "redox-os"' @@ -17,6 +18,7 @@ fmt: - cargo fmt -- --check cargo-test: + image: "rust:trixie" stage: lint rules: - if: '$CI_COMMIT_BRANCH == "master" && $CI_PROJECT_NAMESPACE == "redox-os"' diff --git a/Cargo.lock b/Cargo.lock index b95ef9214..617dc20c2 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -911,8 +911,8 @@ dependencies = [ [[package]] name = "redox-pkg" -version = "0.2.8" -source = "git+https://gitlab.redox-os.org/redox-os/pkgutils.git#6ed6a265cbe9abaf9d747e700f72cad9cea5a5d0" +version = "0.2.9" +source = "git+https://gitlab.redox-os.org/redox-os/pkgutils.git#78b50760a3ee6c6752d47ec6f3511cd28b5d70de" dependencies = [ "anyhow", "ignore", diff --git a/bin/x86_64-unknown-redox-llvm-config b/bin/x86_64-unknown-redox-llvm-config index 387d7e30c..a0f050e77 100755 --- a/bin/x86_64-unknown-redox-llvm-config +++ b/bin/x86_64-unknown-redox-llvm-config @@ -1,173 +1,51 @@ #!/usr/bin/env python3 -# The values here are copied from the output of llvm-config running under Redox. -# This is a hack, and should be replaced if possible. - -# generated with this ion script: -# for component in @(llvm-config --components) -# echo -e \"$component\": \"$(llvm-config --libs $component)\", -# end -components = { - 'aggressiveinstcombine': '-lLLVMAggressiveInstCombine -lLLVMTransformUtils -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'all': '-lLLVMWindowsManifest -lLLVMXRay -lLLVMLibDriver -lLLVMDlltoolDriver -lLLVMTextAPIBinaryReader -lLLVMCoverage -lLLVMLineEditor -lLLVMX86TargetMCA -lLLVMX86Disassembler -lLLVMX86AsmParser -lLLVMX86CodeGen -lLLVMX86Desc -lLLVMX86Info -lLLVMOrcDebugging -lLLVMOrcJIT -lLLVMWindowsDriver -lLLVMMCJIT -lLLVMJITLink -lLLVMInterpreter -lLLVMExecutionEngine -lLLVMRuntimeDyld -lLLVMOrcTargetProcess -lLLVMOrcShared -lLLVMDWP -lLLVMDebugInfoLogicalView -lLLVMDebugInfoGSYM -lLLVMOption -lLLVMObjectYAML -lLLVMObjCopy -lLLVMMCA -lLLVMMCDisassembler -lLLVMLTO -lLLVMPasses -lLLVMHipStdPar -lLLVMCFGuard -lLLVMCoroutines -lLLVMipo -lLLVMVectorize -lLLVMLinker -lLLVMInstrumentation -lLLVMFrontendOpenMP -lLLVMFrontendOffloading -lLLVMFrontendOpenACC -lLLVMFrontendHLSL -lLLVMFrontendDriver -lLLVMExtensions -lLLVMDWARFLinkerParallel -lLLVMDWARFLinkerClassic -lLLVMDWARFLinker -lLLVMGlobalISel -lLLVMMIRParser -lLLVMAsmPrinter -lLLVMSelectionDAG -lLLVMCodeGen -lLLVMTarget -lLLVMObjCARCOpts -lLLVMCodeGenTypes -lLLVMIRPrinter -lLLVMInterfaceStub -lLLVMFileCheck -lLLVMFuzzMutate -lLLVMScalarOpts -lLLVMInstCombine -lLLVMAggressiveInstCombine -lLLVMTransformUtils -lLLVMBitWriter -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMFuzzerCLI -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMTableGen -lLLVMSupport -lLLVMDemangle', - 'all-targets': '-lLLVMX86TargetMCA -lLLVMMCA -lLLVMX86Disassembler -lLLVMX86AsmParser -lLLVMX86CodeGen -lLLVMX86Desc -lLLVMX86Info -lLLVMMCDisassembler -lLLVMInstrumentation -lLLVMIRPrinter -lLLVMGlobalISel -lLLVMSelectionDAG -lLLVMCFGuard -lLLVMAsmPrinter -lLLVMCodeGen -lLLVMTarget -lLLVMScalarOpts -lLLVMInstCombine -lLLVMAggressiveInstCombine -lLLVMObjCARCOpts -lLLVMTransformUtils -lLLVMCodeGenTypes -lLLVMBitWriter -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'analysis': '-lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'asmparser': '-lLLVMAsmParser -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'asmprinter': '-lLLVMAsmPrinter -lLLVMCodeGen -lLLVMTarget -lLLVMScalarOpts -lLLVMInstCombine -lLLVMAggressiveInstCombine -lLLVMObjCARCOpts -lLLVMTransformUtils -lLLVMCodeGenTypes -lLLVMBitWriter -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'binaryformat': '-lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'bitreader': '-lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMBitstreamReader -lLLVMSupport -lLLVMDemangle', - 'bitstreamreader': '-lLLVMBitstreamReader -lLLVMSupport -lLLVMDemangle', - 'bitwriter': '-lLLVMBitWriter -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'cfguard': '-lLLVMCFGuard -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'codegen': '-lLLVMCodeGen -lLLVMTarget -lLLVMScalarOpts -lLLVMInstCombine -lLLVMAggressiveInstCombine -lLLVMObjCARCOpts -lLLVMTransformUtils -lLLVMCodeGenTypes -lLLVMBitWriter -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'codegentypes': '-lLLVMCodeGenTypes -lLLVMSupport -lLLVMDemangle', - 'core': '-lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'coroutines': '-lLLVMCoroutines -lLLVMipo -lLLVMInstrumentation -lLLVMVectorize -lLLVMLinker -lLLVMFrontendOpenMP -lLLVMFrontendOffloading -lLLVMScalarOpts -lLLVMInstCombine -lLLVMBitWriter -lLLVMAggressiveInstCombine -lLLVMTransformUtils -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'coverage': '-lLLVMCoverage -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'debuginfobtf': '-lLLVMDebugInfoBTF -lLLVMSupport -lLLVMDemangle', - 'debuginfocodeview': '-lLLVMDebugInfoCodeView -lLLVMSupport -lLLVMDemangle', - 'debuginfodwarf': '-lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'debuginfogsym': '-lLLVMDebugInfoGSYM -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'debuginfologicalview': '-lLLVMDebugInfoLogicalView -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'debuginfomsf': '-lLLVMDebugInfoMSF -lLLVMSupport -lLLVMDemangle', - 'debuginfopdb': '-lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'demangle': '-lLLVMDemangle', - 'dlltooldriver': '-lLLVMDlltoolDriver -lLLVMOption -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMBitstreamReader -lLLVMSupport -lLLVMDemangle', - 'dwarflinker': '-lLLVMDWARFLinker -lLLVMCodeGen -lLLVMTarget -lLLVMScalarOpts -lLLVMInstCombine -lLLVMAggressiveInstCombine -lLLVMObjCARCOpts -lLLVMTransformUtils -lLLVMCodeGenTypes -lLLVMBitWriter -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'dwarflinkerclassic': '-lLLVMDWARFLinkerClassic -lLLVMDWARFLinker -lLLVMAsmPrinter -lLLVMCodeGen -lLLVMTarget -lLLVMScalarOpts -lLLVMInstCombine -lLLVMAggressiveInstCombine -lLLVMObjCARCOpts -lLLVMTransformUtils -lLLVMCodeGenTypes -lLLVMBitWriter -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'dwarflinkerparallel': '-lLLVMDWARFLinkerParallel -lLLVMDWARFLinker -lLLVMAsmPrinter -lLLVMCodeGen -lLLVMTarget -lLLVMScalarOpts -lLLVMInstCombine -lLLVMAggressiveInstCombine -lLLVMObjCARCOpts -lLLVMTransformUtils -lLLVMCodeGenTypes -lLLVMBitWriter -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'dwp': '-lLLVMDWP -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'engine': '-lLLVMInterpreter -lLLVMExecutionEngine -lLLVMRuntimeDyld -lLLVMOrcTargetProcess -lLLVMOrcShared -lLLVMCodeGen -lLLVMTarget -lLLVMScalarOpts -lLLVMInstCombine -lLLVMAggressiveInstCombine -lLLVMObjCARCOpts -lLLVMTransformUtils -lLLVMCodeGenTypes -lLLVMBitWriter -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'executionengine': '-lLLVMExecutionEngine -lLLVMTarget -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMRuntimeDyld -lLLVMOrcTargetProcess -lLLVMOrcShared -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMBitReader -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'extensions': '-lLLVMExtensions -lLLVMSupport -lLLVMDemangle', - 'filecheck': '-lLLVMFileCheck', - 'frontenddriver': '-lLLVMFrontendDriver -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'frontendhlsl': '-lLLVMFrontendHLSL -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'frontendoffloading': '-lLLVMFrontendOffloading -lLLVMTransformUtils -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'frontendopenacc': '-lLLVMFrontendOpenACC', - 'frontendopenmp': '-lLLVMFrontendOpenMP -lLLVMFrontendOffloading -lLLVMScalarOpts -lLLVMInstCombine -lLLVMAggressiveInstCombine -lLLVMTransformUtils -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'fuzzercli': '-lLLVMFuzzerCLI -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'fuzzmutate': '-lLLVMFuzzMutate -lLLVMScalarOpts -lLLVMInstCombine -lLLVMAggressiveInstCombine -lLLVMTransformUtils -lLLVMBitWriter -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'globalisel': '-lLLVMGlobalISel -lLLVMSelectionDAG -lLLVMCodeGen -lLLVMTarget -lLLVMScalarOpts -lLLVMInstCombine -lLLVMAggressiveInstCombine -lLLVMObjCARCOpts -lLLVMTransformUtils -lLLVMCodeGenTypes -lLLVMBitWriter -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'hipstdpar': '-lLLVMHipStdPar -lLLVMTransformUtils -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'instcombine': '-lLLVMInstCombine -lLLVMTransformUtils -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'instrumentation': '-lLLVMInstrumentation -lLLVMTransformUtils -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'interfacestub': '-lLLVMInterfaceStub -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'interpreter': '-lLLVMInterpreter -lLLVMExecutionEngine -lLLVMRuntimeDyld -lLLVMOrcTargetProcess -lLLVMOrcShared -lLLVMCodeGen -lLLVMTarget -lLLVMScalarOpts -lLLVMInstCombine -lLLVMAggressiveInstCombine -lLLVMObjCARCOpts -lLLVMTransformUtils -lLLVMCodeGenTypes -lLLVMBitWriter -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'ipo': '-lLLVMipo -lLLVMInstrumentation -lLLVMVectorize -lLLVMLinker -lLLVMFrontendOpenMP -lLLVMFrontendOffloading -lLLVMScalarOpts -lLLVMInstCombine -lLLVMBitWriter -lLLVMAggressiveInstCombine -lLLVMTransformUtils -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'irprinter': '-lLLVMIRPrinter -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'irreader': '-lLLVMIRReader -lLLVMBitReader -lLLVMAsmParser -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'jitlink': '-lLLVMJITLink -lLLVMOrcTargetProcess -lLLVMOrcShared -lLLVMOption -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'libdriver': '-lLLVMLibDriver -lLLVMOption -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'lineeditor': '-lLLVMLineEditor -lLLVMSupport -lLLVMDemangle', - 'linker': '-lLLVMLinker -lLLVMTransformUtils -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'lto': '-lLLVMLTO -lLLVMPasses -lLLVMIRPrinter -lLLVMHipStdPar -lLLVMCoroutines -lLLVMCFGuard -lLLVMipo -lLLVMInstrumentation -lLLVMVectorize -lLLVMLinker -lLLVMFrontendOpenMP -lLLVMFrontendOffloading -lLLVMExtensions -lLLVMCodeGen -lLLVMTarget -lLLVMScalarOpts -lLLVMInstCombine -lLLVMObjCARCOpts -lLLVMCodeGenTypes -lLLVMBitWriter -lLLVMAggressiveInstCombine -lLLVMTransformUtils -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'mc': '-lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'mca': '-lLLVMMCA -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'mcdisassembler': '-lLLVMMCDisassembler -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'mcjit': '-lLLVMMCJIT -lLLVMExecutionEngine -lLLVMTarget -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMRuntimeDyld -lLLVMOrcTargetProcess -lLLVMOrcShared -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMBitReader -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'mcparser': '-lLLVMMCParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'mirparser': '-lLLVMMIRParser -lLLVMCodeGen -lLLVMTarget -lLLVMScalarOpts -lLLVMInstCombine -lLLVMAggressiveInstCombine -lLLVMObjCARCOpts -lLLVMTransformUtils -lLLVMCodeGenTypes -lLLVMBitWriter -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMAsmParser -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'native': '-lLLVMX86TargetMCA -lLLVMMCA -lLLVMX86Disassembler -lLLVMX86AsmParser -lLLVMX86CodeGen -lLLVMX86Desc -lLLVMX86Info -lLLVMMCDisassembler -lLLVMInstrumentation -lLLVMIRPrinter -lLLVMGlobalISel -lLLVMSelectionDAG -lLLVMCFGuard -lLLVMAsmPrinter -lLLVMCodeGen -lLLVMTarget -lLLVMScalarOpts -lLLVMInstCombine -lLLVMAggressiveInstCombine -lLLVMObjCARCOpts -lLLVMTransformUtils -lLLVMCodeGenTypes -lLLVMBitWriter -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'nativecodegen': '-lLLVMX86CodeGen -lLLVMX86Desc -lLLVMX86Info -lLLVMMCDisassembler -lLLVMInstrumentation -lLLVMIRPrinter -lLLVMGlobalISel -lLLVMSelectionDAG -lLLVMCFGuard -lLLVMAsmPrinter -lLLVMCodeGen -lLLVMTarget -lLLVMScalarOpts -lLLVMInstCombine -lLLVMAggressiveInstCombine -lLLVMObjCARCOpts -lLLVMTransformUtils -lLLVMCodeGenTypes -lLLVMBitWriter -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'objcarcopts': '-lLLVMObjCARCOpts -lLLVMTransformUtils -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'objcopy': '-lLLVMObjCopy -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'object': '-lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMBitstreamReader -lLLVMSupport -lLLVMDemangle', - 'objectyaml': '-lLLVMObjectYAML -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'option': '-lLLVMOption -lLLVMSupport -lLLVMDemangle', - 'orcdebugging': '-lLLVMOrcDebugging -lLLVMOrcJIT -lLLVMPasses -lLLVMIRPrinter -lLLVMHipStdPar -lLLVMCoroutines -lLLVMipo -lLLVMInstrumentation -lLLVMVectorize -lLLVMLinker -lLLVMFrontendOpenMP -lLLVMFrontendOffloading -lLLVMCodeGen -lLLVMScalarOpts -lLLVMInstCombine -lLLVMObjCARCOpts -lLLVMCodeGenTypes -lLLVMBitWriter -lLLVMCFGuard -lLLVMAggressiveInstCombine -lLLVMTransformUtils -lLLVMWindowsDriver -lLLVMExecutionEngine -lLLVMTarget -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMRuntimeDyld -lLLVMJITLink -lLLVMOrcTargetProcess -lLLVMOrcShared -lLLVMOption -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'orcjit': '-lLLVMOrcJIT -lLLVMPasses -lLLVMIRPrinter -lLLVMHipStdPar -lLLVMCoroutines -lLLVMipo -lLLVMInstrumentation -lLLVMVectorize -lLLVMLinker -lLLVMFrontendOpenMP -lLLVMFrontendOffloading -lLLVMCodeGen -lLLVMScalarOpts -lLLVMInstCombine -lLLVMObjCARCOpts -lLLVMCodeGenTypes -lLLVMBitWriter -lLLVMCFGuard -lLLVMAggressiveInstCombine -lLLVMTransformUtils -lLLVMWindowsDriver -lLLVMJITLink -lLLVMOption -lLLVMExecutionEngine -lLLVMTarget -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMRuntimeDyld -lLLVMOrcTargetProcess -lLLVMOrcShared -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMBitReader -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'orcshared': '-lLLVMOrcShared -lLLVMSupport -lLLVMDemangle', - 'orctargetprocess': '-lLLVMOrcTargetProcess -lLLVMTargetParser -lLLVMOrcShared -lLLVMSupport -lLLVMDemangle', - 'passes': '-lLLVMPasses -lLLVMIRPrinter -lLLVMHipStdPar -lLLVMCoroutines -lLLVMipo -lLLVMInstrumentation -lLLVMVectorize -lLLVMLinker -lLLVMFrontendOpenMP -lLLVMFrontendOffloading -lLLVMCodeGen -lLLVMTarget -lLLVMScalarOpts -lLLVMInstCombine -lLLVMObjCARCOpts -lLLVMCodeGenTypes -lLLVMBitWriter -lLLVMCFGuard -lLLVMAggressiveInstCombine -lLLVMTransformUtils -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'profiledata': '-lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'remarks': '-lLLVMRemarks -lLLVMBitstreamReader -lLLVMSupport -lLLVMDemangle', - 'runtimedyld': '-lLLVMRuntimeDyld -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMBitReader -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'scalaropts': '-lLLVMScalarOpts -lLLVMInstCombine -lLLVMAggressiveInstCombine -lLLVMTransformUtils -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'selectiondag': '-lLLVMSelectionDAG -lLLVMCodeGen -lLLVMTarget -lLLVMScalarOpts -lLLVMInstCombine -lLLVMAggressiveInstCombine -lLLVMObjCARCOpts -lLLVMTransformUtils -lLLVMCodeGenTypes -lLLVMBitWriter -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'support': '-lLLVMSupport -lLLVMDemangle', - 'symbolize': '-lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'tablegen': '-lLLVMTableGen -lLLVMSupport -lLLVMDemangle', - 'target': '-lLLVMTarget -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'targetparser': '-lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'textapi': '-lLLVMTextAPI -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'textapibinaryreader': '-lLLVMTextAPIBinaryReader -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMBitstreamReader -lLLVMSupport -lLLVMDemangle', - 'transformutils': '-lLLVMTransformUtils -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'vectorize': '-lLLVMVectorize -lLLVMTransformUtils -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'windowsdriver': '-lLLVMWindowsDriver -lLLVMTargetParser -lLLVMOption -lLLVMSupport -lLLVMDemangle', - 'windowsmanifest': '-lLLVMWindowsManifest -lLLVMSupport -lLLVMDemangle', - 'x86': '-lLLVMX86TargetMCA -lLLVMMCA -lLLVMX86Disassembler -lLLVMX86AsmParser -lLLVMX86CodeGen -lLLVMX86Desc -lLLVMX86Info -lLLVMMCDisassembler -lLLVMInstrumentation -lLLVMIRPrinter -lLLVMGlobalISel -lLLVMSelectionDAG -lLLVMCFGuard -lLLVMAsmPrinter -lLLVMCodeGen -lLLVMTarget -lLLVMScalarOpts -lLLVMInstCombine -lLLVMAggressiveInstCombine -lLLVMObjCARCOpts -lLLVMTransformUtils -lLLVMCodeGenTypes -lLLVMBitWriter -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'x86asmparser': '-lLLVMX86AsmParser -lLLVMX86Desc -lLLVMX86Info -lLLVMMCDisassembler -lLLVMCodeGenTypes -lLLVMMCParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'x86codegen': '-lLLVMX86CodeGen -lLLVMX86Desc -lLLVMX86Info -lLLVMMCDisassembler -lLLVMInstrumentation -lLLVMIRPrinter -lLLVMGlobalISel -lLLVMSelectionDAG -lLLVMCFGuard -lLLVMAsmPrinter -lLLVMCodeGen -lLLVMTarget -lLLVMScalarOpts -lLLVMInstCombine -lLLVMAggressiveInstCombine -lLLVMObjCARCOpts -lLLVMTransformUtils -lLLVMCodeGenTypes -lLLVMBitWriter -lLLVMAnalysis -lLLVMProfileData -lLLVMSymbolize -lLLVMDebugInfoBTF -lLLVMDebugInfoPDB -lLLVMDebugInfoMSF -lLLVMDebugInfoDWARF -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBitstreamReader -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'x86desc': '-lLLVMX86Desc -lLLVMX86Info -lLLVMMCDisassembler -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMCodeGenTypes -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'x86disassembler': '-lLLVMX86Disassembler -lLLVMX86Info -lLLVMMCDisassembler -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'x86info': '-lLLVMX86Info -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMSupport -lLLVMDemangle', - 'x86targetmca': '-lLLVMX86TargetMCA -lLLVMX86Desc -lLLVMX86Info -lLLVMMCDisassembler -lLLVMMCParser -lLLVMMCA -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMCodeGenTypes -lLLVMSupport -lLLVMDemangle', - 'xray': '-lLLVMXRay -lLLVMObject -lLLVMTextAPI -lLLVMMCParser -lLLVMIRReader -lLLVMAsmParser -lLLVMMC -lLLVMDebugInfoCodeView -lLLVMBitReader -lLLVMCore -lLLVMRemarks -lLLVMBinaryFormat -lLLVMTargetParser -lLLVMBitstreamReader -lLLVMSupport -lLLVMDemangle', -} +# This script wraps llvm-config that intended for cross compiling to Redox. +# Because we can't run llvm-config compiled to Redox, we wrap it here. +# Any recipes that calls this script must have "host:llvm.runtime" available. import os import sys +import subprocess -def fail(message): - print("redox llvm-config failure", file=sys.stderr) - print(message, file=sys.stderr) - sys.exit(1) +LLVM_CONFIG = "/usr/bin/llvm-config" -prefix = os.environ["COOKBOOK_SYSROOT"] +def main(): + toolchain_path = os.environ.get("COOKBOOK_TOOLCHAIN") + sysroot_path = os.environ.get("COOKBOOK_SYSROOT") -args = [] -link_static = False -for arg in sys.argv[1:]: - if arg == "--link-static": - link_static = True - elif arg == "--link-shared": - fail("shared linking disabled") - else: - args.append(arg) + if not toolchain_path or not sysroot_path: + print(f"Error: COOKBOOK_TOOLCHAIN or COOKBOOK_SYSROOT not set", file=sys.stderr) + sys.exit(1) -if args == []: - fail("no arguments") -elif args == ["--version"]: - print("18.1.4") -elif args == ["--bindir"]: - print(prefix + "/bin") -elif args == ["--cppflags"]: - print("-I" + prefix + "/include -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS") -elif args == ["--cxxflags"]: - print("-I" + prefix + "/include --std=c++17 -fno-exceptions -funwind-tables -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS") -elif args == ["--components"]: - print(" ".join(components.keys())) -elif args == ["--includedir"]: - print(prefix + "/include") -elif args == ["--ldflags"]: - print("-L" + prefix + "/lib"); -elif args == ["--libdir"]: - print(prefix + "/lib") -elif args == ["--system-libs"]: - print("-lm") -elif args == ["--targets-built"]: - print("X86") -elif args[0] == "--libs": - libs = [] - if len(args) == 1: - args.append("all") - for component in args[1:]: - for lib in components[component].split(" "): - libs.append(lib) - print(" ".join(libs)) -elif args[0] == "--libfiles": - libs = [] - if len(args) == 1: - args.append("all") - for component in args[1:]: - for lib in components[component].split(" "): - file = prefix + "/lib/lib" + lib[2:] + ".a" - libs.append(file) - print(" ".join(libs)) -elif args == ["--has-rtti"]: - print("YES") -elif args[0] == "--shared-mode": - print("static") -else: - fail("unknown arguments: " + " ".join(args)) + cmd = [toolchain_path + LLVM_CONFIG] + sys.argv[1:] + + try: + result = subprocess.run( + cmd, + stdout=subprocess.PIPE, + stderr=sys.stderr, + check=False, + text=True + ) + except FileNotFoundError: + print(f"Error: Could not find executable '{LLVM_CONFIG}'", file=sys.stderr) + sys.exit(1) + + if result.returncode != 0: + sys.exit(result.returncode) + + output = result.stdout + + if sys.argv[1] in ["--bindir"]: + output = toolchain_path + "/usr/bin" + else: #if sys.argv[1] in ["--cppflags", "--cxxflags", "--includedir", "--ldflags", "--libdir", "--libfiles"] + src = toolchain_path.rstrip(os.sep) + dst = sysroot_path.rstrip(os.sep) + + output = output.replace(src, dst) + + print(output, end='') + +if __name__ == "__main__": + main() diff --git a/config/redoxer.toml b/config/redoxer.toml index 5ef92a9d7..8c50e37d5 100644 --- a/config/redoxer.toml +++ b/config/redoxer.toml @@ -9,13 +9,9 @@ ca-certificates = {} coreutils = {} extrautils = {} findutils = {} -gcc13 = {} -"gcc13.cxx" = {} -gnu-binutils = {} ion = {} netdb = {} pkgutils = {} -redoxerd = {} relibc = {} # Override to not background dhcpd diff --git a/config/x86_64/ci.toml b/config/x86_64/ci.toml index 45a79ac83..393077f61 100644 --- a/config/x86_64/ci.toml +++ b/config/x86_64/ci.toml @@ -116,7 +116,7 @@ libwebp = {} libxkbcommon = {} libuuid = {} libxml2 = {} -llvm18 = {} +llvm21 = {} lsd = {} lua54 = {} lz4 = {} @@ -181,7 +181,6 @@ procedural-wallpapers-rs = {} python312 = {} #qemu = {} # can be built, but not working readline = {} -redoxerd = {} redox-fatfs = {} redoxfs = {} redox-games = {} diff --git a/mk/podman.mk b/mk/podman.mk index e81fd8d0b..8f5223ee2 100644 --- a/mk/podman.mk +++ b/mk/podman.mk @@ -58,8 +58,6 @@ container_kill: FORCE build/container.tag: $(CONTAINERFILE) ifeq ($(PODMAN_BUILD),1) rm -f build/container.tag - -chmod -R 0700 $(PODMAN_HOME) || true - -rm -rf $(PODMAN_HOME) || true -podman image rm --force $(IMAGE_TAG) || true mkdir -p $(PODMAN_HOME) @echo "Building Podman image. This may take some time." diff --git a/mk/prefix.mk b/mk/prefix.mk index 4fa0e8716..47fdd6bcd 100644 --- a/mk/prefix.mk +++ b/mk/prefix.mk @@ -175,11 +175,15 @@ $(PREFIX)/binutils-$(BINUTILS_BRANCH).tar.bz2: mv $@.partial $@ $(PREFIX)/binutils: $(PREFIX)/binutils-$(BINUTILS_BRANCH).tar.bz2 +ifeq ($(PODMAN_BUILD),1) + $(PODMAN_RUN) make $@ +else rm -rf "$@.partial" "$@" mkdir -p "$@.partial" tar --extract --file "$<" --directory "$@.partial" --no-same-owner --strip-components=1 touch "$@.partial" mv "$@.partial" "$@" +endif $(PREFIX)/binutils-install: $(PREFIX)/binutils $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) @@ -211,11 +215,15 @@ $(PREFIX)/gcc-$(GCC_BRANCH).tar.bz2: mv "$@.partial" "$@" $(PREFIX)/gcc: $(PREFIX)/gcc-$(GCC_BRANCH).tar.bz2 +ifeq ($(PODMAN_BUILD),1) + $(PODMAN_RUN) make $@ +else mkdir -p "$@.partial" tar --extract --file "$<" --directory "$@.partial" --no-same-owner --strip-components=1 cd "$@.partial" && ./contrib/download_prerequisites touch "$@.partial" mv "$@.partial" "$@" +endif $(PREFIX)/gcc-freestanding-install: $(PREFIX)/gcc | $(PREFIX)/binutils-install $(CONTAINER_TAG) ifeq ($(PODMAN_BUILD),1) diff --git a/podman/redox-base-containerfile b/podman/redox-base-containerfile index c1de779c3..525d64e17 100644 --- a/podman/redox-base-containerfile +++ b/podman/redox-base-containerfile @@ -14,7 +14,6 @@ RUN apt-get update \ bison \ bsdextrautils \ build-essential \ - clang \ cmake \ curl \ dos2unix \ @@ -51,13 +50,11 @@ RUN apt-get update \ libsdl1.2-dev \ libsdl2-ttf-dev \ libxml2-utils \ - llvm \ - lua5.4 \ - luajit \ lzip \ m4 \ make \ meson \ + nano \ nasm \ ninja-build \ patch \ diff --git a/podman/rustinstall.sh b/podman/rustinstall.sh index d4ae427a9..31bd594cf 100755 --- a/podman/rustinstall.sh +++ b/podman/rustinstall.sh @@ -3,9 +3,19 @@ # This script install the Rust toolchain and the build system dependencies # in Podman after the image has been built +echo Installing rust... curl https://sh.rustup.rs -sSf | sh -s -- -y --default-toolchain stable --profile minimal -curl -sSLf https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh | bash -cargo +stable binstall --no-confirm --force --version 0.10.0 sccache -cargo +stable binstall --no-confirm --force --version 1.42.4 just -cargo +stable binstall --no-confirm --force --version 0.29.0 cbindgen +echo Downloading sccache... +SCCACHE_URL=https://github.com/mozilla/sccache/releases/download/v0.10.0/sccache-v0.10.0-$(uname -m)-unknown-linux-musl.tar.gz +wget -qO- --show-progress $SCCACHE_URL | tar -xz -C ~/.cargo/bin --strip-components=1 --wildcards '*/sccache' + +echo Downloading just... +JUST_URL=https://github.com/casey/just/releases/download/1.45.0/just-1.45.0-$(uname -m)-unknown-linux-musl.tar.gz +wget -qO- --show-progress $JUST_URL | tar -xz -C ~/.cargo/bin --wildcards 'just' + +echo Downloading cbindgen... +CBINDGEN_NAME=$( [[ $(uname -m) = "x86_64" ]] && echo "ubuntu22.04" || echo "ubuntu22.04-aarch64" ) +CBINDGEN_URL=https://github.com/mozilla/cbindgen/releases/download/0.29.0/cbindgen-$CBINDGEN_NAME +wget -qO- --show-progress $CBINDGEN_URL > ~/.cargo/bin/cbindgen +chmod +x ~/.cargo/bin/cbindgen diff --git a/recipes/core/base-initfs/recipe.toml b/recipes/core/base-initfs/recipe.toml index 0b4aec41f..bcdc1779b 100644 --- a/recipes/core/base-initfs/recipe.toml +++ b/recipes/core/base-initfs/recipe.toml @@ -107,7 +107,7 @@ cp "${COOKBOOK_BUILD}/initfs/bin/zerod" "${COOKBOOK_BUILD}/initfs/bin/nulld" cp "${COOKBOOK_SYSROOT}/usr/bin/redoxfs" "${COOKBOOK_BUILD}/initfs/bin" ARCH="$(echo "${GNU_TARGET}" | cut -d - -f1)" -cargo \ +RUSTFLAGS="$RUSTFLAGS -Ctarget-feature=+crt-static" cargo \ -Zbuild-std=core,alloc,compiler_builtins \ -Zbuild-std-features=compiler-builtins-mem build \ --target "${TARGET}" \ diff --git a/recipes/core/base/recipe.toml b/recipes/core/base/recipe.toml index b51b4d052..ae8b45467 100644 --- a/recipes/core/base/recipe.toml +++ b/recipes/core/base/recipe.toml @@ -39,6 +39,7 @@ BINS=( virtio-netd xhcid inputd + redoxerd ) # Add additional drivers to the list to build, that are not in drivers-initfs @@ -60,7 +61,7 @@ export CARGO_PROFILE_RELEASE_PANIC=abort $(for bin in "${BINS[@]}"; do echo "-p" "${bin}"; done) for bin in "${BINS[@]}" do - if [[ "${bin}" == "inputd" || "${bin}" == "pcid" || "${bin}" == "pcid-spawner" ]]; then + if [[ "${bin}" == "inputd" || "${bin}" == "pcid" || "${bin}" == "pcid-spawner" || "${bin}" == "redoxerd" ]]; then cp -v "target/${TARGET}/${build_type}/${bin}" "${COOKBOOK_STAGE}/usr/bin" else cp -v "target/${TARGET}/${build_type}/${bin}" "${COOKBOOK_STAGE}/usr/lib/drivers" diff --git a/recipes/demos/gears/recipe.toml b/recipes/demos/gears/recipe.toml index b736d6b4f..d2b9e36a6 100644 --- a/recipes/demos/gears/recipe.toml +++ b/recipes/demos/gears/recipe.toml @@ -1,7 +1,6 @@ [build] dependencies=[ "liborbital", - "llvm18", "mesa", "mesa-glu", "zlib", diff --git a/recipes/demos/glutin/recipe.toml b/recipes/demos/glutin/recipe.toml index 67dd944a9..2ba5786fa 100644 --- a/recipes/demos/glutin/recipe.toml +++ b/recipes/demos/glutin/recipe.toml @@ -6,7 +6,6 @@ upstream = "https://github.com/rust-windowing/glutin.git" [build] template = "custom" dependencies = [ - "llvm18", "mesa", "zlib" ] diff --git a/recipes/demos/osdemo/recipe.toml b/recipes/demos/osdemo/recipe.toml index 720f1315f..ced17af5e 100644 --- a/recipes/demos/osdemo/recipe.toml +++ b/recipes/demos/osdemo/recipe.toml @@ -2,7 +2,6 @@ template = "custom" dependencies = [ "liborbital", - "llvm18", "mesa", "mesa-glu", "zlib" diff --git a/recipes/dev/gnu-make/recipe.toml b/recipes/dev/gnu-make/recipe.toml index d9c722c9e..7199d8059 100644 --- a/recipes/dev/gnu-make/recipe.toml +++ b/recipes/dev/gnu-make/recipe.toml @@ -13,6 +13,6 @@ autotools_recursive_regenerate template = "custom" script = """ DYNAMIC_INIT -cp -rp "$COOKBOOK_SOURCE/." ./ +rsync -av --delete "$COOKBOOK_SOURCE/." ./ cookbook_configure -""" \ No newline at end of file +""" diff --git a/recipes/dev/llvm21/recipe.toml b/recipes/dev/llvm21/recipe.toml index e01a70bd2..ddd1b793a 100644 --- a/recipes/dev/llvm21/recipe.toml +++ b/recipes/dev/llvm21/recipe.toml @@ -7,66 +7,105 @@ shallow_clone = true [build] template = "custom" dependencies = [ - "zlib" + "zlib", + "libxml2", +] +dev-dependencies = [ + "libstdcxx", + "host:xz", + "host:libarchive", # workaround for cmake error ] script = """ DYNAMIC_INIT -# https://llvm.org/docs/CMake.html -case "${TARGET}" in - x86-unknown-redox) - LLVM_TARGETS_TO_BUILD="X86" - ;; - x86_64-unknown-redox) - LLVM_TARGETS_TO_BUILD="X86" - ;; - aarch64-unknown-redox) - LLVM_TARGETS_TO_BUILD="AArch64" - ;; - riscv64gc-unknown-redox) - LLVM_TARGETS_TO_BUILD="RISCV" - ;; - *) - LLVM_TARGETS_TO_BUILD="host" - ;; -esac - COOKBOOK_CMAKE_FLAGS+=( -DCMAKE_CXX_FLAGS="--std=gnu++11" -DBUILD_SHARED_LIBS=False -DLLVM_LINK_LLVM_DYLIB=On -DCROSS_TOOLCHAIN_FLAGS_NATIVE="-DCMAKE_TOOLCHAIN_FILE=$(realpath "${COOKBOOK_RECIPE}/native.cmake")" - -DLLVM_BUILD_BENCHMARKS=Off -DLLVM_BUILD_EXAMPLES=Off -DLLVM_BUILD_TESTS=Off - -DLLVM_BUILD_UTILS=Off + -DLLVM_BUILD_UTILS=On -DLLVM_DEFAULT_TARGET_TRIPLE="${TARGET}" -DLLVM_ENABLE_LTO=Off -DLLVM_ENABLE_RTTI=On -DLLVM_ENABLE_THREADS=On - -DLLVM_ENABLE_ZSTD=Off - -DLLVM_INCLUDE_BENCHMARKS=Off -DLLVM_INCLUDE_EXAMPLES=Off -DLLVM_INCLUDE_TESTS=Off - -DLLVM_INCLUDE_UTILS=Off + -DLLVM_INSTALL_UTILS=On -DLLVM_OPTIMIZED_TABLEGEN=On -DLLVM_TARGET_ARCH="$(echo "${TARGET}" | cut -d - -f1)" - -DLLVM_TARGETS_TO_BUILD="${LLVM_TARGETS_TO_BUILD}" - -DLLVM_TOOL_LLVM_COV_BUILD=Off - -DLLVM_TOOL_LLVM_LTO_BUILD=Off - -DLLVM_TOOL_LLVM_LTO2_BUILD=Off - -DLLVM_TOOL_LLVM_PROFDATA_BUILD=Off - -DLLVM_TOOL_LLVM_RTDYLD_BUILD=Off - -DLLVM_TOOL_LLVM_XRAY_BUILD=Off - -DLLVM_TOOL_LLI_BUILD=Off - -DLLVM_TOOL_LTO_BUILD=Off + -DLLVM_TARGETS_TO_BUILD="X86;AArch64" + -DLLVM_TOOL_LLVM_COV_BUILD=On + -DLLVM_TOOL_LLVM_PROFDATA_BUILD=On -DLLVM_TOOLS_INSTALL_DIR=bin -DLLVM_UTILS_INSTALL_DIR=bin + -DLIBCLANG_BUILD_STATIC=On -DUNIX=1 - -DLLVM_ENABLE_PROJECTS="llvm" + -DLLVM_ENABLE_PROJECTS="llvm;clang;clang-tools-extra;lld" ) # Native tablegen build fails with too many jobs, limit to 16 COOKBOOK_MAKE_JOBS="$(( ${COOKBOOK_MAKE_JOBS} > 16 ? 16 : ${COOKBOOK_MAKE_JOBS} ))" -cookbook_cmake "${COOKBOOK_SOURCE}/llvm" +COOKBOOK_SOURCE="$COOKBOOK_SOURCE/llvm" +cookbook_cmake """ + +# clang library and runtime +[[optional-packages]] +name = "clang" +dependencies = [ ".runtime" ] +files = [ + "usr/bin/clang*", + "usr/libexec/**", + "usr/lib/libclang-cpp.so*", + "usr/lib/libclang.so*", + "usr/lib/clang/**", + "usr/lib/libear/**", + "usr/lib/libscanbuild/**", + "usr/share/clang*/**", +] + +# lld runtime (no library) +[[optional-packages]] +name = "lld" +dependencies = [ ".runtime" ] +files = [ + "usr/bin/*.lld", + "usr/bin/*-ld", + "usr/bin/lld*", +] + +# llvm runtime +[[optional-packages]] +name = "runtime" +files = [ + "usr/bin/**", +] + +[[optional-packages]] +name = "clang-dev" +dependencies = [ ".clang" ] +files = [ + "usr/include/clang*/**", + "usr/lib/libclang*.a", + "usr/lib/cmake/clang/**", +] + +[[optional-packages]] +name = "lld-dev" +dependencies = [ ".lld" ] +files = [ + "usr/include/lld*/**", + "usr/lib/liblld*.a", + "usr/lib/cmake/lld/**", +] + +[[optional-packages]] +name = "dev" +dependencies = [ ".runtime" ] +files = [ + "usr/include/llvm*/**", + "usr/lib/libLLVM*.a", + "usr/lib/cmake/llvm/**", +] diff --git a/recipes/dev/python312/recipe.toml b/recipes/dev/python312/recipe.toml index f7759afad..9067b5a5e 100644 --- a/recipes/dev/python312/recipe.toml +++ b/recipes/dev/python312/recipe.toml @@ -1,5 +1,6 @@ [source] -tar = "https://www.python.org/ftp/python/3.12.0/Python-3.12.0.tar.xz" +tar = "https://www.python.org/ftp/python/3.12.12/Python-3.12.12.tar.xz" +blake3 = "29636fdae3e0ee8d0fe585e528c9376fe43876f5f3f0f7892140567946fd907b" patches = [ "redox.patch" ] @@ -11,7 +12,6 @@ dependencies = [ "libffi", "libuuid", "openssl3", - "ncurses", "ncursesw", "readline", "sqlite3", @@ -19,63 +19,47 @@ dependencies = [ "xz", "zstd", ] +dev-dependencies = [ + "host:python312" +] script = """ DYNAMIC_INIT -# Build host python3 -mkdir -p host -pushd host -#TODO: easier way to build for host? -HOST_ENV=( - env - --unset=AR - --unset=AS - --unset=CC - --unset=CFLAGS - --unset=CPPFLAGS - --unset=CXX - --unset=GNU_TARGET - --unset=LD - --unset=LDFLAGS - --unset=NM - --unset=OBJCOPY - --unset=OBJDUMP - --unset=PKG_CONFIG - --unset=PKG_CONFIG_ALLOW_CROSS - --unset=PKG_CONFIG_FOR_BUILD - --unset=PKG_CONFIG_LIBDIR - --unset=PKG_CONFIG_PATH - --unset=PKG_CONFIG_SYSROOT_DIR - --unset=PREFIX_RUSTFLAGS - --unset=RANLIB - --unset=READELF - --unset=STRIP - --unset=TARGET -) -"${HOST_ENV[@]}" "${COOKBOOK_CONFIGURE}" --prefix="${PWD}/usr" -"${HOST_ENV[@]}" "${COOKBOOK_MAKE}" -j"${COOKBOOK_MAKE_JOBS}" -"${HOST_ENV[@]}" "${COOKBOOK_MAKE}" altinstall -popd - export PYTHONDONTWRITEBYTECODE=1 ARCH="${TARGET%%-*}" +OS=$(echo "${TARGET}" | cut -d - -f3-4) -# Packages are considerably larger because of this issue -# https://gitlab.redox-os.org/redox-os/relibc/-/issues/227 -export MODULE_BUILDTYPE=static +if [ "$TARGET" != "$COOKBOOK_HOST_TARGET" ]; then + COOKBOOK_CONFIGURE_FLAGS=( + --prefix=/usr + --disable-ipv6 + --host=${GNU_TARGET} + --build="$ARCH" + --with-build-python="${COOKBOOK_TOOLCHAIN}/usr/bin/python3.12" + --with-ensurepip=install + --disable-test-modules + ac_cv_file__dev_ptmx=no + ac_cv_file__dev_ptc=no + ) +else + COOKBOOK_CONFIGURE_FLAGS=(--prefix=/usr) +fi -COOKBOOK_CONFIGURE_FLAGS=( - --prefix=/usr - --enable-shared - --disable-ipv6 - --host=${GNU_TARGET} - --build="$ARCH" - --with-build-python="${PWD}/host/usr/bin/python3.12" - --with-ensurepip=install - --disable-test-modules - ac_cv_file__dev_ptmx=no - ac_cv_file__dev_ptc=no -) +if [ "${COOKBOOK_DYNAMIC}" != "1" ]; then + export MODULE_BUILDTYPE=static + COOKBOOK_CONFIGURE_FLAGS+=( --enable-shared ) +fi cookbook_configure + +# A same file to save 60MB +(cd "${COOKBOOK_STAGE}/usr/lib/python3.12/config-3.12-$ARCH-$OS" && \ + rm -f libpython3.12.a && ln -s ../../libpython3.12.a) """ + +[[optional-packages]] +name = "dev" +files = [ + "usr/lib/python3.12/config-*/**", + "usr/lib/libpython*.a" +] diff --git a/recipes/dev/python312/redox.patch b/recipes/dev/python312/redox.patch index 9ead63c55..a0cfe4a54 100644 --- a/recipes/dev/python312/redox.patch +++ b/recipes/dev/python312/redox.patch @@ -1,7 +1,7 @@ diff -ruwN source/configure source-new/configure ---- source/configure 2023-10-02 05:48:14.000000000 -0600 -+++ source-new/configure 2025-09-28 13:44:57.914820310 -0600 -@@ -4276,6 +4276,9 @@ +--- source/configure 2025-10-09 18:07:00.000000000 +0700 ++++ source-new/configure 2025-12-09 22:14:30.781035339 +0700 +@@ -4283,6 +4283,9 @@ *-*-wasi) ac_sys_system=WASI ;; @@ -11,7 +11,7 @@ diff -ruwN source/configure source-new/configure *) # for now, limit cross builds to known configurations MACHDEP="unknown" -@@ -4300,6 +4303,7 @@ +@@ -4307,6 +4310,7 @@ case $MACHDEP in aix*) MACHDEP="aix";; linux*) MACHDEP="linux";; @@ -19,7 +19,7 @@ diff -ruwN source/configure source-new/configure cygwin*) MACHDEP="cygwin";; darwin*) MACHDEP="darwin";; '') MACHDEP="unknown";; -@@ -4311,7 +4315,7 @@ +@@ -4327,7 +4331,7 @@ if test "$cross_compiling" = yes; then case "$host" in @@ -28,7 +28,7 @@ diff -ruwN source/configure source-new/configure case "$host_cpu" in arm*) _host_cpu=arm -@@ -6746,6 +6750,7 @@ +@@ -6762,6 +6766,7 @@ #undef cris #undef fr30 #undef linux @@ -36,7 +36,7 @@ diff -ruwN source/configure source-new/configure #undef hppa #undef hpux #undef i386 -@@ -6891,6 +6896,18 @@ +@@ -6907,6 +6912,18 @@ # endif #elif defined(__gnu_hurd__) i386-gnu @@ -55,7 +55,7 @@ diff -ruwN source/configure source-new/configure #elif defined(__APPLE__) darwin #elif defined(__VXWORKS__) -@@ -7488,7 +7505,7 @@ +@@ -7507,7 +7524,7 @@ PY3LIBRARY=libpython3.so fi ;; @@ -64,8 +64,8 @@ diff -ruwN source/configure source-new/configure LDLIBRARY='libpython$(LDVERSION).so' BLDLIBRARY='-L. -lpython$(LDVERSION)' RUNSHARED=LD_LIBRARY_PATH=`pwd`${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} -@@ -12753,7 +12770,7 @@ - Emscripten|WASI) +@@ -12815,7 +12832,7 @@ + Emscripten*|WASI*) LDSHARED='$(CC) -shared' LDCXXSHARED='$(CXX) -shared';; - Linux*|GNU*|QNX*|VxWorks*|Haiku*) @@ -73,7 +73,7 @@ diff -ruwN source/configure source-new/configure LDSHARED='$(CC) -shared' LDCXXSHARED='$(CXX) -shared';; FreeBSD*) -@@ -12839,7 +12856,7 @@ +@@ -12901,7 +12918,7 @@ else CCSHARED="+z"; fi;; Linux-android*) ;; @@ -82,7 +82,7 @@ diff -ruwN source/configure source-new/configure Emscripten*|WASI*) if test "x$enable_wasm_dynamic_linking" = xyes then : -@@ -12877,7 +12894,7 @@ +@@ -12939,7 +12956,7 @@ LINKFORSHARED="-Wl,-E -Wl,+s";; # LINKFORSHARED="-Wl,-E -Wl,+s -Wl,+b\$(BINLIBDEST)/lib-dynload";; Linux-android*) LINKFORSHARED="-pie -Xlinker -export-dynamic";; @@ -92,8 +92,8 @@ diff -ruwN source/configure source-new/configure Darwin/*) LINKFORSHARED="$extra_undefs -framework CoreFoundation" diff -ruwN source/Include/pyport.h source-new/Include/pyport.h ---- source/Include/pyport.h 2023-10-02 05:48:14.000000000 -0600 -+++ source-new/Include/pyport.h 2025-09-28 13:44:57.916856922 -0600 +--- source/Include/pyport.h 2025-10-09 18:07:00.000000000 +0700 ++++ source-new/Include/pyport.h 2025-12-09 22:14:30.781035339 +0700 @@ -684,7 +684,7 @@ # error "Py_TRACE_REFS ABI is not compatible with release and debug ABI" #endif @@ -104,8 +104,8 @@ diff -ruwN source/Include/pyport.h source-new/Include/pyport.h // See _Py_GetLocaleEncoding(), PyUnicode_DecodeLocale() // and PyUnicode_EncodeLocale(). diff -ruwN source/Modules/_cryptmodule.c source-new/Modules/_cryptmodule.c ---- source/Modules/_cryptmodule.c 2023-10-02 05:48:14.000000000 -0600 -+++ source-new/Modules/_cryptmodule.c 2025-09-28 13:44:57.917139387 -0600 +--- source/Modules/_cryptmodule.c 2025-10-09 18:07:00.000000000 +0700 ++++ source-new/Modules/_cryptmodule.c 2025-12-09 22:14:30.781035339 +0700 @@ -38,13 +38,7 @@ /*[clinic end generated code: output=0512284a03d2803c input=0e8edec9c364352b]*/ { @@ -121,9 +121,9 @@ diff -ruwN source/Modules/_cryptmodule.c source-new/Modules/_cryptmodule.c return PyErr_SetFromErrno(PyExc_OSError); } diff -ruwN source/Modules/posixmodule.c source-new/Modules/posixmodule.c ---- source/Modules/posixmodule.c 2023-10-02 05:48:14.000000000 -0600 -+++ source-new/Modules/posixmodule.c 2025-09-28 13:44:57.918070573 -0600 -@@ -2610,8 +2610,7 @@ +--- source/Modules/posixmodule.c 2025-10-09 18:07:00.000000000 +0700 ++++ source-new/Modules/posixmodule.c 2025-12-09 22:14:30.781035339 +0700 +@@ -2695,8 +2695,7 @@ #ifdef HAVE_FSTATAT if ((dir_fd != DEFAULT_DIR_FD) || !follow_symlinks) { if (HAVE_FSTATAT_RUNTIME) { @@ -133,7 +133,7 @@ diff -ruwN source/Modules/posixmodule.c source-new/Modules/posixmodule.c } else { fstatat_unavailable = 1; -@@ -3083,8 +3082,6 @@ +@@ -3186,8 +3185,6 @@ if (HAVE_FACCESSAT_RUNTIME) { int flags = 0; @@ -142,7 +142,7 @@ diff -ruwN source/Modules/posixmodule.c source-new/Modules/posixmodule.c if (effective_ids) flags |= AT_EACCESS; result = faccessat(dir_fd, path->narrow, mode, flags); -@@ -3369,8 +3366,7 @@ +@@ -3472,8 +3469,7 @@ * support dir_fd and follow_symlinks=False. (Hopefully.) * Until then, we need to be careful what exception we raise. */ @@ -152,7 +152,7 @@ diff -ruwN source/Modules/posixmodule.c source-new/Modules/posixmodule.c /* * But wait! We can't throw the exception without allowing threads, * and we can't do that in this nested scope. (Macro trickery, sigh.) -@@ -3747,8 +3743,7 @@ +@@ -3850,8 +3846,7 @@ #ifdef HAVE_FCHOWNAT if ((dir_fd != DEFAULT_DIR_FD) || (!follow_symlinks)) { if (HAVE_FCHOWNAT_RUNTIME) { @@ -162,7 +162,7 @@ diff -ruwN source/Modules/posixmodule.c source-new/Modules/posixmodule.c } else { fchownat_unsupported = 1; } -@@ -14598,8 +14593,7 @@ +@@ -14727,8 +14722,7 @@ #ifdef HAVE_FSTATAT if (HAVE_FSTATAT_RUNTIME) { Py_BEGIN_ALLOW_THREADS @@ -173,8 +173,8 @@ diff -ruwN source/Modules/posixmodule.c source-new/Modules/posixmodule.c } else diff -ruwN source/Modules/resource.c source-new/Modules/resource.c ---- source/Modules/resource.c 2023-10-02 05:48:14.000000000 -0600 -+++ source-new/Modules/resource.c 2025-09-28 13:44:57.919295094 -0600 +--- source/Modules/resource.c 2025-10-09 18:07:00.000000000 +0700 ++++ source-new/Modules/resource.c 2025-12-09 22:14:30.781035339 +0700 @@ -216,7 +216,7 @@ { struct rlimit rl; @@ -202,15 +202,3 @@ diff -ruwN source/Modules/resource.c source-new/Modules/resource.c PyErr_SetString(PyExc_ValueError, "invalid resource specified"); return NULL; -diff -ruwN source/Modules/timemodule.c source-new/Modules/timemodule.c ---- source/Modules/timemodule.c 2023-10-02 05:48:14.000000000 -0600 -+++ source-new/Modules/timemodule.c 2025-09-28 13:45:28.513234796 -0600 -@@ -1494,7 +1494,7 @@ - - #elif defined(HAVE_CLOCK_GETTIME) && \ - defined(CLOCK_PROCESS_CPUTIME_ID) && \ -- !defined(__EMSCRIPTEN__) && !defined(__wasi__) -+ !defined(__EMSCRIPTEN__) && !defined(__wasi__) && !defined(__redox__) - #define HAVE_THREAD_TIME - - #if defined(__APPLE__) && defined(__has_attribute) && __has_attribute(availability) diff --git a/recipes/dev/rust/config.toml b/recipes/dev/rust/config.toml index 3bfe250ff..9674da00f 100644 --- a/recipes/dev/rust/config.toml +++ b/recipes/dev/rust/config.toml @@ -1,11 +1,9 @@ +#TODO: use sed to replace hardcoded paths into env [llvm] download-ci-llvm = false static-libstdcpp = false targets = "X86" experimental-targets = "" -# TODO: This currently must need to be set manually. -# If you like to build llvm with sccache, uncomment: -# ccache = "sccache" [build] host = ["x86_64-unknown-redox"] @@ -30,3 +28,10 @@ ar = "x86_64-unknown-redox-ar" linker = "x86_64-unknown-redox-gcc" rpath = false crt-static = false +llvm-config = "/mnt/redox/recipes/dev/rust/target/x86_64-unknown-redox/sysroot/bin/llvm-config" + +[target.aarch64-unknown-linux-gnu] +llvm-config = "/mnt/redox/recipes/dev/rust/target/x86_64-unknown-redox/toolchain/bin/llvm-config" + +[target.x86_64-unknown-linux-gnu] +llvm-config = "/mnt/redox/recipes/dev/rust/target/x86_64-unknown-redox/toolchain/bin/llvm-config" diff --git a/recipes/dev/rust/recipe.toml b/recipes/dev/rust/recipe.toml index 933fbdbda..fdf501862 100644 --- a/recipes/dev/rust/recipe.toml +++ b/recipes/dev/rust/recipe.toml @@ -7,8 +7,16 @@ shallow_clone = true template = "custom" dependencies = [ "llvm21", - "zlib" + "zlib", ] +dev-dependencies = [ + "llvm21.dev", + "llvm21.runtime", + "host:llvm21", + "host:llvm21.dev", + "host:llvm21.runtime", +] + script = """ DYNAMIC_INIT # Linker flags for stage2 compiler (host -> target) @@ -17,6 +25,15 @@ export CARGO_TARGET_X86_64_UNKNOWN_REDOX_RUSTFLAGS="\ -Clink-args=-L${COOKBOOK_SYSROOT}/lib \ -Clink-args=-Wl,-rpath-link,${COOKBOOK_SYSROOT}/lib \ -Clink-args=-lz" +# Hack for Rust errorneusly running `llvm-config --version` on cross compiled llvm-config +cat "${COOKBOOK_ROOT}/bin/x86_64-unknown-redox-llvm-config" > "${COOKBOOK_SYSROOT}/bin/llvm-config" +# Linker flags for stage1 compiler (host -> host) +export RUSTFLAGS_BOOTSTRAP="\ +-Clink-args=-L${COOKBOOK_TOOLCHAIN}/lib \ +-Clink-args=-Wl,-rpath-link,${COOKBOOK_TOOLCHAIN}/lib" +export CARGO_TARGET_X86_64_UNKNOWN_LINUX_GNU_RUSTFLAGS="${RUSTFLAGS_BOOTSTRAP}" +export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_RUSTFLAGS="${RUSTFLAGS_BOOTSTRAP}" + # Don't poison the stage1 compiler (host -> host) unset AR AS CC CXX LD LDFLAGS NM OBJCOPY OBJDUMP RANLIB READELF RUSTFLAGS STRIP python3 "${COOKBOOK_SOURCE}/x.py" install \ diff --git a/recipes/emulators/flycast/recipe.toml b/recipes/emulators/flycast/recipe.toml index 7277aa1ef..27ff9a3d2 100644 --- a/recipes/emulators/flycast/recipe.toml +++ b/recipes/emulators/flycast/recipe.toml @@ -7,7 +7,6 @@ dependencies = [ "curl", "libiconv", "liborbital", - "llvm18", "mesa", "nghttp2", "openssl1", diff --git a/recipes/emulators/mednafen/recipe.toml b/recipes/emulators/mednafen/recipe.toml index 0f29da6a8..bd51a37db 100644 --- a/recipes/emulators/mednafen/recipe.toml +++ b/recipes/emulators/mednafen/recipe.toml @@ -11,7 +11,6 @@ dependencies = [ #TODO: libflac "libiconv", "liborbital", - "llvm18", "mesa", "sdl2", "zlib", diff --git a/recipes/emulators/mupen64plus/recipe.toml b/recipes/emulators/mupen64plus/recipe.toml index d28ca0bc9..f1538f56f 100644 --- a/recipes/emulators/mupen64plus/recipe.toml +++ b/recipes/emulators/mupen64plus/recipe.toml @@ -8,7 +8,6 @@ dependencies = [ "freetype2", "liborbital", "libpng", - "llvm18", "mesa", "mesa-glu", "sdl2", diff --git a/recipes/emulators/retroarch/recipe.toml b/recipes/emulators/retroarch/recipe.toml index e830377e2..5d6febdbb 100644 --- a/recipes/emulators/retroarch/recipe.toml +++ b/recipes/emulators/retroarch/recipe.toml @@ -6,7 +6,6 @@ template = "custom" dependencies = [ "liborbital", "libretro-super", - "llvm18", "mesa", "openssl1", "sdl2", diff --git a/recipes/games/classicube/recipe.toml b/recipes/games/classicube/recipe.toml index d78d3c5a7..083f334be 100644 --- a/recipes/games/classicube/recipe.toml +++ b/recipes/games/classicube/recipe.toml @@ -5,7 +5,6 @@ git = "https://github.com/jackpot51/ClassiCube.git" template = "custom" dependencies = [ "liborbital", - "llvm18", "mesa", "sdl2", "zlib", diff --git a/recipes/games/freeciv/recipe.toml b/recipes/games/freeciv/recipe.toml index a82782047..3f3493fde 100644 --- a/recipes/games/freeciv/recipe.toml +++ b/recipes/games/freeciv/recipe.toml @@ -11,7 +11,6 @@ dependencies = [ "liborbital", "libjpeg", "libpng", - "llvm18", "openssl1", "mesa", "nghttp2", diff --git a/recipes/games/hematite/recipe.toml b/recipes/games/hematite/recipe.toml index c34240441..4034a0713 100644 --- a/recipes/games/hematite/recipe.toml +++ b/recipes/games/hematite/recipe.toml @@ -6,7 +6,6 @@ upstream = "https://github.com/PistonDevelopers/hematite.git" [build] template = "custom" dependencies = [ - "llvm18", "mesa", "zlib" ] diff --git a/recipes/games/neverball/recipe.toml b/recipes/games/neverball/recipe.toml index 6c3f9f121..7a525e40a 100644 --- a/recipes/games/neverball/recipe.toml +++ b/recipes/games/neverball/recipe.toml @@ -13,7 +13,6 @@ dependencies = [ "liborbital", "libpng", "libvorbis", - "llvm18", "mesa", "sdl2", "sdl2-ttf", diff --git a/recipes/games/openjk/recipe.toml b/recipes/games/openjk/recipe.toml index 1ea400768..b1c8322e0 100644 --- a/recipes/games/openjk/recipe.toml +++ b/recipes/games/openjk/recipe.toml @@ -8,7 +8,6 @@ dependencies = [ "libjpeg", "liborbital", "libpng", - "llvm18", "mesa", "sdl2", "zlib", diff --git a/recipes/games/opentyrian/recipe.toml b/recipes/games/opentyrian/recipe.toml index ba168fb22..84fc86159 100644 --- a/recipes/games/opentyrian/recipe.toml +++ b/recipes/games/opentyrian/recipe.toml @@ -14,7 +14,6 @@ patches = [ "redox.patch" ] [build] template = "custom" dependencies = [ - "llvm18", "liborbital", "mesa", "sdl2", diff --git a/recipes/games/quakespasm/recipe.toml b/recipes/games/quakespasm/recipe.toml index 58cefddb9..169a874e6 100644 --- a/recipes/games/quakespasm/recipe.toml +++ b/recipes/games/quakespasm/recipe.toml @@ -10,7 +10,6 @@ rev = "cc32abe09ed417ce3be10af300d2dc2f686349ba" [build] template = "custom" dependencies = [ - "llvm18", "libiconv", "libogg", "liborbital", diff --git a/recipes/games/sm64ex/recipe.toml b/recipes/games/sm64ex/recipe.toml index 69b947373..10992c486 100644 --- a/recipes/games/sm64ex/recipe.toml +++ b/recipes/games/sm64ex/recipe.toml @@ -5,7 +5,6 @@ git = "https://github.com/jackpot51/sm64ex.git" template = "custom" dependencies = [ "liborbital", - "llvm18", "mesa", "sdl2", "zlib", diff --git a/recipes/games/spacecadetpinball/recipe.toml b/recipes/games/spacecadetpinball/recipe.toml index d0d3857e1..2828ce3bc 100644 --- a/recipes/games/spacecadetpinball/recipe.toml +++ b/recipes/games/spacecadetpinball/recipe.toml @@ -9,7 +9,6 @@ dependencies = [ "libogg", "liborbital", "libvorbis", - "llvm18", "mesa", "sdl2", "sdl2-mixer", diff --git a/recipes/groups/dev-essential/recipe.toml b/recipes/groups/dev-essential/recipe.toml index 40d3f296c..efe81319b 100644 --- a/recipes/groups/dev-essential/recipe.toml +++ b/recipes/groups/dev-essential/recipe.toml @@ -5,7 +5,7 @@ dependencies = [ "cargo", "gcc13", "gcc13.cxx", - "llvm18", + "llvm21", "gnu-binutils", "gnu-make", "gnu-grep", diff --git a/recipes/libs/ffmpeg6/recipe.toml b/recipes/libs/ffmpeg6/recipe.toml index bc63a4ec5..8f15ca3a4 100644 --- a/recipes/libs/ffmpeg6/recipe.toml +++ b/recipes/libs/ffmpeg6/recipe.toml @@ -10,7 +10,6 @@ patches = [ template = "custom" dependencies = [ "liborbital", - "llvm18", "mesa", "sdl2", "zlib", diff --git a/recipes/libs/libstdcxx/recipe.toml b/recipes/libs/libstdcxx/recipe.toml index 232733bed..cd9664481 100644 --- a/recipes/libs/libstdcxx/recipe.toml +++ b/recipes/libs/libstdcxx/recipe.toml @@ -1,6 +1,8 @@ [build] template = "custom" script = """ +if [ "$TARGET" != "$COOKBOOK_HOST_TARGET" ]; then mkdir -p "${COOKBOOK_STAGE}/lib" cp -av ${COOKBOOK_HOST_SYSROOT}/${GNU_TARGET}/lib/libstdc++.so* ${COOKBOOK_STAGE}/lib/ +fi """ diff --git a/recipes/libs/mesa-glu/recipe.toml b/recipes/libs/mesa-glu/recipe.toml index a79880b8f..db79f16ac 100644 --- a/recipes/libs/mesa-glu/recipe.toml +++ b/recipes/libs/mesa-glu/recipe.toml @@ -3,7 +3,7 @@ tar = "https://archive.mesa3d.org/glu/glu-9.0.3.tar.xz" blake3 = "beed1665ed983540e7502289ec50c7e66d840820af3e9ef21c9c4a7e9686ab9f" [build] -dependencies = ["mesa", "zlib"] +dependencies = ["mesa"] template = "custom" script = """ DYNAMIC_INIT diff --git a/recipes/libs/mesa/recipe.toml b/recipes/libs/mesa/recipe.toml index 0f74aa945..232145af5 100644 --- a/recipes/libs/mesa/recipe.toml +++ b/recipes/libs/mesa/recipe.toml @@ -9,9 +9,14 @@ dependencies = [ "expat", "libdrm", "liborbital", - "llvm18", + "llvm21", "zlib", ] +dev-dependencies = [ + "llvm21.dev", + "host:llvm21.dev", + "host:llvm21.runtime", +] script = """ DYNAMIC_INIT diff --git a/recipes/libs/ncursesw/recipe.toml b/recipes/libs/ncursesw/recipe.toml index a697aabe6..80eee8273 100644 --- a/recipes/libs/ncursesw/recipe.toml +++ b/recipes/libs/ncursesw/recipe.toml @@ -1,9 +1,5 @@ [source] -tar = "https://ftp.gnu.org/gnu/ncurses/ncurses-6.4.tar.gz" -blake3 = "0d1c9fdf53c0ca4bd66ba707d49a079d2dd6f5a960cdec74a56e29952c4ffe73" -patches = [ - "redox.patch" -] +same_as = "../ncurses" [build] template = "custom" diff --git a/recipes/libs/ncursesw/redox.patch b/recipes/libs/ncursesw/redox.patch deleted file mode 100644 index b446db168..000000000 --- a/recipes/libs/ncursesw/redox.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -ruwN source/configure source-new/configure ---- source/configure 2022-11-06 04:13:26.000000000 +0700 -+++ source-new/configure 2025-09-17 21:14:28.163192730 +0700 -@@ -6386,7 +6386,7 @@ - fi - cf_cv_rm_so_locs=yes - ;; -- (linux*|gnu*|k*bsd*-gnu) -+ (linux*|gnu*|k*bsd*-gnu|redox*) - if test "$DFT_LWR_MODEL" = "shared" && test -n "$LD_RPATH_OPT" ; then - LOCAL_LDFLAGS="${LD_RPATH_OPT}\$(LOCAL_LIBDIR)" - LOCAL_LDFLAGS2="$LOCAL_LDFLAGS" diff --git a/recipes/libs/readline/recipe.toml b/recipes/libs/readline/recipe.toml index 35a30f597..82eb522bf 100644 --- a/recipes/libs/readline/recipe.toml +++ b/recipes/libs/readline/recipe.toml @@ -13,6 +13,9 @@ dependencies = [ script = """ DYNAMIC_INIT cookbook_configure -ln -s "libhistory.so.7" "${COOKBOOK_STAGE}"/usr/lib/libhistory.so -ln -s "libreadline.so.7" "${COOKBOOK_STAGE}"/usr/lib/libreadline.so +OS=$(echo "${TARGET}" | cut -d - -f3) +if [ "${OS}" = "redox" ]; then + ln -s "libhistory.so.7" "${COOKBOOK_STAGE}"/usr/lib/libhistory.so + ln -s "libreadline.so.7" "${COOKBOOK_STAGE}"/usr/lib/libreadline.so +fi """ diff --git a/recipes/libs/sdl2-gfx/recipe.toml b/recipes/libs/sdl2-gfx/recipe.toml index bf4b621fb..a9b968f0e 100644 --- a/recipes/libs/sdl2-gfx/recipe.toml +++ b/recipes/libs/sdl2-gfx/recipe.toml @@ -10,7 +10,6 @@ dependencies = [ "freetype2", "liborbital", "libpng", - "llvm18", "mesa", "sdl2", "zlib", diff --git a/recipes/libs/sdl2-image/recipe.toml b/recipes/libs/sdl2-image/recipe.toml index 94c49908d..0fd67360e 100644 --- a/recipes/libs/sdl2-image/recipe.toml +++ b/recipes/libs/sdl2-image/recipe.toml @@ -7,7 +7,6 @@ dependencies = [ "libjpeg", "liborbital", "libpng", - "llvm18", "mesa", "sdl2", "zlib", diff --git a/recipes/libs/sdl2-mixer/recipe.toml b/recipes/libs/sdl2-mixer/recipe.toml index d73bd12e9..b95425adf 100644 --- a/recipes/libs/sdl2-mixer/recipe.toml +++ b/recipes/libs/sdl2-mixer/recipe.toml @@ -7,7 +7,6 @@ template = "custom" dependencies = [ "sdl2", "liborbital", - "llvm18", "mesa", "zlib", "libogg", diff --git a/recipes/libs/sdl2-ttf/recipe.toml b/recipes/libs/sdl2-ttf/recipe.toml index 888f1835a..d6252b3ea 100644 --- a/recipes/libs/sdl2-ttf/recipe.toml +++ b/recipes/libs/sdl2-ttf/recipe.toml @@ -13,7 +13,6 @@ dependencies = [ "libdrm", "liborbital", "libpng", - "llvm18", "mesa", "sdl2", "zlib", diff --git a/recipes/libs/sdl2/recipe.toml b/recipes/libs/sdl2/recipe.toml index bef94c0a2..76f865993 100644 --- a/recipes/libs/sdl2/recipe.toml +++ b/recipes/libs/sdl2/recipe.toml @@ -6,7 +6,6 @@ git = "https://gitlab.redox-os.org/redox-os/sdl2.git" template = "custom" dependencies = [ "liborbital", - "llvm18", "mesa", "zlib", ] diff --git a/recipes/tools/bzip2/recipe.toml b/recipes/tools/bzip2/recipe.toml index 5c73235ad..b7fdd3835 100644 --- a/recipes/tools/bzip2/recipe.toml +++ b/recipes/tools/bzip2/recipe.toml @@ -11,10 +11,10 @@ DYNAMIC_INIT # The static lib is preferred according to the README because it's faster rsync -av --delete "${COOKBOOK_SOURCE}/" ./ "${COOKBOOK_MAKE}" -j"${COOKBOOK_MAKE_JOBS}" \ - AR="${TARGET}-ar" \ - CC="${CC_WRAPPER} ${TARGET}-gcc" \ + AR="${AR}" \ + CC="${CC}" \ + RANLIB="${RANLIB}" \ PREFIX="${COOKBOOK_STAGE}" \ - RANLIB="${TARGET}-ranlib" \ install # However, distros distribute libbz2 as well so we'll support it too @@ -24,10 +24,10 @@ rsync -av --delete "${COOKBOOK_SOURCE}/" ./ # This DOES NOT build/clobber the binaries already built above "${COOKBOOK_MAKE}" -f Makefile-libbz2_so \ -j"${COOKBOOK_MAKE_JOBS}" \ - AR="${TARGET}-ar" \ - CC="${CC_WRAPPER} ${TARGET}-gcc" \ - PREFIX="${COOKBOOK_STAGE}" \ - RANLIB="${TARGET}-ranlib" + AR="${AR}" \ + CC="${CC}" \ + RANLIB="${RANLIB}" \ + PREFIX="${COOKBOOK_STAGE}" cp -av libbz2.so* "${COOKBOOK_STAGE}/lib" ln -sr "${COOKBOOK_STAGE}/lib/libbz2.so.1.0" "${COOKBOOK_STAGE}/lib/libbz2.so.1" diff --git a/recipes/tools/pathfinder/recipe.toml b/recipes/tools/pathfinder/recipe.toml index d867a2302..f89e57d01 100644 --- a/recipes/tools/pathfinder/recipe.toml +++ b/recipes/tools/pathfinder/recipe.toml @@ -6,7 +6,6 @@ upstream = "https://github.com/servo/pathfinder.git" [build] template = "custom" dependencies = [ - "llvm18", "mesa", "zlib", ] diff --git a/recipes/wip/data-integrity/b3sum/recipe.toml b/recipes/wip/data-integrity/b3sum/recipe.toml index 44efd01d0..3ec0df134 100644 --- a/recipes/wip/data-integrity/b3sum/recipe.toml +++ b/recipes/wip/data-integrity/b3sum/recipe.toml @@ -1,6 +1,7 @@ #TODO compiled but not tested [source] git = "https://github.com/BLAKE3-team/BLAKE3" +shallow_clone = true [build] template = "custom" script = """ diff --git a/recipes/wip/dev/analysis/tinywatcher/recipe.toml b/recipes/wip/dev/analysis/tinywatcher/recipe.toml new file mode 100644 index 000000000..cf09d2e52 --- /dev/null +++ b/recipes/wip/dev/analysis/tinywatcher/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/tinywatcher/tinywatcher" +[build] +template = "cargo" diff --git a/recipes/wip/dev/lang/java/openjdk11-headless/recipe.toml b/recipes/wip/dev/lang/java/openjdk11-headless/recipe.toml deleted file mode 100644 index af318c2d8..000000000 --- a/recipes/wip/dev/lang/java/openjdk11-headless/recipe.toml +++ /dev/null @@ -1,17 +0,0 @@ -#TODO can't find the configure script -#TODO build instructions - https://github.com/openjdk/jdk11u/blob/master/doc/building.md -[source] -git = "https://github.com/openjdk/jdk11u" -rev = "09b402a6bcecce976ee17ce358b0a90ea127ab69" -[build] -template = "custom" -dependencies = [ - "fontconfig", -] -script = """ -chmod a+x configure -COOKBOOK_CONFIGURE_FLAGS+=( - --enable-headless-only=yes -) -cookbook_configure -""" diff --git a/recipes/wip/dev/lang/java/openjdk11/recipe.toml b/recipes/wip/dev/lang/java/openjdk11/recipe.toml new file mode 100644 index 000000000..b24c06a02 --- /dev/null +++ b/recipes/wip/dev/lang/java/openjdk11/recipe.toml @@ -0,0 +1,15 @@ +#TODO not compiled or tested +# build instructions: https://github.com/openjdk/jdk11u/blob/master/doc/building.md +[source] +git = "https://github.com/openjdk/jdk11u" +rev = "jdk-11.0.29-ga" +shallow_clone = true +script = "chmod a+x configure" +[build] +template = "configure" +configureflags = [ + "--enable-headless-only=yes", +] +dependencies = [ + "fontconfig", +] diff --git a/recipes/wip/dev/lang/java/openjdk17-headless/recipe.toml b/recipes/wip/dev/lang/java/openjdk17-headless/recipe.toml deleted file mode 100644 index 46b8b8b90..000000000 --- a/recipes/wip/dev/lang/java/openjdk17-headless/recipe.toml +++ /dev/null @@ -1,17 +0,0 @@ -#TODO build instructions - https://github.com/openjdk/jdk17u/blob/master/doc/building.md -#TODO add supported autoconf options -[source] -git = "https://github.com/openjdk/jdk17u" -rev = "b78a848cc7ae5787d9ec9ea0ce843cd63b06efec" -[build] -template = "custom" -dependencies = [ - "fontconfig", -] -script = """ -chmod a+x configure -COOKBOOK_CONFIGURE_FLAGS+=( - --enable-headless-only=yes -) -cookbook_configure -""" diff --git a/recipes/wip/dev/lang/java/openjdk17/recipe.toml b/recipes/wip/dev/lang/java/openjdk17/recipe.toml new file mode 100644 index 000000000..ef2d8f79a --- /dev/null +++ b/recipes/wip/dev/lang/java/openjdk17/recipe.toml @@ -0,0 +1,15 @@ +#TODO not compiled or tested +# build instructions: https://github.com/openjdk/jdk17u/blob/master/doc/building.md +[source] +git = "https://github.com/openjdk/jdk17u" +rev = "jdk-17.0.17-ga" +shallow_clone = true +script = "chmod a+x configure" +[build] +template = "configure" +configureflags = [ + "--enable-headless-only=yes", +] +dependencies = [ + "fontconfig", +] diff --git a/recipes/wip/dev/lang/java/openjdk21-headless/recipe.toml b/recipes/wip/dev/lang/java/openjdk21-headless/recipe.toml deleted file mode 100644 index bdeea3dd0..000000000 --- a/recipes/wip/dev/lang/java/openjdk21-headless/recipe.toml +++ /dev/null @@ -1,17 +0,0 @@ -#TODO build instructions - https://github.com/openjdk/jdk21u/blob/master/doc/building.md -#TODO can't find the configure script -[source] -git = "https://github.com/openjdk/jdk21u" -rev = "060c4f7589e7f13febd402f4dac3320f4c032b08" -[build] -template = "custom" -dependencies = [ - "fontconfig", -] -script = """ -chmod a+x configure -COOKBOOK_CONFIGURE_FLAGS+=( - --enable-headless-only=yes -) -cookbook_configure -""" diff --git a/recipes/wip/dev/lang/java/openjdk21/recipe.toml b/recipes/wip/dev/lang/java/openjdk21/recipe.toml new file mode 100644 index 000000000..d7256e3a2 --- /dev/null +++ b/recipes/wip/dev/lang/java/openjdk21/recipe.toml @@ -0,0 +1,15 @@ +#TODO not compiled or tested +# build instructions: https://github.com/openjdk/jdk21u/blob/master/doc/building.md +[source] +git = "https://github.com/openjdk/jdk21u" +rev = "jdk-21.0.9-ga" +shallow_clone = true +script = "chmod a+x configure" +[build] +template = "configure" +configureflags = [ + "--enable-headless-only=yes", +] +dependencies = [ + "fontconfig", +] diff --git a/recipes/wip/dev/lang/java/openjdk8-headless/recipe.toml b/recipes/wip/dev/lang/java/openjdk8-headless/recipe.toml deleted file mode 100644 index 9261f81ea..000000000 --- a/recipes/wip/dev/lang/java/openjdk8-headless/recipe.toml +++ /dev/null @@ -1,10 +0,0 @@ -#TODO build instructions - https://github.com/openjdk/jdk8u/blob/master/doc/building.md -#TODO require the headless option -[source] -git = "https://github.com/openjdk/jdk8u" -rev = "9c9d6b267c41e4c713cacc41befb66007cdb2601" -[build] -template = "custom" -dependencies = [ - "freetype2", -] diff --git a/recipes/wip/dev/lang/java/openjdk8/recipe.toml b/recipes/wip/dev/lang/java/openjdk8/recipe.toml new file mode 100644 index 000000000..958e8a5f0 --- /dev/null +++ b/recipes/wip/dev/lang/java/openjdk8/recipe.toml @@ -0,0 +1,15 @@ +#TODO not compiled or tested +# build instructions: https://github.com/openjdk/jdk8u/blob/master/doc/building.md +[source] +git = "https://github.com/openjdk/jdk8u" +rev = "jdk8u472-ga" +shallow_clone = true +script = "chmod a+x configure" +[build] +template = "configure" +configureflags = [ + "--enable-headless-only=yes", +] +dependencies = [ + "freetype2", +] diff --git a/recipes/wip/dev/lang/nodejs-21/recipe.toml b/recipes/wip/dev/lang/nodejs-21/recipe.toml index d34be354a..e7cbeaff6 100644 --- a/recipes/wip/dev/lang/nodejs-21/recipe.toml +++ b/recipes/wip/dev/lang/nodejs-21/recipe.toml @@ -34,10 +34,10 @@ dev-dependencies = [ script = """ DYNAMIC_INIT -export PYTHONDONTWRITEBYTECODE=1 +export PYTHONDONTWRITEBYTECODE=1 COOKBOOK_NOSTRIP=true export CC_host="$CC_WRAPPER gcc" CXX_host="$CC_WRAPPER g++" -rsync -av --delete "${COOKBOOK_SOURCE}/" ./ +rsync -av "${COOKBOOK_SOURCE}/" ./ case "${TARGET}" in x86_64-unknown-linux-gnu) export NODE_CPU=x64 NODE_OS=linux;; @@ -58,6 +58,10 @@ COOKBOOK_CONFIGURE_FLAGS=( --shared-nghttp3 --shared-openssl --shared-zlib + --disable-shared-readonly-heap + --without-node-snapshot + --without-node-code-cache + --v8-lite-mode # TODO: Find a way to separate host and target flags instead? # --shared-zlib-includes="${COOKBOOK_TOOLCHAIN}/include" --shared-openssl-includes="${COOKBOOK_SYSROOT}/include" diff --git a/recipes/wip/dev/lang/nodejs-21/redox.patch b/recipes/wip/dev/lang/nodejs-21/redox.patch index 2c1217661..82f99e0ae 100644 --- a/recipes/wip/dev/lang/nodejs-21/redox.patch +++ b/recipes/wip/dev/lang/nodejs-21/redox.patch @@ -179,7 +179,7 @@ diff -ruwN source/deps/v8/src/base/platform/platform-posix.cc source-new/deps/v8 #endif +#if defined(__redox__) -+ #define PTHREAD_STACK_MIN 4096 ++ #define PTHREAD_STACK_MIN 1024 * 1024 +#endif + #if defined(ANDROID) && !defined(V8_ANDROID_LOG_STDOUT) @@ -392,6 +392,40 @@ diff -ruwN source/src/node_credentials.cc source-new/src/node_credentials.cc return value.As()->Value(); } else { Utf8Value name(isolate, value); +diff -ruwN source/src/node_dotenv.cc source-new/src/node_dotenv.cc +--- source/src/node_dotenv.cc 2024-04-10 19:46:14.000000000 +0700 ++++ source-new/src/node_dotenv.cc 2025-11-30 23:39:21.486092041 +0700 +@@ -16,10 +16,14 @@ + * The inspiration for this implementation comes from the original dotenv code, + * available at https://github.com/motdotla/dotenv + */ ++ ++// redox crash on compiling this regex ++#if !defined(__redox__) + const std::regex LINE( + "\\s*(?:export\\s+)?([\\w.-]+)(?:\\s*=\\s*?|:\\s+?)(\\s*'(?:\\\\'|[^']" + ")*'|\\s*\"(?:\\\\\"|[^\"])*\"|\\s*`(?:\\\\`|[^`])*`|[^#\r\n]+)?\\s*(?" + ":#.*)?"); // NOLINT(whitespace/line_length) ++#endif + + std::vector Dotenv::GetPathFromArgs( + const std::vector& args) { +@@ -102,6 +106,7 @@ + } + + void Dotenv::ParseContent(const std::string_view content) { ++#if !defined(__redox__) + std::string lines = std::string(content); + lines = std::regex_replace(lines, std::regex("\r\n?"), "\n"); + +@@ -131,6 +136,7 @@ + store_.insert_or_assign(std::string(key), value); + lines = match.suffix(); + } ++#endif + } + + Dotenv::ParseResult Dotenv::ParsePath(const std::string_view path) { diff -ruwN source/src/node_report.cc source-new/src/node_report.cc --- source/src/node_report.cc 2024-04-10 19:46:14.000000000 +0700 +++ source-new/src/node_report.cc 2025-10-10 13:46:05.190512964 +0700 diff --git a/recipes/wip/edu/nanocore/recipe.toml b/recipes/wip/edu/nanocore/recipe.toml new file mode 100644 index 000000000..f0d9ad828 --- /dev/null +++ b/recipes/wip/edu/nanocore/recipe.toml @@ -0,0 +1,10 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/AfaanBilal/NanoCore" +[build] +template = "custom" +script = """ +cookbook_cargo +mkdir -pv "${COOKBOOK_STAGE}/usr/share/nanocore" +cp -rv "${COOKBOOK_SOURCE}"/programs/* "${COOKBOOK_STAGE}/usr/share/nanocore" +""" diff --git a/recipes/wip/emulators/game-console/ppsspp/recipe.toml b/recipes/wip/emulators/game-console/ppsspp/recipe.toml index fe76b84d8..054f3f9e6 100644 --- a/recipes/wip/emulators/game-console/ppsspp/recipe.toml +++ b/recipes/wip/emulators/game-console/ppsspp/recipe.toml @@ -7,7 +7,6 @@ tar = "https://github.com/hrydgard/ppsspp/releases/download/v1.19.3/ppsspp-1.19. template = "custom" dependencies = [ #"liborbital", - "llvm18", "mesa", "mesa-glu", "sdl2", diff --git a/recipes/wip/emulators/windows/boxedwine/recipe.toml b/recipes/wip/emulators/windows/boxedwine/recipe.toml index 0933f5a54..6402cc4d9 100644 --- a/recipes/wip/emulators/windows/boxedwine/recipe.toml +++ b/recipes/wip/emulators/windows/boxedwine/recipe.toml @@ -7,7 +7,6 @@ template = "custom" dependencies = [ "curl", "liborbital", - "llvm18", "mesa", "mesa-glu", "nghttp2", diff --git a/recipes/wip/files/unf/recipe.toml b/recipes/wip/files/unf/recipe.toml new file mode 100644 index 000000000..205fa1d80 --- /dev/null +++ b/recipes/wip/files/unf/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/io12/unf" +[build] +template = "cargo" diff --git a/recipes/wip/games/other/love/recipe.toml b/recipes/wip/games/other/love/recipe.toml index c4fd36f5b..4ee0050e5 100644 --- a/recipes/wip/games/other/love/recipe.toml +++ b/recipes/wip/games/other/love/recipe.toml @@ -15,7 +15,6 @@ dependencies = [ "libpng", "libtheora", "libvorbis", - "llvm18", "luajit", "openal", "mesa", diff --git a/recipes/wip/games/other/shockolate/recipe.toml b/recipes/wip/games/other/shockolate/recipe.toml index 11b7e365b..6c82cf8f2 100644 --- a/recipes/wip/games/other/shockolate/recipe.toml +++ b/recipes/wip/games/other/shockolate/recipe.toml @@ -32,5 +32,4 @@ cp -rv "${COOKBOOK_SOURCE}/shaders" "${COOKBOOK_STAGE}/home/user/systemshock/sha """ [package] dependencies = [ - "llvm18", ] diff --git a/recipes/wip/games/other/vvvvvv/recipe.toml b/recipes/wip/games/other/vvvvvv/recipe.toml index 92f51c390..a15bc5eb4 100644 --- a/recipes/wip/games/other/vvvvvv/recipe.toml +++ b/recipes/wip/games/other/vvvvvv/recipe.toml @@ -15,7 +15,6 @@ dependencies = [ "sdl2-mixer", "sdl2", "liborbital", - "llvm18", "mesa", "mesa-glu", "zlib", diff --git a/recipes/wip/games/other/wesnoth/recipe.toml b/recipes/wip/games/other/wesnoth/recipe.toml index 890ee7ffe..8b28a2623 100644 --- a/recipes/wip/games/other/wesnoth/recipe.toml +++ b/recipes/wip/games/other/wesnoth/recipe.toml @@ -24,7 +24,6 @@ dependencies = [ "liborbital", "libpng", "libvorbis", - "llvm18", "mesa", "mesa-glu", "pcre", diff --git a/recipes/wip/graphics/other/gaffer/recipe.toml b/recipes/wip/graphics/other/gaffer/recipe.toml index a4496f948..d39f8c9bf 100644 --- a/recipes/wip/graphics/other/gaffer/recipe.toml +++ b/recipes/wip/graphics/other/gaffer/recipe.toml @@ -13,7 +13,6 @@ dependencies = [ "freetype2", "glew", "imath", - "llvm18", "lz4", "libffi", "libjpeg", diff --git a/recipes/wip/libs/audio/openal/recipe.toml b/recipes/wip/libs/audio/openal/recipe.toml index ad05cfba9..566e58fa7 100644 --- a/recipes/wip/libs/audio/openal/recipe.toml +++ b/recipes/wip/libs/audio/openal/recipe.toml @@ -10,7 +10,6 @@ template = "custom" dependencies = [ "liborbital", "libsndfile", - "llvm18", "mesa", "sdl2", "zlib", diff --git a/recipes/wip/libs/mozjs/recipe.toml b/recipes/wip/libs/mozjs/recipe.toml index 611d45b57..1a0e60574 100644 --- a/recipes/wip/libs/mozjs/recipe.toml +++ b/recipes/wip/libs/mozjs/recipe.toml @@ -29,7 +29,6 @@ dependencies = [ "libpthread-stubs", "fontconfig", "expat", - "llvm18", "gcc13", ] diff --git a/recipes/wip/libs/other/libepoxy/recipe.toml b/recipes/wip/libs/other/libepoxy/recipe.toml index c4eaa6531..d77fc9cb1 100644 --- a/recipes/wip/libs/other/libepoxy/recipe.toml +++ b/recipes/wip/libs/other/libepoxy/recipe.toml @@ -13,7 +13,6 @@ dependencies = [ "libxext", "libxfixes", "libxxf86vm", - "llvm18", "mesa-x11", "x11proto", "zlib", diff --git a/recipes/wip/libs/other/libuuid/recipe.toml b/recipes/wip/libs/other/libuuid/recipe.toml index 8a9947f99..2ea2e5b5d 100644 --- a/recipes/wip/libs/other/libuuid/recipe.toml +++ b/recipes/wip/libs/other/libuuid/recipe.toml @@ -1,7 +1,9 @@ [source] tar = "https://sourceforge.net/projects/libuuid/files/libuuid-1.0.3.tar.gz/download" +blake3 = "ac6582304401d2be6e5db4570c0d9d6d1500f12c918591a05066679bb2e41e55" patches = [ "redox.patch" ] + [build] template = "configure" diff --git a/recipes/wip/libs/other/libuuid/redox.patch b/recipes/wip/libs/other/libuuid/redox.patch index 1ede79c48..2e7a5f9ce 100644 --- a/recipes/wip/libs/other/libuuid/redox.patch +++ b/recipes/wip/libs/other/libuuid/redox.patch @@ -40,6 +40,19 @@ diff -ruwN source/configure source-new/configure version_type=linux # correct to gnu/linux during the next big refactor need_lib_prefix=no need_version=no +diff -ruwN source/gen_uuid.c source-new/gen_uuid.c +--- source/gen_uuid.c 2014-08-12 04:07:18.000000000 -0400 ++++ source-new/gen_uuid.c 2025-12-09 10:49:12.580466005 -0500 +@@ -59,9 +59,7 @@ + #include + #endif + #include +-#ifdef HAVE_SYS_FILE_H + #include +-#endif + #ifdef HAVE_SYS_IOCTL_H + #include + #endif diff -ruwN source/randutils.c source-new/randutils.c --- source/randutils.c 2014-08-12 15:07:18.000000000 +0700 +++ source-new/randutils.c 2025-09-19 21:11:57.907659403 +0700 diff --git a/recipes/wip/libs/other/wxwidgets-gtk3/recipe.toml b/recipes/wip/libs/other/wxwidgets-gtk3/recipe.toml index e5f14fb3f..710c98871 100644 --- a/recipes/wip/libs/other/wxwidgets-gtk3/recipe.toml +++ b/recipes/wip/libs/other/wxwidgets-gtk3/recipe.toml @@ -1,14 +1,12 @@ -#TODO probably wrong script, see https://github.com/wxWidgets/wxWidgets/blob/master/docs/gtk/install.md +#TODO not compiled or tested +# build instructions: https://github.com/wxWidgets/wxWidgets/blob/master/docs/gtk/install.md [source] tar = "https://github.com/wxWidgets/wxWidgets/releases/download/v3.2.4/wxWidgets-3.2.4.tar.bz2" [build] -template = "custom" +template = "configure" +configureflags = [ + "--with-gtk", +] dependencies = [ "gtk3", ] -script = """ -COOKBOOK_CONFIGURE_FLAGS+=( - --with-gtk -) -cookbook_configure -""" diff --git a/recipes/wip/net/social/nostui/recipe.toml b/recipes/wip/net/social/nostui/recipe.toml new file mode 100644 index 000000000..f4677875c --- /dev/null +++ b/recipes/wip/net/social/nostui/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/akiomik/nostui" +[build] +template = "cargo" diff --git a/recipes/wip/players/tplay/recipe.toml b/recipes/wip/players/tplay/recipe.toml index 603d5b11b..05ee069f7 100644 --- a/recipes/wip/players/tplay/recipe.toml +++ b/recipes/wip/players/tplay/recipe.toml @@ -5,7 +5,6 @@ git = "https://github.com/maxcurzi/tplay" template = "cargo" dependencies = [ "ffmpeg6", - "llvm18", "openssl1", "opencv4", ] diff --git a/recipes/wip/text/rhyolite/recipe.toml b/recipes/wip/text/rhyolite/recipe.toml new file mode 100644 index 000000000..d4982a371 --- /dev/null +++ b/recipes/wip/text/rhyolite/recipe.toml @@ -0,0 +1,13 @@ +#TODO not compiled or tested +#TODO resource packaging: https://github.com/lockedmutex/rhyolite/blob/master/Cargo.toml#L43 +[source] +git = "https://github.com/lockedmutex/rhyolite" +[build] +template = "custom" +dependencies = [ + "freetype2", + "fontconfig", +] +script = """ +cookbook_cargo --profile release +""" diff --git a/recipes/wip/text/treemd/recipe.toml b/recipes/wip/text/treemd/recipe.toml new file mode 100644 index 000000000..6d3ae01b1 --- /dev/null +++ b/recipes/wip/text/treemd/recipe.toml @@ -0,0 +1,5 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/Epistates/treemd" +[build] +template = "cargo" diff --git a/recipes/wip/vm/qemu/recipe.toml b/recipes/wip/vm/qemu/recipe.toml index bbf0179b4..31d7010f8 100644 --- a/recipes/wip/vm/qemu/recipe.toml +++ b/recipes/wip/vm/qemu/recipe.toml @@ -14,7 +14,6 @@ dependencies = [ "liborbital", "libpng", "libstdcxx", - "llvm18", "mesa", "nghttp2", "openssl1", diff --git a/recipes/wip/web/dodeca/recipe.toml b/recipes/wip/web/dodeca/recipe.toml new file mode 100644 index 000000000..39466af80 --- /dev/null +++ b/recipes/wip/web/dodeca/recipe.toml @@ -0,0 +1,8 @@ +#TODO not compiled or tested +[source] +git = "https://github.com/bearcove/dodeca" +[build] +template = "custom" +script = """ +cookbook_cargo_packages dodeca +""" diff --git a/recipes/wip/web/servo/recipe.toml b/recipes/wip/web/servo/recipe.toml index 8bc27b637..0759eb455 100644 --- a/recipes/wip/web/servo/recipe.toml +++ b/recipes/wip/web/servo/recipe.toml @@ -36,7 +36,9 @@ PREFIX_INCLUDE="$COOKBOOK_HOST_SYSROOT/$TARGET/include" export CLANGFLAGS="-I $PREFIX_INCLUDE/c++/13.2.0 -I $PREFIX_INCLUDE/c++/13.2.0/$TARGET -I $PREFIX_INCLUDE/c++/13.2.0/backward -I $PREFIX_INCLUDE" #Mozjs specifics +unset CC_WRAPPER export CARGO_MAKEFLAGS="-j $COOKBOOK_MAKE_JOBS" CCACHE="sccache" +unset CC_WRAPPER PACKAGE_PATH="ports/servoshell" cookbook_cargo diff --git a/recipes/wip/x11/drm-info/recipe.toml b/recipes/wip/x11/drm-info/recipe.toml new file mode 100644 index 000000000..d1885e8c5 --- /dev/null +++ b/recipes/wip/x11/drm-info/recipe.toml @@ -0,0 +1,11 @@ +[source] +tar = "https://gitlab.freedesktop.org/emersion/drm_info/-/archive/v2.9.0/drm_info-v2.9.0.tar.gz" +blake3 = "48ff592b206a85c1d946abfe2f8a4e7ef40f9f1ee7d3d5ee454a33390f86d8cb" +patches = ["redox.patch"] + +[build] +dependencies = [ + "json-c", + "libdrm", +] +template = "meson" diff --git a/recipes/wip/x11/drm-info/redox.patch b/recipes/wip/x11/drm-info/redox.patch new file mode 100644 index 000000000..06d916480 --- /dev/null +++ b/recipes/wip/x11/drm-info/redox.patch @@ -0,0 +1,12 @@ +diff -ruwN source-old/meson.build source/meson.build +--- source-old/meson.build 2025-11-16 10:35:59.000000000 -0700 ++++ source/meson.build 2025-12-11 15:29:28.845861423 -0700 +@@ -68,7 +68,7 @@ + elif libdrm.type_name() == 'internal' + fourcc_h = meson.current_source_dir() / 'subprojects/libdrm/include/drm/drm_fourcc.h' + else +- fourcc_h = libdrm.get_variable(pkgconfig: 'pc_sysrootdir') + libdrm.get_variable(pkgconfig: 'includedir') / 'libdrm/drm_fourcc.h' ++ fourcc_h = libdrm.get_variable(pkgconfig: 'includedir') / 'libdrm/drm_fourcc.h' + endif + + # The DRM_BUS_FAUX bus and its information is included in libdrm v2.4.127 diff --git a/recipes/wip/x11/keybinder3/recipe.toml b/recipes/wip/x11/keybinder3/recipe.toml index 47378a987..65ddf484f 100644 --- a/recipes/wip/x11/keybinder3/recipe.toml +++ b/recipes/wip/x11/keybinder3/recipe.toml @@ -36,7 +36,6 @@ dependencies = [ "libxrandr", "libxrender", "libxxf86vm", - "llvm18", "mesa-x11", "pango", "pcre", diff --git a/recipes/wip/x11/lxde/libfm-gtk3/recipe.toml b/recipes/wip/x11/lxde/libfm-gtk3/recipe.toml index ea5d38401..eb232f92a 100644 --- a/recipes/wip/x11/lxde/libfm-gtk3/recipe.toml +++ b/recipes/wip/x11/lxde/libfm-gtk3/recipe.toml @@ -39,7 +39,6 @@ dependencies = [ "libxrandr", "libxrender", "libxxf86vm", - "llvm18", "mesa-x11", "pango", "pcre", diff --git a/recipes/wip/x11/lxde/lxpanel/recipe.toml b/recipes/wip/x11/lxde/lxpanel/recipe.toml index 504f69124..eeb6df653 100644 --- a/recipes/wip/x11/lxde/lxpanel/recipe.toml +++ b/recipes/wip/x11/lxde/lxpanel/recipe.toml @@ -41,7 +41,6 @@ dependencies = [ "libxrandr", "libxrender", "libxxf86vm", - "llvm18", "mesa-x11", "pango", "pcre", diff --git a/recipes/wip/x11/mesa-demos-x11/recipe.toml b/recipes/wip/x11/mesa-demos-x11/recipe.toml index 6a94ccccc..f7b049aeb 100644 --- a/recipes/wip/x11/mesa-demos-x11/recipe.toml +++ b/recipes/wip/x11/mesa-demos-x11/recipe.toml @@ -5,23 +5,12 @@ patches = ["redox.patch"] [build] dependencies = [ - "expat", - "libpthread-stubs", - "libstdcxx", - "libx11", - "libxau", - "libxcb", - "libxext", - "libxfixes", - "libxml2", - "libxxf86vm", - "llvm18", - "mesa-x11", "mesa-glu-x11", - "x11proto", - "xextproto", - "zlib", ] +dev-dependencies = [ + "libstdcxx", +] + template = "custom" script = """ DYNAMIC_INIT diff --git a/recipes/wip/x11/mesa-glu-x11/recipe.toml b/recipes/wip/x11/mesa-glu-x11/recipe.toml index c4a7e860a..a105a30ca 100644 --- a/recipes/wip/x11/mesa-glu-x11/recipe.toml +++ b/recipes/wip/x11/mesa-glu-x11/recipe.toml @@ -4,15 +4,7 @@ blake3 = "beed1665ed983540e7502289ec50c7e66d840820af3e9ef21c9c4a7e9686ab9f" [build] dependencies = [ - "libpthread-stubs", - "libx11", - "libxau", - "libxcb", - "libxext", - "libxfixes", - "libxxf86vm", "mesa-x11", - "x11proto", ] template = "custom" script = """ diff --git a/recipes/wip/x11/mesa-x11/recipe.toml b/recipes/wip/x11/mesa-x11/recipe.toml index c18db7d98..67f6452b8 100644 --- a/recipes/wip/x11/mesa-x11/recipe.toml +++ b/recipes/wip/x11/mesa-x11/recipe.toml @@ -6,19 +6,22 @@ template = "custom" dependencies = [ "expat", "libdrm", - "libpthread-stubs", "libx11", - "libxau", "libxcb", "libxext", "libxfixes", "libxrandr", "libxshmfence", "libxxf86vm", - "llvm18", - "x11proto", + "llvm21", "zlib", ] +dev-dependencies = [ + "llvm21.dev", + "host:llvm21.dev", + "host:llvm21.runtime", +] + script = """ DYNAMIC_INIT cookbook_meson \ diff --git a/scripts/dual-boot.sh b/scripts/dual-boot.sh index 25d2995c2..b067ad5f4 100755 --- a/scripts/dual-boot.sh +++ b/scripts/dual-boot.sh @@ -55,3 +55,6 @@ set +x sync echo "Finished installing Redox OS dual boot" +echo "" +echo "To mount the RedoxFS partition, run:" +echo " ./scripts/mount-redoxfs.sh ${DISK}" diff --git a/scripts/mount-redoxfs.sh b/scripts/mount-redoxfs.sh new file mode 100755 index 000000000..495d81f55 --- /dev/null +++ b/scripts/mount-redoxfs.sh @@ -0,0 +1,119 @@ +#!/usr/bin/env bash + +set -e + +MOUNT_POINT="/mnt/redoxfs" +DISK_DEVICE="" + +show_help() { + echo "Usage: $0 [options] " + echo "" + echo "Mount or unmount a RedoxFS partition" + echo "" + echo "Options:" + echo " -u, --unmount Unmount the RedoxFS partition" + echo " -m, --mount-point PATH Custom mount point (default: /mnt/redoxfs)" + echo " -h, --help Show this help" + echo "" + echo "Examples:" + echo " $0 /dev/sda3 Mount /dev/sda3" + echo " $0 -u Unmount from default location" + echo " $0 -m /mnt/my-redox /dev/sda3 Mount to custom location" +} + +unmount_fs() { + if mountpoint -q "$MOUNT_POINT" 2>/dev/null; then + echo "Unmounting RedoxFS from $MOUNT_POINT..." + fusermount -u "$MOUNT_POINT" || fusermount3 -u "$MOUNT_POINT" + echo "Successfully unmounted" + else + echo "Nothing mounted at $MOUNT_POINT" + fi + exit 0 +} + +check_dependencies() { + # Try to find redoxfs in multiple locations + REDOXFS_BIN="" + if [ -x "build/fstools/bin/redoxfs" ]; then + REDOXFS_BIN="build/fstools/bin/redoxfs" + elif [ -x "$(dirname "$0")/../build/fstools/bin/redoxfs" ]; then + REDOXFS_BIN="$(dirname "$0")/../build/fstools/bin/redoxfs" + elif command -v redoxfs &> /dev/null; then + REDOXFS_BIN="redoxfs" + fi + + if [ -z "$REDOXFS_BIN" ]; then + echo "Error: redoxfs command not found" + echo "Please build it first with: make fstools" + exit 1 + fi + + if ! ldconfig -p 2>/dev/null | grep -q "libfuse3"; then + echo "Error: libfuse 3.x is not installed" + echo "Please install it:" + if command -v apt-get &> /dev/null; then + echo " sudo apt-get install fuse3 libfuse3-dev" + elif command -v dnf &> /dev/null; then + echo " sudo dnf install fuse3-devel" + elif command -v pacman &> /dev/null; then + echo " sudo pacman -S fuse3" + else + echo " (check your package manager for fuse3)" + fi + exit 1 + fi +} + +UNMOUNT=false + +while [[ $# -gt 0 ]]; do + case $1 in + -u|--unmount) + UNMOUNT=true + shift + ;; + -m|--mount-point) + MOUNT_POINT="$2" + shift 2 + ;; + -h|--help) + show_help + exit 0 + ;; + *) + DISK_DEVICE="$1" + shift + ;; + esac +done + +if [ "$UNMOUNT" = true ]; then + unmount_fs +fi + +if [ -z "$DISK_DEVICE" ]; then + DISK_DEVICE="/dev/disk/by-partlabel/REDOX_INSTALL" + if [ ! -b "$DISK_DEVICE" ]; then + echo "Error: No device specified and default partition not found" + echo "" + show_help + exit 1 + fi +fi + +if [ ! -b "$DISK_DEVICE" ] && [ ! -f "$DISK_DEVICE" ]; then + echo "Error: $DISK_DEVICE is not a block device or file" + exit 1 +fi + +check_dependencies + +mkdir -p "$MOUNT_POINT" + +echo "Mounting $DISK_DEVICE to $MOUNT_POINT..." +"$REDOXFS_BIN" "$DISK_DEVICE" "$MOUNT_POINT" + +echo "RedoxFS successfully mounted at $MOUNT_POINT" +echo "To unmount, run: $0 -u" + diff --git a/src/bin/repo.rs b/src/bin/repo.rs index 7d2833988..c4a10a28b 100644 --- a/src/bin/repo.rs +++ b/src/bin/repo.rs @@ -498,46 +498,47 @@ fn parse_args(args: Vec) -> anyhow::Result<(CliConfig, CliCommand, Vec {} - // keep local changes - PackageConfig::Build(rule) if rule == "local" => recipe.recipe.source = None, - // download from remote build - PackageConfig::Build(rule) if rule == "binary" => { - recipe.recipe.source = None; - recipe.recipe.build.set_as_remote(); - } - // don't build this recipe (unlikely to go here unless some deps need it) - // TODO: Note that we're assuming this being ignored from e.g. metapackages - // TODO: Will totally broke build if this recipe needed as some other build dependencies - PackageConfig::Build(rule) if rule == "ignore" => { - recipe.recipe.source = None; - recipe.recipe.build.set_as_none(); - } - PackageConfig::Build(rule) => { - bail!( - // Fail fast because we could risk losing local changes if "local" was typo'ed - "Invalid pkg config {} = \"{}\"\nExpecting either 'source', 'local', 'binary' or 'ignore'", - recipe.name.as_str(), - rule - ); - } + let repo_binary = conf.general.repo_binary == Some(true); + let mut last_rule = if repo_binary { "binary" } else { "source" }; + // Use rev() so recipes that don't listed in config is inherited from parent + for recipe in recipes.iter_mut().rev() { + if let Some(conf) = conf.packages.get(recipe.name.as_str()) { + last_rule = match conf { + PackageConfig::Build(rule) => &rule, _ => { - if conf.general.repo_binary == Some(true) { - // same reason as Build("binary") - recipe.recipe.source = None; - recipe.recipe.build.set_as_remote(); + if repo_binary { + "binary" + } else { + "source" } } } - } else { - if conf.general.repo_binary == Some(true) { + }; + match last_rule { + // build from source as usual + "source" => {} + // keep local changes + "local" => recipe.recipe.source = None, + // download from remote build + "binary" => { recipe.recipe.source = None; recipe.recipe.build.set_as_remote(); } + // don't build this recipe (unlikely to go here unless some deps need it) + // TODO: Note that we're assuming this being ignored from e.g. metapackages + // TODO: Will totally broke build if this recipe needed as some other build dependencies + "ignore" => { + recipe.recipe.source = None; + recipe.recipe.build.set_as_none(); + } + rule => { + bail!( + // Fail fast because we could risk losing local changes if "local" was typo'ed + "Invalid pkg config {} = \"{}\"\nExpecting either 'source', 'local', 'binary' or 'ignore'", + recipe.name.as_str(), + rule + ); + } } } } diff --git a/src/bin/repo_builder.rs b/src/bin/repo_builder.rs index d7ae75bcc..cc090a316 100644 --- a/src/bin/repo_builder.rs +++ b/src/bin/repo_builder.rs @@ -98,7 +98,7 @@ fn publish_packages(config: &CliConfig) -> anyhow::Result<()> { for package in cookbook_recipe.recipe.get_packages_list() { let (stage_dir, pkgar_src, toml_src) = cook_package::package_stage_paths(package, &target_dir); - let recipe_name = recipe.without_host(); + let recipe_name = cook_package::get_package_name(recipe.name(), package); let pkgar_dst = repo_path.join(format!("{}.pkgar", recipe_name)); let toml_dst = repo_path.join(format!("{}.toml", recipe_name)); diff --git a/src/cook/cook_build.rs b/src/cook/cook_build.rs index 385dc3ece..74d515c9b 100644 --- a/src/cook/cook_build.rs +++ b/src/cook/cook_build.rs @@ -21,7 +21,7 @@ use std::{ use crate::{is_redox, log_to_pty}; fn auto_deps_from_dynamic_linking( - stage_dirs: &Vec, + stage_dirs: &[PathBuf], target_dir: &Path, dep_pkgars: &BTreeSet<(PackageName, PathBuf)>, logger: &PtyOut, @@ -188,12 +188,13 @@ pub fn build( let mut dep_pkgars = BTreeSet::new(); let mut dep_host_pkgars = BTreeSet::new(); - let mut build_deps = - CookRecipe::get_build_deps_recursive(&recipe.build.dependencies, false, false) - .map_err(|e| format!("{:?}", e))?; - for dep in &recipe.build.dev_dependencies { - build_deps.push(CookRecipe::from_name(dep.clone()).map_err(|e| format!("{:?}", e))?); - } + let build_deps = [ + &recipe.build.dependencies[..], + &recipe.build.dev_dependencies[..], + ] + .concat(); + let build_deps = CookRecipe::get_build_deps_recursive(&build_deps, false, false) + .map_err(|e| format!("{:?}", e))?; for dependency in build_deps.iter() { let (_, pkgar, _) = dependency.stage_paths(); if dependency.name.is_host() { @@ -600,7 +601,7 @@ mod tests { ); let entries = super::auto_deps_from_dynamic_linking( - &root, + &vec![root.clone()], &root.join(".."), &Default::default(), &None, diff --git a/src/cook/package.rs b/src/cook/package.rs index 70d90818e..bfbf51817 100644 --- a/src/cook/package.rs +++ b/src/cook/package.rs @@ -72,19 +72,8 @@ pub fn package( .map_err(|err| format!("failed to create pkgar archive: {:?}", err))?; } - let deps = if let Some(package) = package { - let mut b = BTreeSet::new(); - for dep in &package.dependencies { - let dep_name = if dep.name() == "" { - PackageName::new(format!("{}.{}", name.name(), package.name)) - .map_err(|e| format!("{}", e))? - } else { - dep.clone() - }; - b.insert(dep_name); - } - b.insert(name.clone()); - b + let deps = if package.is_some() { + BTreeSet::from([name.without_host()]) } else { auto_deps.clone() }; @@ -96,7 +85,17 @@ pub fn package( None => name.clone(), }; let package_deps = match package { - Some(p) => p.dependencies.clone(), + Some(p) => p + .dependencies + .iter() + .map(|dep| { + if dep.name().is_empty() { + name.with_suffix(dep.suffix()) + } else { + dep.clone() + } + }) + .collect(), None => recipe.package.dependencies.clone(), }; package_toml( diff --git a/src/cook/script.rs b/src/cook/script.rs index 312dedd7a..fe7736829 100644 --- a/src/cook/script.rs +++ b/src/cook/script.rs @@ -12,6 +12,8 @@ function DYNAMIC_INIT { case "${TARGET}" in "x86_64-unknown-redox") ;; + "aarch64-unknown-redox") + ;; "x86_64-unknown-linux-gnu") ;; "aarch64-unknown-linux-gnu") diff --git a/src/recipe.rs b/src/recipe.rs index 5e0b4ce6e..953c2f6c3 100644 --- a/src/recipe.rs +++ b/src/recipe.rs @@ -15,7 +15,7 @@ use serde::{ use crate::{WALK_DEPTH, cook::package as cook_package}; /// Specifies how to download the source for a recipe -#[derive(Debug, Clone, Deserialize, PartialEq, Serialize)] +#[derive(Clone, Debug, Deserialize, PartialEq, Serialize)] #[serde(untagged)] pub enum SourceRecipe { /// Reuse the source directory of another package @@ -450,7 +450,7 @@ mod tests { #[test] fn git_cargo_recipe() { - use crate::recipe::{BuildKind, BuildRecipe, PackageRecipe, Recipe, SourceRecipe}; + use crate::recipe::{BuildKind, BuildRecipe, Recipe, SourceRecipe}; let recipe: Recipe = toml::from_str( r#" @@ -470,9 +470,12 @@ mod tests { Recipe { source: Some(SourceRecipe::Git { git: "https://gitlab.redox-os.org/redox-os/acid.git".to_string(), + upstream: None, branch: Some("master".to_string()), rev: Some("06344744d3d55a5ac9a62a6059cb363d40699bbc".to_string()), - ..Default::default() + patches: Vec::new(), + script: None, + shallow_clone: None, }), build: BuildRecipe::new(BuildKind::Cargo { package_path: None, @@ -485,7 +488,7 @@ mod tests { #[test] fn tar_custom_recipe() { - use crate::recipe::{BuildKind, BuildRecipe, PackageRecipe, Recipe, SourceRecipe}; + use crate::recipe::{BuildKind, BuildRecipe, Recipe, SourceRecipe}; let recipe: Recipe = toml::from_str( r#" @@ -544,7 +547,7 @@ mod tests { build: BuildRecipe::new(BuildKind::None), package: PackageRecipe { dependencies: vec![PackageName::new("gcc13").unwrap()], - ....Default::default() + ..Default::default() }, ..Default::default() }