linux
Module `i2c-designware-core' gets linked twice causing a linker error
Both I2C_DESIGNWARE_PLATFORM and I2C_DESIGNWARE_PCI will add `i2c-designware-core.o' to the list of object files to be linked against the respective module. When these features are compiled built-in in the kernel, both modules are part of a `built-in.o' object. The linker fails because both `i2c-designware-platform.o' and `i2c-designware-pci.o' contain duplicate definitions coming from `i2c-designware-core'.
Bug fixed by commit e68bb91baa0
| Type | MultipleDefinitions |
| Config | "I2C_DESIGNWARE_PLATFORM && I2C_DESIGNWARE_PCI" (2nd degree) |
| Fix-in | model, mapping, code |
| Location | drivers/ |
#ifdef CONFIG_I2C_DESIGNWARE_PLATFORM
int i2c_dw_init()
{
return 0;
}
#endif
#ifdef CONFIG_I2C_DESIGNWARE_PCI
int i2c_dw_init() // ERROR
{
return 0;
}
#endif
int main(void)
{
#if defined(CONFIG_I2C_DESIGNWARE_PLATFORM) || defined(CONFIG_I2C_DESIGNWARE_PCI)
i2c_dw_init();
#endif
return 0;
}