detached 1638563

all: fix the link error with Go 1.24.3 (#312)

This addresses the issue golang/go#73617.

Closes #313
commit
1638563e361522e5f63511d84c4541ae1c5fd704
author
Hajime Hoshi · · 2025-05-07 17:16 UTC
committer
Hajime Hoshi · · 2025-05-07 17:18 UTC
parent
ef7c59a
signature
unsigned
refs
tag: v0.8.3
5 files · +26 -31
M .github/workflows/test.yml +1 -1
@@ -137,7 +137,7 @@ jobs:
137137 freebsd:
138138 strategy:
139139 matrix:
140- go: ['1.18.10', '1.19.13', '1.20.14', '1.21.13', '1.22.6', '1.23.0']
140+ go: ['1.18.10', '1.19.13', '1.20.14', '1.21.13', '1.22.12', '1.23.9', '1.24.3']
141141 name: Test with Go ${{ matrix.go }} on FreeBSD
142142 runs-on: ubuntu-22.04
143143 defaults:
@@ -137,7 +137,7 @@ jobs:
137 freebsd:137 freebsd:
138 strategy:138 strategy:
139 matrix:139 matrix:
140- go: ['1.18.10', '1.19.13', '1.20.14', '1.21.13', '1.22.6', '1.23.0']140+ go: ['1.18.10', '1.19.13', '1.20.14', '1.21.13', '1.22.12', '1.23.9', '1.24.3']
141 name: Test with Go ${{ matrix.go }} on FreeBSD141 name: Test with Go ${{ matrix.go }} on FreeBSD
142 runs-on: ubuntu-22.04142 runs-on: ubuntu-22.04
143 defaults:143 defaults:
M dlfcn.go +4 -4
@@ -83,17 +83,17 @@ func loadSymbol(handle uintptr, name string) (uintptr, error) {
8383 // appear to work if you link directly to the C function on darwin arm64.
8484
8585 //go:linkname dlopen dlopen
86-var dlopen uintptr
86+var dlopen uint8
8787 var dlopenABI0 = uintptr(unsafe.Pointer(&dlopen))
8888
8989 //go:linkname dlsym dlsym
90-var dlsym uintptr
90+var dlsym uint8
9191 var dlsymABI0 = uintptr(unsafe.Pointer(&dlsym))
9292
9393 //go:linkname dlclose dlclose
94-var dlclose uintptr
94+var dlclose uint8
9595 var dlcloseABI0 = uintptr(unsafe.Pointer(&dlclose))
9696
9797 //go:linkname dlerror dlerror
98-var dlerror uintptr
98+var dlerror uint8
9999 var dlerrorABI0 = uintptr(unsafe.Pointer(&dlerror))
@@ -83,17 +83,17 @@ func loadSymbol(handle uintptr, name string) (uintptr, error) {
83 // appear to work if you link directly to the C function on darwin arm64.83 // appear to work if you link directly to the C function on darwin arm64.
84 84
85 //go:linkname dlopen dlopen85 //go:linkname dlopen dlopen
86-var dlopen uintptr86+var dlopen uint8
87 var dlopenABI0 = uintptr(unsafe.Pointer(&dlopen))87 var dlopenABI0 = uintptr(unsafe.Pointer(&dlopen))
88 88
89 //go:linkname dlsym dlsym89 //go:linkname dlsym dlsym
90-var dlsym uintptr90+var dlsym uint8
91 var dlsymABI0 = uintptr(unsafe.Pointer(&dlsym))91 var dlsymABI0 = uintptr(unsafe.Pointer(&dlsym))
92 92
93 //go:linkname dlclose dlclose93 //go:linkname dlclose dlclose
94-var dlclose uintptr94+var dlclose uint8
95 var dlcloseABI0 = uintptr(unsafe.Pointer(&dlclose))95 var dlcloseABI0 = uintptr(unsafe.Pointer(&dlclose))
96 96
97 //go:linkname dlerror dlerror97 //go:linkname dlerror dlerror
98-var dlerror uintptr98+var dlerror uint8
99 var dlerrorABI0 = uintptr(unsafe.Pointer(&dlerror))99 var dlerrorABI0 = uintptr(unsafe.Pointer(&dlerror))
M dlfcn_darwin.go +0 -5
@@ -17,8 +17,3 @@ const (
1717 //go:cgo_import_dynamic purego_dlsym dlsym "/usr/lib/libSystem.B.dylib"
1818 //go:cgo_import_dynamic purego_dlerror dlerror "/usr/lib/libSystem.B.dylib"
1919 //go:cgo_import_dynamic purego_dlclose dlclose "/usr/lib/libSystem.B.dylib"
20-
21-//go:cgo_import_dynamic purego_dlopen dlopen "/usr/lib/libSystem.B.dylib"
22-//go:cgo_import_dynamic purego_dlsym dlsym "/usr/lib/libSystem.B.dylib"
23-//go:cgo_import_dynamic purego_dlerror dlerror "/usr/lib/libSystem.B.dylib"
24-//go:cgo_import_dynamic purego_dlclose dlclose "/usr/lib/libSystem.B.dylib"
@@ -17,8 +17,3 @@ const (
17 //go:cgo_import_dynamic purego_dlsym dlsym "/usr/lib/libSystem.B.dylib"17 //go:cgo_import_dynamic purego_dlsym dlsym "/usr/lib/libSystem.B.dylib"
18 //go:cgo_import_dynamic purego_dlerror dlerror "/usr/lib/libSystem.B.dylib"18 //go:cgo_import_dynamic purego_dlerror dlerror "/usr/lib/libSystem.B.dylib"
19 //go:cgo_import_dynamic purego_dlclose dlclose "/usr/lib/libSystem.B.dylib"19 //go:cgo_import_dynamic purego_dlclose dlclose "/usr/lib/libSystem.B.dylib"
20-
21-//go:cgo_import_dynamic purego_dlopen dlopen "/usr/lib/libSystem.B.dylib"
22-//go:cgo_import_dynamic purego_dlsym dlsym "/usr/lib/libSystem.B.dylib"
23-//go:cgo_import_dynamic purego_dlerror dlerror "/usr/lib/libSystem.B.dylib"
24-//go:cgo_import_dynamic purego_dlclose dlclose "/usr/lib/libSystem.B.dylib"
M internal/fakecgo/gen.go +1 -1
@@ -76,7 +76,7 @@ call5({{.Name}}ABI0,
7676 {{end}}
7777 {{- range . }}
7878 //go:linkname _{{.Name}} _{{.Name}}
79-var _{{.Name}} uintptr
79+var _{{.Name}} uint8
8080 var {{.Name}}ABI0 = uintptr(unsafe.Pointer(&_{{.Name}}))
8181 {{ end }}
8282 `
@@ -76,7 +76,7 @@ call5({{.Name}}ABI0,
76 {{end}}76 {{end}}
77 {{- range . }}77 {{- range . }}
78 //go:linkname _{{.Name}} _{{.Name}}78 //go:linkname _{{.Name}} _{{.Name}}
79-var _{{.Name}} uintptr79+var _{{.Name}} uint8
80 var {{.Name}}ABI0 = uintptr(unsafe.Pointer(&_{{.Name}}))80 var {{.Name}}ABI0 = uintptr(unsafe.Pointer(&_{{.Name}}))
81 {{ end }}81 {{ end }}
82 `82 `
M internal/fakecgo/symbols.go +20 -20
@@ -121,81 +121,81 @@ func pthread_setspecific(key pthread_key_t, value unsafe.Pointer) int32 {
121121 }
122122
123123 //go:linkname _malloc _malloc
124-var _malloc uintptr
124+var _malloc uint8
125125 var mallocABI0 = uintptr(unsafe.Pointer(&_malloc))
126126
127127 //go:linkname _free _free
128-var _free uintptr
128+var _free uint8
129129 var freeABI0 = uintptr(unsafe.Pointer(&_free))
130130
131131 //go:linkname _setenv _setenv
132-var _setenv uintptr
132+var _setenv uint8
133133 var setenvABI0 = uintptr(unsafe.Pointer(&_setenv))
134134
135135 //go:linkname _unsetenv _unsetenv
136-var _unsetenv uintptr
136+var _unsetenv uint8
137137 var unsetenvABI0 = uintptr(unsafe.Pointer(&_unsetenv))
138138
139139 //go:linkname _sigfillset _sigfillset
140-var _sigfillset uintptr
140+var _sigfillset uint8
141141 var sigfillsetABI0 = uintptr(unsafe.Pointer(&_sigfillset))
142142
143143 //go:linkname _nanosleep _nanosleep
144-var _nanosleep uintptr
144+var _nanosleep uint8
145145 var nanosleepABI0 = uintptr(unsafe.Pointer(&_nanosleep))
146146
147147 //go:linkname _abort _abort
148-var _abort uintptr
148+var _abort uint8
149149 var abortABI0 = uintptr(unsafe.Pointer(&_abort))
150150
151151 //go:linkname _pthread_attr_init _pthread_attr_init
152-var _pthread_attr_init uintptr
152+var _pthread_attr_init uint8
153153 var pthread_attr_initABI0 = uintptr(unsafe.Pointer(&_pthread_attr_init))
154154
155155 //go:linkname _pthread_create _pthread_create
156-var _pthread_create uintptr
156+var _pthread_create uint8
157157 var pthread_createABI0 = uintptr(unsafe.Pointer(&_pthread_create))
158158
159159 //go:linkname _pthread_detach _pthread_detach
160-var _pthread_detach uintptr
160+var _pthread_detach uint8
161161 var pthread_detachABI0 = uintptr(unsafe.Pointer(&_pthread_detach))
162162
163163 //go:linkname _pthread_sigmask _pthread_sigmask
164-var _pthread_sigmask uintptr
164+var _pthread_sigmask uint8
165165 var pthread_sigmaskABI0 = uintptr(unsafe.Pointer(&_pthread_sigmask))
166166
167167 //go:linkname _pthread_self _pthread_self
168-var _pthread_self uintptr
168+var _pthread_self uint8
169169 var pthread_selfABI0 = uintptr(unsafe.Pointer(&_pthread_self))
170170
171171 //go:linkname _pthread_get_stacksize_np _pthread_get_stacksize_np
172-var _pthread_get_stacksize_np uintptr
172+var _pthread_get_stacksize_np uint8
173173 var pthread_get_stacksize_npABI0 = uintptr(unsafe.Pointer(&_pthread_get_stacksize_np))
174174
175175 //go:linkname _pthread_attr_getstacksize _pthread_attr_getstacksize
176-var _pthread_attr_getstacksize uintptr
176+var _pthread_attr_getstacksize uint8
177177 var pthread_attr_getstacksizeABI0 = uintptr(unsafe.Pointer(&_pthread_attr_getstacksize))
178178
179179 //go:linkname _pthread_attr_setstacksize _pthread_attr_setstacksize
180-var _pthread_attr_setstacksize uintptr
180+var _pthread_attr_setstacksize uint8
181181 var pthread_attr_setstacksizeABI0 = uintptr(unsafe.Pointer(&_pthread_attr_setstacksize))
182182
183183 //go:linkname _pthread_attr_destroy _pthread_attr_destroy
184-var _pthread_attr_destroy uintptr
184+var _pthread_attr_destroy uint8
185185 var pthread_attr_destroyABI0 = uintptr(unsafe.Pointer(&_pthread_attr_destroy))
186186
187187 //go:linkname _pthread_mutex_lock _pthread_mutex_lock
188-var _pthread_mutex_lock uintptr
188+var _pthread_mutex_lock uint8
189189 var pthread_mutex_lockABI0 = uintptr(unsafe.Pointer(&_pthread_mutex_lock))
190190
191191 //go:linkname _pthread_mutex_unlock _pthread_mutex_unlock
192-var _pthread_mutex_unlock uintptr
192+var _pthread_mutex_unlock uint8
193193 var pthread_mutex_unlockABI0 = uintptr(unsafe.Pointer(&_pthread_mutex_unlock))
194194
195195 //go:linkname _pthread_cond_broadcast _pthread_cond_broadcast
196-var _pthread_cond_broadcast uintptr
196+var _pthread_cond_broadcast uint8
197197 var pthread_cond_broadcastABI0 = uintptr(unsafe.Pointer(&_pthread_cond_broadcast))
198198
199199 //go:linkname _pthread_setspecific _pthread_setspecific
200-var _pthread_setspecific uintptr
200+var _pthread_setspecific uint8
201201 var pthread_setspecificABI0 = uintptr(unsafe.Pointer(&_pthread_setspecific))
@@ -121,81 +121,81 @@ func pthread_setspecific(key pthread_key_t, value unsafe.Pointer) int32 {
121 }121 }
122 122
123 //go:linkname _malloc _malloc123 //go:linkname _malloc _malloc
124-var _malloc uintptr124+var _malloc uint8
125 var mallocABI0 = uintptr(unsafe.Pointer(&_malloc))125 var mallocABI0 = uintptr(unsafe.Pointer(&_malloc))
126 126
127 //go:linkname _free _free127 //go:linkname _free _free
128-var _free uintptr128+var _free uint8
129 var freeABI0 = uintptr(unsafe.Pointer(&_free))129 var freeABI0 = uintptr(unsafe.Pointer(&_free))
130 130
131 //go:linkname _setenv _setenv131 //go:linkname _setenv _setenv
132-var _setenv uintptr132+var _setenv uint8
133 var setenvABI0 = uintptr(unsafe.Pointer(&_setenv))133 var setenvABI0 = uintptr(unsafe.Pointer(&_setenv))
134 134
135 //go:linkname _unsetenv _unsetenv135 //go:linkname _unsetenv _unsetenv
136-var _unsetenv uintptr136+var _unsetenv uint8
137 var unsetenvABI0 = uintptr(unsafe.Pointer(&_unsetenv))137 var unsetenvABI0 = uintptr(unsafe.Pointer(&_unsetenv))
138 138
139 //go:linkname _sigfillset _sigfillset139 //go:linkname _sigfillset _sigfillset
140-var _sigfillset uintptr140+var _sigfillset uint8
141 var sigfillsetABI0 = uintptr(unsafe.Pointer(&_sigfillset))141 var sigfillsetABI0 = uintptr(unsafe.Pointer(&_sigfillset))
142 142
143 //go:linkname _nanosleep _nanosleep143 //go:linkname _nanosleep _nanosleep
144-var _nanosleep uintptr144+var _nanosleep uint8
145 var nanosleepABI0 = uintptr(unsafe.Pointer(&_nanosleep))145 var nanosleepABI0 = uintptr(unsafe.Pointer(&_nanosleep))
146 146
147 //go:linkname _abort _abort147 //go:linkname _abort _abort
148-var _abort uintptr148+var _abort uint8
149 var abortABI0 = uintptr(unsafe.Pointer(&_abort))149 var abortABI0 = uintptr(unsafe.Pointer(&_abort))
150 150
151 //go:linkname _pthread_attr_init _pthread_attr_init151 //go:linkname _pthread_attr_init _pthread_attr_init
152-var _pthread_attr_init uintptr152+var _pthread_attr_init uint8
153 var pthread_attr_initABI0 = uintptr(unsafe.Pointer(&_pthread_attr_init))153 var pthread_attr_initABI0 = uintptr(unsafe.Pointer(&_pthread_attr_init))
154 154
155 //go:linkname _pthread_create _pthread_create155 //go:linkname _pthread_create _pthread_create
156-var _pthread_create uintptr156+var _pthread_create uint8
157 var pthread_createABI0 = uintptr(unsafe.Pointer(&_pthread_create))157 var pthread_createABI0 = uintptr(unsafe.Pointer(&_pthread_create))
158 158
159 //go:linkname _pthread_detach _pthread_detach159 //go:linkname _pthread_detach _pthread_detach
160-var _pthread_detach uintptr160+var _pthread_detach uint8
161 var pthread_detachABI0 = uintptr(unsafe.Pointer(&_pthread_detach))161 var pthread_detachABI0 = uintptr(unsafe.Pointer(&_pthread_detach))
162 162
163 //go:linkname _pthread_sigmask _pthread_sigmask163 //go:linkname _pthread_sigmask _pthread_sigmask
164-var _pthread_sigmask uintptr164+var _pthread_sigmask uint8
165 var pthread_sigmaskABI0 = uintptr(unsafe.Pointer(&_pthread_sigmask))165 var pthread_sigmaskABI0 = uintptr(unsafe.Pointer(&_pthread_sigmask))
166 166
167 //go:linkname _pthread_self _pthread_self167 //go:linkname _pthread_self _pthread_self
168-var _pthread_self uintptr168+var _pthread_self uint8
169 var pthread_selfABI0 = uintptr(unsafe.Pointer(&_pthread_self))169 var pthread_selfABI0 = uintptr(unsafe.Pointer(&_pthread_self))
170 170
171 //go:linkname _pthread_get_stacksize_np _pthread_get_stacksize_np171 //go:linkname _pthread_get_stacksize_np _pthread_get_stacksize_np
172-var _pthread_get_stacksize_np uintptr172+var _pthread_get_stacksize_np uint8
173 var pthread_get_stacksize_npABI0 = uintptr(unsafe.Pointer(&_pthread_get_stacksize_np))173 var pthread_get_stacksize_npABI0 = uintptr(unsafe.Pointer(&_pthread_get_stacksize_np))
174 174
175 //go:linkname _pthread_attr_getstacksize _pthread_attr_getstacksize175 //go:linkname _pthread_attr_getstacksize _pthread_attr_getstacksize
176-var _pthread_attr_getstacksize uintptr176+var _pthread_attr_getstacksize uint8
177 var pthread_attr_getstacksizeABI0 = uintptr(unsafe.Pointer(&_pthread_attr_getstacksize))177 var pthread_attr_getstacksizeABI0 = uintptr(unsafe.Pointer(&_pthread_attr_getstacksize))
178 178
179 //go:linkname _pthread_attr_setstacksize _pthread_attr_setstacksize179 //go:linkname _pthread_attr_setstacksize _pthread_attr_setstacksize
180-var _pthread_attr_setstacksize uintptr180+var _pthread_attr_setstacksize uint8
181 var pthread_attr_setstacksizeABI0 = uintptr(unsafe.Pointer(&_pthread_attr_setstacksize))181 var pthread_attr_setstacksizeABI0 = uintptr(unsafe.Pointer(&_pthread_attr_setstacksize))
182 182
183 //go:linkname _pthread_attr_destroy _pthread_attr_destroy183 //go:linkname _pthread_attr_destroy _pthread_attr_destroy
184-var _pthread_attr_destroy uintptr184+var _pthread_attr_destroy uint8
185 var pthread_attr_destroyABI0 = uintptr(unsafe.Pointer(&_pthread_attr_destroy))185 var pthread_attr_destroyABI0 = uintptr(unsafe.Pointer(&_pthread_attr_destroy))
186 186
187 //go:linkname _pthread_mutex_lock _pthread_mutex_lock187 //go:linkname _pthread_mutex_lock _pthread_mutex_lock
188-var _pthread_mutex_lock uintptr188+var _pthread_mutex_lock uint8
189 var pthread_mutex_lockABI0 = uintptr(unsafe.Pointer(&_pthread_mutex_lock))189 var pthread_mutex_lockABI0 = uintptr(unsafe.Pointer(&_pthread_mutex_lock))
190 190
191 //go:linkname _pthread_mutex_unlock _pthread_mutex_unlock191 //go:linkname _pthread_mutex_unlock _pthread_mutex_unlock
192-var _pthread_mutex_unlock uintptr192+var _pthread_mutex_unlock uint8
193 var pthread_mutex_unlockABI0 = uintptr(unsafe.Pointer(&_pthread_mutex_unlock))193 var pthread_mutex_unlockABI0 = uintptr(unsafe.Pointer(&_pthread_mutex_unlock))
194 194
195 //go:linkname _pthread_cond_broadcast _pthread_cond_broadcast195 //go:linkname _pthread_cond_broadcast _pthread_cond_broadcast
196-var _pthread_cond_broadcast uintptr196+var _pthread_cond_broadcast uint8
197 var pthread_cond_broadcastABI0 = uintptr(unsafe.Pointer(&_pthread_cond_broadcast))197 var pthread_cond_broadcastABI0 = uintptr(unsafe.Pointer(&_pthread_cond_broadcast))
198 198
199 //go:linkname _pthread_setspecific _pthread_setspecific199 //go:linkname _pthread_setspecific _pthread_setspecific
200-var _pthread_setspecific uintptr200+var _pthread_setspecific uint8
201 var pthread_setspecificABI0 = uintptr(unsafe.Pointer(&_pthread_setspecific))201 var pthread_setspecificABI0 = uintptr(unsafe.Pointer(&_pthread_setspecific))

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 1

Tags 102

↑↓ moveenter openesc close