<!doctype linuxdoc system>

<article>

<title>Glibc 2 HOGYAN
<author>Eric Green, <tt/ejg3@cornell.edu/
<date>v1.6, 1998. június 22.
<abstract>
<nidx>GNU C könyvtár (lásd glibc)</nidx>
<nidx>glibc</nidx>
A glibc 2 HOGYAN leírja, hogyan telepítsd és használd a GNU C programkönytár 2-es
verzióját (libc 6) a Linux operációs rendszeren.
</abstract>

<toc>


<sect>Bevezetés
<p>

<sect1>Amit a glibc 2-ről tudni kell
<p>
<nidx>glibc!áttekintés</nidx>

A Glibc 2 a GNU C programkönyvtár legújabb változata. Jelenleg módosítás
nélkül fut GNU Hurd rendszereken és a Linux i386, mk68k és alpha rendszereken.
A 2.1-es verzió támogatni fogja a Linux PowerPc-t valamint a MIPS,
Sparc, Sparc-64 és Arm platformokat. A könyvtár a jövőben más architektúrákat
és operációs rendszereket is támogatni fog.

A Linux rendszereken a glibc 2, a 6-os verziószámú libc-vel egyezik meg,
amely a libc 5 utódja. A Linuxos libc fejlesztői a libc 6-al fel akarjak váltani
a libc 5-öt. A 2.0.6-os verziótól kezdve, a libc megbízhatónak tekinthető.
A 2.1-es változat, amely hamarosan napvilágot lát, készen áll majd a széleskörű 
felhasználásra, és további platformokat is fog támogatni.

Három opcionális kiegészítő létezik a glibc 2-höz:
<descrip>
<tag/Crypt/Az UFC-crypt csomag.  Ezt a csomagot nem integrálták a glibc-be, az exporttilalmak miatt.
<tag/LinuxThreads/A Posix 1003.1c &dquot;pthread&dquot; interfész egy implemetációja.
<tag/Locale data/Ez tartalmazza a locale adatfájlok előállításához szükséges adatokat, ezekre akkor van szükség, 
     ha használni akarod a glibc nemzetközi lehetőségeit.
</descrip>

A crypt és LinuxThreads kiegészítő csomagok erősen ajánlottak... Ha nem használod 
őket, inkompatibilitási problémák léphetnek fel más rendszerek különböző könyvtáraival.
(Ha ezek után mégsem akarod használni őket, meg kell adjad a 
--disable-sanity-checks opciót a configure szkript futtatásánál.)

<sect1>Erről a dokumentumról
<p>

Ez a HOGYAN arról szól, hogyan telepítsd a glibc 2 könyvtárat egy meglévő 
Linux rendszerre. A leírás abból indul ki, hogy libc 5-ot használsz i386-os 
architektúrán, de más rendszerek és könyvtárak (pl. glibc1) felhasználói is 
hasznát vehetik, csak le kell cseréljék a megfelelő fájl- és 
architektúra-neveket a szituációnak megfelelően.

Eme HOGYAN legfrissebb változatát megtalálod a
<url url="http://sunsite.unc.edu/LDP" name="Linux Documentation Project"> részeként vagy a következő kiszolgálón:
<url url="http://www.imaxx.net/~thrytis/glibc/Glibc2-HOWTO.html">.

<sect1>Mi változott a közelmúltban?
<p>

Különbségek a dokumentum 1.6-os és 1.5-os változatai között:
<itemize>
<item>Kijavítottam a bináris glibc csomag telepítésére vonatkozó utasításokat.
</itemize>

Különbségek a dokumentum 1.5-os és 1.4-es változatai között:
<itemize>
<item>Indexelés hozzáadása, köszönet Ed Bailey-nek.
<item>Megváltoztattam az e-mail címemet.
</itemize>

<sect>Telepítési módszer kiválasztása
<p>
<nidx>glibc!telepítés</nidx>

A glibc-t többféleképpen telepítheted. Feltelepítheted tesztelés céljára, ebben az esetben a régi könyvtárakat használod továbbra is alapértelmezésben, de ha fordítasz egy programot, megadhatod, hogy az használja a teszt könyvtárat. Ha ezt a telepítési módszert választod, később könnyen eltávolíthatod a glibc-t a gépedről (persze a hozzá kapcsolódó programok nem fognak működni). Ha ilyen módon tesztelni akarod a glibc-t, forrásból kell fordítsad, mert nem készült tesztelési célból bináris csomag (pl. rpm). Erről a megoldásról a
<ref id="test-install" name="Telepítés teszt könyvtárként"> fejezetben olvashatsz.

Ezzel ellentétben, telepítheted a glibc-t elsődleges programkönyvtárként is. Ilyenkor minden új program, amit a gépen fordítasz, alapértelmezésben a glibc-t fogja használni, kivétel persze, ha fordításkor a régi könyvtárat adod meg.
Fordíthatod a könyvtárat magad, vagy feltelepítheted bináris csomagból is.
Ha változtatni akarsz a glibc beállításain, az optimalizálással akarsz variálni, vagy olyan kiegészítőt akarsz használni, ami a bináris csomagban nincsen benne, le kell töltened a forráskódot, és le kell fordítanod a könyvtárat. Ez esetben a telepítési útmutatót megtalálod a 
<ref id="primary-install" name="Telepítés elsődleges C könyvtárként"> fejezetben.

Frodo Looijaard leír egy harmadik telepítési módszert.
Az ő módszerének lényege, hogy a glibc-t másodlagos könyvtárként telepíted, és beállítasz egy keresztfordítót (cross compiler), ami a glibc-t használja. 
Ez a telepítési módszer kicsit bonyolultabb, mint a tesztkönyvtárként telepítés, de utána egyszerűbb olyan programokat fordítani, amik a glibc-t használják.
Ennek a módszernek a leírását a
<url url="http://huizen.dds.nl/~frodol/glibc/"
name="A glibc-2 telepítése Linuxra"> című dokumentumba találod.

Ha 1.3-as Debiant használsz, és nem akarod a glibc miatt az "unstable" változatot használni, olvasd el a 
<url url="http://www.gate.net/~storm/FAQ/libc5-libc6-Mini-HOWTO.html"
name="Debian libc5 to libc6 Mini-HOWTO-t">, ez leírja, hogyan frissítsd Debian csomagokkal rendszeredet.

Ha a glibc 2-t egy fontos gépre telepíted, valószínűleg a teszt telepítés a jobb választás. Még ha a glibc-ben nincsenek is hibák, egyes programokat esetleg módosítani kell, hogy le tudd fordítani őket, mert változhatnak a könyvtárban a függvények prototípusai és típusai.

<sect>A könyvtár beszerzése<label id="getting">
<p>
<nidx>glibc!beszerzés</nidx>

A glibc 2 négy csomagból áll: a glibc csomagból és a három kiegészítő csomagból, ezek: LinuxThreads, Locale és Crypt. A forrásokat letöltheted a következő helyekről:
<itemize>
<item><url url="ftp://prep.ai.mit.edu/pub/gnu/glibc-2.0.6.tar.gz">
<item><url url="ftp://prep.ai.mit.edu/pub/gnu/glibc-linuxthreads-2.0.6.tar.gz">
<item><url url="ftp://prep.ai.mit.edu/pub/gnu/glibc-localedata-2.0.6.tar.gz">
<item><url url="ftp://prep.ai.mit.edu/pub/gnu/glibc-crypt-2.0.6.tar.gz">
</itemize>

