  Glibc 2 HOWTO
  Eric Green, thrytis@imaxx.net 
  v1.0, 31 August 1997
   칬 Kazuyuki Okamoto, ikko-@pacific.rim.or.jp 
  v0.1, 25 Octorber 1997

  glibc 2 HOWTO  Linux ƥ GNU C Library С 2 (libc 6)
  ƳȻˡ갷äƤޤ
  ______________________________________________________________________

  Table of Contents:

  1.      Ϥ

  1.1.    glibc 2 ˤĤ

  1.2.    ʸˤĤ

  1.3.    ʸǤκǿѹ

  2.      Ƴˡ

  3.      饤֥

  4.      ƥȥ饤֥ȤƳ

  4.1.    ѥƳ

  4.1.1.  ɬ׾

  4.1.2.  μФ

  4.1.3.  

  4.1.4.  ѥƳ

  4.2.    ʥߥåι

  4.3.    gcc Ѥι

  4.4.    إåեΥ󥯤ι

  4.5.    ƳΥƥ

  5.      礿 C 饤֥ȤƳ

  5.1.    饤֥

  5.1.1.  ɬ׾

  5.1.2.  μФ

  5.1.3.  

  5.1.4.  ѥ

  5.2.    Ƴ

  5.3.    ХʥѥåƳ

  5.4.    Ƴ

  5.5.    gcc specs ι

  5.6.    ƳΥƥ

  6.      ǤϤʤ libc ȶ˥ѥ

  6.1.    ǤϤʤ libc ѤȤջ

  6.2.    test  glibc ȶ˥ץ򥳥ѥ

  6.3.    glibc 礿饤֥λ libc 5 ȶ˥ץ򥳥
  

  7.      C++ ץΥѥ

  7.1.    ƥ glibc ƳѤ libg++ Ƴ

  7.2.    礿 glibc ƳѤ libg++ Ƴ

  7.3.    ǤϤʤ libc ȶ C++ ץΥѥ

  8.      Х𤹤ˤ

  9.      specs ե

  10.     վ

  10.1.   ¿ξ

  10.1.1. Web ڡ

  10.1.2. ˥塼롼

  10.2.   Ϣ

  10.3.   ոˤĤ
  ______________________________________________________________________

  1.  Ϥ

  1.1.  glibc 2 ˤĤ

  glibc 2  GNU C Library κǽСǤΥ饤֥ GNU
  Hurd ƥ Linux i386, m68k,  alpha ƥѹʤư
  ޤLinux PowerPC, MIPS,  Sparc ؤΰܿϳȯ˳ȯƤޤ
  衢¾Υƥȥڥ졼ƥ󥰥ƥΥݡȤɲ
  Ǥ礦

  Linux Ǥϡ glibc 2  Linux libc 5 θѤǥ᥸㡼С 6 
  libc ȤƻѤޤLinux libc ȯԤˤäƤ䤬 libc 5 ֤
  ƤͽǤߤϼ¸ŪǤglibc 2 ΥƥȤ˶̣ä
  ͤˤäƽʬꤷƻѤǤ褦ˤʤޤư
  Ǽ㴳ɲäϤɬפǤǽСϻѤץब
  glibc 2 򥵥ݡȤƤСºݤʤꤷƤޤ

  glibc 2 ˤ 3 Ĥɲûबޤ:

     Crypt
        UFC-crypt (UFC-Ź) ѥå͢еڤޤ

     LinuxThreads
        Posix 1003.1c "pthread" 󥿥եμ

     Locale data
        ǡե glibc ιݲǽǹۤΤɬפ
        ǡޤǤޤ

  1.2.  ʸˤĤ

   HOWTO ϸͭ Linux ƥ glibc 2 饤֥Υ󥹥ȡ
  갷ޤ libc 5 ѤƤ Intel ١ƥ
  ȤäƤ桼˻ΩƤƤޤ¾ΥƥΥ桼
  (glibc 1 Τ褦) ۤʤ饤֥ȤäƤ桼⤳ξ
  븽ԤΥե̾ȥƥ֤̾ѤƤ

   HOWTO κǽǤϼνˤޤ
  <http://www.imaxx.net/~thrytis/glibc/Glibc2-HOWTO.html>, ޤϡƥ
  Ǥ <http://www.imaxx.net/~thrytis/glibc/Glibc2-HOWTO.txt> ˤ
  ޤ

  1.3.  ʸǤκǿѹ

  С 0.9.1  1.0 ΰ㤤:

  o  glibc С 2.0.5 ѹޤ

  o  Red Hat 4.8 ξɲäޤ

  2.  Ƴˡ

  glibc Ƴˤ 2 Ĥˡޤ¸Υ饤֥ɸͤ˻
  Ƥϥץ򥳥ѥ뤹ˤĤȰۤʤ륪ץ
  դˤƥѤ˥饤֥ƳǤޤˡƳ
  Ⱦ衢glibc ñ˺Ǥ褦ˤʤޤ(glibc ȥ󥯤Ƥ
  ĤΥץϥ饤֥ưʤʤޤ)
  glibc ƥȥ饤֥ȤƤϥ饤֥򥽡饳ѥ
  뤹ɬפޤˡƳϥХʥʪ¸ߤ
  󡣤ƳȤ``ƥȥ饤֥ȤƳ'' ޤ

  ƳȤ¾ˡ glibc 礿饤֥ȤƳˡǤ
  ƥǥѥ뤷٤Ƥοץ glibc Ѥ
  Ǥ礦Ǥ⡢Ť饤֥ץ˥󥯤뿧ʥץ
  դƥѥ뤹ȥ󥯤ǤޤХʥ꤫Ȥǥ饤֥
  ѥ뤷Ƴ뤳ȤΤɤǽǤŬץ
  ѹޤϥХʥѥåۤƤʤɥȤ
  ϡʪꤷƥѥ뤹ɬפޤƳ
   ``礿 C 饤֥ȤƳ'' ޤ

  glibc 2 פʥƥƳϡ礿饤֥ȤƳ
  ٤ǤϤޤ  ƥƳԤͽΥƥǻƤ
  

  3.  饤֥

  glibc 2  glibc ѥå 3 ĤΥɥѥåǤ
  LinuxThreads, Locale,  Crypt ʤޤϼνˤ
  

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

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

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

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

  ٤Ƥ򥳥ѥ뤷Ƴˤ 150 MB ǥ̤ɬפǤ
  ܤȤʤХʥΥ饤֥ΤߤƳˤ 50 MB ɬפ
  

  2.0.5 ѤΥХʥѥåϤޤ󡣥С 2.0.4 ΥХʥ
  ѥå i386, alpha,  68k Ѥνˤޤ

  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>

  crypt ɥ͢еޤƹʳѼԤ
  <ftp://ftp.ifi.uio.no/pub/gnu> ꤷƤ

  Red Hat ѥåȤäƤ glibc 2  rpm 
  <ftp://ftp.redhat.com/pub/redhat/tbird/RedHat/RPMS/> ꤷƤ
  Red Hat ѥå 4.8 Ǥ glibc 2 礿 C 饤֥ˤʤ
  Ƥޤ

  Debian ѥåȤäƤ glibc 2  rpm  from
  <ftp://ftp.debian.org/debian/unstable/binary-i386/devel/>,
  <ftp://ftp.debian.org/debian/unstable/binary-m68k/devel/>, 
  <ftp://ftp.debian.org/debian/unstable/binary-alpha/devel/> ꤷ
  Ƥե̾Τ libc6 Ǥߡglibc 2  Debian 
  hamm СδܥѥåΰˤʤꡢDebian 2.0 
  礿 libc ˤʤǤ礦

  4.  ƥȥ饤֥ȤƳ

  ΥǤϥƥȥ饤֥Ȥ glibc 2 Ƴ뤳Ȥ
  ޤ饤֥󥯤褦ɲåѥ᥿ͿޤǤ
  ¸Υ饤֥󥯤褦˥ѥ뤷ޤѥʤ꾯
  ե˽褦ˤߤΤǡ饤֥Ƴ
  ɬפޤ

  4.1.  ѥƳ

  4.1.1.  ɬ׾

  o   150 MB ζǥ

  o  GNU make 3.75

  o  gcc >= 2.7.2 (2.7.2.1 ˾ޤ)

  o  binutils 2.8.1 (alpha Ǥ snapshot ɬ) [:snapshot,
     к]

  o  bash-2.0

  o  autoconf-2.12 (configure.in ѹ)

  64 MB ΥΤ i586@133 Ǥϡ٤ƤΥ饤֥ȥɥ򥳥
  ѥ뤹ˤ 3 ֤ޤi686@200 Ǥϡ1  30 ʬǤ

  4.1.2.  μФ

  򥳥ѥ뤹ˤϥ֤饽Фɬפ
  ɤˡϼ̤ꡣ

         tar xzf glibc-2.0.5.tar.gz
         cd glibc-2.0.5
         tar xzf ../glibc-linuxthreads-2.0.5.tar.gz
         tar xzf ../glibc-crypt-2.0.5.tar.gz
         tar xzf ../glibc-localedata-2.0.5.tar.gz

  Ǥ glibc-2.0.5 ǥ쥯ȥ  linuxthreads, crypt,  locale-
  data ǥ쥯ȥˤΥɥƤޤ

  4.1.3.  

  glibc-2.0.5 ǥ쥯ȥ  compile Ȥ̾ΤΥǥ쥯ȥ
  ơ˰ưޤ礦٤ƤκȤޤäʤΥǥ쥯ȥǹ
  ޤ(ȯԤ 'make clean' ˤɬפ̵Ȼפޤ)

         mkdir compile
         cd compile

   ../configure ¹Ԥޤ礦ɥѥåѤ
  ϡ --enable-add-ons=linuxthreads,crypt,localedata Τ褦 --enable-
  add-ons ꤹɬפޤޤƳΥǥ쥯ȥꤹ
  ɬפޤ /usr/i486-linuxglibc2 ɤǤ礦configure
  ޥɤ򼡤Τ褦ˤޤ礦

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

  4.1.4.  ѥƳ

  ѥȸڤϼ¹Ԥޤ礦

         make
         make check

   'make check' 饤֥Ƴޤ礦

         make install

  4.2.  ʥߥåι

  1.  ld.so  /lib/ld-linux.so.2 إ󥯤ޤ礦:

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

     ץϰöꤷˤ󥯤줿饤֥ǡ
     ʥС󤬸줿礿 C 饤֥Ȥ glibc ưפ
      /lib Υ󥯤Ѥޤ

  2. /etc/ld.so.conf Խޤ礦饤֥Υѥե
     κǸ˾嵭Ǥ /usr/i486-linuxglibc2/lib Τ褦
     <prefix>/lib ɲäɬפޤ/etc/ld.so.conf ѹ
     顢¹Ԥޤ礦

         ldconfig -v

  4.3.  gcc Ѥι

  /usr/lib/gcc-lib ƳȤκǸʳǹΤǡgcc Ͽ
  ֥ɤΤ褦˻Ѥ뤫ΤäƤޤ褺¸ιʣ̤
  ɬפޤɤιǿʤΤĴ٤ˤ gcc  -v ץ
  Ȥä :

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

  ơΥǥ쥯ȥˤ 'specs' եԽޤ礦
  ե /lib/ld-linux.so.1  /lib/ld-linux.so.2 ѹޤ礦
  ޤ glibc ץեԤ gmon 饤֥Ѥʤ褦
   %{...:-lgmon} Ȥե⤫ɬפޤ
  specs ե ``specs ե'' ˤޤ

  4.4.  إåեΥ󥯤ι

  󥯥롼ɥǥ쥯ȥ¾Υ󥯥롼ɥǥ쥯ȥΥ
  ɬפޤ:

         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 Τ褦¾Υ饤֥꤬ϤΥǥ쥯ȥɲäɬ
  פޤ/usr/include ե򥳥ԡ뤫󥯤ĥꤷ
  礦(ĤΥ饤֥ glibc2 ư뤿˥ꥳѥ뤹
  ɬפޤξϡѥå򥳥ѥ뤷
  /usr/i486-linuxglibc2 Ƴޤ礦)

  4.5.  ƳΥƥ

  ƳΥƥȤԤˤϡglibc.c ե˼Υץޤ
  :

         #include <stdio.h>

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

   "-b <Ƴǥ쥯ȥ> -nostdinc -I<󥹥ȡǥ쥯
  >/include -I/usr/lib/gcc-lib/<ƥǥ쥯ȥ>/<gcc ΥС
  >/include" դƥѥ뤷ޤ礦:

         % 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

  Ť libc Ǥʤ glibc2 ȥ󥯤ץ ldd Ǹڤޤ:

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

  ѥ뤷ơ󥯤ǧơ¹Ԥơ "hello world!" Ϥ
  ƳǤ
  5.  礿 C 饤֥ȤƳ

  礿 C 饤֥Ȥ glibc 2 ƳˤĤƼ갷ޤ¾ΥС
  ȥ󥯤褦̤ʥץդʤСΥ饤֥
  ȥ󥯤ƿץ򥳥ѥ뤷ޤ

  Redhat 㤷 Debian ѤƤŬڤ rpm 㤷 deb
  եɤϡRedhat 㤷 Debian Ƴ
  򻲾ȤƤλϤΥɤФƲ

  5.1.  饤֥

  Υ glibc 2 ȥɥ򥽡ɤΤ褦˥ѥ뤹
  뤫ޤŬ㤷ϹץϥХʥȤʤ
  ϥ饤֥򥳥ѥ뤷ʤФʤޤ

  5.1.1.  ɬ׾

  o   150 MB ζǥ

  o  GNU make 3.75

  o  gcc >= 2.7.2 (2.7.2.1 ˾ޤ)

  o  binutils 2.8.1 (alpha Ǥ snapshot ɬ)

  o  bash-2.0

  o  autoconf-2.12 (configure.in ѹ)

  64 MB ΥΤ i586@133 Ǥϡ٤ƤΥ饤֥ȥɥ򥳥
  ѥ뤹ˤ 3 ֤ޤi686@200 Ǥϡ1  30 ʬǤ

  5.1.2.  μФ

  򥳥ѥ뤹ˤϥ֤饽Фɬפ
  ɤˡϼ̤ꡣ

         tar xzf glibc-2.0.5.tar.gz
         cd glibc-2.0.5
         tar xzf ../glibc-linuxthreads-2.0.5.tar.gz
         tar xzf ../glibc-crypt-2.0.5.tar.gz
         tar xzf ../glibc-localedata-2.0.5.tar.gz

  Ǥ glibc-2.0.5 ǥ쥯ȥ  linuxthreads, crypt,  locale-
  data ǥ쥯ȥˤΥɥƤޤ

  5.1.3.  

  glibc-2.0.5 ǥ쥯ȥ  compile Ȥ̾ΤΥǥ쥯ȥ
  ơ˰ưޤ礦٤ƤκȤޤäʤΥǥ쥯ȥǹ
  ޤ(ȯԤ 'make clean' ˤɬפ̵Ȼפޤ)
         mkdir compile
         cd compile

   ../configure ¹Ԥޤ礦ɥѥåѤ
  ϡ --enable-add-ons=linuxthreads,crypt,localedata Τ褦 --enable-
  add-ons ꤹɬפޤޤƳΥǥ쥯ȥꤹ
  ɬפޤ /usr ɤǤ礦configure ޥɤ򼡤Τ褦
  ˤޤ礦

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

  5.1.4.  ѥ

  ѥȸڤˤϼ¹Ԥޤ礦:

         make
         make check

  5.2.  Ƴ

  Хʥ꤫ƳȤˤ餺ˡ饤֥ΰ٤˽Ȥ
  ĤΥեưɬפޤץΥѥ
   glibc إ󥯤򤷤ޤŤץϤޤ libc 5 ˰¸
  Ū˥󥯤ƤΤñ˸ŤС񤭽ޤ

  1. Ťեݻ٤οǥ쥯ȥޤ:

         mkdir -p /usr/i486-linuxlibc5/lib

  2. Ťإåե /usr/include 򤹤ɬפޤ:

         mkdir -p /usr/i486-linuxlibc5/lib

  3. 󥯥롼ɥǥ쥯ȥ¾Υ󥯥롼ɥե
     Υ󥯤򤷤ޤ:

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

     󥯤ϤѤʪˤäĴɬפǤ礦Slackware Ǥ
     g++ إåե /usr/local/g++-include ˤޤdebian Ǥ
     إåե /usr/include/g++ ˤꡢ/usr/lib/g++-include 
     /usr/include/g++ 󥯤ĥäƤޤԤξ硢¿ʬ
     g++ 󥯥롼ɥǥ쥯ȥ /usr/include ˰ưʤǤ
     

  4. ¾Υإåեȥ󥯤ޤ礦ncurses Τ褦
     ɸΥ饤֥꤬ /usr/include ֤Ƥ뤫  /usr/include ˥
     ĥäƤޤΥեȥ󥯤Ϥ¾Υ饤֥꤬
     ѤƤΤǲʤФޤ

  5. 饤֥Υǥ쥯ȥȥåץǥ쥯ȥ꤫
     (/usr/i486-linuxlibc5/lib Τ褦) /etc/ld.so.conf եɲ
     ޤ礦 glibc ƳȤβåǤΤ
     ld.so-1.8.8 ƳɤǤ礦

  6. ǥ쥯ȥظŤ 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

     /usr  / ǤϤʤ¾Υѡƥˤ libm.so.5 
     libc.so.5 ϰưʤǥԡ٤ǤȤΤϤΥ饤֥
      linux ϻ˥ץब׵᤹Τȡ롼ȥɥ饤֥ѡƥ
     ¸ߤɬפ뤫Ǥ

  7. ǥ쥯ȥ /usr/lib/*.o ưޤ礦

         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. 饤֥ΰưθǥ饤֥ꥭå򹹿ޤ礦

         ldconfig -v

  5.3.  ХʥѥåƳ

  餫ᥳѥ뤷ƤХʥ꤫ glibc Ƴˡɬ
  ʤΤǼ¹Ԥޤ礦:

         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

  ƥС󤬰ۤʤϡŬڤʥե֤̾
  

  5.4.  Ƴ

  Ƴ뤿ˤϼ¹Ԥޤ礦:

         make install
         ldconfig -v

  5.5.  gcc specs ι

  ƳκǸʳ (Хʥȥξ) ϥץΥ󥯤
  褦 gcc specs եιǤgcc ˤäƻѤ
  specs եΤ˷ˤϼΤ褦ˤޤ

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

  Υǥ쥯ȥȥСΥǥ쥯ȥ˰ư

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

  ơΥǥ쥯ȥˤ 'specs' եԽޤ礦
  ե /lib/ld-linux.so.1  /lib/ld-linux.so.2 ѹޤ礦
  ޤ glibc ץեԤ gmon 饤֥Ѥʤ褦
   %{...:-lgmon} Ȥե⤫ɬפޤ
  specs ե ``specs ե'' ˤޤ
  5.6.  ƳΥƥ

  ƳΥƥȤԤˤϡglibc.c ե˼Υץޤ
  :

         #include <stdio.h>

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

  ƥץ򥳥ѥ뤷ޤ礦

         % gcc glibc.c -o glibc

  ldd ѤƥץŤ libc Ǥʤ glibc2 ȥ󥯤Ƹڤ
  ޤ礦

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

  Υѥȼ¹ԤȤ "hello world!" 顢Ƴ
  

  6.  ǤϤʤ libc ȶ˥ѥ

  ѥ饤֥ȶ˥ץ򥳥ѥ뤷ǤΥ
  ǤϤɤΤ褦˥ǥ쥯ȥƳ̾Τ 2 ĤΥ
  ѤѤ뤲뤫ޤ̾Τ򤴼Ȥ˹
  ѹ뤳ȤФƤƤ

  6.1.  ǤϤʤ libc ѤȤջ

  ƥΥ֡ȻΥץѤץ򥳥ѥ뤹ˡ
  ưŪ˥󥯤Ƥ롼ȰʳΥѡƥޥ
  ˻ѤƤΥ󥯤Ƥ饤֥ϥ롼ȥѡƥ
  ˤФƤƤΥǤϡμ礿 C 
  ֥Ȥ glibc Ƴ˸Ť饤֥롼ȥѡƥ
   ˤ /lib ˤǤʤ顢/usr ۤʤѡƥ
  ˤäơglibc ƥȥ饤֥Ȥ /usr/i486-linuxglibc2
  ˥󥹥ȡ뤷Ƥ glibc ȶ˥ѥ뤷ץ
   /usr ѡƥޥȤޤưޤ

  6.2.  test  glibc ȶ˥ץ򥳥ѥ

  ƥƳ glibc ˥ץ󥯤ˤϡglibc 󥯥롼
  եؤ󥯥롼ɥѥκ꤬ɬפǤ "-nostdinc" 
  ̾Υѥ̵ˤ "-I/usr/i486-linuxglibc2/include" 
  glibc 󥯥롼ɥեؤǤ礦ޤ /usr/lib/gcc-
  lib/i486-linuxglibc2/2.7.2.2/include ˤ gcc 󥯥롼 ꤹ
  ɬפǤ礦(gcc С 2.7.2.2 ȶ i486-linuxglibc2
  ˥ƥȥ饤֥꤬ƳƤȲꤷƤޤ)

  ƥƳ glibc ˥ץ󥯤ˤϡgcc ꤹ
  ɬפޤԤˤ "-b i486-linuxglibc2" ץ
  Ƥ

  ۤȤɤΥץѤˡmakefile  CFLAGS  LDFLAGS ץ˼
  οץդäƻꤹ뤳ȤǤޤ:

         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

  configure ץȤѤƤϡconfigure ¹Ԥ (
  줾 csh/tcsh Ǥ env/setenvsh/bash/¾Ǥ set/export ˤ
  ) CFLAGS  LDFLAGS ѿޤ礦configure ˤ
  makefile ϤΤȤ CFLAGS  LDFLAGS ޤǤޤƤ config-
  ure ץȤѿǤϤޤΤǡconfigure ¹Ը
  Ĵ٤ơɬפ˱ makefile ǽޤ礦

  ץ (cpp  binutils ľܤˤϸƤǤʤ) gcc Ƥ
  ǥѥ뤷Ƥ硢ΥץȤ󤹤٤ƤΥץ
  ɬפ̵ΤǤ긵˳ǼƤѲ:

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

  ѥ뤹Ȥ "gcc" ˤΥץȤѤǤޤ

  6.3.  glibc 礿饤֥λ libc 5 ȶ˥ץ򥳥ѥ
  

  glibc 礿饤֥ȤƳƤȤˡŤ饤֥ȶ
  ץ򥳥ѥ뤹ˤϡ󥯥롼ɥѥŤ饤֥ˤʤ
  褦˺ꤹɬפޤ"-nostdinc" ꤹ̾Υѥ̵
  Ȥʤäơ "-I/usr/i486-linuxlibc5/include" ꤹ glibc 
  롼ɤؤ褦ˤʤޤޤ "-I/usr/lib/gcc-
  lib/i486-linuxlibc5/2.7.2.2/include" ꤷ gcc ͭΥ󥯥롼
  ꤹɬפޤΥѥԤĤǥ쥯
  ̾ gcc ΥС˹碌ƤΤ˺ʤǤ

  ץŤ libc ȥ󥯤ˤ makefile  CFLAGS  LDFLAGS
  ץ˼ɲäƤ:

         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

  configure ץȤѤƤϡconfigure ¹Ԥ (
  줾 csh/tcsh Ǥ env/setenvsh/bash/¾Ǥ set/export ˤ
  ) CFLAGS  LDFLAGS ѿޤ礦configure ˤ
  makefile ϤΤȤ CFLAGS  LDFLAGS ޤǤޤƤ config-
  ure ץȤѿ櫓ǤϤޤΤǡconfigure ¹
  Ĵ٤ơɬפ˱ makefile ǽޤ礦

  ץ (cpp  binutils ľܤˤϸƤǤʤ) gcc Ƥ
  ǥѥ뤷Ƥ硢ΥץȤ󤹤٤ƤΥץ
  ɬפ̵ΤǤ긵˳ǼƤѲ:

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

  ѥ뤹Ȥ "gcc" ˤΥץȤѤǤޤ

  7.  C++ ץΥѥ

  libg++  math 饤֥ΰѤƤΤǡlibm إ󥯤򤷤
  äơ¸ libg++  glibc ȶ˥ꥳѥ뤹뤫Хʥ
  ꤷޤ礦(x86 Ǥ) glibc ˥󥯤Хʥ˽äƤ
  libg++ κǿΥ  <ftp://ftp.yggdrasil.com/private/hjl/> ˤ
  ޤ

  7.1.  ƥ glibc ƳѤ libg++ Ƴ

  ƥȥ饤֥ȤƳ glibc  glibc Ƴ (
  ΥǤ /usr/i486-linuxglibc2 Τ褦) ǥ쥯ȥ
  Ƴɬפޤ(ɮԤˡ libg++ 򥳥ѥ뤹뵡
  Ϻޤ̵äΤǤ᤹ˡ) ХʥѥåƳ
  硢ƥݥǥ쥯ȥ˥եФusr/lib/ ե
   <Ƴǥ쥯ȥ>/lib/ ǥ쥯ȥˡ usr/include/ ե
  <Ƴǥ쥯ȥ>/include/ǥ쥯ȥ˰ưɬפޤ(褺
  include/g++ 󥯤Τ˺줺!) ơusr/bin/ ե
  <Ƴǥ쥯ȥ>/bin/ ǥ쥯ȥ˰ưɬפޤ

  7.2.  礿 glibc ƳѤ libg++ Ƴ

  礿饤֥Ȥ glibc Ƴϡ褺Ť libg++ Ť
  libc ǥ쥯ȥ˰ưƤиŤ libc ȶ g++ ץ򥳥
  ѥ뤷ȤˤǤޤ¿ʬԤäȤñˡΥ
  Ǥä褦 libc 5 ȶ˥ѥ뤷 libg++ 򿷤Ƴ
  ơ glibc ɸŪƳ뤳ȤǤ

  7.3.  ǤϤʤ libc ȶ C++ ץΥѥ

  C++ ץǤϤʤ libc ȶ˥ѥ뤹ϡ嵭
  Ǥϥƥ libc ä /usr/i486-linuxglibc2/include/g++ Ǥä
  g++ 󥯥롼ɥǥ쥯ȥޤɬפޤ̾
  CXXFLAGS ѿǼΤ褦ɲäޤ:

         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.  Х𤹤ˤ

  Хȯ褺˥ХǤ뤳ȤǧƤǧ
  ɤˡ GNU C 饤֥꤬¾ C 饤֥ƱưԤȤ
  ǧƤƱϡ¿ʬκȤ饤֥꤬
  Ǥ礦(ɬ⤽ǤϤޤ) ƱǤʤϡ¿ʬ
  饤֥Τɤ줫ΤǤ

  ϡ <http://www-gnats.gnu.ai.mit.edu:8080/cgi-bin/wwwgnats.pl>, 
  ԤäơХǡ١ܤ̤Ƥ꤬𤵤
  ʤХǡ١Ĵ٤Ƥ

  Х򸫤Ĥǧ顢꤬ƸǤ⾮ʥƥȹ
  ˤޤǹʤǤC 饤֥ξϡ1 ĤΥ饤֥ؿ
  Ƥ֤褦˥ƥȤʤɤǤ礦ʤ񤷤ȤϤʤ
  Ǥ礦

  ñʥƥȹܤκǽʳϥХǤХ򤹤Ȥϡƥ
  ͤΥƥȹܡƥȤǵݡ(ץ¹ԤȤ˵
  ٤) Ԥ̡Ưƥμ GNU C ΥС
  `configure` ¹Ԥƺ `config.make' Ĥޤꡢ `configure`
  ɤʥǥ쥯ȥˤäƤ⤽ξ˰ưƥȥǥ쥯ȥ
   `configure' ¹Ԥ `config.make' դޤ礦

  GNU C 饤֥ѤƤΥХ  <bugs@gnu.ai.mit.edu>  GNU
  libc ȶ glibcbug 륹ץȤȤäդ٤ǡ
  <http://www-gnats.gnu.ai.mit.edu:8080/cgi-bin/wwwgnats.pl> ˤ
  GNATS web 󥿥ե饵֥ߥåȤǤޤ

  Ƥ <bugs-glibc@prep.ai.mit.edu> ᡼󥰥ꥹȤդƤ
   gnu.bug.glibc ˥塼롼פɤǤʤϡ <bug-
  glibc-request@prep.ai.mit.edu> إ᡼󥰥ꥹȤι(subscribe) 
  ޤ

  GNU C 饤֥ΥХ <bug-gcc@prep.ai.mit.edu> ˤդʤ
   Υ᡼󥰥ꥹȤ GNU CC ΥХǡGNU C 饤֥
  ȤڤƤꡢ̤οãݼ餷Ƥޤ

  9.  specs ե

  Ǥ gcc ǥѥȥ󥯤ԤȤ˻Ȥ glibc 2 
  'specs' ե갷ޤΥե
  /usr/lib/gcc-lib/<ƥΥǥ쥯ȥ>/<gcc ΥС> ˤ
  ޤx86 ƥƯƤϡ¿ʬΥ򤽤Τޤޥ
  ԡƻȤǤ礦 [äƤޤ:-)]

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

  o  FSF  GNU C Library ۡڡ
     <http://www.gnu.org/software/libc/libc.html>

  o  Linux  GNU Libc 2 Ѥ
     <http://www.imaxx.net/~thrytis/glibc/>
  10.1.2.  ˥塼롼

  o  comp.os.linux.development.system

  o  comp.os.linux.development.apps

  o  linux.dev.kernel

  o  gnu.bugs.glibc

  10.2.  Ϣ

  ξΤۤȤɤ GNU Libc web ڡ
  <http://www.gnu.org/software/libc/libc.html>  Ulrich Drepper 
  <drepper@gnu.ai.mit.edu> glibc 2 ʥ󥹤 ΥȤ餦ޤ
  줿ΤǤ

  οͤϾ󶡤Ӥʸˤո򤤤Ǥ:

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

  o  Aron Griffis <agriffis@coat.com>

  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  Stephane <sr@adb.fr>

  o  Jan Vandenbos <jan@imaxx.net>

  10.3.  ոˤĤ

   HOWTO 񤯤 Linux Ѥ glibc 2
  <http://www.imaxx.net/~thrytis/glibc> ڡݼɮԤΥޥǻȤ
  Ƥߤƽ񤭤ޤɮԤ glibc ΥץȤ˻äƤޤɮ
  ϤμˤĤƤ糰ǤոޤɼԤ
  ԤƤޤ thrytis@imaxx.net
  <mailto:thrytis@imaxx.net> դƤ

