summaryrefslogtreecommitdiffhomepage
path: root/crt
diff options
context:
space:
mode:
authormidipix <writeonce@midipix.org>2015-04-25 10:14:19 -0400
committermidipix <writeonce@midipix.org>2015-04-25 10:14:19 -0400
commit5085e91a323072e923f46bad4199e6abd9d12ae7 (patch)
tree1d007a1140fb6049186e0749a41f615060e834ab /crt
parent0f5685a2ffe65b6c6154f5500a26983852eaf1f3 (diff)
downloadmmglue-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.s8
-rw-r--r--crt/nt64/crti.s8
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__