Re: kbuild & C++

From: Esben Nielsen
Date: Wed Sep 07 2005 - 05:59:04 EST




On Wed, 7 Sep 2005 Valdis.Kletnieks@xxxxxx wrote:

> On Wed, 07 Sep 2005 11:21:42 +0200, Esben Nielsen said:
>
> > I use a RTOS written in plain C but where you can easily use C++ in kernel
> > space (there is no user-space :-). We use gcc by the way.
>
> This isn't RTOS, in case you haven't noticed. ;)
Well, with Ingo's preempt-RT patch it is becomming a RT-OS, but that is
not the issue here.

>
> > It has been done for Linux as well
> > (http://netlab.ru.is/pronto/pronto_code.shtml). Why can't this kind of
> > stuff be merged into the kernel? Why is there no efford to do so??
>
> Quoting http://netlab.ru.is/exception/LinuxCXX.shtml:
>
> "The code is installed by applying a patch to the Linux kernel and enables the
> full use of C++ using the GNU g++ compiler. Programmers that have used C++ in
^^^^

> Linux kernel modules have primarily been using classes and virtual functions,
> but not global constructors. dynamic type checking and exceptions. Using even
> this small part of C++ requires each programmer to write some supporting
> routines. Using the rest of C++ includes porting the C++ ABI that accompanies
> GNU g++ to the Linux kernel, and to enable global constructors and destructors."
>
> So let's see - no constructors, no type checking, no exceptions, and using
> virtual functions requires the programmer to write the glue code that
> programmers want to use C++ to *avoid* writing. Sounds like "We stripped out
> all the reasons programmers want to use C++ just so we can say we use C++ in
> the kernel".
>
> So, other than wank value, what *actual* advantages are there to using this
> limited subset of C++ in the kernel?
>

If you cared to read the whole page you will notice that they talk about
the _past_. They have as I understand the page, they claim to have _fixed_
the problems.

Esben

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/