Двоичные файлы Static Go, скомпилированные в Linux 4.15.0, не будут работать в более старых версиях Linux 2.6.18 - PullRequest
0 голосов
/ 24 апреля 2019

Я создаю файл с именем hw.go с кодом ниже

package main

import "fmt"

func main() {
    fmt.Println("hello world")
}

и скомпилирован так в Ubuntu (довольно новая версия):

go build -v -a -tags netgo -ldflags '-w -extldflags "-static"' hw.go

Затем я переместил бинарный файл в более старый 64-битный linux и во время выполнения получил эту ошибку:

что я делаю не так?

futexwakeup addr=0x558708 returned -38
fatal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x1 addr=0x1006 pc=0x425e5b]

runtime stack:
runtime.throw(0x4becb7, 0x2a)
        /usr/local/go/src/runtime/panic.go:617 +0x72
runtime.sigpanic()
        /usr/local/go/src/runtime/signal_unix.go:374 +0x4a9
runtime.futexwakeup(0x558708, 0x2b1000000001)
        /usr/local/go/src/runtime/os_linux.go:81 +0x8b
runtime.notewakeup(0x558708)
        /usr/local/go/src/runtime/lock_futex.go:136 +0x44
runtime.startlockedm(0xc000000180)
        /usr/local/go/src/runtime/proc.go:2105 +0x7e
runtime.schedule()
        /usr/local/go/src/runtime/proc.go:2555 +0x69
runtime.park_m(0xc000000a80)
        /usr/local/go/src/runtime/proc.go:2605 +0xa1
runtime.mcall(0x0)
        /usr/local/go/src/runtime/asm_amd64.s:299 +0x5b

goroutine 1 [runnable, locked to thread]:
internal/poll.init()
        <autogenerated>:1 +0x73
os.init()
        <autogenerated>:1 +0x54
fmt.init()
        <autogenerated>:1 +0x54
main.init()
        <autogenerated>:1 +0x45
runtime.main()
        /usr/local/go/src/runtime/proc.go:188 +0x1c8
runtime.goexit()
        /usr/local/go/src/runtime/asm_amd64.s:1337 +0x1

1 Ответ

1 голос
/ 24 апреля 2019

Только что попробовал старый компилятор и все заработало. 1.10.8 - последняя версия, которая работает, 1.11.8 - не работает.

* Я не проверял второстепенные версии

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...