Blame view

buildroot/buildroot-2016.08.1/package/valgrind/0004-Fixes-for-musl-libc.patch 3.19 KB
6b13f685e   김민수   BSP 최초 추가
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
  From 50859f3577418cc42f76e1319e699202a615bbe1 Mon Sep 17 00:00:00 2001
  From: Peter Seiderer <ps.report@gmx.net>
  Date: Sat, 31 Oct 2015 19:45:04 +0100
  Subject: [PATCH] Fixes for musl libc.
  
  - add musl libc detection (prevents configure error)
  - adjust preload and symbol names (based on the OpenWrt
    patch, see [1])
  
  [1] https://dev.openwrt.org/browser/trunk/package/devel/valgrind/patches/200-musl_fix.patch?rev=46302
  
  Signed-off-by: Peter Seiderer <ps.report@gmx.net>
  ---
   configure.ac             | 16 ++++++++++++++--
   coregrind/vg_preloaded.c |  2 +-
   include/pub_tool_redir.h |  9 ++++++++-
   3 files changed, 23 insertions(+), 4 deletions(-)
  
  diff --git a/configure.ac b/configure.ac
  index 8ab7f9b..e865bf5 100644
  --- a/configure.ac
  +++ b/configure.ac
  @@ -1009,6 +1009,13 @@ if test x$VGCONF_PLATFORM_PRI_CAPS = xX86_SOLARIS \
       GLIBC_VERSION="solaris"
   fi
   
  +# GLIBC_VERSION is empty if a musl libc is used, so use the toolchain tuple
  +# in this case.
  +if test x$GLIBC_VERSION = x; then
  +    if $CC -dumpmachine | grep -q musl; then
  +        GLIBC_VERSION=musl
  +    fi
  +fi
   
   AC_MSG_CHECKING([the glibc version])
   
  @@ -1064,10 +1071,15 @@ case "${GLIBC_VERSION}" in
   	# DEFAULT_SUPP set in host_os switch-case above.
   	# No other suppression file is used.
   	;;
  +     musl)
  +	AC_MSG_RESULT(Musl)
  +	AC_DEFINE([MUSL_LIBC], 1, [Define to 1 if you're using Musl libc])
  +	# no DEFAULT_SUPP file yet for musl libc.
  +	;;
        2.0|2.1|*)
   	AC_MSG_RESULT([unsupported version ${GLIBC_VERSION}])
  -	AC_MSG_ERROR([Valgrind requires glibc version 2.2 or later,])
  -	AC_MSG_ERROR([Darwin libc, Bionic libc or Solaris libc])
  +	AC_MSG_ERROR([Valgrind requires glibc version 2.2 or later, uClibc,])
  +	AC_MSG_ERROR([musl libc, Darwin libc, Bionic libc or Solaris libc])
   	;;
   esac
   
  diff --git a/coregrind/vg_preloaded.c b/coregrind/vg_preloaded.c
  index 2ea7a7a..7b51aba 100644
  --- a/coregrind/vg_preloaded.c
  +++ b/coregrind/vg_preloaded.c
  @@ -56,7 +56,7 @@
   void VG_NOTIFY_ON_LOAD(freeres)( void );
   void VG_NOTIFY_ON_LOAD(freeres)( void )
   {
  -#  if !defined(__UCLIBC__) \
  +#  if !defined(__UCLIBC__) && !defined(MUSL_LIBC) \
         && !defined(VGPV_arm_linux_android) \
         && !defined(VGPV_x86_linux_android) \
         && !defined(VGPV_mips32_linux_android) \
  diff --git a/include/pub_tool_redir.h b/include/pub_tool_redir.h
  index bac00d7..babcf9a 100644
  --- a/include/pub_tool_redir.h
  +++ b/include/pub_tool_redir.h
  @@ -242,8 +242,11 @@
   /* --- Soname of the standard C library. --- */
   
   #if defined(VGO_linux) || defined(VGO_solaris)
  +# if defined(MUSL_LIBC)
  +#  define  VG_Z_LIBC_SONAME  libcZdZa              // libc.*
  +#else
   #  define  VG_Z_LIBC_SONAME  libcZdsoZa              // libc.so*
  -
  +#endif
   #elif defined(VGO_darwin) && (DARWIN_VERS <= DARWIN_10_6)
   #  define  VG_Z_LIBC_SONAME  libSystemZdZaZddylib    // libSystem.*.dylib
   
  @@ -274,7 +277,11 @@
   /* --- Soname of the pthreads library. --- */
   
   #if defined(VGO_linux)
  +# if defined(MUSL_LIBC)
  +#  define  VG_Z_LIBPTHREAD_SONAME  libcZdZa              // libc.*
  +#else
   #  define  VG_Z_LIBPTHREAD_SONAME  libpthreadZdsoZd0     // libpthread.so.0
  +#endif
   #elif defined(VGO_darwin)
   #  define  VG_Z_LIBPTHREAD_SONAME  libSystemZdZaZddylib  // libSystem.*.dylib
   #elif defined(VGO_solaris)
  -- 
  2.1.4