Skip to content

Building a module for a non-ABI stable platform fails when Swift stdlib modules aren't built w/Library Evolution #84241

@stmontgomery

Description

@stmontgomery

Description

There is an effort in progress to begin building Swift stdlib modules (including supporting modules like _StringProcessing and _Concurrency) without Library Evolution (LE) on non-Apple platforms. Historically, these modules have had LE enabled even on non-Apple platforms. But with these changes, clients which already have LE enabled on such platforms hit new build errors such as the following:

<unknown>:0: error: module '_StringProcessing' was not compiled with library evolution support; using it means binary compatibility for '_TestDiscovery' can't be guaranteed
<unknown>:0: error: module '_Concurrency' was not compiled with library evolution support; using it means binary compatibility for '_TestDiscovery' can't be guaranteed

Swift Testing is one project affected by this: see swiftlang/swift-testing#1307

This issue is tracking a resolution in the compiler. @xymus suggested it may be possible to resolve this by suppressing this diagnostic on platforms which don't support ABI stability. Additionally, he mentioned it may make sense to reduce the severity of that diagnostic on ABI stable platforms from error to warning.

Additional information

No response

Metadata

Metadata

Assignees

Labels

buildlibrary evolutionFeature: library evolution (umbrella feature for features that facilitate resilient libraries)

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions