diff options
author | bart <bart@a5019735-40e9-0310-863c-91ae7b9d1cf9> | 2009-06-06 09:28:28 +0000 |
---|---|---|
committer | bart <bart@a5019735-40e9-0310-863c-91ae7b9d1cf9> | 2009-06-06 09:28:28 +0000 |
commit | c02dde4a6856703692de465fa621d20c9ec65ca4 (patch) | |
tree | 049e6aa3cd95db7fa2039786eb5773cf240c25a8 /drd | |
parent | c42f2b9f6f476d49054896a8eabdf8796b927f92 (diff) | |
download | valgrind-c02dde4a6856703692de465fa621d20c9ec65ca4.tar.gz |
Disabled libgomp intercepts. Since libgomp support was added to DRD, the
libgomp ABI has changed. Two new functions have been added, namely
gomp_team_barrier_wait() and gomp_team_barrier_wake(). The simplest way
to support all libgomp functions is by disabling the libgomp intercepts.
This fixes bug #195169.
git-svn-id: svn://svn.valgrind.org/valgrind/trunk@10261 a5019735-40e9-0310-863c-91ae7b9d1cf9
Diffstat (limited to 'drd')
-rw-r--r-- | drd/drd_gomp_intercepts.c | 4 | ||||
-rw-r--r-- | drd/drd_semaphore.c | 7 |
2 files changed, 8 insertions, 3 deletions
diff --git a/drd/drd_gomp_intercepts.c b/drd/drd_gomp_intercepts.c index 6cf2890b7..89aa54160 100644 --- a/drd/drd_gomp_intercepts.c +++ b/drd/drd_gomp_intercepts.c @@ -59,6 +59,8 @@ typedef void* gomp_barrier_t; // Function definitions. +#if 0 + GOMP_FUNC(void, gompZubarrierZuinit, // gomp_barrier_init gomp_barrier_t* barrier, unsigned count) { @@ -115,3 +117,5 @@ GOMP_FUNC(void, gompZubarrierZuwait, // gomp_barrier_wait VALGRIND_DO_CLIENT_REQUEST(res, -1, VG_USERREQ__POST_BARRIER_WAIT, barrier, gomp_barrier, 1, 0, 0); } + +#endif diff --git a/drd/drd_semaphore.c b/drd/drd_semaphore.c index 3a735e944..0dac3492d 100644 --- a/drd/drd_semaphore.c +++ b/drd/drd_semaphore.c @@ -299,14 +299,15 @@ void DRD_(semaphore_post_wait)(const DrdThreadId tid, const Addr semaphore, tl_assert(sg); if (sg) { + DRD_(thread_new_segment)(tid); + s_semaphore_segment_creation_count++; + if (p->last_sem_post_tid != tid && p->last_sem_post_tid != DRD_INVALID_THREADID) { DRD_(thread_combine_vc2)(tid, &sg->vc); } DRD_(sg_put)(sg); - DRD_(thread_new_segment)(tid); - s_semaphore_segment_creation_count++; } } } @@ -331,11 +332,11 @@ void DRD_(semaphore_pre_post)(const DrdThreadId tid, const Addr semaphore) } p->last_sem_post_tid = tid; - DRD_(thread_new_segment)(tid); sg = 0; DRD_(thread_get_latest_segment)(&sg, tid); tl_assert(sg); DRD_(segment_push)(p, sg); + DRD_(thread_new_segment)(tid); s_semaphore_segment_creation_count++; } |