forked from envoyproxy/envoy
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
bazel: patch gRPC to fix Envoy builds with glibc v2.30 (envoyproxy#7971)
Description: the latest glibc (v2.30) declares its own `gettid()` function (see [0]) and this creates a naming conflict in gRPC which has a function with the same name. Apply to gRPC [a patch](grpc/grpc#18950) which renames `gettid()` to `sys_gettid()`. [0] https://sourceware.org/git/?p=glibc.git;a=commit;h=1d0fc213824eaa2a8f8c4385daaa698ee8fb7c92 Risk Level: low Testing: unit tests Docs Changes: n/a Release Notes: n/a Signed-off-by: Dmitry Rozhkov <[email protected]>
- Loading branch information
Showing
2 changed files
with
80 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,78 @@ | ||
From d1d017390b799c59d6fdf7b8afa6136d218bdd61 Mon Sep 17 00:00:00 2001 | ||
From: Benjamin Peterson <[email protected]> | ||
Date: Fri, 3 May 2019 08:11:00 -0700 | ||
Subject: [PATCH] Rename gettid() functions. | ||
|
||
glibc 2.30 will declare its own gettid; see https://sourceware.org/git/?p=glibc.git;a=commit;h=1d0fc213824eaa2a8f8c4385daaa698ee8fb7c92. Rename the grpc versions to avoid naming conflicts. | ||
--- | ||
src/core/lib/gpr/log_linux.cc | 4 ++-- | ||
src/core/lib/gpr/log_posix.cc | 4 ++-- | ||
src/core/lib/iomgr/ev_epollex_linux.cc | 4 ++-- | ||
3 files changed, 6 insertions(+), 6 deletions(-) | ||
|
||
diff --git a/src/core/lib/gpr/log_linux.cc b/src/core/lib/gpr/log_linux.cc | ||
index 561276f0c20..8b597b4cf2f 100644 | ||
--- a/src/core/lib/gpr/log_linux.cc | ||
+++ b/src/core/lib/gpr/log_linux.cc | ||
@@ -40,7 +40,7 @@ | ||
#include <time.h> | ||
#include <unistd.h> | ||
|
||
-static long gettid(void) { return syscall(__NR_gettid); } | ||
+static long sys_gettid(void) { return syscall(__NR_gettid); } | ||
|
||
void gpr_log(const char* file, int line, gpr_log_severity severity, | ||
const char* format, ...) { | ||
@@ -70,7 +70,7 @@ void gpr_default_log(gpr_log_func_args* args) { | ||
gpr_timespec now = gpr_now(GPR_CLOCK_REALTIME); | ||
struct tm tm; | ||
static __thread long tid = 0; | ||
- if (tid == 0) tid = gettid(); | ||
+ if (tid == 0) tid = sys_gettid(); | ||
|
||
timer = static_cast<time_t>(now.tv_sec); | ||
final_slash = strrchr(args->file, '/'); | ||
diff --git a/src/core/lib/gpr/log_posix.cc b/src/core/lib/gpr/log_posix.cc | ||
index b6edc14ab6b..2f7c6ce3760 100644 | ||
--- a/src/core/lib/gpr/log_posix.cc | ||
+++ b/src/core/lib/gpr/log_posix.cc | ||
@@ -31,7 +31,7 @@ | ||
#include <string.h> | ||
#include <time.h> | ||
|
||
-static intptr_t gettid(void) { return (intptr_t)pthread_self(); } | ||
+static intptr_t sys_gettid(void) { return (intptr_t)pthread_self(); } | ||
|
||
void gpr_log(const char* file, int line, gpr_log_severity severity, | ||
const char* format, ...) { | ||
@@ -86,7 +86,7 @@ void gpr_default_log(gpr_log_func_args* args) { | ||
char* prefix; | ||
gpr_asprintf(&prefix, "%s%s.%09d %7" PRIdPTR " %s:%d]", | ||
gpr_log_severity_string(args->severity), time_buffer, | ||
- (int)(now.tv_nsec), gettid(), display_file, args->line); | ||
+ (int)(now.tv_nsec), sys_gettid(), display_file, args->line); | ||
|
||
fprintf(stderr, "%-70s %s\n", prefix, args->message); | ||
gpr_free(prefix); | ||
diff --git a/src/core/lib/iomgr/ev_epollex_linux.cc b/src/core/lib/iomgr/ev_epollex_linux.cc | ||
index 08116b3ab53..76f59844312 100644 | ||
--- a/src/core/lib/iomgr/ev_epollex_linux.cc | ||
+++ b/src/core/lib/iomgr/ev_epollex_linux.cc | ||
@@ -1102,7 +1102,7 @@ static void end_worker(grpc_pollset* pollset, grpc_pollset_worker* worker, | ||
} | ||
|
||
#ifndef NDEBUG | ||
-static long gettid(void) { return syscall(__NR_gettid); } | ||
+static long sys_gettid(void) { return syscall(__NR_gettid); } | ||
#endif | ||
|
||
/* pollset->mu lock must be held by the caller before calling this. | ||
@@ -1122,7 +1122,7 @@ static grpc_error* pollset_work(grpc_pollset* pollset, | ||
#define WORKER_PTR (&worker) | ||
#endif | ||
#ifndef NDEBUG | ||
- WORKER_PTR->originator = gettid(); | ||
+ WORKER_PTR->originator = sys_gettid(); | ||
#endif | ||
if (GRPC_TRACE_FLAG_ENABLED(grpc_polling_trace)) { | ||
gpr_log(GPR_INFO, |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters