On Monday, May 29, 2023 10:06 AM, Jiawen Wu wrote: > On Friday, May 26, 2023 7:37 PM, Russell King (Oracle) wrote: > > On Fri, May 26, 2023 at 07:30:45PM +0800, kernel test robot wrote: > > > Kconfig warnings: (for reference only) > > > WARNING: unmet direct dependencies detected for I2C_DESIGNWARE_PLATFORM > > > Depends on [n]: I2C [=n] && HAS_IOMEM [=y] && (ACPI && COMMON_CLK [=y] || !ACPI) > > > Selected by [y]: > > > - TXGBE [=y] && NETDEVICES [=y] && ETHERNET [=y] && NET_VENDOR_WANGXUN [=y] && PCI [=y] > > > WARNING: unmet direct dependencies detected for SFP > > > Depends on [n]: NETDEVICES [=y] && PHYLIB [=y] && I2C [=n] && PHYLINK [=y] && (HWMON [=n] || HWMON [=n]=n) > > > Selected by [y]: > > > - TXGBE [=y] && NETDEVICES [=y] && ETHERNET [=y] && NET_VENDOR_WANGXUN [=y] && PCI [=y] > > > > ... and is basically caused by "select SFP". No. Do not do this unless > > you look at the dependencies for SFP and ensure that those are also > > satisfied - because if you don't you create messes like the above > > build errors. > > So how do I make sure that the module I need compiles and loads correctly, > rely on the user to manually select it? When I changed the TXGBE config to: ... depends on SFP select PCS_XPCS ... the compilation gave an error: drivers/net/phy/Kconfig:16:error: recursive dependency detected! drivers/net/phy/Kconfig:16: symbol PHYLIB is selected by PHYLINK drivers/net/phy/Kconfig:6: symbol PHYLINK is selected by PCS_XPCS drivers/net/pcs/Kconfig:8: symbol PCS_XPCS is selected by TXGBE drivers/net/ethernet/wangxun/Kconfig:40: symbol TXGBE depends on SFP drivers/net/phy/Kconfig:63: symbol SFP depends on PHYLIB For a resolution refer to Documentation/kbuild/kconfig-language.rst subsection "Kconfig recursive dependency limitations" Seems deleting "depends on SFP" is the correct way. But is this normal? How do we ensure the dependency between TXGBE and SFP?