Компиляция Linux Buildrood переопределяет локальные изменения - PullRequest
0 голосов
/ 06 мая 2018

Я работаю над включением поддержки kexec в моем Linux (дистрибутив с проприетарностью) и хочу отладить инструменты kexec в пользовательском пространстве.
Я добавляю распечатки в kexec.c, который находится в buildroot / output / build / kexec-2.0.15 / kexec / kexec.c, но если я просто "сделаю" buildroot снова, он не будет похож на двоичный файл kexec был обновлен, и если я "сделаю все", это означает создание с нуля - исходный код kexec.c был переопределен, и я не вижу своих изменений.
Я предполагаю, что каждая сборка повторно извлекает пакет kexec, и поэтому мои изменения не влияют.

Может кто-нибудь помочь мне решить эту проблему?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 07 мая 2018

Если вы хотите только перезапустить процесс сборки пакета из его На этапе компиляции вы можете запустить make <package>-rebuild [...]. Это перезапустит компиляцию и установку пакет, но не с нуля: он в основном повторно выполняет make и make install внутри пакета, поэтому он будет перестраивать только те файлы, которые Измененное.

[...]

Внутренне, Buildroot создает так называемые файлы штампов для отслеживания какие этапы сборки были выполнены для каждого пакета. Они есть хранится в каталоге сборки пакета, output / build / - / и называются .stamp_. Команды, описанные выше, просто манипулируют этими файлами штампов, чтобы заставить Buildroot перезапустить определенный набор шагов сборки пакета процесс.

(из руководства по Buildroot, раздел Понимание того, как перекомпилировать пакеты - предлагаю прочитать весь раздел)

Кроме того, посмотрите на ваш журнал сборки. Если вы не видите строчку типа

>>> kexec 2.0.16 Building

тогда пакет kecxec не был (пере) собран.

0 голосов
/ 06 мая 2018

Попробуйте использовать "make kexec-rebuild".

...