首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >构建linux内核3.8.11时出错-无法识别的命令行选项"-fstack-protector“

构建linux内核3.8.11时出错-无法识别的命令行选项"-fstack-protector“
EN

Stack Overflow用户
提问于 2013-06-20 04:03:29
回答 1查看 4.3K关注 0票数 1

我正在尝试为arm架构构建3.8.11内核,并使用我的评估板供应商为arm sbc (技术系统)提供的工具链。

在使用arm工具链编译默认的vanilla内核3.8.11时,我发现了这个问题(我知道这还不能引导我的主板,但我现在只是在尝试编译),并且我看到了-fstack-protector的一些问题

下面是我的错误日志

代码语言:javascript
复制
   make -j4 zImage

  CHK     include/generated/uapi/linux/version.h
  HOSTCC  scripts/basic/fixdep
  CHK     include/generated/utsrelease.h
make[1]: `include/generated/mach-types.h' is up to date.
  CC      scripts/mod/empty.o
  HOSTCC  scripts/dtc/checks.o
  CC      kernel/bounds.s
cc1: error: unrecognized command line option "-fstack-protector"
make[2]: *** [scripts/mod/empty.o] Error 1
make[1]: *** [scripts/mod] Error 2
make[1]: *** Waiting for unfinished jobs....
  HOSTCC  scripts/dtc/data.o
  HOSTCC  scripts/genksyms/genksyms.o
cc1: error: unrecognized command line option "-fstack-protector"
make[1]: *** [kernel/bounds.s] Error 1
make: *** [prepare0] Error 2
make: *** Waiting for unfinished jobs....

我使用的是gcc 4.0.1工具链

代码语言:javascript
复制
arm-unknown-linux-gnu-gcc -v
Using built-in specs.
Target: arm-unknown-linux-gnu
Configured with: /data/buytenh/x/crosstool-0.38/build/arm-unknown-linux-gnu/gcc-4.0.1-glibc-2.3.5/gcc-4.0.1/configure --target=arm-unknown-linux-gnu --host=i686-host_pc-linux-gnu --prefix=/opt/crosstool/gcc-4.0.1-glibc-2.3.5/arm-unknown-linux-gnu --with-headers=/opt/crosstool/gcc-4.0.1-glibc-2.3.5/arm-unknown-linux-gnu/arm-unknown-linux-gnu/include --with-local-prefix=/opt/crosstool/gcc-4.0.1-glibc-2.3.5/arm-unknown-linux-gnu/arm-unknown-linux-gnu --disable-nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit --enable-languages=c,c++ --enable-shared --enable-c99 --enable-long-long
Thread model: posix
gcc version 4.0.1

有人能帮我绕过这个问题吗?迁移到新的工具链是困难的,因为这是供应商提供的最新工具链。我在内核Makefile的KBUILD_CFLAGS中看到了一个用于fno堆栈保护器的选项,但我猜它没有做任何好的事情,或者我没有正确使用它。

我也只是使用默认的内核配置,只需进行menuconfig并另存为.config,还没有与主板相关的配置。我所想要的就是能够编译这个内核来开始。

EN

回答 1

Stack Overflow用户

发布于 2013-06-20 07:29:41

我想通了。在配置内核时,在内核功能->下禁用"Enable -fstack-protector buffer overflow detection“修复了这个问题。这是因为我的工具链gcc 4.0.1没有-fstack保护功能。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17200271

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档