Ядро 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