From: Konstantin Demin rockdrilla@gmail.com
these changes improve building Wine with LTO.
Signed-off-by: Konstantin Demin rockdrilla@gmail.com --- dlls/ntdll/unix/loader.c | 8 ++++---- dlls/ntdll/unix/signal_arm.c | 2 +- dlls/ntdll/unix/signal_arm64.c | 4 ++-- dlls/ntdll/unix/signal_i386.c | 2 +- dlls/ntdll/unix/signal_x86_64.c | 2 +- dlls/ntdll/unix/unix_private.h | 2 +- 6 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/dlls/ntdll/unix/loader.c b/dlls/ntdll/unix/loader.c index 14f7a551368..4a6287297a0 100644 --- a/dlls/ntdll/unix/loader.c +++ b/dlls/ntdll/unix/loader.c @@ -652,7 +652,7 @@ BOOLEAN KeAddSystemServiceTable( ULONG_PTR *funcs, ULONG_PTR *counters, ULONG li return TRUE; }
-void trace_syscall( UINT id, ULONG_PTR *args, ULONG len ) +void __attribute__((used)) trace_syscall( UINT id, ULONG_PTR *args, ULONG len ) { UINT idx = (id >> 12) & 3, num = id & 0xfff; const char **names = syscall_names[idx]; @@ -671,7 +671,7 @@ void trace_syscall( UINT id, ULONG_PTR *args, ULONG len ) TRACE_(syscall)( ")\n" ); }
-void trace_sysret( UINT id, ULONG_PTR retval ) +void __attribute__((used)) trace_sysret( UINT id, ULONG_PTR retval ) { UINT idx = (id >> 12) & 3, num = id & 0xfff; const char **names = syscall_names[idx]; @@ -682,7 +682,7 @@ void trace_sysret( UINT id, ULONG_PTR retval ) TRACE_(syscall)( "\1SysRet %04x() retval=%08lx\n", id, retval ); }
-void trace_usercall( UINT id, ULONG_PTR *args, ULONG len ) +void __attribute__((used)) trace_usercall( UINT id, ULONG_PTR *args, ULONG len ) { if (usercall_names) TRACE_(syscall)("\1UserCall %s(%p,%u)\n", usercall_names[id], args, len ); @@ -690,7 +690,7 @@ void trace_usercall( UINT id, ULONG_PTR *args, ULONG len ) TRACE_(syscall)("\1UserCall %04x(%p,%u)\n", id, args, len ); }
-void trace_userret( void *ret_ptr, ULONG len, NTSTATUS status, UINT id ) +void __attribute__((used)) trace_userret( void *ret_ptr, ULONG len, NTSTATUS status, UINT id ) { if (usercall_names) TRACE_(syscall)("\1UserRet %s(%p,%u) retval=%08x\n", usercall_names[id], ret_ptr, len, status ); diff --git a/dlls/ntdll/unix/signal_arm.c b/dlls/ntdll/unix/signal_arm.c index e429750925c..184131e88bb 100644 --- a/dlls/ntdll/unix/signal_arm.c +++ b/dlls/ntdll/unix/signal_arm.c @@ -1120,7 +1120,7 @@ void signal_init_process(void) /*********************************************************************** * init_syscall_frame */ -void init_syscall_frame( LPTHREAD_START_ROUTINE entry, void *arg, BOOL suspend, TEB *teb ) +void __attribute__((used)) init_syscall_frame( LPTHREAD_START_ROUTINE entry, void *arg, BOOL suspend, TEB *teb ) { struct syscall_frame *frame = ((struct ntdll_thread_data *)&teb->GdiTebBatch)->syscall_frame; CONTEXT *ctx, context = { CONTEXT_ALL }; diff --git a/dlls/ntdll/unix/signal_arm64.c b/dlls/ntdll/unix/signal_arm64.c index f5bd47d597a..5f2f9a52483 100644 --- a/dlls/ntdll/unix/signal_arm64.c +++ b/dlls/ntdll/unix/signal_arm64.c @@ -1438,7 +1438,7 @@ void signal_init_process(void) /*********************************************************************** * syscall_dispatcher_return_slowpath */ -void syscall_dispatcher_return_slowpath(void) +void __attribute__((used)) syscall_dispatcher_return_slowpath(void) { raise( SIGUSR2 ); } @@ -1446,7 +1446,7 @@ void syscall_dispatcher_return_slowpath(void) /*********************************************************************** * init_syscall_frame */ -void init_syscall_frame( LPTHREAD_START_ROUTINE entry, void *arg, BOOL suspend, TEB *teb ) +void __attribute__((used)) init_syscall_frame( LPTHREAD_START_ROUTINE entry, void *arg, BOOL suspend, TEB *teb ) { struct syscall_frame *frame = ((struct ntdll_thread_data *)&teb->GdiTebBatch)->syscall_frame; CONTEXT *ctx, context = { CONTEXT_ALL }; diff --git a/dlls/ntdll/unix/signal_i386.c b/dlls/ntdll/unix/signal_i386.c index db72829bd1f..7f1fdfc7466 100644 --- a/dlls/ntdll/unix/signal_i386.c +++ b/dlls/ntdll/unix/signal_i386.c @@ -2503,7 +2503,7 @@ void signal_init_process(void) /*********************************************************************** * init_syscall_frame */ -void init_syscall_frame( LPTHREAD_START_ROUTINE entry, void *arg, BOOL suspend, TEB *teb ) +void __attribute__((used)) init_syscall_frame( LPTHREAD_START_ROUTINE entry, void *arg, BOOL suspend, TEB *teb ) { struct x86_thread_data *thread_data = (struct x86_thread_data *)&teb->GdiTebBatch; struct syscall_frame *frame = ((struct ntdll_thread_data *)&teb->GdiTebBatch)->syscall_frame; diff --git a/dlls/ntdll/unix/signal_x86_64.c b/dlls/ntdll/unix/signal_x86_64.c index b64d9ac648c..9991754490a 100644 --- a/dlls/ntdll/unix/signal_x86_64.c +++ b/dlls/ntdll/unix/signal_x86_64.c @@ -2710,7 +2710,7 @@ void signal_init_process(void) /*********************************************************************** * init_syscall_frame */ -void init_syscall_frame( LPTHREAD_START_ROUTINE entry, void *arg, BOOL suspend, TEB *teb ) +void __attribute__((used)) init_syscall_frame( LPTHREAD_START_ROUTINE entry, void *arg, BOOL suspend, TEB *teb ) { struct amd64_thread_data *thread_data = (struct amd64_thread_data *)&teb->GdiTebBatch; struct syscall_frame *frame = ((struct ntdll_thread_data *)&teb->GdiTebBatch)->syscall_frame; diff --git a/dlls/ntdll/unix/unix_private.h b/dlls/ntdll/unix/unix_private.h index 974766b97a7..aa1b740ca33 100644 --- a/dlls/ntdll/unix/unix_private.h +++ b/dlls/ntdll/unix/unix_private.h @@ -264,7 +264,7 @@ extern void set_process_instrumentation_callback( void *callback ); extern void *get_cpu_area( USHORT machine ); extern void set_thread_id( TEB *teb, DWORD pid, DWORD tid ); extern NTSTATUS init_thread_stack( TEB *teb, ULONG_PTR limit, SIZE_T reserve_size, SIZE_T commit_size ); -extern void DECLSPEC_NORETURN abort_thread( int status ); +extern void DECLSPEC_NORETURN __attribute__((used)) abort_thread( int status ); extern void DECLSPEC_NORETURN abort_process( int status ); extern void DECLSPEC_NORETURN exit_process( int status ); extern void wait_suspend( CONTEXT *context );