On Sat, 18 Feb 2023, Barry Scott wrote:
> On 16 Feb 2023, at 18:42, Jeffrey Walton <noloader(a)gmail.com> wrote:
>
> I think some of the kernel devs are the biggest problem. Some of the
> developers feel GCC is the only compiler to support. They rely on
> GCC-isms, and don't care about things like undefined behavior since it
> "works for me using GCC." I've even had some of the devs tell me they
> don't care about the C standard. That was very befuddling to me.
The problem is that LLVM has different undefined behaviour from GCC. That has to be
That might be a problem, but it is not the current problem.
In the case at hand, clang will not compile the kernel code at all.
A slight editing of a header file should cure that particular problem.
understood and coded around. You cannot write an OS or device driver
based on the
C standard's memory model. Linux has its own definition of a memory-model that any
compiler must be able to implement to write a kernel.
volatile would help here.
It limits allowed optimizations.
Also, C does have a limit on how one can
convert between integers and pointers.
The result is supposed to be unsurprising
to one familiar with the architecture.
When things get bad enough,
that is why Odin invented inline assembly.
--
Michael hennebry(a)mail.cs.ndsu.NoDak.edu
"Occasionally irrational explanations are required" -- Luke Roman