From e19db605129ea755b325e4396f58141dbdfd23a0 Mon Sep 17 00:00:00 2001 From: Mike Pall Date: Mon, 12 Sep 2022 11:16:20 +0200 Subject: [PATCH] Fix QNX build. Note: this is not an officially supported target. Contributed by Wen Yang. --- src/lj_arch.h | 3 +++ src/lj_prng.c | 2 +- src/lj_profile.c | 4 ++++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/lj_arch.h b/src/lj_arch.h index 882c99cb..5fb798d9 100644 --- a/src/lj_arch.h +++ b/src/lj_arch.h @@ -93,6 +93,9 @@ #elif defined(__CYGWIN__) #define LJ_TARGET_CYGWIN 1 #define LUAJIT_OS LUAJIT_OS_POSIX +#elif defined(__QNX__) +#define LJ_TARGET_QNX 1 +#define LUAJIT_OS LUAJIT_OS_POSIX #else #define LUAJIT_OS LUAJIT_OS_OTHER #endif diff --git a/src/lj_prng.c b/src/lj_prng.c index 9e57505e..01935e57 100644 --- a/src/lj_prng.c +++ b/src/lj_prng.c @@ -125,7 +125,7 @@ static PRGR libfunc_rgr; #if __MAC_OS_X_VERSION_MIN_REQUIRED >= 101200 #define LJ_TARGET_HAS_GETENTROPY 1 #endif -#elif (LJ_TARGET_BSD && !defined(__NetBSD__)) || LJ_TARGET_SOLARIS || LJ_TARGET_CYGWIN +#elif (LJ_TARGET_BSD && !defined(__NetBSD__)) || LJ_TARGET_SOLARIS || LJ_TARGET_CYGWIN || LJ_TARGET_QNX #define LJ_TARGET_HAS_GETENTROPY 1 #endif diff --git a/src/lj_profile.c b/src/lj_profile.c index f0af91cb..4a13537d 100644 --- a/src/lj_profile.c +++ b/src/lj_profile.c @@ -185,7 +185,11 @@ static void profile_timer_start(ProfileState *ps) tm.it_value.tv_sec = tm.it_interval.tv_sec = interval / 1000; tm.it_value.tv_usec = tm.it_interval.tv_usec = (interval % 1000) * 1000; setitimer(ITIMER_PROF, &tm, NULL); +#if LJ_TARGET_QNX + sa.sa_flags = 0; +#else sa.sa_flags = SA_RESTART; +#endif sa.sa_handler = profile_signal; sigemptyset(&sa.sa_mask); sigaction(SIGPROF, &sa, &ps->oldsa);