On Thu, Feb 21, 2013 at 2:35 PM, Kai Tietz <[email protected]> wrote:
> Well,  I am right now playing with your test-case.  I think we should
> approach it differently.

How?

> As by your code the TLS-region contains
> always one element.

"As by your code" - you mean as by the current tlssup.c
implementation? As long as it places something at the start of the TLS
section _tls_start, I don't see a way to avoid keeping that thing
around while keeping the SECREL offsets valid.

> I just noticed that in pe.sc some weird position
> for .tls$AAA  vs .tls$ZZZ is used.

What is weird about them? The only peculiarity I see is that .tls$ZZZ
is already picked up by *(SORT(.tls$*)) (and thus compilers have to
take care to emit only TLS section names that are actually sorted
before .tls$ZZZ), but maybe I'm missing something.

> I am right now on travel, so I will continue to look further into this
> at weekend.

Of course, it would be great if you could come up with a better
approach, but for my part, I'm not unsatisfied with the current
situation. It seems to match what MSVC does (initial values differ
from the ones in my previous asm example):

-----
.tls:00404000 ; Section 4. (virtual address 00004000)
.tls:00404000 ; Virtual size                  : 0000000D (     13.)
.tls:00404000 ; Section size in file          : 00000200 (    512.)
.tls:00404000 ; Offset to raw data for section: 00001600
.tls:00404000 ; Flags C0000040: Data Readable Writable
.tls:00404000 ; Alignment     : default
.tls:00404000 ; =============================================
.tls:00404000
.tls:00404000 ; Segment type: Pure data
.tls:00404000 ; Segment permissions: Read/Write
.tls:00404000 _tls            segment para public 'DATA' use32
.tls:00404000                 assume cs:_tls
.tls:00404000                 ;org 404000h
.tls:00404000 __tls_start     db    0
.tls:00404001                 db    0
.tls:00404002                 db    0
.tls:00404003                 db    0
.tls:00404004 __tlsVar2       db  59h ; Y
.tls:00404005                 db    0
.tls:00404006                 db    0
.tls:00404007                 db    0
.tls:00404008 __tlsVar        db  2Ah ; *
.tls:00404009                 db    0
.tls:0040400A                 db    0
.tls:0040400B                 db    0
.tls:0040400C __tls_end       db    0
-----

David

------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_feb
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to