Code Monkey home page Code Monkey logo

chibi-link's Introduction

chibi-link's People

Contributors

kateinoigakukun avatar yonihemi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

chibi-link's Issues

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

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)

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.