Re: generic q on freebsd

Mark Millard via freebsd-arm <[email protected]>
Newsgroups gmane.os.freebsd.devel.arm
Message-ID <[email protected]>

On 2020-Oct-7, at 00:20, Kamal Prasad <[email protected]> wrote:

> Android has a libc++. I think that can be ported into the kernel.
> https://developer.android.com/ndk/guides/cpp-support 

So far as I know, Android has libc++ but not in its kernel.

FreeBSD has libc++, but not in its kernel.

In both contexts, libc++ is from LLVM. In both contexts,
userspace programs do not need libc++ to be in the kernel.
In both contexts, the C++ involved is a "hosted
implementation" instead of being limited to a "Freestanding
implemenation".

See https://en.cppreference.com/w/cpp/freestanding about
freestanding vs. hosted. In part:

QUOTE
In a freestanding implementation execution may happen without an operating system
END QUOTE



> thanks
> -kamal
> 
>> On Oct 7, 2020, at 12:40 PM, Kamal Prasad <[email protected]> wrote:
>> 
>> Thanks. Why is it difficult to port the C++ runtime to the kernel? I mean what is the technological hurdle?
>> 
>> thanks
>> -kamal
>> 
>> 
>> 
>> 
>> 
>> 
>> On Oct 6, 2020, at 10:53 PM, Warner Losh <[email protected]> wrote:
>>> 
>>> On Tue, Oct 6, 2020, 11:03 AM Kamal R. Prasad <[email protected]> wrote:
>>> 
>>>> hello,
>>>> 
>>>> i am curious if it is possible to compile c++ code inside the freebsd
>>>> kernel.
>>>> 
>>> 
>>> 
>>> Possible? Yes, with restrictions. Easy? No.
>>> 
>>> There are a number of restrictions on doing this. There is no C++ runtime
>>> support provided in stock FreeBSD. You have to write your own, or find
>>> someone else that has published theirs. And the code is likely to be
>>> compiler dependent. People have done it and talked or blogged about it.
>>> 
>>> Generally, if you don't use exceptions, templates, RTTI, expressions that
>>> result in the automatic allocation of objects, have large objects (> 1k) on
>>> the stack, etc, it may be possible. I tried it in the 90s and had to write
>>> just a few routines to make simple classes work, but there's a lot of
>>> dragons here and very little C++ code is written these days w/o reference
>>> to the standard libraries, which aren't present in the kernel.
>>> 
>>> Some googling turns up:
>>> https://github.com/adamlsd/libcpp.ko from 6 years ago
>>> https://lists.freebsd.org/pipermail/freebsd-arch/2018-June/019069.html has
>>> some details from 2 years ago about command line args you might need.
>>> 
>>> Many have tried. Few have succeeded. Those that have write all their code
>>> to conform to a subset of the language. Few have had success moving C++
>>> code for other purposes into the kernel, though if it was written using the
>>> proposed (but never ratified) eC++ (embedded subset), then chances are
>>> greater.
>> 

===
Mark Millard
marklmi at yahoo.com
( dsl-only.net went
away in early 2018-Mar)

_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-arm
To unsubscribe, send any mail to "[email protected]"
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.