2012-03-28 18 views
9

Używam crosstool-ng do budowy tolchain dla beagleboard-xm. Wpływy budować w sposób przedstawiony poniżej:Czy można przyspieszyć kompilacje crosstool-ng po wystąpieniu błędów?

[INFO ] ================================================================= [INFO ] Retrieving needed toolchain components' tarballs [INFO ] Retrieving needed toolchain components' tarballs: done in 0.51s (at 00:08) [INFO ] ================================================================= [INFO ] Extracting and patching toolchain components [INFO ] Extracting and patching toolchain components: done in 7.91s (at 00:16) [INFO ] ================================================================= [INFO ] Installing GMP [INFO ] Installing GMP: done in 140.48s (at 02:36) [INFO ] ================================================================= [INFO ] Installing MPFR [INFO ] Installing MPFR: done in 36.01s (at 03:13) [INFO ] ================================================================= [INFO ] Installing PPL . .

`

Teraz, po 50 minutach od kompilacji, to rozkłada się błędem:

[ERROR] configure: error: expat is missing or unusable"

mam zainstalowanego wymaganego pakietu (w Ubuntu 10.04) ale błąd nie jest problemem. Wcześniej mogłem dostać się do kroków, w których udało mu się zainstalować kompilator i do tego czasu nie było błędów. Zastanawiam się, czy istnieje sposób, aby narzędzie pomijało poprzednio pomyślne kroki, oszczędzając czas? Czy jest to możliwe nawet przy użyciu crosstool-ng?

+0

* Proszę wybaczyć formatowanie. Dzięki. – user461150

+0

Znaleziono. "ct-ng --help" nie podaje właściwych informacji. Użyj "pomocy ct-ng". Wyszukaj opcję RESTART kompilacji. – user461150

+4

Dla przyszłych pracowników Google napraw ten błąd za pomocą 'sudo apt-get install libexpat1-dev'. (Po prostu instalacja expata nie naprawi tego.) – markgz

Odpowiedz

14

Tak, jest to możliwe. Run ct-ng jak ten

CT_DEBUG_CT_SAVE_STEPS=1 ct-ng build

Po upaść na pewnym etapie po prostu znaleźć krok w liście produkowanego przez

ct-ng list-steps

W tym momencie można wznowić kompilacji uruchamiając

RESTART=libc_start_files ct-ng build

8

Tak, bieżący crosstool-ng obsługuje tę funkcję.

  1. włączyć tę funkcję w menuconfig

dla ct-ng menuconfig, config Paths and misc options jak ten

───────────────────── Paths and misc options ───────────────────── 
[*] Debug crosstool-NG 
[ ] Pause between every steps 
[*] Save intermediate steps 
[*]  gzip saved states 
[*] Interactive shell on failed commands 

2.W budują, na każdym kroku odbywa się pomyślnie, będzie można zobaczyć coś takiego:

Saving state to restart at step 'xxx'...

3.Jeżeli nie, po to naprawić, a następnie użyć ct-ng LAST_SUCCESSFUL_STETP_NAME+ nadal budować

moim przykładem:

[email protected] ~/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. 

[email protected] ~/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]/

więcej wyjaśnieniu, patrz mój post: crosstool-ng build for xscale

Powiązane problemy