cmd/go: link error when building net/http on macOS #38338
Labels
FrozenDueToAge
NeedsInvestigation
Someone must examine and confirm this is a valid issue and not a duplicate of an existing one.
OS-Darwin
WaitingForInfo
Issue is not actionable because of missing required information, which needs to be provided.
Milestone
What version of Go are you using (
go version
)?Does this issue reproduce with the latest release?
yes
What operating system and processor architecture are you using (
go env
)?macos 10.13.6
go env
OutputWhat did you do?
Ran this very simple script which uses the net/http package
package main
import (
"flag"
"log"
"net/http"
)
func main() {
port := flag.String("p", "8080", "port to serve on")
directory := flag.String("d", ".", "the directory of static file to host")
flag.Parse()
}
What did you expect to see?
Serving on HTTP port 8080
What did you see instead?
runtime/cgo
ld: warning: ld: warning: ignoring file /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/lib/libpthread.tbd, file was built for unsupported file format ( 0x2D 0x2D 0x2D 0x20 0x21 0x74 0x61 0x70 0x69 0x2D 0x74 0x62 0x64 0x2D 0x76 0x33 ) which is not the architecture being linked (x86_64): /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/lib/libpthread.tbdignoring file /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/lib/libSystem.tbd, file was built for unsupported file format ( 0x2D 0x2D 0x2D 0x20 0x21 0x74 0x61 0x70 0x69 0x2D 0x74 0x62 0x64 0x2D 0x76 0x33 ) which is not the architecture being linked (x86_64): /Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/lib/libSystem.tbd
Undefined symbols for architecture x86_64:
"___stack_chk_fail", referenced from:
_x_cgo_init in _x004.o
__cgo_sys_thread_start in _x004.o
"___stack_chk_guard", referenced from:
_x_cgo_init in _x004.o
__cgo_sys_thread_start in _x004.o
"___stderrp", referenced from:
__cgo_sys_thread_start in _x004.o
_x_cgo_sys_thread_create in _x005.o
_x_cgo_thread_start in _x008.o
"_abort", referenced from:
__cgo_sys_thread_start in _x004.o
_x_cgo_sys_thread_create in _x005.o
_x_cgo_thread_start in _x008.o
"_fprintf", referenced from:
__cgo_sys_thread_start in _x004.o
_x_cgo_sys_thread_create in _x005.o
"_free", referenced from:
_threadentry in _x004.o
"_fwrite", referenced from:
_x_cgo_thread_start in _x008.o
"_malloc", referenced from:
_x_cgo_thread_start in _x008.o
"_nanosleep", referenced from:
_x_cgo_sys_thread_create in _x005.o
__cgo_try_pthread_create in _x005.o
"_pthread_attr_destroy", referenced from:
_x_cgo_init in _x004.o
"_pthread_attr_getstacksize", referenced from:
_x_cgo_init in _x004.o
__cgo_sys_thread_start in _x004.o
"_pthread_attr_init", referenced from:
_x_cgo_init in _x004.o
__cgo_sys_thread_start in _x004.o
"_pthread_cond_broadcast", referenced from:
_x_cgo_notify_runtime_init_done in _x005.o
"_pthread_cond_wait", referenced from:
__cgo_wait_runtime_init_done in _x005.o
"_pthread_create", referenced from:
_x_cgo_sys_thread_create in _x005.o
__cgo_try_pthread_create in _x005.o
(maybe you meant: __cgo_try_pthread_create)
"_pthread_detach", referenced from:
_x_cgo_sys_thread_create in _x005.o
__cgo_try_pthread_create in _x005.o
"_pthread_mutex_lock", referenced from:
__cgo_wait_runtime_init_done in _x005.o
_x_cgo_notify_runtime_init_done in _x005.o
_x_cgo_set_context_function in _x005.o
__cgo_get_context_function in _x005.o
"_pthread_mutex_unlock", referenced from:
__cgo_wait_runtime_init_done in _x005.o
_x_cgo_notify_runtime_init_done in _x005.o
_x_cgo_set_context_function in _x005.o
__cgo_get_context_function in _x005.o
"_pthread_sigmask", referenced from:
__cgo_sys_thread_start in _x004.o
"_setenv", referenced from:
_x_cgo_setenv in _x006.o
(maybe you meant: _x_cgo_setenv)
"_strerror", referenced from:
__cgo_sys_thread_start in _x004.o
_x_cgo_sys_thread_create in _x005.o
"_unsetenv", referenced from:
_x_cgo_unsetenv in _x006.o
(maybe you meant: _x_cgo_unsetenv)
ld: symbol(s) not found for architecture x86_64
clang-4.0: error: linker command failed with exit code 1 (use -v to see invocation)
=============================
It works if I disable CGO in the terminal.
CGO_ENABLED=0 go run serve.go
I'm confused because I don't use cgo in any of the code as far as I can tell.
The text was updated successfully, but these errors were encountered: