diff --git a/src/main/tools/linux-sandbox-pid1.cc b/src/main/tools/linux-sandbox-pid1.cc index 5c9c53cb9cd2aa..5e7c64a7ac7b34 100644 --- a/src/main/tools/linux-sandbox-pid1.cc +++ b/src/main/tools/linux-sandbox-pid1.cc @@ -49,6 +49,19 @@ #include #endif +#ifndef TEMP_FAILURE_RETRY +// Some C standard libraries like musl do not define this macro, so we'll +// include our own version for compatibility. +#define TEMP_FAILURE_RETRY(exp) \ + ({ \ + decltype(exp) _rc; \ + do { \ + _rc = (exp); \ + } while (_rc == -1 && errno == EINTR); \ + _rc; \ + }) +#endif // TEMP_FAILURE_RETRY + #include "src/main/tools/linux-sandbox-options.h" #include "src/main/tools/linux-sandbox.h" #include "src/main/tools/logging.h"