mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-20 06:07:59 +00:00
Add missing unwind code to cxx lib
This patch adds support for the '_Unwind_Complete()' and '_Unwind_DeleteException()' functions in the cxx lib. Fixes #275.
This commit is contained in:
parent
5f33704155
commit
e5bf7828d9
@ -15,6 +15,9 @@ INC_DIR += $(shell echo "int main() {return 0;}" |\
|
||||
sed '/^\#include <\.\.\.> search starts here:/,/^End of search list/!d' |\
|
||||
grep "c++")
|
||||
|
||||
# avoid multiple definition of type _mbstate_t
|
||||
CC_CXX_OPT += -D_GLIBCXX_HAVE_MBSTATE_T
|
||||
|
||||
#
|
||||
# Link libstdc++ that comes with the tool chain
|
||||
#
|
||||
|
@ -15,7 +15,7 @@ LIBC_SYMBOLS += malloc free calloc realloc \
|
||||
#
|
||||
# Symbols we wrap (see unwind.cc)
|
||||
#
|
||||
EH_SYMBOLS = _Unwind_Resume
|
||||
EH_SYMBOLS = _Unwind_Resume _Unwind_Complete _Unwind_DeleteException
|
||||
|
||||
#
|
||||
# Additional functions for ARM
|
||||
|
@ -30,6 +30,10 @@ extern "C" {
|
||||
void __cxx__Unwind_Resume(void *exc) {
|
||||
_cxx__Unwind_Resume(exc); }
|
||||
|
||||
void _cxx__Unwind_DeleteException(void *exc) __attribute__((weak));
|
||||
void __cxx__Unwind_DeleteException(void *exc) {
|
||||
_cxx__Unwind_DeleteException(exc); }
|
||||
|
||||
/* Special ARM-EABI personality functions */
|
||||
#ifdef __ARM_EABI__
|
||||
|
||||
@ -41,5 +45,9 @@ extern "C" {
|
||||
int __cxx___aeabi_unwind_cpp_pr1(int state, void *block, void *context) {
|
||||
return _cxx___aeabi_unwind_cpp_pr1(state, block, context); }
|
||||
|
||||
/* Unwind functions found in some binaries */
|
||||
void _cxx__Unwind_Complete(void *exc) __attribute__((weak));
|
||||
void __cxx__Unwind_Complete(void *exc) {
|
||||
_cxx__Unwind_Complete(exc); }
|
||||
#endif
|
||||
}
|
||||
|
@ -54,6 +54,8 @@
|
||||
|
||||
/* x86 */
|
||||
__cxa*;
|
||||
_Unwind_Complete;
|
||||
_Unwind_DeleteException;
|
||||
_Unwind_Resume;
|
||||
__gxx_personality_v0;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user