Ibland kommer du vilja använda ett alternativt bibliotek att kompilera dina program med. Detta avsnitt förklarar hur du kan göra detta. Kataloger och installeringsnamn är desamma som i exemplen i de två föregående avsnitten. Kom ihåg att ändra namnen för att passa dina inställningar.
Innan du kompilerar några program som används i systemets bootprocess
måste du tänka på att programmet länkas dynamiskt och används innan
icke-rotpartitionerna monteras, så alla länkade bibliotek måste finnas
på rotpartitionen. Om du följer installeringsprocessen i föregående
avsnitt för att installera glibc som ditt primära C-bibliotek så
lämnas det gamla libc i /lib
, alltså på din
rotpartition. Detta innebär att alla dina program fortfarande kommer
att fungera då du bootar. Om dock /usr
finns på en annan
partition och du installerar glibc som testbibliotek i
/usr/i486-linuxglibc2
, så kommer inga nya program du
kompilerar med glibc fungera förrän din /usr
-partition
monterats.
För att kompilera ett program med ett test-installerat glibc måste du
definiera om include-sökvägarna, så att de pekar på include-filerna
för glibc. Genom att ange "-nostdinc" får du kompilatorn
att ignorera den vanliga sökvägen.
"-I/usr/i486-linuxglibc2/include" gör att den hittar
include-filerna för glibc. Du måste även ange include-filerna för gcc,
vilka finns i
/usr/lib/gcc-lib/i486-linuxglibc2/2.7.2.2/include
(förutsatt
att du installerat test-biblioteket i i486-linuxglibc med gcc
2.7.2.2).
För att länka ett program med ett test-installerat glibc måste du ange korrekt gcc-setup. Detta gör du genom att ange parametern "-b i486-linuxglibc2".
För de flesta program kan de ange dessa nya parametrar genom att lägga
till dem till $CFLAGS
och $LDFLAGS
i
Makefilen:
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
Om du använder ett configure-script så kan du ange
$CFLAGS
och $LDFLAGS
som
skal-variabler (genom att använda env/setenv för csh/tsch eller
set/export för sh/bash osv.) innan du kör configure. Makefilerna som
skapas på detta sätt skall innehålla korrekta $CFLAGS
och $LDFLAGS
. Inte alla configure-scripts kommer ta
hänsyn till skal-variablerna, så du bör kolla och editera Makefilen
för hand efter att du kört configure.
Om programmen du kompilerar endast anropar gcc (och inte cpp eller binutils direkt), så kan du använda följande skal-program för att slippa ange parametrarna varje gång:
#!/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 "$@"
Sedan kan du använda detta skal-program istället för "gcc"
när du kompilerar.
För att kompilera ett program med dina gamla bibliotek, när du har installerat glibc som ditt huvudbibliotek, så måste du ställa om include-sökvägen till de gamla include-filerna. Att ange "-nostdinc" gör att de normala sökvägarna negeras, och "-I/usr/i486-linuxlibc5/include" pekar på include-filerna för libc5. Du måste också ange "-I/usr/lib/gcc-lib/i486-linuxlibc5/2.7.2.2/include" för att få med de gcc-specifika include-filerna. Kom ihåg att justera dessa sökvägar i överensstämmelse med namnen på dina nya kataloger och din gcc-version.
För att länka ett program med ditt gamla libc måste du ange gcc-setup. Detta gör du med parametern "-b i486-linuxlibc5".
För de flesta program kan du ange dessa nya alternativ genom att lägga
till dem till $CFLAGS
och $LDFLAGS
i
Makefilen:
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
Om du använder ett configure-script så kan du ange
$CFLAGS
och $LDFLAGS
som
skal-variabler (genom att använda env/setenv för csh/tsch eller
set/export för sh/bash osv.) innan du kör configure. Makefilerna som
skapas på detta sätt skall innehålla korrekta $CFLAGS
och $LDFLAGS
. Inte alla configure-scripts kommer ta
hänsyn till skal-variablerna, så du bör kolla och editera Makefilen
för hand efter att du kört configure.
Om programmen du kompilerar endast anropar gcc (och inte cpp eller binutils direkt), så kan du använda följande skal-program för att slippa ange parametrarna varje gång:
#!/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 "$@"
Sedan kan du använda detta skalprogram istället för "gcc"
när du kompilerar.