2011/6/9 Akinobu Mita <akinobu.mita@xxxxxxxxx>: > 2011/6/9 GuanXuetao <gxt@xxxxxxxxxxxxxxx>: >> From: Guan Xuetao <gxt@xxxxxxxxxxxxxxx> >> >> Remove the __uc32_ prefix in find bitops functions. >> see commit <19de85ef574c3a2182e3ccad9581805052f14946> >> bitops: add #ifndef for each of find bitops >> >> Signed-off-by: Guan Xuetao <gxt@xxxxxxxxxxxxxxx> >> Cc: Akinobu Mita <akinobu.mita@xxxxxxxxx> >> --- >> arch/unicore32/include/asm/bitops.h | 6 ------ >> arch/unicore32/kernel/ksyms.c | 4 ++-- >> arch/unicore32/lib/findbit.S | 14 ++++++++------ >> 3 files changed, 10 insertions(+), 14 deletions(-) >> >> diff --git a/arch/unicore32/include/asm/bitops.h b/arch/unicore32/include/asm/bitops.h >> index 1628a63..a9653f0 100644 >> --- a/arch/unicore32/include/asm/bitops.h >> +++ b/arch/unicore32/include/asm/bitops.h >> @@ -13,12 +13,6 @@ >> #ifndef __UNICORE_BITOPS_H__ >> #define __UNICORE_BITOPS_H__ >> >> -#define find_next_bit __uc32_find_next_bit >> -#define find_next_zero_bit __uc32_find_next_zero_bit >> - >> -#define find_first_bit __uc32_find_first_bit >> -#define find_first_zero_bit __uc32_find_first_zero_bit >> - > > Is this patch really fix the build error? > > If these find_*_bit macros are removed, vmlinux will have multiple > definisions of find_*_bit. Because lib/find_next_bit.c is built > unconditionally after the commit 63e424c84429903c92a0f1e9654c31ccaf6694d0 > ("arch: remove CONFIG_GENERIC_FIND_{NEXT_BIT,BIT_LE,LAST_BIT}". The attached patch hopefully fix the build error but it is untested because I can't find crosstool for unicore32. So could you apply this patch on top of your patch and check whether it fixes?
From 133331e9314388e78619ed77cc62f6ad04233299 Mon Sep 17 00:00:00 2001 From: Akinobu Mita <akinobu.mita@xxxxxxxxx> Date: Thu, 9 Jun 2011 22:28:37 +0900 Subject: [PATCH] unicore32: fix build error for find bitops Signed-off-by: Akinobu Mita <akinobu.mita@xxxxxxxxx> --- arch/unicore32/include/asm/bitops.h | 17 +++++++++++++++++ 1 files changed, 17 insertions(+), 0 deletions(-) diff --git a/arch/unicore32/include/asm/bitops.h b/arch/unicore32/include/asm/bitops.h index a9653f0..fb8a29c 100644 --- a/arch/unicore32/include/asm/bitops.h +++ b/arch/unicore32/include/asm/bitops.h @@ -17,6 +17,7 @@ #define _ASM_GENERIC_BITOPS___FLS_H_ #define _ASM_GENERIC_BITOPS_FFS_H_ #define _ASM_GENERIC_BITOPS___FFS_H_ +#define _ASM_GENERIC_BITOPS_FIND_H_ /* * On UNICORE, those functions can be implemented around * the cntlz instruction for much better code efficiency. @@ -36,6 +37,22 @@ static inline int fls(int x) #define ffs(x) ({ unsigned long __t = (x); fls(__t & -__t); }) #define __ffs(x) (ffs(x) - 1) +extern unsigned long find_next_bit(const unsigned long *addr, unsigned long + size, unsigned long offset); +#define find_next_bit find_next_bit + +extern unsigned long find_next_zero_bit(const unsigned long *addr, unsigned + long size, unsigned long offset); +#define find_next_zero_bit find_next_zero_bit + +extern unsigned long find_first_bit(const unsigned long *addr, + unsigned long size); +#define find_first_bit find_first_bit + +extern unsigned long find_first_zero_bit(const unsigned long *addr, + unsigned long size); +#define find_first_zero_bit find_first_zero_bit + #include <asm-generic/bitops.h> #endif /* __UNICORE_BITOPS_H__ */ -- 1.7.4.4