mirror of
https://github.com/FEX-Emu/FEX.git
synced 2026-10-06 13:00:15 +02:00
Merge pull request #5462 from peppergrayxyz/uc_sigmask
determine sigset_t fieldname to enhance portability (musl)
This commit is contained in:
2 files changed
+27
-1
No files matched your search
@@ -164,3 +164,29 @@ add_custom_target(struct_verifier
|
||||
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
|
||||
USES_TERMINAL
|
||||
COMMAND "ctest" "--output-on-failure" "--timeout" "302" ${TEST_JOB_FLAG} "-R" "Test_verify*")
|
||||
|
||||
include(CheckCSourceCompiles)
|
||||
|
||||
check_c_source_compiles("
|
||||
#include <signal.h>
|
||||
int main(void){
|
||||
sigset_t s;
|
||||
(void)sizeof(s.__val); // glibc
|
||||
return 0;
|
||||
}" SIGSET_HAS___VAL)
|
||||
|
||||
check_c_source_compiles("
|
||||
#include <signal.h>
|
||||
int main(void){
|
||||
sigset_t s;
|
||||
(void)sizeof(s.__bits); // musl
|
||||
return 0;
|
||||
}" SIGSET_HAS___BITS)
|
||||
|
||||
if(SIGSET_HAS___VAL)
|
||||
add_compile_definitions("SIGSET_VAL=__val")
|
||||
elseif(SIGSET_HAS___BITS)
|
||||
add_compile_definitions("SIGSET_VAL=__bits")
|
||||
else()
|
||||
message(FATAL_ERROR "Unknown sigset_t layout!")
|
||||
endif()
|
||||
@@ -652,7 +652,7 @@ void SignalDelegator::HandleGuestSignal(FEX::HLE::ThreadStateObject* ThreadObjec
|
||||
ThreadObject->SignalInfo.DeferredSignalFrames.emplace_back(ThreadStateObject::DeferredSignalState {
|
||||
.Info = SigInfo,
|
||||
.Signal = Signal,
|
||||
.SigMask = _context->uc_sigmask.__val[0],
|
||||
.SigMask = _context->uc_sigmask.SIGSET_VAL[0],
|
||||
});
|
||||
|
||||
uint64_t NewMask = GetNewSigMask(Signal);
|
||||
|
||||
Reference in new issue
Block a user