[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH] ia64 mini-os compilation fix (FWD:[[Xen-ia64-devel] Re: MiniOS on ia64])



I'm forwarding this patch because it touches common code.
Please apply.


----- Forwarded message from Samuel Thibault <samuel.thibault@xxxxxxxxxxxx> 
-----

Hello,

Samuel Thibault, le Tue 11 Nov 2008 12:32:32 +0100, a écrit :
> Dietmar Hahn, le Tue 11 Nov 2008 09:47:18 +0100, a écrit :
> > This doesn't work on ia64 because the special object mini-os_app.o is not 
> > linkable with the other objects.
> 
> Ah, because it's empty, how odd :) Well I think it'd be better to just
> drop it from the link line. Here is a complete patch that seeems to work
> for me.

Here is a reworked version without the gntmap.h move (since Dietmar will
fix it another way), please apply.

Samuel


Fix mini-os ia64 compilation

- Avoid nested function to avoid a trampoline.
- Do not link mini-os_app.o when it is empty.

Signed-off-by: Samuel Thibault <samuel.thibault@xxxxxxxxxxxx>

diff -ur xen-unstable.hg/extras/mini-os/kernel.c 
xen-unstable.hg-mine/extras/mini-os/kernel.c
--- xen-unstable.hg/extras/mini-os/kernel.c     2008-11-11 12:05:03.000000000 
+0100
+++ xen-unstable.hg-mine/extras/mini-os/kernel.c        2008-11-11 
12:25:04.000000000 +0100
@@ -434,25 +434,25 @@
 
 static struct pcifront_dev *pci_dev;
 
-static void pcifront_thread(void *p)
+static void print_pcidev(unsigned int domain, unsigned int bus, unsigned int 
slot, unsigned int fun)
 {
-    void print(unsigned int domain, unsigned int bus, unsigned int slot, 
unsigned int fun)
-    {
-        unsigned int vendor, device, rev, class;
+    unsigned int vendor, device, rev, class;
 
-        pcifront_conf_read(pci_dev, domain, bus, slot, fun, 0x00, 2, &vendor);
-        pcifront_conf_read(pci_dev, domain, bus, slot, fun, 0x02, 2, &device);
-        pcifront_conf_read(pci_dev, domain, bus, slot, fun, 0x08, 1, &rev);
-        pcifront_conf_read(pci_dev, domain, bus, slot, fun, 0x0a, 2, &class);
+    pcifront_conf_read(pci_dev, domain, bus, slot, fun, 0x00, 2, &vendor);
+    pcifront_conf_read(pci_dev, domain, bus, slot, fun, 0x02, 2, &device);
+    pcifront_conf_read(pci_dev, domain, bus, slot, fun, 0x08, 1, &rev);
+    pcifront_conf_read(pci_dev, domain, bus, slot, fun, 0x0a, 2, &class);
 
-        printk("%04x:%02x:%02x.%02x %04x: %04x:%04x (rev %02x)\n", domain, 
bus, slot, fun, class, vendor, device, rev);
-    }
+    printk("%04x:%02x:%02x.%02x %04x: %04x:%04x (rev %02x)\n", domain, bus, 
slot, fun, class, vendor, device, rev);
+}
 
+static void pcifront_thread(void *p)
+{
     pci_dev = init_pcifront(NULL);
     if (!pci_dev)
         return;
     printk("PCI devices:\n");
-    pcifront_scan(pci_dev, print);
+    pcifront_scan(pci_dev, print_pcidev);
 }
 
 static void fs_thread(void *p)
diff -ur xen-unstable.hg/extras/mini-os/Makefile 
xen-unstable.hg-mine/extras/mini-os/Makefile
--- xen-unstable.hg/extras/mini-os/Makefile     2008-11-11 12:05:03.000000000 
+0100
+++ xen-unstable.hg-mine/extras/mini-os/Makefile        2008-11-11 
12:16:04.000000000 +0100
@@ -93,8 +93,12 @@
 $(OBJ_DIR)/$(TARGET)_app.o: $(APP_OBJS) app.lds
        $(LD) -r -d $(LDFLAGS) -\( $^ -\) $(APP_LDLIBS) --undefined main -o $@
 
-$(OBJ_DIR)/$(TARGET): links $(OBJS) $(OBJ_DIR)/$(TARGET)_app.o arch_lib
-       $(LD) -r $(LDFLAGS) $(HEAD_OBJ) $(OBJ_DIR)/$(TARGET)_app.o $(OBJS) 
$(LDARCHLIB) $(LDLIBS) -o $@.o
+ifneq ($(APP_OBJS),)
+APP_O=$(OBJ_DIR)/$(TARGET)_app.o 
+endif
+
+$(OBJ_DIR)/$(TARGET): links $(OBJS) $(APP_O) arch_lib
+       $(LD) -r $(LDFLAGS) $(HEAD_OBJ) $(APP_O) $(OBJS) $(LDARCHLIB) $(LDLIBS) 
-o $@.o
        $(OBJCOPY) -w -G $(GLOBAL_PREFIX)* -G _start $@.o $@.o
        $(LD) $(LDFLAGS) $(LDFLAGS_FINAL) $@.o $(EXTRA_OBJS) -o $@
        gzip -f -9 -c $@ >$@.gz


_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel


----- End forwarded message -----

-- 
yamahata

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.