diff options
author | midipix <writeonce@midipix.org> | 2015-04-25 10:14:19 -0400 |
---|---|---|
committer | midipix <writeonce@midipix.org> | 2015-04-25 10:14:19 -0400 |
commit | 5085e91a323072e923f46bad4199e6abd9d12ae7 (patch) | |
tree | 1d007a1140fb6049186e0749a41f615060e834ab /crt | |
parent | 0f5685a2ffe65b6c6154f5500a26983852eaf1f3 (diff) | |
download | mmglue-5085e91a323072e923f46bad4199e6abd9d12ae7.tar.bz2 mmglue-5085e91a323072e923f46bad4199e6abd9d12ae7.tar.xz |
complete/fix support of ctors/dtors and tls.
+ do not build libc.so with -DSHARED for the midipix targets.
+ provide surrogate init/fini arrays that allow invocation of the
ctors/dtors iteration routines.
+ provide a builtin tls for the first thread.
+ update __copy_tls to match the layout of the simplified struct __tls.
signed-off by Z. Gilboa; see copying.midipix (9cd0746c) for additional information.
Diffstat (limited to 'crt')
-rw-r--r-- | crt/nt32/crti.s | 8 | ||||
-rw-r--r-- | crt/nt64/crti.s | 8 |
2 files changed, 8 insertions, 8 deletions
diff --git a/crt/nt32/crti.s b/crt/nt32/crti.s index 7b1a642..1b484b0 100644 --- a/crt/nt32/crti.s +++ b/crt/nt32/crti.s @@ -5,13 +5,11 @@ __pei386_runtime_relocator: .globl __init __init: - call .init - ret + jmp .init .globl __fini __fini: - call .fini - ret + jmp .fini .section .init xor %eax,%eax @@ -39,3 +37,5 @@ __fini: .long 1 .long 0 .long 0 + .long __CTOR_LIST__ + .long __DTOR_LIST__ diff --git a/crt/nt64/crti.s b/crt/nt64/crti.s index 14fdd90..44ecc61 100644 --- a/crt/nt64/crti.s +++ b/crt/nt64/crti.s @@ -5,13 +5,11 @@ _pei386_runtime_relocator: .globl _init _init: - call .init - ret + jmp .init .globl _fini _fini: - call .fini - ret + jmp .fini .section .init xor %rax,%rax @@ -39,3 +37,5 @@ _fini: .long 1 .long 0 .long 0 + .quad __CTOR_LIST__ + .quad __DTOR_LIST__ |