From 370eeb28e94ccfcff981842bc55a16258fec252c Mon Sep 17 00:00:00 2001 From: Ash Logan Date: Tue, 9 Apr 2019 16:44:42 +1000 Subject: [PATCH] wutstdc++: Move __gxx_personality to dedicated Assembly file I was getting issues with __volatile__ for unknown reason, so moving this to a dedicated file sidesteps the issue entirely and passes this straight to GAS. --- libraries/wutstdc++/wut_stdcpp.cpp | 11 ----------- libraries/wutstdc++/wut_stdcpp_personality.s | 10 ++++++++++ 2 files changed, 10 insertions(+), 11 deletions(-) create mode 100644 libraries/wutstdc++/wut_stdcpp_personality.s diff --git a/libraries/wutstdc++/wut_stdcpp.cpp b/libraries/wutstdc++/wut_stdcpp.cpp index 530e950e..f15f6df2 100644 --- a/libraries/wutstdc++/wut_stdcpp.cpp +++ b/libraries/wutstdc++/wut_stdcpp.cpp @@ -1,16 +1,5 @@ #include "wut_gthread.h" -__asm__ __volatile__( - "\t.section\t.text.__wrap___gxx_personality_v0,\"ax\",@progbits\n" - "\t.align\t2\n" - "\t.globl\t__wrap___gxx_personality_v0\n" - "\t.type\t__wrap___gxx_personality_v0, @function\n" - "__wrap___gxx_personality_v0:\n" - "\t.cfi_startproc\n" - "\tb\t__real___gxx_personality_v0\n" - "\t.cfi_endproc" -); - extern "C" void __init_wut_stdcpp() { diff --git a/libraries/wutstdc++/wut_stdcpp_personality.s b/libraries/wutstdc++/wut_stdcpp_personality.s new file mode 100644 index 00000000..13b9e7f3 --- /dev/null +++ b/libraries/wutstdc++/wut_stdcpp_personality.s @@ -0,0 +1,10 @@ +.section .text.__wrap___gxx_personality_v0,"ax",@progbits +.align 2 + +.globl __wrap___gxx_personality_v0 +.type __wrap___gxx_personality_v0, @function + +__wrap___gxx_personality_v0: + .cfi_startproc + b __real___gxx_personality_v0 + .cfi_endproc