  Glibc 2 HOWTO
  Eric Green, ejg3@cornell.edu
  v1.5, 8 February 1998
  { K Kazuyuki Okamoto, ikko-@pacific.rim.or.jp
  r Toshinori Endo, tendo@nucleus.harvard.edu (v1.5
  )
  v1.5, 1998N915

  GNU C Cu (glibcQ) glibc Glibc 2 HOWTOLinuxVXe
  GNU C Library2 (libc 6)̃CXg[ƎgpɂĐ܂B
  ______________________________________________________________________

  ڎ

  1. ͂߂
     1.1 glibc2ɂ
     1.2 ̕ɂ
     1.3 ̍̕ŋ߂̕ύX

  2. CXg[@̑I
  3. Cu̎擾
  4. eXgCuƂẴCXg[
     4.1 RpCƃCXg[
        4.1.1 Kv
        4.1.2 \[X̓WJ
        4.1.3 ݒ
        4.1.4 RpCƃCXg[
     4.2 _Ci~bN[_̃Abvf[g
     4.3 gcc̐ݒ
     4.4 wb_[t@Cւ̃ÑAbvf[g
     4.5 CXg[̊mF

  5. CCCuƂẴCXg[
     5.1 \[X̃Cu\z
        5.1.1 Kv
        5.1.2 \[X̓WJ
        5.1.3 ݒ
        5.1.4 RpC
     5.2 CXg[̏
     5.3 oCipbP[W̃CXg[
     5.4 \[X̃CXg[
     5.5 gcc specst@C̍XV
     5.6 CXg[̊mF

  6. CCułȂlibcgRpC
     6.1 CłȂlibcgꍇ̒
     6.2 eXgpglibcgRpC
     6.3 glibcCCûƂlibc5gRpC

  7. C++vÕRpC
     7.1 eXgpglibcglibg++̃CXg[
     7.2 CCuƂglibcgꍇlibg++̃CXg[
     7.3 CCułȂlibcgC++vÕRpC

  8. oO|[g
  9. specs t@C̗
  10. ̑
     10.1 ̏
        10.1.1 Weby[W
        10.1.2 j[XO[v
        10.1.3 [OXg
     10.2 ӎ
     10.3 tB[hobN

  ______________________________________________________________________

  1.  ͂߂

  1.1.  glibc2ɂ

  Glibc2GNU CCu̍ŐVłłB݁AύXȂœ삷̂́A
  GNU HurdVXeLinux i386, m68k, alphaVXełBPowerPC, MIPS,
  Sparc, Sparc 64, ArmpLinuxɂ2.1łőΉ̗\łBI
  ́Aق̃A[LeN`[ƃIy[eBOVXepɂΉ̗\
  łB

  Linuxł, glibc2 Linux libc 5̌pA܂libco[W6 Ƃėp
  ܂BLinux libcJ҂libc5iglibc2ŁjuĂ܂
  ƂĂ܂B 2.0.6̒iKŁAglibc͏\ȕiƌȂĂ
  ܂Bo[W2.1 (߂\\j́A葽̋@ֈڐAA
  V@\ǉāASIɗp悤ɂȂł傤B

  glibc2ɂ́AL̂R̃AhIǉł܂

     Crypt
        UFC̈ÍpbP[WBAoK̂߁AĂB

     LinuxThreads
        POSIX1003.1c pthreadC^[tF[X̎B

     Locale data
        localef[^t@C\zɕKvȃf[^܂ށB glibc̍ۉ@\
        gpƂɎgB

  cryptLinuxThreads̃AhI͒ǉ邱ƂE߂܂BgȂ
  ق̃VXeƌ݊ɖ肪\邩łBig
  ꍇ́Aconfigures--disable-sanity-checksIvVw肷
  Kv܂jB

  1.2.  ̕ɂ

  HOWTO͊LinuxVXeւglibc2CũCXg[ɂ
  ċLڂĂ܂BIntelx[Xlibc5gpVXẽ[U
  Ă܂Aق̃VXeق̃Cu(glibc1Ȃ)gp
  Ă郆[UAt@CA[LeN`Kɒu邱Ƃɂ
  Lڂꂽg͂łB

  HOWTO̍ŐVłLinux Documentation ProjecẗꕔƂāAL̂
  ꂩ̃TCg\ł  B

  Linux Documentation Project <http://sunsite.unc.edu/LDP>
  <http://www.imaxx.net/~thrytis/glibc/Glibc2-HOWTO.html>.

  1.3.  ̍̕ŋ߂̕ύX

  o[W1.51.4̈Ⴂ

  o  Ed Baileyɂ̕t

  o  ҂emailAhX̕ύX

  o[W1.41.3̈Ⴂ

  o  ݂̏󋵂iK琳JiK֕ύX

  o  ڐAƒVXẽXg̍XV

  o  ŐVo[W2.0.6֍XV

  2.  CXg[@̑I

  glibcCXg[ɂ͂̕@ÃCuf
  tHgƂĎgp܂܁AeXgp glibc2CXg[邱Ƃ
  ł܂B̕@ł́AvORpCۂɁAIvVw
  ɂĐVCugƂł܂B̕@g΁A
  Pglibc폜邱Ƃł܂iglibcɃNꂽvO
  ́ACu폜Ɠ삵ȂȂ܂jB̃CXg[@
  ́AoCifBXgr[V݂͑Ȃ̂ŁACu\[X
  RpCKv܂BCXg[@ ``eXgCu
  ƂẴCXg['' ŏqׂĂ܂B

  ̕ɋLڂꂽ̃CXg[@́AglibcCCu
  ƂĎgꍇłB̕@ł́AÂCuN悤
  IvVwȂAVRpCvO͑S
  glibcg悤ɃN܂B̏ꍇ́ACuoCi
  CXg[邱ƂŃRpC邱Ƃł܂BœK̃
  xݒύXꍇ́A\[XfBXgr[V肵āA
  RpCKv܂B̃CXg[菇 ``CCCu
  ƂẴCXg['' ŏqׂĂ܂B

  Frodo Looijaard́AƎglibc̃CXg[@qׂĂ܂Bނ̕
  @glibc2̃CuƂglibcgNXRpC̐ݒ
  Ă̂̂łB̕@ɂCXg[̎菇́Á̕ue
  XgCuƂẴCXg[v蕡GłA glibcN
  ۂ̃RpCw肪ȒPłB̕@͔ނ Linuxւglibc2̃C
  Xg[ <http://huizen.dds.nl/~frodol/glibc/>ɋLڂĂ܂B

  Debian1.3gĂ邪Aglibcg߂ɕsȃo[W
  AbvO[ĥȏꍇA Debian ł libc5  libc6ւ̈
  s Mini-HOWTO <http://www.gate.net/~storm/FAQ/libc5-libc6-Mini-
  HOWTO.html> QlɂĂBDebianpbP[WgVXe
  AbvO[h̎dLڂĂ܂B

  glibc2dvȃVXeɃCXg[Ƃ́AeXgCXg[
  sm܂B ֐vg^Cv^ύXĂ邽
  ߁ARpC邽߂ɂ́ACKvmȂłB

  3.  Cu̎擾

  glibc2glibcpbP[WƂR̃AhIpbP[WALinuxThreads,
  Locale CryptȂ܂B\[X͈ȉ̃TCgŎ擾\łB

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

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

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

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

  SRpCƃCXg[ɂ́A150MB̃fBXNXy[XKvłB
  RACupbP[Ŵ݂̊{oCiCXg[ł͖50MBKv
  łB

  2.0.6̃oCipbP[W͂܂łB2.0.4oCipbP[W
  i386m68kp܂Balphap2.0.1܂B͉L擾
  ł܂B

  o  Intel x86:

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

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

  o  Alpha:

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

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

  o  m68k:

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

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

  cryptAhIɂ͗AoK܂BčȊÕ[ÚA
  <ftp://ftp.ifi.uio.no/pub/gnu>擾ĂB

  Red HatfBXgr[VgpĂꍇAglibc2pRPM
  <ftp://ftp.redhat.com/pub/redhat/>擾ł܂BGlibc2͂炵
  RedHatfBXgr[V5.0ł̓CCCuɂȂĂ
  B

  DebianfBXgr[VgpĂꍇAglibc2p̃pbP[W
  <ftp://ftp.debian.org/debian/dists/unstable/main/>œł܂Bt@
  Clibc6ƂȂĂ܂BDebianhammo[Wł́Bglibc2{
  pbP[ẄꕔȂĂADebian2.0[XƂɂ́AC
  libcƂȂ\łB

  4.  eXgCuƂẴCXg[

  ̐߂ł́Aglibc2eXgCuƂăCXg[@ɂ
  ܂BIvVwȂARpĈ́Ã
  CuɃN܂BȂ̐̃t@CɃpXLqKv
  ̂ŁA\[XCXg[sȂĂ͂ȂȂł傤B

  4.1.  RpCƃCXg[

  4.1.1.  Kv

  o  150MB̋fBXNXy[X

  o  GNU make 3.75

  o  gcc >= 2.7.2 (2.7.2.1ȏオ]܂) ( ix86-Linux
     ́Aglibc-2.0.6̃RpCɂgcc-2.8.1ȏオKvł)

  o  binutils 2.8.1 (alphapɂsnapshotKvj

  o  bash 2.0

  o  autoconf 2.12 (configure.inύXƂ̂)

  o  texinfo 3.11

  tCuƃAhĨRpCɁAi586@133, 64MB RAMŖ3ԁA
  ti686@200ł͖30܂B

  4.1.2.  \[X̓WJ

  RpCɂ͂OɁAA[JCu\[XWJKv܂B
  Ƃǂ͎̂̕@łB

   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

  ɂlinuxthreads,crypt,localedatafBNgglibc-2.0.6ɒu
  AconfigurẽAhIFł悤ɂȂ܂B

  4.1.3.  ݒ

  glibc-2.0.6fBNg compileƂ̃fBNg쐬A cd
  ܂BƂ͑SĂōs܂BɂЕtyɂȂ܂Bi
  Amake cleanɓ삷悤ɂȂĂȂłBj

        mkdir compile
        cd compile

  ../configures܂BAhIpbP[Wg߂ɂ́A --enable-
  add-ons=--enable-add-ons=linux-threads,crypt,localedata ̂悤Ɏw肷
  Kv܂BCXg[̃fBNgw肷Kv
  B/usr/i486-linuxglibc2Ƃ̂ǂł傤BŏIIɁAR}h
  Ĉ͎悤ɂȂł傤B

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

  4.1.4.  RpCƃCXg[

  RpCƃ`FbN͉L̒ʂłB

        make
        make check

  make check܂烉CuCXg[܂B

   make install

  4.2.  _Ci~bN[_̃Abvf[g

  1. Vld.so/lib/ld-linux.so.2փN𒣂܂B

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

  ̃CuAvOɃN̂̂ȂŗBꏊ̌
  肳Ă̂łB/libւ̃NgƂŁAłglibcł
  ƂɁACCCuƂẴAbvO[heՂɂȂ܂B

  /etc/ld.so.confҏW܂B̍ۂɁBCûfBNg
  ̌/libKv܂B܂<prefix>/lib̂悤ɂȂAOq
  ̗Ō΁A/usr/i486-linuxglibc2/libƂȂ܂B /etc/ld.so.conf
  ҏWA

        ldconfig -v

  4.3.  gcc̐ݒ

  CXg[̍Ō̃Xebv́AgccVCuFł悤
  ɂ邽߂/usr/lib/gcc-lib̏CłB܂A̐ݒRs[K
  v܂Bǂ̐ݒ肪ݎgĂ̂𒲂ׂɂ́Agcc-vI
  vVp܂B

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

  ̏ꍇ́Ai486-unknown-linuxVXeA2.7.2.2o[WłB
  /usr/lib/gcc-lib/<VXe>eXgVXefBNgɃRs[
  B

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

  eXgp̐VVXefBNgƃo[WfBNgɈړ
  B

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

  āÃfBNg̃t@CspecsҏW܂B̃t@C̒
  /lib/ld-linux.so.1/lib/ld-linux.so.2 ɕύX܂B
  A%{...:-lgmon}Əꂽ폜܂B glibc̓vt@CO
  gmonCugpȂłBTvspecst@C
  ``specst@C̃Tv'' ZNVQƂĂB

  4.4.  wb_[t@Cւ̃ÑAbvf[g

  VfBNg̉ɁAق̃fBNgւ̃N𒣂܂B

        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

  ncursesȂǁAVfBNgɃwb_[t@CׂCu
  gpĂꍇA/usr/includet@CRs[邩N
  ܂BiCuɂẮAglibc2ƈꏏɍăRpCȂƓK
  ɓ삵Ȃ̂܂B̏ꍇÃpbP[WPɃRpC
  /usr/i486-linuxglibc2ɃCXg[Ăj

  4.5.  CXg[̊mF

  CXg[mF邽߂ɁÃvOglibc.ct@CƂ
  č쐬ĂB

        #include <stdio.h>

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

  āA"-b <base install directory> -nostdinc -I<install direc-
  tory>/include -I/usr/lib/gcc-lib/<new system dir>/ <gcc ver-
  sion>/include" ƂIvVŃRpC܂B

        % 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

  i󒍁j̃VXeł͉L̂悤ɂȂƐN܂ł
  B gcc -b i686-linuxglibc2 -nostdinc -I/usr/i686-linuxglibc2/include
  -I/usr/local/lib/gcc-lib/i686-linuxglibc2/2.8.1/include glibc.c -o
  glibc -L/usr/i686-linuxglibc2/lib i-LIvV݂j

  lddgāAvOÂlibcł͂ȂVglibc2ɃNꂽ
  ƂmF܂B

        % 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)

  RpCłāANmFłAsƂ "hello
  world!"ƂbZ[Wo΁ACXg[͐łB

  5.  CCCuƂẴCXg[

  ̃ZNVł́Aglibc2CCCuƂăCXg[
  @܂BVRpCvÓAIvVw
  ȂÃCuɃN悤ɂȂ܂B

  RedhatDebiangĂāAK؂ebt@C_E[ĥł
  ΁ARedhatDebiañCXg[CXgNVB̏
  ÃZNV͓ǂݔ΂Ă܂܂B

  5.1.  \[X̃Cu\z

  ̐߂ł́A\[Xglibc2ƃAhIRpC@
  BœKxݒύXꍇAуoCipbP[ŴȂ
  ꍇACũRpCKvɂȂ܂B

  5.1.1.  Kv

  o  150MB̋󂫃fBXNe

  o  GNU make 3.75

  o  gcc >= 2.7.2 (2.7.2.1]܂) (󒍁F gcc-2.8.1ȏオKvłB)

  o  binutils 2.8.1 (alphapɂsnapshotKv)

  o  bash 2.0

  o  autoconf 2.12 (configure.inύXꍇ)

  o  texinfo 3.11

  i586@133, 64 MB RAM̃VXeł́ASCuƃAhĨRpC
  ɖ3Ԃ܂Bti686@200ł́A30łB

  5.1.2.  \[X̓WJ

  RpC邽߂ɂ́AA[JCuWJă\[XoKv
  ܂Bŗǂ̕@͎̒ʂłB

        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

  ɂAlinuxthreads, crypt, localedatafBNgglibc-2.0.6
  fBNgɒuAconfigurẽAhIFł悤
  Ȃ܂B

  5.1.3.  ݒ

  glibc-2.0.6fBNgcompileƂfBNg쐬A
  cdāASĂ̍Ƃ̒ōs܂BɂACXg[̏
  ƂyɂȂ܂BivOJ҂A'make clean'܂Sɓ
  悤ɂ͂ĂȂłBj

       mkdir compile
       cd compile

  ../configures܂BAhIpbP[Wg߂ɂ́A
  --enable-add-ons=linux-threads,crypt,localedatâ悤ɂăIvV
  w肷Kv܂BCXg[pXw肷Kv邩
  ܂BWIlinuxfBXgr[Vɍ킹ɂ́A
  --prefix=/usrw肵܂BilinuxVXe/usrprefixƂĎw肳
  configurelibc.soق̏dvȃCu/libɊi[Aق
  pathK؂ɒ܂BjŏIIȃR}hĈ͎悤ɂȂł
  B

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

  5.1.4.  RpC

  RpCƃ`FbN͎̒ʂłB

        make
        make check

  5.2.  CXg[̏

  \[XCXg[ꍇɂAoCiCXg[ꍇ
  ɂAVCȕ̂߂ɁA̃t@CҔK
  v܂BVRpCvÓAglibcɃN
  AÂvÔAIɃNꂽ̂libc5ɈˑĂ
  邽߁APɌÂo[W㏑킯ɂ͍sȂ̂łB

  1. Ât@CҔ邽߂̐VfBNg쐬܂B

        mkdir -p /usr/i486-linuxlibc5/lib

  2. Âwb_[t@C/usr/includeҔ܂B

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

  3. VincludefBNg쐬AقincludefBNgւ̃
     N쐬܂B

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

  fBXgr[VɂẮAN𒲐Kv邩
  ܂BȂƂASlackwareg++wb_[t@C
  /usr/local/g++-includeɒuĂADebianł/usr/include/g++ɒu
  āA/usr/lib/g++-include/usr/include/g++ɃNĂ܂B
  ҂̏ꍇ́Ag++ includefBNg/usr/includeɖ߂Ă
  ǂł傤B

  LȊȎSẴwb_[t@C⃊N̉񕜂s܂BncursesȂ
  ̔WCû́At@CƎincludefBNg
  ̃N/usr/includeɒuĂ܂BCuK؂Ɏgp
  邽߂ɂ́Ãt@C⃊N̐ݒK؂sĂKv
  ̂łB

  4. VCufBNgi/usr/i486-linuxlibc5/libj
     /etc/ld.so.conft@C̐擪ɉ܂B glibcCXg[ꂽ
     ƊȃbZ[Wô邽߂ɂ́A ld.so 1.8.8ȍ~
     g悢ł傤B

  5. ÂCCuVfBNgɈړ/Rs[܂B

   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

  /usr/Ƃ͕ʂ̃p[eBVɂꍇA libm.so.5libc.so.5́Aړ
  ɃRs[ĂBlinuxNۂɎgvO
  KvƂt@CłA[ghCup[eBVɂȂĂ͂
  ȂłB

  6. /usr/lib/*.ot@CVfBNgɈړ܂B

        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

  7. CuړACuLbVXV܂B

        ldconfig -v

  5.3.  oCipbP[W̃CXg[

  glibcRpCσoCigăCXg[Ƃ́Â悤
  Kv܂B

        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

  قȂA[LeN`o[WgpĂꍇ́AKȃt@C
  ɓǂݑւĂB

  5.4.  \[X̃CXg[

  Cu\[XCXg[ɂ͎̂悤ɂ܂B

        make install
        ldconfig -v

  5.5.  gcc specst@C̍XV

  CXg[̍ŏIiḰAoCȉꍇ\[X̏ꍇA
  NK؂ɍs悤ɂ邽߂gcc specst@C̍XVłB gcc
  ǂspecst@CgĂ邩𒲂ׂɂ́Â悤ɂĂB

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

  ̗ł́Ai486-unknown-linuxVXeA2.7.2.2o[Wԍ
  B/usr/lib/gcc-lib/<VXe>ÂVXefBNgɃRs[
  B

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

  ɁÃfBNgƃo[WfBNgɈړ܂B

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

  āÃfBNgspecst@CRs[܂B̃t@C
  ŁA/lib/ld-linux.so.1Əꂽ/lib/ld-linux.so.2ɕύX܂B
  ܂A%{...:-lgmon}ƂLqSč폜܂Bglibc̓vt@CO
  gmonCugȂ߂łBspecst@C̗ ``specst@C
  ̗'' ߂QƂĂB

  5.6.  CXg[̊mF

  CXg[mF邽߂ɁÃvOt@CƂč쐬
  ĂB

   #include <stdio.h>

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

  āARpC܂B

        % gcc glibc.c -o glibc

  lddgāAvOAÂlibcłȂVglibc2ɃNĂ
  邱ƂmF܂B

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

  RpC܂sAvOsƂ"hello world!"ƕ\
  ΃CXg[łB

  i󒍁jmake gpăRpCꍇAݒɂ܂A
  /usr/bin/ccĂ΂ăN܂sȂƂ܂B̏
  Agcc/usr/bin/ccɃRs[邩Aϐi܂make}NjCC
  gccw悤ɕύXĂB

  6.  CCułȂlibcgRpC

  vÕRpC̍ہACCuȊÕCugƂ
  Ƃł傤B̃ZNVł́Â悤ȏꍇɂǂǂ
  ̂AO2߂̃fBNgƃCXg[gĐ܂B
  ɎgpƂ́Ae̐ݒɍ킹ĖOǂݑւĉB

  6.1.  CłȂlibcgꍇ̒

  VXeu[gvZXgpvORpC鎞́Aӂ
  KvłBvOIɃNĂāA[głȂp[eB
  V}EgOɎgpvOłꍇɂ́AN
  SẴCu[gp[eBVɂȂĂ͂Ȃ܂BO߂
  CCuƂglibcCXg[ꍇ̐ɏ]΁A
  libc̓[gp[eBV/libɎĉŁAu[gvZXA
  SẴvOKɓ삷͂łBA/usrʂ̃p[eB
  VɂāAglibceXgCuƂ/usr/i486-linuxglibc2ɃC
  Xg[ꍇA glibcgăRpCꂽVvO
  ́A/usr p[eBV}Eg܂œ삵܂B

  6.2.  eXgpglibcgRpC

  eXgpɃCXg[ꂽglibcgăRpCƂ́Aglibc
  includew悤includepXĐݒ肷Kv
  B"-nostdinc" wɂāAʏ̃pX𖳌
  A"-I/usr/i486-linuxglibc2/include" w肷邱ƂŁAglibc
  includewł܂Bgcc includew肷w肷Kv܂B
  /usr/lib/gcc-lib/i486-linuxglibc2/ 2.7.2.2/include ɂ܂B(e
  XgpCui486-linuxglibc2 gcc̃o[W2.7.2.2̏ꍇj

  eXgpglibcփvONꍇ́Agcc̐ݒw肷Kv
  ܂Bɂ́A"-b i486-linuxglibc2"IvVg܂B

  ̃vOł́Amakefile$CFLAGS $LDFLAGSIvVL̂
  ɐݒ肷邱ƂŐVIvV̎w肪ł܂B

        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

  configureXNvggĂꍇAconfiguresO
  $CFLAGS$LDFLAGSVFϐ`܂icsh/tcsh̏
  env/setenv,sh/bashłset/exportgpjBɂĐ
  makefile͓K؂$CFLAGS $LDFLAGS܂ł͂łBAS
  ̃XNvg̕ϐmF킯ł͂Ȃ̂ŁA configures
  AmakefilemFAKvɉĕҏWĂB

  RpC悤ƂĂvOAgcĉ݂gpĂƂ
  icppbinutilsfBNg𒼐ڎgpȂ΁jAL̃XNvg
  gΖSIvVw肹ɍς݂܂B

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

  You can then use this script instead of "gcc" when compiling.  gcc̑
  ɂ̃XNvggpĂB

  6.3.  glibcCCûƂlibc5gRpC

  glibcCCuƂăCXg[ĂƂɁAÂCu
  găvORpCɂ́AÂCupɃpXĐ
  肷Kv܂Bɂ́A"-nostdinc"IvVw肵Ēʏ
  pX𖳌ɂA"-I/usr/i486-linuxlibc5"gglibc(*) includefB
  Ngw肵܂B܂A"-I/usr/lib/gcc-
  lib/i486-linuxlibc5/2.7.2.2/include" w肵gccLincludet@C
  fBNgw肵܂BȂApX͊e̐ݒgcco[W
  킹ĒĂB

  (*󒍁j libc5̊ԈႢƎv܂B

  ÂlibcɃvONɂ́Agcc̐ݒw肷Kv
  B́AIvV"-b i486-linuxlibc5"w肷OKłB
  ̃vOł́Bmakefile$CFLAGS $LDFLAGSɐVIvV
  ΂悢͂łB

        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

  configureXNvggĂƂ́AconfiguresOɁAVFϐ
  $CFLAGS$LDFLAGS`܂ (csh/tcshłenv/setenv, sh/bash
  set/exportgpjBꂽmakefileɂ́AK؂$CFLAGS
  $LDFLAGSLqĂ͂łASĂconfigureXNvg
  sĂ킯ł͂Ȃ̂ŁA configuresmakefilemFAKv
  ĕҏWĂB

  ARpC悤ƂĂvOgcĉ݂ĂяoĂ
  ΁icppbinutils𒼐ڕKvƂĂȂȂ΁jAL̃XNvg
  g΁AIvVw肵ȂĂ݂܂B

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

  You can then use this script instead of "gcc" when compiling.

  RpC"gcc"̑ɂgΗǂ킯łB

  7.  C++vÕRpC

  libg++͐wCüꕔgpĂ̂ŁAlibmɃNĂ
  Blibg++͌ÂCugp悤ɃRpCĂ
  傤Alibg++glibcgčăRpC邩AoCił
  Kv܂BŐVlibg++\[XƁAglibcɃNꂽoCi
  ix86pj  <ftp://ftp.yggdrasil.com/private/hjl/>ɂ܂B

  7.1.  eXgpglibcglibg++̃CXg[

  glibceXgCuƂăCXg[ꍇAglibcƓfBN
  glibg++̃t@CCXg[Kv܂iO߂̗ł
  /usr/i486-linuxglibc2jBoCipbP[WCXg[ꍇ
  ig͂̂悤ɂlibg++RpCƂ܂񂪁A
  ̂悤Ȃ̂Ƃ΁A߂܂jAt@Ce|
  fBNgɓWJĂAusr/lib̃t@C<CXg[fBN
  g>/lib/ usr/libfBNg̃t@C<CXg[fBNg
  >/lib/fBNgցi͂߂include/g++ ̃N폜Ă
  YȂIjāAusr/bin/ ̃t@C<CXg[fBNg
  >/bin/fBNgֈړ܂B

  7.2.  CCuƂglibcgꍇlibg++̃CXg[

  glibcCCuƂăCXg[ꍇŁAg++vO
  OCCuƂƂɎgpȂ΁A܂AÂlibg++t@C
   libcfBNgɈړ܂BԂԊȒPȕ@́AO߂Ő
  悤ɂlibc5glibg++RpCăCXg[A
  glibcłʏǂCXg[邱ƂłB

  7.3.  CCułȂlibcgC++vÕRpC

  C++vOCłȂlibcƂƂɎgpꍇAg++includefB
  Nginclude悤Ɏw肷Kv܂B̗Ō΁Ae
  XgpglibcȂ/usr/i486-linuxglibc2/include/g++ACglibcȂ
  /usr/i486-linuxlibc5/include/g++ɂȂ܂B̂߂ɂ͒ʏA
  $CXXFLAGSϐwt܂B

        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

  8.  oO|[g

  CuɃoOƎvƂ́A܂FAQɖڂʂĂ
  Bق̐lłɂ̖ĂāAȒPȉ@Ă
  邩܂B܂AINSTALLt@C"GNU CCuCXg
  [邽߂̐c[ (Recommended Tools to Install the GNU C
  Library)"̍ڂmFĂBoOɂẮA glibcĝ̂
  ͂ȂAق̃c[Ɍ̂\邩łB

  oO܂Aꂪ{ɃoOǂm߂ĂBmF
  ߂̗ǂ@́AGNU CCũCuƓ邩
  m߂邱ƂłB삪ȂA炭ԈĂ̂͂Ȃ
  ŁAiKƂ͌܂񂪁jCu͐̂ł傤B
  łȂ΁AԂǂ炩̃CuԈĂ̂ł傤B

  ɁA <http://www-gnats.gnu.org:8080/cgi-bin/wwwgnats.pl>ɍsAoO
  f[^x[XmFāA肪񍐍ςłȂǂmF܂B
  ĂoOɂẮA(libcƋɔzzĂ)BUGSmFׂ
  B

  VoOƂƂmFłAČłŒ̃eXgP
  [X͈̔͂܂Ŗ̕߂ĂBCCȕꍇ́A\Ȍ
  A̃Cu֐Ăяoɂ܂Ŗ߂ׂłB͂
  ǓȂł傤B

  ȒPȃeXgP[Xɍi邱ƂłAŌ̃Xebv̓oO񍐂
  ƂłBoO񍐂Ƃ́AeXgP[XAۂɓꂽʂƊ
  錋ʁAāi΁ǰ̖ƍlvAeXg
  ɎgVXe̎ށAGNU CCuGNU CRpCA GNU
  Binutils̃o[W𑗂ĂBconfigureɂĐꂽ
  config.statusconfig.make܂߂ĂB́Aconfigures
  Ƃ̃JgfBNgɂ܂B

  GNU CCũoÓAGNU libcɕtglibcbugVFXNvg
  g  <mailto:bugs@gnu.org>֑Ă(ÂAhX
  <mailto:bugs@gnu.ai.mit.edu>܂g܂jB邢́A <http://www-
  gnats.gnu.org:8080/cgi-bin/wwwgnats.pl> AGNATS WEBC^[tF[
  Xgēe邱Ƃł܂B

  Ă⎿̓[OXg <mailto:bugs-glibc@prep.ai.mit.edu> 
  ĂBAgnewsgroup gnu.bug.glibc ǂłȂꍇA
  <mailto:bug-glibc-request@prep.ai.mit.edu> ɐ΁AXg
  񂹂邱Ƃł܂B

  GNU CCũoO|[g <bug-gcc@prep.ai.mit.edu>ɑ邱Ƃ
  ĂB́AGNU CC̃oO|[ĝ߂̂̂łB GNU
  CC͕ʂ̐lXɂăeiXĂAGNU CCuƂ͕ʕ
  łB

  9.  specs t@C̗

  ł́AgccRpCƃNɎgp glibc2 pspecs t@C
  ̗Љ܂B̃t@ĆA/usr/lib/gcc-lib/ <VVXe
  fBNg>/<gcc̃o[W>ɂ܂B x86VXegpĂ
  ꍇÃZNV̓ê܂܃t@CɃRs[Ηǂł
  B

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

  10.1.1.  Weby[W

  o  FSFGNU C Cuz[y[W
     <http://www.gnu.org/software/libc/libc.html>

  o  LinuxGNU Libc2g <http://www.imaxx.net/~thrytis/glibc/>

  o  Linuxglibc-2CXg[
     <http://huizen.dds.nl/~frodol/glibc/>

  o  Debianłlibc5libc6̈ڍsMini-HOWTO
     <http://www.gate.net/~storm/FAQ/libc5-libc6-Mini-HOWTO.html>

  10.1.2.  j[XO[v

  o  comp.os.linux.development.system

  o  comp.os.linux.development.apps

  o  linux.dev.kernel

  o  gnu.bugs.glibc

  10.1.3.  [OXg

     Glibc2 LinuxfBXJbVXg
        ̃Xg͐VGNU CCułglibc2CXg[
        Linux[UԂł̏Ӑ}̂łBgsbN͌݊
        ALinux/glibcZbgł̃RpCɂĂ̎̂̂܂Ŋ܂
        ܂Bwǂɂ́AMajordomo@ricardo.ecn.wfu.edu subscribe
        glibc-linux <ȂemailAhX> Əă[𑗂Ă
        B

  10.2.  ӎ

  fڂ̂قƂǂ́AGNU Libc WEBy[W GNU Libc web page
  <http://www.gnu.org/software/libc/libc.html> Ulrich Drepper's
  <dreppers@gnu.ai.mit.edu> glibc2 AiEXAєނ̃Rg
  ƂĂ̂łB Andreas Jaeger <aj@arthur.rhein-neckar.de> ́Ao
  O|[g̐߂ɂĂ̏̈ꕔ񋟂Ă܂B

  ȉ͏񋟂т̕ɂẴtB[hobNĂꂽl
  łB

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

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

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

  o  Scott K. Ellis <ellis@valueweb.net>

  o  Aron Griffis <agriffis@coat.com>

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

  o  Frodo Looijaard <frodol@dds.nl>

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

  o  Shaya Potter <spotter@capaccess.org>

  o  Les Schaffer <godzilla@futuris.net>

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

  o  Gary Shea <shea@gtsdesign.com>

  o  Stephane <sr@adb.fr>

  o  Jan Vandenbos <jan@imaxx.net>

  |͉L̐lsĂ܂B

  o  : Allex <allex@ms2.accmail.com.tw>

  o  tX:  Olivier Tharan <tharan@int-evry.fr>

  o  {:  Kazuyuki Okamoto <ikko-@pacific.rim.or.jp>

  () {v1.5ɒuāAL̐l珕Ƌ͂𒸂܂B
  ih̗j

  o  {K <ikko-@pacific.rim.or.jp>

  o  쁗 <nakano@apm.seikei.ac.jp>

  o  쁗asahi-net <sx3m-nkn@asahi-net.or.jp>

  o  ݗǎ <kawagisi@ky.rim.or.jp>

  10.3.  tB[hobN

  ǵAHOWTOƁALinux p glibc2̃z[y[W glibc 2
  for Linux <http://www.imaxx.net/~thrytis/glibc> ێĂ邱ƁA
  glibc2 gĂ邱ƈȊOAglibc vWFNgɂ͊֗^Ă܂B
  [őĂ₢킹ɂ͂Ȃׂ悤w͂͂Ă
  ̂́A glibc2 ɂĒm\ɂ܂BtB[hobNA
  AĂȂǂ͊}܂̂ ejg3@cornell.edu ɂ肢܂B

  () { (v1.5)ɊւẮAr
  <mailto:tendo@fas.harvard.edu>ւ肢܂B

  Copyright (c) 1997 by Eric Green. ()
  Copyright (c) 1997 by Kazuyuki Okamoto ({)
  Copyright (c) 1998 by Toshinori Endo ({)
  ̕LDPCZXɊÂĔzz\łB

