From mboxrd@z Thu Jan 1 00:00:00 1970 From: Andrew Cooper Subject: Re: tools/makefile: Add build target Date: Wed, 8 Aug 2012 10:45:17 +0100 Message-ID: <5022352D.7080607@citrix.com> References: <501973F5.4030804@citrix.com> <20513.24085.195729.702722@mariner.uk.xensource.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20513.24085.195729.702722@mariner.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: Ian Jackson Cc: Ian Campbell , "xen-devel@lists.xen.org" List-Id: xen-devel@lists.xenproject.org On 07/08/12 19:27, Ian Jackson wrote: > Andrew Cooper writes ("[Xen-devel] tools/makefile: Add build target"): >> The alternative is to change the root makefile to call "$(MAKE) -C >> tools/ all" instead, but this way feels neater to me. > Yes. > >> tools/makefile: Add build target >> >> The root Makefile has a build target which calls "$(MAKE) build" in each of xen/ >> tools/ stubdom/ and docs/, which fails because of the tools/ Makefile. > That this didn't work is clearly a bug. > > But when I tried it my build did this: > > CC i386-stubdom/eeprom93xx.o > /u/iwj/work/xen-unstable-tools.hg/stubdom/mini-os-x86_32-c/test.o: In function `app_main': > /u/iwj/work/xen-unstable-tools.hg/extras/mini-os/test.c:441: multiple definition of `app_main' > /u/iwj/work/xen-unstable-tools.hg/stubdom/mini-os-x86_32-c/main.o:/u/iwj/work/xen-unstable-tools.hg/extras/mini-os/main.c:187: first defined here > CC i386-stubdom/eepro100.o > make[2]: *** [/u/iwj/work/xen-unstable-tools.hg/stubdom/mini-os-x86_32-c/mini-os] Error 1 > make[2]: Leaving directory `/u/iwj/work/xen-unstable-tools.hg/extras/mini-os' > make[1]: *** [c-stubdom] Error 2 > make[1]: *** Waiting for unfinished jobs.... > > That's the result of: > > (make -j4 build && echo ok.) 2>&1 | tee ../log > > Ian. The issue there is that app_main() is defined as __attribute__((weak)), and has two definitions in the code. I have just tested and confirmed that minios (and therefore stubdom) is not -j safe. As a result, I would argue that this build failure is not nesseserally a barrier of entry to the patch itself; There are more issues which need fixing as well. stubdom itself has further build issues regarding relative paths to configure scripts, which I was going to around to fixing after some of my more important tasks. -- Andrew Cooper - Dom0 Kernel Engineer, Citrix XenServer T: +44 (0)1223 225 900, http://www.citrix.com