Re: [PATCH net-next] net: ks8851: Fix mixed module/builtin build
From: Heiner Kallweit <hkallweit1@gmail.com>
Date: 2021-01-15 17:23:21
On 15.01.2021 16:59, Andrew Lunn wrote:
On Fri, Jan 15, 2021 at 04:05:57PM +0100, Marek Vasut wrote:quoted
On 1/15/21 4:00 PM, Andrew Lunn wrote:quoted
On Fri, Jan 15, 2021 at 02:42:39PM +0100, Marek Vasut wrote:quoted
When either the SPI or PAR variant is compiled as module AND the other variant is compiled as built-in, the following build error occurs: arm-linux-gnueabi-ld: drivers/net/ethernet/micrel/ks8851_common.o: in function `ks8851_probe_common': ks8851_common.c:(.text+0x1564): undefined reference to `__this_module' Fix this by including the ks8851_common.c in both ks8851_spi.c and ks8851_par.c. The DEBUG macro is defined in ks8851_common.c, so it does not have to be defined again.DEBUG should not be defined for production code. So i would remove it altogether. There is kconfig'ury you can use to make them both the same. But i'm not particularly good with it.We had discussion about this module/builtin topic in ks8851 before, so I was hoping someone might provide a better suggestion.Try Arnd Bergmann. He is good with this sort of thing. Andrew .
I'd say make ks8851_common.c a separate module. Then, if one of SPI / PAR is built in, ks8851_common needs to be built in too. To do so you'd have export all symbols from ks8851_common that you want to use in SPI /PAR.