Opened 6 months ago

Last modified 11 days ago

#68700 new defect

go @1.17.13_0 - Legacy Go Compiler Completely Broken on Lion and Mtn Lion

Reported by: RobK88 Owned by:
Priority: Normal Milestone:
Component: ports Version: 2.8.1
Keywords: lion moutainlion Cc: ci42, herbygillot (Herby Gillot), RobK88, cjones051073 (Chris Jones), tehcog (tehcog)
Port: go

Description

The legacy go compiler version @1.17.13_0 is completely broken on Lion and Mtn Lion. It will not even build a simple "Hello, World" program.

Here is my simple program saved as hello-world.go:

package main
import "fmt"
func main() {
    fmt.Println("Hello World!")
}

When I try to run it using go run hello-world.go or build it using go build hello-world.go, the compiler crashes on Lion with a SIGSEGV: segmentation violation error and on Mtn Lion with a SIGABRT: abort malloc error.

Below is the error from Lion.

Back in February 2023, I was still able to create and run simple go programs and simple go related ports (like totp-cli version 1.2.5) built and ran just fine. Not anymore. Something has changed.

Here is the error when trying to build a simple "Hello World!" go program on Lion:

rob$ go build /Users/rob/Downloads/hello-world.go
fatal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x7fff8afcdd9f]

runtime stack:
runtime: unexpected return pc for runtime.sigpanic called from 0x7fff8afcdd9f
stack: frame={sp:0x7fff5fbff9e0, fp:0x7fff5fbffa30} stack=[0x7fff5fb80aa0,0x7fff5fbffb10)
0x00007fff5fbff8e0:  0x01007fff5fbff900  0x0000000000000004 
0x00007fff5fbff8f0:  0x000000000000001f  0x00007fff8afcdd9f 
0x00007fff5fbff900:  0x0000000000000000  0x0000000000000001 
0x00007fff5fbff910:  0x00000000040356f1 <runtime.throw+0x0000000000000071>  0x00007fff5fbff9b0 
0x00007fff5fbff920:  0x00000000045ab167  0x00007fff5fbff968 
0x00007fff5fbff930:  0x00000000040359a8 <runtime.fatalthrow.func1+0x0000000000000048>  0x00000000049a06c0 
0x00007fff5fbff940:  0x0000000000000001  0x0000000000000001 
0x00007fff5fbff950:  0x00007fff5fbff9b0  0x00000000040356f1 <runtime.throw+0x0000000000000071> 
0x00007fff5fbff960:  0x00000000049a06c0  0x00007fff5fbff9a0 
0x00007fff5fbff970:  0x0000000004035930 <runtime.fatalthrow+0x0000000000000050>  0x00007fff5fbff980 
0x00007fff5fbff980:  0x0000000004035960 <runtime.fatalthrow.func1+0x0000000000000000>  0x00000000049a06c0 
0x00007fff5fbff990:  0x00000000040356f1 <runtime.throw+0x0000000000000071>  0x00007fff5fbff9b0 
0x00007fff5fbff9a0:  0x00007fff5fbff9d0  0x00000000040356f1 <runtime.throw+0x0000000000000071> 
0x00007fff5fbff9b0:  0x00007fff5fbff9b8  0x0000000004035720 <runtime.throw.func1+0x0000000000000000> 
0x00007fff5fbff9c0:  0x00000000045b3eef  0x000000000000002a 
0x00007fff5fbff9d0:  0x00007fff5fbffa20  0x000000000404b1e9 <runtime.sigpanic+0x0000000000000389> 
0x00007fff5fbff9e0: <0x00000000045b3eef  0xffffffffffffffff 
0x00007fff5fbff9f0:  0x0000000000736668  0x0000000000000000 
0x00007fff5fbffa00:  0xff00000000000000  0x0000000000000000 
0x00007fff5fbffa10:  0x0000000000000000  0x0000000004b0a0c0 
0x00007fff5fbffa20:  0x00007fff5fbffa40 !0x00007fff8afcdd9f 
0x00007fff5fbffa30: >0x0000000004b0a0c0  0x0000000004b09ff0 
0x00007fff5fbffa40:  0x00007fff5fbffa70  0x00007fff8afce4cb 
0x00007fff5fbffa50:  0x0000000000000000  0x000000c00004e7c0 
0x00007fff5fbffa60:  0x000000c0001a5040  0x0000000004d6e904 
0x00007fff5fbffa70:  0x00007fff5fbffa90  0x000000000406809f <runtime.syscall+0x000000000000001f> 
0x00007fff5fbffa80:  0x000000c00004e7c0  0x0000000004067a0c <runtime.nanotime_trampoline+0x000000000000000c> 
0x00007fff5fbffa90:  0x000000c00004e790  0x0000000004065f10 <runtime.asmcgocall+0x0000000000000070> 
0x00007fff5fbffaa0:  0x000000000401ab55 <runtime.SetFinalizer.func2+0x0000000000000035>  0x000000c000134420 
0x00007fff5fbffab0:  0x00000000045e4f28  0x0000000000000010 
0x00007fff5fbffac0:  0x0000000004514760  0x0000000000000898 
0x00007fff5fbffad0:  0x000000c0001a5040  0x0000000004064029 <runtime.systemstack+0x0000000000000049> 
0x00007fff5fbffae0:  0x0000000000000004  0x0000000004661908 
0x00007fff5fbffaf0:  0x00000000049a06c0  0x00007fff5fbffb40 
0x00007fff5fbffb00:  0x0000000004063f25 <runtime.mstart+0x0000000000000005>  0x0000000004063edd <runtime.rt0_go+0x000000000000013d> 
runtime.throw({0x45b3eef, 0xffffffffffffffff})
	/opt/local/lib/go/src/runtime/panic.go:1198 +0x71
runtime: unexpected return pc for runtime.sigpanic called from 0x7fff8afcdd9f
stack: frame={sp:0x7fff5fbff9e0, fp:0x7fff5fbffa30} stack=[0x7fff5fb80aa0,0x7fff5fbffb10)
0x00007fff5fbff8e0:  0x01007fff5fbff900  0x0000000000000004 
0x00007fff5fbff8f0:  0x000000000000001f  0x00007fff8afcdd9f 
0x00007fff5fbff900:  0x0000000000000000  0x0000000000000001 
0x00007fff5fbff910:  0x00000000040356f1 <runtime.throw+0x0000000000000071>  0x00007fff5fbff9b0 
0x00007fff5fbff920:  0x00000000045ab167  0x00007fff5fbff968 
0x00007fff5fbff930:  0x00000000040359a8 <runtime.fatalthrow.func1+0x0000000000000048>  0x00000000049a06c0 
0x00007fff5fbff940:  0x0000000000000001  0x0000000000000001 
0x00007fff5fbff950:  0x00007fff5fbff9b0  0x00000000040356f1 <runtime.throw+0x0000000000000071> 
0x00007fff5fbff960:  0x00000000049a06c0  0x00007fff5fbff9a0 
0x00007fff5fbff970:  0x0000000004035930 <runtime.fatalthrow+0x0000000000000050>  0x00007fff5fbff980 
0x00007fff5fbff980:  0x0000000004035960 <runtime.fatalthrow.func1+0x0000000000000000>  0x00000000049a06c0 
0x00007fff5fbff990:  0x00000000040356f1 <runtime.throw+0x0000000000000071>  0x00007fff5fbff9b0 
0x00007fff5fbff9a0:  0x00007fff5fbff9d0  0x00000000040356f1 <runtime.throw+0x0000000000000071> 
0x00007fff5fbff9b0:  0x00007fff5fbff9b8  0x0000000004035720 <runtime.throw.func1+0x0000000000000000> 
0x00007fff5fbff9c0:  0x00000000045b3eef  0x000000000000002a 
0x00007fff5fbff9d0:  0x00007fff5fbffa20  0x000000000404b1e9 <runtime.sigpanic+0x0000000000000389> 
0x00007fff5fbff9e0: <0x00000000045b3eef  0xffffffffffffffff 
0x00007fff5fbff9f0:  0x0000000000736668  0x0000000000000000 
0x00007fff5fbffa00:  0xff00000000000000  0x0000000000000000 
0x00007fff5fbffa10:  0x0000000000000000  0x0000000004b0a0c0 
0x00007fff5fbffa20:  0x00007fff5fbffa40 !0x00007fff8afcdd9f 
0x00007fff5fbffa30: >0x0000000004b0a0c0  0x0000000004b09ff0 
0x00007fff5fbffa40:  0x00007fff5fbffa70  0x00007fff8afce4cb 
0x00007fff5fbffa50:  0x0000000000000000  0x000000c00004e7c0 
0x00007fff5fbffa60:  0x000000c0001a5040  0x0000000004d6e904 
0x00007fff5fbffa70:  0x00007fff5fbffa90  0x000000000406809f <runtime.syscall+0x000000000000001f> 
0x00007fff5fbffa80:  0x000000c00004e7c0  0x0000000004067a0c <runtime.nanotime_trampoline+0x000000000000000c> 
0x00007fff5fbffa90:  0x000000c00004e790  0x0000000004065f10 <runtime.asmcgocall+0x0000000000000070> 
0x00007fff5fbffaa0:  0x000000000401ab55 <runtime.SetFinalizer.func2+0x0000000000000035>  0x000000c000134420 
0x00007fff5fbffab0:  0x00000000045e4f28  0x0000000000000010 
0x00007fff5fbffac0:  0x0000000004514760  0x0000000000000898 
0x00007fff5fbffad0:  0x000000c0001a5040  0x0000000004064029 <runtime.systemstack+0x0000000000000049> 
0x00007fff5fbffae0:  0x0000000000000004  0x0000000004661908 
0x00007fff5fbffaf0:  0x00000000049a06c0  0x00007fff5fbffb40 
0x00007fff5fbffb00:  0x0000000004063f25 <runtime.mstart+0x0000000000000005>  0x0000000004063edd <runtime.rt0_go+0x000000000000013d> 
runtime.sigpanic()
	/opt/local/lib/go/src/runtime/signal_unix.go:719 +0x389

goroutine 19 [syscall]:
syscall.syscall(0x407a9a0, 0x4b0a0c0, 0x0, 0x0)
	/opt/local/lib/go/src/runtime/sys_darwin.go:22 +0x3b fp=0xc00004e7c0 sp=0xc00004e7a0 pc=0x4062b5b
syscall.syscall(0xc000152260, 0x19, 0xc0001d2060, 0x0)
	<autogenerated>:1 +0x26 fp=0xc00004e808 sp=0xc00004e7c0 pc=0x4068866
syscall.closedir(0xc000132088)
	/opt/local/lib/go/src/syscall/zsyscall_darwin_amd64.go:505 +0x2f fp=0xc00004e838 sp=0xc00004e808 pc=0x4077c6f
os.(*dirInfo).close(...)
	/opt/local/lib/go/src/os/dir_darwin.go:23
os.(*file).close(0xc000134420)
	/opt/local/lib/go/src/os/file_unix.go:249 +0x52 fp=0xc00004e890 sp=0xc00004e838 pc=0x40d34d2
os.(*File).Close(...)
	/opt/local/lib/go/src/os/file_posix.go:26
io/ioutil.ReadDir({0xc000152260, 0x19})
	/opt/local/lib/go/src/io/ioutil/ioutil.go:64 +0x71 fp=0xc00004e910 sp=0xc00004e890 pc=0x4161c11
cmd/go/internal/fsys.readDir({0xc000152260, 0x4044dd1})
	/opt/local/lib/go/src/cmd/go/internal/fsys/fsys.go:246 +0x27 fp=0xc00004e958 sp=0xc00004e910 pc=0x41a7ea7
cmd/go/internal/fsys.ReadDir({0xc000152260, 0x0})
	/opt/local/lib/go/src/cmd/go/internal/fsys/fsys.go:270 +0x28e fp=0xc00004ecf8 sp=0xc00004e958 pc=0x41a828e
cmd/go/internal/imports.ScanDir({0xc000152260, 0x19}, 0x19)
	/opt/local/lib/go/src/cmd/go/internal/imports/scan.go:19 +0x45 fp=0xc00004edf0 sp=0xc00004ecf8 pc=0x41c18e5
cmd/go/internal/modload.scanDir({0xc000152260, 0xc000124000}, 0xc00014e228)
	/opt/local/lib/go/src/cmd/go/internal/modload/load.go:1991 +0x25 fp=0xc00004ee58 sp=0xc00004edf0 pc=0x43d7685
cmd/go/internal/modload.(*loader).load(0xc0001704d0, {0x4676ae0, 0xc000124000}, 0xc000170580)
	/opt/local/lib/go/src/cmd/go/internal/modload/load.go:1622 +0x565 fp=0xc00004ef30 sp=0xc00004ee58 pc=0x43d4cc5
cmd/go/internal/modload.(*loader).pkg.func1.1()
	/opt/local/lib/go/src/cmd/go/internal/modload/load.go:1389 +0x29 fp=0xc00004ef60 sp=0xc00004ef30 pc=0x43d3989
cmd/go/internal/par.(*Queue).Add.func1()
	/opt/local/lib/go/src/cmd/go/internal/par/queue.go:58 +0x7d fp=0xc00004efe0 sp=0xc00004ef60 pc=0x41c4d9d
runtime.goexit()
	/opt/local/lib/go/src/runtime/asm_amd64.s:1581 +0x1 fp=0xc00004efe8 sp=0xc00004efe0 pc=0x4066201
created by cmd/go/internal/par.(*Queue).Add
	/opt/local/lib/go/src/cmd/go/internal/par/queue.go:56 +0x238

goroutine 1 [chan receive]:
cmd/go/internal/modload.loadFromRoots({0x4676ae0, 0xc000124000}, {{{0x0, 0x0}, 0xc0001a3f50, 0x0, {0x0, 0x0}, 0x0, 0x1, ...}, ...})
	/opt/local/lib/go/src/cmd/go/internal/modload/load.go:998 +0x6e5
cmd/go/internal/modload.ImportFromFiles({0x4676ae0, 0xc000124000}, {0xc00011e1a0, 0x1, 0x1})
	/opt/local/lib/go/src/cmd/go/internal/modload/load.go:635 +0x22e
cmd/go/internal/load.GoFilesPackage({0x4676ae0, 0xc000124000}, {0x40, 0x4f, 0x5e}, {0xc00011e1a0, 0x4, 0x1})
	/opt/local/lib/go/src/cmd/go/internal/load/pkg.go:2690 +0x21d
cmd/go/internal/load.PackagesAndErrors({0x4676ae0, 0xc000124000}, {0x2d, 0x0, 0x0}, {0xc00011e1a0, 0x1, 0x1})
	/opt/local/lib/go/src/cmd/go/internal/load/pkg.go:2436 +0xbaa
cmd/go/internal/work.runBuild({0x4676ae0, 0xc000124000}, 0xc00014e588, {0xc00011e1a0, 0x1, 0x1})
	/opt/local/lib/go/src/cmd/go/internal/work/build.go:371 +0xa5
main.invoke(0x498d5a0, {0xc00011e190, 0x2, 0x2})
	/opt/local/lib/go/src/cmd/go/main.go:216 +0x2f6
main.main()
	/opt/local/lib/go/src/cmd/go/main.go:173 +0x78e

Change History (19)

comment:1 Changed 6 months ago by RobK88

Summary: go @1.17.13_0 - Go Compiler Completely Broken on Lion and Mtn Liongo @1.17.13_0 - Legacy Go Compiler Completely Broken on Lion and Mtn Lion

comment:2 Changed 6 months ago by herbygillot (Herby Gillot)

Cc: cjones051073 added

I've added Chris Jones to the ticket, as he was primarily the one who got Go running on older systems.

comment:3 Changed 6 months ago by RobK88

The error message is different when trying to compile my simple "Hello, World" program on Mtn Lion using the legacy go compiler. The error message is SIGABRT: abort. Below is the full log:

grinch$ go run /Users/grinch/Downloads/hello-world.go 
go(912,0xb0104000) malloc: *** error for object 0x1000000000000000: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
SIGABRT: abort
PC=0x7fff8787b212 m=3 sigcode=0

goroutine 0 [idle]:
syscall.syscall(0x407a9c0, 0x4b07330, 0x0, 0x0)
	/opt/local/lib/go/src/runtime/sys_darwin.go:22 +0x3b fp=0xc00004e7c0 sp=0xc00004e7a0 pc=0x4062b7b
syscall.syscall(0xc000180040, 0x19, 0xc00018c000, 0x0)
	<autogenerated>:1 +0x26 fp=0xc00004e808 sp=0xc00004e7c0 pc=0x4068886
syscall.closedir(0xc000184008)
	/opt/local/lib/go/src/syscall/zsyscall_darwin_amd64.go:505 +0x2f fp=0xc00004e838 sp=0xc00004e808 pc=0x4077c8f
os.(*dirInfo).close(...)
	/opt/local/lib/go/src/os/dir_darwin.go:23
os.(*file).close(0xc000186000)
	/opt/local/lib/go/src/os/file_unix.go:249 +0x52 fp=0xc00004e890 sp=0xc00004e838 pc=0x40d34f2
os.(*File).Close(...)
	/opt/local/lib/go/src/os/file_posix.go:26
io/ioutil.ReadDir({0xc000180040, 0x19})
	/opt/local/lib/go/src/io/ioutil/ioutil.go:64 +0x71 fp=0xc00004e910 sp=0xc00004e890 pc=0x4161c31
cmd/go/internal/fsys.readDir({0xc000180040, 0x406402e})
	/opt/local/lib/go/src/cmd/go/internal/fsys/fsys.go:246 +0x27 fp=0xc00004e958 sp=0xc00004e910 pc=0x41a7ec7
cmd/go/internal/fsys.ReadDir({0xc000180040, 0x0})
	/opt/local/lib/go/src/cmd/go/internal/fsys/fsys.go:270 +0x28e fp=0xc00004ecf8 sp=0xc00004e958 pc=0x41a82ae
cmd/go/internal/imports.ScanDir({0xc000180040, 0x19}, 0x19)
	/opt/local/lib/go/src/cmd/go/internal/imports/scan.go:19 +0x45 fp=0xc00004edf0 sp=0xc00004ecf8 pc=0x41c1905
cmd/go/internal/modload.scanDir({0xc000180040, 0xc00002a058}, 0xc0000282d0)
	/opt/local/lib/go/src/cmd/go/internal/modload/load.go:1991 +0x25 fp=0xc00004ee58 sp=0xc00004edf0 pc=0x43d76a5
