Как выбрать пользовательский исходный код OVERRIDE_SRCDIR для GCC при сборке Buildroot?

Я использовал настройки BR2_PACKAGE_OVERRIDE_FILE + <pkg>_OVERRIDE_SRCDIR в Buildroot 2018.05 для успешного отслеживания представляющих интерес пакетов, таких как Binutils и glibc, в качестве подмодулей моего проекта:

BINUTILS_OVERRIDE_SRCDIR = ../../submodules/binutils-gdb
GLIBC_OVERRIDE_SRCDIR = ../../submodules/glibc

Однако, когда я попробовал аналогичную процедуру для GCC, похоже, она не подействовала:

GCC_OVERRIDE_SRCDIR = ../../submodules/gcc

Например, под build/ в папке сборки я получаю обычное:

host-gcc-final-7.3.0
host-gcc-initial-7.3.0

вместо ожидаемых -custom версий.

Есть ли способ достичь этого?

Возможно, http://buildroot-busybox.2317881.n4.nabble.com/Internal-toolchain-wrapper-ccache-fixes-tp113064p113187.html подразумевает, что это просто исключение для GCC по техническим причинам, но этому потоку уже несколько лет, и я еще не пытался полностью понять это.


person Ciro Santilli 新疆再教育营六四事件ۍ    schedule 04.03.2019    source источник


Ответы (1)


gcc не является фактическим пакетом. Он состоит из двух пакетов с общей конфигурацией: gcc-initial и gcc-final. Таким образом, вы должны установить

GCC_INITIAL_OVERRIDE_SRCDIR = ../../submodules/gcc
GCC_FINAL_OVERRIDE_SRCDIR = ../../submodules/gcc

или, если немного учесть это так же, как это делают пакеты в дереве:

GCC_OVERRIDE_SRCDIR = ../../submodules/gcc
GCC_INITIAL_OVERRIDE_SRCDIR = $(GCC_OVERRIDE_SRCDIR)
GCC_FINAL_OVERRIDE_SRCDIR = $(GCC_OVERRIDE_SRCDIR)
person Arnout    schedule 05.03.2019
comment
О, спасибо, Арноут! Я должен был попробовать это. Это будет красиво. Единственное, чего сейчас не хватает для совершенства, это отсутствие необходимости сборки из SRCDIR из дерева вместо уродливого rsync. - person Ciro Santilli 新疆再教育营六四事件ۍ 06.03.2019