








			     Glibc 2 HOWTO 媩

		      @ Eric Green, thrytis@imaxx.net

		  Ķ Allex Juang, allex@ms2.accmail.com.tw

			    1.4 , 1998~ 1 11



				   Abstract

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



1.  ²

1.1   glibc 2

Glibc 2 O GNU C 禡w̷sC ثeݭקNiHb GNU HurdA Linux
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 WA glibc 2 ODn 6  libcA ]NO Linux libc 5 ~̡C
Linux libc oiHQHvN libc 5C N 2.0.6 ӬݡA glibc
w㦳~~C Glibc 2.1  (b[N) N@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˪ܡA
i|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)
ϥΪ̡A unNo󤤥X{ɦWHΨtά[cW٧@ANA


Glibc 2 HOWTO 媩							      1





Glibc 2 HOWTO 媩							      2



Ӥ]ioUC

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

1.3  o󪺳̷s

1.4 P 1.3 tOG

    NثeAѹʧ令~C

    soiӦCC

    s̷s 2.0.6C

1.2 P 1.3 tOG

    [JĳϥΪ[M󪺰TC

    [J glibc-linux lCTC

    s RedHat H glibc  distribution TC

    s Debian glibc packages mC

    [J texinfo ̡ۨC


2.  ܧAwˤ覡

\hؤ覡w glibcA AiHw˦@ӴեΪ禡wA
NثeϥΪ禡w@OwA
MbsĶ{ɭԥΤPﶵӸեηs禡wC
γoئwˤ覡HiH glibcC (M glibc s{b glibc
᳣Nϥ) t~A γoؤ覡wˡA Aѭ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 AݨolXåBۤvsĶA
oӦ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˭nhA Oes glibcC
oӤkbL Installing glibc-2 on Linux2  󤤻C

____________________

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

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







Glibc 2 HOWTO 媩							      3



pA{bϥΪO Debian 1.3A OQF glibc ӤɯŨ줣íwA 
Debian libc5 to libc6 Mini-HOWTO3  |iDApϥ Debian  package ӤɯšC

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


3.  o禡w

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>

2.0.5c nΤ@B~ patchA AiHb
<URL:ftp://prep.ai.mit.edu/pub/gnu/glibc-2.0.5-2.0.5c.diff.gz> C

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󦳥XfA DϥΪ̽Ш
<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 distributionA AiHq
<URL:ftp://ftp.debian.org/debian/dists/unstable/main/> o glibc2  packageC
ɦWO libc6C Glibc 2 ثeO Debian ժ packageA  Debian 2.0
XӤN|ODn c 禡wC


4.  w˦եΪ禡w

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

4.1  sĶPw

4.1.1  ݨD

     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

Aݥ archive XlXC p~sĶA ̦n覡pUG

      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








Glibc 2 HOWTO 媩							      5



p configure ~iHo add-onsC

4.1.3  ]wպA

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

      mkdir compile
      cd compile



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

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

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


4.1.4  sĶPw

nsĶPҡA 

      make
      make check



p 'make check' \FA w˨禡wG

      make install


4.2  s dynamic loader

  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ɡA oӨ禡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 A G

	    ldconfig -v









Glibc 2 HOWTO 媩							      6



4.3  ]w gcc

w˪̫@BOs /usr/lib/gcc-lib H gcc Dpϥηs禡wC A
AݭnƻsثeպAA nDث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̡A i486-unknown-linux OثeҥΪtΡA 2.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 specsC boɮפ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
14)@ӽdҡC

4.4  sYɳs

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

      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
pileA boرΤUA unsĶåBw˨ /usr/i486-linuxglibc2)

4.5  էAw

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














Glibc 2 HOWTO 媩							      7



      #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ĶA s]TwA åBɤ] 'hello world!' XA
w˴N\FC


5.  w˦Dn禡w

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

pAO RedHat  Debian åBwU rpm  deb ɡA аѾ\ RedHat 
Debian w˻A AiHLo@`C

5.1  ѭlXsĶ禡w

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

5.1.1  ݨD

     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









Glibc 2 HOWTO 媩							      8



    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

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| linuxthreadsB crypt P localedata ؿ glibc-2.0.6 ؿUA
p configure ~oǪ[MC

5.1.3  ]wպA

b glibc-2.0.6 ؿUA إߤ@ӷsؿ compileA åB cd  compile
UA Ҥ]u@|boӥؿA o|²ƫ򪺲Mu@C
(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˪ؿA
nŦ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Ķ

nsĶPҡA G

      make
      make check


5.2  ǳƦw

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








Glibc 2 HOWTO 媩							      9



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



      oǳsnAtΦӵy@վC ̤֦b Slackware A g++ Yɮצb
      /usr/local/g++-includeA  Debian ob /usr/include/g++A åBN
      /usr/lib/g++-include s /usr/include/g++C b̪ΡA
      A]\|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^sA p~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








Glibc 2 HOWTO 媩							     10



      ]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

pGAOѤ@wwsĶn glibc wˡA AG

      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

nѭlXwˡA G

      make install
      ldconfig -v


5.5  s gcc specs

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̡A tά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








Glibc 2 HOWTO 媩							     11



ؿPؿUG

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


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

5.6  էAw

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Ķ{

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

6.1  @ϥΫDDn C [wĵi

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ӡA YA /usr ObP partition
WA B glibc եΪ禡wA w˦b /usr/i486-linuxglibc2A D /usr








Glibc 2 HOWTO 媩							     12



wgQ mountA _hҦA glibc sĶ{NϥΡC

6.2  δզw˪ glibc sĶ{

nδզw˪ glibc sĶ{A AnN include |] glibc  include
|C w '-nostdinc' |` include |A  '-I/usr/i486-lin
uxglibc2/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 i486-linuxglibc2A  gcc O 2.7.2.2)

nδզw˪ glibc ӳsA A gcc ]wA oO '-b i486-lin
uxglibc2' 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 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
A A٬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Ķ{

AwgN glibc w˦Dn禡wA SQª禡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 ӰsA Aw gcc ҥΪ[cC oO '-b i486-lin
uxlibc5' oӿﶵҫwC

j{A AiH²檺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








Glibc 2 HOWTO 媩							     13



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
A A٬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++ {

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

pAwgN glibc w˦եΪ禡wA Aw˨ 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++

YAwgN glibc w˦Dn禡wA pٷ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++ {

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 媩							     14



8.  i

pAHo禡wA Х\Ū FAQA ]\wgHJLoӰDA
åB]wgF²檺ѨMkC t~A A]Ӭ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ݯθƮwA TwoӰD|HXC A]Ӭݬ BUGS (I libc
) ҦCXثewQo{ΡC

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

̫@ӨBJONA test case XγiC neXγiA Х]tA test
caseB Aұo쪺GB AҴݪGB A{i઺]b
(unAQL])B AtOB AҨϥΪ GNU C 禡wB GNU CC
sĶB GNU binutils C t~A ЪW configure ɲͪ config.sta
tus 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

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


















Glibc 2 HOWTO 媩							     15



      *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.  

10.1  i@B

10.1.1	










Glibc 2 HOWTO 媩							     16



    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

    comp.os.linux.development.system

    comp.os.linux.development.apps

    linux.dev.kernel

    gnu.bugs.glibc

10.1.3	lC

      Glibc 2 Linux QצC
	    oӶlCOFw˦ glibcA ]NOs GNU C 禡wA
	    ϥΪ̰QץΪC ĳD]AۮeʪDA HΦ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

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>


____________________

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 媩							     17



    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 thrytis@imaxx.net11 C

10.4  Copyright.

Copyright (c) 1997 by Eric Green.  This document may be distributed under the
terms set forth in the LDP license.









____________________

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

11.<URL:mailto:thrytis@imaxx.net>







Glibc 2 HOWTO 媩							     18





































































				   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 ....................................................... 6

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

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

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

8.  i ............................................................... 14

9.  Specs ɽd ........................................................... 14

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









				       i


