Skip to content
This repository has been archived by the owner on Oct 25, 2022. It is now read-only.

Commit

Permalink
Patch for grpc and glibc 2.30
Browse files Browse the repository at this point in the history
Rename occurrences of gettid in grpc to avoid naming conflicts with
glibc 2.30's gettid.

bazelbuild/bazel#8666
vbatts/copr-build-bazel@75516ad
grpc/grpc@d1d0173
clearlinux-pkgs/grpcio@5dd8919
  • Loading branch information
wayne0811 committed Oct 14, 2019
1 parent f3ed959 commit adefd90
Show file tree
Hide file tree
Showing 2 changed files with 85 additions and 1 deletion.
8 changes: 7 additions & 1 deletion bazel.spec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Name : bazel
Version : 0.27.0
Release : 31
Release : 32
URL : https://github.com/bazelbuild/bazel/archive/0.27.0.tar.gz
Source0 : https://github.com/bazelbuild/bazel/archive/0.27.0.tar.gz
Summary : A Python Mocking and Patching Library for Testing
Expand Down Expand Up @@ -38,6 +38,7 @@ Source23 : https://mirror.bazel.build/bazel_java_tools/releases/javac11/v2.0/jav
%define debug_package %{nil}

Patch1: 0001-build.patch
Patch2: rename-gettid-functions.patch

%description
This repository contains a python implementation of the Google commandline
Expand All @@ -47,6 +48,11 @@ flags module.
%setup -q -n bazel-0.27.0
#%patch1 -p1

# https://github.com/vbatts/copr-build-bazel/commit/75516ad2211feb6326ce330de0efcd4ee662aba4
pushd third_party/grpc/
%patch2 -p0
popd

%build

InstallCache() {
Expand Down
78 changes: 78 additions & 0 deletions rename-gettid-functions.patch
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 src/core/lib/gpr/log_linux.cc.orig src/core/lib/gpr/log_linux.cc
index 561276f0c20..8b597b4cf2f 100644
--- src/core/lib/gpr/log_linux.cc.orig 2019-06-21 10:42:13.235611417 -0400
+++ src/core/lib/gpr/log_linux.cc 2019-06-21 10:42:16.686608855 -0400
@@ -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*
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 src/core/lib/gpr/log_posix.cc.orig src/core/lib/gpr/log_posix.cc
index b6edc14ab6b..2f7c6ce3760 100644
--- src/core/lib/gpr/log_posix.cc.orig 2019-06-21 10:42:13.242611412 -0400
+++ src/core/lib/gpr/log_posix.cc 2019-06-21 10:42:22.794604319 -0400
@@ -30,7 +30,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, ...) {
@@ -85,7 +85,7 @@ void gpr_default_log(gpr_log_func_args*
char* prefix;
gpr_asprintf(&prefix, "%s%s.%09d %7tu %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 src/core/lib/iomgr/ev_epollex_linux.cc.orig src/core/lib/iomgr/ev_epollex_linux.cc
index 08116b3ab53..76f59844312 100644
--- src/core/lib/iomgr/ev_epollex_linux.cc.orig 2019-06-21 10:42:13.247611408 -0400
+++ src/core/lib/iomgr/ev_epollex_linux.cc 2019-06-21 10:42:29.767599141 -0400
@@ -1150,7 +1150,7 @@ static void end_worker(grpc_pollset* pol
}

#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.
@@ -1170,7 +1170,7 @@ static grpc_error* pollset_work(grpc_pol
#define WORKER_PTR (&worker)
#endif
#ifndef NDEBUG
- WORKER_PTR->originator = gettid();
+ WORKER_PTR->originator = sys_gettid();
#endif
if (grpc_polling_trace.enabled()) {
gpr_log(GPR_INFO,

0 comments on commit adefd90

Please sign in to comment.