我构建的Linux内核模块支持mips体系结构的SSP。我将-fstack-protector-all添加到编译标志。但是在加载这个模块之后,我得到了一些未定义的引用,如__stack_chk_guard和__stack_chk_fail。但我添加了libssp.so到链接器。它看起来像我应该在内核像这样导出这些符号:内核模块中的符号
EXPORT_SYMBOL(__stack_chk_guard);
因为我的内核是旧的,没有包含他们没有。但不幸的是我应该使用这个版本。
我的问题是:为什么用户空间可以使用工具链库中的这些符号,但内核空间不?
我想,我错过了一些linux内核的要领。
+1我想你理论上可以从文件加载代码,映射它,执行并重新启动:) – 2013-03-01 17:31:52