forked from OSchip/llvm-project
[Tsan] Fix test.h to work on FreeBSD
Differential Revision: http://reviews.llvm.org/D8303 llvm-svn: 232167
This commit is contained in:
parent
9ecb0e96b8
commit
281347aa59
|
@ -11,10 +11,16 @@
|
|||
__typeof(pthread_barrier_wait) *barrier_wait;
|
||||
|
||||
void barrier_init(pthread_barrier_t *barrier, unsigned count) {
|
||||
#if defined(__FreeBSD__)
|
||||
static const char libpthread_name[] = "libpthread.so";
|
||||
#else
|
||||
static const char libpthread_name[] = "libpthread.so.0";
|
||||
#endif
|
||||
|
||||
if (barrier_wait == 0) {
|
||||
void *h = dlopen("libpthread.so.0", RTLD_LAZY);
|
||||
void *h = dlopen(libpthread_name, RTLD_LAZY);
|
||||
if (h == 0) {
|
||||
fprintf(stderr, "failed to dlopen libpthread.so.0, exiting\n");
|
||||
fprintf(stderr, "failed to dlopen %s, exiting\n", libpthread_name);
|
||||
exit(1);
|
||||
}
|
||||
barrier_wait = (__typeof(barrier_wait))dlsym(h, "pthread_barrier_wait");
|
||||
|
|
Loading…
Reference in New Issue