Hello,
I try to get the same c++ source to compile in user and kernel space. This is
due to the same code. The exceptions do I emulate using a global flag, so I can
use a macro THROW(e) which expands inside kernelspace to
struct XCeption {
bool here;
char* what_str;
};
XCeption.here = true;
XCeption.what_str = e.what();
and in user space to
throw e;
So I can use THROW(std::bad_alloc()). Further more I have rewritten new/delete
so that I can use new(nothrow) for user space - in kernel is ignored. So the
sucess is controled like the old c++ std:
char *p = new(nothrow) char[29];
if(!p) {
// no mem - no fun
}
No I have problems by insmod:
# insmod no_xception_test.o
no_xception_test.o: unresolved symbol __vt_9bad_alloc
no_xception_test.o: unresolved symbol _._9bad_alloc
no_xception_test.o: unresolved symbol __9exception
no_xception_test.o: unresolved symbol __vn__FUiRC9nothrow_t
no_xception_test.o: unresolved symbol nothrow
nothrow seems is declared inside new header to
extern const nothrow_t nothrow;
What about bad_alloc and exception ? A simple
#define nothrow nothrow_t()
doesn't help.
Any help and experience here ?
It's interesting to compile the c++ module and to get the error similar to "can
not find version for compiled for". What's going on here ?. As a result I have
to write a main.c file with init/cleanup_module.
-- [rtl] ---
To unsubscribe:
echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
---
For more information on Real-Time Linux see:
http://www.rtlinux.org/rtlinux/