case R_X86_64_TPOFF64:
       // FIXME: assumes TLS segment comes before DYNAMIC segment


This is not the case:

See in the dump:

00000000000c8d90 <runtime.c128hash>:
  c8d90:       48 8b 0d 29 72 38 00    mov    0x387229(%rip),%rcx        #
44ffc0 <_DYNAMIC+0x200>
  c8d97:       64 48 8b 09             mov    %fs:(%rcx),%rcx
  c8d9b:       48 3b 61 10             cmp    0x10(%rcx),%rsp
  c8d9f:       76 60                   jbe    c8e01 <runtime.c128hash+0x71>

       *static_cast<u64*>(addr) = t->dyn_tabs.lookup(sym)->st_value -
t->tls.size;
       break;
   case R_X86_64_IRELATIVE:


On Wed, Aug 31, 2016 at 4:07 PM, Benoît Canet <[email protected]>
wrote:

> This is what I saw in the code managing the flags.
>
> By anyway I think you are right and shared is an "impasse".
>
> On Wed, Aug 31, 2016 at 4:06 PM, Nadav Har'El <[email protected]> wrote:
>
>>
>> On Wed, Aug 31, 2016 at 4:26 PM, Benoît Canet <
>> [email protected]> wrote:
>>
>>>
>>> Buildmode shared alone crash.
>>>
>>>
>>>
>> the flags are |= between them.
>>>
>>
>> This is not what I see in https://golang.org/src/cmd/go/build.go
>>
>> But it seems these two options indeed have a funny interaction between
>> them - shared enables "dynlink" which gets remembered even when the build
>> mode is switched to PIE.
>>
>>
>>
>

-- 
You received this message because you are subscribed to the Google Groups "OSv 
Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to