From mboxrd@z Thu Jan 1 00:00:00 1970 From: Juergen Gross Subject: Re: xen-unstable: build fails Date: Thu, 17 Mar 2011 06:52:55 +0100 Message-ID: <4D81A1B7.2060306@ts.fujitsu.com> References: Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Keir Fraser Cc: "xen-devel@lists.xensource.com" List-Id: xen-devel@lists.xenproject.org On 03/16/11 17:50, Keir Fraser wrote: > On 16/03/2011 13:50, "Juergen Gross" wrote: > >> Hi, >> >> I've just set up a machine with OpenSuse 11.4 and tried to build Xen. >> >> Under root I did: >> >> hg clone http://xenbits.xensource.com/xen-unstable.hg >> cd xen-unstable.hg >> make xen >> >> The make failed with: >> >> make[4]: Entering directory `/root/xen-unstable.hg/xen/arch/x86/boot' >> RELOC=0x7c000 make -f build32.mk reloc.S >> make[5]: Entering directory `/root/xen-unstable.hg/xen/arch/x86/boot' >> make[5]: *** ../../../../.config: Is a directory. Stop. > > Seems to me that /root/xen-unstable.hg/xen/arch/x86/boot/../../../../.config > resolves to /root/xen-unstable.hg/.config. Which is what is intended. Also I > tried creating a .config dir just outside my own xen-unstable repo, and > rebuoilding the hypervisor, and it works okay for me. Okay, I checked it. My build environment is under /root/xen-unstable.hg I have .config directories in / and in /root I created .config files on another machine without those directories in / and in /root with a make error statement indicating which file is used: make[4]: Entering directory `/root/xen-unstable.hg/xen/arch/x86/boot' RELOC=0x7c000 make -f build32.mk reloc.S make[5]: Entering directory `/root/xen-unstable.hg/xen/arch/x86/boot' ../../../../.config:1: *** error form /.config. Stop. make[5]: Leaving directory `/root/xen-unstable.hg/xen/arch/x86/boot' make[4]: *** [reloc.S] Error 2 make[4]: Leaving directory `/root/xen-unstable.hg/xen/arch/x86/boot' make[3]: *** [/root/xen-unstable.hg/xen/arch/x86/boot/built_in.o] Error 2 make[3]: Leaving directory `/root/xen-unstable.hg/xen/arch/x86' make[2]: *** [/root/xen-unstable.hg/xen/xen] Error 2 make[2]: Leaving directory `/root/xen-unstable.hg/xen' make[1]: *** [install] Error 2 make[1]: Leaving directory `/root/xen-unstable.hg/xen' make: *** [install-xen] Error 2 The reason is clear: XEN_ROOT is set to a *relative* path. And when make is including a Makefile, it switches the working directory to the directory of the included Makefile. Including another Makefile via XEN_ROOT then is the problem... > >> The reason seems to be a directory /root/.config which isn't present on my >> other machines. > > We shouldn't be referring outside the repository. AFAICS the above logging > doesn't indicate that we are. I don't understand why you are getting that > error. I haven't been able to reproduce it. I have :-( > >> fails in a similar way. Many Makefiles seem to contain lines like: >> >> XEN_ROOT=../.. >> >> which is a really bad idea in my opinion. XEN_ROOT should only be set, if it >> is not yet defined. > > Why? It's private to our build system. We don't want the user screwing with > it. I also don't see why relative paths within our repository should be > avoided, as you try to do in your alternative formulation. You have to avoid relative paths in make variables used in different directory levels. Juergen -- Juergen Gross Principal Developer Operating Systems TSP ES&S SWE OS6 Telephone: +49 (0) 89 3222 2967 Fujitsu Technology Solutions e-mail: juergen.gross@ts.fujitsu.com Domagkstr. 28 Internet: ts.fujitsu.com D-80807 Muenchen Company details: ts.fujitsu.com/imprint.html