C/C++ Cyanogenmod Как скомпилировать ядро, используя разные версии набора инструментов?

Я пытаюсь скомпилировать ядро ​​для CyanogenMod 13. Я получаю ошибку

ERROR: modpost: Found 2 section mismatch(es).
To see full details build your kernel with:
'make CONFIG_DEBUG_SECTION_MISMATCH=y'
 To build the kernel despite the mismatches, build with:
'make CONFIG_NO_ERROR_ON_MISMATCH=y'
 (NOTE: This is not recommended)

Я читаю это здесь. Что мне нужно, чтобы скомпилировать мое ядро, используя 4.7. Как я могу выбрать версию набора инструментов во время сборки CyanogenMod??

2 ответа

Решение

Спасибо @nopasara и его ценным комментариям.

Поэтому я провел небольшое исследование и обнаружил, что ядро ​​совместимо с arm-eabi tool chain не arm-linux-androideabi Набор инструментов. Так вот команда, которую я использовал

export PATH=$PATH:~/android/system/prebuilts/gcc/linux-x86/arm/arm-linux-eabi-4.7/bin/ && export ARCH=arm && export SUBARCH=arm && export CROSS_COMPILE=arm-linux-eabi- && make msm8226_defconfig O=~/android/system/out/target/product/E6790/obj/KERNEL_OBJ

а также

 make   O=~/android/system/out/target/product/E6790/obj/KERNEL_OBJ zImage -j4

Чтобы сделать с этим Cyanogenmod добавить следующую строку в свой BoardConfig.mk

  TARGET_KERNEL_CROSS_COMPILE_PREFIX := arm-eabi-

и либо использовать

 export TARGET_LEGACY_GCC_VERSION=4.7 

Или отредактируйте ~/android/system/build/core/combo/TARGET_linux-arm.mk и установите версию в

  $(combo_2nd_arch_prefix)TARGET_LEGACY_GCC_VERSION := 4.7

Я считаю, что вам нужно настроить gcc версии 4.7 и использовать переменную CC, чтобы установить его в качестве компилятора. Например make target CC=/bin/gcc4.7

Больше информации здесь и здесь.

Другие вопросы по тегам