From: Benjamin Marzinski <bmarzins@redhat.com>
To: mwilck@suse.com
Cc: dm-devel@redhat.com
Subject: Re: [dm-devel] [PATCH v2 08/12] libmultipath: create separate .so for unit tests
Date: Fri, 16 Oct 2020 16:04:27 -0500 [thread overview]
Message-ID: <20201016210427.GW3384@octiron.msp.redhat.com> (raw)
In-Reply-To: <20201016104239.8217-9-mwilck@suse.com>
On Fri, Oct 16, 2020 at 12:42:35PM +0200, mwilck@suse.com wrote:
> From: Martin Wilck <mwilck@suse.com>
>
> The unit tests use a lot of internal symbols that we don't want
> to add to the ABI if we don't have to. As long as we don't
> have to make incompatible changes to functions, we can work around
> that by simply using a non-versioned library for the unit tests.
> Therefore we add a seperate rule here. Do this before actually
> adding a version script, to avoid breakage during bisection.
>
Reviewed-by: Benjamin Marzinski <bmarzins@redhat.com>
> Signed-off-by: Martin Wilck <mwilck@suse.com>
> ---
> libmultipath/Makefile | 7 +++++++
> tests/Makefile | 10 ++++++----
> 2 files changed, 13 insertions(+), 4 deletions(-)
>
> diff --git a/libmultipath/Makefile b/libmultipath/Makefile
> index af5bb77..cf13561 100644
> --- a/libmultipath/Makefile
> +++ b/libmultipath/Makefile
> @@ -74,6 +74,13 @@ $(LIBS): $(OBJS)
> $(DEVLIB): $(LIBS)
> $(LN) $(LIBS) $@
>
> +../tests/$(LIBS): $(OBJS) $(VERSION_SCRIPT)
> + $(CC) $(LDFLAGS) $(SHARED_FLAGS) -Wl,-soname=`basename $@` \
> + -o $@ $(OBJS) $(LIBDEPS)
> + $(LN) $@ ${@:.so.0=.so}
> +
> +test-lib: ../tests/$(LIBS)
> +
> install: all
> $(INSTALL_PROGRAM) -d $(DESTDIR)$(syslibdir)
> $(INSTALL_PROGRAM) -m 755 $(LIBS) $(DESTDIR)$(syslibdir)/$(LIBS)
> diff --git a/tests/Makefile b/tests/Makefile
> index 502377f..f6ef16a 100644
> --- a/tests/Makefile
> +++ b/tests/Makefile
> @@ -10,7 +10,7 @@ W_MISSING_INITIALIZERS := $(call TEST_MISSING_INITIALIZERS)
>
> CFLAGS += $(BIN_CFLAGS) -I$(multipathdir) -I$(mpathcmddir) \
> -Wno-unused-parameter $(W_MISSING_INITIALIZERS)
> -LIBDEPS += -L$(multipathdir) -L$(mpathcmddir) -lmultipath -lmpathcmd -lcmocka
> +LIBDEPS += -L. -L$(mpathcmddir) -lmultipath -lmpathcmd -lcmocka
>
> TESTS := uevent parser util dmevents hwtable blacklist unaligned vpd pgpolicy \
> alias directio valid devt
> @@ -67,7 +67,7 @@ lib/libchecktur.so:
>
> %.out: %-test lib/libchecktur.so
> @echo == running $< ==
> - @LD_LIBRARY_PATH=$(multipathdir):$(mpathcmddir) ./$< >$@
> + @LD_LIBRARY_PATH=.:$(mpathcmddir) ./$< >$@
>
> %.vgr: %-test lib/libchecktur.so
> @echo == running valgrind for $< ==
> @@ -77,7 +77,7 @@ lib/libchecktur.so:
> OBJS = $(TESTS:%=%.o) test-lib.o
>
> test_clean:
> - $(RM) $(TESTS:%=%.out) $(TESTS:%=%.vgr)
> + $(RM) $(TESTS:%=%.out) $(TESTS:%=%.vgr) *.so*
>
> valgrind_clean:
> $(RM) $(TESTS:%=%.vgr)
> @@ -97,12 +97,14 @@ dep_clean:
> @sed -n 's/^.*__wrap_\([a-zA-Z0-9_]*\).*$$/-Wl,--wrap=\1/p' $< | \
> sort -u | tr '\n' ' ' >$@
>
> +libmultipath.so.0:
> + $(MAKE) -C $(multipathdir) test-lib
>
> # COLON will get expanded during second expansion below
> COLON:=:
> .SECONDEXPANSION:
> %-test: %.o %.o.wrap $$($$@_OBJDEPS) $$($$@_TESTDEPS) $$($$@_TESTDEPS$$(COLON).o=.o.wrap) \
> - $(multipathdir)/libmultipath.so Makefile
> + libmultipath.so.0 Makefile
> $(CC) $(CFLAGS) -o $@ $(LDFLAGS) $< $($@_TESTDEPS) $($@_OBJDEPS) \
> $(LIBDEPS) $($@_LIBDEPS) \
> $(shell cat $<.wrap) $(foreach dep,$($@_TESTDEPS),$(shell cat $(dep).wrap))
> --
> 2.28.0
--
dm-devel mailing list
dm-devel@redhat.com
https://www.redhat.com/mailman/listinfo/dm-devel
next prev parent reply other threads:[~2020-10-16 21:06 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-10-16 10:42 [dm-devel] [PATCH v2 00/12] multipath-tools: add linker version scripts mwilck
2020-10-16 10:42 ` [dm-devel] [PATCH v2 01/12] libmultipath: find_mpe(): don't match with empty WWID mwilck
2020-10-16 10:42 ` [dm-devel] [PATCH v2 02/12] libmultipath: copy mpp->hwe from pp->hwe mwilck
2020-10-16 10:42 ` [dm-devel] [PATCH v2 03/12] libmultipath: dm_map_present_by_uuid(): fix dm_task_create() call mwilck
2020-10-16 10:42 ` [dm-devel] [PATCH v2 04/12] libdmmp tests: fix compilation mwilck
2020-10-16 10:42 ` [dm-devel] [PATCH v2 05/12] libmultipath: prio: constify some function parameters mwilck
2020-10-16 10:42 ` [dm-devel] [PATCH v2 06/12] libmultipath: checkers/prio: allow non-lazy .so loading mwilck
2020-10-16 10:42 ` [dm-devel] [PATCH v2 07/12] multipath-tools Makefiles: separate rules for .so and man pages mwilck
2020-10-16 10:42 ` [dm-devel] [PATCH v2 08/12] libmultipath: create separate .so for unit tests mwilck
2020-10-16 21:04 ` Benjamin Marzinski [this message]
2020-10-16 10:42 ` [dm-devel] [PATCH v2 09/12] libmultipath: add linker version script mwilck
2020-10-16 10:42 ` [dm-devel] [PATCH v2 10/12] libmpathpersist: " mwilck
2020-10-16 10:42 ` [dm-devel] [PATCH v2 11/12] libmpathcmd: " mwilck
2020-10-16 10:42 ` [dm-devel] [PATCH v2 12/12] libmpathpersist: initialize mpp->hwe in get_mpvec() mwilck
2020-10-16 22:13 ` Benjamin Marzinski
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20201016210427.GW3384@octiron.msp.redhat.com \
--to=bmarzins@redhat.com \
--cc=dm-devel@redhat.com \
--cc=mwilck@suse.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).