Bitbake не использует патч для gcc

У меня есть ситуация в дистрибутиве, основанном на Yocto 1.7, нацеленном на ARM, в результате чего я хотел бы применить патч к кросс-компиляции GCC 4.9.

Обычный bbappend механизм переопределения не работает для GCC, что является «специальным».

У меня есть gcc-cross_4.9.bbappend файл, который находит свою цель; но в остальном его как будто не существует. Патч не применяется, несмотря на удаление всех файлов штампов для принудительной перестройки с do_unpack, do_patch и do_config и далее.


person Kaz    schedule 22.03.2017    source источник


Ответы (2)


Ответ: обратите внимание на то, на какой пакет на самом деле распространяются do_unpack и do_patch. Это не gcc-cross или gcc, а gcc-source.

Все этапы и конфигурации gcc разделяют этапы распаковки виртуального пакета gcc-source; если вы нацеливаетесь на тех, у кого есть переопределения патчей, ничего не происходит, потому что ни один из них не выполняет никаких шагов по распаковке и установке исправлений.

Это файл с gcc-source базовым именем .bb, который управляет этими шагами.

Таким образом, я просто переименовал .bbappend, чтобы указать имя gcc-source, и это сработало.

person Kaz    schedule 22.03.2017

Я не знаю, сколько времени у вас ушло на отладку, но простой способ - выполнить

bitbake-layers show-appends | grep gcc

Вы сразу увидите, учитывается ли ваш bbappend yocto

person David Bensoussan    schedule 22.03.2017
comment
Дело в том, что Yocto принимает во внимание неправильный bbappend . Просто манипуляции, которые он проделывает с SRC_URI и еще много чего не имеют значения. Когда я запускаю вашу команду, она работает независимо от того, правильное у меня имя или неправильное, показывая именно то, что я уже знаю: мой gcc-whatever_4.9.bbappend связан с gcc-wbatever_4.9.bb рецептом Poky. Просто whatever может быть cross или source. - person Kaz; 24.03.2017