Mark Wielaard 7ae6b1
commit 947388eb043ea1c44b37df94046e1eee790ad776
Mark Wielaard 7ae6b1
Author: Mike Crowe <mac@mcrowe.com>
Mark Wielaard 7ae6b1
Date:   Mon Sep 9 14:16:16 2019 +0100
Mark Wielaard 7ae6b1
Mark Wielaard 7ae6b1
    Intercept strncmp for glibc ld.so v2.28+
Mark Wielaard 7ae6b1
    
Mark Wielaard 7ae6b1
    In glibc 5aad5f617892e75d91d4c8fb7594ff35b610c042 (first released in
Mark Wielaard 7ae6b1
    v2.28) a call to strncmp was added to dl-load.c:is_dst. This causes
Mark Wielaard 7ae6b1
    valgrind to complain about glibc's highly-optimised strncmp performing
Mark Wielaard 7ae6b1
    sixteen-byte reads on short strings in ld.so. Let's intercept strncmp in
Mark Wielaard 7ae6b1
    ld.so too so we use valgrind's simple version to avoid this problem.
Mark Wielaard 7ae6b1
Mark Wielaard 7ae6b1
diff --git a/shared/vg_replace_strmem.c b/shared/vg_replace_strmem.c
Mark Wielaard 7ae6b1
index 3b42b3a87..5396e83be 100644
Mark Wielaard 7ae6b1
--- a/shared/vg_replace_strmem.c
Mark Wielaard 7ae6b1
+++ b/shared/vg_replace_strmem.c
Mark Wielaard 7ae6b1
@@ -710,6 +710,8 @@ static inline void my_exit ( int x )
Mark Wielaard 7ae6b1
  STRNCMP(VG_Z_LIBC_SONAME, __GI_strncmp)
Mark Wielaard 7ae6b1
  STRNCMP(VG_Z_LIBC_SONAME, __strncmp_sse2)
Mark Wielaard 7ae6b1
  STRNCMP(VG_Z_LIBC_SONAME, __strncmp_sse42)
Mark Wielaard 7ae6b1
+ STRNCMP(VG_Z_LD_LINUX_SO_2, strncmp)
Mark Wielaard 7ae6b1
+ STRNCMP(VG_Z_LD_LINUX_X86_64_SO_2, strncmp)
Mark Wielaard 7ae6b1
 
Mark Wielaard 7ae6b1
 #elif defined(VGO_freebsd)
Mark Wielaard 7ae6b1
  STRNCMP(VG_Z_LIBC_SONAME, strncmp)