# opcje make -s, czyli co to człowiek nie wymyśli

## Aktyn

Wzbogacając moją wiedze na temat linuksa, natknąłem sie na flage -s którą można dodac do make.conf, a dokładnie:

```
MAKEOPTS="-j2 -s"
```

-j2 wiadomo - ilość pracy jednoczesnej

-s opcja wyłącza wyświelanie na temat co w danej chwili sie kompiluje, jednakże nie pozbawia informacji na temat błędów i ostrzeżeń,

Tak na próbę machnąłem sobie emerge pierwszej lepszej aplikacji, co mi tam, w koncu czas procesora jest jego czasem  :Wink: 

i nie zakłóci mi przeglądania netu i gromadzeniu wiedzy,

Kompilacja działała szybciej ok 6%, ktoś tej flagi używa? wydaje mi sie dobrym pomysłem.

----------

## muchar

Z man gcc:

 *Quote:*   

> -s  Remove all symbol table and relocation information from the executable.

 

----------

## Aktyn

z man make:

 *Quote:*   

> -s   Silent operation; do not print the commands as they are executed.

 

MAKEOPTS - to są ocje dla make, nie dla gcc,

Dla gcc są CFLAGS, CXXFLAGS

----------

## muchar

Moj blad  :Smile:  Nie doczytalem.

----------

## Aktyn

Wróciłem do tego, jakże interesującego wątku, dotyczącego make, gdyż właśnie wczoraj, przy upgradzie system mi sie wywalił.   :Shocked: 

Bynajmniej nie z powodu błędu samej kompilacji, tylko z powodu braku pamięci   :Surprised: 

Troche mnie to zaskoczyło, w końcu ile może zeżreć taka kompilacja takiego np koffica.   :Confused: 

A niestety potrafi, w porywach na jedna kompilacje do jakiegoś tam obiektu do 230 Mb, biorąc pod uwagę opcje -j2

albo nawet -j3 to x2 albo x3 (jak np posiadaczom intela z HT sie proponuje), dorzucając bardziej zaawansowanie flagi CFLAGS,

przy których kompilator troche musi popracować, to przy kodzie, szczególnie c++, może być małe bęc, jak to miało właśnie miejsce u mnie   :Smile: 

Biorąc pod uwagę że update robi sie w międzyczasie przegłądania netu, to mozilla + X'y, i pamieci nagle nie ma   :Laughing: 

----------

## sza_ry

Dzięki za -s bardzo pomocna flaga, zwłaszcza na moim sprzęcie  :Smile: 

----------

## Aktyn

 *sza_ry wrote:*   

> Dzięki za -s bardzo pomocna flaga, zwłaszcza na moim sprzęcie 

 

W zasadzie należy podziekować twórcom make  :Smile:  Choć podczas emerge niektórych pakietów, flaga nie jest dołączana

Teraz jak widze ile pamięci czasem kompilacja zabiera, to już wiem dlaczego

merguje sie z opcją -j1 niektóre pakiety   :Wink: 

----------

## sza_ry

Dziękuję za poruszenie tematu  :Smile:  W gąszczu flag czasami umknie jakaś przydatna, a czasami też boję się za dużo próbować  :Sad: 

Dlatego forum jest baaardzo pomocne.

A ogólnie jestem pełen podziwu i chylę czoła przed twórcami wolnego oprogramowania  :Smile: 

Co do kompilacji to OO to jest coś, parę prób nieudanych (zabrakło miejsca na dysku  :Sad:  )i chyba zostanę przy emerge -k  :Smile: 

----------

## BeteNoire

Sorry za OT: przeniosłem tymczasowy katalog portage na /home (co ma 40 gb) i się nie martwię o brak miejsca w takich przypadkach:

```
PORTAGE_TMPDIR="/home/portemp"
```

Polecam man make.conf.

----------

## Aktyn

 *BeteNoire wrote:*   

> Sorry za OT: przeniosłem tymczasowy katalog portage na /home (co ma 40 gb) i się nie martwię o brak miejsca w takich przypadkach:
> 
> ```
> PORTAGE_TMPDIR="/home/portemp"
> ```
> ...

 

