[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <b25c3fa70802081645p6aad3883s6d1b5e169b3cd091@mail.gmail.com>
Date: Sat, 9 Feb 2008 09:45:26 +0900
From: "Joonwoo Park" <joonwpark81@...il.com>
To: "Jan Engelhardt" <jengelh@...putergmbh.de>
Cc: "rohit h" <hrohit85@...il.com>, linux-kernel@...r.kernel.org
Subject: Re: C++ in linux kernel
2008/2/9, Jan Engelhardt <jengelh@...putergmbh.de>:
>
> On Feb 9 2008 00:14, Joonwoo Park wrote:
> >2008/2/8, rohit h <hrohit85@...il.com>:
> >> Hi,
> >> I am a kernel newbie.
> >> I tried to insmod a C++ module containing classes, inheritance.
> >> I am getting 'unresolved symbol' error when I use the 'new' keyword.
> >> What could the problem be?
> >>
> >> What kind of runtime support is needed ( arm linux kernel)? Is a
> >> patch available for it?
> >>
> >Please take a look at click modular router which is using c++ as a
> >linux kernel module.
> >http://www.read.cs.ucla.edu/click/
> >The lib/glue.cc provides custom operator new.
>
> Uh, let's not make the world worse :)
> Just call malloc from C++, and carefully select what C++ features
> you are going to use. The VMware source for example does it right.
>
Yep, also I think that if kmalloc is possible it would better than the
operator new.
Rohit,
Compiling the kernel module with g++ is not a simple work, you may
need big patch for kernel itself.
The c++ has more internal keywords than c.
e.g) new, delete, and ::
The new and delete should be re-spelled with another names.
The '::' is used in inline assembly however in c++ it means global namespace.
In conclusion, I don't recommand c++ for linux kernel without very
special goal like the click project :)
Joonwoo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists