rseq/selftests: Fix: Namespace gettid() for compatibility with glibc 2.30
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Wed, 11 Dec 2019 16:17:13 +0000 (11:17 -0500)
committerShuah Khan <skhan@linuxfoundation.org>
Mon, 23 Dec 2019 17:52:41 +0000 (10:52 -0700)
glibc 2.30 introduces gettid() in public headers, which clashes with
the internal static definition within rseq selftests.

Rename gettid() to rseq_gettid() to eliminate this symbol name clash.

Reported-by: Tommi T. Rantala <tommi.t.rantala@nokia.com>
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Shuah Khan <skhan@linuxfoundation.org>
Cc: Tommi T. Rantala <tommi.t.rantala@nokia.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: "Paul E. McKenney" <paulmck@linux.ibm.com>
Cc: Boqun Feng <boqun.feng@gmail.com>
Cc: "H . Peter Anvin" <hpa@zytor.com>
Cc: Paul Turner <pjt@google.com>
Cc: Dmitry Vyukov <dvyukov@google.com>
Cc: <stable@vger.kernel.org> # v4.18+
Signed-off-by: Shuah Khan <skhan@linuxfoundation.org>
tools/testing/selftests/rseq/param_test.c

index eec2663..e8a657a 100644 (file)
@@ -15,7 +15,7 @@
 #include <errno.h>
 #include <stddef.h>
 
-static inline pid_t gettid(void)
+static inline pid_t rseq_gettid(void)
 {
        return syscall(__NR_gettid);
 }
@@ -373,11 +373,12 @@ void *test_percpu_spinlock_thread(void *arg)
                rseq_percpu_unlock(&data->lock, cpu);
 #ifndef BENCHMARK
                if (i != 0 && !(i % (reps / 10)))
-                       printf_verbose("tid %d: count %lld\n", (int) gettid(), i);
+                       printf_verbose("tid %d: count %lld\n",
+                                      (int) rseq_gettid(), i);
 #endif
        }
        printf_verbose("tid %d: number of rseq abort: %d, signals delivered: %u\n",
-                      (int) gettid(), nr_abort, signals_delivered);
+                      (int) rseq_gettid(), nr_abort, signals_delivered);
        if (!opt_disable_rseq && thread_data->reg &&
            rseq_unregister_current_thread())
                abort();
@@ -454,11 +455,12 @@ void *test_percpu_inc_thread(void *arg)
                } while (rseq_unlikely(ret));
 #ifndef BENCHMARK
                if (i != 0 && !(i % (reps / 10)))
-                       printf_verbose("tid %d: count %lld\n", (int) gettid(), i);
+                       printf_verbose("tid %d: count %lld\n",
+                                      (int) rseq_gettid(), i);
 #endif
        }
        printf_verbose("tid %d: number of rseq abort: %d, signals delivered: %u\n",
-                      (int) gettid(), nr_abort, signals_delivered);
+                      (int) rseq_gettid(), nr_abort, signals_delivered);
        if (!opt_disable_rseq && thread_data->reg &&
            rseq_unregister_current_thread())
                abort();
@@ -605,7 +607,7 @@ void *test_percpu_list_thread(void *arg)
        }
 
        printf_verbose("tid %d: number of rseq abort: %d, signals delivered: %u\n",
-                      (int) gettid(), nr_abort, signals_delivered);
+                      (int) rseq_gettid(), nr_abort, signals_delivered);
        if (!opt_disable_rseq && rseq_unregister_current_thread())
                abort();
 
@@ -796,7 +798,7 @@ void *test_percpu_buffer_thread(void *arg)
        }
 
        printf_verbose("tid %d: number of rseq abort: %d, signals delivered: %u\n",
-                      (int) gettid(), nr_abort, signals_delivered);
+                      (int) rseq_gettid(), nr_abort, signals_delivered);
        if (!opt_disable_rseq && rseq_unregister_current_thread())
                abort();
 
@@ -1011,7 +1013,7 @@ void *test_percpu_memcpy_buffer_thread(void *arg)
        }
 
        printf_verbose("tid %d: number of rseq abort: %d, signals delivered: %u\n",
-                      (int) gettid(), nr_abort, signals_delivered);
+                      (int) rseq_gettid(), nr_abort, signals_delivered);
        if (!opt_disable_rseq && rseq_unregister_current_thread())
                abort();