# bootstrap i optymalizacja

## sir_skiner

czy na etapie stage  1  bootstrap uzywa flag optymalizacji z make.conf?

bo u mnie raczej nie.

chrootuje sie spod slacka i mi uzywa chyba flag ze slackowego /etc/profile

----------

## muchar

Nie zaleca się dokonywać jakichkolwiek optymalizacji podczas Stage 1. W dalszych - już tak.

Raczej nie korzysta ze slackowego /etc/profile... Jak się chrootujesz dokładnie jak w opisie, i robisz te wszystkie env-update oraz source /etc/profile, to łapie on nowe ustawienia.

----------

## sir_skiner

no zbudowalem bootstrap i 

```
emerge info
```

 dalej podaje flagi ze slacka. czemu?

oczywiscie chrootuje sie jak kaza

edit

nie wiem jakim cudem  ale 

```
export
```

 pokazuje zmienne ze slacka  :Surprised: 

----------

## sekretarz

Po wejściu do chrootowanego środowiska, powinneś wydać 2 polecenia:

```
env-update
```

oraz

```
source /etc/profile
```

----------

## sir_skiner

no dokladnie tak robie

----------

## sir_skiner

zahaszowalem te cflags  na slacku  i po  chroocie 

```
emerge info
```

 ppodaje flagi z  make.conf  :Very Happy:   tylko  dlaczego tak sie dzieje...

czy  emerge system przebudowuje to co zrobil bootstrap (glibc, gcc, itd)  :Question: 

----------

## muchar

W wersji 2004.0 - nie powinien. W 1.4 - robił to AFAIR.

----------

## krzysz

 *muchar wrote:*   

> Nie zaleca się dokonywać jakichkolwiek optymalizacji podczas Stage 1. W dalszych - już tak.
> 
> 

 

A jakie są przeciwskazania ? Pytam bo przymierzam się do kolejnej instalki po awarii dysku i nie chciałbym na dzień dobry czegoś popsuć  :Smile: 

----------

## OBenY

Ja jade od pierwszego stejdza z optymalizacjami i zadnych problemo nie mam.

----------

## free-mind

 *muchar wrote:*   

> Nie zaleca się dokonywać jakichkolwiek optymalizacji podczas Stage 1. W dalszych - już tak.
> 
> (...)

 

To w takim razie jak powinien wyglšdać /etc/make.conf dla stage1? Pytam, bo dopiero zaczynam...  :Smile:   Peace.

----------

## fallow

 *OBenY wrote:*   

> Ja jade od pierwszego stejdza z optymalizacjami i zadnych problemo nie mam.

 