Ja mam katalog na osobnej partycji, która jest stworzona dla wielkich i tymczasowych danych, tam zawsze musi byc około 7Gb wolnego.

Z tym ze jakie przypadki masz na myśli? Bo mi nie brakło miejsca na dysku tylko pamięci fizycznej.

Co najwyżej można by bylo zrobic SWAPA z jakieś 600Mb, tylko po co korzystac z dyskowego ramu (który jest wolniejszy), jak można nie korzystać. Dla ludzi posiadających nie wiecej jak 256 Mb RAM, polecałbym opcje -j1

Ja po prostu machłem sobie -j3, co w pewnym momencie poskutkowało, zuzyciem ok >650 Mb ramu, no i brakło,

przy -j2 było tylko ok 430Mb, przy -j1 tylko 230. Wszytko to zeżarł g++ na kompilacji koffice   :Smile: 

Oczywiście nie cała kompilacja taka leciala, tylko jak pisałem "w porywach"   :Wink: 

----------

## psotnik

A czy można kompletnie wyłączyć komunikaty wyświetlane przez kompilator? Chciałbym aby tylko same błędy, stderr były monitowane, jakies przekierowanie &2> ??. Przy szybkim sprzęcie wyświetlanie informacji dużo opużnia kompilacje   :Crying or Very sad: 

----------

## Aktyn

 *psotnik wrote:*   

> A czy można kompletnie wyłączyć komunikaty wyświetlane przez kompilator? Chciałbym aby tylko same błędy, stderr były monitowane, jakies przekierowanie &2> ??. Przy szybkim sprzęcie wyświetlanie informacji dużo opużnia kompilacje  

 

jest takie cos jak /dev/null, moze by tam przekierować standardowe wyjście przy komendzie emerge

```
emerge pakiet > /dev/null
```

reszta czyli komunikaty błędu powinny sie ukazać

--edit

poprawa czasu już nie jest jakaś znaczaca, w sosunku do samej -s, przekierowanie wyjscia pomaga jeszcze jakies 2%,

ale robi sie już posucha informacyjna, nawet nie wiem czy dostaniemy przypomnienie o etc-update

----------

## psotnik

@Aktyn

wiem ale to jest taki czołgowy sposób   :Laughing:  myslałęm ze sam emerge ma jakiś przełącznik, ale nie moge się tego dopatrzeć w manualu, również nie moge znaleść sposobu na ograniczenie transferu pobierania, tzn w wget jest --limit-rate ale nie mam pomyslu jak to zastosowac w emerge:) a jak w robocie zapuszcze to łacze siada, telefony dzwonia i tak dalej   :Twisted Evil: 

ps

 etc-update jak uzywam gentoo przez pare miesiecy, niedlugo ale nigdy jeszcze nie robilem tej komendy  :Laughing:  jeszcze w manualu nie doszdłęm co ona robi   :Embarassed: 

----------

## sza_ry

etc-update jak sama nazwa wskazuje, bardzo przydatna komenda do aktualizacji plików konfiguracyjnych  :Smile: 

emerge samo prosi o uruchomienie tegoż  po aktualizacji pakietów, dlatego m.in. warto czytać komunikaty emerge  :Wink: 

Jeśli nie czytałeś możesz uruchomić w dowolnej chwili sprawdzi czy masz nowe wersje plików w /etc i grzecznie poinformuje co możesz zrobić dalej  :Smile: 

Dlatego właśnie używam Gentoo  :Smile:  jest to genialnie proste  :Smile: 

----------

## qermit

Czy flaga -s nadal uniemożliwia prawidłową kompilację blendera? kiedyś się nie dało więc od pewnego czasu (jakiś rok) z niej nie kożystam

Ja w celu przyspieszenia programów, które wyświetlają dużo komunikatów (a więc i kompilacji) wyłączyłem framebuffer.

----------

## Gabrys

A co ma wspólnego framebuffer z kompilowaniem programów? Czyżbyś zapuszczał emerge'a na konsoli tekstowej, a nie jak bóg ( :Wink: ) przykazał w okienku terminala?

----------

## psycepa

jaki bog ? chyba M$  :Razz: 

ja wiekszosc kompilacji puszczam spod konsoli, nie z Xowych terminali, chroni mnie to przed sytuacjami (a mialem pare takich) ze jakas aplikacja wyje**** mi Xy i wszystkie potomne procesy poszly sie ten teges

a fb, no coz, nie jest najszybszy jesli chodzi o wyswietlanie informacji  :Smile:  w koncu to bufor ramki conie  :Razz: 

----------

## Gabrys

Eeeee tam, przecież make jest inteligentny i kontynuuje od miejsca, w którym przerwał. A jedyną aplikacją, która mi rozwala iksy jest kompmgr.

----------

## arsen

zawsze jest też screen

----------

## psycepa

 *arsen wrote:*   

> zawsze jest też screen

 

no w sumie prawda

ale czasem sie po prostu robi szybko i zanim sie zorientuje kompilacja juz trwa w najlepsze  :Razz: 

tak czy siak ja wole korzystac z konsoli  :Razz: 

----------

## qermit

 *Gabrys wrote:*   

> Eeeee tam, przecież make jest inteligentny i kontynuuje od miejsca, w którym przerwał. A jedyną aplikacją, która mi rozwala iksy jest kompmgr.

 ta przerwij sobie kompilację openoffice pod sam koniec, zobaczysz wtedy:

a) jak się wk*******

b) jak kontynuuje od miejsca, w którym przerwał

----------

## milu

to nie taki zły nawyk odpalać najpierw screen'a a potem emerge  :Wink: 

W razie czego można zostawić komputer i zdalnie sprawdzić co się z nim dzieje  :Wink: 

----------

## Aktyn

 *psotnik wrote:*   

> @Aktyn
> 
> wiem ale to jest taki czołgowy sposób  
> 
>  etc-update jak uzywam gentoo przez pare miesiecy, niedlugo ale nigdy jeszcze nie robilem tej komendy  jeszcze w manualu nie doszdłęm co ona robi  

 

Czołgowy... nie znaczy zły, jak oglądałeś "czterech pancernych" to wiesz jak sie gwoździe czołgiem wbija   :Cool:   po co machac młotkiem  :Wink: 

etc-update czasem jednak wypadałoby uruchomic, i czytac bardzo uważnie, bo może nadpisać mozolnie zrobiona konfiguracje.

Zdajesie że w końcu wybróbuje tego screena, choc na lokalne potrzeby konsola wystarcza  :Smile: 

----------

## psycepa

 *milu wrote:*   

> to nie taki zły nawyk odpalać najpierw screen'a a potem emerge 
> 
> W razie czego można zostawić komputer i zdalnie sprawdzić co się z nim dzieje 

 

nie no generalnie ja uwazam ze bez screena na dluzsza mete zyc sie nie da  :Smile: 

u siebie mam na starcie uruchamiane yeahconsole, w tym leci screen a  w nim defaultowo 4 domyslne terminale, z mc z irssi, ze slownikiem ang-pol i ze slownikiem pol-ang

szalenie wygodne, odporne na experymenty i tak jak mowisz da sie do tego bez problemu podpiac zdalenie i kontrolowac co i jak

 :Twisted Evil:  geralnie tak codziennie sprawdzam co mi rtorrent, ktory biega sobie w screenie, pociagnal przez caly dzien jak mnie nie bylo:twisted:

----------

## Lukasek

 *qermit wrote:*   

>  *Gabrys wrote:*   Eeeee tam, przecież make jest inteligentny i kontynuuje od miejsca, w którym przerwał. A jedyną aplikacją, która mi rozwala iksy jest kompmgr. ta przerwij sobie kompilację openoffice pod sam koniec, zobaczysz wtedy:
> 
> a) jak się wk*******
> 
> b) jak kontynuuje od miejsca, w którym przerwał

 

Dobrze powiedziane - bo może i sam make potrafi zacząć od miejsca, w którym skończył (a dokładniej kompiluje ponownie tylko to, co uległo zmianie i to czego nie ma...), ale sam emerge wymusza robienie wszystkiego od nowa...

----------

## Radioaktywny

Witam

Czy aby zadziałao magiczne "-s" w:

