Strona g?ówna Artyku?y News (R)ewolucja w bleeding-edge-toolchain?

Menu g?ówne

(R)ewolucja w bleeding-edge-toolchain?
Ocena uĆŒytkownikĂłw: / 3
SƂabyƚwietny 
Wpisany przez Freddie Chopin   
ƚroda, 12 PaĆșdziernik 2016 12:07

Jako ?e znudzi?o mnie ju? rozwi?zywanie problemów stworzonych przez dziwaczny workflow pracowników firmy ARM, a do tego rozwi?zywanie problemów kompatybilno?ci pomi?dzy dystrybucjami Linuxa jest chyba rzecz? wr?cz niemo?liw?, postanowi?em pój?? krok dalej. Przedstawiam wi?c "preview" nowego skryptu "all-in-one" do kompilacji toolchaina, którego ide? jest lekka zmiana aktualnej formy bleeding-edge-toolchain.

Skrypt testowa?em na razie tylko na Linuxie (u siebie, na innym komputerze oraz w systemie Travis-CI - Ubuntu 12.04.5 LTS "precise"), wkrótce testy generacji wersji na Windowsa. Nie da si? wykluczy?, ?e nawet teraz ten skrypt powinien zadzia?a? w ?rodowisku MSYS2 na Windowsie, ale jeszcze tego nie sprawdza?em. Idea jest taka, ?e toolchainów dla Linuxa nie b?d? udost?pnia? w formie "binarnej" - skrypt pozwoli ka?demu skompilowa? toolchaina, który na pewno b?dzie dzia?a? na danej dystrybucji. Wiem ?e taka kompilacja nie trwa 30 sekund, ale pó? dnia te? nie - u mnie wszystko (w??cznie z pobraniem wszystkich ?róde?) trwa 22 minuty. Na wyj?tkowo powolnym wirtualnym systemie Travis-CI trwa to 80 minut. My?l? ?e s? to czasy które mo?na raz na pare miesi?cy po?wi?ci?, zw?aszcza ?e w trakcie takiej kompilacji mo?na przecie? robi? co? innego [; Zreszt? jakby kto? chcia? znacz?co skróci? czas kompilacji ca?o?ci, to mo?na znale?? w skrypcie linijk? z "--with-multilib-list=armv6-m,armv7-m,armv7e-m,armv7-r" i po prostu wy??czy? to czego si? nie u?ywa (UWAGA - linijka ta wyst?puje tam 2x, obie wersje powinny by? identyczne!). Wersje dla Windows zapewne nadal b?d? udost?pniane w formie "binarnej", bo akurat na tej platformie nie ma problemów z kompatybilno?ci? bibliotek.

W ka?dym razie skrypt zasadniczo robi wszystko co jest potrzebne - pobiera ?ród?a toolchaina i wymaganych bibliotek w odpowiedniej wersji, rozpakowuje je, a nast?pnie konfiguruje i kompiluje w odpowiedniej kolejno?ci. Idea oczywi?cie nie jest nowa i takich skryptów jest wiele, cho? te które znam s? ju? albo nierozwijane, albo nie do ko?ca takie jak nale?y. Generalnie do dzia?ania tego skryptu nie powinny by? wymagane ?adne dziwne narz?dzia poza tym co jest w "standardzie" w ka?dej dystrybucji Linuxa - jedynym wyj?tkiem mog? by? programy do generacji dokumentacji ("makeinfo", wchodz?cy zwykle w sk?ad paczki typu "texinfo"). Zach?cam do testów, je?li co? nie dzia?a to piszcie w komentarzach, albo od razu zg?aszajcie problem na GitHubie. Je?li dzia?a to oczywi?cie te? ch?tnie us?ysz? takie info (;

Aktualne wersje narz?dzi w toolchainie s? - zgodnie z ide? - najnowsze (; Nowsze ni? w toolchainie od ARM <:

  • gcc-6.2.0 + multilib patch
  • newlib-2.4.0.20160923
  • binutils-2.27
  • gdb-7.12
  • expat-2.2.0
  • gmp-6.1.1
  • isl-0.16
  • libelf-0.8.13
  • mpc-1.0.3
  • mpfr-3.1.5
  • zlib-1.2.8
Zmieniony: Piątek, 14 PaĆșdziernik 2016 10:33