A teljes glibc fordításához és telepítéséhez kb. 150 MB lemezterületre lesz szükséged. Ha bináris csomagból telepíted az alap glibc-t, akkor kb. 50MB-al kell számolnod.

A 2.0.6-os változatból nincsenek bináris csomgok. A 2.0.4-es verzió bináris csomagjai i386-os és m68k architektúrákra, valamint a 2.0.1-es változat alphára megtalálható itt:
<itemize>
<item>Intel x86:
<itemize>
<item><url url="ftp://prep.ai.mit.edu/pub/gnu/glibc-2.0.4.bin.i386.tar.gz">
<item><url url="ftp://prep.ai.mit.edu/pub/gnu/glibc-crypt-2.0.4.bin.i386.tar.gz">
</itemize>
<item>Alpha:
<itemize>
<item><url url="ftp://prep.ai.mit.edu/pub/gnu/glibc-2.0.1.bin.alpha-linux.tar.gz">
<item><url url="ftp://prep.ai.mit.edu/pub/gnu/glibc-crypt-2.0.1.bin.alpha-linux.tar.gz">
</itemize>
<item>m68k:
<itemize>
<item><url url="ftp://prep.ai.mit.edu/pub/gnu/glibc-2.0.4-m68k-linux.bin.tar.gz">
<item><url url="ftp://prep.ai.mit.edu/pub/gnu/glibc-crypt-2.0.4-m68k-linux.bin.tar.gz">
</itemize>
</itemize>
A Crypt kiegészítő csomagra exportkorlátozások vannak érvényben. Az Egyesült Államokon kívül élő felhasználók ezt a csomagot a 
<url url="ftp://ftp.ifi.uio.no/pub/gnu"> kiszolgálóról szerezhetik be.

Ha Red Hat összeállítást használsz, letöltheted a 2-es glibc-t rpm csomagokban a Red Hat ftp kiszolgálójáról:
<url url="ftp://ftp.redhat.com/pub/redhat/">.  A Red Hat a glibc 2 könyvtárat használja elsődleges C könyvtárként az összeállítás 5.0-as verziója óta.

Ha Debiant használsz, letöltheted a 2-es glibc-t deb csomagokban a Debiantól
<url url="ftp://ftp.debian.org/debian/dists/unstable/main/">.  
A fájlokat libc6-nak hívják. A glibc 2 része a Debian hamm verziójának, elsődleges C könyvtár lesz a Debian 2.0 megjelenésétől.

<sect>Telepítés teszt könyvtárként<label id="test-install">
<p>
<nidx>glibc!tesztelés</nidx>

Ez a rész azt írja le, a glibc 2 telepítését teszt könyvtárként. Ha bármilyen programot fordítasz, azt a fordító a régi glibc-vel szerkeszti össze, hacsak nem adod meg külön, hogy a teszt könyvtárat szeretnéd használni. Fordításkor az elérési útvonalak belekerülnek néhány fájlba, ezért valószínűleg forrásból kell telepítsd a könyvtárat.

<sect1>Fordítás és telepítés
<p>

<sect2>Telepítési követelmények
<p>
<nidx>glibc!tesztelés!előkövetelmények</nidx>

<itemize>
<item>Kb. 150 MB üres lemezterület
<item>GNU make 3.75
<item>gcc &gt;= 2.7.2 (még jobb, ha 2.7.2.1)
<item>binutils 2.8.1 (alphához egy snapshot-ra van szükség)
<item>bash 2.0
<item>autoconf 2.12 (ha megváltoztatod a configure.in fájlt)
<item>texinfo 3.11
</itemize>

Egy i586@133 gépen 64 MB RAM-mal, kb. 3 órába telik, amíg elkészül a teljes könyvtár a kiegészítőkkel. Egy erősen leterhelt i686@200 gépen ugyanez kb. fél órába kerül.

<sect2>A forrás kicsomagolása
<p>
<nidx>glibc!tesztelés!forráskód, kicsomagolás</nidx>

Ahhoz, hogy le tudd fordítani a forrást, ki kell csomagolnod.
Ezt legkönnyebben a következő módon teheted meg:
 <tscreen><verb>
 tar xzf glibc-2.0.6.tar.gz
 cd glibc-2.0.6
 tar xzf ../glibc-linuxthreads-2.0.6.tar.gz
 tar xzf ../glibc-crypt-2.0.6.tar.gz
 tar xzf ../glibc-localedata-2.0.6.tar.gz
 </verb></tscreen>
Ez a glibc-2.0.6 könyvtárba csomagolja ki a linuxthreads, crypt és locale kiegészítőket, ahol a configure megtalálja őket.

<sect2>Beállítás
<p>
<nidx>glibc!tesztelés!beállítások</nidx>

A glibc-2.0.6 könyvtárba hozzál létre egy compile nevű könyvtárat, majd lépj bele.
Mindent ebben a könyvtárban fogsz csinálni, ez egyszerűsíti a takarítást.
(A fejlesztők eddig nem törték magukat, hogy a 'make clean' tökéletesen működjön.)

 <tscreen><verb>
 mkdir compile
 cd compile
 </verb></tscreen>
Futtasd le a <tt>../configure</tt> szkriptet.  Ha kiegészítő csomagokat is akarsz használni, meg kell adnod a --enable-add-ons kapcsolót, pl.: --enable-add-ons=linuxthreads,crypt,localedata.
Ki kell válaszd a célkönyvtárat, ahova a könyvtárat telepíteni fogod.
Erre a /usr/i486-linuxglibc2 egy jó választás. Ehhez a configure paraméterei a következők:
 <tscreen><verb>
 ../configure --enable-add-ons=linuxthreads,crypt,localedata --prefix=/usr/i486-linuxglibc2
 </verb></tscreen>

<sect2>Fordítás és telepítés
<p>
<nidx>glibc!tesztelés!fordítás</nidx>
<nidx>glibc!tesztelés!telepítés</nidx>

A fordításhoz és ellenőrzéshez írd be a következőket:
 <tscreen><verb>
 make
 make check
 </verb></tscreen>
Ha a 'make check' sikeresen lefutott, telepítsd a könyvtárat root felhasználóként (még mindig a <tt>compile</tt> könyvtárból):
 <tscreen><verb>
 make install
 </verb></tscreen>

<sect1>A dinamikus betöltő (dynamic loader) frissítése
<p>
<nidx>glibc!tesztelés!dynamic loader, frissítés</nidx>
<nidx>glibc!tesztelés!ld.so.conf, frissítés</nidx>

<enum>
<item>Hozzál létre egy kötést, ami az új <tt>ld.so</tt> -ról a <tt>/lib/ld-linux.so.2</tt> -ra mutat:
 <tscreen><verb>
 ln -s /usr/i486-linuxglibc2/lib/ld-linux.so.2 /lib/ld-linux.so.2
 </verb></tscreen>
