ebitengine / purego

Apache License 2.0
1.95k stars 63 forks source link

`go test` fails with Go 1.22 rc2 on macOS (GOARCH=386, CGO_ENABLED=1) #206

Closed hajimehoshi closed 5 months ago

hajimehoshi commented 5 months ago

https://github.com/hajimehoshi/purego/actions/runs/7643912138/job/20827022630

=== RUN   ExampleRegisterClass
SIGBUS: bus error
PC=0xc000162700 m=3 sigcode=2 addr=0xc000162700
signal arrived during cgo execution

goroutine 1 gp=0xc0000061c0 m=3 mp=0xc00004f208 [syscall]:
runtime.cgocall(0x9d28d40, 0xc000162540)
    /Users/runner/hostedtoolcache/go/1.22.0-rc.2/x64/src/runtime/cgocall.go:157 +0x4b fp=0xc000031090 sp=0xc000031058 pc=0x9c1df8b
github.com/ebitengine/purego.RegisterFunc.func4({0xc00007f090?, 0x3?, 0x3?})
    /Users/runner/work/purego/purego/func.go:272 +0xb31 fp=0xc000031478 sp=0xc000031090 pc=0x9d26691
reflect.callReflect(0xc0001088a0, 0xc0000319d0, 0xc0000318a8, 0xc0000318b0)
    /Users/runner/hostedtoolcache/go/1.22.0-rc.2/x64/src/reflect/value.go:782 +0x555 fp=0xc000031858 sp=0xc000031478 pc=0x9cc2ab5
reflect.callReflect(0xc0001088a0, 0xc0000319d0, 0xc0000318a8, 0xc0000318b0)
    <autogenerated>:1 +0x45 fp=0xc000031888 sp=0xc000031858 pc=0x9cc76e5
reflect.makeFuncStub()
    /Users/runner/hostedtoolcache/go/1.22.0-rc.2/x64/src/reflect/asm_amd64.s:47 +0x6e fp=0xc0000319d0 sp=0xc000031888 pc=0x9cc706e
github.com/ebitengine/purego/objc.ID.Send(...)
    /Users/runner/work/purego/purego/objc/objc_runtime_darwin.go:94
github.com/ebitengine/purego/objc_test.ExampleRegisterClass()
    /Users/runner/work/purego/purego/objc/objc_runtime_darwin_test.go:68 +0x2a6 fp=0xc000031b10 sp=0xc0000319d0 pc=0x9d2e0c6
testing.runExample({{0x9d329d6, 0x14}, 0x9da0d18, {0x9d2f008, 0x4}, 0x0})
    /Users/runner/hostedtoolcache/go/1.22.0-rc.2/x64/src/testing/run_example.go:63 +0x2de fp=0xc000031c08 sp=0xc000031b10 pc=0x9ce5d5e
testing.runExamples(0x9da3540?, {0x9e7ab40, 0x4, 0x1?})
    /Users/runner/hostedtoolcache/go/1.22.0-rc.2/x64/src/testing/example.go:40 +0x126 fp=0xc000031ca0 sp=0xc000031c08 pc=0x9ce1746
testing.(*M).Run(0xc00010c1e0)
    /Users/runner/hostedtoolcache/go/1.22.0-rc.2/x64/src/testing/testing.go:2029 +0x75d fp=0xc000031ed0 sp=0xc000031ca0 pc=0x9cebb5d
main.main()
    _testmain.go:57 +0x16c fp=0xc000031f50 sp=0xc000031ed0 pc=0x9d2ec2c
runtime.main()
    /Users/runner/hostedtoolcache/go/1.22.0-rc.2/x64/src/runtime/proc.go:271 +0x29d fp=0xc000031fe0 sp=0xc000031f50 pc=0x9c534bd
runtime.goexit({})
    /Users/runner/hostedtoolcache/go/1.22.0-rc.2/x64/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc000031fe8 sp=0xc000031fe0 pc=0x9c884a1

