Re: -current build failure

From: Konstantin Belousov <kostikbel_at_gmail.com>
Date: Sat, 21 Jul 2012 02:16:04 +0300
On Fri, Jul 20, 2012 at 10:07:05PM +0100, David Chisnall wrote:
> On 20 Jul 2012, at 17:33, Konstantin Belousov wrote:
> 
> > It is not related to dtrace at all, and indeed OFFSETOF_CURTHREAD is 0.
> > This is a bug in clang, we compile our kernel in freestanding environment.
> 
> The copies of the C spec that I have do not differentiate between
> freestanding and hosted environments for the validity of dereferencing
> a pointer value of 0. Doing so is undefined in all cases and any
> standards-compliant compiler is quite at liberty to eat your dog in
> such situations - it is explicitly not guaranteed to read the memory at
> linear address 0 (this is undefined for at least two reasons that I can
> think of from the C spec, and probably more).

Ok, I stand corrected. But the standard does not say what you claim
either. It only specifies that NULL pointer is unequal to any pointer
to object or function (implicitely saying that you can create a C object
or function pointer to which is equal to NULL).

So, lets reformulate it other way: freestanding implementation in clang
has no use, at least for general purpose kernel. Especially ridiculous
is the fact that clang throws it hands for asm inline wanting to get
null address, on the machine with linearly addressable memory.

Received on Fri Jul 20 2012 - 21:16:22 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:40:29 UTC