cmd/go/internal/modload.(*loader).load(0xc0000be8f0, {0x4676b00, 0xc00002a058}, 0xc0000be9a0)
	/opt/local/lib/go/src/cmd/go/internal/modload/load.go:1622 +0x565 fp=0xc00004ef30 sp=0xc00004ee58 pc=0x43d4ce5
cmd/go/internal/modload.(*loader).pkg.func1.1()
	/opt/local/lib/go/src/cmd/go/internal/modload/load.go:1389 +0x29 fp=0xc00004ef60 sp=0xc00004ef30 pc=0x43d39a9
cmd/go/internal/par.(*Queue).Add.func1()
	/opt/local/lib/go/src/cmd/go/internal/par/queue.go:58 +0x7d fp=0xc00004efe0 sp=0xc00004ef60 pc=0x41c4dbd
runtime.goexit()
	/opt/local/lib/go/src/runtime/asm_amd64.s:1581 +0x1 fp=0xc00004efe8 sp=0xc00004efe0 pc=0x4066221
created by cmd/go/internal/par.(*Queue).Add
	/opt/local/lib/go/src/cmd/go/internal/par/queue.go:56 +0x238

goroutine 6 [syscall]:
syscall.syscall(0x407a9c0, 0x4b07330, 0x0, 0x0)
	/opt/local/lib/go/src/runtime/sys_darwin.go:22 +0x3b fp=0xc00004e7c0 sp=0xc00004e7a0 pc=0x4062b7b
syscall.syscall(0xc000180040, 0x19, 0xc00018c000, 0x0)
	<autogenerated>:1 +0x26 fp=0xc00004e808 sp=0xc00004e7c0 pc=0x4068886
syscall.closedir(0xc000184008)
	/opt/local/lib/go/src/syscall/zsyscall_darwin_amd64.go:505 +0x2f fp=0xc00004e838 sp=0xc00004e808 pc=0x4077c8f
os.(*dirInfo).close(...)
	/opt/local/lib/go/src/os/dir_darwin.go:23
os.(*file).close(0xc000186000)
	/opt/local/lib/go/src/os/file_unix.go:249 +0x52 fp=0xc00004e890 sp=0xc00004e838 pc=0x40d34f2
os.(*File).Close(...)
	/opt/local/lib/go/src/os/file_posix.go:26
io/ioutil.ReadDir({0xc000180040, 0x19})
	/opt/local/lib/go/src/io/ioutil/ioutil.go:64 +0x71 fp=0xc00004e910 sp=0xc00004e890 pc=0x4161c31
cmd/go/internal/fsys.readDir({0xc000180040, 0x406402e})
	/opt/local/lib/go/src/cmd/go/internal/fsys/fsys.go:246 +0x27 fp=0xc00004e958 sp=0xc00004e910 pc=0x41a7ec7
cmd/go/internal/fsys.ReadDir({0xc000180040, 0x0})
	/opt/local/lib/go/src/cmd/go/internal/fsys/fsys.go:270 +0x28e fp=0xc00004ecf8 sp=0xc00004e958 pc=0x41a82ae
cmd/go/internal/imports.ScanDir({0xc000180040, 0x19}, 0x19)
	/opt/local/lib/go/src/cmd/go/internal/imports/scan.go:19 +0x45 fp=0xc00004edf0 sp=0xc00004ecf8 pc=0x41c1905
cmd/go/internal/modload.scanDir({0xc000180040, 0xc00002a058}, 0xc0000282d0)
	/opt/local/lib/go/src/cmd/go/internal/modload/load.go:1991 +0x25 fp=0xc00004ee58 sp=0xc00004edf0 pc=0x43d76a5
cmd/go/internal/modload.(*loader).load(0xc0000be8f0, {0x4676b00, 0xc00002a058}, 0xc0000be9a0)
	/opt/local/lib/go/src/cmd/go/internal/modload/load.go:1622 +0x565 fp=0xc00004ef30 sp=0xc00004ee58 pc=0x43d4ce5
cmd/go/internal/modload.(*loader).pkg.func1.1()
	/opt/local/lib/go/src/cmd/go/internal/modload/load.go:1389 +0x29 fp=0xc00004ef60 sp=0xc00004ef30 pc=0x43d39a9
cmd/go/internal/par.(*Queue).Add.func1()
	/opt/local/lib/go/src/cmd/go/internal/par/queue.go:58 +0x7d fp=0xc00004efe0 sp=0xc00004ef60 pc=0x41c4dbd
runtime.goexit()
	/opt/local/lib/go/src/runtime/asm_amd64.s:1581 +0x1 fp=0xc00004efe8 sp=0xc00004efe0 pc=0x4066221
created by cmd/go/internal/par.(*Queue).Add
	/opt/local/lib/go/src/cmd/go/internal/par/queue.go:56 +0x238

goroutine 1 [chan receive]:
cmd/go/internal/modload.loadFromRoots({0x4676b00, 0xc00002a058}, {{{0x0, 0x0}, 0xc0000f1f50, 0x0, {0x0, 0x0}, 0x0, 0x1, ...}, ...})
	/opt/local/lib/go/src/cmd/go/internal/modload/load.go:998 +0x6e5
cmd/go/internal/modload.ImportFromFiles({0x4676b00, 0xc00002a058}, {0xc0000201d0, 0x1, 0x1})
	/opt/local/lib/go/src/cmd/go/internal/modload/load.go:635 +0x22e
cmd/go/internal/load.GoFilesPackage({0x4676b00, 0xc00002a058}, {0xe0, 0x96, 0xc0}, {0xc0000201d0, 0xc000093d08, 0x1})
	/opt/local/lib/go/src/cmd/go/internal/load/pkg.go:2690 +0x21d
cmd/go/internal/run.runRun({0x4676b00, 0xc00002a058}, 0xc0000285e8, {0xc0000201d0, 0x44, 0x39})
	/opt/local/lib/go/src/cmd/go/internal/run/run.go:106 +0xb4d
main.invoke(0x498d040, {0xc0000201c0, 0x2, 0x2})
	/opt/local/lib/go/src/cmd/go/main.go:216 +0x2f6
main.main()
	/opt/local/lib/go/src/cmd/go/main.go:173 +0x78e

rax    0x0
rbx    0x6
rcx    0xb0103d48
rdx    0x0
rdi    0x1303
rsi    0x6
rbp    0xb0103d70
rsp    0xb0103d48
r8     0x7fff748cb278
r9     0x0
r10    0x20000000
r11    0x206
r12    0x4ab1000
r13    0x4ae1000
r14    0xb0104000
r15    0x1
rip    0x7fff8787b212
rflags 0x206
cs     0x7
fs     0x0
gs     0x0
Last edited 6 months ago by RobK88 (previous) (diff)

comment:4 Changed 6 months ago by RobK88

Please note that the go compiler crashes when you try to compile source code. It does not crash in other situations. See below.

$ go version
go version go1.17.13 darwin/amd64

comment:5 Changed 5 months ago by RobK88

Also, please note that go @1.17.13 no longer builds from source on Lion and Mtn Lion. I suspect the problem stems from changes made to the legacy-support port back in March 2023 with legacy-support @1.0.8 or legacy-support @1.0.10 Changes relating to the clock_gettime symbol were made in legacy-support @1.0.8 and legacy-support @1.0.10.

See https://trac.macports.org/ticket/68725

Last edited 5 months ago by RobK88 (previous) (diff)

comment:6 Changed 5 months ago by RobK88

I found a bug in the go port!! I am hoping it will fix the problem with the go@1.17.13 binary.

The legacy_build flag in the Portfile for go was not set properly. As a result, the go port was trying to build go@1.17.13 using the prebuilt binary for go version 1.17.13 from the developer's website -- https://go.dev/dl/go1.17.13.darwin-amd64.tar.gz. The will fail since the prebuilt binary was never built with the legacy-support libraries!

When the legacy_build flag in the Portfile for go is set properly for legacy MacOS's, the go port will build go@1.17.13 using the go-1.4 port.

I am building now. I will submit a PR later today.

Last edited 5 months ago by RobK88 (previous) (diff)

comment:7 Changed 5 months ago by RobK88

Well fixing the small bug did help. I made progress. But the port build still failed.

In particular, it failed at this stage -- Building Go toolchain2 using go_bootstrap and Go toolchain1 with a SIGSEGV: segmentation violation error. See below:

Building Go toolchain2 using go_bootstrap and Go toolchain1.
run: /opt/local/var/macports/build/_Users_rob_Development_MacPorts_local-repo_lang_go/go/work/go/pkg/tool/darwin_amd64/go_bootstrap install -gcflags=all= -ldflags=all="-extldflags=-Wl,-headerpad_max_install_names -L/opt/local/lib -lMacportsLegacySupport" -v -i cmd/asm cmd/cgo cmd/compile cmd/link
fatal error: unexpected signal during runtime execution
fatal error: unexpected signal during runtime execution
fatal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x7fff8afcdd9f]

runtime stack:
runtime: unexpected return pc for runtime.sigpanic called from 0x7fff8afcdd9f
stack: frame={sp:0x7fff5fbff140, fp:0x7fff5fbff1a0} stack=[0x7fff5fbef2e8,0x7fff5fbff280)
0x00007fff5fbff040:  0x000000000472c960  0x01000000000003e8 
0x00007fff5fbff050:  0x0000000000000004  0x000000000000001f 
0x00007fff5fbff060:  0x00007fff8afcdd9f  0x0000000000000000 
0x00007fff5fbff070:  0x0000000000000001  0x0000000004483975 
0x00007fff5fbff080:  0x00007fff5fbff0c8  0x000000000403973f <runtime.fatalthrow.func1+0x000000000000005f> 
0x00007fff5fbff090:  0x000000000472c960  0x0000000004039434 <runtime.throw+0x0000000000000074> 
0x00007fff5fbff0a0:  0x00007fff5fbff110  0x0000000000000001 
0x00007fff5fbff0b0:  0x00007fff5fbff110  0x0000000004039434 <runtime.throw+0x0000000000000074> 
0x00007fff5fbff0c0:  0x000000000472c960  0x00007fff5fbff100 
0x00007fff5fbff0d0:  0x00000000040396be <runtime.fatalthrow+0x000000000000005e>  0x00007fff5fbff0e0 
0x00007fff5fbff0e0:  0x00000000040396e0 <runtime.fatalthrow.func1+0x0000000000000000>  0x000000000472c960 
0x00007fff5fbff0f0:  0x0000000004039434 <runtime.throw+0x0000000000000074>  0x00007fff5fbff110 
0x00007fff5fbff100:  0x00007fff5fbff130  0x0000000004039434 <runtime.throw+0x0000000000000074> 
0x00007fff5fbff110:  0x00007fff5fbff118  0x0000000004039460 <runtime.throw.func1+0x0000000000000000> 
0x00007fff5fbff120:  0x000000000448a1ac  0x000000000000002a 
0x00007fff5fbff130:  0x00007fff5fbff190  0x0000000004050fed <runtime.sigpanic+0x000000000000048d> 
0x00007fff5fbff140: <0x000000000448a1ac  0x000000000000002a 
0x00007fff5fbff150:  0xffffffffff000000  0xffffffffffffffff 
0x00007fff5fbff160:  0x0000000000736668  0x0000000000000000 
0x00007fff5fbff170:  0xff00000000000000  0x0000000000000000 
0x00007fff5fbff180:  0x63614d5f746e656d  0x000000002b7000d0 
0x00007fff5fbff190:  0x00007fff5fbff1b0 !0x00007fff8afcdd9f 
0x00007fff5fbff1a0: >0x000000002b7000d0  0x000000002b700000 
0x00007fff5fbff1b0:  0x00007fff5fbff1e0  0x00007fff8afce4cb 
0x00007fff5fbff1c0:  0x2f6372732f6f672f  0x000000c00006c730 
0x00007fff5fbff1d0:  0x000000c000122d00  0x000000c000111620 
0x00007fff5fbff1e0:  0x00007fff5fbff200  0x000000000406ff7f <runtime.syscall+0x000000000000001f> 
0x00007fff5fbff1f0:  0x000000c00006c730  0x00000000048ab0d8 
0x00007fff5fbff200:  0x000000c00006c6f8  0x000000000406deb0 <runtime.asmcgocall+0x0000000000000070> 
0x00007fff5fbff210:  0x000000000401c236 <runtime.SetFinalizer.func2+0x0000000000000056>  0x000000c0000a8480 
0x00007fff5fbff220:  0x00000000044b1210  0x0000000000000010 
0x00007fff5fbff230:  0x000000000441d140  0x0000000000000930 
0x00007fff5fbff240:  0x000000c000122d00  0x000000c00006c630 
0x00007fff5fbff250:  0x000000000406c109 <runtime.systemstack+0x0000000000000049>  0x000000000406bf96 <runtime.rt0_go+0x0000000000000136> 
0x00007fff5fbff260:  0x00007fff5fbff2b0  0x00007fff5fbff2b0 
0x00007fff5fbff270:  0x000000000406bfe5 <runtime.mstart+0x0000000000000005>  0x000000000406bf9d <runtime.rt0_go+0x000000000000013d> 
runtime.throw({0x448a1ac, 0x2a})
	/opt/local/lib/go/src/runtime/panic.go:1198 +0x74
runtime: unexpected return pc for runtime.sigpanic called from 0x7fff8afcdd9f
stack: frame={sp:0x7fff5fbff140, fp:0x7fff5fbff1a0} stack=[0x7fff5fbef2e8,0x7fff5fbff280)
0x00007fff5fbff040:  0x000000000472c960  0x01000000000003e8 
0x00007fff5fbff050:  0x0000000000000004  0x000000000000001f 
0x00007fff5fbff060:  0x00007fff8afcdd9f  0x0000000000000000 
0x00007fff5fbff070:  0x0000000000000001  0x0000000004483975 
0x00007fff5fbff080:  0x00007fff5fbff0c8  0x000000000403973f <runtime.fatalthrow.func1+0x000000000000005f> 
0x00007fff5fbff090:  0x000000000472c960  0x0000000004039434 <runtime.throw+0x0000000000000074> 
0x00007fff5fbff0a0:  0x00007fff5fbff110  0x0000000000000001 
0x00007fff5fbff0b0:  0x00007fff5fbff110  0x0000000004039434 <runtime.throw+0x0000000000000074> 
0x00007fff5fbff0c0:  0x000000000472c960  0x00007fff5fbff100 
0x00007fff5fbff0d0:  0x00000000040396be <runtime.fatalthrow+0x000000000000005e>  0x00007fff5fbff0e0 
0x00007fff5fbff0e0:  0x00000000040396e0 <runtime.fatalthrow.func1+0x0000000000000000>  0x000000000472c960 
0x00007fff5fbff0f0:  0x0000000004039434 <runtime.throw+0x0000000000000074>  0x00007fff5fbff110 
0x00007fff5fbff100:  0x00007fff5fbff130  0x0000000004039434 <runtime.throw+0x0000000000000074> 
0x00007fff5fbff110:  0x00007fff5fbff118  0x0000000004039460 <runtime.throw.func1+0x0000000000000000> 
0x00007fff5fbff120:  0x000000000448a1ac  0x000000000000002a 
0x00007fff5fbff130:  0x00007fff5fbff190  0x0000000004050fed <runtime.sigpanic+0x000000000000048d> 
0x00007fff5fbff140: <0x000000000448a1ac  0x000000000000002a 
0x00007fff5fbff150:  0xffffffffff000000  0xffffffffffffffff 
0x00007fff5fbff160:  0x0000000000736668  0x0000000000000000 
0x00007fff5fbff170:  0xff00000000000000  0x0000000000000000 
0x00007fff5fbff180:  0x63614d5f746e656d  0x000000002b7000d0 
0x00007fff5fbff190:  0x00007fff5fbff1b0 !0x00007fff8afcdd9f 
0x00007fff5fbff1a0: >0x000000002b7000d0  0x000000002b700000 
0x00007fff5fbff1b0:  0x00007fff5fbff1e0  0x00007fff8afce4cb 
0x00007fff5fbff1c0:  0x2f6372732f6f672f  0x000000c00006c730 
0x00007fff5fbff1d0:  0x000000c000122d00  0x000000c000111620 
0x00007fff5fbff1e0:  0x00007fff5fbff200  0x000000000406ff7f <runtime.syscall+0x000000000000001f> 
0x00007fff5fbff1f0:  0x000000c00006c730  0x00000000048ab0d8 
0x00007fff5fbff200:  0x000000c00006c6f8  0x000000000406deb0 <runtime.asmcgocall+0x0000000000000070> 
0x00007fff5fbff210:  0x000000000401c236 <runtime.SetFinalizer.func2+0x0000000000000056>  0x000000c0000a8480 
0x00007fff5fbff220:  0x00000000044b1210  0x0000000000000010 
0x00007fff5fbff230:  0x000000000441d140  0x0000000000000930 
0x00007fff5fbff240:  0x000000c000122d00  0x000000c00006c630 
0x00007fff5fbff250:  0x000000000406c109 <runtime.systemstack+0x0000000000000049>  0x000000000406bf96 <runtime.rt0_go+0x0000000000000136> 
0x00007fff5fbff260:  0x00007fff5fbff2b0  0x00007fff5fbff2b0 
0x00007fff5fbff270:  0x000000000406bfe5 <runtime.mstart+0x0000000000000005>  0x000000000406bf9d <runtime.rt0_go+0x000000000000013d> 
runtime.sigpanic()
	/opt/local/lib/go/src/runtime/signal_unix.go:719 +0x48d

goroutine 21 [syscall]:
syscall.syscall(0x4082320, 0x2b7000d0, 0x0, 0x0)
	/opt/local/lib/go/src/runtime/sys_darwin.go:22 +0x2e fp=0xc00006c730 sp=0xc00006c708 pc=0x406ad6e
syscall.closedir(0x2b7000d0)
	/opt/local/lib/go/src/syscall/zsyscall_darwin_amd64.go:505 +0x45 fp=0xc00006c778 sp=0xc00006c730 pc=0x407f5c5
os.(*dirInfo).close(...)
	/opt/local/lib/go/src/os/dir_darwin.go:23
os.(*file).close(0xc0000a8480)
	/opt/local/lib/go/src/os/file_unix.go:249 +0x53 fp=0xc00006c7d0 sp=0xc00006c778 pc=0x40e22b3
os.(*File).Close(...)
	/opt/local/lib/go/src/os/file_posix.go:26
io/ioutil.ReadDir({0xc0000c4230, 0x68})
	/opt/local/lib/go/src/io/ioutil/ioutil.go:64 +0xf4 fp=0xc00006c878 sp=0xc00006c7d0 pc=0x4184eb4
