Linux内核编译错误elf_x86_64丢失

时间:2014-03-26 13:45:48

标签: c linux linux-kernel

我正在使用Ubuntu Linux 12.04和3.11内核。

对于我的工作,我必须修补内核以使其实时运行。

所以我用补丁下载了Linux 2.6.31.6内核,并试图修补,编译和安装它。

当我尝试编译它时出现了这个错误:

CC      arch/x86/vdso/vgetcpu.o
CC      arch/x86/vdso/vvar.o
VDSO    arch/x86/vdso/vdso.so.dbg

gcc: Error: elf_x86_64: File or directory not found
make[2]: *** [arch/x86/vdso/vdso.so.dbg] Error 1
make[1]: *** [arch/x86/vdso] Error 2
make: *** [arch/x86] Error 2

为了编译RT 2.6 ...内核我使用相同的配置文件,如3.11(当然有一些编辑点),我查看了/ arch / x86 / vdso目录和vdso.so.dbg文件缺少(我不知道从哪里得到它)。

我希望你能帮助我,如果你需要一些进一步的信息,我会尝试提供它们。

您诚挚的 阿德里安

2 个答案:

答案 0 :(得分:2)

我改变了arch/x86/vdso/Makefile

VDSO_LDFLAGS_vdso.lds = -m elf_x86_64 [...]
...
VDSO_LDFLAGS_vdso32.lds = -m elf_x86 [...]

VDSO_LDFLAGS_vdso.lds = -m64 [...]
...
VDSO_LDFLAGS_vdso32.lds = -m32 [...]

答案 1 :(得分:1)

问题是gcc如何从arch/x86/vdso/Makefile获取一些标志。替换

VDSO_LDFLAGS_vdso.lds = -m elf_x86_64

VDSO_LDFLAGS_vdso.lds = -m64

应该有用。