Skip to contentSkip to conversation

systemd: add option for valgrind header checking

PATCH Superseded Chen Qi 2 participants 4 messages Nov 12, 2014 – Nov 13, 2014

v1 of 2 Superseded Latest is v2 →

lore
Share & tools
lore

Chen Qi

author
#0 lore raw

cover systemd: add option for valgrind header checking

The following changes since commit 33b7885ecdc8774e34ac3534ec49fed6ffdb3916:

oprofile: 0.9.9 -> 1.0.0 (2014-11-09 10:19:58 +0000)

are available in the git repository at:

git://git.openembedded.org/openembedded-core-contrib ChenQi/systemd-valgrindheader
http://cgit.openembedded.org/cgit.cgi/openembedded-core-contrib/log/?h=ChenQi/systemd-valgrindheader

Chen Qi (1):
systemd: add option for valgrind header checking

 ...re.ac-add-valgrind-header-checking-option.patch | 28 ++++++++++++++++++++++
 meta/recipes-core/systemd/systemd_216.bb           |  2 ++
 2 files changed, 30 insertions(+)
 create mode 100644 meta/recipes-core/systemd/systemd/0001-configure.ac-add-valgrind-header-checking-option.patch
Signature · 1 line
1.9.1
author
#1 lore raw

PATCH 1/1 systemd: add option for valgrind header checking

Add option so that valgrind header checking is controlled. Otherwise, we would get the following error.

src/libsystemd/sd-bus/bus-control.c: fatal error: valgrind/mencheck.h: No such file or directory

The above error could be reproduced by the following command.

bitbake valgrind && bitbake systemd -ccleansstate && bitbake systemd -cconfigure && bitbake valgrind -ccleansstate && bitbake systemd -ccompile

---
 ...re.ac-add-valgrind-header-checking-option.patch | 28 ++++++++++++++++++++++
 meta/recipes-core/systemd/systemd_216.bb           |  2 ++
 2 files changed, 30 insertions(+)
 create mode 100644 meta/recipes-core/systemd/systemd/0001-configure.ac-add-valgrind-header-checking-option.patch
meta/recipes-core/systemd/systemd/0001-configure.ac-add-valgrind-header-checking-option.patch new file +28 -0
new file mode 100644
index 0000000..89f3348
@@ -0,0 +1,28 @@
+Upstream-Status: Pending
+
+Subject: configure.ac: add valgrind header checking option
+
+Signed-off-by: Chen qi <[email protected]>
+---
+ configure.ac | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/configure.ac b/configure.ac
+index 945adfc..dd4d7b2 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1141,7 +1141,10 @@ AC_DEFINE_UNQUOTED(TELINIT, ["$TELINIT"], [Path to telinit])
+ 
+ AC_SUBST(TELINIT)
+ 
+-AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h valgrind/valgrind.h])
++AC_ARG_ENABLE(valgrindheader, AS_HELP_STRING([--disable-valgrindheader], [disable valgrind header checking]))
++if test "x$enable_valgrindheader" != "xno"; then
++        AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h valgrind/valgrind.h])
++fi
+ 
+ # ------------------------------------------------------------------------------
+ have_myhostname=no
+-- 
+1.9.1
+
meta/recipes-core/systemd/systemd_216.bb +2 -0
index 27a5d92..abef45d 100644
@@ -38,6 +38,7 @@ SRC_URI = "git://anongit.freedesktop.org/systemd/systemd;branch=master;protocol=
            file://init \
            file://run-ptest \
            ${@bb.utils.contains('PACKAGECONFIG', 'resolved', '', 'file://0001-tmpfiles.d-etc.conf-disable-resolv.conf-symlink.patch', d)} \
+           file://0001-configure.ac-add-valgrind-header-checking-option.patch \
           "
 
 S = "${WORKDIR}/git"
@@ -64,6 +65,7 @@ PACKAGECONFIG[elfutils] = "--enable-elfutils,--disable-elfutils,elfutils"
 PACKAGECONFIG[resolved] = "--enable-resolved,--disable-resolved"
 PACKAGECONFIG[networkd] = "--enable-networkd,--disable-networkd"
 PACKAGECONFIG[libidn] = "--enable-libidn,--disable-libidn,libidn"
+PACKAGECONFIG[valgrindheader] = "--enable-valgrindheader,--disable-valgrindheader"
 
 CACHED_CONFIGUREVARS = "ac_cv_path_KILL=${base_bindir}/kill"
 
Signature · 1 line
1.9.1
#2 lore raw
Quoted 7 lines · Chen Qi

+-AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h valgrind/valgrind.h]) ++AC_ARG_ENABLE(valgrindheader, AS_HELP_STRING([--disable-valgrindheader], [disable valgrind header checking]))
++if test "x$enable_valgrindheader" != "xno"; then
++ AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h valgrind/valgrind.h])
++fi

If the user passes --enable-valgrindheader and valgrind isn't present, it doesn't fail. Combined with the lack of a valgrind build dependency in the PACKAGECONFIG statement this isn't a very useful PACKAGECONFIG option as it only works when not specified, and if it's specified is non-deterministic.

It appears that this valgrind support is for running the test suite under valgrind for leak detection, which is something we're unlikely to do. A quick fix would be to comment out the check.

A proper fix would be to use AC_ARG_WITH(valgrind), default to "auto", use the pkg-config macros and respect yes/no/auto as appropriate. The mantra here being to spend ten minutes fixing it properly upstream instead of having to rewrite the patch often as upstream changes their configure script.

Ross

author
#3 lore raw
Quoted 12 lines · Ross

On 12 November 2014 10:45, Chen Qi <[email protected] <mailto:[email protected]>> wrote:

    +-AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h valgrind/valgrind.h])
    ++AC_ARG_ENABLE(valgrindheader,
    AS_HELP_STRING([--disable-valgrindheader], [disable valgrind
    header checking]))
    ++if test "x$enable_valgrindheader" != "xno"; then
    ++        AC_CHECK_HEADERS_ONCE([valgrind/memcheck.h
    valgrind/valgrind.h])
    ++fi
Quoted 2 lines

If the user passes --enable-valgrindheader and valgrind isn't present, it doesn't fail. Combined with the lack of a valgrind build dependency in the PACKAGECONFIG statement this isn't a very useful PACKAGECONFIG option as it only works when not specified, and if it's specified is non-deterministic.

Hi Ross,

I've sent to V2 with modification in PACKAGECONFIG. With this modification, the build result would not be non-deterministic.

Best Regards,
Chen Qi

Quoted 5 lines

It appears that this valgrind support is for running the test suite under valgrind for leak detection, which is something we're unlikely to do. A quick fix would be to comment out the check.

A proper fix would be to use AC_ARG_WITH(valgrind), default to "auto", use the pkg-config macros and respect yes/no/auto as appropriate. The mantra here being to spend ten minutes fixing it properly upstream instead of having to rewrite the patch often as upstream changes their configure script.

Ross