Ez az egyetlen könyvtár, amelynek rögzített a helye, miután egy programhoz hozzá lett kapcsolva.
Ha a <tt>/lib</tt> könyvtárban létrehozol egy kapcsot (link) hozzá, akkor később könnyebb lesz 
áttérni a glibc-re, mint elsődleges C könyvtárra, amikor megjelenik a stabil verziója.
<item>Szerkeszd a <tt>/etc/ld.so.conf</tt> fájlt. A fájl végére be kell írnod a lib könyvtár elérési útvonalát, amiben az új programkönyvtárak vannak. Valahogy így fog kinézni: <tt>&lt;prefix&gt;/lib</tt>, tehát pl. <tt>/usr/i486-linuxglibc2/lib</tt> a fenti esetben.
A <tt>/etc/ld.so.conf</tt> fájl elmentése után futtasd le a következő parancsot:
 <tscreen><verb>
 ldconfig -v
 </verb></tscreen>
</enum>

<sect1>Beállítás a gcc fordítóhoz
<p>
<nidx>glibc!tesztelés!gcc beállítás</nidx>
A telepítés utolsó lépése a <tt>/usr/lib/gcc-lib</tt> frissítéséből áll. Ez azért szükséges, hogy a gcc tudja használni az új programkönyvtárakat.
Első körben duplikálni kell a gcc-t. Hogy megtudd melyik az éppen működő ggc konfiguráció, használd a gcc -v kapcsolóját:

 <tscreen><verb>
 &percnt; gcc -v
 Reading specs from /usr/lib/gcc-lib/i486-unknown-linux/2.7.2.2/specs
 gcc version 2.7.2.2
 </verb></tscreen>
Ebben az esetben az i486-unknown-linux a rendszer típusa, és a 2.7.2.2 a gcc verziószáma.
Át kell másolnod a <tt>/usr/lib/gcc-lib/&lt;system&gt;</tt> könyvtárat az új tesztrendszer könyvtárába:
 <tscreen><verb>
 cd /usr/lib/gcc-lib/
 cp -r i486-unknown-linux i486-linuxglibc2
 </verb></tscreen>
Lépj be az új tesztrendszer könyvtárába, majd a verziószámmal jelölt könyvtárba,
 <tscreen><verb>
 cd /usr/lib/gcc-lib/i486-linuxglibc2/2.7.2.2
 </verb></tscreen>
ezek után módosítsd a <tt>specs</tt> fájlt, ami ebben a könyvtárban található.
Írd át a <tt>/lib/ld-linux.so.1</tt> szöveget <tt>/lib/ld-linux.so.2</tt>-re.  Ha ez megvan, törölj ki minden <tt/&percnt;{...:-lgmon}/  fájlra mutató hivatkozást, mert a glibc nem használja a gmon könyvtárat.
Találsz egy példa spec fájlt a <ref id="specs" name="Példa specs fájl"> fejezetben.

<sect1>A fejlécfájlokra mutató kapcsok frissítése
<p>
<nidx>glibc!tesztelés!fejléc fájlok, frissítés</nidx>

Kapcsokat (link) kell létrehoznod az új include könyvtárban, amik egyéb include könyvtárakra mutatnak:
 <tscreen><verb>
 cd /usr/i486-linuxglibc2/include
 ln -s /usr/src/linux/include/linux
 ln -s /usr/src/linux/include/asm
 ln -s /usr/X11R6/include/X11
 </verb></tscreen>
Előfordulhat, hogy vannak más programkönyvtáraid, mint pl. az ncurses, ezeknek a fejlécfájlait is ebbe a könyvtárba kell helyezned. Ezeket a fájlokat át kell másolnod vagy kapcsoznod (link) a <tt>/usr/include</tt> könyvtárból.  (Lehetnek olyan programkönyvtárak is, amiket újra kell fordítanod, hogy a glibc2-vel működni tudjanak. Ebben az esetben egyszerűen fordítsd le őket, és a telepítésnél add meg a <tt>/usr/i486-linuxglibc2</tt> könyvtárat.)

<sect1>A telepített programkönyvtár tesztelése
<p>
<nidx>glibc!tesztelés</nidx>
A programkönyvtár teszteléséhez, hozz létre egy glibc.c fájlba következőkkel:
 <tscreen><verb>
 &num;include &lt;stdio.h&gt;

 main()
 {
     printf("hello world!\n");
 }
 </verb></tscreen>
Fordítsd le a következő opciókkal: &dquot;-b &lt;base install directory&gt; -nostdinc -I&lt;install directory&gt;/include -I/usr/lib/gcc-lib/&lt;new system dir&gt/&lt;gcc version&gt;/include&dquot;:
 <tscreen><verb>
 &percnt; gcc -b i486-linuxglibc2 -nostdinc -I/usr/i486-linuxglibc2/include \
       -I/usr/lib/gcc-lib/i486-linuxglibc2/2.7.2.2/include glibc.c -o glibc
 </verb></tscreen>
Az ldd parancs segítségével ellenőrizd, hogy a fordító tényleg a glibc2-vel szerkesztette-e össze a programocskát és nem a régi libc-vel:
 <tscreen><verb>
 &percnt; ldd glibc
 libc.so.6 => /usr/i486-linuxglibc2/lib/libc-2.0.6.so (0x4000d000)
 /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
 </verb></tscreen>
Ha a programot le tudtad fordítani, a gcc az új glibc2-höz szerkesztette és amikor elindítod, azt írja ki, hogy &dquot;hello world!&dquot;, a telepítés sikeres volt.

<sect>Telepítés elsődleges C könyvtárként<label id="primary-install">
<p>
<nidx>glibc!telepítés</nidx>

Ez a rész arról szól, hogy hogyan telepítsd a glibc 2-t elsődleges C könyvtárként. Ezek után minden program amit a rendszereden fordítasz az új C programkönyvtárat fogja használni, hacsak nem beszéled le erről speciális fordító kapcsolók segítségével.

Ha RedHat vagy Debian Linuxot használsz és letöltötted a megfelelő rpm vagy deb csomagokat, átugorhatod ezt a részt, nézd meg a RedHat vagy Debian telepítési útmutatót.

<sect1>A könyvtár fordítása forráskódból<label id="compiling">
<p>
<nidx>glibc!telepítés!fordítás</nidx>

Ez a rész leírja, hogy hogyan fordítsd le a glibc 2-t és a kiegészítőit a forrásból. Akkor kell fordítanod a glibc-t, ha változtatni akarsz az alapbeállításain vagy az optimalizáláson, vagy olyan kiegészítőt akarsz használni, amihez nincsen bináris csomag.

<sect2>Telepítési követelmények
<p>
<nidx>glibc!telepítés!előkövetelmények</nidx>

<itemize>
<item>Kb. 150 MB üres hely a lemezen
<item>GNU make 3.75
<item>gcc &gt;= 2.7.2 (még jobb, ha 2.7.2.1)
<item>binutils 2.8.1 (az alphához kell egy snapshot)
<item>bash 2.0
<item>autoconf 2.12 (ha megváltoztatod a configure.in fájlt)
<item>texinfo 3.11
</itemize>

Egy i586@133 gépen 64 MB RAM-mal, kb. 3 órába telik, amíg elkészül a teljes könyvtár a kiegészítőkkel. Egy erősen leterhelt i686@200 gépen ugyanez kb. fél órába kerül.

<sect2>A forrás kicsomagolása
<p>
<nidx>glibc!telepítés!forráskód, kicsomagolás</nidx>

