diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2024-12-27 22:54:13 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2024-12-27 22:54:13 +0100 |
| commit | fcd46e2cdce9e8e9435ee7a71e23abfa307ef0db (patch) | |
| tree | 62db7ed1905830e36b737f27749cdef14bc9b524 | |
| parent | f36f9d290d7f6632851612aeb14d27226b1a777a (diff) | |
| download | box64-fcd46e2cdce9e8e9435ee7a71e23abfa307ef0db.tar.gz box64-fcd46e2cdce9e8e9435ee7a71e23abfa307ef0db.zip | |
[ANDROID] Another attempt at fixing the build
| -rw-r--r-- | src/include/signals.h | 22 | ||||
| -rw-r--r-- | src/libtools/signals.c | 8 |
2 files changed, 11 insertions, 19 deletions
diff --git a/src/include/signals.h b/src/include/signals.h index 1a2a9b39..2fae6c60 100644 --- a/src/include/signals.h +++ b/src/include/signals.h @@ -4,37 +4,37 @@ typedef void (*sighandler_t)(int); +#ifdef ANDROID typedef struct x64_sigaction_s { + int sa_flags; union { sighandler_t _sa_handler; void (*_sa_sigaction)(int, siginfo_t *, void *); } _u; sigset_t sa_mask; - uint32_t sa_flags; void (*sa_restorer)(void); } x64_sigaction_t; - -typedef struct x64_sigaction_restorer_s { +#else +typedef struct x64_sigaction_s { union { sighandler_t _sa_handler; void (*_sa_sigaction)(int, siginfo_t *, void *); } _u; + sigset_t sa_mask; uint32_t sa_flags; void (*sa_restorer)(void); - sigset_t sa_mask; -} x64_sigaction_restorer_t; +} x64_sigaction_t; +#endif -#ifdef ANDROID -typedef struct android_sigaction_s { - int sa_flags; +typedef struct x64_sigaction_restorer_s { union { sighandler_t _sa_handler; void (*_sa_sigaction)(int, siginfo_t *, void *); } _u; - sigset_t sa_mask; + uint32_t sa_flags; void (*sa_restorer)(void); -} android_sigaction_t; -#endif + sigset_t sa_mask; +} x64_sigaction_restorer_t; #ifdef BOX32 typedef struct __attribute__((packed)) i386_sigaction_s { diff --git a/src/libtools/signals.c b/src/libtools/signals.c index 127f187e..4abf8a4f 100644 --- a/src/libtools/signals.c +++ b/src/libtools/signals.c @@ -2064,11 +2064,7 @@ EXPORT sighandler_t my_signal(x64emu_t* emu, int signum, sighandler_t handler) EXPORT sighandler_t my___sysv_signal(x64emu_t* emu, int signum, sighandler_t handler) __attribute__((alias("my_signal"))); EXPORT sighandler_t my_sysv_signal(x64emu_t* emu, int signum, sighandler_t handler) __attribute__((alias("my_signal"))); // not completely exact -#ifdef ANDROID -int EXPORT my_sigaction(x64emu_t* emu, int signum, const android_sigaction_t *act, android_sigaction_t *oldact) -#else int EXPORT my_sigaction(x64emu_t* emu, int signum, const x64_sigaction_t *act, x64_sigaction_t *oldact) -#endif { printf_log(LOG_DEBUG, "Sigaction(signum=%d, act=%p(f=%p, flags=0x%x), old=%p)\n", signum, act, act?act->_u._sa_handler:NULL, act?act->sa_flags:0, oldact); if(signum<0 || signum>MAX_SIGNAL) { @@ -2122,11 +2118,7 @@ int EXPORT my_sigaction(x64emu_t* emu, int signum, const x64_sigaction_t *act, x } return ret; } -#ifdef ANDROID -int EXPORT my___sigaction(x64emu_t* emu, int signum, const android_sigaction_t *act, android_sigaction_t *oldact) -#else int EXPORT my___sigaction(x64emu_t* emu, int signum, const x64_sigaction_t *act, x64_sigaction_t *oldact) -#endif __attribute__((alias("my_sigaction"))); int EXPORT my_syscall_rt_sigaction(x64emu_t* emu, int signum, const x64_sigaction_restorer_t *act, x64_sigaction_restorer_t *oldact, int sigsetsize) |