On Fri., Oct. 9, 2020, 13:45 Stacy Gaikovaia, wrote: > From: Stacy Gaikovaia > > After glibc uprev 2.32 -> 2.32, the 2.31 -> 2.32 following drd ptests > fail with the error "condition variable has not been initialized". > > drd/tests/annotate_hb_err > drd/tests/annotate_sem > drd/tests/annotate_rwlock > drd/tests/annotate_order_2 > drd/tests/annotate_smart_pointer > drd/tests/annotate_spinlock > drd/tests/monitor_example > drd/tests/pth_cond_race > drd/tests/pth_inconsistent_cond_wait > > In glibc 2.32, the POSIX thread functions are in both > libc and libpthread, causing valgrind to misinterpert > test behaviour. This patch tells valgrind to intercept > the pthread functions in libc, It's intercepting both as mentioned in the patch commit: "intercept both the libc and the libpthread functions" so please make that clear in your commit log. resolving these ptest > failures. Patch can be removed once we uprev valgrind. > Can you add the pass, fail, skip and total counts and mention the test system qemux86-64? This will help people track things when there is another update. > Upsteam-Status: Backport > This goes in the body of the patch. Mention the vg commit ID too please. Thanks, Randy > Signed-off-by: Stacy Gaikovaia > --- > .../valgrind/0001-drd-Port-to-Fedora-33.patch | 46 +++++++++++++++++++ > .../valgrind/valgrind_3.16.1.bb | 1 + > 2 files changed, 47 insertions(+) > create mode 100644 > meta/recipes-devtools/valgrind/valgrind/0001-drd-Port-to-Fedora-33.patch > > diff --git > a/meta/recipes-devtools/valgrind/valgrind/0001-drd-Port-to-Fedora-33.patch > b/meta/recipes-devtools/valgrind/valgrind/0001-drd-Port-to-Fedora-33.patch > new file mode 100644 > index 0000000000..bca3d9b892 > --- /dev/null > +++ > b/meta/recipes-devtools/valgrind/valgrind/0001-drd-Port-to-Fedora-33.patch > @@ -0,0 +1,46 @@ > +From 15330adf7c2471fbaa6a0818db07078d81dbff97 Mon Sep 17 00:00:00 2001 > +From: Bart Van Assche > +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 > + > +This patch was imported from the valgrind sourceware server > +(https://sourceware.org/git/?p=valgrind.git), commit id > +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. > + > +Signed-off-by: Stacy Gaikovaia > +--- > + 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 > + > diff --git a/meta/recipes-devtools/valgrind/valgrind_3.16.1.bb > b/meta/recipes-devtools/valgrind/valgrind_3.16.1.bb > index d4ca1a7752..7508098b55 100644 > --- a/meta/recipes-devtools/valgrind/valgrind_3.16.1.bb > +++ b/meta/recipes-devtools/valgrind/valgrind_3.16.1.bb > @@ -40,6 +40,7 @@ SRC_URI = " > https://sourceware.org/pub/valgrind/valgrind-${PV}.tar.bz2 \ > file://s390x_vec_op_t.patch \ > > file://0001-none-tests-fdleak_cmsg.stderr.exp-adjust-tmp-paths.patch \ > file://0001-memcheck-tests-Fix-timerfd-syscall-test.patch \ > + file://0001-drd-Port-to-Fedora-33.patch \ > " > SRC_URI[md5sum] = "d1b153f1ab17cf1f311705e7a83ef589" > SRC_URI[sha256sum] = > "c91f3a2f7b02db0f3bc99479861656154d241d2fdb265614ba918cc6720a33ca" > -- > 2.25.1 > > > > >