This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch bfd]: Fix generation of .tls directory entry


On 21/12/2010 11:03, Kai Tietz wrote:
> 2010/12/21 Kai Tietz <ktietz70@googlemail.com>:

>> I found the issue.

  Thanks for persisting.

>> The cause for this is that bfd searches for
>> '__tls_used', which is the underscored version of '_tls_used'
>> variable. Caused by the fact that x64 windows doesn't prefix symbols
>> by underscore, the symbol wasn't found, as it remains '_tls_used'.
>>
>> So we have two chances here to solve this: a) Change for windows x64
>> the symbol to '__tls_used', or b) search in bfd for x64 windows for
>> '_tls_used' instead of '_tls_used'.

  We should do whatever MSVC does when targeting 64-bit windows, shouldn't we?

> This patch should fix this underscoring issue (should affect wince arm too).

  This is clearly a much better solution! :)

>         * peXXigen.c (_bfd_XXi_final_link_postscript): Use
>         TARGET_UNDERSCORE to determine "_tls_used" name.
>         (TARGET_UNDERSCORE): Define to default zero, if not present.
> 
>         * ld-pe/pe.exp: Add TLS directory test.
>         * ld-pe/tlssec.s: New.
>         * ld-pe/tlssec64.d: New.
>         * ld-pe/tlssec32.d: New.
> 
> Tested for x86_64-w64-mingw32, i686-pc-mingw32, and i686-pc-cygwin. Ok
> for apply?

  OK with one change: please move the TARGET_UNDERSCORE default definition up
to the top of the file, underneath the header includes, where there are
already some other macro definitions getting adjusted.  (I think it's cleaner
not to have supposedly global symbols suddenly entering scope half way through
a file...)

  Also, please do verify that the MS 64-bit compiler does the same thing.  (It
seems very highly likely that it does, which is why I'm OK for the patch to go
in first and you to adjust it afterwards if necessary.)

    cheers,
      DaveK


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]