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.

Reply via email to