aboutsummaryrefslogtreecommitdiff
path: root/drd
diff options
context:
space:
mode:
authorbart <bart@a5019735-40e9-0310-863c-91ae7b9d1cf9>2009-06-06 09:28:28 +0000
committerbart <bart@a5019735-40e9-0310-863c-91ae7b9d1cf9>2009-06-06 09:28:28 +0000
commitc02dde4a6856703692de465fa621d20c9ec65ca4 (patch)
tree049e6aa3cd95db7fa2039786eb5773cf240c25a8 /drd
parentc42f2b9f6f476d49054896a8eabdf8796b927f92 (diff)
downloadvalgrind-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.c4
-rw-r--r--drd/drd_semaphore.c7
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++;
}