summaryrefslogtreecommitdiff
path: root/dev-build/bazel/files/bazel-3.7.2-musl-temp-failure-retry.patch
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2024-01-17 20:06:58 +0000
committerV3n3RiX <venerix@koprulu.sector>2024-01-17 20:06:58 +0000
commit08c5e4df7a4b66ba8dbb827ca2e3a973d4f19ab0 (patch)
tree347af25df153363454776e1fe95fc4e8100a7e7d /dev-build/bazel/files/bazel-3.7.2-musl-temp-failure-retry.patch
parentfc6e577018dec28e18904f9ad5c1417976e3c728 (diff)
gentoo auto-resync : 17:01:2024 - 20:06:58
Diffstat (limited to 'dev-build/bazel/files/bazel-3.7.2-musl-temp-failure-retry.patch')
-rw-r--r--dev-build/bazel/files/bazel-3.7.2-musl-temp-failure-retry.patch34
1 files changed, 34 insertions, 0 deletions
diff --git a/dev-build/bazel/files/bazel-3.7.2-musl-temp-failure-retry.patch b/dev-build/bazel/files/bazel-3.7.2-musl-temp-failure-retry.patch
new file mode 100644
index 000000000000..4c8648bb639f
--- /dev/null
+++ b/dev-build/bazel/files/bazel-3.7.2-musl-temp-failure-retry.patch
@@ -0,0 +1,34 @@
+https://bugs.gentoo.org/815907
+https://github.com/bazelbuild/bazel/commit/bcce6dd026e90336e80616a8c1004a79a2f8640c
+
+From: philwo <philwo@google.com>
+Date: Thu, 20 May 2021 08:13:09 -0700
+Subject: [PATCH] Add the TEMP_FAILURE_RETRY macro to linux-sandbox-pid1.cc.
+
+This allows us to build Bazel on Linux systems which use a C standard library that does not include this macro, like Alpine Linux (which uses musl).
+
+Fixes #12460.
+
+PiperOrigin-RevId: 374873483
+--- a/src/main/tools/linux-sandbox-pid1.cc
++++ b/src/main/tools/linux-sandbox-pid1.cc
+@@ -49,6 +49,19 @@
+ #include <linux/fs.h>
+ #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"