Giter Club home page Giter Club logo

chibi-link's Issues

Crash in release build

Backtrace

$ wasminspect --mapdir /::./objects .build/wasm32-unknown-wasi/release/chibi-link.wasm
(wasminspect) process launch -- main.o lib.o -o main.wasm
Info: Reading main.o
Function exec failure out of bounds memory access, try to access 4294967296 but size of memory is 1179648
(wasminspect) bt
0: $s9ChibiLink12SymbolTargetOyAA04DataC0C14DefinedSegmentVAE09UndefinedG0VAE11SynthesizedVGWObTm
1: .L$s9ChibiLink12SymbolTargetOyAA04DataC0C14DefinedSegmentVAE09UndefinedG0VAE11SynthesizedVGWObTm_bitcast.52
2: $s9ChibiLink11SymbolTableC011addFunctionC0_5flagsAA0fC0CAA0C6TargetOyAA09IndexableH0VAA0F6ImportCAG11SynthesizedOG_AA0C5FlagsVtF
3: $s9ChibiLink0B13InfoCollectorC16onFunctionSymbolyySi_s6UInt32VSSSgSitFTf4dnnnn_n
4: $s9ChibiLink12BinaryReaderC15readSymbolTableyyFAA0B13InfoCollectorC_Tg5
5: $s9ChibiLink12BinaryReaderC18readLinkingSection11sectionSizeySi_tKFAA0B13InfoCollectorC_Tg5Tf4dn_n
6: $s9ChibiLink12BinaryReaderC17readCustomSection11sectionSizeySi_tKFAA0B13InfoCollectorC_Tg5Tf4dn_n
7: $s9ChibiLink12BinaryReaderC12readSectionsyyKFAA0B13InfoCollectorC_Tg5
8: $s9ChibiLink12BinaryReaderC10readModuleyyKFAA0B13InfoCollectorC_Tg5
9: $s9ChibiLink13performLinker_12outputStream7exportsySaySSG_AA010OutputByteF0_pAEtKF
10: main
11: main
12: __main_void
13: __original_main
14: _start
15: _start.command_export
(wasminspect)

Failing to link newer object files

I'm trying to modernize the object files used in PreviewSystem to use swift-wasm-5.3.1-RELEASE toolchain and latest JavaScriptKit.
Linking a trivial object file with the prebuilt library fails at relocation.

Inputs.zip

