Typically, there are development package versions and non-development package versions. I suspect you need to install the development versions. That's common across all Linuxen.
So, for kernels, you'll need the specific kernel version and the specific header files for that kernel installed.
I don't have a real-time kernel (I did realtime flight control programming many decades ago, but we didn't use Unix). Anyway, Ubuntu has meta-packages that point to specific versions of things.
I'm running kernel 5.15.0-73. To see all the related packages,
Code:
$ dpkg -l '*5.15.0-73*'
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-======================================-============-============-========================>
ii linux-headers-5.15.0-73 5.15.0-73.80 all Header files related to >
ii linux-headers-5.15.0-73-generic 5.15.0-73.80 amd64 Linux kernel headers for>
ii linux-image-5.15.0-73-generic 5.15.0-73.80 amd64 Signed kernel image gene>
un linux-image-unsigned-5.15.0-73-generic <none> <none> (no description availabl>
ii linux-modules-5.15.0-73-generic 5.15.0-73.80 amd64 Linux kernel extra modul>
ii linux-modules-extra-5.15.0-73-generic 5.15.0-73.80 amd64 Linux kernel extra modul
Clear as mud?
You'd see the real-time kernel+version and would need to ensure the headers and modules for that same kernel version are installed. If that doesn't install the header file you need, IDK the answer.
If you use re-entrant code and multiple threads, be very careful. Even the best programmers following all the best practices get caught with race conditions and data homogeneity problems. I've had MT, reentrant code get through multiple, formal, code reviews, and run for 6 months, before issues started showing up at client locations.
Bookmarks