Cross LFS - PPC - Ошибка при компиляции

Cross LFS - PPC - Ошибка при компиляции

Я пытаюсь собрать CLFS для процессора PPC 8270. Все было хорошо, пока я не использовал команду make ARCH=powerpc CROSS_COMPILE=${CLFS_TARGET}-.

CC      arch/powerpc/kernel/align.o
arch/powerpc/kernel/align.c: In function 'fix_alignment':
arch/powerpc/kernel/align.c:704:33: error: variable 'instruction' set but not used [-Werror=unused-but-set-variable]
cc1: all warnings being treated as errors

make[1]: *** [arch/powerpc/kernel/align.o] Error 1
make: *** [arch/powerpc/kernel] Error 2

В menuconfig, я использовал конфигурацию по умолчанию, за исключением того, что выбрал совместимость с семейством процессоров PPC 82XX.

решение1

Мне кажется, что это ошибка в align.c 2.6.39 и более ранних версиях относительно GCC >= 4.6. Я предполагаю, что вы строите на последней Fedora, в которой GCC 4.6 установлен по умолчанию. Ошибка не должна появляться при использовании GCC < 4.6 IMHO.

Переменная "instruction" объявляется в строке 704 и инициализируется нулем. Затем она переназначается в строке 746. Этого переназначения недостаточно, чтобы убрать предупреждение gcc. Я проверил это поведение, скомпилировав

int main()
{
    int i = 0;

    i = 4;
    return 1;
} 

с /usr/local/gcc-4.7.0/bin/gcc -Wall -o test test.cи получил

test.c:3:6: warning: variable ‘i’ set but not used [-Wunused-but-set-variable]

Переменная "instruction" упоминается только в коде, который ifdef'ed CONFIG_VSX, так что если у вас не установлен CONFIG_VSX, то вы увидите эту проблему при компиляции с GCC >= 4.6. Установка CONFIG_VSX должна решить проблему. Если это не то, что вам нужно, попробуйте установить CONFIG_PPC_DISABLE_WERROR в menuconfig или используйтеэтиинструкции, которые помогут вам отключить -Werror или исправить код.

Если вы исправите код, рассмотрите возможность отправки его на kernel.org, так как я вижу, что эта ошибка все еще существует в версии 3.3.

решение2

Решено копирование libbfd.2-22.so и zlib.so (переименован в zlib.so.1) в /tools/lib. Извините за глупую ошибку, я думал, что эти файлы уже там.

Связанный контент