From: William Horvath <william(a)horvath.blog> --- loader/preloader.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/loader/preloader.c b/loader/preloader.c index d0551bae63a..3df0884d611 100644 --- a/loader/preloader.c +++ b/loader/preloader.c @@ -181,6 +181,7 @@ void __bb_init_func(void) { return; } static int thread_data[256]; +__attribute__((used)) struct { /* this is the kernel modify_ldt struct */ @@ -333,7 +334,7 @@ static inline int wld_prctl( int code, long arg ) #elif defined(__x86_64__) -void *thread_data[256]; +void __attribute__((used)) *thread_data[256]; /* * The _start function is the entry and exit point of this program @@ -422,7 +423,7 @@ SYSCALL_NOERR( wld_getegid, 108 /* SYS_getegid */ ); #elif defined(__aarch64__) -void *thread_data[256]; +void __attribute__((used)) *thread_data[256]; /* * The _start function is the entry and exit point of this program @@ -529,7 +530,7 @@ SYSCALL_NOERR( wld_getegid, 177 /* SYS_getegid */ ); #elif defined(__arm__) -void *thread_data[256]; +void __attribute__((used)) *thread_data[256]; /* * The _start function is the entry and exit point of this program @@ -1395,7 +1396,7 @@ static void set_process_name( int argc, char *argv[] ) * Load the binary and then its ELF interpreter. * Note, we assume that the binary is a dynamically linked ELF shared object. */ -void* wld_start( void **stack ) +void* __attribute__((used)) wld_start( void **stack ) { long i, *pargc; char **argv, **p; -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/7119