[lvm-devel] master - valgrind: when executed within valrind skip close
Zdenek Kabelac
zkabelac at fedoraproject.org
Thu Feb 12 14:42:24 UTC 2015
Gitweb: http://git.fedorahosted.org/git/?p=lvm2.git;a=commitdiff;h=77ceb3ee471075ce55f723a2efffb4465510ea88
Commit: 77ceb3ee471075ce55f723a2efffb4465510ea88
Parent: 9809038b9d3beddd90cb80311c61fd67856e0728
Author: Zdenek Kabelac <zkabelac at redhat.com>
AuthorDate: Thu Feb 12 15:32:30 2015 +0100
Committer: Zdenek Kabelac <zkabelac at redhat.com>
CommitterDate: Thu Feb 12 15:40:54 2015 +0100
valgrind: when executed within valrind skip close
Since valgrind uses internal file descriptors for communication,
don't try to close them in this case.
---
tools/Makefile.in | 1 +
tools/lvmcmdline.c | 11 +++++++++++
2 files changed, 12 insertions(+), 0 deletions(-)
diff --git a/tools/Makefile.in b/tools/Makefile.in
index 1a8db36..6171322 100644
--- a/tools/Makefile.in
+++ b/tools/Makefile.in
@@ -133,6 +133,7 @@ dmsetup.static: dmsetup.o $(interfacebuilddir)/libdevmapper.a
all: device-mapper
CFLAGS_lvm.o += $(EXTRA_EXEC_CFLAGS)
+CFLAGS_lvmcmdline.o += $(VALGRIND_CFLAGS)
lvm: $(OBJECTS) lvm.o $(top_builddir)/lib/liblvm-internal.a
$(CC) $(CFLAGS) $(LDFLAGS) $(EXTRA_EXEC_LDFLAGS) $(ELDFLAGS) -o $@ $(OBJECTS) lvm.o \
diff --git a/tools/lvmcmdline.c b/tools/lvmcmdline.c
index 1cdc293..e586777 100644
--- a/tools/lvmcmdline.c
+++ b/tools/lvmcmdline.c
@@ -29,6 +29,10 @@
#include <paths.h>
#include <locale.h>
+#ifdef HAVE_VALGRIND
+#include <valgrind.h>
+#endif
+
#ifdef HAVE_GETOPTLONG
# include <getopt.h>
# define GETOPTLONG_FN(a, b, c, d, e) getopt_long((a), (b), (c), (d), (e))
@@ -1681,6 +1685,13 @@ static int _close_stray_fds(const char *command)
struct dirent *dirent;
DIR *d;
+#ifdef HAVE_VALGRIND
+ if (RUNNING_ON_VALGRIND) {
+ log_debug("Skipping close of descriptors within valgrind execution.");
+ return 1;
+ }
+#endif
+
if (getenv("LVM_SUPPRESS_FD_WARNINGS"))
suppress_warnings = 1;
More information about the lvm-devel
mailing list