[lttng-dev] [PATCH lttng-tools] Tests: fix make targets using objcopy
Michael Jeanson
mjeanson at efficios.com
Wed Dec 2 13:26:09 EST 2015
Add detection for objcopy using AC_CHECK_TOOL and use dedicated make
targets for each file.
Signed-off-by: Michael Jeanson <mjeanson at efficios.com>
---
.gitignore | 2 ++
configure.ac | 6 ++++++
tests/regression/ust/baddr-statedump/Makefile.am | 21 ++++++++++++++++-----
.../ust/baddr-statedump/test_baddr-statedump.py | 2 +-
tests/regression/ust/ust-dl/Makefile.am | 21 ++++++++++++++++-----
tests/regression/ust/ust-dl/test_ust-dl.py | 2 +-
6 files changed, 42 insertions(+), 12 deletions(-)
diff --git a/.gitignore b/.gitignore
index 0efccfa..ca08d95 100644
--- a/.gitignore
+++ b/.gitignore
@@ -95,7 +95,9 @@ health_check
tests/regression/ust/python-logging/test_python_logging
/tests/regression/ust/baddr-statedump/prog
/tests/regression/ust/baddr-statedump/prog.debug
+/tests/regression/ust/baddr-statedump/prog.strip
/tests/regression/ust/ust-dl/prog
+/tests/regression/ust/ust-dl/libfoo.so.debug
/tests/utils/testapp/gen-ust-nevents/gen-ust-nevents
/tests/utils/testapp/gen-ust-tracef/gen-ust-tracef
/tests/regression/tools/live/live_test
diff --git a/configure.ac b/configure.ac
index 978e3bc..4100fe1 100644
--- a/configure.ac
+++ b/configure.ac
@@ -28,6 +28,12 @@ AC_PROG_SED
AC_PROG_YACC
LT_INIT
+# Check for objcopy, required by the base address statedump and dynamic linker tests
+AC_CHECK_TOOL([OBJCOPY], objcopy, no)
+AS_IF([test "x$OBJCOPY" = xno],
+ [AC_MSG_ERROR([Cannont find objcopy. Install the binutils package.])]
+)
+
# Checks for typedefs, structures, and compiler characteristics.
AC_C_INLINE
AC_TYPE_INT32_T
diff --git a/tests/regression/ust/baddr-statedump/Makefile.am b/tests/regression/ust/baddr-statedump/Makefile.am
index f45c5ae..7caf457 100644
--- a/tests/regression/ust/baddr-statedump/Makefile.am
+++ b/tests/regression/ust/baddr-statedump/Makefile.am
@@ -1,3 +1,7 @@
+objcopy_verbose = $(objcopy_verbose_ at AM_V@)
+objcopy_verbose_ = $(objcopy_verbose_ at AM_DEFAULT_V@)
+objcopy_verbose_0 = @echo OBJCOPY $@;
+
AM_CPPFLAGS = -I$(srcdir) -g
noinst_PROGRAMS = prog
@@ -7,15 +11,21 @@ prog_LDADD = -llttng-ust -ldl
noinst_SCRIPTS = test_baddr-statedump test_baddr-statedump.py
EXTRA_DIST = test_baddr-statedump test_baddr-statedump.py
-all-local: prog$(EXEEXT)
+# Extract debug symbols
+prog.debug: prog
+ $(objcopy_verbose)$(OBJCOPY) --only-keep-debug prog prog.debug
+
+# Strip and add debuglink
+prog.strip: prog.debug
+ @cp -f prog prog.strip
+ $(objcopy_verbose)$(OBJCOPY) --strip-debug --add-gnu-debuglink=prog.debug prog.strip
+
+all-local: prog.strip
@if [ x"$(srcdir)" != x"$(builddir)" ]; then \
for script in $(EXTRA_DIST); do \
cp -f $(srcdir)/$$script $(builddir); \
done; \
fi
- objcopy --only-keep-debug prog prog.debug
- strip -g prog
- objcopy --add-gnu-debuglink prog.debug prog
clean-local:
@if [ x"$(srcdir)" != x"$(builddir)" ]; then \
@@ -23,4 +33,5 @@ clean-local:
rm -f $(builddir)/$$script; \
done; \
fi
- rm -f prog.debug
+
+CLEANFILES = prog.debug prog.strip
diff --git a/tests/regression/ust/baddr-statedump/test_baddr-statedump.py b/tests/regression/ust/baddr-statedump/test_baddr-statedump.py
index 308eff4..47ed9d6 100644
--- a/tests/regression/ust/baddr-statedump/test_baddr-statedump.py
+++ b/tests/regression/ust/baddr-statedump/test_baddr-statedump.py
@@ -45,7 +45,7 @@ session_info = create_session()
enable_ust_tracepoint_event(session_info, "*")
start_session(session_info)
-test_process = subprocess.Popen(test_path + "prog", stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+test_process = subprocess.Popen(test_path + "prog.strip", stdout=subprocess.PIPE, stderr=subprocess.PIPE)
if sys.version_info >= (3, 3):
try:
test_process.wait(5)
diff --git a/tests/regression/ust/ust-dl/Makefile.am b/tests/regression/ust/ust-dl/Makefile.am
index 4893a97..c12da16 100644
--- a/tests/regression/ust/ust-dl/Makefile.am
+++ b/tests/regression/ust/ust-dl/Makefile.am
@@ -1,3 +1,7 @@
+objcopy_verbose = $(objcopy_verbose_ at AM_V@)
+objcopy_verbose_ = $(objcopy_verbose_ at AM_DEFAULT_V@)
+objcopy_verbose_0 = @echo OBJCOPY $@;
+
AM_CPPFLAGS = -I$(srcdir) -g
noinst_PROGRAMS = prog
@@ -12,15 +16,21 @@ libfoo_la_LDFLAGS = -module -shared -avoid-version \
noinst_SCRIPTS = test_ust-dl test_ust-dl.py
EXTRA_DIST = test_ust-dl test_ust-dl.py
-all-local: libfoo.la
+# Extract debug symbols
+libfoo.so.debug: libfoo.la
+ $(objcopy_verbose)$(OBJCOPY) --only-keep-debug .libs/libfoo.so libfoo.so.debug
+
+# Strip and add debuglink
+libfoo.so: libfoo.so.debug
+ @cp -f .libs/libfoo.so libfoo.so
+ $(objcopy_verbose)$(OBJCOPY) --strip-debug --add-gnu-debuglink=libfoo.so.debug libfoo.so
+
+all-local: libfoo.so
@if [ x"$(srcdir)" != x"$(builddir)" ]; then \
for script in $(EXTRA_DIST); do \
cp -f $(srcdir)/$$script $(builddir); \
done; \
fi
- objcopy --only-keep-debug .libs/libfoo.so .libs/libfoo.so.debug
- strip -g .libs/libfoo.so
- objcopy --add-gnu-debuglink .libs/libfoo.so.debug .libs/libfoo.so
clean-local:
@if [ x"$(srcdir)" != x"$(builddir)" ]; then \
@@ -28,4 +38,5 @@ clean-local:
rm -f $(builddir)/$$script; \
done; \
fi
- rm -f .libs/libfoo.so.debug
+
+CLEANFILES = libfoo.so libfoo.so.debug
diff --git a/tests/regression/ust/ust-dl/test_ust-dl.py b/tests/regression/ust/ust-dl/test_ust-dl.py
index 1e5e96b..dc73270 100644
--- a/tests/regression/ust/ust-dl/test_ust-dl.py
+++ b/tests/regression/ust/ust-dl/test_ust-dl.py
@@ -47,7 +47,7 @@ start_session(session_info)
test_env = os.environ.copy()
test_env["LD_PRELOAD"] = "liblttng-ust-dl.so"
-test_env["LD_LIBRARY_PATH"] = test_path + ".libs/"
+test_env["LD_LIBRARY_PATH"] = test_path
test_process = subprocess.Popen(test_path + "prog",
stdout=subprocess.PIPE, stderr=subprocess.PIPE,
env=test_env)
--
1.9.1
More information about the lttng-dev
mailing list