在 32 位 Linux 内核上编译内核模块会导致
"__udivdi3" [mymodule.ko] undefined!
"__umoddi3" [mymodule.ko] undefined!
在 64 位系统上一切正常。据我所知,原因是 32 位 Linux 内核不支持 64 位整数除法和取模。
如何找到发出 64 位操作的代码。它们很难手动找到,因为我无法轻松检查“/”是 32 位宽还是 64 位宽。如果“正常”函数未定义,我可以对它们进行 grep,但这在这里是不可能的。还有另一种搜索参考文献的好方法吗?某种“机器代码grep”?
该模块由数千行代码组成。我真的不能手动检查每一行。