[U-Boot] [PATCH 1/4] microblaze: Fix compilation warning in ext2_find_next_zero_bit
Michal Simek
monstr at monstr.eu
Thu Nov 8 08:57:17 CET 2012
On 11/08/2012 02:30 AM, Marek Vasut wrote:
> Dear Michal Simek,
>
>> On 10/05/2012 06:48 PM, Marek Vasut wrote:
>>> Dear Michal Simek,
>>>
>>>> ext2_find_next_zero_bit must be also static if __swab32 is also static.
>>>>
>>>> Warning:
>>>> include/asm/bitops.h:369:22: warning: '__fswab32' is static but
>>>> used in inline function 'ext2_find_next_zero_bit'
>>>> which is not static [enabled by default]
>>>>
>>>> Signed-off-by: Michal Simek <monstr at monstr.eu>
>>>> ---
>>>>
>>>> arch/microblaze/include/asm/bitops.h | 3 ++-
>>>> 1 files changed, 2 insertions(+), 1 deletions(-)
>>>>
>>>> diff --git a/arch/microblaze/include/asm/bitops.h
>>>> b/arch/microblaze/include/asm/bitops.h index e8c835f..eafa2b5 100644
>>>> --- a/arch/microblaze/include/asm/bitops.h
>>>> +++ b/arch/microblaze/include/asm/bitops.h
>>>> @@ -319,7 +319,8 @@ extern __inline__ int ext2_test_bit(int nr, const
>>>> volatile void * addr) #define ext2_find_first_zero_bit(addr, size) \
>>>>
>>>> ext2_find_next_zero_bit((addr), (size), 0)
>>>>
>>>> -extern __inline__ unsigned long ext2_find_next_zero_bit(void *addr,
>>>> unsigned long size, unsigned long offset) +static inline unsigned long
>>>> ext2_find_next_zero_bit(void *addr,
>>>> + unsigned long size, unsigned long offset)
>>>>
>>>> {
>>>>
>>>> unsigned long *p = ((unsigned long *) addr) + (offset >> 5);
>>>> unsigned long result = offset & ~31UL;
>>>
>>> I'd rather see it done the other way -- drop the inline and let compiler
>>> decide. What are the size penalties ?
>>
>> With inline
>> text data bss dec hex filename
>> 361914 14698 232344 608956 94abc ./u-boot
>>
>> without inline
>> text data bss dec hex filename
>> 361922 14698 232368 608988 94adc ./u-boot
>>
>> But the problem is that I can see a lot of warnings that this function is
>> unused. u-boot/include/asm/bitops.h:322:22: warning:
>> 'ext2_find_next_zero_bit' defined but not used [-Wunused-function]
>>
>> FYI: I have just grepped source tree and I see that the same solution is
>> used by blackfin/mips and powerpc.
>>
>> $ grep -rn "ext2_find_next_zero_bit" arch/ | grep static
>> arch/microblaze/include/asm/bitops.h:322:static inline unsigned long
>> ext2_find_next_zero_bit(void *addr,
>> arch/blackfin/include/asm/bitops.h:324:static __inline__ unsigned long
>> ext2_find_next_zero_bit(void *addr,
>> arch/mips/include/asm/bitops.h:830:static __inline__ unsigned long
>> ext2_find_next_zero_bit(void *addr, unsigned long size, unsigned long
>> offset) arch/powerpc/include/asm/bitops.h:344:static __inline__ unsigned
>> long ext2_find_next_zero_bit(void *addr,
>
> DAMN :-( Maybe we should focus on --gc-sections for whole u-boot. Anyway, I'd
> say apply this and then start working on the --gc-sections.
I have passed this to our toolchain guy.
Thanks,
Michal
--
Michal Simek, Ing. (M.Eng)
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel 2.6 Microblaze Linux - http://www.monstr.eu/fdt/
Microblaze U-BOOT custodian
More information about the U-Boot
mailing list