|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] xen-unstable: build fails
On 03/16/11 17:50, Keir Fraser wrote:
On 16/03/2011 13:50, "Juergen Gross"<juergen.gross@xxxxxxxxxxxxxx> 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@xxxxxxxxxxxxxx
Domagkstr. 28 Internet: ts.fujitsu.com
D-80807 Muenchen Company details: ts.fujitsu.com/imprint.html
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|