Index: sandbox/linux/services/credentials.cc |
diff --git a/sandbox/linux/services/credentials.cc b/sandbox/linux/services/credentials.cc |
index 883e396c381cb8f53bcf5cc9a9c820c43014eef5..475ce3f1b033a999867bf1608eeee6540d1469d4 100644 |
--- a/sandbox/linux/services/credentials.cc |
+++ b/sandbox/linux/services/credentials.cc |
@@ -27,11 +27,15 @@ |
#include "sandbox/linux/services/syscall_wrappers.h" |
#include "sandbox/linux/services/thread_helpers.h" |
#include "sandbox/linux/system_headers/capability.h" |
-#include "sandbox/linux/system_headers/linux_signal.h" |
namespace sandbox { |
namespace { |
+ |
+// Signal ABI for some toolchain is incompatible with Linux's. In particular, |
+// PNaCl toolchain defines SIGCHLD = 20. So, here, directly define Linux's |
+// value. |
+const int kLinuxSIGCHLD = 17; |
bool IsRunningOnValgrind() { return RUNNING_ON_VALGRIND; } |
@@ -92,8 +96,8 @@ |
#endif |
pid = clone(ChrootToSelfFdinfo, stack, |
- CLONE_VM | CLONE_VFORK | CLONE_FS | LINUX_SIGCHLD, nullptr, |
- nullptr, nullptr, nullptr); |
+ CLONE_VM | CLONE_VFORK | CLONE_FS | kLinuxSIGCHLD, |
+ nullptr, nullptr, nullptr, nullptr); |
PCHECK(pid != -1); |
int status = -1; |