Can't you get the best of both worlds? Do the separation but
artificially glue them together again as a module at link time. This
solves the current distro problem and you can remove the linker hack as
soon as the distros get their act together.
James
---
diff --git a/drivers/ata/Makefile b/drivers/ata/Makefile
index 9f7b500..10101d7 100644
--- a/drivers/ata/Makefile
+++ b/drivers/ata/Makefile
@@ -1,8 +1,10 @@
obj-$(CONFIG_ATA) += libata.o
-obj-$(CONFIG_SATA_AHCI) += libahci.o ahci.o
-obj-$(CONFIG_SATA_ACARD_AHCI) += libahci.o acard-ahci.o
+obj-$(CONFIG_SATA_AHCI) += ahci_mod.o
+obj-ahci_mod-y += libahci.o ahci.o
+obj-ahci_mod-$(CONFIG_SATA_ACARD_AHCI) += acard-ahci.o
+obj-ahci_mod-$(CONFIG_SATA_MV_AHCI) += mv-ahci.o