From 3f2fdc4ea830435be057ae187f17624279760fb4 Mon Sep 17 00:00:00 2001 From: jinzhimin369 Date: Thu, 30 Jul 2020 19:53:38 +0800 Subject: [PATCH] Add patch to build on glibc >= 2.30 --- Fix-namespace-our-gettid-wrapper.patch | 89 ++++++++++++++++++++++++++ lttng-ust.spec | 6 +- 2 files changed, 94 insertions(+), 1 deletion(-) create mode 100644 Fix-namespace-our-gettid-wrapper.patch diff --git a/Fix-namespace-our-gettid-wrapper.patch b/Fix-namespace-our-gettid-wrapper.patch new file mode 100644 index 0000000..381c42d --- /dev/null +++ b/Fix-namespace-our-gettid-wrapper.patch @@ -0,0 +1,89 @@ +From 717dc80e36ed544d70a4ff445b3cac9735c0b360 Mon Sep 17 00:00:00 2001 +From: Michael Jeanson +Date: Mon, 3 Jun 2019 11:07:25 -0400 +Subject: [PATCH] Fix: namespace our gettid wrapper + +Since glibc 2.30, a gettid wrapper was added that conflicts with our +static declaration. Namespace our wrapper so there is no conflict, +we'll add support for the glibc provided wrapper in a further commit. + +Signed-off-by: Michael Jeanson +--- + include/lttng/ust-tid.h | 12 +++++++----- + include/usterr-signal-safe.h | 2 +- + liblttng-ust/lttng-context-vtid.c | 4 ++-- + 3 files changed, 10 insertions(+), 8 deletions(-) + +diff --git a/include/lttng/ust-tid.h b/include/lttng/ust-tid.h +index e669d7e7..e637718a 100644 +--- a/include/lttng/ust-tid.h ++++ b/include/lttng/ust-tid.h +@@ -31,23 +31,25 @@ + #include + #endif + +-#if defined(_syscall0) +-_syscall0(pid_t, gettid) +-#elif defined(__NR_gettid) ++#if defined(__NR_gettid) ++ + #include +-static inline pid_t gettid(void) ++static inline pid_t lttng_gettid(void) + { + return syscall(__NR_gettid); + } ++ + #else ++ + #include + #include + + /* Fall-back on getpid for tid if not available. */ +-static inline pid_t gettid(void) ++static inline pid_t lttng_gettid(void) + { + return getpid(); + } ++ + #endif + + #endif /* _LTTNG_UST_TID_H */ +diff --git a/include/usterr-signal-safe.h b/include/usterr-signal-safe.h +index 1df5ada0..d987c1f0 100644 +--- a/include/usterr-signal-safe.h ++++ b/include/usterr-signal-safe.h +@@ -95,7 +95,7 @@ do { \ + do { \ + sigsafe_print_err(UST_STR_COMPONENT "[%ld/%ld]: " fmt " (in %s() at " __FILE__ ":" UST_XSTR(__LINE__) ")\n", \ + (long) getpid(), \ +- (long) gettid(), \ ++ (long) lttng_gettid(), \ + ## args, __func__); \ + } while(0) + +diff --git a/liblttng-ust/lttng-context-vtid.c b/liblttng-ust/lttng-context-vtid.c +index f28e470a..2f721fa0 100644 +--- a/liblttng-ust/lttng-context-vtid.c ++++ b/liblttng-ust/lttng-context-vtid.c +@@ -62,7 +62,7 @@ void vtid_record(struct lttng_ctx_field *field, + struct lttng_channel *chan) + { + if (caa_unlikely(!URCU_TLS(cached_vtid))) +- URCU_TLS(cached_vtid) = gettid(); ++ URCU_TLS(cached_vtid) = lttng_gettid(); + lib_ring_buffer_align_ctx(ctx, lttng_alignof(URCU_TLS(cached_vtid))); + chan->ops->event_write(ctx, &URCU_TLS(cached_vtid), + sizeof(URCU_TLS(cached_vtid))); +@@ -73,7 +73,7 @@ void vtid_get_value(struct lttng_ctx_field *field, + struct lttng_ctx_value *value) + { + if (caa_unlikely(!URCU_TLS(cached_vtid))) +- URCU_TLS(cached_vtid) = gettid(); ++ URCU_TLS(cached_vtid) = lttng_gettid(); + value->u.s64 = URCU_TLS(cached_vtid); + } + +-- +2.22.0.rc2 + diff --git a/lttng-ust.spec b/lttng-ust.spec index 4909d29..1f8c595 100644 --- a/lttng-ust.spec +++ b/lttng-ust.spec @@ -1,11 +1,12 @@ Name: lttng-ust Version: 2.10.1 -Release: 6 +Release: 7 Summary: LTTng Userspace Tracer library License: LGPLv2 and GPLv2 and MIT URL: https://lttng.org Source0: https://lttng.org/files/lttng-ust/%{name}-%{version}.tar.bz2 +Patch0: Fix-namespace-our-gettid-wrapper.patch BuildRequires: python2 libuuid-devel texinfo autoconf automake libtool BuildRequires: userspace-rcu-devel >= 0.8.0 @@ -58,6 +59,9 @@ make check %{_docdir}/%{name}/* %changelog +* Thu Jul 30 2020 jinzhimin - 2.10.1-7 +- Add patch to build on glibc >= 2.30 + * Fri Feb 14 2020 liuchao - 2.10.1-6 - enable make check -- Gitee