On Sat, Sep 23, 2023 at 11:04:57AM -0700, Linus Torvalds wrote: > On Fri, 22 Sept 2023 at 20:49, Kees Cook <keesc...@chromium.org> wrote: > > > > 2) __cplusplus is relatively common in UAPI headers already: > > $ git grep __cplusplus -- include/uapi | wc -l > > 58 > > Look a bit closer. > > Most of those - by far - is for the usual > > #if defined(__cplusplus) > extern "C" { > #endif > > pattern. IOW, it's explicitly not different code, but telling the C++ > compiler that "this is C code". > > So this new #ifdef is an ugly new pattern of "do totally different > things for C++". > > Apparently required, but very ugly nonetheless.
Most of those in uapi/ are likely unnecessary: extern "C" means "don't mangle", but kernel doesn't export functions to userspace except vDSO so there is nothing to mangle in the first place.