jrtc27 wrote:

> Reimplemented this on top of #121957
> 
> There is one significant behavioral change introduced for MTE, which we need 
> to confirm is correct. For CHERI, we retained the original size in the symbol 
> size in the ELF (i.e. excluding the tail padding from it), while the existing 
> MTE behavior add the padding size into the symbol size. The version currently 
> the PR uses the CHERI behavior, which seems more semantically correct to me, 
> but I'd like to hear someone who knows MTE comment on it.

I think Morello LLVM deviated from the historic CHERI behaviour for common 
symbols (maybe all symbols?) due to some corner cases where it wasn't ideal. 
For almost all cases it's more helpful to have the padded size, as that's what 
you should give as the input to cheri_setboundsexact (and would want in the 
linker for relocations), and allows you to know that there is in fact padding 
(so you can shout in the linker / loader if it's missing). The only time it's 
less helpful is when you're doing linker set-like things and need the size to 
correspond to the actual data structure. But that's probably a pattern that 
should be discouraged (use a marker end symbol instead) and we can always add 
some magic opt-out attribute/directive/whatever instead if needed.

https://github.com/llvm/llvm-project/pull/203872
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to