Module Name: src
Committed By: christos
Date: Sat Feb 9 01:27:43 UTC 2019
Modified Files:
src/external/gpl3/gcc/dist/libgcc: gthr-posix.h
Log Message:
Follow suit with FreeBSD and solaris for the __gthread_active_p()
implementation. Fixes the atf call_once unit tests.
To generate a diff of this commit:
cvs rdiff -u -r1.1.1.4 -r1.2 src/external/gpl3/gcc/dist/libgcc/gthr-posix.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/external/gpl3/gcc/dist/libgcc/gthr-posix.h
diff -u src/external/gpl3/gcc/dist/libgcc/gthr-posix.h:1.1.1.4 src/external/gpl3/gcc/dist/libgcc/gthr-posix.h:1.2
--- src/external/gpl3/gcc/dist/libgcc/gthr-posix.h:1.1.1.4 Sat Jan 19 05:14:14 2019
+++ src/external/gpl3/gcc/dist/libgcc/gthr-posix.h Fri Feb 8 20:27:43 2019
@@ -164,9 +164,12 @@ __gthrw(pthread_setschedparam)
working interface is always exposed. On FreeBSD 6 and later, libc also
exposes a dummy POSIX threads interface, similar to what Solaris 2.6 up
to 9 does. FreeBSD >= 700014 even provides a pthread_cancel stub in libc,
- which means the alternate __gthread_active_p below cannot be used there. */
+ which means the alternate __gthread_active_p below cannot be used there.
+ On NetBSD, linking with pthreads but without calling pthread_create()
+ makes std::call_once() so we do the same.
+*/
-#if defined(__FreeBSD__) || (defined(__sun) && defined(__svr4__))
+#if defined(__FreeBSD__) || (defined(__sun) && defined(__svr4__)) || defined(__NetBSD)
static volatile int __gthread_active = -1;
@@ -209,7 +212,7 @@ __gthread_active_p (void)
return __gthread_active_latest_value != 0;
}
-#else /* neither FreeBSD nor Solaris */
+#else /* neither FreeBSD nor Solaris nor NetBSD */
/* For a program to be multi-threaded the only thing that it certainly must
be using is pthread_create. However, there may be other libraries that
@@ -251,7 +254,7 @@ __gthread_active_p (void)
return __gthread_active_ptr != 0;
}
-#endif /* FreeBSD or Solaris */
+#endif /* FreeBSD or Solaris or NetBSD */
#else /* not SUPPORTS_WEAK */