Hi Krzysztof, On Tue, May 25, 2021 at 2:04 PM Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxxxxx> wrote: > On 24/05/2021 08:39, Dmitry Osipenko wrote: > > 24.05.2021 11:54, Geert Uytterhoeven пишет: > >> On Mon, May 24, 2021 at 1:26 AM Dmitry Osipenko <digetx@xxxxxxxxx> wrote: > >>> There are couple older platforms that can't be compile-tested because they > >>> partially implement CLK API. It causes build failure of kernel drivers due > >>> to the missing symbols of the unimplemented part of CLK API. > >>> > >>> These platforms are: ARM EP93XX, ARM OMAP1, m68k ColdFire, MIPS AR7, > >>> MIPS Ralink. > >>> > >>> Disable compile-testing for HAVE_LEGACY_CLK=y. > >>> > >>> Reported-by: kernel test robot <lkp@xxxxxxxxx> > >>> Signed-off-by: Dmitry Osipenko <digetx@xxxxxxxxx> > >> > >> Thanks for your patch! > >> > >>> --- a/init/Kconfig > >>> +++ b/init/Kconfig > >>> @@ -131,7 +131,7 @@ config INIT_ENV_ARG_LIMIT > >>> > >>> config COMPILE_TEST > >>> bool "Compile also drivers which will not load" > >>> - depends on HAS_IOMEM > >>> + depends on HAS_IOMEM && !HAVE_LEGACY_CLK > >> > >> That sounds a bit drastic to me. Usually we just try to implement the > >> missing functionality, or provide stubs. > >> Which functions are missing? > > > > Everything that belongs to CONFIG_COMMON_CLK needs stubs. > > > > That is everything under CONFIG_HAVE_CLK [1], excluding functions > > belonging to clk-devres.o and clk-bulk.o [2]. The HAVE_LEGACY_CLK > > selects HAVE_CLK, but the COMMON_CLK is under HAVE_CLK too. > > > > [1] > > https://elixir.bootlin.com/linux/v5.13-rc3/source/include/linux/clk.h#L786 > > [2] > > https://elixir.bootlin.com/linux/v5.13-rc3/source/drivers/clk/Makefile#L3 > > > > This problem is repeated over and over again for the past years. Some > > maintainers are adding "depends on COMMON_CLK" for COMPILE_TEST of each > > driver, but this doesn't solve the root of the problem, and thus, it's > > constantly reoccurring. > > > > Recently Krzysztof Kozlowski added couple more clk stubs for MIPS, but > > still lots of stubs are missing. Some platforms don't have any stubs at > > all and apparently nobody cares to fix them. > > > > There 3 possible solutions: > > > > 1. Factor out COMMON_CLK from HAVE_LEGACY_CLK, if this is possible > > 2. Build stubs universally, maybe using weak functions. > > I vote for this one - global stubs. Yep. > Or for a new one: > 4. Disable COMPILE_TEST for specific platforms (mentioned in commit > msg). Eventually could be like: > config RALINK > depends !COMPILE_TEST || (COMPILE_TEST && COMMON_CLK) That's a neat idea! Of course there's a fifth option: 5. Convert legacy platforms to COMMON_CLK. Which is already happening for ARM EP93XX. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds