Portál AbcLinuxu, 12. května 2025 05:09

Dotaz: konfigurace gcc

stativ avatar 15.9.2005 12:51 stativ | skóre: 54 | blog: SlaNé roury
konfigurace gcc
Přečteno: 137×
Odpovědět | Admin
Tak jsem tu opet se svymy BFU dotazy ;-) Potreboval bych poradit, kde hledat konfiguraky gcc, a hlavne jestli je v nich mozno globalne nastavit parametry platne pro kazdou kompilaci, pripadne kde je nastavit. Dik
Ať sežeru elfa i s chlupama!!! ljirkovsky.wordpress.com stativ.tk
Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

msk avatar 15.9.2005 13:12 msk | skóre: 27 | blog: msk
Rozbalit Rozbalit vše Re: konfigurace gcc
Odpovědět | | Sbalit | Link | Blokovat | Admin
GCC pouziva premene prostredia. Mozete si ich dat do profilu.
man gcc, hladat CPPFLAGS, CFLAGS a podobne.
stativ avatar 15.9.2005 14:06 stativ | skóre: 54 | blog: SlaNé roury
Rozbalit Rozbalit vše Re: konfigurace gcc
man jsem zkousel, je to priserny (pres 10 000 radku-to se neda cist) Problem je, ze ty promenne by se mohly prepsat (kdyztak mne opravte). Potrebuju ted zkompilovat ca. 150 programku a vsechny se stejnou optimalizaci (i486), akorat ze ja mam standartne optimalizaci i686 a nechce se mi u vsech znova vsechno nastavovat, to bych se brzo zblaznil.
Ať sežeru elfa i s chlupama!!! ljirkovsky.wordpress.com stativ.tk
msk avatar 15.9.2005 15:11 msk | skóre: 27 | blog: msk
Rozbalit Rozbalit vše Re: konfigurace gcc
pridat do /etc/profile

CXXFLAGS="$CXXFLAGS:-march=i486"
CFLAGS="$CFLAGS:-march=i486"
15.9.2005 15:16 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: konfigurace gcc
Namísto manu čti info, jednak je strukturované a druhak je tam víc informací... Ale o CFLAGS a LDFLAGS tam stejně nic nenajdeš, protože to jsou standardní proměnné make, nikoli kompilátoru a linkeru.

Kompilátor prostě žádný konfigurák s volbami nemá, volby se předávají na příkazové řádce. Jelikož příkazová řádka normálně u všech programů přebíjí, co je psáno v konfiguráku, tak by ti jeho existence stejně nepomohla.

Předně si zjisti, zda je ten problém skutečný, tj. zda ty programy (nebo spíš jejich Makefile) jsou tak prasácky napsané, že neakceptují CFLAGS, LDFLAGS, etc. z prostředí. Pokud jsou to tvoje programy -- tak si vysvětluji ,mám standardně optimalizaci i686` -- tak je nejlépe oprav teď, aby nemusel totéž řešit příště.

Kdybys chtěl mít jistotu (víceméně), že kompilátor dostane nějaké volby, ať se děje, co se děje, mohl bys napsat wrapper kolem gcc (což není úplně triviální, protože ho lze spouštět jako preprocessor, kompilátor, linker, ...) pojmenovaný gcc (g++, cc) a dát ho do PATH před normální gcc.
stativ avatar 15.9.2005 16:03 stativ | skóre: 54 | blog: SlaNé roury
Rozbalit Rozbalit vše Re: konfigurace gcc
takze pokusim se to popsat trochu presnejs: z netu jsem stahl asi 150 utilit (hlavne zakladni soucasti systemu jako je bash, sysvinit atd.)
Kdyz zadam ./configure tak to hlasi neco jako je tohle:
checking build system type... i686-pc-linux-gnu atd.
coz jestli se nepletu znamena, ze se mi to bude, pokud nezadam nejakej parametr, optimalizovat pro i686. Ja potrebuju aby se mi to vzdy optimalizovalo pro i486.
Tim nastavovanim jsem myslel spoustet u vsech programku gcc s parametrem CXXFLAGS=-march=i486 (sice pres skript configure)

Takze jestli zadam
pridat do /etc/profile CXXFLAGS="$CXXFLAGS:-march=i486" CFLAGS="$CFLAGS:-march=i486"
tak se mi vsechno skompiluje samo jako kdyby tam bylo CXXFLAGS=-march=i486 ?
Ať sežeru elfa i s chlupama!!! ljirkovsky.wordpress.com stativ.tk
msk avatar 15.9.2005 16:11 msk | skóre: 27 | blog: msk
Rozbalit Rozbalit vše Re: konfigurace gcc
CXXFLAGS je premenna prostredia, ktoru vyuzije prave prikaz ./configure. Ten povytvara makefiles, ktore budu volat gcc s -march=i486.

Ono je suma fuk, ci budete tie premenne nastavovat v /etc/profile, ~/.bashrc, pripadne pod inym shellom v inych suboroch, dolezite je, aby v case volania configure boli takto nastavene.
stativ avatar 15.9.2005 16:27 stativ | skóre: 54 | blog: SlaNé roury
Rozbalit Rozbalit vše Re: konfigurace gcc
aha, takze takhle to je :o
tohle optimalizaci neovlivni?
gcc -DPROGRAM='"bash"' -DCONF_HOSTTYPE='"i686"' -DCONF_OSTYPE='"linux-gnu"' -DCONF_MACHTYPE='"i686-pc-linux-gnu"' -DCONF_VENDOR='"pc"' -DLOCALEDIR='"/usr/local/share/locale"' -DPACKAGE='"bash"' -DSHELL -DHAVE_CONFIG_H -I. -I. -I./include -I./lib -g -O2 -c shell.c rm -f eval.o
kdyz dam make tak je tam porad tohle
mam zmenit i tyhle promenne nebo to nevadi?
Ať sežeru elfa i s chlupama!!! ljirkovsky.wordpress.com stativ.tk
15.9.2005 16:32 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: konfigurace gcc
Co ty makra jako CONF_HOSTTYPE používá? (Kompilátor sám nějaká makra nezajímají.) Pokud se podle nich zdroják nevětví a nevkládá např. kód v assembleru, tak ti mohou být jedno.
15.9.2005 16:27 unchallenger | skóre: 69 | blog: unchallenger
Rozbalit Rozbalit vše Re: konfigurace gcc
CXXFLAGS má vliv na komplilace C++, CFLAGS na C.

Pokud program používá autoconf a automake, je velmi slušná naděje, že se nechá CFLAGS a spol. ovlivňovat správně.
checking build system type... i686-pc-linux-gnu
nemá na nic vliv (programy volící procesorové optimalizace podle prostředí sice existují, ale mnoho jich není).

Pro i686 se bude optimalizovat, pokud ve výpisech kompilace budeš vidět u gcc -mtune=i686, resp. -march=i686 (v druhém případě to pak na i486 ani nepoběží). Což bys vidět neměl, pokud sis o to explicitně neřekl.
stativ avatar 15.9.2005 16:38 stativ | skóre: 54 | blog: SlaNé roury
Rozbalit Rozbalit vše Re: konfigurace gcc
supr, diky moc jdu kompilovat do zblaneni :-)

BTW: co pouziva to -DCONF_HOSTTYPE nemam poneti, jinak ten kompilovanej program je bash, radsi tyhle promenny ale taky zmenim
Ať sežeru elfa i s chlupama!!! ljirkovsky.wordpress.com stativ.tk
msk avatar 15.9.2005 15:12 msk | skóre: 27 | blog: msk
Rozbalit Rozbalit vše Re: konfigurace gcc
CXXFLAGS som myslel ...

Založit nové vláknoNahoru

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

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