diff options
| -rw-r--r-- | meta/recipes-devtools/valgrind/valgrind/valgrind-make-ld-XXX.so-strlen-intercept-optional.patch | 45 | ||||
| -rw-r--r-- | meta/recipes-devtools/valgrind/valgrind_3.12.0.bb | 1 | 
2 files changed, 46 insertions, 0 deletions
| diff --git a/meta/recipes-devtools/valgrind/valgrind/valgrind-make-ld-XXX.so-strlen-intercept-optional.patch b/meta/recipes-devtools/valgrind/valgrind/valgrind-make-ld-XXX.so-strlen-intercept-optional.patch new file mode 100644 index 0000000000..d04297dca8 --- /dev/null +++ b/meta/recipes-devtools/valgrind/valgrind/valgrind-make-ld-XXX.so-strlen-intercept-optional.patch @@ -0,0 +1,45 @@ +From 005bd11809a1ce65e9f2c28e884354a4741650b9 Mon Sep 17 00:00:00 2001 +From: Andre McCurdy <armccurdy@gmail.com> +Date: Tue, 13 Dec 2016 11:29:55 +0800 +Subject: [PATCH] make ld-XXX.so strlen intercept optional + +Hack: Depending on how glibc was compiled (e.g. optimised for size or +built with _FORTIFY_SOURCE enabled) the strlen symbol might not be +found in ld-XXX.so. Therefore although we should still try to +intercept it, don't make it mandatory to do so. + +Upstream-Status: Inappropriate + +Signed-off-by: Andre McCurdy <armccurdy@gmail.com> +Signed-off-by: Jackie Huang <jackie.huang@windriver.com> +--- + coregrind/m_redir.c | 13 ++++++++++++- + 1 file changed, 12 insertions(+), 1 deletion(-) + +diff --git a/coregrind/m_redir.c b/coregrind/m_redir.c +index ff35009..d7d6816 100644 +--- a/coregrind/m_redir.c ++++ b/coregrind/m_redir.c +@@ -1275,7 +1275,18 @@ static void add_hardwired_spec (const  HChar* sopatt, const HChar* fnpatt, +    spec->to_addr     = to_addr; +    spec->isWrap      = False; +    spec->isGlobal    = False; +-   spec->mandatory   = mandatory; ++ ++   /* Hack: Depending on how glibc was compiled (e.g. optimised for size or ++      built with _FORTIFY_SOURCE enabled) the strlen symbol might not be found. ++      Therefore although we should still try to intercept it, don't make it ++      mandatory to do so. We over-ride "mandatory" here to avoid the need to ++      patch the many different architecture specific callers to ++      add_hardwired_spec(). */ ++   if (0==VG_(strcmp)("strlen", fnpatt)) ++      spec->mandatory = NULL; ++   else ++      spec->mandatory = mandatory; ++ +    /* VARIABLE PARTS */ +    spec->mark        = False; /* not significant */ +    spec->done        = False; /* not significant */ +--  +1.9.1 + diff --git a/meta/recipes-devtools/valgrind/valgrind_3.12.0.bb b/meta/recipes-devtools/valgrind/valgrind_3.12.0.bb index 637b723313..9b28d3701e 100644 --- a/meta/recipes-devtools/valgrind/valgrind_3.12.0.bb +++ b/meta/recipes-devtools/valgrind/valgrind_3.12.0.bb @@ -22,6 +22,7 @@ SRC_URI = "http://www.valgrind.org/downloads/valgrind-${PV}.tar.bz2 \             file://0001-Remove-tests-that-fail-to-build-on-some-PPC32-config.patch \             file://use-appropriate-march-mcpu-mfpu-for-ARM-test-apps.patch \             file://avoid-neon-for-targets-which-don-t-support-it.patch \ +           file://valgrind-make-ld-XXX.so-strlen-intercept-optional.patch \  "  SRC_URI_append_libc-musl = "\             file://0001-fix-build-for-musl-targets.patch \ | 
