J'utilise Ubuntu 14.04. J'ai GCC 4.9 installé sur ma machine. J'essaie de compiler le noyau Android et j'obtiens l'erreur ci-dessous,
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
Est-ce que je pourrais résoudre ça?
Vous devez éditer le MakeFile dans le répertoire kernel/rpi dans lequel nous travaillons. Voir: "Makefile: 660: Impossible d'utiliser CONFIG_CC_STACKPROTECTOR_STRONG: -fstack-protector-strong non pris en charge par le compilateur"
Allez à la ligne 660 et commentez le bloc de code relatif à CONFIG_CC_STACKPROTECTOR_STRONG, puis réessayez :)
J'ai fondu ce problème. En ce qui concerne le résultat Makefile:660: Cannot use CONFIG_CC_STACKPROTECTOR_STRONG: -fstack-protector-strong not supported by compiler
, le compilateur ne prend pas en charge -fstack-protector-strong.
Lors de la compilation du noyau Android, le CROSS_COMPILE
env définit les chaînes d'outils gcc que nous avons utilisées. Vous pouvez donc définir env comme position de chaîne d'outils AOSP gcc ou vous pouvez télécharger de nouvelles chaînes d'outils et l'envoyer.
Par exemple:
# 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-
ou
export CROSS_COMPILE=aarch64-linux-Android-
export PATH=~/data/AOSP/prebuilts/gcc/linux-x86/aarch64/aarch64-linux-Android-4.9/bin:$PATH