From 5db7774f1eac47f348237f8cedef9dd37cd79b47 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Sun, 10 Mar 2019 01:28:42 +0100 Subject: [PATCH] get-rusage-as, pthread_sigmask tests: Fix -fsanitize=thread findings. * lib/get-rusage-as.c (get_rusage_as): When compiled by "gcc -fsanitize=thread", don't try get_rusage_as_via_setrlimit. * tests/test-pthread_sigmask2.c (main): Clean up the killer_thread before exiting. --- ChangeLog | 8 ++++++++ lib/get-rusage-as.c | 2 +- tests/test-pthread_sigmask2.c | 4 ++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 27c50744c3..5acbdfba09 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2019-03-09 Bruno Haible + + get-rusage-as, pthread_sigmask tests: Fix -fsanitize=thread findings. + * lib/get-rusage-as.c (get_rusage_as): When compiled by + "gcc -fsanitize=thread", don't try get_rusage_as_via_setrlimit. + * tests/test-pthread_sigmask2.c (main): Clean up the killer_thread + before exiting. + 2019-03-09 Jim Meyering test-userspec.c: don't print NULL diff --git a/lib/get-rusage-as.c b/lib/get-rusage-as.c index 73364c7198..0762247d03 100644 --- a/lib/get-rusage-as.c +++ b/lib/get-rusage-as.c @@ -373,7 +373,7 @@ get_rusage_as_via_iterator (void) uintptr_t get_rusage_as (void) { -#if (defined __APPLE__ && defined __MACH__) || defined _AIX || defined __CYGWIN__ || defined __MVS__ /* Mac OS X, AIX, Cygwin, z/OS */ +#if (defined __APPLE__ && defined __MACH__) || defined _AIX || defined __CYGWIN__ || defined __MVS__ || defined __SANITIZE_THREAD__ /* Mac OS X, AIX, Cygwin, z/OS, gcc -fsanitize=thread */ /* get_rusage_as_via_setrlimit() does not work. Prefer get_rusage_as_via_iterator(). */ return get_rusage_as_via_iterator (); diff --git a/tests/test-pthread_sigmask2.c b/tests/test-pthread_sigmask2.c index aa7ecf46c8..e02c31235b 100644 --- a/tests/test-pthread_sigmask2.c +++ b/tests/test-pthread_sigmask2.c @@ -84,6 +84,10 @@ main (int argc, char *argv[]) before the call to pthread_sigmask() returns." */ ASSERT (sigint_occurred == 1); + /* Clean up the thread. This avoid a "ThreadSanitizer: thread leak" warning + from "gcc -fsanitize=thread". */ + gl_thread_join (killer_thread, NULL); + return 0; } -- 2.39.5