This is the mail archive of the
libc-alpha@sourceware.org
mailing list for the glibc project.
Re: RFC: Shadow Stack support in glibc
Szabolcs Nagy <szabolcs.nagy@arm.com> writes:
> that's just the first part of the jmp_buf struct,
> what matters is the size of jmp_buf which is
>
> struct __jmp_buf_tag
> {
> /* NOTE: The machine-dependent definitions of `__sigsetjmp'
> assume that a `jmp_buf' begins with a `__jmp_buf' and that
> `__mask_was_saved' follows it. Do not move these members
> or add others before it. */
> __jmp_buf __jmpbuf; /* Calling environment. */
> int __mask_was_saved; /* Saved the signal mask? */
> __sigset_t __saved_mask; /* Saved signal mask. */
> };
>
> typedef struct __jmp_buf_tag jmp_buf[1];
>
> and only the first few bytes of __saved_mask is used on linux,
> there is lot of free space there, it's just not setup for
> target specific tinkering currently.
Yes, please investigate if you can make this work by stealing some
bits. setjmp/longjmp isn't performance-critical, and if we can avoid
the ABI bump, I'd appreciate that very much.
Thanks,
Florian