提交 04501470 创建 作者: Nickolai Zeldovich's avatar Nickolai Zeldovich

slightly less broken exception support

上级 e96497d9
...@@ -51,7 +51,6 @@ OBJS = \ ...@@ -51,7 +51,6 @@ OBJS = \
wqlib.o \ wqlib.o \
script.o \ script.o \
zalloc.o \ zalloc.o \
incbin.o \
gccsup/eh_personality.o \ gccsup/eh_personality.o \
gccsup/eh_catch.o \ gccsup/eh_catch.o \
gccsup/eh_throw.o \ gccsup/eh_throw.o \
...@@ -66,6 +65,7 @@ OBJS = \ ...@@ -66,6 +65,7 @@ OBJS = \
gccsup/fundamental_type_info.o \ gccsup/fundamental_type_info.o \
gccsup/pointer_type_info.o \ gccsup/pointer_type_info.o \
gccsup/pbase_type_info.o \ gccsup/pbase_type_info.o \
incbin.o
OBJS := $(addprefix $(O)/kernel/, $(OBJS)) OBJS := $(addprefix $(O)/kernel/, $(OBJS))
......
...@@ -96,6 +96,18 @@ abort(void) ...@@ -96,6 +96,18 @@ abort(void)
panic("abort"); panic("abort");
} }
static void
cxx_terminate(void)
{
panic("cxx terminate");
}
static void
cxx_unexpected(void)
{
panic("cxx unexpected");
}
void *__dso_handle; void *__dso_handle;
namespace std { namespace std {
...@@ -126,8 +138,8 @@ namespace std { ...@@ -126,8 +138,8 @@ namespace std {
}; };
namespace __cxxabiv1 { namespace __cxxabiv1 {
void (*__terminate_handler)() = abort; void (*__terminate_handler)() = cxx_terminate;
void (*__unexpected_handler)() = abort; void (*__unexpected_handler)() = cxx_unexpected;
}; };
extern "C" void* malloc(size_t); extern "C" void* malloc(size_t);
......
...@@ -19,6 +19,8 @@ SECTIONS ...@@ -19,6 +19,8 @@ SECTIONS
} }
PROVIDE(eprof = .); PROVIDE(eprof = .);
. = ALIGN(0x1000); . = ALIGN(0x1000);
.got : { *(.got) *(.igot) }
.got.plt : { *(.got.plt) *(.igot.plt) }
.data : { .data : {
*(.data .data.* .gnu.linkonce.d.*) *(.data .data.* .gnu.linkonce.d.*)
} }
......
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论