The log
Info: Reading obj.wasm
Warning: Custom section 'target_features' is currently not supported
Info: Reading library.so.wasm
Warning: Linking subsection 'comdatInfo' is not supported now
Warning: Custom section 'producers' is currently not supported
Debug: weak undef stub for _ZTH5errno is synthesized
Debug: weak undef stub for _swift_FORCE_LOAD_$_swiftWASILibc is synthesized
Debug: __start_swift5_typeref is synthesized
Debug: __stop_swift5_typeref is synthesized
Debug: __start_swift5_type_metadata is synthesized
Debug: __stop_swift5_type_metadata is synthesized
Debug: __start_swift5_reflstr is synthesized
Debug: __stop_swift5_reflstr is synthesized
Debug: __start_swift5_protocols is synthesized
Debug: __stop_swift5_protocols is synthesized
Debug: __start_swift5_protocol_conformances is synthesized
Debug: __stop_swift5_protocol_conformances is synthesized
Debug: __start_swift5_fieldmd is synthesized
Debug: __stop_swift5_fieldmd is synthesized
Debug: __start_swift5_entry is synthesized
Debug: __stop_swift5_entry is synthesized
Debug: __start_swift5_capture is synthesized
Debug: __stop_swift5_capture is synthesized
Debug: __start_swift5_builtin is synthesized
Debug: __stop_swift5_builtin is synthesized
Debug: __start_swift5_assocty is synthesized
Debug: __stop_swift5_assocty is synthesized
Debug: __start_.swift_modhash is synthesized
Debug: __stop_.swift_modhash is synthesized
Debug: __start_.swift1_autolink_entries is synthesized
Debug: __stop_.swift1_autolink_entries is synthesized
Debug: __start_.rodata is synthesized
Debug: __stop_.rodata is synthesized
Debug: __start_.note.swift_reflection_metadata is synthesized
Debug: __stop_.note.swift_reflection_metadata is synthesized
Debug: __start_.data is synthesized
Debug: __stop_.data is synthesized
Debug: __start_.bss is synthesized
Debug: __stop_.bss is synthesized
Debug: __dso_handle is synthesized
Debug: __stack_pointer is synthesized
Debug: Print all undefined symbols
Debug: fd_seek
Debug: fd_prestat_dir_name
Debug: path_remove_directory
Debug: swjs_get_subscript
Debug: swjs_call_function_with_this
Debug: __start_swift5_replac2
Debug: swjs_instanceof
Debug: fd_fdstat_set_flags
Debug: fd_read
Debug: $s10Foundation4UUIDVN
Debug: environ_sizes_get
Debug: swjs_decode_string
Debug: $s10Foundation4UUIDVACycfC
Debug: swjs_encode_string
Debug: __stop_swift5_replace
Debug: fd_close
Debug: path_readlink
Debug: args_sizes_get
Debug: path_create_directory
Debug: path_filestat_set_times
Debug: swjs_set_prop
Debug: fd_fdstat_get
Debug: fd_readdir
Debug: swjs_call_function
Debug: __stop_swift5_replac2
Debug: $s10Foundation4UUIDVs23CustomStringConvertibleAAMc
Debug: poll_oneoff
Debug: swjs_set_subscript
Debug: path_rename
Debug: swjs_load_string
Debug: path_open
Debug: $s10Foundation6BundleCMn
Debug: path_unlink_file
Debug: args_get
Debug: swjs_create_typed_array
Debug: proc_exit
Debug: __start_swift5_replace
Debug: fd_prestat_get
Debug: path_link
Debug: swjs_release
Debug: fd_write
Debug: $s10Foundation8TimeZoneV22abbreviationDictionarySDyS2SGvgZ
Debug: $s10Foundation3URLV14absoluteStringSSvg
Debug: $s10Foundation3URLVMn
Debug: swjs_call_throwing_new
Debug: environ_get
Debug: path_filestat_get
Debug: clock_time_get
Debug: swjs_get_prop
Debug: swjs_create_function
Debug: path_symlink
Debug: random_get
Debug: swjs_call_new
Debug: Writing type
Debug: Finish writing type
Debug: Writing import
Debug: Finish writing import
Debug: Writing function
Debug: Finish writing function
Debug: Writing table
Debug: Finish writing table
Debug: Writing memory
Debug: Finish writing memory
Debug: Writing global
Debug: Finish writing global
Debug: Writing export
Debug: Finish writing export
Debug: Writing elem
Debug: Finish writing elem
Debug: Writing code
Fatal error: file ChibiLink/Relocation.swift, line 156
2021-03-11 18:41:37.808576+0800 chibi-link[4359:10072536] Fatal error: file ChibiLink/Relocation.swift, line 156
(lldb) bt
* thread #1, queue = 'com.apple.main-thread', stop reason = Fatal error
    frame #0: 0x00007fff2ca79890 libswiftCore.dylib`_swift_runtime_on_report
    frame #1: 0x00007fff2caf3ef3 libswiftCore.dylib`_swift_stdlib_reportFatalErrorInFile + 211
    frame #2: 0x00007fff2c7837e5 libswiftCore.dylib`closure #1 (Swift.UnsafeBufferPointer<Swift.UInt8>) -> () in closure #1 (Swift.UnsafeBufferPointer<Swift.UInt8>) -> () in closure #1 (Swift.UnsafeBufferPointer<Swift.UInt8>) -> () in Swift._assertionFailure(_: Swift.StaticString, _: Swift.String, file: Swift.StaticString, line: Swift.UInt, flags: Swift.UInt32) -> Swift.Never + 245
    frame #3: 0x00007fff2c783427 libswiftCore.dylib`closure #1 (Swift.UnsafeBufferPointer<Swift.UInt8>) -> () in closure #1 (Swift.UnsafeBufferPointer<Swift.UInt8>) -> () in Swift._assertionFailure(_: Swift.StaticString, _: Swift.String, file: Swift.StaticString, line: Swift.UInt, flags: Swift.UInt32) -> Swift.Never + 87
    frame #4: 0x00007fff2c783a11 libswiftCore.dylib`function signature specialization <Arg[1] = [Closure Propagated : closure #1 (Swift.UnsafeBufferPointer<Swift.UInt8>) -> () in closure #1 (Swift.UnsafeBufferPointer<Swift.UInt8>) -> () in Swift._assertionFailure(_: Swift.StaticString, _: Swift.String, file: Swift.StaticString, line: Swift.UInt, flags: Swift.UInt32) -> Swift.Never, Argument Types : [Swift.StaticStringSwift.UnsafeBufferPointer<Swift.UInt8>Swift.UIntSwift.UInt32]> of generic specialization <()> of Swift.String.withUTF8<A>((Swift.UnsafeBufferPointer<Swift.UInt8>) throws -> A) throws -> A + 257
    frame #5: 0x00007fff2c7820e7 libswiftCore.dylib`Swift._assertionFailure(_: Swift.StaticString, _: Swift.String, file: Swift.StaticString, line: Swift.UInt, flags: Swift.UInt32) -> Swift.Never + 519
  * frame #6: 0x0000000100048471 chibi-link`Relocator.translate(relocation=ChibiLink.Relocation @ 0x00007ffeefbfcce8, binary=0x0000000107b0fc40, current=0, location=2935, self=0x000000010f9cdaf0) at Relocation.swift:156:17
    frame #7: 0x000000010004b424 chibi-link`Relocator.apply(relocation=ChibiLink.Relocation @ 0x00007ffeefbfd6f8, sectionOffset=968, binary=0x0000000107b0fc40, bytes=8008 values, range=968..<5944, self=0x000000010f9cdaf0) at Relocation.swift:244:21
    frame #8: 0x0000000100046c6c chibi-link`Relocator.relocate(chunk=8008 values, relocations=109 values, binary=0x0000000107b0fc40, range=968..<5944, sectionOffset=968, self=0x000000010f9cdaf0) at Relocation.swift:95:13
    frame #9: 0x00000001000467c8 chibi-link`Relocator.relocate<T>(chunk=0x0000000107b0c070, self=0x000000010f9cdaf0) at Relocation.swift:81:9
    frame #10: 0x000000010002bf19 chibi-link`OutputCodeSection.writeVectorContent(writer=0x000000010fab37d0, relocator=0x000000010f9cdaf0, self=0x000000010f9abd70) at OutputCodeSection.swift:27:34
    frame #11: 0x000000010002c35a chibi-link`protocol witness for OutputVectorSection.writeVectorContent(writer:relocator:) in conformance OutputCodeSection at <compiler-generated>:0
    frame #12: 0x000000010003e6ad chibi-link`OutputVectorSection.writeContent(writer=0x000000010fab37d0, relocator=0x000000010f9cdaf0, self=0x000000010f9abd70) at OutputSection.swift:38:13
    frame #13: 0x000000010002c434 chibi-link`protocol witness for OutputSection.writeContent(writer:relocator:) in conformance OutputCodeSection at <compiler-generated>:0
    frame #14: 0x000000010003e39e chibi-link`OutputSection.write(writer=0x000000010fab37d0, relocator=0x000000010f9cdaf0, self=0x000000010f9abd70) at OutputSection.swift:23:17
    frame #15: 0x000000010002c3ed chibi-link`protocol witness for OutputSection.write(writer:relocator:) in conformance OutputCodeSection at <compiler-generated>:0
    frame #16: 0x00000001000434c1 chibi-link`writeSection #1 <S>(section=0x000000010f9abd70, self=0x000000010fab3830, relocator=0x000000010f9cdaf0) in OutputWriter.writeBinary() at OutputWriter.swift:77:25
    frame #17: 0x00000001000423c1 chibi-link`OutputWriter.writeBinary(self=0x000000010fab3830) at OutputWriter.swift:94:13
    frame #18: 0x000000010002b036 chibi-link`performLinker(filenames=2 values, outputStream=(payload_data_0 = 0x0000000107b0f6c0 -> 0x0000000100076db0 type metadata for ChibiLink.FileOutputByteStream, payload_data_1 = 0x00000001001c0030 dyld`__block_descriptor_tmp, payload_data_2 = 0x00007ffeefbff360, instance_type = ChibiLink.FileOutputByteStream, witness_table_OutputByteStream = 0x0000000100072b38 chibi-link`protocol witness table for ChibiLink.FileOutputByteStream : ChibiLink.OutputByteStream in ChibiLink), exports=0 values) at Linker.swift:16:16
    frame #19: 0x0000000100005523 chibi-link`main at main.swift:23:9
    frame #20: 0x00007fff2039b621 libdyld.dylib`start + 1
    frame #21: 0x00007fff2039b621 libdyld.dylib`start + 1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.