上一个问题得到解答后:Adding a .S file to the linux kernel code我能够将.S文件添加到Linux内核make文件。但是,我的.S文件包含几个部分,它们替代了用C编写的函数。 我注释了这些函数,并将替换函数声明为全局变量,但是当我尝试链接内核时(使用make),我得到以下错误:将S文件添加到Linux内核时出现链接问题
arch/x86/kernel/vmlinux.lds:XXX: non constant or forward reference address expression for section .YYY
,我换下使用声明的原有功能: __attribute__ ((unused, __section__("YYY"))) notrace
ASM的部分使用声明:
.text
.globl YYY
我也尝试添加:
.type YYY,@function
我可能错过了一些声明的地方,但我不知道去哪里找。
任何想法?
出于好奇,你为什么在asm编码? – 2010-11-26 23:38:54