Ahhoz, hogy le tudd fordítani a forrást, ki kell csomagolnod.
Erre a legjobb megoldás a következő:
 <tscreen><verb>
 tar xzf glibc-2.0.6.tar.gz
 cd glibc-2.0.6
 tar xzf ../glibc-linuxthreads-2.0.6.tar.gz
 tar xzf ../glibc-crypt-2.0.6.tar.gz
 tar xzf ../glibc-localedata-2.0.6.tar.gz
 </verb></tscreen>
Ez a glibc-2.0.6 könyvtárba csomagolja ki a linuxthreads, crypt és locale kiegészítőket, ahol a configure megtalálja őket.

<sect2>Beállítás
<p>
<nidx>glibc!telepítés!beállítások</nidx>

A glibc-2.0.6 könyvtárba hozzál létre egy compile nevű könyvtárat majd lépj bele.
Mindent ebben a könyvtárban fogsz csinálni, ez egyszerűsíti a takarítást.
(A fejlesztők eddig nem törték magukat, hogy a 'make clean' tökéletesen működjön.)

<tscreen><verb>
mkdir compile
cd compile
</verb></tscreen>

Futtasd le a <tt>../configure</tt> szkriptet.  Ha kiegészítő csomagokat is akarsz használni, meg kell adnod az --enable-add-ons kapcsolót, pl.: --enable-add-on\s=linuxthreads,crypt,localedata.

