From a9c0fcdfde058e90fe361ca9da24b56fc6db1b50 Mon Sep 17 00:00:00 2001 From: Curle Date: Mon, 9 Nov 2020 18:44:42 +0000 Subject: [PATCH] Adjust the crt0 file to insert a null stack frame before calling the kernel. Provides a solid base for the stack unwinding. --- global/crt0.c | 2 ++ global/crt0.o | Bin 1360 -> 960 bytes global/crt0.old | Bin 0 -> 1360 bytes global/crt0.s | 20 ++++++++++++++++---- 4 files changed, 18 insertions(+), 4 deletions(-) create mode 100644 global/crt0.old diff --git a/global/crt0.c b/global/crt0.c index 5f3ba44..777ec95 100644 --- a/global/crt0.c +++ b/global/crt0.c @@ -6,6 +6,8 @@ extern void _init(); void _start() { _init(); + unsigned long long zero = 0; + __asm__ __volatile__("movq %%rbp, %[input]" : : [input] "m" (zero) : ); int ex = Main(); Exit(ex); } \ No newline at end of file diff --git a/global/crt0.o b/global/crt0.o index af9b40e1fa048808a004c3fbddf009ab9d5896bb..d3aa69a8d35c0092690a10b888f968b74be421ee 100644 GIT binary patch literal 960 zcmb<-^>JfjWMqH=Mg}_u1P><4z;FOb&;cy$z`()4&JgO+`P8HNjev*YffpcQ55u=` zX6JFR5Lh)nf*Grg3=GUbhz&3^uwV#-oF|0E91ftk0ETJ?20k3(!Z^ek;)_cXi%J;c zGxIV_7<>~m^B7z!fGi%U*-Sv16^Q@*hX8RTaW*7zc_eXmByk44;>z5T#3UeHQUswh zV639loJ75n)QS=Yy_Cd~Li`vi%p_Mo$UIQop@R&l wzyT-?3LlU^(cRAp6hpTgq(uYjP?$eKVjzI-enFrZHvJt?g@#~V2m)O{0D56WrvLx| literal 1360 zcmbu9Jxc>Y5QgUxKjT*v1yR8?ih>+kDHeJXVj`%8U>(kQY9NVl*&^B~2tu&Q&#@FN z#D8HUSlHMHbl%*KS%Vn>^tkvzE z%)&lcg%l-wdvlDfG3wlC1 zC&b~7Bwjf32(Qg3_*cProhaUHFWOuni3bm#9r_=1+$Y5QgUxKjT*v1yR8?ih>+kDHeJXVj`%8U>(kQY9NVl*&^B~2tu&Q&#@FN z#D8HUSlHMHbl%*KS%Vn>^tkvzE z%)&lcg%l-wdvlDfG3wlC1 zC&b~7Bwjf32(Qg3_*cProhaUHFWOuni3bm#9r_=1+$