chore: switch purego dependency to bnema/purego fork
Replace local path replace directive with GitHub URL pointing to bnema/purego@91aa177 to avoid accidental pushes to upstream.
- commit
- 8b029581aa8aebd90aa84a2b638058062afa9bdd
- author
- brice · · 2026-03-23 19:51 UTC
- parent
- f14f9b6
- signature
- GPG Verified
CD88F9E564E0102646FB6077A1A07C7C7C3E349D· arch-gpg Verified for the committer email
51 files · +1860 -488
M go.mod +2 -0
| @@ -3,3 +3,5 @@ module github.com/bnema/puregotk | |||
| 3 | 3 | go 1.26.1 | |
| 4 | 4 | ||
| 5 | 5 | require github.com/ebitengine/purego v0.10.0 | |
| 6 | + | ||
| 7 | + | replace github.com/ebitengine/purego => github.com/bnema/purego v0.0.0-20260323095903-91aa177a2704 | |
| @@ -3,3 +3,5 @@ module github.com/bnema/puregotk | |||||
| 3 | go 1.26.1 | 3 | go 1.26.1 | ||
| 4 | 4 | ||||
| 5 | require github.com/ebitengine/purego v0.10.0 | 5 | require github.com/ebitengine/purego v0.10.0 | ||
| 6 | + | ||||
| 7 | + | replace github.com/ebitengine/purego => github.com/bnema/purego v0.0.0-20260323095903-91aa177a2704 | |||
M go.sum +2 -2 generated file: collapsed
M vendor/github.com/ebitengine/purego/README.md +3 -0 generated file: collapsed
M vendor/github.com/ebitengine/purego/dlfcn_nocgo_netbsd.go +2 -0 generated file: collapsed
M vendor/github.com/ebitengine/purego/func.go +220 -107 generated file: collapsed
A vendor/github.com/ebitengine/purego/hostlayout_go123.go +12 -0 generated file: collapsed
A vendor/github.com/ebitengine/purego/hostlayout_nogo123.go +11 -0 generated file: collapsed
A vendor/github.com/ebitengine/purego/internal/fakecgo/abi_riscv64.h +72 -0 generated file: collapsed
M vendor/github.com/ebitengine/purego/internal/fakecgo/asm_riscv64.s +14 -55 generated file: collapsed
M vendor/github.com/ebitengine/purego/internal/fakecgo/go_freebsd.go +4 -25 generated file: collapsed
M vendor/github.com/ebitengine/purego/internal/fakecgo/go_linux.go +4 -25 generated file: collapsed
M vendor/github.com/ebitengine/purego/internal/fakecgo/go_netbsd.go +4 -25 generated file: collapsed
M vendor/github.com/ebitengine/purego/internal/fakecgo/libcgo_netbsd.go +2 -2 generated file: collapsed
A vendor/github.com/ebitengine/purego/internal/fakecgo/linux.go +184 -0 generated file: collapsed
M vendor/github.com/ebitengine/purego/internal/fakecgo/netbsd.go +1 -1 generated file: collapsed
M vendor/github.com/ebitengine/purego/internal/fakecgo/trampolines_386.s +18 -4
| @@ -80,15 +80,29 @@ TEXT ·setg_trampoline(SB), NOSPLIT, $4-8 | |||
| 80 | 80 | CALL BX | |
| 81 | 81 | RET | |
| 82 | 82 | ||
| 83 | - | TEXT threadentry_trampoline(SB), NOSPLIT, $4-0 | |
| 84 | - | MOVL 8(SP), AX // first C arg | |
| 85 | - | MOVL AX, 0(SP) // Go arg 1 | |
| 83 | + | TEXT threadentry_trampoline(SB), NOSPLIT, $24-4 | |
| 84 | + | // Save callee-saved registers | |
| 85 | + | MOVL BP, 20(SP) | |
| 86 | + | MOVL BX, 16(SP) | |
| 87 | + | MOVL SI, 12(SP) | |
| 88 | + | MOVL DI, 8(SP) | |
| 89 | + | ||
| 90 | + | // Move C argument (arg) to stack for Go function | |
| 91 | + | MOVL arg+0(FP), AX | |
| 92 | + | MOVL AX, 0(SP) | |
| 93 | + | ||
| 86 | 94 | MOVL ·threadentry_call(SB), CX | |
| 87 | 95 | MOVL (CX), CX | |
| 88 | 96 | CALL CX | |
| 97 | + | ||
| 98 | + | // Restore callee-saved registers | |
| 99 | + | MOVL 8(SP), DI | |
| 100 | + | MOVL 12(SP), SI | |
| 101 | + | MOVL 16(SP), BX | |
| 102 | + | MOVL 20(SP), BP | |
| 89 | 103 | RET | |
| 90 | 104 | ||
| 91 | - | TEXT ·call5(SB), NOSPLIT, $20-28 | |
| 105 | + | TEXT ·call5(SB), NOSPLIT, $24-28 | |
| 92 | 106 | MOVL fn+0(FP), AX | |
| 93 | 107 | MOVL a1+4(FP), BX | |
| 94 | 108 | MOVL a2+8(FP), CX | |
| @@ -80,15 +80,29 @@ TEXT ·setg_trampoline(SB), NOSPLIT, $4-8 | |||||
| 80 | CALL BX | 80 | CALL BX | ||
| 81 | RET | 81 | RET | ||
| 82 | 82 | ||||
| 83 | - | TEXT threadentry_trampoline(SB), NOSPLIT, $4-0 | 83 | + | TEXT threadentry_trampoline(SB), NOSPLIT, $24-4 |
| 84 | - | MOVL 8(SP), AX // first C arg | 84 | + | // Save callee-saved registers |
| 85 | - | MOVL AX, 0(SP) // Go arg 1 | 85 | + | MOVL BP, 20(SP) |
| 86 | + | MOVL BX, 16(SP) | |||
| 87 | + | MOVL SI, 12(SP) | |||
| 88 | + | MOVL DI, 8(SP) | |||
| 89 | + | ||||
| 90 | + | // Move C argument (arg) to stack for Go function | |||
| 91 | + | MOVL arg+0(FP), AX | |||
| 92 | + | MOVL AX, 0(SP) | |||
| 93 | + | ||||
| 86 | MOVL ·threadentry_call(SB), CX | 94 | MOVL ·threadentry_call(SB), CX | ||
| 87 | MOVL (CX), CX | 95 | MOVL (CX), CX | ||
| 88 | CALL CX | 96 | CALL CX | ||
| 97 | + | ||||
| 98 | + | // Restore callee-saved registers | |||
| 99 | + | MOVL 8(SP), DI | |||
| 100 | + | MOVL 12(SP), SI | |||
| 101 | + | MOVL 16(SP), BX | |||
| 102 | + | MOVL 20(SP), BP | |||
| 89 | RET | 103 | RET | ||
| 90 | 104 | ||||
| 91 | - | TEXT ·call5(SB), NOSPLIT, $20-28 | 105 | + | TEXT ·call5(SB), NOSPLIT, $24-28 |
| 92 | MOVL fn+0(FP), AX | 106 | MOVL fn+0(FP), AX | ||
| 93 | MOVL a1+4(FP), BX | 107 | MOVL a1+4(FP), BX | ||
| 94 | MOVL a2+8(FP), CX | 108 | MOVL a2+8(FP), CX | ||