Valószínűleg meg akarod adni a célkönyvtárat is, ahova a glibc-t telepíteni akarod. Mivel a szabványos Linux disztribúcióhoz akarsz igazodni, add meg a --prefix=/usr kapcsolót. (Ha egy Linux rendszeren az <tt>/usr</tt> könyvtárat adod meg, a configure magától be tud állítani egyéb fontos elérési útvonalakat, ahova a libc.so és egyéb más fontos a <tt>/lib</tt>-ben lévő könyvtárakat kell tenni. 
A configure parancssora valahogy így fog kinézni:
<tscreen><verb>
 ../configure --enable-add-ons=linuxthreads,crypt,localedata --prefix=/usr
</verb></tscreen>

<sect2>Fordítás
<p>
<nidx>glibc!telepítés!fordítás</nidx>

A fordításhoz és ellenőrzéshez írd be a következőket:
 <tscreen><verb>
 make
 make check
 </verb></tscreen>


<sect1>Felkészülés a telepítésre
<p>
<nidx>glibc!telepítés!előkészületek</nidx>

Akár fordítod a glibc-t, akár bináris csomagokból rakod fel, néhány fájlt át kell helyezned, mert bár minden újonnan fordított program az új glibc-t fogja használni, a régi (nem statikusan linkelt) programoknak szükségük van a régi programkönyvtárra (libc5), ezért azt nem írhatod egyszerűen felül.

<enum>
<item>Hozz létre egy új könyvtárat a régi fájloknak:
 <tscreen><verb>
 mkdir -p /usr/i486-linuxlibc5/lib
 </verb></tscreen>

<item>A régi fejléc fájlokat ki kell helyezni a <tt>/usr/include</tt> könyvtárból:
 <tscreen><verb>
 mv /usr/include /usr/i486-linuxlibc5/include
 </verb></tscreen>

<item>Csinálj egy új include könyvtárat és hozd létre a szükséges, más include könyvtárakra mutató kapcsokat: 
 <tscreen><verb>
 mkdir /usr/include

 ln -s /usr/src/linux/include/linux /usr/include/linux
 ln -s /usr/src/linux/include/asm /usr/include/asm
 ln -s /usr/X11R6/include/X11 /usr/include/X11
 ln -s /usr/lib/g++-include /usr/include/g++
 </verb></tscreen>

Ezek a kapcsok lehet, hogy kicsit eltérnek a megadottól, mert az include könyvtárak helye összeállítástól függő. Legalább is a Slackware Linuxokon a g++ fejléc fájlok a <tt>/usr/local/g++-include</tt> könyvtárban vannak, míg a Debian alatt a <tt>/usr/include/g++</tt> könyvtárban találhatók és a  
<tt>/usr/lib/g++-include</tt> kapocs a <tt>/usr/include/g++</tt>-ra mutat.  
Az utóbbi esetben valószínűleg szerencsésebb az eredeti g++ include könyvtárat visszahelyezni a <tt>/usr/include</tt> könyvtárba.

<item>Állíts vissza minden plusz fejléc fájlt és kapcsot, ami esetleg az eredeti <tt>/usr/include</tt> könyvtárban volt. Egyes szabványtalan programkönyvtárak, mint pl. az ncurses fájlokat raknak be a <tt>/usr/include</tt> könyvtárba, vagy kapcsokat hoznak ott létre, melyek az adott programkönyvtár include könyvtárára mutatnak. Ezeket a fájlokat és kapcsokat vissza kell állítanod, hogy továbbra is használni tudd a kérdéses programkönyvtárakat.

<item>Add hozzá az új programkönyvtár könyvtárát (pl.
<tt>/usr/i486-linuxlibc5/lib</tt>) az <tt>/etc/ld.so.conf</tt> fájl <em>elejéhez</em>. Legalább az 1.8.8-as verziójú ld.so-ra van szükséged, különben bizarr hibaüzenetekkel találod magad szembe a glibc telepítése után.

<item>Helyezd át az összes régi C programkönyvtárat az új könyvtárba.
 <tscreen><verb>
 mv /usr/lib/libbsd.a /usr/i486-linuxlibc5/lib
 mv /usr/lib/libc.a /usr/i486-linuxlibc5/lib
 mv /usr/lib/libgmon.a /usr/i486-linuxlibc5/lib
 mv /usr/lib/libm.a /usr/i486-linuxlibc5/lib
 mv /usr/lib/libmcheck.a /usr/i486-linuxlibc5/lib
 mv /usr/lib/libc.so /usr/i486-linuxlibc5/lib
 mv /usr/lib/libm.so /usr/i486-linuxlibc5/lib
 cp /lib/libm.so.5.* /usr/i486-linuxlibc5/lib
 cp /lib/libc.so.5.* /usr/i486-linuxlibc5/lib
 </verb></tscreen>
A <tt>libm.so.5</tt> és <tt>libc.so.5</tt> fájlokat másolni kell és nem áthelyezni, ha a <tt>/usr</tt> nem a <tt>/</tt> partíción van, mert ezekre a programkönyvtárakra a Linuxnak induláskor szüksége van, ezért a <tt>/</tt> köteten kell legyenek.

<item>Helyezd át az <tt>/usr/lib/*.o</tt> fájlokat az új könyvtárba.
 <tscreen><verb>
 mv /usr/lib/crt1.o /usr/i486-linuxlibc5/lib
 mv /usr/lib/crti.o /usr/i486-linuxlibc5/lib
 mv /usr/lib/crtn.o /usr/i486-linuxlibc5/lib
 mv /usr/lib/gcrt1.o /usr/i486-linuxlibc5/lib
 </verb></tscreen>

<item>Frissítsd a programkönyvtár gyorsítótárát, miután átrendezted a programkönyvtárakat.
 <tscreen><verb>
 ldconfig -v
 </verb></tscreen>
</enum>


<sect1>Telepítés bináris csomagból
<p>
<nidx>glibc!telepítés!előre fordított binárisok</nidx>

Ha előre fordított bináris csomagokból telepíted a glibc-t, először ellenőrizd
a csomagok tartalmát:
 <tscreen><verb>
 tar -tzvf glibc-2.0.bin.i386.tar.gz
 tar -tzvf glibc-crypt-2.0.bin.i386.tar.gz
 </verb></tscreen>
Ha elégedett vagy az eredménnyel, telepítheted a glibc-t:
 <tscreen><verb>
 cd /
 tar -xzf glibc-2.0.bin.i386.tar.gz
 tar -xzf glibc-crypt-2.0.bin.i386.tar.gz
 ldconfig -v
 </verb></tscreen>
Ha más architektúrát vagy verziót használsz, értelemszerűen helyettesítsd a fájlneveket.

A glibc legújabb verziója általában nincs meg bináris csomagban, viszont a legújabb verzió használata mindig javasolt, a hibajavítások miatt. Ha nem tudod a glibc-t lefordítani a saját gépeden, tölts le egy bináris programkönyvtárat tartalmazó csomagot egy olyan disztribúcióból, ami a glibc-t használja (pl. RedHat) és telepítsd azt.

<sect1>Telepítés forráskódból
<p>
<nidx>glibc!telepítés!forráskódból</nidx>

A programkönyvtár forráskódból való telepítéséhez, add ki root felhasználóként a <tt>compile/</tt> könyvtárból a következő utasításokat: 
 <tscreen><verb>
 make install
 ldconfig -v
 </verb></tscreen>


<sect1>A gcc specs fájljának frissítése
<p>
<nidx>glibc!telepítés!gcc specs fájl, frissítés</nidx>

A telepítés utolsó lépéseként (mind a bináris csomagok, mind a forráskódból való telepítés esetén) frissíteni kell a gcc <tt>specs</tt> fájlját, hogy a fordító az új glibc-vel szerkessze össze a későbbiekben fordított programokat.
Hogy meghatározd, a gcc melyik specs fájl használja, add ki a következő parancsot:
 <tscreen><verb>
 &percnt; gcc -v
 reading specs from /usr/lib/gcc-lib/i486-unknown-linux/2.7.2.2/specs
 gcc version 2.7.2.2
 </verb></tscreen>

Ebben az esetben a i486-unknown-linux írja le a rendszert és a 2.7.2.2 a verziót.
Át kell másolnod a <tt>/usr/lib/gcc-lib/&lt;system&gt;</tt> könyvtárat a régi rendszer könyvtárba:
 <tscreen><verb>
 cd /usr/lib/gcc-lib/
 cp -r i486-unknown-linux i486-linuxlibc5
 </verb></tscreen>

Lépjél be az eredeti könyvtáraba, majd a verziószám által jelölt könyvtárba:
 <tscreen><verb>
 cd /usr/lib/gcc-lib/i486-unknown-linux/2.7.2.2
 </verb></tscreen>

Ezek után módosítsd a <tt>specs</tt> fájlt, ami ebben a könyvtárban található.
Írd át a <tt>/lib/ld-linux.so.1</tt> szöveget <tt>/lib/ld-linux.so.2</tt>-re.  Ha ez megvan, törölj ki minden <tt/&percnt;{...:-lgmon}/  fájlra mutató hivatkozást, mert a glibc nem használja a gmon könyvtárat.
Találsz egy példa spec fájlt a <ref id="specs" name="Példa specs fájl"> fejezetben.


<sect1>A feltelepített programkönyvtár tesztelése
<p>
<nidx>glibc!telepítés!tesztelés</nidx>

A programkönyvtár ellenőrzéséhez, hozz létre egy glibc.c nevű fájlt a következő tartalommal:
 <tscreen><verb>
 &num;include &lt;stdio.h&gt;

 main()
 {
     printf("hello world!\n");
 }
 </verb></tscreen>
Fordítsd le a programot.
 <tscreen><verb>
 &percnt; gcc glibc.c -o glibc
 </verb></tscreen>
Az ldd programmal ellenőrizd, hogy a fordító tényleg az új programkönyvtárat használja:
 <tscreen><verb>
 &percnt; ldd glibc
 libc.so.6 => /lib/libc.so.6 (0x4000e000)
 /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)
 </verb></tscreen>
Ha a programot sikerül lefordítani, és futása eredményeként kiírja, hogy &dquot;hello world!&dquot; a telepítés sikerült.

<sect>Fordítás a nem elsődleges libc-vel
<p>
<nidx>glibc!fordítás más programkönyvtárral</nidx>

Vannak olyan alkalmak, amikor nem az elsődleges programkönyvtárat szeretnéd használni fordításkor. Ez a rész azt írja le, hogy ezt hogyan teheted meg. A felhasznált könyvtár- és fájlnevek megegyeznek az előző részben használtakkal.
Ne felejtsd el megváltoztatni ezeket a neveket a telepítésednek megfelelően.

<sect1>Figyelmeztetés, ha nem elsődleges C programkönyvtárat használsz
<p>
<nidx>glibc!fordítás más programkönyvtárral!figyelmeztetés</nidx>
Mielőtt bármilyen olyan programot fordítanál, amit a Linux a rendszer indulásakor használ (a nem root partíciók felcsatolása előtt), ne felejtsd el, hogy ha a program dinamikusan linkelt, szüksége van a programkönyvtárakra a root partíción. Ha megfigyelted az előző részben leírt telepítést, hiába a glibc az új C programkönyvtár, a régi libc is megmaradt a <tt>/lib</tt> könyvtárban, ami a root partíción van. Ez azt jelenti, hogy a régi libc-vel összeszerkesztett programok továbbra is használhatók az indulási folyamat során.
Ha viszont a <tt>/usr</tt> nem a root partíción van és a glibc-t teszt könyvtárként telepíted a <tt>/usr/i486-linuxglibc2</tt> könyvtárba, minden új, a teszt könyvtárral fordított program működésképtelen lesz, amíg nincs felcsatolva a <tt>/usr</tt> könyvtárat tartalmazó partíció.

<sect1>Programok fordítása teszt glibc-vel
<p>
<nidx>glibc!fordítás más könyvtárral!glibc</nidx>
Ahhoz, hogy egy programot a teszt glibc könyvtárral fordíts, be kell állítanod az include könyvtárak és fájlok elérési útvonalait úgy, hogy azok a teszt glibc könyvtárban lévő include fájlokra mutassanak. Ha a parancssoron megadod a 
&dquot;-nostdinc&dquot; kapcsolót, az törli a hivatkozásokat az alapértelmezett include elérési útvonalakat, a
&dquot;-I/usr/i486-linuxglibc2/include&dquot; pedig megadja a glibc include fájlok helyét.
Meg kell még add a gcc include fájljait, amelyek a 
<tt>/usr/lib/gcc-lib/i486-linuxglibc2/2.7.2.2/include</tt> könyvtárban találhatók (akkor, ha 2.7.2.2-es gcc-t használsz és a teszt programkönyvtárat az i486-linuxglibc2 könyvtárba telepítetted).

Meg kell add ezeken kívül a gcc beállításait. Ezt megteheted a &dquot;-b i486-linuxglibc2&dquot; kapcsolóval.

A legtöbb programnál megadhatod ezeket a kapcsolókat a makefile 
<tt>&dollar;CFLAGS</tt> és <tt>&dollar;LDFLAGS</tt> opcióinál:
 <tscreen><verb>
 CFLAGS = -nostdinc -I/usr/i486-linuxglibc2/include \
          -I/usr/lib/gcc-lib/i486-linuxglibc2/2.7.2.2/include \
          -b i486-linuxglibc2
 LDFLAGS = -b i486-linuxglibc2
 </verb></tscreen>

Ha configure szkriptet használsz a fordítás előtt, állítsd be a <tt>&dollar;CFLAGS</tt>
és <tt>&dollar;LDFLAGS</tt> környezeti változókat (csh/tcsh-ban használd az env/setenv parancsokat,
sh/bash-ban használd a set/export-ot ) a configure futtatása előtt.  Az így generált makefile fájlokban szerepelnie kell a megfelelő <tt>&dollar;CFLAGS</tt>
és <tt>&dollar;LDFLAGS</tt> beállításoknak.  Nem minden configure szkript olvassa ki a parancsértelmező környezetéből a változókat, ezért ellenőrizni kell a makefile-t, és kézzel javítani szükség esetén.

Ha a fordítandó program csak a gcc-t hívja meg (és nem egyenesen a cpp-t vagy a binutils-t), használhatod a következő szkriptet a kapcsolók megadására:
 <tscreen><verb>
 &num;!/bin/bash
 /usr/bin/gcc -b i486-linuxglibc2 -nostdinc \
              -I/usr/i486-linuxglibc2/include \
              -I/usr/lib/gcc-lib/i486-linuxglibc2/2.7.2.2/include "&dollar;@"
 </verb></tscreen>
Használd ezt a szkriptet fordításnál a &dquot;gcc&dquot; helyett.

<sect1>Programok fordítása libc 5-el, ha a glibc az elsődleges programkönyvtár
<p>
<nidx>glibc!fordítás más könyvtárral!libc 5</nidx>
Ha a régi libc könyvtárral akarsz programot fordítani és a glibc-t elsődleges könyvtárként telepítetted, vissza kell állítsad az include fájlok elérési útvonalát a régi include fájlokéra. Meg kell add a &dquot;-nostdinc&dquot; kapcsolót, ez törli az alapértelmezett beállításokat, majd a &dquot;-I/usr/i486-linuxlibc5/include&dquot; kapcsolóval be kell állítanod a libc5 include fájljainak az elérési útvonalát.
Meg kell még adnod a 
&dquot;-I/usr/lib/gcc-lib/i486-linuxlibc5/2.7.2.2/include&dquot;
kapcsolót, amely a gcc specifikus include fájlok helyét adja meg.
Ne felejtsd el, az itt megadott könyvtárneveket a saját rendszerednek megfelelően megváltoztatni (könyvtárnevek és gcc verzió).

Végül meg kell add a gcc beállításait, a 
&dquot;-b i486-linuxlibc5&dquot; kapcsolóval.

A legtöbb programnál megadhatod ezeket a kapcsolókat a makefile
<tt>&dollar;CFLAGS</tt> és <tt>&dollar;LDFLAGS</tt> opcióinál:
 <tscreen><verb>
 CFLAGS = -nostdinc -I/usr/i486-linuxlibc5/include \
          -I/usr/lib/gcc-lib/i486-linuxlibc5/2.7.2.2/include \
          -b i486-linuxlibc5
 LDFLAGS = -b i486-linuxlibc5
 </verb></tscreen>

Ha configure szkriptet használsz a fordítás előtt, állítsd be a <tt>&dollar;CFLAGS</tt>
és <tt>&dollar;LDFLAGS</tt> környezeti változókat (csh/tcsh-ban használd az env/setenv parancsokat,
sh/bash-ban használd a set/export-ot ) a configure futtatása előtt.  Az így generált makefile fájlokban szerepelnie kell a megfelelő <tt>&dollar;CFLAGS</tt>
és <tt>&dollar;LDFLAGS</tt> beállításoknak.  Nem minden configure szkript olvassa ki a parancsértelmező környezetéből a változókat, ezért ellenőrizni kell a makefile-t, és kézzel javítani szükség esetén.

Ha a fordítandó program csak a gcc-t hívja meg (és nem egyenesen a cpp-t vagy a binutils-t), használhatod a következő szkriptet a kapcsolók megadására:
 <tscreen><verb>
 &num;!/bin/bash
 /usr/bin/gcc -b i486-linuxlibc5 -nostdinc \
              -I/usr/i486-linuxlibc5/include \
              -I/usr/lib/gcc-lib/i486-linuxlibc5/2.7.2.2/include "&dollar;@"
 </verb></tscreen>
Használd ezt a szkriptet fordításnál a &dquot;gcc&dquot; helyett.

<sect>C++ programok fordítása
<p>
<nidx>glibc!C++ programok, fordítás</nidx>
A libg++ használja a matematikai programkönyvtárat, tehát a libm könyvtárhoz van kapcsolva. Mivel a meglévő libg++ könyvtárad a régi C programkönyvtárat használja, újra kell fordítanod a glibc-vel, vagy telepítened kell egy bináris könyvtárat (amit glibc-vel fordítottak). A libg++ legfrissebb változatát (forráskódot vagy bináris csomagot x86-os architektúrához) letöltheted a 
<url url="ftp://ftp.yggdrasil.com/private/hjl/"> ftp helyről.

<sect1>A libg++ telepítése teszt glibc könyvtárral
<p>
<nidx>glibc!libg++, telepítés!teszt könyvtárként</nidx>
Ha teszt könyvtárként telepítetted a glibc-t, abba a könyvtárba kell telepítened a fájlokat, amelyikben a glibc található (pl. 
<tt>/usr/i486-linuxglibc2</tt>, az előző fejezetekben leírt példák alapján).
Ha bináris csomagból telepíted a libg++ könyvtárat (amit forrón ajánlok, mert még sohasem volt szerencsém így libg++ könyvtárat fordítani), csomagold ki a fájlokat egy átmeneti könyvtárba, majd helyezd át a <tt>usr/lib/</tt> könyvtárban lévő fájlokat az <tt>&lt;install directory&gt;/lib/</tt> könyvtárba, a <tt>usr/include/</tt>-ban lévő fájlokat a
<tt>&lt;install directory&gt;/include/</tt> könyvtárba (ne felejtsd el először törölni az <tt>include/g++</tt> kapcsot!) és a <tt>usr/bin/</tt>-ben lévő fájlokat az <tt>&lt;install directory&gt;/bin/</tt> könyvtárba.

<sect1>A libg++ telepítése elsődleges glibc könyvtár esetén
<p>
<nidx>glibc!libg++, telepítés!elsődleges könyvtárként</nidx>

Ha a glibc-t elsődleges könyvtárként telepítetted, először át kell helyezned a régi libg++ fájljaidat a régi libc könyvtárba, abban az esetben ha ezen túl is akarsz fordítani g++ programokat a régi libc-vel. valószínűleg ennek az a legegyszerűbb módja, hogy telepítesz egy libc5-el fordított új libg++, mint az előző fejezetben és utána feltelepíted a glibc-t normálisan.

<sect1>C++ programok fordítása a nem elsődleges libc könyvtárral
<p>
<nidx>glibc!C++ programok, fordítás!nem elsődleges libc-vel</nidx>
Ha C++ programokat szeretnél nem elsődleges libc-vel fordítani, meg kell add a g++ include könyvtárat, ami a fenti példák esetén <tt>/usr/i486-linuxglibc2/include/g++</tt> lenne teszt glibc konfiguráció esetén vagy <tt>/usr/i486-linuxlibc5/include/g++</tt> elsődleges glibc konfiguráció esetén.
Ezt általában el lehet érni a <tt>&dollar;CXXFLAGS</tt> változó módosításával:
 <tscreen><verb>
 CXXFLAGS = -nostdinc -I/usr/i486-linuxglibc2/include \
            -I/usr/lib/gcc-lib/i486-linuxglibc2/2.7.2.2/include \
            -I/usr/i486-linuxlibc5/include/g++ -b i486-linuxglibc2
 </verb></tscreen>


<sect>Problémák
<p>
<nidx>glibc!problémák</nidx>

A glibc csomagban található egy GYIK (FAQ), amiben további információt és megoldásokat találhatsz a problémákra. A GYIK-nek van egy hálózaton elérhető változata is: <url url="http://www.imaxx.net/~thrytis/glibc/glibc-FAQ.html">. Most kiemelnék néhány problémát, amikről a GYIK-ben nincs (vagy nem elég részletesen van) szó.

<sect1>Nem működik a gépnevek feloldása
<p>
<nidx>glibc!problémák!gépnév feloldás</nidx>

A glibc 2 más módszert használ a gépnevek feloldására, mint a libc5.
A glibc "name server switch" (NSS) kódrésze keresi a <tt>/etc/nsswitch.conf</tt> fájlt. Ha nem működik a gépnév feloldás, amikor glibc 2 könyvtárat használó alkalmazásokat futtatsz, és a <tt>/etc/resolv.conf</tt> fájlod megvan, és tartalmazza a szükséges információkat, nézd meg, hogy van-e <tt>/etc/nsswitch.conf</tt> fájlod. Ha nincs ilyen nevű fájl, akkor hozz létre egyet, a következő tartalommal:
 <tscreen><verb>
 hosts:        files dns
 </verb></tscreen>
Ezzel beállítottad, hogy a névkiszolgálókra vonatkozó információk a <tt>/etc/resolv.conf</tt> fájlban vannak.

Ha további részletek is érdekelnek, olvasd el a libc info lapját, amiben
részletesen le van írva a nsswitch.conf fájl felépítése.


<sect>Hibák bejelentése
<p>
<nidx>glibc!hibák, bejelentés</nidx>

Ha úgy gondolod, hogy hiba van a programkönyvtárban, olvasd el először a GYIK-et. Nem kizárt, hogy másnak esetleg ugyanaz a problémája volt, mint Neked, és van egyszerű megoldás. Ellenőrizd még a glibc csomagjában található <tt>INSTALL</tt> fájl "Recommended Tools to Install the GNU C Library" részét, mert a problémád adódhat más program hibájából is, nem feltétlenül a glibc működik rosszul.

Ha hibát találtál, először győződj meg róla, hogy tényleg igazi hibáról van szó. Ennek ellenőrzésére egy jó módszer, ha összehasonlítod a GNU C programkönyvtár és valamilyen másik C programkönyvtár viselkedését. Ha ugyanaz az eredmény mind a két programkönyvtárral, akkor valószínűleg nem hibáról van szó (bár nem 100%). Ha a két könyvtár viselkedése nem egyezik meg, akkor valószínű, hogy hibát találtál.

Ezek után nézd meg a <url url="http://www-gnats.gnu.org:8080/cgi-bin/wwwgnats.pl"> címen elérhető hibákat tartalmazó adatbázist (bug database). Lehet, hogy valaki már előtted bejelentette a hibát. Érdemes megnézni a glibc csomagban található <tt>BUGS</tt> fájlt, amiben szintén az ismert hibák listája található.

Ha már biztos vagy benne, hogy új hibát találtál, próbáld megállapítani a lehető legpontosabban, egy nagyon egyszerű tesztprogrammal, hogy mi okozza a hibát. A C program könyvtár esetében ez azt jelenti, hogy meg kell állapítanod, hogy melyik függvényhívás idézi elő. Ez nem túl nehéz feladat.

A legutolsó lépés, amikor megvan az egyszerű kis tesztprogram, a hiba bejelentése. A hiba bejelentésénél, küldd el a tesztprogramot, az eredményeket amiket kaptál, az eredményeket amiket vártál, esetleg arról valamit, hogy szerinted mi lehet a gond (ha van valami ötleted), a rendszer típusát, a GNU C programkönyvtár verzióját, a gcc fordító verzióját és a GNU Binutils verzióját. Mellékeld még a <tt>config.status</tt> és <tt>config.make</tt> fájlokat, ezeket abban a könyvtárban találod, ahonnan a <tt>configure</tt> szkriptet futtattad.

Minden a GNU C könyvtárral kapcsolatos hibabejelentést a <tt/glibcbug/ shell szkipt segítségével kell elküldeni a <url url="bugs@gnu.org"> címre (működik még a régi <url url="bugs@gnu.ai.mit.edu"> cím is), vagy a GNATS webes interfészén keresztül a <url url="http://www-gnats.gnu.org:8080/cgi-bin/wwwgnats.pl"> honlapon.

Javaslatokat és kérdéseket a <url url="bugs-glibc@prep.ai.mit.edu"> levelezőlistára lehet küldeni.
Ha nem olvasod a gnu.bug.glibc hírcsoportot, feliratkozhatsz a listára a  <url url="bug-glibc-request@prep.ai.mit.edu"> honlapon.

Kérlek NE küldjél GNU C könyvtárral kapcsolatos hibabejelentést a &lt;bug-gcc@prep.ai.mit.edu&gt; címre. Ez a lista a GNU CC hibáival foglalkozik. A GNU CC és a GNU C könyvtár két külön dolog, különböző emberek tartják karban.

<sect>Példa specs fájl<label id="specs">
<p>
<nidx>glibc!GCC specs fájl, példa</nidx>

Ide beszúrtam egy <tt>specs</tt> fájlt, amit a gcc használ a glibc 2-vel fordításnál és linkelésnél. A fájl a <tt>/usr/lib/gcc-lib/&lt;new system dir&gt;/&lt;gcc version&gt;</tt> könyvtárban található. Ha x86-os rendszered van, valószínűleg bemásolhatod a fájlba ezt a részt egy az egyben.

 <tscreen><verb>
 *asm:
 &percnt;{V} &percnt;{v:&percnt;{!V:-V}} &percnt;{Qy:} &percnt;{!Qn:-Qy} &percnt;{n} &percnt;{T} &percnt;{Ym,*} &percnt;{Yd,*} &percnt;{Wa,*:&percnt;*}

 *asm_final:
 &percnt;{pipe:-}

 *cpp:
 &percnt;{fPIC:-D__PIC__ -D__pic__} &percnt;{fpic:-D__PIC__ -D__pic__} &percnt;{!m386:-D__i486__} 
 &percnt;{posix:-D_POSIX_SOURCE} &percnt;{pthread:-D_REENTRANT}

 *cc1:
 &percnt;{profile:-p}

 *cc1plus:


 *endfile:
 &percnt;{!shared:crtend.o&percnt;s} &percnt;{shared:crtendS.o&percnt;s} crtn.o&percnt;s

 *link:
 -m elf_i386 &percnt;{shared:-shared}   &percnt;{!shared:     &percnt;{!ibcs:       &percnt;{!static:   
 &percnt;{rdynamic:-export-dynamic}      &percnt;{!dynamic-linker:-dynamic-linker /lib/ld-linux.so.2}}
 &percnt;{static:-static}}}

 *lib:
 &percnt;{!shared: &percnt;{pthread:-lpthread}  &percnt;{profile:-lc_p} &percnt;{!profile: -lc}}

 *libgcc:
 -lgcc

 *startfile:
 &percnt;{!shared:      &percnt;{pg:gcrt1.o&percnt;s} &percnt;{!pg:&percnt;{p:gcrt1.o&percnt;s}                        &percnt;{!p:&percnt;{profile:gcrt1.o&percnt;s}
 &percnt;{!profile:crt1.o&percnt;s}}}}    crti.o&percnt;s &percnt;{!shared:crtbegin.o&percnt;s} &percnt;{shared:crtbeginS.o&percnt;s}

 *switches_need_spaces:


 *signed_char:
 &percnt;{funsigned-char:-D__CHAR_UNSIGNED__}

 *predefines:
 -D__ELF__ -Dunix -Di386 -Dlinux -Asystem(unix) -Asystem(posix) -Acpu(i386) -Amachine(i386)

 *cross_compile:
 0

 *multilib:
 . ;
 </verb></tscreen>

<sect>Egyéb
<p>
<nidx>glibc!egyéb</nidx>

<sect1>További információ
<nidx>glibc!további információ</nidx>

<p>

<sect2>Web lapok
<p>
<nidx>glibc!további információ!WWW</nidx>

<itemize>
<item><url url="http://www.gnu.org/software/libc/libc.html" name="Az FSF GNU C Programkönyvtár Weblapja">
<item><url url="http://www.imaxx.net/~thrytis/glibc/" name="GNU Libc 2 használata Linuxszal">
<item><url url="http://huizen.dds.nl/~frodol/glibc/"name="Glibc-2 telepítése Linuxra">.
<item><url url="http://www.gate.net/~storm/FAQ/libc5-libc6-Mini-HOWTO.html" name="Debian libc5-ről libc6-ra Mini-HOWTO">.
</itemize>

<sect2>Hírcsoportok
<p>
<nidx>glibc!további információ!hírcsoportok</nidx>

<itemize>
<item><htmlurl url="news:comp.os.linux.development.system" name="comp.os.linux.development.system">
<item><htmlurl url="news:comp.os.linux.development.apps" name="comp.os.linux.development.apps">
<item><htmlurl url="news:linux.dev.kernel" name="linux.dev.kernel">
<item><htmlurl url="news:gnu.bug.glibc" name="gnu.bugs.glibc">
</itemize>

<sect2>Levelezőlisták
<p>
<nidx>glibc!további információ!levelező listák</nidx>

<descrip>
<tag/Glibc 2 Linux fórum./
Ez a lista olyan Linux felhasználók vitafóruma, akik feltelepítették 
a glibc2-t, az új GNU C programkönyvtárat. A témák: kompatibilitással összefüggő kérdések, programok fordítása során felmerülő problémák (Linux/glibc környezetben). A feliratkozáshoz küldj egy levelet a <url url="mailto:Majordomo@ricardo.ecn.wfu.edu" name="Majordomo@ricardo.ecn.wfu.edu"> címre, a levél törzsében legyen:"subscribe glibc-linux &lt;a saját e-mail címed&gt;". 

A levelezőlista archívuma megtalálható a <url
url="http://www.progressive-comp.com/Lists/?l=linux-glibc&amp;r=1&amp;w=2&num;linux-glibc"> címen.
</descrip>

<sect1>Köszönet
<p>

Ezen információ nagy részét a <url url="http://www.gnu.org/software/libc/libc.html" name="GNU Libc">  honlapról loptam, valamint Ulrich Drepper &lt;drepper@gnu.ai.mit.edu&gt; glibc 2 bejelentéseiből és megjegyzéseiből. Andreas Jaeger-től &lt;aj@arthur.rhein-neckar.de&gt; származik a hibabejelentést leíró fejezet egy része.

A következők voltak segítségemre e dokumentum összeállításában:
<itemize>
<item>Allex &lt;allex@ms2.accmail.com.tw&gt;
<item>Mark Brown &lt;M.A.Brown-4@sms.ed.ac.uk&gt;
<item>Ulrich Drepper &lt;drepper@gnu.ai.mit.edu&gt;
<item>Scott K. Ellis &lt;ellis@valueweb.net&gt;
<item>Aron Griffis &lt;agriffis@coat.com&gt;
<item>Andreas Jaeger &lt;aj@arthur.rhein-neckar.de&gt;
<item>Hank Leininger &lt;hlein@progressive-comp.com&gt;
<item>Frodo Looijaard &lt;frodol@dds.nl&gt;
<item>Ryan McGuire &lt;rmcguire@freenet.columbus.oh.us&gt;
<item>Shaya Potter &lt;spotter@capaccess.org&gt;
<item>Les Schaffer &lt;godzilla@futuris.net&gt;
<item>Andy Sewell &lt;puck@pookhill.demon.co.uk&gt;
<item>Gary Shea &lt;shea@gtsdesign.com&gt;
<item>Stephane &lt;sr@adb.fr&gt;
<item>Jan Vandenbos &lt;jan@imaxx.net&gt;
<item>Michael Wolf &lt;wolfm@rpi.edu&gt;
</itemize>

Ezt a dokumentumot különböző nyelvekre fordítják:
<itemize>
<item>Kínai:  Allex &lt;allex@ms2.accmail.com.tw&gt;
<item>Francia:  Olivier Tharan &lt;tharan@int-evry.fr&gt;
<item>Japán:  Kazuyuki Okamoto &lt;ikko-@pacific.rim.or.jp&gt;
<item>Magyar: Kovács Emese &lt;emese@eik.bme.hu&gt;
</itemize>


<sect1>Visszajelzés
<p>

Ezen HOGYAN írásától, valamint a <url url="http://www.imaxx.net/~thrytis/glibc" name="glibc 2 for Linux"> honlap karbantartásától eltekintve semmi közöm sincs a glibc projekthez. Távol állok attól, hogy mindent tudjak a témakörről, ennek ellenére szívesen megpróbálok segíteni, ha gondjaid támadnak. Szívesen látok minden visszajelzést, javítást vagy kiegészítést a <url url="mailto:ejg3@cornell.edu" name="ejg3@cornell.edu"> címen.

<sect1>Szerzői jogok
<P>
Copyright &copy; Eric Green, 1997.

Ez a dokumentum továbbadható az LDP licencében rögzített feltételek mellett.

<sect1>Magyar fordítás

<P>A magyar fordítást
<url url="mailto:emese@eik.bme.hu_NO_SPAM" name="Kovács Emese"> készítette (1999).
A lektorálást
<url url="mailto:dacas@freemail.hu_NO_SPAM" name="Daczi László"> végezte el (2002.12.28).
Bármilyen fordítással kapcsolatos észrevételt a
<url url="mailto:linuxhowto@sch.bme.hu_NO_SPAM" name="linuxhowto@sch.bme.hu"> címre küldjetek.
Eme dokumentum legfrissebb változata megtalálható a
<url url="http://tldp.fsf.hu/index.html" name="Magyar Linux Dokumentációs Projekt"> honlapján.

</article>












