On Sat, Dec 16, 2017 at 10:46:05PM -0500, Nicolas Pitre wrote: > Date: Fri, 10 Nov 2017 15:57:21 +0100 > From: Arnd Bergmann <a...@arndb.de> > Subject: [PATCH] cramfs: fix MTD dependency > > With CONFIG_MTD=m and CONFIG_CRAMFS=y, we now get a link failure: > > fs/cramfs/inode.o: In function `cramfs_mount': > inode.c:(.text+0x220): undefined reference to `mount_mtd' > fs/cramfs/inode.o: In function `cramfs_mtd_fill_super': > inode.c:(.text+0x6d8): undefined reference to `mtd_point' > inode.c:(.text+0xae4): undefined reference to `mtd_unpoint' > > This adds a more specific Kconfig dependency to avoid the > broken configuration. Alternatively we could make CRAMFS > itself depend on "MTD || !MTD" with a similar result. > > Fixes: 99c18ce580c6 ("cramfs: direct memory access support") > Signed-off-by: Arnd Bergmann <a...@arndb.de> > Signed-off-by: Nicolas Pitre <n...@linaro.org> > --- > fs/cramfs/Kconfig | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/fs/cramfs/Kconfig b/fs/cramfs/Kconfig > index f937082f3244..58e2fe40b2a0 100644 > --- a/fs/cramfs/Kconfig > +++ b/fs/cramfs/Kconfig > @@ -34,6 +34,7 @@ config CRAMFS_BLOCKDEV > config CRAMFS_MTD > bool "Support CramFs image directly mapped in physical memory" > depends on CRAMFS && MTD > + depends on CRAMFS=m || MTD=y
*Ugh* So basically the trouble case is CRAMFS=y, MTD=m; in that situation mount_mtd() et.al. are not stubbed out at compiler level (as they would with CRAMFS=y, MTD=n) and we end up with linker catching that. Not pretty solution, but... Linus, would you take that directly or should I include it into vfs.git pull request?