Можно ли ускорить сборки crosstool-ng после возникновения ошибок?
Я использую crosstool-ng для создания tolchain для beagleboard-xm. Сборка продолжается следующим образом:
[информация ] ================================================================= [INFO ] извлечение необходимых компонентов toolchain' tarballs [INFO ] Извлечение tarballs необходимых компонентов toolchain: сделано в 0.51 s (at 00:08) [инфо ] ================================================================= [INFO ] извлечение и исправление toolchain компоненты [INFO ] Извлечение и исправление компонентов toolchain: выполнено за 7.91 s (в 00: 16) [ИНФОРМАЦИЯ ] ================================================================= [INFO ] установка GMP [INFO ] установка GMP: сделано в 140.48 s (at 02:36) [информация ] ================================================================= [INFO ] установка MPFR [INFO ] установка MPFR: сделано в 36.01 s (at 03:13) [информация ] ================================================================= [ИНФОРМАЦИЯ ] Установка PPL . .
`
сейчас, после 50 минут компиляции, он ломается с ошибкой:
[ошибка] настройка: ошибка: expat отсутствует или непригоден для использования"
Я установил необходимый пакет (в Ubuntu 10.04), но ошибка не является проблемой. Ранее я смог добраться до шагов, где он успешно установил компилятор, и до этого не было ошибок. Мне было интересно, есть ли способ пропустить инструмент над ранее успешными шагами, экономя время? Возможно ли это даже с тем, как работает crosstool-ng?
2 ответов
Да, это возможно. Запустите ct-ng вот так
CT_DEBUG_CT_SAVE_STEPS=1 CT-ng build
после сбоя на определенном шаге просто найдите шаг в списке, созданном
список ct-ng-шаги
в этот момент Вы можете возобновить сборку, запустив
RESTART=libc_start_files CT-ng build
да, текущий crosstool-ng поддерживает эту функцию.
- включить эту функцию в меню
на ct-ng menuconfig
, config Paths and misc options
такой
───────────────────── Paths and misc options ─────────────────────
[*] Debug crosstool-NG
[ ] Pause between every steps
[*] Save intermediate steps
[*] gzip saved states
[*] Interactive shell on failed commands
2.когда вы построите, для каждого шага, сделанного успешно, вы увидите что-то вроде этого:
Saving state to restart at step 'xxx'...
3.когда сбой, после его исправления, используйте ct-ng LAST_SUCCESSFUL_STETP_NAME+
продолжать строить
мой пример:
CLi@PC-CLI-1 ~/develop/crosstool-ng/crosstool-ng-1.18.0_build
$ ct-ng list-steps
Available build steps, in order:
- libc_check_config
- companion_libs_for_build
- binutils_for_build
- companion_libs_for_host
- binutils_for_host
- cc_core_pass_1
- kernel_headers
- libc_start_files
- cc_core_pass_2
- libc
- cc_for_build
- cc_for_host
- libelf_for_target
- binutils_for_target
- debug
- test_suite
- finish
Use "<step>"p>" as action to execute only that step"+<step>"lt;step>" as action to execute up to tha"<step>+"se "<step>+" as action to execute from that step onward.
CLi@PC-CLI-1 ~/develop/crosstool-ng/crosstool-ng-1.18.0_build
$ ct-ng libc+
[INFO ] Performing some trivial sanity checks
[INFO ] Build started 20130801.120248
[INFO ] Building environ'libc'ariables
[EXTRA] Preparing working directories
[EXTRA] Restoring state at step 'libc', as requested.
[INFO ] =================================================================
[INFO ] Installing C library
[EXTRA] Configuring C library
[EXTRA] Building C library
[01:55] /
дополнительные объяснения смотрите мои сообщение:crosstool-ng сборка для xscale