summaryrefslogtreecommitdiff
path: root/digital/ucoolib
diff options
context:
space:
mode:
authorNicolas Schodet2012-10-21 18:55:13 +0200
committerNicolas Schodet2012-10-21 18:56:30 +0200
commitfc559b4286630d13f27c7672e5d4dea76eed27e3 (patch)
tree89d6e8a2249dc492bc54754c4b68e8568bf64aae /digital/ucoolib
parentd769d8335c8124058c65eec60fa2c52928f1168f (diff)
digital/ucoolib/ucoolib/arch: define light __cxa_pure_virtual
Diffstat (limited to 'digital/ucoolib')
-rw-r--r--digital/ucoolib/ucoolib/arch/syscalls.newlib.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/digital/ucoolib/ucoolib/arch/syscalls.newlib.c b/digital/ucoolib/ucoolib/arch/syscalls.newlib.c
index 93b21579..ecb29bdd 100644
--- a/digital/ucoolib/ucoolib/arch/syscalls.newlib.c
+++ b/digital/ucoolib/ucoolib/arch/syscalls.newlib.c
@@ -25,3 +25,14 @@
/** This is needed by C++ ABI, this simple definition will do. See:
* http://lists.debian.org/debian-gcc/2003/07/msg00057.html */
void *__dso_handle = (void*) &__dso_handle;
+
+/** This function is called when a pure virtual function is called. This is
+ * needed by linker because when a abstrat class constructor or destructor is
+ * called, object is not complete. Replace the one provided by the toolchain
+ * to avoid including the world. */
+void
+__cxa_pure_virtual (void)
+{
+ while (1)
+ ;
+}