Help needed with Windows CI build failure

Hello,

The Windows Platform build on [DNM]: SBOM (Software Bill of Materials) generation support by echeng3805 · Pull Request #9577 · swiftlang/swift-package-manager · GitHub is failing with the following error:

FAILED: bin/SBOMModel.dll Sources/SBOMModel/CMakeFiles/SBOMModel.dir/SBOMCreator.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/SBOMError.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/SBOMInput.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/Core/SBOMCommit.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/Core/SBOMComponent.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/Core/SBOMDependencies.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/Core/SBOMDocument.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/Core/SBOMIdentifier.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/Core/SBOMLicense.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/Core/SBOMMetadata.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/Core/SBOMOriginator.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/Core/SBOMPerson.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/Core/SBOMRelationship.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/Core/SBOMSpec.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/Core/SBOMTool.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/Converter/CycloneDXConverter.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/Converter/SPDXConverter.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/CycloneDX/CycloneDXComponent.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/CycloneDX/CycloneDXConstants.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/CycloneDX/CycloneDXDependency.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/CycloneDX/CycloneDXDocument.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/CycloneDX/CycloneDXLicense.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/CycloneDX/CycloneDXMetadata.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/CycloneDX/CycloneDXPedigree.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/CycloneDX/CycloneDXProperty.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/Encoder/SBOMEncoder.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/Extractor/PURL.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/Extractor/SBOMCache.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/Extractor/SBOMDependenciesExtractor.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/Extractor/SBOMExtractor.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/Extractor/SBOMFilterStrategy.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/Extractor/SBOMGraphsConverter.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/SPDX/SPDXAgent.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/SPDX/SPDXConstants.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/SPDX/SPDXCreationInfo.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/SPDX/SPDXDocument.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/SPDX/SPDXExternalIdentifier.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/SPDX/SPDXGraph.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/SPDX/SPDXLicenseExpression.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/SPDX/SPDXObject.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/SPDX/SPDXPackage.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/SPDX/SPDXRelationship.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/SPDX/SPDXSBOM.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/SPDX/SPDXType.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/Validator/CycloneDXValidator.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/Validator/SBOMSchema.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/Validator/SBOMValidator.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/Validator/SBOMValidatorProtocol.swift.obj Sources/SBOMModel/CMakeFiles/SBOMModel.dir/Validator/SPDXValidator.swift.obj swift/SBOMModel.swiftmodule lib/SBOMModel.lib 
C:\Windows\system32\cmd.exe /C "cd . && T:\5\bin\swiftc.exe -target x86_64-unknown-windows-msvc -j 36 -num-threads 36 -emit-library -o bin\SBOMModel.dll -module-name SBOMModel -module-link-name SBOMModel -emit-module -emit-module-path swift\SBOMModel.swiftmodule -emit-dependencies -DSBOMModel_EXPORTS -DUSE_IMPL_ONLY_IMPORTS -DCRYPTO_v2 -sdk "T:/Program Files/Swift/Platforms/Windows.platform/Developer/SDKs/Windows.sdk" -gnone -Xlinker /INCREMENTAL:NO -Xlinker /OPT:REF -Xlinker /OPT:ICF -O -swift-version 5 -libc MD -package-name swift_package_manager -Xcc -D_CRT_SECURE_NO_WARNINGS -output-file-map Sources\SBOMModel\CMakeFiles\SBOMModel.dir\Release\output-file-map.json -I T:\x86_64-unknown-windows-msvc\PackageManager\swift -I T:\x86_64-unknown-windows-msvc\ToolsSupportCore\swift -I T:\x86_64-unknown-windows-msvc\Collections\swift -I T:\x86_64-unknown-windows-msvc\Crypto\swift -I C:\Users\swift-ci\jenkins\workspace\swiftpm-PR-windows\swift-crypto\Sources\CCryptoBoringSSL\include -I T:\x86_64-unknown-windows-msvc\ASN1\swift -I T:\x86_64-unknown-windows-msvc\Certificates\swift -I T:\x86_64-unknown-windows-msvc\LLBuild\products\llbuildSwift -I C:\Users\swift-ci\jenkins\workspace\swiftpm-PR-windows\llbuild\products\libllbuild\include -I T:\x86_64-unknown-windows-msvc\Driver\swift -I T:\x86_64-unknown-windows-msvc\Build\swift -I C:\Users\swift-ci\jenkins\workspace\swiftpm-PR-windows\swift-build\Sources\SWBCSupport -I C:\Users\swift-ci\jenkins\workspace\swiftpm-PR-windows\swift-build\Sources\SWBCLibc\include -I T:\x86_64-unknown-windows-msvc\Build\Sources\SWBCLibc -I T:\x86_64-unknown-windows-msvc\ArgumentParser\swift -I T:\x86_64-unknown-windows-msvc\System\swift -I C:\Users\swift-ci\jenkins\workspace\swiftpm-PR-windows\swift-system\Sources\CSystem\include -I T:\x86_64-unknown-windows-msvc\ToolsProtocols\swift -I C:\Users\swift-ci\jenkins\workspace\swiftpm-PR-windows\swift-tools-protocols\Sources\ToolsProtocolsCAtomics\include @CMakeFiles\SBOMModel.rsp    -Xlinker -implib:lib\SBOMModel.lib && cd ."
error: link command failed with exit code 1120 (use -v to see invocation)
   Creating library lib\SBOMModel.lib and object lib\SBOMModel.exp

SPDXConverter.swift.obj : error LNK2019: unresolved external symbol __imp_$sSS17_StringProcessing14RegexComponent0C7BuilderMc referenced in function $sS2S17_StringProcessing14RegexComponent0C7BuilderWl

SBOMGraphsConverter.swift.obj : error LNK2001: unresolved external symbol __imp_$sSS17_StringProcessing14RegexComponent0C7BuilderMc


bin\SBOMModel.dll : fatal error LNK1120: 1 unresolved externals

I understand the failure, but am stumped with how to address this.

Can someone provide guidance?

cc/ @echeng3805 @compnerd

I think that the answer to that is to fix the StringProcessing module. It appears that RegexComponent in RegexBuilder does not properly conform to String.

CC: @nnnnnnnn

I don't see what's triggering the need for that conformance – @bkhouri can you narrow it down a bit? That conformance lives in the RegexBuilder module, so you may need to import that to get what you need.

The code changes in the PR does not make use of RegexBuilder. So why would that be causing failure?

But does the module as a whole make use of RegexBuilder somehow? I wonder if this is just something that was previously getting silently dropped.