[coreboot] r827 - in coreboot-v3: include/device lib

svn at coreboot.org svn at coreboot.org
Thu Aug 28 00:29:38 CEST 2008


Author: hailfinger
Date: 2008-08-28 00:29:38 +0200 (Thu, 28 Aug 2008)
New Revision: 827

Modified:
   coreboot-v3/include/device/device.h
   coreboot-v3/include/device/pci_ops.h
   coreboot-v3/lib/stage2.c
Log:
gcc -fwhole-program needs to mark any function which is used outside the
current compilation unit to be marked as externally_visible. We have
EXPORT_SYMBOL exactly for that purpose.

This applies to the following symbols used by x86emu and/or vm86:
- pci_read_config8
- pci_read_config16
- pci_read_config32
- pci_write_config8
- pci_write_config16
- pci_write_config32
- dev_find_pci_device
- dev_find_slot
It also applies to the main entry point of stage2:
- stage2

With this patch, I can use -fwhole-program for stage2 without any
problems. For standard compilation, this is a noop.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006 at gmx.net>
Acked-by: Ronald G. Minnich <rminnich at gmail.com>


Modified: coreboot-v3/include/device/device.h
===================================================================
--- coreboot-v3/include/device/device.h	2008-08-27 05:30:50 UTC (rev 826)
+++ coreboot-v3/include/device/device.h	2008-08-27 22:29:38 UTC (rev 827)
@@ -24,6 +24,7 @@
 #include <types.h>
 #include <device/resource.h>
 #include <device/path.h>
+#include <shared.h>
 
 /**
  * Create a 32-bit value from four characters. This is better
@@ -268,8 +269,10 @@
 struct device * alloc_find_dev(struct bus *parent, struct device_path *path, struct device_id *id);
 struct device * dev_find_device (struct device_id *devid, struct device * from);
 struct device *dev_find_pci_device(u16 vendor, u16 device, struct device *from);
+EXPORT_SYMBOL(dev_find_pci_device);
 struct device * dev_find_class (unsigned int class, struct device * from);
 struct device * dev_find_slot (unsigned int bus, unsigned int devfn);
+EXPORT_SYMBOL(dev_find_slot);
 struct device * dev_find_slot_on_smbus (unsigned int bus, unsigned int addr);
 void default_device_constructor(struct device *dev, struct device_operations *constructor);
 

Modified: coreboot-v3/include/device/pci_ops.h
===================================================================
--- coreboot-v3/include/device/pci_ops.h	2008-08-27 05:30:50 UTC (rev 826)
+++ coreboot-v3/include/device/pci_ops.h	2008-08-27 22:29:38 UTC (rev 827)
@@ -24,11 +24,17 @@
 #include <shared.h>
 
 u8 pci_read_config8(struct device * dev, unsigned where);
+EXPORT_SYMBOL(pci_read_config8);
 u16 pci_read_config16(struct device * dev, unsigned where);
+EXPORT_SYMBOL(pci_read_config16);
 u32 pci_read_config32(struct device * dev, unsigned where);
+EXPORT_SYMBOL(pci_read_config32);
 void pci_write_config8(struct device * dev, unsigned where, u8 val);
+EXPORT_SYMBOL(pci_write_config8);
 void pci_write_config16(struct device * dev, unsigned where, u16 val);
+EXPORT_SYMBOL(pci_write_config16);
 void pci_write_config32(struct device * dev, unsigned where, u32 val);
+EXPORT_SYMBOL(pci_write_config32);
 
 u8 pci_conf1_read_config8(u32 bdf, int where);
 EXPORT_SYMBOL(pci_conf1_read_config8);

Modified: coreboot-v3/lib/stage2.c
===================================================================
--- coreboot-v3/lib/stage2.c	2008-08-27 05:30:50 UTC (rev 826)
+++ coreboot-v3/lib/stage2.c	2008-08-27 22:29:38 UTC (rev 827)
@@ -93,3 +93,4 @@
 
 	return 0;
 }
+EXPORT_SYMBOL(stage2);





More information about the coreboot mailing list