From a6d272127bb6a2eb09dc182cc39c49e77310ade4 Mon Sep 17 00:00:00 2001 From: Rich Felker Date: Mon, 3 Jun 2013 17:32:42 -0400 Subject: align stack properly for calling global ctors/dtors on x86[_64] failure to do so was causing crashes on x86_64 when ctors used SSE, which was first observed when ctors called variadic functions due to the SSE prologue code inserted into every variadic function. --- crt/x86_64/crti.s | 2 ++ crt/x86_64/crtn.s | 2 ++ 2 files changed, 4 insertions(+) (limited to 'crt/x86_64') diff --git a/crt/x86_64/crti.s b/crt/x86_64/crti.s index 2eb23ed5..4788968b 100644 --- a/crt/x86_64/crti.s +++ b/crt/x86_64/crti.s @@ -1,7 +1,9 @@ .section .init .global _init _init: + push %rax .section .fini .global _fini _fini: + push %rax diff --git a/crt/x86_64/crtn.s b/crt/x86_64/crtn.s index 055451ed..29198b77 100644 --- a/crt/x86_64/crtn.s +++ b/crt/x86_64/crtn.s @@ -1,5 +1,7 @@ .section .init + pop %rax ret .section .fini + pop %rax ret -- cgit v1.2.1