From 5085e91a323072e923f46bad4199e6abd9d12ae7 Mon Sep 17 00:00:00 2001 From: midipix Date: Sat, 25 Apr 2015 10:14:19 -0400 Subject: 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. --- crt/nt32/crti.s | 8 ++++---- crt/nt64/crti.s | 8 ++++---- 2 files changed, 8 insertions(+), 8 deletions(-) (limited to 'crt') 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__ -- cgit v1.2.3