








			     Glibc 2 HOWTO 媩

		       @ Eric Green, ejg3@cornell.edu

		    Ķ Allex Juang, allex@ms2.accmail.com

			    1.5 , 1998~ 2 8



				   Abstract

     GNU C library (see glibc) glibc o glibc 2 HOWTO e]Ab Linux
     tΤWw˻PϥβĤG GNU C LibraryC



1.  ²

1.1   glibc 2

glibc!overview Glibc 2 O̷s GNU C 禡wC ثeݭקNiHb GNU
HurdALinux i386A m68kA H alpha tΤWA  2.1 N[J Linux
PowerPCA MIPSA SparcA Sparc 64 P Arm
tΪ䴩CӱN[J䥦[cΧ@~tΪ䴩C

b Linux WAglibc 2 ODn 6  libcA]NO Linux libc 5 ~̡C
Linux libc oiHQHvN libc 5C N 2.0.6 ӬݡAglibc
w㦳~~C Glibc 2.1  (b[N) N[Jh\A
òӨhtΤWA@DyϥΡC

Glibc 2 Tӿܩʪ[MG

      Crypt
	    UFC-crypt [KMC ѩXfҥHnXӡC

      LinuxThreads
	    Posix 1003.1c 'pthread' @C

      Locale data
	    ]tsyϥ glibc  internationalization \һ locale
	    ɮתơC

jPĳw Cryt P LinuxThreads oӪ[MA
pGw˪ܡAi|P䥦tΤW禡wyۮeΡC
(pAQϥγoӪ[M󪺸ܡA Ab configure ɥ[W --disable-
sanity-checks ﶵ)

1.2  o

o[\pb Linux tΤWw glib 2A AιHOǦb intel-based
Wϥ libc 5 ϥΪ̡C O䥦tΥHΨ䥦P禡w (p glibc 1)


Glibc 2 HOWTO 媩							      1





Glibc 2 HOWTO 媩							      2



ϥΪ̡A unNo󤤥X{ɦWHΨtά[cW٧@ANA
Ӥ]ioUC

o HOWTO ̷sib Linux Documentation Project1  άO
<URL:http://www.imaxx.net/~thrytis/glibc/Glibc2-HOWTO.html> C

1.3  o󪺳̷s

1.5 P 1.4 tOG

     Ed Bailey [J

    ڪsqllHc}

1.4 P 1.3 tOG

    NثeAѹʧ令~C

    soiӦCC

    s̷s 2.0.6C


2.  ܧAwˤ覡

glibc!installing

\hؤ覡w glibcAAiHw˦@ӴեΪ禡wA
NثeϥΪ禡w@OwA
MbsĶ{ɭԥΤPﶵӸեηs禡wC
γoئwˤ覡HiH glibcC (M glibc s{b glibc
᳣Nϥ) t~Aγoؤ覡wˡAAѭlXssĶA èS binary
distribution iHw˦ժ禡wC o˪w˽аѷӦw˦եΪ禡w
(section 4., page 4)C

o󤤩һt@ؤ覡hON glibc w˦Dn禡wC
ҦssĶ{N|ϥ glibcA
OA]iHbsĶɥΤPﶵӱN{sª禡wC
AiHwˤwgsĶnA]iHۤvsĶ禡wC
pQ̨ΤƩάOպAﶵA άOQ[JwsĶn䴩 add-on ܡA
AݨolXåBۤvsĶAoӦw˪L{аѷ w˦Dn C 禡w
(section 5., page 7)

Frodo Looijaard yzFt@ glibc wˤ覡C LkON glibc
w˦n禡wA M]wesĶ (cross compiler) Өϥ glibcC
oӤ覡_o󤤪զw˭nhAOes glibcC
oӤkbL Installing glibc-2 on Linux2  󤤻C

pA{bϥΪO Debian 1.3A OQF glibc ӤɯŨ줣íwA 

____________________

1. <URL:http://sunsite.unc.edu/LDP>

2. <URL:http://huizen.dds.nl/~frodol/glibc/>







Glibc 2 HOWTO 媩							      3



Debian libc5 to libc6 Mini-HOWTO3  |iDApϥ Debian  package ӤɯšC

pAn glibc 2 w˨@ntΤWA
]\AϥδժwˡAάObƥΨtΤWոլݡC
YϨSΡAYǵ{bsĶeMݭnYǭקA
]bYǨ禡쫬PAWܡC


3.  o禡w

glibc!obtaining

Glibc 2 ]t glibc package HμƭӪ[MG LinuxThreadsB Locale P CryptA
lXb

    <URL:ftp://prep.ai.mit.edu/pub/gnu/glibc-2.0.6.tar.gz>

    <URL:ftp://prep.ai.mit.edu/pub/gnu/glibc-linuxthreads-2.0.6.tar.gz>

    <URL:ftp://prep.ai.mit.edu/pub/gnu/glibc-localedata-2.0.6.tar.gz>

    <URL:ftp://prep.ai.mit.edu/pub/gnu/glibc-crypt-2.0.6.tar.gz>

Aݭnj 150MB ϺЪŶӧ@sĶPwˡA ֤ߨ禡w򥻦wˤjn
50MBC

2.0.6 èS binary  packageA 2.0.4  binary package u i386  m68k
A  2.0.1 for alpha hiHbHUaG

    Intel x86:

	 <URL:ftp://prep.ai.mit.edu/pub/gnu/glibc-2.0.4.bin.i386.tar.gz>

	 <URL:ftp://prep.ai.mit.edu/pub/gnu/glibc-crypt-2.0.4.bin.i386.tar.gz>


    Alpha:

	 <URL:ftp://prep.ai.mit.edu/pub/gnu/glibc-2.0.1.bin.alpha-
	  linux.tar.gz>

	 <URL:ftp://prep.ai.mit.edu/pub/gnu/glibc-crypt-2.0.1.bin.alpha-
	  linux.tar.gz>


    m68k:

	 <URL:ftp://prep.ai.mit.edu/pub/gnu/glibc-2.0.4-m68k-linux.bin.tar.gz>

	 <URL:ftp://prep.ai.mit.edu/pub/gnu/glibc-crypt-2.0.4-m68k-
	  linux.bin.tar.gz>

____________________

3. <URL:http://www.gate.net/~storm/FAQ/libc5-libc6-Mini-HOWTO.html>







Glibc 2 HOWTO 媩							      4



ѩ cypt oӪ[M󦳥XfADϥΪ̽Ш
<URL:ftp://ftp.ifi.uio.no/pub/gnu> oC

pGAΪO RedHat distributionA AiHq <URL:ftp://ftp.red
hat.com/pub/redhat/> o glibc2  rpmC b RedHat distribution 5.0 A glibc
2 ODn C 禡wC

pGAΪO Debian distributionAAiHq
<URL:ftp://ftp.debian.org/debian/dists/unstable/main/> o glibc2  pack
ageCɦWO libc6C Glibc 2 ثeO Debian ժ packageA  Debian
2.0 XӤN|ODn C 禡wC


4.  w˦եΪ禡w

glibc!testing

o@`eOpN glibc 2 w˦եΪ禡wC
ҦsĶ{sAثe禡wA
DAFYB~ѼƤ~|ss禡wC
ѩ|QsĶYɮפAAݭnѭlXӦw˳o禡wC

4.1  sĶPw

4.1.1  ݨD

glibc!testing!prerequisites

     150 MB ϺЪŶ

    GNU make 3.75

    gcc >= 2.7.2 (̦nO 2.7.2.1)

    binutils 2.8.1 (pO alpha Aٻݭn snapshot)

    bash 2.0

    autoconf 2.12 (pAʤF configure.in)

    texinfo 3.11

b@xw˦ 64MB O i586@133 WA sĶ㪺禡w (]A[M)
jn 3 pɡC Ӧb i686@200 h@ӥbpɡC

4.1.2  Ѷ}lX

glibc!testing!sources, extracting

Aݥ archive XlXCp~sĶA̦n覡pUG












Glibc 2 HOWTO 媩							      5



      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



o|N linuxthreadsB crypt P localedata ؿ glibc-2.0.6 ؿUA
p configure ~iHo add-onsC

4.1.3  ]wպA

glibc!testing!configuring

b glibc-2.0.6 ؿUAإߤ@ӷsؿ compileAåB cd  compile UA
Ҧu@|boӥؿAo|²ƫ򪺲Mu@C (oi̦Gå
'make clean' @oܦn)

      mkdir compile
      cd compile



 ../configureC nϥΤ[MAAݥ --enable-add-ons wA Ҧp
--enable-add-ons=linuxthreads,crypt,localedataC

A]ݫwnw˪ؿA/usr/i486-linuxglibc2 OӤܡA o˪ config
ure ROpUG

      ../configure --enable-add-ons=linuxthreads,crypt,localedata --prefix=/usr/i486-linuxglibc2


4.1.4  sĶPw

glibc!testing!compiling glibc!testing!installing

nsĶPҡA

      make
      make check



p 'make check' \FAw˨禡wG

      make install


4.2  s dynamic loader

glibc!testing!dynamic loader, updating glibc!testing!ld.so.conf, updating










Glibc 2 HOWTO 媩							      6



  1.  إ߳sA q ld.so  /lib/ld-linux.so.2G

	    ln -s /usr/i486-linuxglibc2/lib/ld-linux.so.2 /lib/ld-linux.so.2



      @ɮ׳sɡAoӨ禡wOߤ@@ӦmTwC
      íwX{ɭԡA b /lib ϥγs]|ϱoN glibc
      ɯŬDn禡wɧ󬰻PC

  2.  ק /etc/ld.so.confC AݭnW[s禡wҦb|ɮת̫A
      o|ӬO <prefix>/libC pΥHWܴNӬO /usr/i486-lin
      uxglibc2/libC bAקF /etc/ld.so.conf AG

	    ldconfig -v


4.3  ]w gcc

glibc!testing!gcc configuration

w˪̫@BOs /usr/lib/gcc-lib H gcc Dpϥηs禡wC
AAݭnƻsثeպAAnDثeպAAϥ gcc  -v ﶵG

      % gcc -v
      Reading specs from /usr/lib/gcc-lib/i486-unknown-linux/2.7.2.2/specs
      gcc version 2.7.2.2



o̡Ai486-unknown-linux OثeҥΪtΡA2.7.2.2 hOثeC AݭnN
/usr/lib/gcc-lib/<t> ƻssըtΥؿG

      cd /usr/lib/gcc-lib/
      cp -r i486-unknown-linux i486-linuxglibc2



AstΥؿHΪؿUG

      cd /usr/lib/gcc-lib/i486-linuxglibc2/2.7.2.2



קؿU specsCboɮפA N /lib/ld-linux.so.1  /lib/ld-
linux.so.2A A]ݭnhɮפҦ %{...:-lgmon} ܦA ] glibc
ϥ gmon 禡wӰ profileC AiHbSpecs ɽd (section 9., page
15)@ӽdҡC

4.4  sYɳs

glibc!testing!header files, updating

AݭnbA include ؿUإ߳s䥦 include ؿG








Glibc 2 HOWTO 媩							      7



      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



]\A䥦禡wAҦp ncurseA ӳoǨ禡w|ݭn̦ۤvYɡA
Aӱq /usr/include ƻsγsoɮסC (Ǩ禡wݭns glibc2  com
pileAboرΤUA unsĶåBw˨ /usr/i486-linuxglibc2)

4.5  էAw

glibc!testing

nզwˬO_\Aإߤ@ɮ glibc.c pUG

      #include <stdio.h>

      main()
      {
	  printf("hello world!\n");
      }



 '-b <w˥ؿ> -nostdinc -I<w˥ؿ>/include -I/usr/lib/gcc-
lib/<stΥؿ>/<gcc >/include' ﶵsĶG

      % 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



ϥ ldd Tw{O glibc2 sAӫD¦ libcG

      % ldd glibc
      libc.so.6 => /usr/i486-linuxglibc2/lib/libc-2.0.5.so (0x4000d000)
      /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)



pGqLsĶAs]TwA åBɤ] 'hello world!'
XAw˴N\FC


5.  w˦Dn禡w

glibc!installation

o@`eON glibc2 w˦ADn C 禡wC
AsĶs{N|so@Ө禡wA
DAΤFSsĶﶵӳs䥦C

pAO RedHat  Debian åBwU rpm  deb ɡA аѾ\ RedHat 








Glibc 2 HOWTO 媩							      8



Debian w˻AAiHLo@`C

5.1  ѭlXsĶ禡w

glibc!installation!compilation

o@`pѭlXsĶ glibc 2 P[MC
pGAQn̨ܳΤƻPպAﶵΨϥB~MAANsĶ禡wC

5.1.1  ݨD

glibc!installation!prerequisites

     150 MB ϺЪŶ

    GNU make 3.75

    gcc >= 2.7.2 (̦nO 2.7.2.1)

    binutils 2.8.1 (pO alpha Aݭn snapshot)

    bash 2.0

    autoconf 2.12 (pAʤF configure.in)

    texinfo 3.11

b@w˦ 64MB O骺 i586@133 WA
sĶ㪺禡wP[MjݭnTӤpɡC Ӧb i686@200
Whݭn@ӥbpɡC

5.1.2  Ѷ}lX

glibc!installation!sources, extracting

Aݭnq archive ѥXlX~sĶA ̦n覡OG

      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



oN| linuxthreadsBcrypt P localedata ؿ glibc-2.0.6 ؿUA p
configure ~oǪ[MC

5.1.3  ]wպA

glibc!installation!configuration

b glibc-2.0.6 ؿUAإߤ@ӷsؿ compileA åB cd  compile
UAҤ]u@|boӥؿA o|²ƫ򪺲Mu@C








Glibc 2 HOWTO 媩							      9



(oi̦Gå 'make clean' @oܦn)

      mkdir compile
      cd compile


 ../configureC nϥΪ[MAݥ --enable-add-ons ӫwA Ҧp
--enable-add-ons=linuxthreads,crypt,localedataC
]\A]|Qnww˪ؿAnŦX linux зǬ[cA w --prefix=/usrC
(b linux tΤW prefix Q] /usrA configure Dnվ䥦|A nN
libc.so HΨ䥦n禡w /lib) 㪺 configure ROpUG

      ../configure --enable-add-ons=linuxthreads,crypt,localedata --prefix=/usr

5.1.4  sĶ

glibc!installation!compilation

nsĶPҡA G

      make
      make check


5.2  ǳƦw

glibc!installation!preparation for

L׬OѭlXsĶάOwsĶnAA{bݲʬYɮרӪﱵs禡wC
ssĶ{|Qs glibcAO¦RAs{Mʾa libc 5A
ҥHAuOл\¦C

  1.  إߤ@ӷsؿөmɮסG

	    mkdir -p /usr/i486-linuxlibc5/lib




  2.  ªYɥݱq /usr/include }G

	    mv /usr/include /usr/i486-linuxlibc5/include




  3.  إߤ@ӷs include ؿAåB]w䥦 include ؿsG

	    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++









Glibc 2 HOWTO 媩							     10



      oǳsnAtΦӵy@վC ̤֦b Slackware Ag++ Yɮצb
      /usr/local/g++-includeA  Debian ob /usr/include/g++A åBN
      /usr/lib/g++-include s /usr/include/g++C
      b̪ΡAA]\|QnNl g++ include ؿ^ /usr/includeC

  4.  ^sҦB~YɻPsC YǫDзǪ禡w|Nɮש
      /usr/includeA άOb /usr/include m@s쥦̪ include ؿUC
      oɮ׻Ps^sAp~iHTϥγoB~禡wC

  5.  NAs禡w| (Ҧp /usr/i486-linuxlibc5/lib) [J /etc/ld.so.conf
      ݡC A̦nn ld.so 1.8.8 άOsA HקKbw˧ glibc
      X{@ǩ_ǪTC

  6.  hνƻsҦ¨禡wsؿC

	    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



      pA /usr P / ObP partition WA  libm.so.5 P libc.so.5
      ӥνƻsDhA ]@ǥΨӱҰ linux {|ݭnoӨ禡wA
      ]nb root partitionC

  7.  N /usr/lib/*.o sؿUC

	    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




  8.  bA禡wʫA s library cacheC

	    ldconfig -v


5.3  ѹwsĶnMw

glibc!installation!precompiled binaries

pGAOѤ@wwsĶn glibc wˡA AG











Glibc 2 HOWTO 媩							     11



      cd /
      gzip -dc glibc-2.0.bin.i386.tar.gz | tar tvvf -
      gzip -dc glibc-crypt-2.0.bin.i386.tar.gz | tar tvvf -
      ldconfig -v



pGAΪOPtά[cάOAиmAɦWC

5.4  ѭlXw

glibc!installation!from source

nѭlXwˡA G

      make install
      ldconfig -v


5.5  s gcc specs

glibc!installation!gcc specs file, updating

w˪̫@B (ާAOѹwsĶnMάOѭlXw) Os gcc  spec
ɡA AiHTsA{C nD gcc ҥΪO@ spec ɡA
pUJG

      % gcc -v
      reading specs from /usr/lib/gcc-lib/i486-unknown-linux/2.7.2.2/specs
      gcc version 2.7.2.2


bo̡AtάO i486-unknown-linuxA ӪhO 2.7.2.2C AN /usr/lib/gcc-
lib/<t> ƻsªtΥؿUG

      cd /usr/lib/gcc-lib/
      cp -r i486-unknown-linux i486-linuxlibc5


ؿPؿUG

      cd /usr/lib/gcc-lib/i486-unknown-linux/2.7.2.2



íקbP@ؿU specsC Noɮפ /lib/ld-linux.so.1 令 /lib/ld-
linux.so.2A åBnNҦ %{...:-lgmon} ܦRA ] glibc ϥ gmon
禡wӰ profilingC AiHb Specs ɽd (section 9., page 15) @
specs ɪdҡC

5.6  էAw

glibc!installation!testing









Glibc 2 HOWTO 媩							     12



nզwˬO_TA Ыإ glibc.c pUG

      #include <stdio.h>

      main()
      {
	  printf("hello world!\n");
      }



åB compile oӵ{G

      % gcc glibc.c -o glibc



ϥ ldd Ӭdҳoӵ{Os glibc2 ӫDA libcG

      % ldd glibc
      libc.so.6 => /lib/libc.so.6 (0x4000e000)
      /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)



poӵ{iHqL compileAåBbᲣ 'hello world!'
XAܤwgw˦\C


6.  ϥΫDDn C 禡wsĶ{

glibc!compiling with alternate library

ǮɭԧA|QnϥΤP禡wӽsĶA{Ao@`|pFoӥتC
ڷ|ϥΦbe`ҨϥΪؿPw˦W١AOonܳoǦW٥HŦXA]wC

6.1  @ϥΫDDn C 禡wĵi

glibc!compiling with alternate library!warning
bA}lsĶ|b}ɥΨ쪺{eA p{OʺAsAåBOb non-
root partition Q mount eϥΪܡA ҦsΪ禡wb root parti
tion WC bew˵{Ǹ̡Aڭ̱N glibc w˦Dn禡wA
ª禡wMOdb /libA /lib |b root partition WA
]NOAҦb}ɷ|Ψ쪺{ॿ`u@C MӡAYA /usr ObP
partition WA B glibc եΪ禡wAw˦b /usr/i486-linuxglibc2A
D /usr wgQ mountA_hҦA glibc sĶ{NϥΡC

6.2  δզw˪ glibc sĶ{

glibc!compiling with alternate library!glibc nδզw˪ glibc sĶ{A
AnN include |] glibc  include |C w '-nostdinc'
|` include |A  '-I/usr/i486-linuxglibc2/include' h| glibc
 include ؿA A]nw gcc з include ؿA q`O /usr/lib/gcc-
lib/i486-linuxglibc2/2.7.2.2/includeC (o̰]Aw˴ժ禡wb








Glibc 2 HOWTO 媩							     13



i486-linuxglibc2A  gcc O 2.7.2.2)

nδզw˪ glibc ӳsAA gcc ]wA oO '-b i486-linuxglibc2'
oﶵӹFC

j{A AiH²檺N[J makefile  $CFLAGS P $LDFLAGS ﶵG

      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



pAϥ configure o scriptAb configure eA wq shell ܼ
$CFLAGS P $LDFLAGS (b csh/tcsh U env/setenv b sh/bash/䥦U
set/export)C o˲ͪ makefile ӷ|]tT $CFLAGS P $LDFLAGSC
LëDҦ configure scrpt |hooܼơA ҥHb槹 configure
AA٬Onˬd@U makefileA pݭnܡAʭק復C

pAҭnsĶ{uIs gccA(ӤIs cpp  binutils) AiHϥΥHU
scriptA٥hCwҦﶵ·СG

      #!/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 "$@"



sĶɧAiHϥγo script ӤO gccC

6.3   glibc ODn禡wɥ libc 5 sĶ{

glibc!compiling with alternate library!libc 5 AwgN glibc
w˦Dn禡wASQª禡wӽsĶ{ɭԡA AN include
|]ª|C w '-nostdinc' N|Ϲw]|LġA 
'-I/usr/i486-linuxlibc5/include' |N include |¨禡w include
|A A]nw '-I/usr/lib/gcc-lib/i486-linuxlibc5/2.7.2.2/include'
HtJ gcc һݪ include ɡC `NnAsؿP gcc ӽվoǸ|C

nª libc ӰsAAw gcc ҥΪ[cC oO '-b i486-linuxlibc5'
oӿﶵҫwC

j{AAiH²檺Noǿﶵ[J makefile ̪ $CFLAGS P $LDFLAGS
ﶵ̡G

      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



pAϥ configure o scriptA b configure eA wq shell ܼ
$CFLAGS P $LDFLAGS (b csh/tcsh U env/setenv b sh/bash/Ψ䥦U
set/export)C o˲ͪ makefile ӷ|]tT $CFLAGS P $LDFLAGSC
LëDҦ configure scrpt |hooܼơA ҥHb槹 configure








Glibc 2 HOWTO 媩							     14



AA٬On²ˬd@U makefileA pݭnܡAʭק復C

pAҭnsĶ{uIs gccA(ӤIs cpp  binutils) AiHϥΥHU
scriptA٥hCwҦﶵ·СG

      #!/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 "$@"



sĶɧAiHϥγo script ӤO gccC


7.  sĶ C++ {

glibc!C++ programs, compiling

] libg++ ϥΤFƾǨ禡wA]NO|s libmC ѩAثe libg++
Oª禡wҫإߪA ҥHAs glibc  compile libg++
άOo@wsĶnC ̷s libg++ source P glibc
ҳswsĶiHb <URL:ftp://ftp.yggdrasil.com/private/hjl/> C

7.1  δժ C 禡ww libg++

glibc!libg++, installing!as test library

pAwgN glibc w˦եΪ禡wAAw˨ glibc Ҧw˪ؿU
(Ҧpѫe@`ҥܪ /usr/i486-linuxglibc2)C pAnw˹wsĶn
(o]Oګĳwˤ覡A]ڤ@γoؤ覡\asĶ libg++)A
ANɮ׸ѨȦsؿUA N usr/lib/ UҦɮ׷h <install direc
tory>/lib/A ñN usr/include/ UҦɮ׷h <install directory>/include/
UA (OoR include/g++ oӳsI) AN usr/bin/ Uɮ׷h <install
directory>/bin/C

7.2  bDn glibc Uw libg++

glibc!libg++, installing!as primary library YAwgN glibc
w˦Dn禡wApٷQnª libc ӽsĶ g++ {A ANª
libg++ ɮײª libc ؿUC ]\²檺覡NOpe@` libc 5
Ӧwˤ@sA MA`w glibc C

7.3  ϥΫDDn C 禡wӽsĶ C++ {

glibc!C++ programs, compiling!with non-primary libc pAQΫDDn C
禡wӽsĶ C++ {A An[J g++  include ؿC bWҤlA
եΪ glibc O /usr/i486-linuxglibc2/include/g++A ӹDn glibc hO
/usr/i486-linuxlibc5/include/g++A oq`iHѲK[ $CXXFLAGS
oܼƨӧG

      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










Glibc 2 HOWTO 媩							     15



8.  i

glibc!bugs, reporting

pAHo禡wAХ\Ū FAQA]\wgHJLoӰDA
åB]wgF²檺ѨMkC t~AA]Ӭd INSTALL ɤ "Recommended
Tools to Install the GNU C Library" @`A ]ǿ~b glibc
ӬOboǤuC

]AFΡAХTwTOΡC @ӧP_nkOݬ glibc
欰O_P䥦 C 禡wۦPC
pۦPܡA]\AOAӨ禡wOTC (]@wp)
pۦPܡA֩w̤@ӬOC

ۡAШ <URL:http://www-gnats.gnu.org:8080/cgi-bin/wwwgnats.pl>A
åBdݯθƮwATwoӰD|HXC A]Ӭݬ BUGS (I libc
) ҦCXثewQo{ΡC

@ATwF@sΡAиյ۱NYp̤p test caseC N C
禡wӨAAuݭnNYpW@Ө禡Is(piH)C
oӤOӧxơC

̫@ӨBJONA test case XγiC neXγiAХ]tA test
caseBAұo쪺GBAҴݪGB A{i઺]b
(unAQL])BAtOBAҨϥΪ GNU C 禡wB GNU CC
sĶBGNU binutils Ct~A ЪW configure ɲͪ config.status
P config.makeA oɮ׷|bA configure ɭԪؿUC

ҦγiӨϥ glibcbug o GNU libc Ҫ shell script e
<URL:bugs@gnu.org> (ª} <URL:bugs@gnu.ai.mit.edu> ]MiHϥ)C άO
GNATS WQ <URL:http://www-gnats.gnu.org:8080/cgi-bin/wwwgnats.pl>
oӤӰC

AĳPDӰe <URL:bugs-glibc@prep.ai.mit.edu> oӶlCC
pAS\ŪsDs gnu.bug.glibcA AiHnD <URL:bug-glibc-
request@prep.ai.mit.edu> [JoӦCC

ФnN GNU C 禡wγie <bug-gcc@prep.ai.mit.edu>A oOF GNU CC
ӳ]ߪA GNU CC P GNU C 禡wOѤPH̪Һ@C


9.  Specs ɽd

glibc!GCC specs file, sample

o̬O@ specs dҡCoN gcc  glibc2 ӽsĶPsC Ӧ
/usr/lib/gcc-lib/<stΥؿ>/<gcc >.  pAΪO x86
tΡAA]\iHNo@qƻsɮ׸̥hC














Glibc 2 HOWTO 媩							     16



      *asm:
      %{V} %{v:%{!V:-V}} %{Qy:} %{!Qn:-Qy} %{n} %{T} %{Ym,*} %{Yd,*} %{Wa,*:%*}

      *asm_final:
      %{pipe:-}

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

      *cc1:
      %{profile:-p}

      *cc1plus:

      *endfile:
      %{!shared:crtend.o%s} %{shared:crtendS.o%s} crtn.o%s

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

      *lib:
      %{!shared: %{pthread:-lpthread}	%{profile:-lc_p} %{!profile: -lc}}

      *libgcc:
      -lgcc

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

      *switches_need_spaces:

      *signed_char:
      %{funsigned-char:-D__CHAR_UNSIGNED__}

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

      *cross_compile:
      0

      *multilib:
      . ;



10.  

glibc!miscellanea

10.1  i@B

glibc!information resources"










Glibc 2 HOWTO 媩							     17



10.1.1	

glibc!information resources!WWW

    FSF's GNU C Library Home Page4

    Using GNU Libc 2 with Linux5

    Installing glibc-2 on Linux6 .

    Debian libc5 to libc6 Mini-HOWTO7 .

10.1.2	sDs

glibc!information resources!newsgroups

    comp.os.linux.development.system

    comp.os.linux.development.apps

    linux.dev.kernel

    gnu.bugs.glibc

10.1.3	lC

glibc!information resources!mailing lists

      Glibc 2 Linux QצC
	    oӶlCOFw˦ glibcA]NOs GNU C
	    禡wAϥΪ̰QץΪC ĳD]AۮeʪDAHΦb linux/glibc
	    ҤU{sĶDC nq\oӶlCA бH@ʫH
	    Majordomo@ricardo.ecn.wfu.edu8 A He "subscribe glibc-linux
	    <your email address>"C

10.2  ^m̦C

jTO GNU Libc web page9  H Ulrich Drepper  <drep
per@gnu.ai.mit.edu> glibc 2 announcement ҰӪA Andreas Jaeger
<aj@arthur.rhein-neckar.de> hѤFγiC


____________________

4. <URL:http://www.gnu.org/software/libc/libc.html>

5. <URL:http://www.imaxx.net/~thrytis/glibc/>

6. <URL:http://huizen.dds.nl/~frodol/glibc/>

7. <URL:http://www.gate.net/~storm/FAQ/libc5-libc6-Mini-HOWTO.html>

8. <URL:mailto:Majordomo@ricardo.ecn.wfu.edu>

9. <URL:http://www.gnu.org/software/libc/libc.html>







Glibc 2 HOWTO 媩							     18



HUU쳣糧󴣨ѬTHηNG

    Allex Juang<allex@ms2.accmail.com.tw>

    Mark Brown <M.A.Brown-4@sms.ed.ac.uk>

    Ulrich Drepper <drepper@gnu.ai.mit.edu>

    Scott K. Ellis <ellis@valueweb.net>

    Aron Griffis <agriffis@coat.com>

    Andreas Jaeger <aj@arthur.rhein-neckar.de>

    Frodo Looijaard <frodol@dds.nl>

    Ryan McGuire <rmcguire@freenet.columbus.oh.us>

    Shaya Potter <spotter@capaccess.org>

    Les Schaffer <godzilla@futuris.net>

    Andy Sewell <puck@pookhill.demon.co.uk>

    Gary Shea <shea@gtsdesign.com>

    Stephane <sr@adb.fr>

    Jan Vandenbos <jan@imaxx.net>

o½ĶOѥHUƤHҧG

    G  Allex Juang<allex@ms2.accmail.com.tw>

    kG  Olivier Tharan <tharan@int-evry.fr>

    G  Kazuyuki Okamoto <ikko-@pacific.rim.or.jp>

10.3  ^X

Fgo HOWTOB@ glibc 2 for Linux10
oBåBbڪWϥΤ~AڻP glibc pLA
ڤ]Fѳo譱ĳDA|i઺HڪDUC
ڤ]wAX󪺦^XBץBάOĳAбṈH ejg3@cornell.edu11 C

10.4  Copyright.

󪺪vݩ Eric GreenAoiHb LDP ӤUGC


____________________

10.<URL:http://www.imaxx.net/~thrytis/glibc>

11.<URL:mailto:ejg3@cornell.edu>







Glibc 2 HOWTO 媩							     19





































































				   CONTENTS



1.  ² .................................................................... 1
    1.1   glibc 2 ....................................................... 1
    1.2  o ....................................................... 1
    1.3  o󪺳̷s ................................................. 2

2.  ܧAwˤ覡 ........................................................ 2

3.  o禡w .............................................................. 3

4.  w˦եΪ禡w .................................................... 4
    4.1  sĶPw ......................................................... 4
    4.2  s dynamic loader ................................................ 5
    4.3  ]w gcc ........................................................... 6
    4.4  sYɳs ..................................................... 6
    4.5  էAw ....................................................... 7

5.  w˦Dn禡w ........................................................ 7
    5.1  ѭlXsĶ禡w ................................................. 8
    5.2  ǳƦw ........................................................... 9
    5.3  ѹwsĶnMw ............................................ 10
    5.4  ѭlXw ...................................................... 11
    5.5  s gcc specs .................................................... 11
    5.6  էAw ...................................................... 11

6.  ϥΫDDn C 禡wsĶ{ .......................................... 12
    6.1  @ϥΫDDn C 禡wĵi ................................. 12
    6.2  δզw˪ glibc sĶ{ ....................................... 12
    6.3   glibc ODn禡wɥ libc 5 sĶ{ ......................... 13

7.  sĶ C++ { .......................................................... 14
    7.1  δժ C 禡ww libg++ ...................................... 14
    7.2  bDn glibc Uw libg++ ........................................ 14
    7.3  ϥΫDDn C 禡wӽsĶ C++ { .............................. 14

8.  i ............................................................... 15

9.  Specs ɽd ........................................................... 15

10.  ................................................................... 16
    10.1 i@B ...................................................... 16
    10.2 ^m̦C ........................................................ 17
    10.3 ^X .............................................................. 18
    10.4 Copyright. ........................................................ 18









				       i