```
MAKEOPTS="-j2 -s"
```

 potrzebne są jakies dodatkowe automagiczne ustawienia? Na dwóch kompach z gentoo które mam (w jednym system instalowany dzisiaj) opcja "-s" niestety nie działa. Nie wklejam konfigów, chybaże koledzy i koleżanki sobie zażyczą abym jakieś pokazał.

----------

## Aktyn

 *Radioaktywny wrote:*   

> Witam
> 
> Czy aby zadziałao magiczne "-s" w:
> 
> ```
> ...

 

Jak byś czytał wątek, to byś zauważył że nie przy każdym emerge działa ta opcja, prawdopodobnie jest wyłączana albo nie dołączana,

No i takich rzeczy jak konfiguracja, nakładanie patchy, komunikaty błędu, nie usuwa.

Jedynie wyłącza komunikaty kompilacji

----------

## Radioaktywny

 *Aktyn wrote:*   

> Jak byś czytał wątek, to byś zauważył że nie przy każdym emerge działa ta opcja, prawdopodobnie jest wyłączana albo nie dołączana,
> 
> No i takich rzeczy jak konfiguracja, nakładanie patchy, komunikaty błędu, nie usuwa.
> 
> Jedynie wyłącza komunikaty kompilacji

 

Czytałem wątek ale tak jak napisałem dzisiaj stawiałem nowego kompa na gentoo, instalowałem ponad 100 różnego rodzaju programów i zaden nie skorzystał z "-s". Dlatego się pytam. Widać, że możliwości tej flagi nie jest zbyt często wykorzystywane.

----------

## Aktyn

Ja robilłem jakoś update systemu ostatnio, i tak spozierając czasami, też stwierdzam że czasem była to flaga ignorowana.

Ale nie wiem jak często.

----------

## Radioaktywny

Albo u mnie tyle wywala błędów, że nie widze różnicy   :Very Happy: 

----------

## psotnik

Przepusciłem kilka aplikacji z opcja -s i tak szczerze nie widze zadnej ruznicy   :Confused: 

PS @Aktyn ogladałem Szarika i spółke  :Cool:  czołgiem może i gwoździa da się wbic, ale ja nie mam tyle siły co Gustlik, aby go wyciągnąc  :Laughing: 

Według mnie dobrym kompromisem jest skierowanie stdout na plik,takie psudo logi, jak cos sie popsuje zawsze mozna poczytac, a z mojej skromnej wiedzy zapis do pliku jest o wiele szybszy od wyświetlenia na ekranie omunikatół, których i tak nikt nie czyta puki coś się nie walnie   :Cool: 

Zrobiłem z etc-update,tylko napier zrobiłem potem przeczytałem co zrobiłęm   :Embarassed:  dobrze ze nadpisało mało istotne pliki   :Twisted Evil: 

----------

## Kurt Steiner

 *psotnik wrote:*   

> (...) zapis do pliku jest o wiele szybszy od wyświetlenia na ekranie (...)

 

Oj, chyba nie...  :Laughing:   I tak musisz wygenerować te same komunikaty, które wyświetlasz, a potem zamiast wyslać je na ekran, zapisujesz je na dysku, do którego dostępy są okrooooooopniiiiiiiiiściieeeeee wooooolneeee... No chyba, że masz jakiegoś kosmicznego RAIDa...   :Razz: 

----------

## Aktyn

 *psotnik wrote:*   

> Przepusciłem kilka aplikacji z opcja -s i tak szczerze nie widze zadnej ruznicy  

 

Moze to były małolabolatoryjne wyniki  :Smile: 

Teraz czytając na forum rózne rzeczy skompilowałem sobie kernel z opcjami:

```
Preemption Model (Voluntary Kernel Preemption (Desktop))  --->

( ) No Forced Preemption (Server)

(X) Voluntary Kernel Preemption (Desktop)

( ) Preemptible Kernel (Low-Latency Desktop) 
```

miałem (Server) oraz     

```
IO Schedulers  --->

<*> Anticipatory I/O scheduler

<*> Deadline I/O scheduler

