[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] CFLAGS are for C compilers and other Unix traditions
Keir Fraser <Keir.Fraser@xxxxxxxxxxxx> writes: > On 21 May 2006, at 03:58, John D. Ramsdell wrote: > > > If you execute this command, you will note that the rule for > > assembling .S files is: > > > > COMPILE.S = $(CC) $(ASFLAGS) $(CPPFLAGS) $(TARGET_MACH) -c > > > > Note that you don't give the assembler CFLAGS. It's not a C > > compiler. > > We fixed this for Xen itself some time ago. If there are other places > in the tree that do this (maybe minios?), please do provide a patch. The Mini-OS makefile was recently patched so as to include the following rules: %.o: %.c $(HDRS) Makefile $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@ %.o: %.S $(HDRS) Makefile $(CC) $(ASFLAGS) $(CPPFLAGS) -c $< -o $@ Note the rules fail to include $(TARGET_MACH), which is part of the default rule for COMPILE.S, and $(TARGET_ARCH), which is normally part of COMPILE.c. When the appropriate GCC backends are installed on an i386 32-bit machine, the $(TARGET_MACH) flags, and the $(TARGET_ARCH) flags can be used to produce a Mini-OS elf file for both the 32 and 64 i386 architectures. You don't have to put your cross compilers in separate locations. I decided to test the use of Mini-OS as a library. My test application included just one file, app.c, and it resided in a directory outside the Xen sources. I wrote the obvious Makefile, and used the default rule to build app.o from app.c. This Makefile fails, of course, because $(TARGET_ARCH) is set to x86_32 by Config.mk, and the default rule is: COMPILE.c = $(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c I hadn't tracked down the source of my problem before I sent my post last night. I somehow thought that COMPILE.c used $(TARGET_MACH), instead of $(TARGET_ARCH), and therefore thought a fix was plausible. I now see that modifying Xen to work with the default rules is a big pain. On the plus side, tracking down this problem forced me to look at Config.mk, and see I can select a cross-compiler by setting CROSS_COMPILER to the bin directory of my cross compiler, rather than setting my path. John _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |