When building Syncthing on SmartOS (SunOS 5.11 joyent_20171221T020409Z i86pc i386 i86pc Solaris) I get the following error:
[admin@files ~/go/src/github.com/syncthing/syncthing]$ go run build.go -version v0.14.43 -no-upgrade tar
github.com/syncthing/syncthing/lib/upgrade
github.com/syncthing/syncthing/lib/config
github.com/syncthing/syncthing/lib/nat
github.com/syncthing/syncthing/lib/watchaggregator
github.com/syncthing/syncthing/lib/pmp
github.com/syncthing/syncthing/lib/upnp
github.com/syncthing/syncthing/lib/connections
github.com/syncthing/syncthing/lib/model
github.com/syncthing/syncthing/cmd/syncthing
# github.com/syncthing/syncthing/cmd/syncthing
/opt/local/go/pkg/tool/solaris_amd64/link: running gcc failed: exit status 1
Undefined first referenced
symbol in file
__stack_chk_fail /tmp/go-link-890189183/000001.o
__stack_chk_guard /tmp/go-link-890189183/000001.o
ld: fatal: symbol referencing errors. No output written to $WORK/github.com/syncthing/syncthing/cmd/syncthing/_obj/exe/a.out
collect2: error: ld returned 1 exit status
exit status 2
exit status 1
Using go version 1.9.2, gcc version 4.9.4.
I am able to build syncthing on SmartOS joyent_20171109T032417Z without problems. Syncthing v0.14.43
Odd. It works on my joyent_20171123T033756Z with an older zone and Go, too. Maybe something changed in the latest platform to catch the Go compiler off guard.
Thanks for your quick reply calmh.
I did some additional tests this morning, and I’ve discovered that building syncthing works in the base-64-lts 16.4.1 image (gcc 4.9.4, go version go1.9 solaris/amd64), but not in the base-64-lts 17.4.0 image (gcc 4.9.4, go version go1.9.2 solaris/amd64).
I generated 2 clean images just for testing this and basically followed the standard build procedure after running pkgin install nano tree lsof go git build-essential.
So it seems that something in the newer version of the base-64-lts image has broken the build process.
Here’s the full terminal output of the test run on the 17.4.0 image: https://gist.github.com/martin-c/9584c380d82365d1d8a59dff6d4bcabe
The image I’m using has UUID 390639d4-f146-11e7-9280-37ae5c6d53d4 when running imgadm list.
No, he’s saying they’ve fixed their package build by using a new Go (compared to whatever they had before) and disabling “ssp”, whatever that is, probably something in their build setup. This is not a Syncthing issue.