goroutine 2 gp=0xc000006c40 m=nil [force gc (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
    /Users/runner/hostedtoolcache/go/1.22.0-rc.2/x64/src/runtime/proc.go:402 +0xce fp=0xc000048fa8 sp=0xc000048f88 pc=0x9c5390e
runtime.goparkunlock(...)
    /Users/runner/hostedtoolcache/go/1.22.0-rc.2/x64/src/runtime/proc.go:408
runtime.forcegchelper()
    /Users/runner/hostedtoolcache/go/1.22.0-rc.2/x64/src/runtime/proc.go:326 +0xb3 fp=0xc000048fe0 sp=0xc000048fa8 pc=0x9c53773
runtime.goexit({})
    /Users/runner/hostedtoolcache/go/1.22.0-rc.2/x64/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc000048fe8 sp=0xc000048fe0 pc=0x9c884a1
created by runtime.init.6 in goroutine 1
    /Users/runner/hostedtoolcache/go/1.22.0-rc.2/x64/src/runtime/proc.go:314 +0x1a

goroutine 3 gp=0xc000007180 m=nil [GC sweep wait]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
    /Users/runner/hostedtoolcache/go/1.22.0-rc.2/x64/src/runtime/proc.go:402 +0xce fp=0xc000049780 sp=0xc000049760 pc=0x9c5390e
runtime.goparkunlock(...)
    /Users/runner/hostedtoolcache/go/1.22.0-rc.2/x64/src/runtime/proc.go:408
runtime.bgsweep(0xc000024460)
    /Users/runner/hostedtoolcache/go/1.22.0-rc.2/x64/src/runtime/mgcsweep.go:278 +0x94 fp=0xc0000497c8 sp=0xc000049780 pc=0x9c3e514
runtime.gcenable.gowrap1()
    /Users/runner/hostedtoolcache/go/1.22.0-rc.2/x64/src/runtime/mgc.go:203 +0x25 fp=0xc0000497e0 sp=0xc0000497c8 pc=0x9c32e65
runtime.goexit({})
    /Users/runner/hostedtoolcache/go/1.22.0-rc.2/x64/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc0000497e8 sp=0xc0000497e0 pc=0x9c884a1
created by runtime.gcenable in goroutine 1
    /Users/runner/hostedtoolcache/go/1.22.0-rc.2/x64/src/runtime/mgc.go:203 +0x66

goroutine 4 gp=0xc000007340 m=nil [GC scavenge wait]:
runtime.gopark(0xc000024460?, 0x9d63af8?, 0x1?, 0x0?, 0xc000007340?)
    /Users/runner/hostedtoolcache/go/1.22.0-rc.2/x64/src/runtime/proc.go:402 +0xce fp=0xc000049f78 sp=0xc000049f58 pc=0x9c5390e
runtime.goparkunlock(...)
    /Users/runner/hostedtoolcache/go/1.22.0-rc.2/x64/src/runtime/proc.go:408
runtime.(*scavengerState).park(0x9e7f3c0)
    /Users/runner/hostedtoolcache/go/1.22.0-rc.2/x64/src/runtime/mgcscavenge.go:425 +0x49 fp=0xc000049fa8 sp=0xc000049f78 pc=0x9c3bf09
runtime.bgscavenge(0xc000024460)
    /Users/runner/hostedtoolcache/go/1.22.0-rc.2/x64/src/runtime/mgcscavenge.go:653 +0x3c fp=0xc000049fc8 sp=0xc000049fa8 pc=0x9c3c49c
runtime.gcenable.gowrap2()
    /Users/runner/hostedtoolcache/go/1.22.0-rc.2/x64/src/runtime/mgc.go:204 +0x25 fp=0xc000049fe0 sp=0xc000049fc8 pc=0x9c32e05
runtime.goexit({})
    /Users/runner/hostedtoolcache/go/1.22.0-rc.2/x64/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc000049fe8 sp=0xc000049fe0 pc=0x9c884a1
created by runtime.gcenable in goroutine 1
    /Users/runner/hostedtoolcache/go/1.22.0-rc.2/x64/src/runtime/mgc.go:204 +0xa5

goroutine 5 gp=0xc000007c00 m=nil [finalizer wait]:
runtime.gopark(0xc000048648?, 0x9c27185?, 0xa8?, 0x1?, 0x9d9f340?)
    /Users/runner/hostedtoolcache/go/1.22.0-rc.2/x64/src/runtime/proc.go:402 +0xce fp=0xc00004[862](https://github.com/hajimehoshi/purego/actions/runs/7643912138/job/20827022630#step:9:863)0 sp=0xc000048600 pc=0x9c5390e
runtime.runfinq()
    /Users/runner/hostedtoolcache/go/1.22.0-rc.2/x64/src/runtime/mfinal.go:194 +0x107 fp=0xc0000487e0 sp=0xc000048620 pc=0x9c31ea7
runtime.goexit({})
    /Users/runner/hostedtoolcache/go/1.22.0-rc.2/x64/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc0000487e8 sp=0xc0000487e0 pc=0x9c884a1
created by runtime.createfing in goroutine 1
    /Users/runner/hostedtoolcache/go/1.22.0-rc.2/x64/src/runtime/mfinal.go:164 +0x3d

goroutine 18 gp=0xc0001421c0 m=nil [IO wait]:
runtime.gopark(0x6?, 0xc00018c000?, 0x0?, 0x80?, 0x0?)
    /Users/runner/hostedtoolcache/go/1.22.0-rc.2/x64/src/runtime/proc.go:402 +0xce fp=0xc00004a460 sp=0xc00004a440 pc=0x9c5390e
runtime.netpollblock(0x9c91aa5?, 0x9c1db66?, 0x0?)
    /Users/runner/hostedtoolcache/go/1.22.0-rc.2/x64/src/runtime/netpoll.go:573 +0xf7 fp=0xc00004a498 sp=0xc00004a460 pc=0x9c4d4f7
internal/poll.runtime_pollWait(0x109fa0e0, 0x72)
    /Users/runner/hostedtoolcache/go/1.22.0-rc.2/x64/src/runtime/netpoll.go:345 +0x85 fp=0xc00004a4b8 sp=0xc00004a498 pc=0x9c83465
internal/poll.(*pollDesc).wait(0xc000016360?, 0xc00018c000?, 0x1)
    /Users/runner/hostedtoolcache/go/1.22.0-rc.2/x64/src/internal/poll/fd_poll_runtime.go:84 +0x27 fp=0xc00004a4e0 sp=0xc00004a4b8 pc=0x9ca6867
internal/poll.(*pollDesc).waitRead(...)
    /Users/runner/hostedtoolcache/go/1.22.0-rc.2/x64/src/internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Read(0xc000016360, {0xc00018c000, 0x8000, 0x8000})
    /Users/runner/hostedtoolcache/go/1.22.0-rc.2/x64/src/internal/poll/fd_unix.go:164 +0x27a fp=0xc00004a578 sp=0xc00004a4e0 pc=0x9ca6e3a
os.(*File).read(...)
    /Users/runner/hostedtoolcache/go/1.22.0-rc.2/x64/src/os/file_posix.go:29
os.(*File).Read(0xc00004c200, {0xc00018c000?, 0x9d76940?, 0x9c92501?})
    /Users/runner/hostedtoolcache/go/1.22.0-rc.2/x64/src/os/file.go:118 +0x52 fp=0xc00004a5b8 sp=0xc00004a578 pc=0x9ca7e12
os.(*fileWithoutWriteTo).Read(0x9e75f50?, {0xc00018c000?, 0x9c2ccbf?, 0xc000182008?})
    <autogenerated>:1 +0x25 fp=0xc00004a5e8 sp=0xc00004a5b8 pc=0x9caa405
io.copyBuffer({0x9da2228, 0xc000180020}, {0x9da2188, 0xc000182008}, {0x0, 0x0, 0x0})
    /Users/runner/hostedtoolcache/go/1.22.0-rc.2/x64/src/io/io.go:429 +0x191 fp=0xc00004a660 sp=0xc00004a5e8 pc=0x9ca50b1
io.Copy(...)
    /Users/runner/hostedtoolcache/go/1.22.0-rc.2/x64/src/io/io.go:388
os.genericWriteTo(0xc000016240?, {0x9da2228, 0xc000180020})
    /Users/runner/hostedtoolcache/go/1.22.0-rc.2/x64/src/os/file.go:269 +0x58 fp=0xc00004a6b0 sp=0xc00004a660 pc=0x9ca8298
os.(*File).WriteTo(0x9e75f30?, {0x9da2228?, 0xc000180020?})
    /Users/runner/hostedtoolcache/go/1.22.0-rc.2/x64/src/os/file.go:247 +0x49 fp=0xc00004a6d8 sp=0xc00004a6b0 pc=0x9ca81c9
io.copyBuffer({0x9da2228, 0xc000180020}, {0x9da2248, 0xc00004c200}, {0x0, 0x0, 0x0})
    /Users/runner/hostedtoolcache/go/1.22.0-rc.2/x64/src/io/io.go:411 +0x9d fp=0xc00004a750 sp=0xc00004a6d8 pc=0x9ca4fbd
io.Copy(...)
    /Users/runner/hostedtoolcache/go/1.22.0-rc.2/x64/src/io/io.go:388
testing.runExample.func1()
    /Users/runner/hostedtoolcache/go/1.22.0-rc.2/x64/src/testing/run_example.go:37 +0x66 fp=0xc00004a7e0 sp=0xc00004a750 pc=0x9ce5f86
runtime.goexit({})
    /Users/runner/hostedtoolcache/go/1.22.0-rc.2/x64/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc00004a7e8 sp=0xc00004a7e0 pc=0x9c884a1
created by testing.runExample in goroutine 1
    /Users/runner/hostedtoolcache/go/1.22.0-rc.2/x64/src/testing/run_example.go:35 +0x218

rax    0x7000093faf38
rbx    0xc00004f208
rcx    0xc00004f208
rdx    0xc00004f208
rdi    0xc000031048
rsi    0xc000006fc0
rbp    0x7000093fadd0
rsp    0x7000093fad90
r8     0x9d[864](https://github.com/hajimehoshi/purego/actions/runs/7643912138/job/20827022630#step:9:865)01
r9     0x0
r10    0xc0000138f0
r11    0x10
r12    0x0
r13    0x0
r14    0xc0000061c0
r15    0x1fffffffffffff
rip    0xc000162700
rflags 0x10212
cs     0x2b
fs     0x0
gs     0x0
FAIL    github.com/ebitengine/purego/objc   0.172s
FAIL

I failed to reproduce this on my local MacBook Pro 2023.

hajimehoshi commented 5 months ago

I think I could reproduce this on my local machine:

                    'c.          hajimehoshi@Hajimes-MacBook-Pro.local 
                 ,xNMM.          ------------------------------------- 
               .OMMMMo           OS: macOS 14.2.1 23C71 arm64 
               OMMM0,            Host: Mac15,6 
     .;loddo:' loolloddol;.      Kernel: 23.2.0 
   cKMMMMMMMMMMNWMMMMMMMMMM0:    Uptime: 5 days, 12 hours, 21 mins 
 .KMMMMMMMMMMMMMMMMMMMMMMMWd.    Packages: 77 (brew) 
 XMMMMMMMMMMMMMMMMMMMMMMMX.      Shell: zsh 5.9 
;MMMMMMMMMMMMMMMMMMMMMMMM:       Resolution: 1800x1169 
:MMMMMMMMMMMMMMMMMMMMMMMM:       DE: Aqua 
.MMMMMMMMMMMMMMMMMMMMMMMMX.      WM: Quartz Compositor 
 kMMMMMMMMMMMMMMMMMMMMMMMMWd.    WM Theme: Blue (Light) 
 .XMMMMMMMMMMMMMMMMMMMMMMMMMMk   Terminal: tmux 
  .XMMMMMMMMMMMMMMMMMMMMMMMMK.   CPU: Apple M3 Pro 
    kMMMMMMMMMMMMMMMMMMMMMMd     GPU: Apple M3 Pro 
     ;KMMMMMMMWXXWMMMMMMMk.      Memory: 3227MiB / 18432MiB 
       .cooc,.    .,coo:.
CGO_ENABLED=1 GOARCH=amd64 go1.22rc2 test ./... -count=1
?       github.com/ebitengine/purego/examples/libc  [no test files]
?       github.com/ebitengine/purego/examples/objc  [no test files]
?       github.com/ebitengine/purego/internal/buildtest [no test files]
?       github.com/ebitengine/purego/internal/cgo   [no test files]
?       github.com/ebitengine/purego/internal/fakecgo   [no test files]
?       github.com/ebitengine/purego/internal/strings   [no test files]
ok      github.com/ebitengine/purego    2.520s
SIGBUS: bus error
PC=0xc000091ea0 m=0 sigcode=2 addr=0xc000091ea0
signal arrived during cgo execution

goroutine 1 gp=0xc0000061c0 m=0 mp=0x6030d40 [syscall]:
runtime.cgocall(0x5edad40, 0xc000091ce0)
    /Users/hajimehoshi/sdk/go1.22rc2/src/runtime/cgocall.go:157 +0x4b fp=0xc00002d090 sp=0xc00002d058 pc=0x5dcff8b
github.com/ebitengine/purego.RegisterFunc.func4({0xc00008a320?, 0x3?, 0x3?})
    /Users/hajimehoshi/purego/func.go:272 +0xb31 fp=0xc00002d478 sp=0xc00002d090 pc=0x5ed8691
reflect.callReflect(0xc0001208a0, 0xc00002d9d0, 0xc00002d8a8, 0xc00002d8b0)
    /Users/hajimehoshi/sdk/go1.22rc2/src/reflect/value.go:782 +0x555 fp=0xc00002d858 sp=0xc00002d478 pc=0x5e74ab5
reflect.callReflect(0xc0001208a0, 0xc00002d9d0, 0xc00002d8a8, 0xc00002d8b0)
    <autogenerated>:1 +0x45 fp=0xc00002d888 sp=0xc00002d858 pc=0x5e796e5
reflect.makeFuncStub()
    /Users/hajimehoshi/sdk/go1.22rc2/src/reflect/asm_amd64.s:47 +0x6e fp=0xc00002d9d0 sp=0xc00002d888 pc=0x5e7906e
github.com/ebitengine/purego/objc.ID.Send(...)
    /Users/hajimehoshi/purego/objc/objc_runtime_darwin.go:94
github.com/ebitengine/purego/objc_test.ExampleRegisterClass()
    /Users/hajimehoshi/purego/objc/objc_runtime_darwin_test.go:68 +0x2a6 fp=0xc00002db10 sp=0xc00002d9d0 pc=0x5ee00c6
testing.runExample({{0x5ee49d6, 0x14}, 0x5f52d18, {0x5ee1008, 0x4}, 0x0})
    /Users/hajimehoshi/sdk/go1.22rc2/src/testing/run_example.go:63 +0x2de fp=0xc00002dc08 sp=0xc00002db10 pc=0x5e97d5e
testing.runExamples(0x5f55540?, {0x602bb40, 0x4, 0x1?})
    /Users/hajimehoshi/sdk/go1.22rc2/src/testing/example.go:40 +0x126 fp=0xc00002dca0 sp=0xc00002dc08 pc=0x5e93746
testing.(*M).Run(0xc0001241e0)
    /Users/hajimehoshi/sdk/go1.22rc2/src/testing/testing.go:2029 +0x75d fp=0xc00002ded0 sp=0xc00002dca0 pc=0x5e9db5d
main.main()
    _testmain.go:57 +0x16c fp=0xc00002df50 sp=0xc00002ded0 pc=0x5ee0c2c
runtime.main()
    /Users/hajimehoshi/sdk/go1.22rc2/src/runtime/proc.go:271 +0x29d fp=0xc00002dfe0 sp=0xc00002df50 pc=0x5e054bd
runtime.goexit({})
    /Users/hajimehoshi/sdk/go1.22rc2/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc00002dfe8 sp=0xc00002dfe0 pc=0x5e3a4a1

goroutine 2 gp=0xc000006c40 m=nil [force gc (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
    /Users/hajimehoshi/sdk/go1.22rc2/src/runtime/proc.go:402 +0xce fp=0xc000054fa8 sp=0xc000054f88 pc=0x5e0590e
runtime.goparkunlock(...)
    /Users/hajimehoshi/sdk/go1.22rc2/src/runtime/proc.go:408
runtime.forcegchelper()
    /Users/hajimehoshi/sdk/go1.22rc2/src/runtime/proc.go:326 +0xb3 fp=0xc000054fe0 sp=0xc000054fa8 pc=0x5e05773
runtime.goexit({})
    /Users/hajimehoshi/sdk/go1.22rc2/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc000054fe8 sp=0xc000054fe0 pc=0x5e3a4a1
created by runtime.init.6 in goroutine 1
    /Users/hajimehoshi/sdk/go1.22rc2/src/runtime/proc.go:314 +0x1a

goroutine 3 gp=0xc000007180 m=nil [GC sweep wait]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
    /Users/hajimehoshi/sdk/go1.22rc2/src/runtime/proc.go:402 +0xce fp=0xc000055780 sp=0xc000055760 pc=0x5e0590e
runtime.goparkunlock(...)
    /Users/hajimehoshi/sdk/go1.22rc2/src/runtime/proc.go:408
runtime.bgsweep(0xc000080000)
    /Users/hajimehoshi/sdk/go1.22rc2/src/runtime/mgcsweep.go:278 +0x94 fp=0xc0000557c8 sp=0xc000055780 pc=0x5df0514
runtime.gcenable.gowrap1()
    /Users/hajimehoshi/sdk/go1.22rc2/src/runtime/mgc.go:203 +0x25 fp=0xc0000557e0 sp=0xc0000557c8 pc=0x5de4e65
runtime.goexit({})
    /Users/hajimehoshi/sdk/go1.22rc2/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc0000557e8 sp=0xc0000557e0 pc=0x5e3a4a1
created by runtime.gcenable in goroutine 1
    /Users/hajimehoshi/sdk/go1.22rc2/src/runtime/mgc.go:203 +0x66

goroutine 4 gp=0xc000007340 m=nil [GC scavenge wait]:
runtime.gopark(0xc000080000?, 0x5f15af8?, 0x1?, 0x0?, 0xc000007340?)
    /Users/hajimehoshi/sdk/go1.22rc2/src/runtime/proc.go:402 +0xce fp=0xc000055f78 sp=0xc000055f58 pc=0x5e0590e
runtime.goparkunlock(...)
    /Users/hajimehoshi/sdk/go1.22rc2/src/runtime/proc.go:408
runtime.(*scavengerState).park(0x60303c0)
    /Users/hajimehoshi/sdk/go1.22rc2/src/runtime/mgcscavenge.go:425 +0x49 fp=0xc000055fa8 sp=0xc000055f78 pc=0x5dedf09
runtime.bgscavenge(0xc000080000)
    /Users/hajimehoshi/sdk/go1.22rc2/src/runtime/mgcscavenge.go:653 +0x3c fp=0xc000055fc8 sp=0xc000055fa8 pc=0x5dee49c
runtime.gcenable.gowrap2()
    /Users/hajimehoshi/sdk/go1.22rc2/src/runtime/mgc.go:204 +0x25 fp=0xc000055fe0 sp=0xc000055fc8 pc=0x5de4e05
runtime.goexit({})
    /Users/hajimehoshi/sdk/go1.22rc2/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc000055fe8 sp=0xc000055fe0 pc=0x5e3a4a1
created by runtime.gcenable in goroutine 1
    /Users/hajimehoshi/sdk/go1.22rc2/src/runtime/mgc.go:204 +0xa5

goroutine 18 gp=0xc000104700 m=nil [finalizer wait]:
runtime.gopark(0xc000054648?, 0x5dd9185?, 0xa8?, 0x1?, 0x5f51340?)
    /Users/hajimehoshi/sdk/go1.22rc2/src/runtime/proc.go:402 +0xce fp=0xc000054620 sp=0xc000054600 pc=0x5e0590e
runtime.runfinq()
    /Users/hajimehoshi/sdk/go1.22rc2/src/runtime/mfinal.go:194 +0x107 fp=0xc0000547e0 sp=0xc000054620 pc=0x5de3ea7
runtime.goexit({})
    /Users/hajimehoshi/sdk/go1.22rc2/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc0000547e8 sp=0xc0000547e0 pc=0x5e3a4a1
created by runtime.createfing in goroutine 1
    /Users/hajimehoshi/sdk/go1.22rc2/src/runtime/mfinal.go:164 +0x3d

goroutine 6 gp=0xc000007880 m=nil [IO wait]:
runtime.gopark(0x6?, 0xc000180000?, 0x0?, 0x80?, 0x0?)
    /Users/hajimehoshi/sdk/go1.22rc2/src/runtime/proc.go:402 +0xce fp=0xc000056460 sp=0xc000056440 pc=0x5e0590e
runtime.netpollblock(0x5e43aa5?, 0x5dcfb66?, 0x0?)
    /Users/hajimehoshi/sdk/go1.22rc2/src/runtime/netpoll.go:573 +0xf7 fp=0xc000056498 sp=0xc000056460 pc=0x5dff4f7
internal/poll.runtime_pollWait(0x4cdcce90, 0x72)
    /Users/hajimehoshi/sdk/go1.22rc2/src/runtime/netpoll.go:345 +0x85 fp=0xc0000564b8 sp=0xc000056498 pc=0x5e35465
internal/poll.(*pollDesc).wait(0xc0000321e0?, 0xc000180000?, 0x1)
    /Users/hajimehoshi/sdk/go1.22rc2/src/internal/poll/fd_poll_runtime.go:84 +0x27 fp=0xc0000564e0 sp=0xc0000564b8 pc=0x5e58867
internal/poll.(*pollDesc).waitRead(...)
    /Users/hajimehoshi/sdk/go1.22rc2/src/internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Read(0xc0000321e0, {0xc000180000, 0x8000, 0x8000})
    /Users/hajimehoshi/sdk/go1.22rc2/src/internal/poll/fd_unix.go:164 +0x27a fp=0xc000056578 sp=0xc0000564e0 pc=0x5e58e3a
os.(*File).read(...)
    /Users/hajimehoshi/sdk/go1.22rc2/src/os/file_posix.go:29
os.(*File).Read(0xc000058020, {0xc000180000?, 0x5f28940?, 0x5e44501?})
    /Users/hajimehoshi/sdk/go1.22rc2/src/os/file.go:118 +0x52 fp=0xc0000565b8 sp=0xc000056578 pc=0x5e59e12
os.(*fileWithoutWriteTo).Read(0x6026f50?, {0xc000180000?, 0x5ddecbf?, 0xc00011c158?})
    <autogenerated>:1 +0x25 fp=0xc0000565e8 sp=0xc0000565b8 pc=0x5e5c405
io.copyBuffer({0x5f54228, 0xc000142660}, {0x5f54188, 0xc00011c158}, {0x0, 0x0, 0x0})
    /Users/hajimehoshi/sdk/go1.22rc2/src/io/io.go:429 +0x191 fp=0xc000056660 sp=0xc0000565e8 pc=0x5e570b1
io.Copy(...)
    /Users/hajimehoshi/sdk/go1.22rc2/src/io/io.go:388
os.genericWriteTo(0xc0000320c0?, {0x5f54228, 0xc000142660})
    /Users/hajimehoshi/sdk/go1.22rc2/src/os/file.go:269 +0x58 fp=0xc0000566b0 sp=0xc000056660 pc=0x5e5a298
os.(*File).WriteTo(0x6026f30?, {0x5f54228?, 0xc000142660?})
    /Users/hajimehoshi/sdk/go1.22rc2/src/os/file.go:247 +0x49 fp=0xc0000566d8 sp=0xc0000566b0 pc=0x5e5a1c9
io.copyBuffer({0x5f54228, 0xc000142660}, {0x5f54248, 0xc000058020}, {0x0, 0x0, 0x0})
    /Users/hajimehoshi/sdk/go1.22rc2/src/io/io.go:411 +0x9d fp=0xc000056750 sp=0xc0000566d8 pc=0x5e56fbd
io.Copy(...)
    /Users/hajimehoshi/sdk/go1.22rc2/src/io/io.go:388
testing.runExample.func1()
    /Users/hajimehoshi/sdk/go1.22rc2/src/testing/run_example.go:37 +0x66 fp=0xc0000567e0 sp=0xc000056750 pc=0x5e97f86
runtime.goexit({})
    /Users/hajimehoshi/sdk/go1.22rc2/src/runtime/asm_amd64.s:1695 +0x1 fp=0xc0000567e8 sp=0xc0000567e0 pc=0x5e3a4a1
created by testing.runExample in goroutine 1
    /Users/hajimehoshi/sdk/go1.22rc2/src/testing/run_example.go:35 +0x218

rax    0x20f16f460
rbx    0x6030d40
rcx    0x6030d40
rdx    0x6030d40
rdi    0xc00002d048
rsi    0x6030540
rbp    0x20f16f300
rsp    0x20f16f2c0
r8     0x5f38401
r9     0x0
r10    0xc0000127f8
r11    0x10
r12    0x0
r13    0x1
r14    0xc0000061c0
r15    0x3ffffffffff
rip    0xc000091ea0
rflags 0x212
cs     0x2b
fs     0x0
gs     0x0
FAIL    github.com/ebitengine/purego/objc   0.380s
FAIL
hajimehoshi commented 5 months ago

Maybe is this duplicated with #193?

TotallyGamerJet commented 5 months ago

Yeah this does seem like a duplicate