Hi David, On Sat, Apr 25, 2020 at 6:47 AM David Gow <davidgow@xxxxxxxxxx> wrote: > The symbol 'gpio_of_notifier' doesn't exist without both CONFIG_OF_GPIO > and CONFIG_OF_DYNAMIC enabled, but is referenced when only > CONFIG_OF_DYNAMIC is enabled. > > This broke building with 'make ARCH=um allyesconfig': Right, so you have CONFIG_OF=y, but CONFIG_OF_GPIO=n, as the latter depends on HAS_IOMEM, which is not set for UML. Interestingly, the latter dependency claims to have been added because gpiolib-of.c uses ioremap()/iounmap(). However, it seems to have never called ioremap(), only of_iomap() and iounmap(). of_iomap() itself is available, as it depends on OF_ADDRESS, which depends on HAS_IOMEM || UML. Interestingly, of_iomap() calls ioremap(), without a dependency on HAS_IOMEM? So perhaps the dependency of CONFIG_OF_GPIO on HAS_IOMEM can be dropped these days, solving this issue as well? > --------------- > /usr/bin/ld: drivers/gpio/gpiolib.o: in function `gpiolib_dev_init': > ./drivers/gpio/gpiolib.c:5293: undefined reference to `gpio_of_notifier' > collect2: error: ld returned 1 exit status > --------------- > > Fixes: 63636d956c45 ("gpio: of: Add DT overlay support for GPIO hogs") > Signed-off-by: David Gow <davidgow@xxxxxxxxxx> Anyway: Reviewed-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx> > --- a/drivers/gpio/gpiolib.c > +++ b/drivers/gpio/gpiolib.c > @@ -5289,8 +5289,9 @@ static int __init gpiolib_dev_init(void) > gpiolib_initialized = true; > gpiochip_setup_devs(); > > - if (IS_ENABLED(CONFIG_OF_DYNAMIC)) > - WARN_ON(of_reconfig_notifier_register(&gpio_of_notifier)); > +#if IS_ENABLED(CONFIG_OF_DYNAMIC) && IS_ENABLED(CONFIG_OF_GPIO) > + WARN_ON(of_reconfig_notifier_register(&gpio_of_notifier)); > +#endif /* CONFIG_OF_DYNAMIC && CONFIG_OF_GPIO */ > > return ret; > } 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