Skip to content

undefined symbols (RegexParser) #5580

Closed
swiftlang/swift
#74277
@svanimpe

Description

@svanimpe

Steps to reproduce:

  • Create a new package with swift package init --type executable
  • Add JavaScriptKit as a dependency. My Package.swift file is as follows:
    // swift-tools-version: 5.9
    // The swift-tools-version declares the minimum version of Swift required to build this package.
    
    import PackageDescription
    
    let package = Package(
      name: "RegexParserIssue",
      dependencies: [
          .package(url: "https://github.com/swiftwasm/JavaScriptKit", from: "0.19.0")
      ],
      targets: [
          .executableTarget(
              name: "RegexParserIssue",
              dependencies: [
                  .product(name: "JavaScriptKit", package: "JavaScriptKit")
              ]
          ),
      ]
    )
    
  • Build using:
    swift build --triple wasm32-unknown-wasi -Xswiftc -static-stdlib -Xswiftc -Xclang-linker -Xswiftc -mexec-model=reactor -Xlinker --export=__main_argc_argv
    

This results in a long list of errors like:

wasm-ld: error: /Users/steven/Library/Developer/Toolchains/swift-wasm-6.0-SNAPSHOT-2024-04-16-a.xctoolchain/usr/lib/swift_static/wasi/libswift_StringProcessing.a(_StringProcessing.o): undefined symbol: $s12_RegexParser3ASTV28GlobalMatchingOptionSequenceVMn
wasm-ld: error: /Users/steven/Library/Developer/Toolchains/swift-wasm-6.0-SNAPSHOT-2024-04-16-a.xctoolchain/usr/lib/swift_static/wasi/libswift_StringProcessing.a(_StringProcessing.o): undefined symbol: $s12_RegexParser13PrettyPrinterVMn
wasm-ld: error: /Users/steven/Library/Developer/Toolchains/swift-wasm-6.0-SNAPSHOT-2024-04-16-a.xctoolchain/usr/lib/swift_static/wasi/libswift_StringProcessing.a(_StringProcessing.o): undefined symbol: $s12_RegexParser9_TreeNodeMp
wasm-ld: error: /Users/steven/Library/Developer/Toolchains/swift-wasm-6.0-SNAPSHOT-2024-04-16-a.xctoolchain/usr/lib/swift_static/wasi/libswift_StringProcessing.a(_StringProcessing.o): undefined symbol: $s12_RegexParser9_TreeNodeP8childrenSayxGSgvgTq
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Workaround:

Add import _RegexParser in a Swift file.

Environment:

swift-wasm-6.0-SNAPSHOT-2024-04-16-a-macos_x86_64

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions