x86 should not enable CONFIG_GENERIC_HWEIGHT because lib/hweight.c is not used by x86. The only user is drivers/net/wireless/mediatek/mt76/mac80211.c Of course, this driver is wrong since drivers should use the generic API, hweight8(). After fixing it, x86 does not need to compile lib/hweight.c at all. The real implementation is located in arch/x86/lib/hweight.S Masahiro Yamada (2): wireless: mt76: call hweight8() instead of __sw_hweight8() x86: disable CONFIG_GENERIC_HWEIGHT and remove __HAVE_ARCH_SW_HWEIGHT arch/x86/Kconfig | 3 --- arch/x86/include/asm/arch_hweight.h | 2 -- drivers/net/wireless/mediatek/mt76/mac80211.c | 2 +- lib/hweight.c | 4 ---- 4 files changed, 1 insertion(+), 10 deletions(-) -- 2.7.4