From: Bruno Haible Date: Sun, 10 Mar 2019 00:28:42 +0000 (+0100) Subject: get-rusage-as, pthread_sigmask tests: Fix -fsanitize=thread findings. X-Git-Tag: v1.0~5043 X-Git-Url: https://gitweb.git.savannah.gnu.org/gitweb/?a=commitdiff_plain;h=5db7774f1eac47f348237f8cedef9dd37cd79b47;p=gnulib.git 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. --- 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; }