diff options
-rw-r--r-- | ldso/include/dl-syscall.h | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/ldso/include/dl-syscall.h b/ldso/include/dl-syscall.h index 675b93ae8..e556f7b56 100644 --- a/ldso/include/dl-syscall.h +++ b/ldso/include/dl-syscall.h @@ -52,7 +52,15 @@ extern int _dl_errno; dynamic linking at all, so we cannot return any error codes. We just punt if there is an error. */ #define __NR__dl_exit __NR_exit -static __always_inline _syscall1(void, _dl_exit, int, status) +static __always_inline attribute_noreturn __cold void _dl_exit(int status) +{ + INLINE_SYSCALL(_dl_exit, 1, status); +#if defined __GNUC__ + __builtin_unreachable(); /* shut up warning: 'noreturn' function does return*/ +#else + while (1); +#endif +} #define __NR__dl_close __NR_close static __always_inline _syscall1(int, _dl_close, int, fd) |