Blame SOURCES/valgrind-3.15.0-arm64-ld-stpcpy.patch

baee74
commit 89423f5d8ba05a099c2c62227a00a4f4eec59eb3
baee74
Author: Mark Wielaard <mark@klomp.org>
baee74
Date:   Tue May 7 21:20:04 2019 +0200
baee74
baee74
    Intercept stpcpy also in ld.so for arm64
baee74
    
baee74
    On other arches stpcpy () is intercepted for both libc.so and ld.so.
baee74
    But not on arm64, where it is only intercepted for libc.so.
baee74
    
baee74
    This can cause memcheck warnings about the use of stpcpy () in ld.so
baee74
    when called through dlopen () because ld.so contains its own copy of
baee74
    that functions.
baee74
    
baee74
    Fix by introducing VG_Z_LD_LINUX_AARCH64_SO_1 (the encoded name of
baee74
    ld.so on arm64) and using that in vg_replace_strmem.c to intercept
baee74
    stpcpy.
baee74
    
baee74
    https://bugs.kde.org/show_bug.cgi?id=407307
baee74
baee74
diff --git a/include/pub_tool_redir.h b/include/pub_tool_redir.h
baee74
index c97941f..15ba67f 100644
baee74
--- a/include/pub_tool_redir.h
baee74
+++ b/include/pub_tool_redir.h
baee74
@@ -313,7 +313,9 @@
baee74
 #define  VG_Z_LD_SO_1               ldZdsoZd1                  // ld.so.1
baee74
 #define  VG_U_LD_SO_1               "ld.so.1"
baee74
 
baee74
+#define  VG_Z_LD_LINUX_AARCH64_SO_1  ldZhlinuxZhaarch64ZdsoZd1
baee74
 #define  VG_U_LD_LINUX_AARCH64_SO_1 "ld-linux-aarch64.so.1"
baee74
+
baee74
 #define  VG_U_LD_LINUX_ARMHF_SO_3   "ld-linux-armhf.so.3"
baee74
 
baee74
 #endif
baee74
diff --git a/shared/vg_replace_strmem.c b/shared/vg_replace_strmem.c
baee74
index 89a7dcc..19143cf 100644
baee74
--- a/shared/vg_replace_strmem.c
baee74
+++ b/shared/vg_replace_strmem.c
baee74
@@ -1160,6 +1160,7 @@ static inline void my_exit ( int x )
baee74
  STPCPY(VG_Z_LIBC_SONAME,          __stpcpy_sse2_unaligned)
baee74
  STPCPY(VG_Z_LD_LINUX_SO_2,        stpcpy)
baee74
  STPCPY(VG_Z_LD_LINUX_X86_64_SO_2, stpcpy)
baee74
+ STPCPY(VG_Z_LD_LINUX_AARCH64_SO_1,stpcpy)
baee74
 
baee74
 #elif defined(VGO_darwin)
baee74
  //STPCPY(VG_Z_LIBC_SONAME,          stpcpy)