hajimehoshi / ebiten

Ebitengine - A dead simple 2D game engine for Go
https://ebitengine.org
Apache License 2.0
11.01k stars 659 forks source link

test failures on macOS due to the stack limits at SyscallN (nosplit) #2264

Closed hajimehoshi closed 2 years ago

hajimehoshi commented 2 years ago

https://github.com/hajimehoshi/ebiten/runs/7943880948

# github.com/hajimehoshi/ebiten/v2/examples/additive
github.com/ebitengine/purego.SyscallN: nosplit stack over 792 byte limit
github.com/ebitengine/purego.SyscallN<1>
    grows 408 bytes, calls github.com/ebitengine/purego.syscall_syscall9X<1>
        grows 168 bytes, calls runtime.cgocall<1>
            grows 56 bytes, calls runtime.entersyscall<1>
                grows 32 bytes, calls runtime.reentersyscall<1>
                    grows 64 bytes, calls runtime.save<1>
                        grows 32 bytes, calls runtime.badctxt<1>
                            grows 32 bytes, calls runtime.throw<1>
                                grows 48 bytes, calls runtime.systemstack<0>
                                    grows 8 bytes, calls gosave_systemstack_switch<43>
                                        grows 8 bytes, calls runtime.abort<0>
                                        64 bytes over limit
                                    grows 8 bytes, calls indirect
                                        grows 8 bytes, calls runtime.morestack<0>
                                        64 bytes over limit
                                    grows 8 bytes, calls indirect
                                        grows 8 bytes, calls runtime.morestack<0>
                                        64 bytes over limit
                                grows 48 bytes, calls runtime.fatalthrow<1>
                                    grows 64 bytes, calls runtime.systemstack<0>
                                        grows 8 bytes, calls gosave_systemstack_switch<43>
                                            grows 8 bytes, calls runtime.abort<0>
                                            128 bytes over limit
                                        grows 8 bytes, calls indirect
                                            grows 8 bytes, calls runtime.morestack<0>
                                            128 bytes over limit
                                        grows 8 bytes, calls indirect
                                            grows 8 bytes, calls runtime.morestack<0>
                                            128 bytes over limit
...

I could reproduce this with:

go build -tags=example "-gcflags=all=-N -l" -v ./...

Could you take a look? @TotallyGamerJet

hajimehoshi commented 2 years ago

Moved to https://github.com/hajimehoshi/oto/issues/182