Doubt regarding __udivdi3
Hi all, I'm trying to insert a module into the kernel (2.6.35.5). There are no errors during the "make" phase. There are only warnings regarding two symbols : WARNING: "__udivdi3" [/media/Study/project_work/splitting_merging/radc_try1/radc1.ko] undefined! WARNING: "__umoddi3" [/media/Study/project_work/splitting_merging/radc_try1/radc1.ko] undefined! But during the "insmod" step, the module is not getting inserted into the kernel saying that there is an undefined symbol in the .ko file of the module. dmesg O/P : adc1: Unknown symbol __fixsfsi (err 0) radc1: Unknown symbol __umoddi3 (err 0) radc1: Unknown symbol __udivdi3 (err 0) radc1: Unknown symbol __floatundisf (err 0) radc1: Unknown symbol __umoddi3 (err 0) radc1: Unknown symbol __udivdi3 (err 0) If anyone can help me with tackling these errors, it would be really helpful...... Regards, Gaurav
Hi I think you should check if these symbols are exported. i.e. If these symbols are in EXPORT_SYMBOL("<symbol name>"). If these are not exported then you would not be able to use it. I don't think you can insert the module with the "symbol unresolved" warning. On 5 January 2011 17:36, Gaurav Mahajan <gauravmahajan2007@gmail.com> wrote:
Hi all,
I'm trying to insert a module into the kernel (2.6.35.5). There are no errors during the "make" phase. There are only warnings regarding two symbols : WARNING: "__udivdi3" [/media/Study/project_work/splitting_merging/radc_try1/radc1.ko] undefined! WARNING: "__umoddi3" [/media/Study/project_work/splitting_merging/radc_try1/radc1.ko] undefined!
But during the "insmod" step, the module is not getting inserted into the kernel saying that there is an undefined symbol in the .ko file of the module.
dmesg O/P :
adc1: Unknown symbol __fixsfsi (err 0) radc1: Unknown symbol __umoddi3 (err 0) radc1: Unknown symbol __udivdi3 (err 0) radc1: Unknown symbol __floatundisf (err 0) radc1: Unknown symbol __umoddi3 (err 0) radc1: Unknown symbol __udivdi3 (err 0)
If anyone can help me with tackling these errors, it would be really helpful......
Regards, Gaurav
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
-- Thank you, Warm Regards, Asutosh Das # (91) 9818 4494 69
Hi Gaurav, I'm trying to insert a module into the kernel (2.6.35.5). There are no
errors during the "make" phase. There are only warnings regarding two symbols : WARNING: "__udivdi3" [/media/Study/project_work/splitting_merging/radc_try1/radc1.ko] undefined! WARNING: "__umoddi3" [/media/Study/project_work/splitting_merging/radc_try1/radc1.ko] undefined!
The symbol __udivdi3 & __umoddi3 are compiler generated functions calls for specific Arithmetic function in your code (In this case its division). The definitions of that function (for the specific ARCH your are building for) would be in the respective libraries (libgcc).
In your case, verify where you are (a) using the right cross compilers & (b) right cross-compiling libraries to link. Compile & Link without errors, and you should be able to insert the module properly. And one more thing, the libraries used for linking as well as libraries used during run time should be same to ensure ABI (Application binary interface) compatibility between them. ABI defines the standard for procedure call. Regards, Subbu
On Mit, 2011-01-05 at 19:21 +0530, Ponmuthu Subramaniam Nandan wrote:
Hi Gaurav,
I'm trying to insert a module into the kernel (2.6.35.5). There are no errors during the "make" phase. There are only warnings regarding two symbols : WARNING: "__udivdi3" [/media/Study/project_work/splitting_merging/radc_try1/radc1.ko] undefined! WARNING: "__umoddi3" [/media/Study/project_work/splitting_merging/radc_try1/radc1.ko] undefined!
The symbol __udivdi3 & __umoddi3 are compiler generated functions calls for specific Arithmetic function in your code (In this case its division). The definitions of that function (for the specific ARCH your are building for) would be in the respective libraries (libgcc).
The first hit on google is http://stackoverflow.com/questions/1063585/udivdi3-undefined-howto-find-code. That should explain it. Bernd -- Bernd Petrovitsch Email : bernd@petrovitsch.priv.at LUGA : http://www.luga.at
participants (4)
-
Asutosh Das -
Bernd Petrovitsch -
Gaurav Mahajan -
Ponmuthu Subramaniam Nandan