On Monday, May 1, 2017 at 3:56:32 PM UTC+3, timo....@gmail.com wrote: > > > On Friday, April 28, 2017 at 5:11:19 PM UTC+3, Ian Lance Taylor wrote: >> >> On Thu, Apr 27, 2017 at 10:57 PM, <timo....@gmail.com> wrote: >> It sounds like you are running into some version of >> https://golang.org/issue/18968. But to be honest I don't understand >> what is forcing internal link mode. The linker defaults to using >> external link mode with PIE. Using -linkmode=internal will override >> that, but I don't see where any explicit -linkmode=internal would come >> from. >> >> And come to think of it the error seems to be happening at the wrong >> time. The go_bootstrap build is built with the existing toolchain, >> not the new one. I'm not sure what is happening. >> > > The error message indicates that the internal linker of the new go being > built is used. > > But as a reference, the bootstrap-go in question is Alpine build of Go > 1.7.4 which is patched to default to buildmode=pie. > > >> > I also tried the following patch, but it did not help: >> No, I wouldn't expect that to help, because the code that calls >> mustLinkExternal already has an override to force external linking >> mode for PIE. Something is passing -linkmode=internal but I'm not >> sure what. >> >> I assume you are not setting GO_EXTLINK_ENABLED in the environment. >> > > Correct. GO_EXTLINK_ENABLED is unset. Setting it to '1' (for the > bootstrap-go) did not help. > > Setting it to '1' for Go 1.8.x results in different errors: > > First the following: > >> ##### Building go_bootstrap for host, linux/amd64. >> ... >> cmd/go >> runtime (darwin/386) >> > > (it's being built on linux host... but is it misdetecting it as Darwin?) > > Later it fails at: > >> ##### Building packages and commands for darwin/386. >> ... >> cmd/vet >> # cmd/pack >> warning: unable to find runtime/cgo.a >> /home/tteras/aports/community/go/src/go/pkg/tool/linux_amd64/link: >> running gcc failed: exit status 1 >> /usr/lib/gcc/x86_64-alpine-linux-musl/6.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: >> >> unrecognized option '-pagezero_size' >> /usr/lib/gcc/x86_64-alpine-linux-musl/6.3.0/../../../../x86_64-alpine-linux-musl/bin/ld: >> >> use the --help option for usage information >> collect2: error: ld returned 1 exit status >> > > Seems to be passing darwin options to host's GNU ld. > Ok, the full build is also doing cross-compilers. And seems things go wrong when building the first cross-compiler.
I added GOHOSTARCH, and removed the --no-clean flag from make.bash calls. And now it's progressing further. I wonder how to avoid recompiling the host tools all the time... -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.