diff options
author | Treehugger Robot <treehugger-gerrit@google.com> | 2018-03-10 04:29:26 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2018-03-10 04:29:26 +0000 |
commit | bfce631960ae2ab381180beb55cf34ab3b445aaa (patch) | |
tree | 4670f7e7159390f13b0ce1f5bbd0eb014facff4a /sigchainlib | |
parent | e1734a9961b755d9b167c31deae5a2e36f92df2a (diff) | |
parent | edef4ba155f11d2a8544db9e560698a033831934 (diff) |
Merge "Do not use sa_restorer if not defined"
Diffstat (limited to 'sigchainlib')
-rw-r--r-- | sigchainlib/sigchain.cc | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/sigchainlib/sigchain.cc b/sigchainlib/sigchain.cc index 61346b1487..3127c5cfbd 100644 --- a/sigchainlib/sigchain.cc +++ b/sigchainlib/sigchain.cc @@ -80,7 +80,7 @@ static void log(const char* format, ...) { #define fatal(...) log(__VA_ARGS__); abort() -#if defined(__BIONIC__) && !defined(__LP64__) +#if defined(__BIONIC__) && !defined(__LP64__) && !defined(__mips__) static int sigismember(const sigset64_t* sigset, int signum) { return sigismember64(sigset, signum); } @@ -223,7 +223,9 @@ class SignalChain { SigactionType result; result.sa_flags = action_.sa_flags; result.sa_handler = action_.sa_handler; +#if defined(SA_RESTORER) result.sa_restorer = action_.sa_restorer; +#endif memcpy(&result.sa_mask, &action_.sa_mask, std::min(sizeof(action_.sa_mask), sizeof(result.sa_mask))); return result; @@ -237,7 +239,9 @@ class SignalChain { } else { action_.sa_flags = new_action->sa_flags; action_.sa_handler = new_action->sa_handler; +#if defined(SA_RESTORER) action_.sa_restorer = new_action->sa_restorer; +#endif sigemptyset(&action_.sa_mask); memcpy(&action_.sa_mask, &new_action->sa_mask, std::min(sizeof(action_.sa_mask), sizeof(new_action->sa_mask))); |