cmd/go/internal/fsys.readDir({0xc0000c4230, 0x68})
	/opt/local/lib/go/src/cmd/go/internal/fsys/fsys.go:246 +0x39 fp=0xc00006c8d0 sp=0xc00006c878 pc=0x41d48f9
cmd/go/internal/fsys.ReadDir({0xc0000c4230, 0x68})
	/opt/local/lib/go/src/cmd/go/internal/fsys/fsys.go:270 +0x39c fp=0xc00006cc68 sp=0xc00006c8d0 pc=0x41d4e9c
cmd/go/internal/imports.ScanDir({0xc0000c4230, 0x68}, 0xc000111170)
	/opt/local/lib/go/src/cmd/go/internal/imports/scan.go:19 +0x50 fp=0xc00006cd80 sp=0xc00006cc68 pc=0x41f11f0
cmd/go/internal/modload.scanDir({0xc0000c4230, 0x68}, 0xc000111170)
	/opt/local/lib/go/src/cmd/go/internal/modload/load.go:1991 +0x5a fp=0xc00006ce28 sp=0xc00006cd80 pc=0x42c505a
cmd/go/internal/modload.(*loader).load(0xc0000de6e0, {0x451ae60, 0xc00009a000}, 0xc0000de9a0)
	/opt/local/lib/go/src/cmd/go/internal/modload/load.go:1622 +0x6ca fp=0xc00006cf30 sp=0xc00006ce28 pc=0x42c1c4a
cmd/go/internal/modload.(*loader).pkg.func1.1()
	/opt/local/lib/go/src/cmd/go/internal/modload/load.go:1389 +0x45 fp=0xc00006cf60 sp=0xc00006cf30 pc=0x42c0545
cmd/go/internal/par.(*Queue).Add.func1(0xc0000a60a0, 0xc000090ba0)
	/opt/local/lib/go/src/cmd/go/internal/par/queue.go:58 +0x7c fp=0xc00006cfd0 sp=0xc00006cf60 pc=0x41fe6fc
runtime.goexit()
	/opt/local/lib/go/src/runtime/asm_amd64.s:1581 +0x1 fp=0xc00006cfd8 sp=0xc00006cfd0 pc=0x406e0e1
created by cmd/go/internal/par.(*Queue).Add
	/opt/local/lib/go/src/cmd/go/internal/par/queue.go:56 +0x25a

goroutine 1 [chan receive]:
cmd/go/internal/modload.loadFromRoots({0x451ae60, 0xc00009a000}, {{{0x0, 0x0}, 0xc000111170, 0x0, {0x0, 0x0}, 0x0, 0x1, ...}, ...})
	/opt/local/lib/go/src/cmd/go/internal/modload/load.go:998 +0x945
cmd/go/internal/modload.LoadPackages({0x451ae60, 0xc00009a000}, {{0x0, 0x0}, 0xc000111170, 0x0, {0x0, 0x0}, 0x0, 0x1, ...}, ...)
	/opt/local/lib/go/src/cmd/go/internal/modload/load.go:329 +0x378
cmd/go/internal/load.PackagesAndErrors({0x451ae60, 0xc00009a000}, {0x0, 0x0, 0x0}, {0xc0000ac060, 0x4, 0x4})
	/opt/local/lib/go/src/cmd/go/internal/load/pkg.go:2448 +0x1f9
cmd/go/internal/work.runInstall({0x451ae60, 0xc00009a000}, 0x471eee0, {0xc0000ac060, 0x4, 0x4})
	/opt/local/lib/go/src/cmd/go/internal/work/build.go:591 +0xa5
main.invoke(0x471eee0, {0xc0000ac010, 0x9, 0x9})
	/opt/local/lib/go/src/cmd/go/main.go:216 +0x3b1
main.main()
	/opt/local/lib/go/src/cmd/go/main.go:173 +0x9ea

goroutine 18 [syscall]:
syscall.syscall(0x4082320, 0x4900760, 0x0, 0x0)
	/opt/local/lib/go/src/runtime/sys_darwin.go:22 +0x2e fp=0xc00020f730 sp=0xc00020f708 pc=0x406ad6e
syscall.closedir(0x4900760)
	/opt/local/lib/go/src/syscall/zsyscall_darwin_amd64.go:505 +0x45 fp=0xc00020f778 sp=0xc00020f730 pc=0x407f5c5
os.(*dirInfo).close(...)
	/opt/local/lib/go/src/os/dir_darwin.go:23
os.(*file).close(0xc000206000)
	/opt/local/lib/go/src/os/file_unix.go:249 +0x53 fp=0xc00020f7d0 sp=0xc00020f778 pc=0x40e22b3
os.(*File).Close(...)
	/opt/local/lib/go/src/os/file_posix.go:26
io/ioutil.ReadDir({0xc0002000e0, 0x67})
	/opt/local/lib/go/src/io/ioutil/ioutil.go:64 +0xf4 fp=0xc00020f878 sp=0xc00020f7d0 pc=0x4184eb4
cmd/go/internal/fsys.readDir({0xc0002000e0, 0x67})
	/opt/local/lib/go/src/cmd/go/internal/fsys/fsys.go:246 +0x39 fp=0xc00020f8d0 sp=0xc00020f878 pc=0x41d48f9
cmd/go/internal/fsys.ReadDir({0xc0002000e0, 0x67})
	/opt/local/lib/go/src/cmd/go/internal/fsys/fsys.go:270 +0x39c fp=0xc00020fc68 sp=0xc00020f8d0 pc=0x41d4e9c
cmd/go/internal/imports.ScanDir({0xc0002000e0, 0x67}, 0xc000111170)
	/opt/local/lib/go/src/cmd/go/internal/imports/scan.go:19 +0x50 fp=0xc00020fd80 sp=0xc00020fc68 pc=0x41f11f0
cmd/go/internal/modload.scanDir({0xc0002000e0, 0x67}, 0xc000111170)
	/opt/local/lib/go/src/cmd/go/internal/modload/load.go:1991 +0x5a fp=0xc00020fe28 sp=0xc00020fd80 pc=0x42c505a
cmd/go/internal/modload.(*loader).load(0xc0000de6e0, {0x451ae60, 0xc00009a000}, 0xc0000de790)
	/opt/local/lib/go/src/cmd/go/internal/modload/load.go:1622 +0x6ca fp=0xc00020ff30 sp=0xc00020fe28 pc=0x42c1c4a
cmd/go/internal/modload.(*loader).pkg.func1.1()
	/opt/local/lib/go/src/cmd/go/internal/modload/load.go:1389 +0x45 fp=0xc00020ff60 sp=0xc00020ff30 pc=0x42c0545
cmd/go/internal/par.(*Queue).Add.func1(0xc0000a6068, 0xc000090ba0)
	/opt/local/lib/go/src/cmd/go/internal/par/queue.go:58 +0x7c fp=0xc00020ffd0 sp=0xc00020ff60 pc=0x41fe6fc
created by cmd/go/internal/par.(*Queue).Add
	/opt/local/lib/go/src/cmd/go/internal/par/queue.go:56 +0x25a

goroutine 19 [syscall]:
syscall.syscall(0x4082320, 0x2b900110, 0x0, 0x0)
	/opt/local/lib/go/src/runtime/sys_darwin.go:22 +0x2e fp=0xc00020b730 sp=0xc00020b708 pc=0x406ad6e
syscall.closedir(0x2b900110)
	/opt/local/lib/go/src/syscall/zsyscall_darwin_amd64.go:505 +0x45 fp=0xc00020b778 sp=0xc00020b730 pc=0x407f5c5
os.(*dirInfo).close(...)
	/opt/local/lib/go/src/os/dir_darwin.go:23
os.(*file).close(0xc000066060)
	/opt/local/lib/go/src/os/file_unix.go:249 +0x53 fp=0xc00020b7d0 sp=0xc00020b778 pc=0x40e22b3
os.(*File).Close(...)
	/opt/local/lib/go/src/os/file_posix.go:26
io/ioutil.ReadDir({0xc00002a380, 0x67})
	/opt/local/lib/go/src/io/ioutil/ioutil.go:64 +0xf4 fp=0xc00020b878 sp=0xc00020b7d0 pc=0x4184eb4
cmd/go/internal/fsys.readDir({0xc00002a380, 0x67})
	/opt/local/lib/go/src/cmd/go/internal/fsys/fsys.go:246 +0x39 fp=0xc00020b8d0 sp=0xc00020b878 pc=0x41d48f9
cmd/go/internal/fsys.ReadDir({0xc00002a380, 0x67})
	/opt/local/lib/go/src/cmd/go/internal/fsys/fsys.go:270 +0x39c fp=0xc00020bc68 sp=0xc00020b8d0 pc=0x41d4e9c
cmd/go/internal/imports.ScanDir({0xc00002a380, 0x67}, 0xc000111170)
	/opt/local/lib/go/src/cmd/go/internal/imports/scan.go:19 +0x50 fp=0xc00020bd80 sp=0xc00020bc68 pc=0x41f11f0
cmd/go/internal/modload.scanDir({0xc00002a380, 0x67}, 0xc000111170)
	/opt/local/lib/go/src/cmd/go/internal/modload/load.go:1991 +0x5a fp=0xc00020be28 sp=0xc00020bd80 pc=0x42c505a
cmd/go/internal/modload.(*loader).load(0xc0000de6e0, {0x451ae60, 0xc00009a000}, 0xc0000de840)
	/opt/local/lib/go/src/cmd/go/internal/modload/load.go:1622 +0x6ca fp=0xc00020bf30 sp=0xc00020be28 pc=0x42c1c4a
