Bug 191051 - include/uapi/linux/keyctl.h header uses C++ reserved keyword
Summary: include/uapi/linux/keyctl.h header uses C++ reserved keyword
Status: NEW
Alias: None
Product: Other
Classification: Unclassified
Component: Other (show other bugs)
Hardware: All Linux
: P1 normal
Assignee: other_other
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-12-24 07:42 UTC by Keno Fischer
Modified: 2021-10-15 10:51 UTC (History)
5 users (show)

See Also:
Kernel Version: 4.8
Subsystem:
Regression: No
Bisected commit-id:


Attachments

Description Keno Fischer 2016-12-24 07:42:03 UTC
The `keyctl_dh_params` in this file uses `private`, which is a keyword, in C++. As a result, this header cannot be included from C++, which is a shame.
Comment 1 Randy Dunlap 2018-04-06 18:59:15 UTC
Patch posted on 2018-APR-06. We'll see how that goes.
Comment 2 cqwrteur 2021-10-15 10:39:14 UTC
Linus Torvalds is retarded for this.

I could understand why C++ is not a good choice for kernel. but why screw user space C++ programs?

Fuck linus torvalds.
Comment 3 cqwrteur 2021-10-15 10:42:22 UTC
Fuck Linus Torvalds. Hope anyone could write a new kernel that replaces this stupidity in the future.

https://youtu.be/Ahe3qjPe5FU

We know Linus Torvalds hates C++. However today I am going to do some politically incorrect things, which is to write the Linux kernel module with my C++ 20 concepts fast_io library.
fast_io supports freestanding C++. It does not need heap,  it does not need exception handling. It does not use virtual functions or anything that needs a runtime.
So yes, it works in the kernel. You can even print out floating point with it which is something the Linux kernel does not support. It works for Windows NT kernel too. You can check another example if you want. (Probably i am going to make a video about NT kernel driver with fast_io)

I do not want to use C++ to write OS kernel at all tbh due to exception handling being a retarded nonsense. However, Linus Torvalds deliberately screws UAPIs for C++ in the USER space which is completely unacceptable. https://lwn.net/Articles/764664/
This problem still exists even for today's Linux Kernel 5.14 header files which will randomly screw up the C++ compiler (because they deliberately use reserved keywords like "class", "private" to screw up the C++ compiler). Creating our own kernel header files to support UAPIs for C++ is not possible either since it has licensing issues which are highly likely to be illegal.

The advantage is not just that you can print out floating points, but you can put everything in the user space to debug it and then let fast_io deals with it transparently in the kernel. This saves a lot of debugging time. It does not use format string at all which means it is immune to format string vuln.
Even Linux kernel has a lot of format string bugs like this: https://nvd.nist.gov/vuln/detail/CVE-...

https://github.com/tearosccebe/fast_i...

The Linux kernel specific driver implementation
https://github.com/tearosccebe/fast_i...

floating-point implementation
My own hex float implementation
Dragonbox

Sorry, the microphone is broken after 11 minutes.

Join fast_io discord https://discord.gg/vMKhB9Q if you have questions


Linus Torvalds:
http://harmful.cat-v.org/software/c++...

In general, I'd say that anybody who designs his kernel modules for C++ is 
either 
 (a) looking for problems
 (b) a C++ bigot that can't see what he is writing is really just C anyway
 (c) was given an assignment in CS class to do so.

LOL. So I must be the "looking for problems" case right? I wasn't given an assignment in CS class, nor write C code (since C does not support concepts)
Comment 4 cqwrteur 2021-10-15 10:43:41 UTC
(In reply to cqwrteur from comment #2)
> Linus Torvalds is retarded for this.
> 
> I could understand why C++ is not a good choice for kernel. but why screw
> user space C++ programs?
> 
> Fuck linus torvalds.

Linus Torvalds is self-contradicting. "We do not break userspace." But break user space programs for this.

DEATH TO LINUS TORVALDS.

I am sure linus torvalds is going to die before me.
Comment 5 cqwrteur 2021-10-15 10:49:08 UTC
Just fuck him.

His own words: Respect needs be learnt.

He does not deserve my respect. That is why I am still using windows.
Comment 6 cqwrteur 2021-10-15 10:51:20 UTC
Just fuck him.

His own words: Respect needs to be earned.

He does not deserve my respect. That is why I am still using windows.


Just fuck him.

FUCK LINUS TORVALDS.

Note You need to log in before you can comment on or make changes to this bug.