From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Campbell Subject: Re: Parallel make supported? Date: Mon, 5 Jan 2015 16:01:13 +0000 Message-ID: <1420473673.28863.50.camel@citrix.com> References: <1418983542.20028.5.camel@citrix.com> <20141229130136.GA12240@zion.uk.xensource.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20141229130136.GA12240@zion.uk.xensource.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Wei Liu Cc: xen-devel@lists.xen.org, Peter Kay List-Id: xen-devel@lists.xenproject.org On Mon, 2014-12-29 at 13:01 +0000, Wei Liu wrote: > Please don't top post. > > On Fri, Dec 19, 2014 at 10:09:31PM +0000, Peter Kay wrote: > > Thanks, see attached : > > > > This is on Salix 14.1 running the 3.17.4 kernel. That's not particularly > > relevant though, as I had exactly the same error on Debian using other > > kernel versions. > > > > Looking at your build log > > gcc -pthread -Wl,-soname -Wl,libxenstore.so.3.0 -shared -o libxenstore.so.3.0.3 xs.opic xs_lib.opic > ar rcs libxenstore.a xs.o xs_lib.o > gcc xs_tdb_dump.o utils.o tdb.o talloc.o -o xs_tdb_dump > gcc xenstored_core.o xenstored_watch.o xenstored_domain.o xenstored_transaction.o xs_lib.o talloc.o utils.o tdb.o hashtable.o xenstored_posix.o /home/peter/Downloads/xen-4.5.0-rc4/tools/xenstore/../../tools/libxc/libxenctrl.so -o xenstored > gcc init-xenstore-domain.o libxenstore.so /home/peter/Downloads/xen-4.5.0-rc4/tools/xenstore/../../tools/libxc/libxenctrl.so /home/peter/Downloads/xen-4.5.0-rc4/tools/xenstore/../../tools/libxc/libxenguest.so /home/peter/Downloads/xen-4.5.0-rc4/tools/xenstore/../../tools/xenstore/libxenstore.so -o init-xenstore-domain > gcc: error: libxenstore.so: No such file or directory > gcc: error: /home/peter/Downloads/xen-4.5.0-rc4/tools/xenstore/../../tools/xenstore/libxenstore.so: No such file or directory > make[4]: *** [init-xenstore-domain] Error 1 > make[4]: Leaving directory `/home/peter/Downloads/xen-4.5.0-rc4/tools/xenstore' > make[3]: *** [subdir-install-xenstore] Error 2 > make[3]: Leaving directory `/home/peter/Downloads/xen-4.5.0-rc4/tools' > make[2]: *** [subdirs-install] Error 2 > make[2]: Leaving directory `/home/peter/Downloads/xen-4.5.0-rc4/tools' > make[1]: *** [install-tools] Error 2 > make[1]: *** Waiting for unfinished jobs.... > > libxenstore.so is missing. However Makefile dependency ensures the > compilation of init-xenstore-domain does not proceed unless > libxenstore.so exists. Right. Specifically (quoting a select few lines from tools/xenstore/Makefile): LIBXENSTORE := libxenstore.so init-xenstore-domain: init-xenstore-domain.o $(LIBXENSTORE) libxenstore.so: libxenstore.so.$(MAJOR) libxenstore.so.$(MAJOR): libxenstore.so.$(MAJOR).$(MINOR) libxenstore.so.$(MAJOR).$(MINOR): xs.opic xs_lib.opic So it would be a make bug if init-xenstore-domain were linked without having created libxenstore.so first, but that (such an obvious bug in make) doesn't seem very likely. Peter, what does ls -l tools/xenstore/libxenstore* show? Also "make -d -C tools/xenstore init-xenstore-domain" might give a clue as to why make thinks it doesn't need to rebuild those objects. If $(LIBXENSTORE) were unset then that might explain things, but I can't see how that could happen, it must always be either libxenstore.so or libxenstore.a. Changing the init-xenstore-domain rule to: init-xenstore-domain: init-xenstore-domain.o $(LIBXENSTORE) @echo init-xenstore-domain using $(LIBXENSTORE) $(CC) $^ $(LDFLAGS) $(LDLIBS_libxenctrl) $(LDLIBS_libxenguest) $(LDLIBS_libxenstore) -o $@ $(APPEND_LDFLAGS) would confirm or deny that theory (nb before @echo needs to be a hard tab). Ian.