ja podzielam zdanie OBeny`iego  :Smile: 

pozdro  :Smile: 

----------

## sir_skiner

podepne sie...

zrobilem bootstrap ale z okrojonymi flagami wiec pomyslalem ze zanim zrobie system troche poexperymentuje  :Twisted Evil:   no i...

```
emerge gettext
```

ok

 *Quote:*   

> emerge binutils

 

zonk  :Rolling Eyes: 

 *Quote:*   

> g++ -I. -I/var/tmp/portage/groff-1.18.1-r4/work/groff-1.18.1/src/roff/troff -I/var/tmp/portage/groff-1.18.1-r4/work/groff-1.18.1/src/include -I/var/tmp/portage/groff-1.18.1-r4/work/groff-1.18.1/src/include -DHAVE_CONFIG_H -O3 -finline-functions -march=athlon-xp -pipe -s -fomit-frame-pointer -mno-push-args -mfpmath=sse -frerun-loop-opt -frerun-cse-after-loop -funroll-loops -fprefetch-loop-arrays -finline-limit=20000 -fforce-addr -falign-functions=64 -falign-loops=16 -falign-jumps=16 -falign-labels=1 -maccumulate-outgoing-args -mpreferred-stack-boundary=4 -minline-all-stringops  -c input.cc
> 
> cc1plus: out of memory allocating 1267573268 bytes after a total of 10366976 bytes
> 
> make[2]: *** [input.o] Error 1
> ...

 

ramu nie moze brakowac

512-ram + 196-swap i gkrellm pokazuje duuzo wolnego.

wiec co?

flagi wzialem z forum gentoo raczej pewne ale tylko raczej

pomocy!

----------

## muchar

Napisałem "nie zaleca się" a nie "nie wolno". Zespół Gentoo nie zaleca - w którymś z ich tekstów wyczytałem. Może to się objawiać niestabilnością etc. Nie wiem jak jest to dokładnie w wersji 2004.x, ale w 1.4 na bank było nie zalecane.

----------

## free-mind

Ok, ok. understood.   :Very Happy:   Peace.

----------

## OBenY

sir_skinner: tu nie chodzi o RAM, lecz o pamuiec dostepna dla aplikacji, ktora jest kompilowana, przegiales przepoteznie z -finline-limit - w ogole IMHO dziwne flagi masz  :Smile: 

----------

## sir_skiner

 *muchar wrote:*   

> Napisałem "nie zaleca się" a nie "nie wolno". Zespół Gentoo nie zaleca - w którymś z ich tekstów wyczytałem. Może to się objawiać niestabilnością etc. Nie wiem jak jest to dokładnie w wersji 2004.x, ale w 1.4 na bank było nie zalecane.

 

no ale dlaczego? nie widze powodu....

----------

## sir_skiner

 *OBenY wrote:*   

> sir_skinner: tu nie chodzi o RAM, lecz o pamuiec dostepna dla aplikacji, ktora jest kompilowana, przegiales przepoteznie z -finline-limit - w ogole IMHO dziwne flagi masz 

 

juz to wiem  :Very Happy:   sam do tego doszedlem  :Cool: 

jednak jak  to jest ze kde kompiluje sie  z n=100000 a tu 10000  to za duzo [obecnie mam n=1000]?

flagi mam stad https://forums.gentoo.org/viewtopic.php?t=88860&postdays=0&postorder=asc&highlight=cflags+athlon+xp&start=25

z  tym ze  kilka zawiera sie w -O3, ale cotam...

a ty jakie  masz  :Smile:  ?

----------

## fallow

co do flag eksperymentowal ktos z ACOVEA 4.0 ?  :Smile:  ciekawe , nawet bardzo ciekawe  :Smile: 

https://forums.gentoo.org/viewtopic.php?t=157108&highlight=acovea

pozdro  :Smile:  ?

----------

## OBenY

Hm moje flagi ?

Nie przestrasz sie burdelu w zmiennych  :Smile: 

```
LD_ADD="-Wl,-O1 -Wl,--enable-new-dtags -Wl,--sort-common -s"

LDFLAGS="-z combreloc $LD_ADD"

DEFS="-DNDEBUG -DG_DISABLE_ASSERT"

DEFS_ADD="-DG_DISABLE_CHECKS -DG_DISABLE_CAST_CHECKS"

C_USER="-fnew-ra -fmerge-all-constants -freduce-all-givs"

CFLAGS="-O3 -march=pentium4 -mmmx -msse -msse2 -mfpmath=sse,387 -maccumulate-outgoing-args -momit-leaf-frame-pointer -minline-all-stringops -frename-registers -finline-functions -fomit-frame-pointer -ftracer -fforce-addr -funroll-loops -fprefetch-loop-arrays -ffast-math -fmove-all-movables -pipe $DEFS $DEFS_ADD $LDFLAGS $C_USER $EXP"

CHOST="i686-pc-linux-gnu"

USE="audiofile flac lcms kadu-modules mitshm mmx mng moznocompose moznoirc nptl \

     offensive ppds sse tiff -apm -crypt -encode -gdbm -gpm -imlib -gnome \

     -libg++ -libwww -mikmod -motif -sdl -svga -berkdb -python -java pic"

CXXFLAGS="${CFLAGS} -fno-exceptions"

