On Mon, Sep 6, 2021 at 1:14 PM Jakub Jelinek <jakub@xxxxxxxxxx> wrote: > > the only guaranteed APIs are > those provided by the headers (x86intrin.h/*mmintrin.h etc. on x86, > arm_{neon,sve}.h etc. on arm*, ...) You guys realize we don't use those, do you? And you don't seem to realize that you are actively arguing *AGAINST* what you think you argue for. That "immintrin.h" file, for example, is simply not usable for the kernel. I just checked. Why? Because it ends up doing exactly all those things that MUST NOT be done for the kernel. In file included from /usr/lib/gcc/x86_64-redhat-linux/11/include/xmmintrin.h:34, from /usr/lib/gcc/x86_64-redhat-linux/11/include/immintrin.h:31, from t.c:1: /usr/lib/gcc/x86_64-redhat-linux/11/include/mm_malloc.h:27:10: fatal error: stdlib.h: No such file or directory 27 | #include <stdlib.h> | ^~~~~~~~~~ Oops. And no, it doesn't work trying to include some specific avx2intrin.h file either: /usr/lib/gcc/x86_64-redhat-linux/11/include/avx2intrin.h:25:3: error: #error "Never use <avx2intrin.h> directly; include <immintrin.h> instead." 25 | # error "Never use <avx2intrin.h> directly; include <immintrin.h> instead." | ^~~~~ Very similar things happens if you try to use that <stdint.h> file that somebody mentioned earlier. Guys, you don't understand how limited the kernel header files are - on purpose. You also don't seem to realize how hard it is to separate out the user-land crap that we really cannot use, and must not use. And you think that we're making it harder for compiler people, but that's not at all the case. You really don't want to deal with us saying "you can't do that" when you do something that is Yes, <stdarg.h> has historically worked for us, and it's pretty much the only one. All your arguments about how people need to use the standard headers are basically worthless, because you have never actually tried to use them in a standalone project, have you? So just face it - stdarg.h is special. And it's not clear that there's any reason why the kernel should include the one that comes with the compiler, when the kernel cannot use any of the other header files that come with the compiler anyway. And ALL of your arguments about how we must use compiler header files are COMPLETE GARBAGE, because you didn't even look at them, did you? See? So stop making arguments out of ignorance. Because that's literally what you are doing. You've never tried to make those header files standalone, and you don't have any idea of how nasty it would be if you were forced to. Linus