On Mon, 19 Jan 2004, Bart Samwel wrote:But we're not talking about the base kernel here. We're not talking
about migrating the kernel to C++, or even modules that are part of the
Linux kernel source. We're talking about *independent modules*. The
kernel exports a module interface, and any binary driver that correctly
hooks into the interface of the running kernel (using the correct
calling conventions of the running kernel) and behaves properly (e.g.,
doesn't do stack unwinds over chunks of kernel functions etc.) can hook
into it and do useful work. If somebody has decided that it would be
worth it for his project to use C++ (without exceptions, rtti and the
whole shebang) then so be it, why should you care? It's just binary code
that hooks into the module interface, using the correct calling
conventions. It doesn't do dirty stuff -- no exceptions, no RTTI,
etcetera. It compiles into plain, module-interface conforming assembler,
that can be compiled with -- you guessed it -- 'as', the AT&T syntax
assembler. Yes, they're taking a risk. Their risk is that C++ can't
import the kernel headers, or that C++ might someday need runtime
support that cannot be ported into the kernel.
Maybe the right solution is writing a module that provides a fast data
path between the kernel and the userspace router.