Portál AbcLinuxu, 20. května 2025 23:14

ccache, linuxové jadro a patch grsecurity

5.5.2014 17:16 | Přečteno: 1530× | linux

Téma tohto blogu je používanie ccache pri kompilácii linuxového jadra.

Úvod

V určitých prípadoch je kompilácia jadra zdĺhavá činnosť. Tento proces predstavuje generovanie tisícok súborov jadra. V blogu budem popísovať podmienky, ktoré je nutné splniť aby ccache fungovala požadovaným spôsobom.

Dôvod použitia ccache

ccache umožňuje uloženie objektov kompilácie a ich prípadne využitie pri nutnosti kompilácie s inými parametrami.

Príprava pre kompiláciu s ccache

Podľa man je možné nastavniť použitie ccache pomocou premenných prostredia

  1. export CCACHE_DIR=cesta k priečinku ccache
  2. export PATH=/usr/lib/ccache:$PATH
  3. export CCACHE_COMPILERCHECK=content

Potencialne problémy

V prípade original jadra z kernel.org je čistenie adresára kompilácie bez problémov. ccache funguje normálne aj po použití make mrproper.

  1. V prípade patchu grsecurity čistenie make mrproper spôsobi, že ccache nedokáže spárovať jednotlivé objekty z predchadzajucej kompilácie. Bez problémov je možné použiť make clean

  2. Ďalšia vec na ktorú je nutné si dať pozor je príkaz na kompiláciu. Ak sa použije napríklad make -j 8 deb-pkg, tak nutné použiť rovnaký príkaz aj ďalšiu kompiláciu.

  3. Zvýšená náročnosť na IO operácie.

Výhody ccache

  1. V prípade nezmeneného objektu časti jadra je použity objekt z ccache alebo je objekt použitý s preprocesingom.
  2. V prípade zmeny v konfigurácii jadra nie je nutné čakať na preloženie všetkých objektov ale preložia sa len objekty do ktorých priamo zasahuje zmena.

Záver

Predpokladám, že tento blog pomôže urýchliť kompiláciu jadra a možno aj iných projektov prekladaných gcc a pod. Neviem ktorá chyba v ccache spôsobuje divne správanie po vyčistení make mrproper.

       

Hodnocení: 100 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

5.5.2014 18:06 Atrament
Rozbalit Rozbalit vše Re: ccache, linuxové jadro a patch grsecurity
Odpovědět | Sbalit | Link | Blokovat | Admin
K té výhodě číslo 2 - to přece dělá přímo make ne (znovu překládá jen to co se změnilo)?
dolik.rce avatar 5.5.2014 19:28 dolik.rce
Rozbalit Rozbalit vše Re: ccache, linuxové jadro a patch grsecurity
Ano, přesně to je hlavním úkolem make. A v podstatě body 1 a 2 jsou to samé. Jediný rozdíl je, že ccache přežije make clean a pod., tedy cachování se posouvá o jednu vrstvu jinam.

Podle mě je ccache dobré hlavně pro projekty s špatně napsaným Makefile nebo bez Makefile (nebo jiného podobného systému)...

pavlix avatar 6.5.2014 08:43 pavlix | skóre: 54 | blog: pavlix
Rozbalit Rozbalit vše Re: ccache, linuxové jadro a patch grsecurity
Hodně se ccache používá na Gentoo, kde probíhá kompilace vždy od nuly.
Já už tu vlastně ani nejsem. Abclinuxu umřelo.
5.5.2014 21:25 kralyk z abclinuxu | skóre: 29 | blog:
Rozbalit Rozbalit vše Re: ccache, linuxové jadro a patch grsecurity
K té výhodě číslo 2 - to přece dělá přímo make ne (znovu překládá jen to co se změnilo)?
Myslim, že ne nutně. Třeba u kompilace CyanogenModu je taky ccache potřeba, jinak kompiluje všecko znova make nemake...
5.5.2014 22:11 Atrament
Rozbalit Rozbalit vše Re: ccache, linuxové jadro a patch grsecurity
Nemůžou tam mít nějak vynucené něco na způsob make clean?
5.5.2014 23:05 Klaudie
Rozbalit Rozbalit vše Re: ccache, linuxové jadro a patch grsecurity
Odpovědět | Sbalit | Link | Blokovat | Admin
mrproper? to se ještě používá?

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.