Re: [PATCH] arch: metag: lib: add "umoddi3.S" file for __umoddi3()

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 12/19/2013 09:47 PM, James Hogan wrote:
> On 19/12/13 13:37, Chen Gang wrote:
>> On 12/19/2013 08:17 PM, James Hogan wrote:
>>> On 19/12/13 12:05, Chen Gang wrote:
>>>> Use objdump to get "umoddi3.S" for __umoddi3(), the original binary
>>>> file is "gcc-4.2.4-final/gcc/libgcc/umoddi3.o" which is generated by
>>>> "gcc-4.2.4/gcc/libgcc2.c".
>>>>
>>>> The relate error with allmodconfig:
>>>>
>>>>     MODPOST 2909 modules
>>>>   ERROR: "__umoddi3" [drivers/target/target_core_mod.ko] undefined!
>>>
>>> _umoddi3 is a 64bit division, which should be using the proper division
>>> functions provided by the kernel in <linux/math64.h>.
>>>
>>> It needs fixing wherever it comes from in drivers/target/target_core_mod.ko.
>>>
>>
>> After disassemble target_core_mod.ko, for me, the compiler will use
>> ___umoddi3 for '%' operator and use ___udivsi3 for '/' operator.
> 
> Yeh, % is in this case remainder from a 64bit division, for which the
> standard division functions in <linux/math64.h> should be used instead.
> 
>> If what I guess is correct, we need use/copy the "system library" which
>> compiler provides, so just use its ".o" file is OK (just like another
>> "arch/metag/lib/*.S" have done).
> 
> No, I believe there shouldn't be any use of the C 64bit division/modulo
> operations in generic kernel code in the first place, so like I said
> before the code in question should be fixed to use the proper functions
> in <linux/math64.h>.
> 

OK, thanks, your idea is one of fix ways.

Hmm... for me, it is still not a bad idea to add "__umoddi3" to metag.

 - there are already several 64-bit functions in "arch/metag/lib/*.S".

 - some of architectures already content "__umoddi3".

 - it is easier for users (e.g. various drivers) to use '%' and '/'.
     (especially, we have already support '/').

Thanks

> Cheers
> James
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
> 


-- 
Chen Gang

Open, share and attitude like air, water and life which God blessed
--
To unsubscribe from this list: send the line "unsubscribe linux-metag" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux ARM Kernel]     [Linux Wireless]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux