我在这里有这个典型的要求:
内核/arch/arm/lib/csumpartial.S
中有一个文件,该文件具有一个名为csumpartial()
的函数,该函数计算16位校验和(显然是汇编代码),并且此函数与EXPORT符号一起导出。
我现在使用名为csumpartial.c
的文件中的内在函数通过NEON优化实现了相同的功能
我有以下要求:
-为此,我应该将csumpartial.S文件替换为csumpartial.C文件吗?但是,接下来该如何更换(需要注意哪些事项)?
-mfpu=neon -mfloat-abi=softfp -flax-vector-conversions -O3
进行编译,以进行NEON优化。-那么在哪里以及如何提及此编译器标志?
简而言之,在编译内核时,应完全弃用汇编版本,并使用
-mfpu=neon -mfloat-abi=softfp -flax-vector-conversions -O3
标志编译c版本。当内核中的某人调用csumpartial
时,应该调用该函数的c版本早期的帮助将不胜感激。
很少输入:
让我知道更多信息
注意:只有我将使用这个经过编辑的内核,因此我了解这种替换所带来的风险
最佳答案
如果您只想构建修改后的内核,请使用命令行中所需的编译标志将csumpartial.c编译为csumpartial.o。之后,编译整个内核。 GNU make不会将.S重新编译为具有更高时间戳的.o文件。
作为永久解决方案:删除csumpartial.S,创建csumpartial.c,并将以下行添加到/arch/arm/lib/Makefile:
CFLAGS_csumpartial.o += -mfpu=neon -mfloat-abi=softfp -flax-vector-conversions -O3
# seems this line is not necessary
$(obj)/csumpartial.o: $(obj)/csumpartial.c
关于linux - 如何调用MyChecksum而不是内核校验和(内核校验和汇编代码),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14196270/