[libvirt] [PATCH] build: fix deep VPATH builds

Eric Blake eblake at redhat.com
Thu Nov 3 19:55:29 UTC 2011


I ran into the following build failure:
$ mkdir -p build1 build2/a/very/deep/hierarcy
$ cd build2/a/very/deep/hierarcy
$ ../../../../../configure && make
$ cd ../../../../build1
$ ../configure && make
...
../../src/remote/remote_protocol.c:7:55: fatal error: ../../../../../src/remote/remote_protocol.h: No such file or directory

Turns out that we were sometimes generating the remote_protocol.c
file with information from the VPATH build, which is bad, since
any file shipped in the tarball should be idempotent no matter how
deep the VPATH build tree that created it.

* src/rpc/genprotocol.pl: Don't embed VPATH into generated file.
---

Pushing under the build-breaker rule.

And yes, I really did create a directory by that name, while testing
the earlier patches for the testsuite failure to create a UNIX
socket in a deep location. :)

 src/rpc/genprotocol.pl |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/src/rpc/genprotocol.pl b/src/rpc/genprotocol.pl
index 7124e5c..166508b 100755
--- a/src/rpc/genprotocol.pl
+++ b/src/rpc/genprotocol.pl
@@ -59,7 +59,7 @@ while (<RPCGEN>) {
     s/xdr_u_quad_t/xdr_uint64_t/g;
     s/xdr_quad_t/xdr_int64_t/g;
     s/(?<!IXDR_GET_INT32 )IXDR_GET_LONG/IXDR_GET_INT32/g;
-    s,#include "remote/remote_protocol\.h",#include "remote_protocol.h",;
+    s,#include ".*remote/remote_protocol\.h",#include "remote_protocol.h",;

     if (m/^}/) {
 	$in_function = 0;
-- 
1.7.4.4




More information about the libvir-list mailing list