Yes the build breaks very quickly when XEN_PATH doesn't
exist. However as I said the error messages are not
at all clear, nor is the fix. Since we would like
our bits to be used by more users/developers, we should
try to find common build-error problems as, if someone
can't even build Xen/ia64, they certainly aren't going
to try to use it.
My situation was complicated because I manually specified
XEN_PATH and it *did* exist and the symbolic link was
created (as shown by "ls include/asm/xen/asm-xsi-offsets.h").
But I didn't understand the problem until I did
"ls -l include/asm/xen/asm-xsi-offsets.h" (fortunately
with colorls) and saw that the link was broken. And
even then the problem was not clear as the file the
link was made to *did* exist... just not from the
context of gcc when it was building.
In any case, yes it was my pilot error, but it is
likely to be a common error (at least as common as
was forgetting to run mkbuildtree... and I know we all
have done that a few times) and so the build scripts
could/should be made more user-friendly.
Dan
> -----Original Message-----
> From: Tian, Kevin [mailto:kevin.tian@xxxxxxxxx]
> Sent: Wednesday, August 24, 2005 9:57 AM
> To: Magenheimer, Dan (HP Labs Fort Collins);
> xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
> Subject: RE: [Xen-ia64-devel] How to clean xenlinux-ia64-2.6.12.hg?
>
> >From: Magenheimer, Dan (HP Labs Fort Collins)
> >
> >Thanks, this looks like a good addition. However my
> >problem was different... I neglected to specify a
> >fully-qualified pathname for XEN_PATH so the resulting
> >output and softlinks were very confused.
>
> If the designated pathname by XEN_PATH doesn't exist, it's
> easy to find such problem by simply make which should fail
> immediately since required header files don't exist by
> following wrong symbolic link. Then you can easily "make
> clean" again and then "make XEN_PATH=right_path_name" to try
> it out finally. In this special case here, even compiling
> first *.c file will give you error since asm-xsi-offsets.h is
> required as a fundamental header file. ;-)
>
> Thanks,
> Kevin
> >
> >Perhaps the following from xenlinux/arch/ia64/Makefile:
> >
> > [ -e include/asm-xen/asm ] \
> > || ln -s asm-ia64 include/asm-xen/asm
> > [ -e include/asm-xen/xen-public ] \
> > || ln -s $(XEN_PATH)/xen/include/public \
> > include/asm-xen/xen-public
> > [ -e include/asm-ia64/xen/asm-xsi-offsets.h ] \
> > || ln -s
> $(XEN_PATH)/xen/include/asm-ia64/asm-xsi-offsets.h \
> > include/asm-ia64/xen/asm-xsi-offsets.h
> >
> >should instead be moved into a xenlinux/arch/ia64/xen/mkprep
> >script which could be made more robust, e.g. should check
> >that the links are made to real files. I can imagine
> >that with this new interdependency between the xenlinux
> >directory and the xen directory, not having the directories
> >in the right places (relative to each other) would be a
> >very common error and -- speaking from experience -- the
> >fix is not at all obvious.
> >
> >In fact, the execution of mkprep probably should be done
> >in xenlinux/arch/ia64/xen/Makefile. (And can the
> >CLEAN_FILES addition then be moved there as well?)
> >
> >Any script/Makefile experts want to give this a shot?
> >
> >Thanks,
> >Dan
> >
> >> -----Original Message-----
> >> From: Tian, Kevin [mailto:kevin.tian@xxxxxxxxx]
> >> Sent: Wednesday, August 24, 2005 7:26 AM
> >> To: Magenheimer, Dan (HP Labs Fort Collins);
> >> xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
> >> Subject: RE: [Xen-ia64-devel] How to clean xenlinux-ia64-2.6.12.hg?
> >>
> >> I tried following diff, and all necessary symbol linkss
> can be removed
> >> when "make clean". Then you can use "make XEN_PATH=..." to
> >> link new xen
> >> headerss again:
> >>
> >> --- a/arch/ia64/Makefile Fri Aug 12 21:15:45 2005
> >> +++ b/arch/ia64/Makefile Wed Aug 24 21:11:29 2005
> >> @@ -87,6 +87,7 @@
> >> $(Q)$(MAKE) $(clean)=$(boot)
> >>
> >> CLEAN_FILES += include/asm-ia64/.offsets.h.stamp vmlinux.gz
> >> bootloader
> >> +CLEAN_FILES += include/asm-xen/xen-public
> >> include/asm-ia64/xen/asm-xsi-offsets.h
> >>
> >> MRPROPER_FILES += include/asm-ia64/offsets.h
> >>
> >> Thanks,
> >> Kevin
> >>
> >> >-----Original Message-----
> >> >From: xen-ia64-devel-bounces@xxxxxxxxxxxxxxxxxxx
> >> >[mailto:xen-ia64-devel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of
> >> >Magenheimer, Dan (HP Labs Fort Collins)
> >> >Sent: Wednesday, August 24, 2005 7:35 AM
> >> >To: xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
> >> >Subject: [Xen-ia64-devel] How to clean xenlinux-ia64-2.6.12.hg?
> >> >
> >> >Because I am trying to build xenlinux against
> >> >multiple Xen trees, I need to clean the xenlinux
> >> >tree, then rebuild. Make clean doesn't seem
> >> >to clean everything. Indeed, I can't seem to
> >> >(quickly) find an algorithm of which files to
> >> >delete that, when combined with "make clean"
> >> >will allow me to rebuild.
> >> >
> >> >Is the makefile code to check/ln various files
> >> >from the xen directory incorrect or incomplete?
> >> >Is there a "rm xxx yyy zzz" that will remove
> >> >all the files so that (with make clean) I
> >> >can rebuild using a different XEN_PATH?
> >> >Doing a "rm -fr *; hg co -C"
> >> >is an option (I think) but takes forever.
> >> >
> >> >Thanks,
> >> >Dan
> >> >
> >> >_______________________________________________
> >> >Xen-ia64-devel mailing list
> >> >Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
> >> >http://lists.xensource.com/xen-ia64-devel
> >>
>
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
|