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