detached 5047c08

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

This addresses the issue golang/go#73617.

Closes #313
commit
5047c08daa38ee2b067f695e1c671c0d122cde41
author
Hajime Hoshi · · 2025-05-07 17:16 UTC
committer
GitHub · · 2025-05-07 17:16 UTC
parent
9059adf
signature
GPG UnverifiedB5690EEEBB952194 The key is unknown
refs
tag: v0.9.0-alpha.4
5 files · +27 -32
M .github/workflows/test.yml +1 -1
@@ -145,7 +145,7 @@ jobs:
145145 strategy:
146146 matrix:
147147 os: ['FreeBSD'] # TODO: Add 'NetBSD' again (#304)
148- go: ['1.18.10', '1.19.13', '1.20.14', '1.21.13', '1.22.12', '1.23.7', '1.24.1']
148+ go: ['1.18.10', '1.19.13', '1.20.14', '1.21.13', '1.22.12', '1.23.9', '1.24.3']
149149 exclude:
150150 # there are no prebuilt download links for these versions of Go for NetBSD
151151 - os: NetBSD
@@ -145,7 +145,7 @@ jobs:
145 strategy:145 strategy:
146 matrix:146 matrix:
147 os: ['FreeBSD'] # TODO: Add 'NetBSD' again (#304)147 os: ['FreeBSD'] # TODO: Add 'NetBSD' again (#304)
148- go: ['1.18.10', '1.19.13', '1.20.14', '1.21.13', '1.22.12', '1.23.7', '1.24.1']148+ go: ['1.18.10', '1.19.13', '1.20.14', '1.21.13', '1.22.12', '1.23.9', '1.24.3']
149 exclude:149 exclude:
150 # there are no prebuilt download links for these versions of Go for NetBSD150 # there are no prebuilt download links for these versions of Go for NetBSD
151 - os: NetBSD151 - os: NetBSD
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 +21 -21
@@ -126,85 +126,85 @@ func pthread_setspecific(key pthread_key_t, value unsafe.Pointer) int32 {
126126 }
127127
128128 //go:linkname _malloc _malloc
129-var _malloc uintptr
129+var _malloc uint8
130130 var mallocABI0 = uintptr(unsafe.Pointer(&_malloc))
131131
132132 //go:linkname _free _free
133-var _free uintptr
133+var _free uint8
134134 var freeABI0 = uintptr(unsafe.Pointer(&_free))
135135
136136 //go:linkname _setenv _setenv
137-var _setenv uintptr
137+var _setenv uint8
138138 var setenvABI0 = uintptr(unsafe.Pointer(&_setenv))
139139
140140 //go:linkname _unsetenv _unsetenv
141-var _unsetenv uintptr
141+var _unsetenv uint8
142142 var unsetenvABI0 = uintptr(unsafe.Pointer(&_unsetenv))
143143
144144 //go:linkname _sigfillset _sigfillset
145-var _sigfillset uintptr
145+var _sigfillset uint8
146146 var sigfillsetABI0 = uintptr(unsafe.Pointer(&_sigfillset))
147147
148148 //go:linkname _nanosleep _nanosleep
149-var _nanosleep uintptr
149+var _nanosleep uint8
150150 var nanosleepABI0 = uintptr(unsafe.Pointer(&_nanosleep))
151151
152152 //go:linkname _abort _abort
153-var _abort uintptr
153+var _abort uint8
154154 var abortABI0 = uintptr(unsafe.Pointer(&_abort))
155155
156156 //go:linkname _sigaltstack _sigaltstack
157-var _sigaltstack uintptr
157+var _sigaltstack uint8
158158 var sigaltstackABI0 = uintptr(unsafe.Pointer(&_sigaltstack))
159159
160160 //go:linkname _pthread_attr_init _pthread_attr_init
161-var _pthread_attr_init uintptr
161+var _pthread_attr_init uint8
162162 var pthread_attr_initABI0 = uintptr(unsafe.Pointer(&_pthread_attr_init))
163163
164164 //go:linkname _pthread_create _pthread_create
165-var _pthread_create uintptr
165+var _pthread_create uint8
166166 var pthread_createABI0 = uintptr(unsafe.Pointer(&_pthread_create))
167167
168168 //go:linkname _pthread_detach _pthread_detach
169-var _pthread_detach uintptr
169+var _pthread_detach uint8
170170 var pthread_detachABI0 = uintptr(unsafe.Pointer(&_pthread_detach))
171171
172172 //go:linkname _pthread_sigmask _pthread_sigmask
173-var _pthread_sigmask uintptr
173+var _pthread_sigmask uint8
174174 var pthread_sigmaskABI0 = uintptr(unsafe.Pointer(&_pthread_sigmask))
175175
176176 //go:linkname _pthread_self _pthread_self
177-var _pthread_self uintptr
177+var _pthread_self uint8
178178 var pthread_selfABI0 = uintptr(unsafe.Pointer(&_pthread_self))
179179
180180 //go:linkname _pthread_get_stacksize_np _pthread_get_stacksize_np
181-var _pthread_get_stacksize_np uintptr
181+var _pthread_get_stacksize_np uint8
182182 var pthread_get_stacksize_npABI0 = uintptr(unsafe.Pointer(&_pthread_get_stacksize_np))
183183
184184 //go:linkname _pthread_attr_getstacksize _pthread_attr_getstacksize
185-var _pthread_attr_getstacksize uintptr
185+var _pthread_attr_getstacksize uint8
186186 var pthread_attr_getstacksizeABI0 = uintptr(unsafe.Pointer(&_pthread_attr_getstacksize))
187187
188188 //go:linkname _pthread_attr_setstacksize _pthread_attr_setstacksize
189-var _pthread_attr_setstacksize uintptr
189+var _pthread_attr_setstacksize uint8
190190 var pthread_attr_setstacksizeABI0 = uintptr(unsafe.Pointer(&_pthread_attr_setstacksize))
191191
192192 //go:linkname _pthread_attr_destroy _pthread_attr_destroy
193-var _pthread_attr_destroy uintptr
193+var _pthread_attr_destroy uint8
194194 var pthread_attr_destroyABI0 = uintptr(unsafe.Pointer(&_pthread_attr_destroy))
195195
196196 //go:linkname _pthread_mutex_lock _pthread_mutex_lock
197-var _pthread_mutex_lock uintptr
197+var _pthread_mutex_lock uint8
198198 var pthread_mutex_lockABI0 = uintptr(unsafe.Pointer(&_pthread_mutex_lock))
199199
200200 //go:linkname _pthread_mutex_unlock _pthread_mutex_unlock
201-var _pthread_mutex_unlock uintptr
201+var _pthread_mutex_unlock uint8
202202 var pthread_mutex_unlockABI0 = uintptr(unsafe.Pointer(&_pthread_mutex_unlock))
203203
204204 //go:linkname _pthread_cond_broadcast _pthread_cond_broadcast
205-var _pthread_cond_broadcast uintptr
205+var _pthread_cond_broadcast uint8
206206 var pthread_cond_broadcastABI0 = uintptr(unsafe.Pointer(&_pthread_cond_broadcast))
207207
208208 //go:linkname _pthread_setspecific _pthread_setspecific
209-var _pthread_setspecific uintptr
209+var _pthread_setspecific uint8
210210 var pthread_setspecificABI0 = uintptr(unsafe.Pointer(&_pthread_setspecific))
@@ -126,85 +126,85 @@ func pthread_setspecific(key pthread_key_t, value unsafe.Pointer) int32 {
126 }126 }
127 127
128 //go:linkname _malloc _malloc128 //go:linkname _malloc _malloc
129-var _malloc uintptr129+var _malloc uint8
130 var mallocABI0 = uintptr(unsafe.Pointer(&_malloc))130 var mallocABI0 = uintptr(unsafe.Pointer(&_malloc))
131 131
132 //go:linkname _free _free132 //go:linkname _free _free
133-var _free uintptr133+var _free uint8
134 var freeABI0 = uintptr(unsafe.Pointer(&_free))134 var freeABI0 = uintptr(unsafe.Pointer(&_free))
135 135
136 //go:linkname _setenv _setenv136 //go:linkname _setenv _setenv
137-var _setenv uintptr137+var _setenv uint8
138 var setenvABI0 = uintptr(unsafe.Pointer(&_setenv))138 var setenvABI0 = uintptr(unsafe.Pointer(&_setenv))
139 139
140 //go:linkname _unsetenv _unsetenv140 //go:linkname _unsetenv _unsetenv
141-var _unsetenv uintptr141+var _unsetenv uint8
142 var unsetenvABI0 = uintptr(unsafe.Pointer(&_unsetenv))142 var unsetenvABI0 = uintptr(unsafe.Pointer(&_unsetenv))
143 143
144 //go:linkname _sigfillset _sigfillset144 //go:linkname _sigfillset _sigfillset
145-var _sigfillset uintptr145+var _sigfillset uint8
146 var sigfillsetABI0 = uintptr(unsafe.Pointer(&_sigfillset))146 var sigfillsetABI0 = uintptr(unsafe.Pointer(&_sigfillset))
147 147
148 //go:linkname _nanosleep _nanosleep148 //go:linkname _nanosleep _nanosleep
149-var _nanosleep uintptr149+var _nanosleep uint8
150 var nanosleepABI0 = uintptr(unsafe.Pointer(&_nanosleep))150 var nanosleepABI0 = uintptr(unsafe.Pointer(&_nanosleep))
151 151
152 //go:linkname _abort _abort152 //go:linkname _abort _abort
153-var _abort uintptr153+var _abort uint8
154 var abortABI0 = uintptr(unsafe.Pointer(&_abort))154 var abortABI0 = uintptr(unsafe.Pointer(&_abort))
155 155
156 //go:linkname _sigaltstack _sigaltstack156 //go:linkname _sigaltstack _sigaltstack
157-var _sigaltstack uintptr157+var _sigaltstack uint8
158 var sigaltstackABI0 = uintptr(unsafe.Pointer(&_sigaltstack))158 var sigaltstackABI0 = uintptr(unsafe.Pointer(&_sigaltstack))
159 159
160 //go:linkname _pthread_attr_init _pthread_attr_init160 //go:linkname _pthread_attr_init _pthread_attr_init
161-var _pthread_attr_init uintptr161+var _pthread_attr_init uint8
162 var pthread_attr_initABI0 = uintptr(unsafe.Pointer(&_pthread_attr_init))162 var pthread_attr_initABI0 = uintptr(unsafe.Pointer(&_pthread_attr_init))
163 163
164 //go:linkname _pthread_create _pthread_create164 //go:linkname _pthread_create _pthread_create
165-var _pthread_create uintptr165+var _pthread_create uint8
166 var pthread_createABI0 = uintptr(unsafe.Pointer(&_pthread_create))166 var pthread_createABI0 = uintptr(unsafe.Pointer(&_pthread_create))
167 167
168 //go:linkname _pthread_detach _pthread_detach168 //go:linkname _pthread_detach _pthread_detach
169-var _pthread_detach uintptr169+var _pthread_detach uint8
170 var pthread_detachABI0 = uintptr(unsafe.Pointer(&_pthread_detach))170 var pthread_detachABI0 = uintptr(unsafe.Pointer(&_pthread_detach))
171 171
172 //go:linkname _pthread_sigmask _pthread_sigmask172 //go:linkname _pthread_sigmask _pthread_sigmask
173-var _pthread_sigmask uintptr173+var _pthread_sigmask uint8
174 var pthread_sigmaskABI0 = uintptr(unsafe.Pointer(&_pthread_sigmask))174 var pthread_sigmaskABI0 = uintptr(unsafe.Pointer(&_pthread_sigmask))
175 175
176 //go:linkname _pthread_self _pthread_self176 //go:linkname _pthread_self _pthread_self
177-var _pthread_self uintptr177+var _pthread_self uint8
178 var pthread_selfABI0 = uintptr(unsafe.Pointer(&_pthread_self))178 var pthread_selfABI0 = uintptr(unsafe.Pointer(&_pthread_self))
179 179
180 //go:linkname _pthread_get_stacksize_np _pthread_get_stacksize_np180 //go:linkname _pthread_get_stacksize_np _pthread_get_stacksize_np
181-var _pthread_get_stacksize_np uintptr181+var _pthread_get_stacksize_np uint8
182 var pthread_get_stacksize_npABI0 = uintptr(unsafe.Pointer(&_pthread_get_stacksize_np))182 var pthread_get_stacksize_npABI0 = uintptr(unsafe.Pointer(&_pthread_get_stacksize_np))
183 183
184 //go:linkname _pthread_attr_getstacksize _pthread_attr_getstacksize184 //go:linkname _pthread_attr_getstacksize _pthread_attr_getstacksize
185-var _pthread_attr_getstacksize uintptr185+var _pthread_attr_getstacksize uint8
186 var pthread_attr_getstacksizeABI0 = uintptr(unsafe.Pointer(&_pthread_attr_getstacksize))186 var pthread_attr_getstacksizeABI0 = uintptr(unsafe.Pointer(&_pthread_attr_getstacksize))
187 187
188 //go:linkname _pthread_attr_setstacksize _pthread_attr_setstacksize188 //go:linkname _pthread_attr_setstacksize _pthread_attr_setstacksize
189-var _pthread_attr_setstacksize uintptr189+var _pthread_attr_setstacksize uint8
190 var pthread_attr_setstacksizeABI0 = uintptr(unsafe.Pointer(&_pthread_attr_setstacksize))190 var pthread_attr_setstacksizeABI0 = uintptr(unsafe.Pointer(&_pthread_attr_setstacksize))
191 191
192 //go:linkname _pthread_attr_destroy _pthread_attr_destroy192 //go:linkname _pthread_attr_destroy _pthread_attr_destroy
193-var _pthread_attr_destroy uintptr193+var _pthread_attr_destroy uint8
194 var pthread_attr_destroyABI0 = uintptr(unsafe.Pointer(&_pthread_attr_destroy))194 var pthread_attr_destroyABI0 = uintptr(unsafe.Pointer(&_pthread_attr_destroy))
195 195
196 //go:linkname _pthread_mutex_lock _pthread_mutex_lock196 //go:linkname _pthread_mutex_lock _pthread_mutex_lock
197-var _pthread_mutex_lock uintptr197+var _pthread_mutex_lock uint8
198 var pthread_mutex_lockABI0 = uintptr(unsafe.Pointer(&_pthread_mutex_lock))198 var pthread_mutex_lockABI0 = uintptr(unsafe.Pointer(&_pthread_mutex_lock))
199 199
200 //go:linkname _pthread_mutex_unlock _pthread_mutex_unlock200 //go:linkname _pthread_mutex_unlock _pthread_mutex_unlock
201-var _pthread_mutex_unlock uintptr201+var _pthread_mutex_unlock uint8
202 var pthread_mutex_unlockABI0 = uintptr(unsafe.Pointer(&_pthread_mutex_unlock))202 var pthread_mutex_unlockABI0 = uintptr(unsafe.Pointer(&_pthread_mutex_unlock))
203 203
204 //go:linkname _pthread_cond_broadcast _pthread_cond_broadcast204 //go:linkname _pthread_cond_broadcast _pthread_cond_broadcast
205-var _pthread_cond_broadcast uintptr205+var _pthread_cond_broadcast uint8
206 var pthread_cond_broadcastABI0 = uintptr(unsafe.Pointer(&_pthread_cond_broadcast))206 var pthread_cond_broadcastABI0 = uintptr(unsafe.Pointer(&_pthread_cond_broadcast))
207 207
208 //go:linkname _pthread_setspecific _pthread_setspecific208 //go:linkname _pthread_setspecific _pthread_setspecific
209-var _pthread_setspecific uintptr209+var _pthread_setspecific uint8
210 var pthread_setspecificABI0 = uintptr(unsafe.Pointer(&_pthread_setspecific))210 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