|
@@ -0,0 +1,48 @@
|
|
|
+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
|
|
|
+
|