kern/99979: Get Ready for Kernel Module in C++

Dag-Erling Smørgrav des at
Tue Jul 11 14:57:17 UTC 2006

mag at writes:

> Dag-Erling  [iso-8859-1] Sm  grav wrote:
>> mag at writes:
>>> But "-ffreestanding" doesn't work with C++.
>> While the C++ standard does define hosted and freestanding
>> implementations, its definition is different from (and less useful
>> than) that in the C standard.  For instance, the C++ standard requires
>> the existence of abort(), atexit() and exit() even in a freestanding
>> implementation.
>> Basically, one cannot indiscriminately use the same compiler flags
>> for
>> C and C++, because they are very different languages - far more
>> different than they seem on the surface.  Modern C++ is very poorly
>> suited for low-level code.
> Just as you said, C++ is more complicated than C. However, without
> C++ exception and other advanced features, it hasn't brought much
> complexity to C++ runtime library. Early C++ compiler even translates
> C++ code into C code before real compilation.

Several C++ compilers still do that, but that is irrelevant.  What is
relevant is the size and complexity of the runtime support library.

> For example, I think C++ exception handling is really poorly suited for
> low-level code.

Exception handling is required by the standard, even for freestanding

> Is the "object model" described in FreeBSD Architecture Handbook?
> (


> But the "object model" is still obscure to understand no matter how many
> people all over the world master C++.

The fact that you don't understand it doesn't mean it's bad.

> What's more, can the "object model" function really as OpenDarwin's
> IOKit class model?

Does it need to?

> Now, OpenDarwin has owned a C++-based kernel object model. But why
> cannot FreeBSD?

Look, if you want MacOS X, you know where to find it.

> Well, you can LOOK DOWN UPON me, but I believe you cannot throw doubt on
> FreeBSD's actuality: so weak USB support (kernel crash easier than many
> other OSs that we laughed at and that we are laughing at), so weak PCI
> device support.

Please provide references to the PRs you filed about these issues.

Dag-Erling Smørgrav - des at

More information about the freebsd-hackers mailing list