H.J. Lu
e27f41ba2b
Add <bits/indirect-return.h>
...
Add <bits/indirect-return.h> and include it in <ucontext.h>.
__INDIRECT_RETURN defined in <bits/indirect-return.h> indicates if
swapcontext requires special compiler treatment. The default
__INDIRECT_RETURN is empty.
On x86, when shadow stack is enabled, __INDIRECT_RETURN is defined
with indirect_return attribute, which has been added to GCC 9, to
indicate that swapcontext returns via indirect branch. Otherwise
__INDIRECT_RETURN is defined with returns_twice attribute.
When shadow stack is enabled, remove always_inline attribute from
prepare_test_buffer in string/tst-xbzero-opt.c to avoid:
tst-xbzero-opt.c: In function ‘prepare_test_buffer’:
tst-xbzero-opt.c:105:1: error: function ‘prepare_test_buffer’ can never be inlined because it uses setjmp
prepare_test_buffer (unsigned char *buf)
when indirect_return attribute isn't available.
Reviewed-by: Carlos O'Donell <carlos@redhat.com>
* bits/indirect-return.h: New file.
* misc/sys/cdefs.h (__glibc_has_attribute): New.
* sysdeps/x86/bits/indirect-return.h: Likewise.
* stdlib/Makefile (headers): Add bits/indirect-return.h.
* stdlib/ucontext.h: Include <bits/indirect-return.h>.
(swapcontext): Add __INDIRECT_RETURN.
* string/tst-xbzero-opt.c (ALWAYS_INLINE): New.
(prepare_test_buffer): Use it.
2018-07-24 07:55:47 -07:00
..
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-02-15 21:00:02 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2017-03-23 11:32:29 -03:00
2018-01-01 00:32:25 +00:00
2017-11-14 17:50:36 +00:00
2018-06-20 22:18:22 +00:00
2018-06-20 22:18:22 +00:00
2017-03-23 11:32:29 -03:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-02-06 21:55:08 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-07-16 17:51:52 +01:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-07-16 17:51:52 +01:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-07-16 17:51:52 +01:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-02-26 18:38:01 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-06-29 22:39:06 -04:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-07-16 17:51:52 +01:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-02-06 21:55:08 +00:00
2018-02-06 21:55:08 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-05-23 04:00:11 -07:00
2018-01-01 00:32:25 +00:00
2018-03-23 16:19:45 +01:00
2018-05-23 09:50:57 +02:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-07-16 17:51:52 +01:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2018-07-16 17:51:52 +01:00
2018-02-06 21:43:20 +00:00
2018-06-14 14:20:00 +00:00
2018-01-01 00:32:25 +00:00
2018-06-20 22:19:50 +00:00
2017-03-23 11:32:29 -03:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00
2017-03-23 11:32:29 -03:00
2017-03-23 11:32:29 -03:00
2018-01-01 00:32:25 +00:00
2017-03-23 11:32:29 -03:00
2017-03-23 11:32:29 -03:00
2017-03-23 11:32:29 -03:00
2017-03-23 11:32:29 -03:00
2017-03-23 11:32:29 -03:00
2018-07-24 07:55:47 -07:00
2016-12-16 16:21:54 -05:00
2018-01-01 00:32:25 +00:00
2018-01-01 00:32:25 +00:00