#buildroot
#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 по техническим причинам, но этому потоку уже несколько лет, и я еще не до конца попытался его понять.
Ответ №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)
Комментарии:
1. Ах, спасибо, Арноут! Я должен был попробовать это. Это будет красиво. Единственное, чего сейчас не хватает для достижения совершенства, — это отсутствия необходимости строить из SRCDIR из дерева вместо уродливой rsync.