<*> CFQ I/O scheduler
```

I jakby warunki się wyrównały (pogorszyły), ale to jest temat na osobny wątek, tzn nie ma takiego speedu na -s  :Sad: 

IO mam na Anticipatory, tak ogulnie niby troche lepiej w sensie reakcji systemu. Ale nie ma co mieszać tego w tym wątku.

++++EDIT+++

tzn poprawiły sie, wczoraj juz spałem jak to pisałem, wiec zdajesie wiele czynników ma tu znaczenie

----------

## psotnik

@Kurt Steiner

Moze fantazjuje,ale czy fs nie trzyma danych w RAMie i okresowo zapisuje na dysk?

----------

## BeteNoire

Zawsze trzyma i zawsze zapisuje. Mniej zapisuje jak ustawisz dla kompilatora flagę -pipe :]

----------

## sebas86

 *Lukasek wrote:*   

> Dobrze powiedziane - bo może i sam make potrafi zacząć od miejsca, w którym skończył (a dokładniej kompiluje ponownie tylko to, co uległo zmianie i to czego nie ma...), ale sam emerge wymusza robienie wszystkiego od nowa...

 

Ale ebuild chyba już może sobie z tym poradzić. Chociaż zdarzają się wyjątki i wywala nam wszystko co skompilowaliśmy...

A co z pomijaniem "warnów"? Opcja -w dla kompilatora, dołączana do C(XX)FLAGS?

 *man gcc wrote:*   

> -w  Inhibit all warning messages.

 

To już też niezły fragment z tego co się dzieje na ekranie.  :Wink: 

----------

## lazy_bum

U siebie (na starym sprzęcie) odniosłem dziwne wrażenie spowolnienia kompilacji z opcją "-s"... bo nie bardzo widzę sens używania tego na 3GHz prockach, chyba, że ktoś chce mieć kompilację szybszą o 0,0001%. (-;

----------

## Aktyn

 *lazy_bum wrote:*   

> U siebie (na starym sprzęcie) odniosłem dziwne wrażenie spowolnienia kompilacji z opcją "-s"... bo nie bardzo widzę sens używania tego na 3GHz prockach, chyba, że ktoś chce mieć kompilację szybszą o 0,0001%. (-;

 

Czyli reasumując, mój jeden przypadek, okazał sie rzadkim przypadkiem klinicznym niepotwierdzony większymi badaniami  :Smile: 

Teraz po przerobieniu kernela jak pisałem, mam ogólnie lepsze wyniki, może miałem jakieś wąskie gardło w pipesach

----------

## psotnik

 *lazy_bum wrote:*   

> U siebie (na starym sprzęcie) odniosłem dziwne wrażenie spowolnienia kompilacji z opcją "-s"... bo nie bardzo widzę sens używania tego na 3GHz prockach, chyba, że ktoś chce mieć kompilację szybszą o 0,0001%. (-;

 

Wczoraj kompilowałem OpenOffice2.0.1 z -s hmmmm może pakiet się rozbudował ale fakt faktem kompilowało się dużej niz bez opcji -s, dziwne   :Laughing: 

mam P4 3.0GHz HT oraz 1024 MB RAM bez swapu. Trochę nie rozumie teraz tego przełącznika   :Laughing: 

----------

## mirek

U mnie sie natomiast przyspieszyla kompilacja z flaga -s

```
genlop openoffice -t

Wed Dec 21 10:57:08 2005 >>> app-office/openoffice-2.0.0

merge time: 11 hours, 19 minutes and 3 seconds.

Tue Jan 31 07:23:44 2006 >>> app-office/openoffice-2.0.1

merge time: 7 hours, 31 minutes and 3 seconds.
```

----------

## lazy_bum

4h różnicy?! Coś mi się wierzyć nie chce... \-:

To nie sprawka jakiegoś ccache?

----------

## mirek

Nie mam ccache, ale jedynie co zmienilem w miedzyczasie to przeszedlem z reiserfs na reiser4.

Moze to przyczynilo sie rowniez do szybszej kompilacji.

----------

## sebas86

Hm, 4 godziny to rzeczywiście zdecydowanie za dużo... Nie wiem jak wpływa na wydajność, bo przy okazji zmieniłem sprzęt ale jeśli ktoś lubi oglądać wyjście terminala, na pewno doceni zwiększenie czytelności. Szkoda tylko, że niektóre pakiety nie chcą się dostosować...

----------

