# [SOLVED]Zmiana flag CFLAGS CXXFLAG na istniejącym już Gentoo

## tropt

Witam wszystkich.

Czytając sobie forum natknąłem się na tematy w których piszecie że zmianiaćie różne flagi i testujecie sprzęt.

Nigdzie natomiast nie usyskałem dokładnej odpowiedzi co należy zrobić w przypadku zmian flag CXXFLAGS czy należy przeinstalować cały system (wywalić stary i emergeować nowy) czy może poprostu emerge -e world jak gdzieś wyczytałem, czy może znów wg innych informacji jakie zdobyułem najpiejw zemergować z nowymi flagami gcc później glibc jeszcze później binutils i dopiero emerge -e world.

Jeśli byłby ktoś tak miły i napisał mi o tym prosze.Last edited by tropt on Thu Nov 17, 2005 12:29 pm; edited 2 times in total

----------

## YANOUSHek

Flagi CXX mają wpływ tylko na programy napisane w C++ = wystarczy przeemergeować wszystkie programy w twoim systemie, które zostały napisane w C++. Jak to zrobić? Nie pytaj :P

----------

## n3rd

Flagi CFLAGS i CXXFLAGS jak i wszystko inne w make.conf możesz zmieniać jak tylko Ci się podoba i wcale nie musisz z tego powodu robić nowych instalacji. Już N-ty raz to piszę, więc mogłbyś (a raczej moglibyście  :Wink: ) na przyszłość w takich wypadkach sam poszukać odpowiedzi. Ok.

Najpierw pozmieniaj sobie co tam chcesz w /etc/make.conf. Dalej wydajesz polecenia:

```
env-update && source /etc/profile
```

Nastpnie przekompilujesz swój toolchain. Toolchain to kolekcja narzędzi i bibliotek do kompilacji programów, czyli:

```
emerge glibc binutils gcc
```

I na koniec musisz (w zasadzie to nie musisz ale powinieneś) przekompilować z nowymi flagami cały system:

```
emerge -e world
```

Jeżeli zmieniasz w make.conf tylko flagi USE, wtedy wystarczy, że dasz:

```
emerge -u world --newuse
```

Pozwoli Ci to przekompilować tylko te programy, które tego wymagają.

Pozdrawiam i życzę miłego i bezbłędnego kompilowania  :Wink: 

daniel cegielka

----------

## tropt

n3rd Dziękuje Ci za wyczerpującą odpowiedź. Mam nadzieje że przyda się to nie tylko mi  :Smile: 

Pozdrawiam.

----------

## BeteNoire

Tylko przygotuj się na dobę albo dwie kompilacji jeśli to wszystko chcesz wykonać  :Twisted Evil: 

----------

## wariat

 *n3rd wrote:*   

> Flagi CFLAGS i CXXFLAGS jak i wszystko inne w make.conf możesz zmieniać jak tylko Ci się podoba i wcale nie musisz z tego powodu robić nowych instalacji. Już N-ty raz to piszę, więc mogłbyś (a raczej moglibyście ) na przyszłość w takich wypadkach sam poszukać odpowiedzi. Ok.
> 
> 

 

To moze warto przeniesc ten post/watek do FAQ ?

----------

## YANOUSHek

Hmm... czy ja źle myślę, że CXXFLAGS odnoszą się do kompilacji C++?

----------

## wariat

AFAIK myslisz dobrze

----------

## rasheed

Ja jeszcze tylko dodam, że warto wykonać polecenie 

```
emerge -pve world |genlop -pt
```

Dowiemy się wtedy ile będzie trwała kompilacja tych wszystkich pakietów  :Wink: 

Pozdrawiam.

----------

## YANOUSHek

 *wariat wrote:*   

> AFAIK myslisz dobrze

 Jeśli to prawda, to na 100% nie trzeba przekompilowywać toolchaina, przecież tam i tak wszystko jest napisane w C/asemblerze(?), więc zmiana CXXFLAGS nic tutaj nie da. Tak samo jest dla większości aplikacji (90% jest napisane w C). Ja bym się długo zastanowił nad kompilowaniem wszystkiego od początku.

----------

## wariat

Zgoda jesli masz inen flagi dla C i inen dla C++. Podejzewam ze wiekszosc za manualem ma w make.conf:

```

CFLAGS="-march=arch -O2 -pipe"

CXXFLAGS="${CFLAGS}"

```

czyli stosuja te same flagi dla programow w C i C++ ...

----------

## YANOUSHek

 *wariat wrote:*   

> Zgoda jesli masz inen flagi dla C i inen dla C++. Podejzewam ze wiekszosc za manualem ma w make.conf:
> 
> ```
> 
> CFLAGS="-march=arch -O2 -pipe"
> ...

 Zgoda, ale tropt w pierwszym poscie pytał się właśnie co należy zrobić przy zmianie CXXFLAGS, a to chyba znaczy, że tylko te się zmieniają...

----------

## tropt

 *Quote:*   

> rasheed
> 
> ```
> emerge -pve world |genlop -pt
> ```
> ...

 

U mnie będzie to ok 22 godz. 30 min ...

Co się stanie jeśli z różnych przyczyn coś przerwie 

```
emerge -e world
```

(np. braknie prądu) czy trzeba będzie robić wszystko od początku ?

 *Quote:*   

> YANOUSHek
> 
> Zgoda, ale tropt w pierwszym poscie pytał się właśnie co należy zrobić przy zmianie CXXFLAGS, a to chyba znaczy, że tylko te się zmieniają...

 

Zgadza się że tak napisałem bo tylko te miałem zamiar zmieniać. Cieszę się jednak że n3rd napisał co zrobić w przypadku zmiany wszystkich flag. Jestem pewnien że nie jedna osoba na tym skorzysta. Nawet zmieniłem temat żeby pasował  :Smile: 

----------

## BeteNoire

 *tropt wrote:*   

>  czy trzeba będzie robić wszystko od początku ?

 

Nie. emerge --resume powinno pomóc. 

Czasem kompilacja wywala się na jakimś mniej ważnym pakiecie więc żeby nie tracić czasu na szukanie rozwiązania problemu można dać: emerge --skipfirst --resume, a potem ewentualnie do tego wrócić.

----------

## Bako

jesli braknie pradu, to emerge --resume nie zadziala  :Smile:  - nie mozna wylaczac systemu (oczywiscie jesli cos sie wywali podczas kompilacji, to wtedy bezproblowo mozna wznowic)

----------

## pwe

 *Bako wrote:*   

> jesli braknie pradu, to emerge --resume nie zadziala  - nie mozna wylaczac systemu (oczywiscie jesli cos sie wywali podczas kompilacji, to wtedy bezproblowo mozna wznowic)

 

można wyłączyć system i bedzie działało  :Smile:  robiłem kilka razy przy dłuższych emerge'ach  :Smile:  ale nie zawsze (chyba) działa. (i nie znam zasad kiedy nie działa takie wznowienie ...   :Rolling Eyes:  )

----------