cmd/go/internal/modload.(*loader).pkg.func1.1()
	/opt/local/lib/go/src/cmd/go/internal/modload/load.go:1389 +0x45 fp=0xc00020bf60 sp=0xc00020bf30 pc=0x42c0545
cmd/go/internal/par.(*Queue).Add.func1(0xc0000a6080, 0xc000090ba0)
	/opt/local/lib/go/src/cmd/go/internal/par/queue.go:58 +0x7c fp=0xc00020bfd0 sp=0xc00020bf60 pc=0x41fe6fc
created by cmd/go/internal/par.(*Queue).Add
	/opt/local/lib/go/src/cmd/go/internal/par/queue.go:56 +0x25a

goroutine 20 [syscall]:
syscall.syscall(0x4082320, 0x2b9000d0, 0x0, 0x0)
	/opt/local/lib/go/src/runtime/sys_darwin.go:22 +0x2e
syscall.closedir(0x2b9000d0)
	/opt/local/lib/go/src/syscall/zsyscall_darwin_amd64.go:505 +0x45
os.(*dirInfo).close(...)
	/opt/local/lib/go/src/os/dir_darwin.go:23
os.(*file).close(0xc00018e000)
	/opt/local/lib/go/src/os/file_unix.go:249 +0x53
os.(*File).Close(...)
	/opt/local/lib/go/src/os/file_posix.go:26
io/ioutil.ReadDir({0xc0001880e0, 0x6b})
	/opt/local/lib/go/src/io/ioutil/ioutil.go:64 +0xf4
cmd/go/internal/fsys.readDir({0xc0001880e0, 0x6b})
	/opt/local/lib/go/src/cmd/go/internal/fsys/fsys.go:246 +0x39
cmd/go/internal/fsys.ReadDir({0xc0001880e0, 0x6b})
	/opt/local/lib/go/src/cmd/go/internal/fsys/fsys.go:270 +0x39c
cmd/go/internal/imports.ScanDir({0xc0001880e0, 0x6b}, 0xc000111170)
	/opt/local/lib/go/src/cmd/go/internal/imports/scan.go:19 +0x50
cmd/go/internal/modload.scanDir({0xc0001880e0, 0x6b}, 0xc000111170)
	/opt/local/lib/go/src/cmd/go/internal/modload/load.go:1991 +0x5a
cmd/go/internal/modload.(*loader).load(0xc0000de6e0, {0x451ae60, 0xc00009a000}, 0xc0000de8f0)
	/opt/local/lib/go/src/cmd/go/internal/modload/load.go:1622 +0x6ca
cmd/go/internal/modload.(*loader).pkg.func1.1()
	/opt/local/lib/go/src/cmd/go/internal/modload/load.go:1389 +0x45
cmd/go/internal/par.(*Queue).Add.func1(0xc0000a6090, 0xc000090ba0)
	/opt/local/lib/go/src/cmd/go/internal/par/queue.go:58 +0x7c
created by cmd/go/internal/par.(*Queue).Add
	/opt/local/lib/go/src/cmd/go/internal/par/queue.go:56 +0x25a
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x7fff8afcdd9f]

runtime stack:
runtime: unexpected return pc for runtime.sigpanic called from 0x7fff8afcdd9f
stack: frame={sp:0xb0186db0, fp:0xb0186e10} stack=[0xb01072c8,0xb0186ec8)
0x00000000b0186cb0:  0x000000c000000d00  0x01000000000003e8 
0x00000000b0186cc0:  0x0000000000000004  0x000000000000001f 
0x00000000b0186cd0:  0x00007fff8afcdd9f  0x0000000000000000 
0x00000000b0186ce0:  0x0000000000000001  0x0000000004483975 
0x00000000b0186cf0:  0x00000000b0186d38  0x000000000403973f <runtime.fatalthrow.func1+0x000000000000005f> 
0x00000000b0186d00:  0x000000c000000d00  0x0000000004039434 <runtime.throw+0x0000000000000074> 
0x00000000b0186d10:  0x00000000b0186d80  0x0000000000000001 
0x00000000b0186d20:  0x00000000b0186d80  0x0000000004039434 <runtime.throw+0x0000000000000074> 
0x00000000b0186d30:  0x000000c000000d00  0x00000000b0186d70 
0x00000000b0186d40:  0x00000000040396be <runtime.fatalthrow+0x000000000000005e>  0x00000000b0186d50 
0x00000000b0186d50:  0x00000000040396e0 <runtime.fatalthrow.func1+0x0000000000000000>  0x000000c000000d00 
0x00000000b0186d60:  0x0000000004039434 <runtime.throw+0x0000000000000074>  0x00000000b0186d80 
0x00000000b0186d70:  0x00000000b0186da0  0x0000000004039434 <runtime.throw+0x0000000000000074> 
0x00000000b0186d80:  0x00000000b0186d88  0x0000000004039460 <runtime.throw.func1+0x0000000000000000> 
0x00000000b0186d90:  0x000000000448a1ac  0x000000000000002a 
0x00000000b0186da0:  0x00000000b0186e00  0x0000000004050fed <runtime.sigpanic+0x000000000000048d> 
0x00000000b0186db0: <0x000000000448a1ac  0x000000000000002a 
0x00000000b0186dc0:  0x00000000b0186df0  0x000000000405a408 <runtime.madvise+0x0000000000000028> 
0x00000000b0186dd0:  0x000000000406f8c0 <runtime.madvise_trampoline+0x0000000000000000>  0x00000000b0186e00 
0x00000000b0186de0:  0x0000000000000000  0x000000c000074000 
0x00000000b0186df0:  0x00000000b0186e60  0x000000002b900110 
0x00000000b0186e00:  0x00000000b0186e20 !0x00007fff8afcdd9f 
0x00000000b0186e10: >0x000000002b900110  0x000000002b800000 
0x00000000b0186e20:  0x00000000b0186e50  0x00007fff8afce4cb 
0x00000000b0186e30:  0x000000c000074000  0x000000c00020b730 
0x00000000b0186e40:  0x000000c0001229c0  0x000000c000074000 
0x00000000b0186e50:  0x00000000b0186e70  0x000000000406ff7f <runtime.syscall+0x000000000000001f> 
0x00000000b0186e60:  0x000000c00020b730  0x000000000402a5ac <runtime.(*mheap).alloc.func1+0x000000000000008c> 
0x00000000b0186e70:  0x000000c00020b6f8  0x000000000406deb0 <runtime.asmcgocall+0x0000000000000070> 
0x00000000b0186e80:  0x000000c000060a00  0x00000000048327d0 
0x00000000b0186e90:  0x0a00000000000010  0x000000000441d140 
0x00000000b0186ea0:  0x000000000441d140  0x0000000000000930 
0x00000000b0186eb0:  0x000000c0001229c0  0x000000000406c109 <runtime.systemstack+0x0000000000000049> 
0x00000000b0186ec0:  0x0000000000000000 
runtime.throw({0x448a1ac, 0x2a})
	/opt/local/lib/go/src/runtime/panic.go:1198 +0x74
runtime: unexpected return pc for runtime.sigpanic called from 0x7fff8afcdd9f
stack: frame={sp:0xb0186db0, fp:0xb0186e10} stack=[0xb01072c8,0xb0186ec8)
0x00000000b0186cb0:  0x000000c000000d00  0x01000000000003e8 
0x00000000b0186cc0:  0x0000000000000004  0x000000000000001f 
0x00000000b0186cd0:  0x00007fff8afcdd9f  0x0000000000000000 
0x00000000b0186ce0:  0x0000000000000001  0x0000000004483975 
0x00000000b0186cf0:  0x00000000b0186d38  0x000000000403973f <runtime.fatalthrow.func1+0x000000000000005f> 
0x00000000b0186d00:  0x000000c000000d00  0x0000000004039434 <runtime.throw+0x0000000000000074> 
0x00000000b0186d10:  0x00000000b0186d80  0x0000000000000001 
0x00000000b0186d20:  0x00000000b0186d80  0x0000000004039434 <runtime.throw+0x0000000000000074> 
0x00000000b0186d30:  0x000000c000000d00  0x00000000b0186d70 
0x00000000b0186d40:  0x00000000040396be <runtime.fatalthrow+0x000000000000005e>  0x00000000b0186d50 
0x00000000b0186d50:  0x00000000040396e0 <runtime.fatalthrow.func1+0x0000000000000000>  0x000000c000000d00 
0x00000000b0186d60:  0x0000000004039434 <runtime.throw+0x0000000000000074>  0x00000000b0186d80 
0x00000000b0186d70:  0x00000000b0186da0  0x0000000004039434 <runtime.throw+0x0000000000000074> 
0x00000000b0186d80:  0x00000000b0186d88  0x0000000004039460 <runtime.throw.func1+0x0000000000000000> 
0x00000000b0186d90:  0x000000000448a1ac  0x000000000000002a 
0x00000000b0186da0:  0x00000000b0186e00  0x0000000004050fed <runtime.sigpanic+0x000000000000048d> 
0x00000000b0186db0: <0x000000000448a1ac  0x000000000000002a 
0x00000000b0186dc0:  0x00000000b0186df0  0x000000000405a408 <runtime.madvise+0x0000000000000028> 
0x00000000b0186dd0:  0x000000000406f8c0 <runtime.madvise_trampoline+0x0000000000000000>  0x00000000b0186e00 
0x00000000b0186de0:  0x0000000000000000  0x000000c000074000 
0x00000000b0186df0:  0x00000000b0186e60  0x000000002b900110 
0x00000000b0186e00:  0x00000000b0186e20 !0x00007fff8afcdd9f 
0x00000000b0186e10: >0x000000002b900110  0x000000002b800000 
0x00000000b0186e20:  0x00000000b0186e50  0x00007fff8afce4cb 
0x00000000b0186e30:  0x000000c000074000  0x000000c00020b730 
0x00000000b0186e40:  0x000000c0001229c0  0x000000c000074000 
0x00000000b0186e50:  0x00000000b0186e70  0x000000000406ff7f <runtime.syscall+0x000000000000001f> 
0x00000000b0186e60:  0x000000c00020b730  0x000000000402a5ac <runtime.(*mheap).alloc.func1+0x000000000000008c> 
0x00000000b0186e70:  0x000000c00020b6f8  0x000000000406deb0 <runtime.asmcgocall+0x0000000000000070> 
0x00000000b0186e80:  0x000000c000060a00  0x00000000048327d0 
0x00000000b0186e90:  0x0a00000000000010  0x000000000441d140 
0x00000000b0186ea0:  0x000000000441d140  0x0000000000000930 
0x00000000b0186eb0:  0x000000c0001229c0  0x000000000406c109 <runtime.systemstack+0x0000000000000049> 
0x00000000b0186ec0:  0x0000000000000000 
runtime.sigpanic()
	/opt/local/lib/go/src/runtime/signal_unix.go:719 +0x48d
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x7fff8afcdd9f]

