On Mon, May 6, 2024 at 12:22 PM Sergey Senozhatsky <senozhatsky@xxxxxxxxxxxx> wrote: > > On (24/05/05 15:48), Sergey Senozhatsky wrote: > > On (24/05/05 14:13), Sergey Senozhatsky wrote: > > > On (24/05/05 13:39), Sergey Senozhatsky wrote: > > > [..] > > > > > I guess just pick one if none were selected. > > > > > > How do I pick one if none were selected? Does Kconfig support > > > something like that? > > > > This triggers Kconfig error: > > > > config ZRAM_EMPTY_BACKENDS_FIXUP > > bool > > depends on ZRAM && !ZRAM_BACKEND_LZO && !ZRAM_BACKEND_LZ4 && \ > > !ZRAM_BACKEND_LZ4HC && !ZRAM_BACKEND_ZSTD && \ > > !ZRAM_BACKEND_DEFLATE > > select ZRAM_BACKEND_LZO > > > > > > drivers/block/zram/Kconfig:17:error: recursive dependency detected! > > drivers/block/zram/Kconfig:17: symbol ZRAM_BACKEND_LZO is selected by ZRAM_EMPTY_BACKENDS_FIXUP > > drivers/block/zram/Kconfig:52: symbol ZRAM_EMPTY_BACKENDS_FIXUP depends on ZRAM_BACKEND_LZO > > > > > > I'm a little surprised by this - EMPTY_BACKENDS_FIXUP does not depend > > on ZRAM_BACKEND_LZO, it depends on NOT ZRAM_BACKEND_LZO. > > > > Let me Cc linux-kbuild. Kbuild folks, how do I workaround this? > > Is this how one does it? > > config ZRAM_BACKEND_LZO > bool "lzo and lzo-rle compression support" > depends on ZRAM > default y if !ZRAM_BACKEND_LZ4 && !ZRAM_BACKEND_LZ4HC && \ > !ZRAM_BACKEND_ZSTD && !ZRAM_BACKEND_DEFLATE > default n > select LZO_COMPRESS > select LZO_DECOMPRESS > > > User still can select N and then we'll have empty backends, but > at least default is Y if none of the algorithms were selected. > Is it good enough? I interpret this sentence into: "randconfig will eventually disable all ZRAM_BACKEND_*, causing the build error again. Is it good enough, Arnd?" Some possible solutions: config ZRAM_BACKEND_FORCE_LZO def_bool !ZRAM_BACKEND_LZ4 && !ZRAM_BACKEND_LZ4HC && \ !ZRAM_BACKEND_ZSTD && !ZRAM_BACKEND_DEFLATE depends on ZRAM select ZRAM_BACKEND_LZO config ZRAM_BACKEND_LZO bool "lzo and lzo-rle compression support" depends on ZRAM select LZO_COMPRESS select LZO_DECOMPRESS OR config ZRAM_BACKEND_FORCE_LZO def_bool !ZRAM_BACKEND_LZ4 && !ZRAM_BACKEND_LZ4HC && \ !ZRAM_BACKEND_ZSTD && !ZRAM_BACKEND_DEFLATE config ZRAM_BACKEND_LZO bool "lzo and lzo-rle compression support" if !ZRAM_BACKEND_FORCE_LZO depends on ZRAM default ZRAM_BACKEND_FORCE_LZO select LZO_COMPRESS select LZO_DECOMPRESS BTW, "default n" you are adding are redundant. -- Best Regards Masahiro Yamada