The Kconfig entry for zswap currently allows CRYPTO=m to satisfy the zswap dependency. However zswap is boolean (i.e. built-in) and has symbol dependencies on CRYPTO. Additionally, because the CRYPTO dependency is satisfied with =m, the additional selects zswap does can also be satisfied with =m, which leads to additional linking errors.
>From the report: ===== tree: git://git.kernel.org/pub/scm/linux/kernel/git/mhocko/mm.git since-3.9 head: 57cefddb141d6c9d0ab4f5a8589dd017f796a3f7 commit: 563f51c95b552e0d663df5bdf6cfc8e8a72d3ec6 [494/499] zswap: add to mm/ config: x86_64-randconfig-x004-0619 (attached as .config) All error/warnings: mm/built-in.o: In function `zswap_frontswap_invalidate_area': >> zswap.c:(.text+0x3a705): undefined reference to `zbud_free' mm/built-in.o: In function `zswap_free_entry': >> zswap.c:(.text+0x3a76b): undefined reference to `zbud_free' >> zswap.c:(.text+0x3a789): undefined reference to `zbud_get_pool_size' on and on... ===== This patch makes CRYPTO a built-in dependency of ZSWAP. This has the side effect of also making the selects built-in. Signed-off-by: Seth Jennings <sjenn...@linux.vnet.ibm.com> Reported-by: Fengguang Wu <fengguang...@intel.com> --- Andrew, please merge this into your mmotm ASAP as it fixes a demonstrable build break. mm/Kconfig | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mm/Kconfig b/mm/Kconfig index 949e8de..81763ae 100644 --- a/mm/Kconfig +++ b/mm/Kconfig @@ -490,7 +490,7 @@ config ZBUD config ZSWAP bool "Compressed cache for swap pages (EXPERIMENTAL)" - depends on FRONTSWAP && CRYPTO + depends on FRONTSWAP && CRYPTO=y select CRYPTO_LZO select ZBUD default n -- 1.8.3.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/