runtime stack:
runtime: unexpected return pc for runtime.sigpanic called from 0x7fff8afcdd9f
stack: frame={sp:0xb0209db0, fp:0xb0209e10} stack=[0xb018a2c8,0xb0209ec8)
0x00000000b0209cb0:  0x000000c0000821a0  0x01000000000003e8 
0x00000000b0209cc0:  0x0000000000000004  0x000000000000001f 
0x00000000b0209cd0:  0x00007fff8afcdd9f  0x0000000000000000 
0x00000000b0209ce0:  0x0000000000000001  0x0000000004483975 
0x00000000b0209cf0:  0x00000000b0209d38  0x000000000403973f <runtime.fatalthrow.func1+0x000000000000005f> 
0x00000000b0209d00:  0x000000c0000821a0  0x0000000004039434 <runtime.throw+0x0000000000000074> 
0x00000000b0209d10:  0x00000000b0209d80  0x0000000000000001 
0x00000000b0209d20:  0x00000000b0209d80  0x0000000004039434 <runtime.throw+0x0000000000000074> 
0x00000000b0209d30:  0x000000c0000821a0  0x00000000b0209d70 
0x00000000b0209d40:  0x00000000040396be <runtime.fatalthrow+0x000000000000005e>  0x00000000b0209d50 
0x00000000b0209d50:  0x00000000040396e0 <runtime.fatalthrow.func1+0x0000000000000000>  0x000000c0000821a0 
0x00000000b0209d60:  0x0000000004039434 <runtime.throw+0x0000000000000074>  0x00000000b0209d80 
0x00000000b0209d70:  0x00000000b0209da0  0x0000000004039434 <runtime.throw+0x0000000000000074> 
0x00000000b0209d80:  0x00000000b0209d88  0x0000000004039460 <runtime.throw.func1+0x0000000000000000> 
0x00000000b0209d90:  0x000000000448a1ac  0x000000000000002a 
0x00000000b0209da0:  0x00000000b0209e00  0x0000000004050fed <runtime.sigpanic+0x000000000000048d> 
0x00000000b0209db0: <0x000000000448a1ac  0x000000000000002a 
0x00000000b0209dc0:  0x00000000b0209df0  0x000000000405a408 <runtime.madvise+0x0000000000000028> 
0x00000000b0209dd0:  0x000000000406f8c0 <runtime.madvise_trampoline+0x0000000000000000>  0x00000000b0209e00 
0x00000000b0209de0:  0x0000000000000000  0x000000c000214000 
0x00000000b0209df0:  0x00000000b0209e60  0x0000000004900760 
0x00000000b0209e00:  0x00000000b0209e20 !0x00007fff8afcdd9f 
0x00000000b0209e10: >0x0000000004900760  0x000000002b8000a0 
0x00000000b0209e20:  0x00000000b0209e50  0x00007fff8afce4cb 
0x00000000b0209e30:  0x000000c000214000  0x000000c00020f730 
0x00000000b0209e40:  0x000000c000122820  0x000000c000214000 
0x00000000b0209e50:  0x00000000b0209e70  0x000000000406ff7f <runtime.syscall+0x000000000000001f> 
0x00000000b0209e60:  0x000000c00020f730  0x000000000402a5ac <runtime.(*mheap).alloc.func1+0x000000000000008c> 
0x00000000b0209e70:  0x000000c00020f6f8  0x000000000406deb0 <runtime.asmcgocall+0x0000000000000070> 
0x00000000b0209e80:  0x000000c000200a00  0x000000002b6140e8 
0x00000000b0209e90:  0x0a00000000000010  0x000000000441d140 
0x00000000b0209ea0:  0x000000000441d140  0x0000000000000930 
0x00000000b0209eb0:  0x000000c000122820  0x000000000406c109 <runtime.systemstack+0x0000000000000049> 
0x00000000b0209ec0:  0x0000000000000000 
runtime.throw({0x448a1ac, 0x2a})
	/opt/local/lib/go/src/runtime/panic.go:1198 +0x74
runtime: unexpected return pc for runtime.sigpanic called from 0x7fff8afcdd9f
stack: frame={sp:0xb0209db0, fp:0xb0209e10} stack=[0xb018a2c8,0xb0209ec8)
0x00000000b0209cb0:  0x000000c0000821a0  0x01000000000003e8 
0x00000000b0209cc0:  0x0000000000000004  0x000000000000001f 
0x00000000b0209cd0:  0x00007fff8afcdd9f  0x0000000000000000 
0x00000000b0209ce0:  0x0000000000000001  0x0000000004483975 
0x00000000b0209cf0:  0x00000000b0209d38  0x000000000403973f <runtime.fatalthrow.func1+0x000000000000005f> 
0x00000000b0209d00:  0x000000c0000821a0  0x0000000004039434 <runtime.throw+0x0000000000000074> 
0x00000000b0209d10:  0x00000000b0209d80  0x0000000000000001 
0x00000000b0209d20:  0x00000000b0209d80  0x0000000004039434 <runtime.throw+0x0000000000000074> 
0x00000000b0209d30:  0x000000c0000821a0  0x00000000b0209d70 
0x00000000b0209d40:  0x00000000040396be <runtime.fatalthrow+0x000000000000005e>  0x00000000b0209d50 
0x00000000b0209d50:  0x00000000040396e0 <runtime.fatalthrow.func1+0x0000000000000000>  0x000000c0000821a0 
0x00000000b0209d60:  0x0000000004039434 <runtime.throw+0x0000000000000074>  0x00000000b0209d80 
0x00000000b0209d70:  0x00000000b0209da0  0x0000000004039434 <runtime.throw+0x0000000000000074> 
0x00000000b0209d80:  0x00000000b0209d88  0x0000000004039460 <runtime.throw.func1+0x0000000000000000> 
0x00000000b0209d90:  0x000000000448a1ac  0x000000000000002a 
0x00000000b0209da0:  0x00000000b0209e00  0x0000000004050fed <runtime.sigpanic+0x000000000000048d> 
0x00000000b0209db0: <0x000000000448a1ac  0x000000000000002a 
0x00000000b0209dc0:  0x00000000b0209df0  0x000000000405a408 <runtime.madvise+0x0000000000000028> 
0x00000000b0209dd0:  0x000000000406f8c0 <runtime.madvise_trampoline+0x0000000000000000>  0x00000000b0209e00 
0x00000000b0209de0:  0x0000000000000000  0x000000c000214000 
0x00000000b0209df0:  0x00000000b0209e60  0x0000000004900760 
0x00000000b0209e00:  0x00000000b0209e20 !0x00007fff8afcdd9f 
0x00000000b0209e10: >0x0000000004900760  0x000000002b8000a0 
0x00000000b0209e20:  0x00000000b0209e50  0x00007fff8afce4cb 
0x00000000b0209e30:  0x000000c000214000  0x000000c00020f730 
0x00000000b0209e40:  0x000000c000122820  0x000000c000214000 
0x00000000b0209e50:  0x00000000b0209e70  0x000000000406ff7f <runtime.syscall+0x000000000000001f> 
0x00000000b0209e60:  0x000000c00020f730  0x000000000402a5ac <runtime.(*mheap).alloc.func1+0x000000000000008c> 
0x00000000b0209e70:  0x000000c00020f6f8  0x000000000406deb0 <runtime.asmcgocall+0x0000000000000070> 
0x00000000b0209e80:  0x000000c000200a00  0x000000002b6140e8 
0x00000000b0209e90:  0x0a00000000000010  0x000000000441d140 
0x00000000b0209ea0:  0x000000000441d140  0x0000000000000930 
0x00000000b0209eb0:  0x000000c000122820  0x000000000406c109 <runtime.systemstack+0x0000000000000049> 
0x00000000b0209ec0:  0x0000000000000000 
runtime.sigpanic()
	/opt/local/lib/go/src/runtime/signal_unix.go:719 +0x48d
go tool dist: FAILED: /opt/local/var/macports/build/_Users_rob_Development_MacPorts_local-repo_lang_go/go/work/go/pkg/tool/darwin_amd64/go_bootstrap install -gcflags=all= -ldflags=all="-extldflags=-Wl,-headerpad_max_install_names -L/opt/local/lib -lMacportsLegacySupport" -v -i cmd/asm cmd/cgo cmd/compile cmd/link: exit status 2
rm -r /opt/local/var/macports/build/_Users_rob_Development_MacPorts_local-repo_lang_go/go/work/go/pkg/bootstrap
rm -r /opt/local/var/macports/build/_Users_rob_Development_MacPorts_local-repo_lang_go/go/work/go/pkg/obj/go-build
rm -rf /opt/local/var/macports/build/_Users_rob_Development_MacPorts_local-repo_lang_go/go/work/.tmp/go-tool-dist-254573346
rm -r /opt/local/var/macports/build/_Users_rob_Development_MacPorts_local-repo_lang_go/go/work/.tmp/go-tool-dist-254573346
Command failed:  cd "/opt/local/var/macports/build/_Users_rob_Development_MacPorts_local-repo_lang_go/go/work/go/src" && ./make.bash -v=3 
Exit code: 2
Error: Failed to build go: command execution failed
Error: See /opt/local/var/macports/logs/_Users_rob_Development_MacPorts_local-repo_lang_go/go/main.log for details.
Error: Follow https://guide.macports.org/#project.tickets if you believe there is a bug.
Error: Processing of port go failed
bash-3.2$

comment:8 Changed 5 months ago by RobK88

Here is a workaround for getting go@1.17.13 to run on Lion, Mountain Lion etc.

  1. Install the legacy-support port (if not already installed)
  2. Download the prebuilt binary for go@1.17.13 from https://go.dev/dl/go1.17.13.darwin-amd64.tar.gz and dynamically insert the legacy-support library.
$ sw_vers
ProductName:	Mac OS X
ProductVersion:	10.7.5
BuildVersion:	11G63

$ DYLD_INSERT_LIBRARIES="/opt/local/lib/libMacportsLegacySupport.dylib:/opt/local/lib/libMacportsLegacySystem.B.dylib" /Users/rob/Downloads/go/bin/go version
go version go1.17.13 darwin/amd64

I will modify the Portfile for go accordingly and will submit a PR sometime this weekend.

Last edited 5 months ago by RobK88 (previous) (diff)

comment:9 Changed 5 months ago by RobK88

Well my fix did not work.. Even with dynamic library injection, I cannot get the prebuilt binary for go@1.17.13 to compile anything without crashing with a SIGSEGV: segmentation violation error.

I have tried all my tricks. I have no more ideas for a fix.

comment:11 Changed 5 months ago by RobK88

@kencu -- Thanks Ken. I will add to the Portfile a go.vendors line for the most recent version of golang.org/x/sys and see if that fixes the problem.

Last edited 5 months ago by RobK88 (previous) (diff)

comment:12 Changed 5 months ago by kencu (Ken)

It was this bit I was thinking might be useful:

"with Go 1.17, could you try building your binary with environment variable GOEXPERIMENT=noregabi"

eg:

configure.env-append GOEXPERIMENT=noregabi
build.env-append GOEXPERIMENT=noregabi

what it exactly does, at the moment I don't know. But it was mentioned as the fix for a similar issue.

comment:13 Changed 5 months ago by RobK88

@kencu - Thanks Ken. I will try that.

By the way, I soon figured out that I cannot add a go.vendors line to the go Portfile due the the chicken and egg problem. You need go installed before one can use PortGroup golang 1.0 which adds the go.vendors command.

I also tried to install the latest version of golang.org/x/sys using go-1.4 but no luck.

rob$ /opt/local/lib/go-1.4/bin/go get -u golang.org/x/sys
package golang.org/x/sys: unrecognized import path "golang.org/x/sys"

Maybe there is an easy fix but I am unfortunately not a go developer.

comment:14 Changed 5 months ago by RobK88

@kencu -- No luck building when using the following environment variables:

configure.env-append GOEXPERIMENT=noregabi
build.env-append GOEXPERIMENT=noregabi

I suspect the problem is with the golang.org/x/sys dependency. If I only knew how to update it using go-1.4 in the Portfile.

I tried adding the following to the Portfile

exec  ${prefix}/lib/go-1.4/bin/go get -u golang.org/x/sys

But I get the same error when I try to update golang.org/x/sys at the command line:

$ sudo port -vs install  go
Error: Unable to open port: package golang.org/x/sys: unrecognized import path "golang.org/x/sys"

Maybe GOPATH needs to be set properly.

comment:15 Changed 5 months ago by RobK88

hmm. Instead of running go get -u golang.org/x/sys which requires go installed, apparently, one can also manually git clone the repository located at https://cs.opensource.google/go/x/sys to $GOPATH/src/golang.org/x/sys

How would I do that in the Portfile?

If I can figure out how to set the GOPATH environment variable properly, I should be able to use either /opt/local/lib/go-1.4/bin go get golang.org/x/sys or git clone the source.

Last edited 5 months ago by RobK88 (previous) (diff)

comment:16 Changed 5 months ago by tehcog (tehcog)

Cc: tehcog added

comment:17 in reply to:  15 Changed 2 months ago by barracuda156

Replying to RobK88:

Any luck of getting it to work?

comment:18 Changed 12 days ago by RobK88

@barracuda156 -- No luck to date in fixing go for legacy versions of Mac OS X. I hope to start looking at this issue again in a couple of weeks.

In the meantime, if anyone has any ideas, please let me know!

Last edited 12 days ago by RobK88 (previous) (diff)

comment:19 Changed 11 days ago by RobK88

I think I found the problem.

The notes to go state:

bash-3.2$ port notes go
--->  go has the following notes:
  Please note: Go 1.22 does not build on macOS 10.12 and older, so Go 1.17.13 has been installed.
  go had to be specially patched and built to work on your platform.
  
  It likely won't work out of the box when building other projects, so make sure change your environment to use the following
  variables:
    * GO_EXTLINK_ENABLED="1"
  to always force go to use the external gcc or clang linker and
    * GO_LDFLAGS="\"-extldflags=${configure.ldflags}\""
    * CGO_LDFLAGS="-g -O2 ${configure.ldflags}"
  to force-link any binary against the legacy support library. Use exactly the quoting provided here, even if it may look
  odd, or compilation will fail.
  
  Failure to do so will leave you unable to create binaries that use features not natively available on your system, either
  directly or through a go core dependency.

So in ports that use go, one needs to set build.env appropriately. E.g. In the totp-cli portfile, one sees:

pre-build {
#   Sierra and earlier
    if { ${os.platform} eq "darwin" && ${os.major} < 17 } {
        build.env-append    GO_EXTLINK_ENABLED="1" \
                            GO_LDFLAGS="\"-extldflags=${configure.ldflags}\"" \
                            CGO_LDFLAGS="-g -O2 ${configure.ldflags}"
    }
}

But when you do so, the CGO_LDFLAGS is NOT set appropriately. One see :debug:build CGO_LDFLAGS='"-g'

As a result, when building a port on Lion and Mtn Lion (and other legacy Mac OS X) systems, the build fails with:

clang: error: no such file or directory: '"-g'

Here is a portion of main.log after trying to build totp-cli.

:debug:build CGO_CFLAGS='-Os -arch x86_64'
:debug:build CGO_CXXFLAGS='-Os -stdlib=libc++ -arch x86_64'
:debug:build CGO_LDFLAGS='"-g'
:debug:build CPATH='/opt/local/include'
:debug:build CPLUS_INCLUDE_PATH='/opt/local/include/LegacySupport'
:debug:build CXX='/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_security_totp-cli/totp-cli/work/compwrap/cxx/usr/bin/clang++'
:debug:build C_INCLUDE_PATH='/opt/local/include/LegacySupport'
:debug:build DEVELOPER_DIR='/Applications/Xcode.app/Contents/Developer'
:debug:build F77=''
:debug:build F90=''
:debug:build FC=''
:debug:build GO111MODULE='off'
:debug:build GOARCH='amd64'
:debug:build GOOS='darwin'
:debug:build GOPATH='/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_security_totp-cli/totp-cli/work/gopath'
:debug:build GOPROXY='off'
:debug:build GO_EXTLINK_ENABLED='"1"'
:debug:build GO_LDFLAGS='""-extldflags=-Wl,-headerpad_max_install_names -L/opt/local/lib -lMacportsLegacySupport""'
:debug:build LIBRARY_PATH='/opt/local/lib'
:debug:build MACOSX_DEPLOYMENT_TARGET='10.8'

Perhaps, build-env should be:

pre-build {
#   Sierra and earlier
    if { ${os.platform} eq "darwin" && ${os.major} < 17 } {
        build.env-append    GO_EXTLINK_ENABLED="1" \
                            GO_LDFLAGS="\"-extldflags=${configure.ldflags}\"" \
                            CGO_LDFLAGS="\"-g -O2 ${configure.ldflags}\""
    }
}

If this works, the notes to go will need to be changed. And other ports that rely on go will need to be updated so they can build on legacy Mac OS X systems.

Note: See TracTickets for help on using tickets.