On Thu, Nov 16, 2023 at 12:52:09AM +0000, Edgecombe, Rick P wrote:
On Wed, 2023-11-15 at 18:43 +0000, Mark Brown wrote:
end marker token (0) needs it i guess.
x86 doesn't currently have end markers. Actually, that's a point - should we add a flag for specifying the use of end markers here? There's code in my map_shadow_stack() implementation for arm64 which does that.
Hmm, I guess there isn't a way to pass a flag for the initial exec stack? So probably it should just mirror that behavior. Unless you think a lot of people would like to skip the default behavior.
I don't really know that anyone would particularly want to use a flag on arm64, I was more thinking for the benefit of x86 where any termination record would be a change. It's certainly easier to not have flags so I'm more than happy to leave things as they are, there's nothing stopping further extensions of the ABI if we decide we want them later.
And of course we don't have a marker on x86 (TODO with alt shadow stacks). We could still check for size < 8 if we want it to be a universal thing.
It does seem simpler, size < 8 is all edge case.