Ядро Android 'fstack-protector-strong не поддерживается`

Я использую Ubuntu 14.04. На моей машине установлен GCC 4.9. Я пытаюсь скомпилировать ядро ​​Android, и я получаю сообщение об ошибке ниже,

Makefile:660: Cannot use CONFIG_CC_STACKPROTECTOR_STRONG: -fstack-protector-strong not supported by compiler
  CHK     include/config/kernel.release
  CHK     include/generated/uapi/linux/version.h
  CHK     include/generated/utsrelease.h
make[1]: `include/generated/mach-types.h' is up to date.
  CC      kernel/bounds.s
arm-linux-gnueabihf-gcc: error: unrecognized command line option ‘-fstack-protector-strong’
make[1]: *** [kernel/bounds.s] Error 1
make: *** [prepare0] Error 2

Любой способ, которым я мог решить это?

2 ответа

Вам нужно отредактировать MakeFile в каталоге kernel/rpi, в котором мы работаем. См.: "Makefile: 660: Невозможно использовать CONFIG_CC_STACKPROTECTOR_STRONG: -fstack-protector-strong, не поддерживаемый компилятором"

Перейдите к строке 660 и закомментируйте блок кода, относящийся к CONFIG_CC_STACKPROTECTOR_STRONG, затем повторите попытку:)

Я расплавил эту проблему. Что касается вывода Makefile:660: Cannot use CONFIG_CC_STACKPROTECTOR_STRONG: -fstack-protector-strong not supported by compilerкомпилятор не поддерживает -fstack-protector-strong.

При компиляции ядра Android CROSS_COMPILE env устанавливает используемые нами цепочки инструментов gcc. Таким образом, вы можете установить env в положение цепочки инструментов gcc AOSP или вы можете загрузить новые цепочки инструментов и установить для него env.

Например:

# install toolchain,default in /usr/bin
sudo apt-get install gcc-aarch64-linux-gnu gcc-arm-linux-gnueab
export CROSS_COMPILE=/usr/bin/aarch64-linux-gnu-

или же

export CROSS_COMPILE=aarch64-linux-android-
export PATH=~/data/AOSP/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin:$PATH
Другие вопросы по тегам