[libvirt] [PATCH 3/2] build: avoid check-symfile on non-Linux

Eric Blake eblake at redhat.com
Wed Sep 5 19:18:37 UTC 2012


I tested both OpenBSD and cygwin; both failed 'make check' with:

  GEN    check-symfile
Can't return outside a subroutine at ./check-symfile.pl line 13.

Perl requires 'exit 77' instead of 'return 77' in that context,
but even with that tweak, the build still fails, since the exit
code of 77 is only special to explicit TESTS=foo listings, and
not to make-only dependency rules where we are not going through
automake's test framework.

* src/check-symfile.pl: Kill bogus platform check...
* src/Makefile.am (check-symfile): ...and replace with an automake
conditional.
---

Another push under the build-breaker rule.

 src/Makefile.am      | 6 +++++-
 src/check-symfile.pl | 5 -----
 2 files changed, 5 insertions(+), 6 deletions(-)

diff --git a/src/Makefile.am b/src/Makefile.am
index 39adeac..9f27fcf 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -312,10 +312,14 @@ PDWTAGS = \
 	fi

 # .libs/libvirt.so is built by libtool as a side-effect of the Makefile
-# rule for libvirt.la
+# rule for libvirt.la.  However, checking symbols relies on Linux ELF layout
+if WITH_LINUX
 check-symfile: libvirt.syms libvirt.la
 	$(AM_V_GEN)$(PERL) $(srcdir)/check-symfile.pl libvirt.syms \
 	  .libs/libvirt.so
+else
+check-symfile:
+endif

 PROTOCOL_STRUCTS = \
 	$(srcdir)/remote_protocol-structs \
diff --git a/src/check-symfile.pl b/src/check-symfile.pl
index 5454f45..454fed3 100755
--- a/src/check-symfile.pl
+++ b/src/check-symfile.pl
@@ -8,11 +8,6 @@ my @elflibs = @ARGV;
 my @wantsyms;
 my %gotsyms;

-# Skip on non-linux
-if ($^O ne "linux") {
-    return 77; # Automake's skip code
-}
-
 open SYMFILE, $symfile or die "cannot read $symfile: $!";

 while (<SYMFILE>) {
-- 
1.7.11.4




More information about the libvir-list mailing list