1

I'm trying to build the 3.8.11 kernel for arm architecture and I use the tool chain provided by the vendor of my eval board for arm sbc (technologic systems).

I see this issue while compiling the default vanilla kernel 3.8.11 with my arm tool chain.(I know this won't boot my board yet, but I'm, just trying to compile for now) and I see some issues with -fstack-protector

Below is my error log

   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....

I'm using the gcc 4.0.1 toolchain

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

Could someone please help me to bypass this issue? Moving to a new tool chain is tough, because this is the latest tool-chain that the vendor has provided. I see an option in the KBUILD_CFLAGS in the kernel Makefile for fno-stack-protector but I guess it is not doing any good., or I'm not using it correctly.

I'm also just using the default kernel configuration, just make menuconfig and save as .config, no board related configuration yet. All I want is just to be able to compile this kernel to get started.

devgp
  • 1,321
  • 3
  • 17
  • 36

1 Answers1

0

Figured it out. While configuring the kernel., Under Kernel Feature ---> Disabling "Enable -fstack-protector buffer overflow detection" fixed this problem. It was because my toolchain gcc 4.0.1 did not have -fstack-protection feature.

devgp
  • 1,321
  • 3
  • 17
  • 36
  • With a 4.4 kernel, I found this under "General Setup". I would recommend using the search feature "/" for CONFIG_CC_STACKPROTECTOR_STRONG – Kevin May 10 '17 at 00:46