Mercurial > projects > ldc
view druntime/src/compiler/ldc/tls.S @ 1458:e0b2d67cfe7c
Added druntime (this should be removed once it works).
author | Robert Clipsham <robert@octarineparrot.com> |
---|---|
date | Tue, 02 Jun 2009 17:43:06 +0100 |
parents | |
children |
line wrap: on
line source
/** * Contains support code for thread-local storage. * * Copyright: Copyright Digital Mars 2008 - 2009. * License: <a href="http://www.boost.org/LICENSE_1_0.txt>Boost License 1.0</a>. * Authors: Walter Bright * * Copyright Digital Mars 2008 - 2009. * Distributed under the Boost Software License, Version 1.0. * (See accompanying file LICENSE_1_0.txt or copy at * http://www.boost.org/LICENSE_1_0.txt) */ #if linux /* The memory between the addresses of _tlsstart and _tlsend is the storage for * thread-local data in D 2.0. Both of these rely on the default linker script * of: * .tdata : { *(.tdata .tdata.* .gnu.linkonce.td.*) } * .tbss : { *(.tbss .tbss.* .gnu.linkonce.tb.*) *(.tcommon) } * to group the sections in that order. * * Sadly, this does not work because ld orders .tdata after .tdata.*, despite * what the linker script says. */ .file "tls.S" .globl _tlsstart .section .tdata,"awT",@progbits .align 4 .type _tlsstart, @object .size _tlsstart, 4 _tlsstart: .long 3 .globl _tlsend .section .tcommon,"awT",@nobits .align 4 .type _tlsend, @object .size _tlsend, 4 _tlsend: .zero 4 #endif