| From 15330adf7c2471fbaa6a0818db07078d81dbff97 Mon Sep 17 00:00:00 2001 |
| From: Bart Van Assche <bvanassche@acm.org> |
| Date: Sat, 19 Sep 2020 08:08:59 -0700 |
| Subject: [PATCH] drd: Port to Fedora 33 |
| |
| Apparently on Fedora 33 the POSIX thread functions exist in both libc and |
| libpthread. Hence this patch that intercepts the pthread functions in |
| libc. See also https://bugs.kde.org/show_bug.cgi?id=426144 . |
| |
| Signed-off-by: Bart Van Assche <bvanassche@acm.org> |
| |
| This patch was imported from the valgrind sourceware server |
| (https://sourceware.org/git/?p=valgrind.git;a=commit;h=15330adf7c2471fbaa6a0818db07078d81dbff97) |
| It was modified to remove the changes to the valgrind NEWS file, |
| as these are difficult to maintain and don't impact the valgrind |
| code itself. |
| |
| Upstream-Status: Backport |
| |
| Signed-off-by: Stacy Gaikovaia <stacy.gaikovaia@windriver.com> |
| --- |
| drd/drd_pthread_intercepts.c | 9 +++++++++ |
| 1 file changed, 10 insertions(+) |
| |
| diff --git a/drd/drd_pthread_intercepts.c b/drd/drd_pthread_intercepts.c |
| index 58c45aaec..c2882e5ab 100644 |
| --- a/drd/drd_pthread_intercepts.c |
| +++ b/drd/drd_pthread_intercepts.c |
| @@ -174,7 +174,16 @@ static int never_true; |
| ret_ty VG_WRAP_FUNCTION_ZZ(VG_Z_LIBC_SONAME,zf) argl_decl \ |
| { return implf argl; } |
| #else |
| +/* |
| + * On Linux, intercept both the libc and the libpthread functions. At |
| + * least glibc 2.32.9000 (Fedora 34) has an implementation of all pthread |
| + * functions in both libc and libpthread. Older glibc versions only have an |
| + * implementation of the pthread functions in libpthread. |
| + */ |
| #define PTH_FUNC(ret_ty, zf, implf, argl_decl, argl) \ |
| + ret_ty VG_WRAP_FUNCTION_ZZ(VG_Z_LIBC_SONAME,zf) argl_decl; \ |
| + ret_ty VG_WRAP_FUNCTION_ZZ(VG_Z_LIBC_SONAME,zf) argl_decl \ |
| + { return implf argl; } \ |
| ret_ty VG_WRAP_FUNCTION_ZZ(VG_Z_LIBPTHREAD_SONAME,zf) argl_decl; \ |
| ret_ty VG_WRAP_FUNCTION_ZZ(VG_Z_LIBPTHREAD_SONAME,zf) argl_decl \ |
| { return implf argl; } |
| -- |
| 2.25.1 |
| |