```

Ale nie moge sie doczekac az bedzie gcc 3.4 w portach, bo pare nowych flag dodali  :Smile: 

----------

## sir_skiner

a  ktore z tych:-freduce-all-givs -fmove-all-movables $LD_ADD i DEFS_ADD nadadza sie do athlona-xp? nadadza znaczy beda dzialac pozytywnie

i po  co ci tyle zmiennych?

----------

## sir_skiner

probowalem te twoje LDFLAGS OBeny, ale wywala mi blad

```
ccl: error unrecognized options
```

 tylko -s -z combreloc mi  dziala

----------

## OBenY

A jakie binutils posiadasz?

Ma byc: 2.14.90.0.8

I nie dodajesz do CFLAGS="LDFLAGS" tylko zawartosc zmiennej, czyli "$LDFLAGS" owe LD_ADD, DEFS, DEFS_ADD, C_USER to takie moje dodatki, podzielone na odpowiednie moduly do kompilowania bootstrapa, systemu, userlandu  :Smile: 

bezpieczne sa:

```
CFLAGS: -fmerge-all-constants -maccumulate-outgoing-args -momit-leaf-frame-pointer -minline-all-stringops -frename-registers -finline-functions -fomit-frame-pointer -ftracer -fforce-addr -funroll-loops -fprefetch-loop-arrays -ffast-math -fmove-all-movables -pipe" 

LDFLAGS="-s -z combreloc"

DEFS="-DNDEBUG -DG_DISABLE_ASSERT" 
```

ale LDFLAGS nie musisz ustawiac, bo nowoczesne binutils samo to ustawia  :Smile:  tylko ta -s mozesz dodac  :Smile: 

----------

## sir_skiner

ehh,  mea culpa  :Embarassed: 

slepy jestem,  zamiat  "-Wl-*" pisalem "-W1-*"

a bin utils mam  2.14.90.0.7-r4  z gentoo2004.0  z L+dvd 02  :Smile: 

chyba juz ustawilem te flagi...

zastanawia jedna rzecz - jesli mam pakiet w sklad ktorego wchodzi kilka programow a potrzebuuje tylko czesci z  nich to jak przekazac emerge ktore ma kompilowac a ktore olac  :Question: 

i jeszcze 1. czy w portage jest glibc z nptl?

----------

## OBenY

Oczywiscie, ze jest glibc z NPTL, ja takowego uzywam.

By miec gllibc z NPTL, trzeba miec kernela z serii 2.6 i jego pliki naglowkowe. Do swoich flag USE musisz dodac "nptl", polecalbym tez dodac "pic" - ladnie potem sie glibc prelinkuje  :Wink: 

Poteme emerge glibc i jazda, niektore pakiety tez beda potzrebowaly przebudowania.

----------

## fallow

mozna jeszcze dodac tak w linii z Native Posix Thread Library ktora mozna wkompilowac w glibc , ze nowy kernel (od 2.6.6-rc1) juz standardowo ma polski patch , do obslugi Posixowych Messagow  :Wink: 

ps . nikt nie probowal sie pobawic ACOVEA ?  :Smile: 

dlugo to trwa , ale flagi ciekawe generuje  :Wink: 

----------

## sir_skiner

 *OBenY wrote:*   

>  niektore pakiety tez beda potzrebowaly przebudowania.

 

emerge sam o to zadba?

(pytam na przyszlossc, bo dopiero robie bootstrap [od nowa, po eksperymentach

 :Cool:  ])

----------

## fallow

jesli od razu zaczniesz stawiac system z nptl (mowisz , ze bootstrapujesz) to po co potem cos przebudowywac ?  :Smile: 

pozdro  :Smile: 

----------

## sir_skiner

cos  trza potem robic  :Very Happy: 

chce postawic system "as is" na plytce  w  L+ a tam nptl nie ma... wiem moge dociagnac ale, coz troche jestem leniwy troche  niepewny swoich poczynan i wole tak

----------

## sir_skiner

czy glibc 2.3.2-r9 ma nptl?

we flagach ma nptl ale gdzies czytalem ze  trzeba miec 2.3.3... no ale skoro ma to we flagach to chyba ma, no nie?  :Confused: 

----------

## fallow

z tego co wiem 2.3.2 ma obsluge nptl , ja uzywam 2.3.3 z nptl 

pozdro  :Smile: 

----------

