Thanks Ian, and attached is the patch to do that change. I'm not expert
in Makefile, so feel free to pin me for better solution. :-)
=============================
Libxc is the part coupling with platform context most tightly,
with some files which should be made arch dependent. Obvious example is
xc_***_build.c, which should behave upon vcpu_guest_context_t defined by
different platform.
Following patch is trying to move those files into arch
dependent directory. I only addressed 7 files by far, because
compilation succeeds on IPF simply after solving them. Since there's no
distinct boundary between them and other files, I'm lazy to add another
Makefile under arch-dep directory. Also no change to compile option
since they works fine on x86 and IPF currentlys.
To reduce the size of patch, a trick is used to move files when
first compilation. After that, you can simply remove 8 lines leading by
"TEMP" comment. IPF related changes will be sent to Dan later.
Signed-off-by Kevin Tian (Kevin.tian@xxxxxxxxx)
--- trunk.org/tools/libxc/Makefile 2005-05-09 16:01:18.000000000
+0800
+++ trunk/tools/libxc/Makefile 2005-05-18 20:35:01.000000000 +0800
@@ -21,16 +21,13 @@ SRCS += xc_domain.c
SRCS += xc_evtchn.c
SRCS += xc_gnttab.c
SRCS += xc_io.c
-SRCS += xc_linux_build.c
-SRCS += xc_plan9_build.c
-SRCS += xc_linux_restore.c
-SRCS += xc_linux_save.c
SRCS += xc_misc.c
SRCS += xc_physdev.c
SRCS += xc_private.c
-SRCS += xc_ptrace.c
-SRCS += xc_vmx_build.c
+SRCS += $(wildcard $(COMPILE_ARCH)/*.c)
+
+vpath %.c $(COMPILE_ARCH)
CFLAGS += -Wall
CFLAGS += -Werror
CFLAGS += -O3
@@ -67,6 +64,15 @@ mk-symlinks:
ln -sf ../../$(XEN_ROOT)/xen/include/public/io/*.h . )
( cd xen/linux >/dev/null ; \
ln -sf ../../$(LINUX_ROOT)/include/asm-xen/linux-public/*.h .
)
+#TEMP: Please delete following lines after applying the patch
+ [ -e $(COMPILE_ARCH) ] || mkdir -p $(COMPILE_ARCH)/
+ [ ! -e xc_linux_build.c ] || mv xc_linux_build.c
$(COMPILE_ARCH)/
+ [ ! -e xc_plan9_build.c ] || mv xc_plan9_build.c
$(COMPILE_ARCH)/
+ [ ! -e xc_vmx_build.c ] || mv xc_vmx_build.c $(COMPILE_ARCH)/
+ [ ! -e xc_linux_save.c ] || mv xc_linux_save.c $(COMPILE_ARCH)/
+ [ ! -e xc_linux_restore.c ] || mv xc_linux_restore.c
$(COMPILE_ARCH)/
+ [ ! -e xc_ptrace.c ] || mv xc_ptrace.c $(COMPILE_ARCH)/
+ [ ! -e linux_boot_params.h ] || mv linux_boot_params.h
$(COMPILE_ARCH)/
install: build
[ -d $(DESTDIR)/usr/$(LIBDIR) ] || $(INSTALL_DIR)
$(DESTDIR)/usr/$(LIBDIR)
@@ -83,7 +89,7 @@ TAGS:
etags -t $(SRCS) *.h
clean:
- rm -rf *.a *.so* *.o *.opic *.rpm $(LIB) *~ $(DEPS) xen
+ rm -rf *.a *.so* *.o *.opic *.rpm $(LIB) *~ $(DEPS) xen
$(COMPILE_ARCH)/*.o $(COMPILE_ARCH)/*.opic
rpm: build
rm -rf staging
Thanks,
Kevin
>-----Original Message-----
>From: Ian Pratt [mailto:m+Ian.Pratt@xxxxxxxxxxxx]
>Sent: Wednesday, May 18, 2005 3:08 PM
>To: Tian, Kevin; xen-devel@xxxxxxxxxxxxxxxxxxx
>Cc: xen-ia64-devel@xxxxxxxxxxxxxxxxxxx; ian.pratt@xxxxxxxxxxxx
>Subject: RE: [Xen-devel] Arch dependent tools/libxc?
>
>
>> Hi, list,
>> When trying to add support for multiple domains on
>> IPF/VTI, immediately we realized current tools/libxc too x86
>> specific, like xc_linux_build.c, xc_linux_save.c, etc. which
>> are always compiled assumed upon x86 vcpu_guest_context_t.
>> Ideally they should only be compiled upon specific platform.
>>
>> One solution is to add bunch of boring "ifdef
>> __x86_32... ifdef __ia64__" in Makefile, which however gonna
>> pollute many places. Since tools/libxc is the place coupled
>> with arch context most tightly, a better option may be to
>> move those files into arch dependent directory like
>> tools/libxc/{x86, ia64, etc}:
>> Xc_linux_build.c
>> Xc_plan9_build.c
>> Xc_vmx_build.c
>> Xc_linux_save.c
>> Xc_linux_restore.c
>> Xc_ptrace.c
>> Xc_ptrace_core.c
>> And some header files like linux_boot_params.h
>
>Yep, this needs to happen.
>
>Ian
patch_libxc_arch_dep
Description: patch_libxc_arch_dep
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|