Peter Rosa napsal/wrote, On 11/22/10 13:37:
kedze sa blizi EOL FreeBSD 6.4, rad by som ho upgradoval na 7.3. Dvakrat
som stiahol cely strom /usr/src cez CVSUP a niekolkokrat som sa ho poku-
sil prelozit. Preklad buildworld vzdy skonci neuspesne v riadku:
cc -O2 -pipe -DIN_GCC -DHAVE_CONFIG_H
...
-
I/usr/obj/usr/src/tmp/legacy/usr/include -c ../cc_tools/insn-attrtab.c

chybou "cc1: out of memory allocating 15133360 bytes", kde sa meni pocet bytov, ktore sa snazi alokovat.

Na Gooooogli som nasiel niekolko odkazov na tuto chybu, odporucaju tam
upravit CFLAGS na -O alebo ich uplne odstranit - nepomohlo a aj tak by
som nerad prekladal bez optimalizacii...

Zacnu tou optimalizaci - taky jsem nejakou dobu systemy prekladal s optimalizacemi. Ale nakonec musim rict, ze to nedoporucuji. Rychlost behu aplikaci se na optimalizovane prekladanem a standardne prekladanem systemu prakticky nemeni zato se meni rizika.

Aby byl kod optimalizovatelny musi byt respektovana urcita pravidla a to neni zaruceno.

Precti si
http://www.freebsd.org/cgi/query-pr.cgi?pr=bin/40209

Slo o to, ze optimalizaci indukovana chyba v libc zpusobila, ze awk, ktere se pouziva na upravu zdrojaku behem "buildworld" nektere upravilo jinak nez bylo zamysleno - a vysledny system pak nedelal to co ma.

Uz hlavni problem - optimalizaci indukovan achyba - je neco, co se spatne hleda - ale kdyz se navic projevi az takhle neprimo kdy chyba zmenial zdrojaky a teprve tato zmena zpusobila navenek pozorovatelny problem ...

Je to sice hodne stare, ale byla to slusna detektivka a znovu uz nikdy nic podobneho riskovat nechci.

Vsechno rpekladam s tou optimalizaci, kterou autor kodu predepisuje. A to nejen u systemu, ael i u portu. Treba lang/java se ma kompilovat pouze s -O nebo -O2 - a kdyz to zkusis s -O0 (tedy bez optimalizace!), se zlou se potazes, nebo (nevim, jak to vyupada prave s dnesni verzi, prinejmensim potazati muzes) ...

Nicmene, zpet k tvemu problemu.

Pri prekladu dojde pamet. To znamena, ze ji je potreba vic, nez ji je k dispozici.

Tak zaprve muzes omezit spotrebu - to jest vypnutim optimalizaci. -O NENI "zadna optimalizace" a myslim, ze "default" taky neni bez optimalizaci. Tudiz mas porad jeste moznost snizit naroky.

Druha strana mince jsou zdroje - bud' dochazi pamet globalne (vcetne vycerpaneho swapu) coz by se projevilo hlaskou na konzoli. Nebo aplikace prekracuje povolene maximalni limity nastavene (see 'ulimit -a') nebo system-compiled-in. Mam dojem, ze i v techto pripadech se to projevi hlaskou na konzoli.


Nicmene, abych pravdu rekl, ja bych se v tomto pripade nepokousel hledat pricinu, protoze jde o jednorazovy problem, ktery se da vyresit i bez jejiho nalezeni.

Jestli to spravne chapu, tak na bezicim 6.4 prekladas zdrojaky od 7.3. Resenim je - nedelej to. Bud' si vem prelozeny insn-attrtab.o z jineho systemu, kde uz je 7.3 prelozena na 7.3 nebo se vykasli na cely ten preklad a upgrade udelej dvoukolove

v prvnim kole udelej binarni upgrade (tedy pomoci hotoveho instalacniho CD 7.3-R nebo po siti), tim ziskas funkcni 7.3-R - a teprve na ni si pripadne preloz system ze svych zdrojaku.

Prosim, riesili a vyriesili ste niekto tento problem? Ako?

Tak jak jsme popsal - nejprve binarni upgrade na standardni 7.3-R a v druhem kole preklad vlastnich zdrojaku.

Dan
--
FreeBSD mailing list (users-l@freebsd.cz)
http://www.freebsd.cz/listserv/listinfo/users-l

Odpovedet emailem