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]"