���Υڡ��� ���Υڡ��� �ܼ���

5. �ᥤ���C�饤�֥��Ȥ��ƤΥ��󥹥ȡ���

���Υ��������Ǥϡ�glibc2��ᥤ���C�饤�֥��Ȥ��ƥ��󥹥ȡ��뤹����ˡ�� �������ޤ�������������ѥ��뤵���ץ������ϡ����ץ�������򤷤ʤ� �¤ꡢ���Υ饤�֥��˥�󥯤����褦�ˤʤ�ޤ���

Redhat��Debian��ȤäƤ��ơ�Ŭ�ڤ�eb�ե���������������ɤ����ΤǤ��� �С�Redhat��Debian�Υ��󥹥ȡ��륤�󥹥ȥ饯�������������������� ��硢���Υ����������ɤ����Ф��Ƥ��ޤ��ޤ���

5.1 ����������Υ饤�֥�깽��

������Ǥϡ�����������glibc2�ȥ��ɥ���򥳥�ѥ��뤹����ˡ���������ޤ��� ��Ŭ����٥��������ѹ���������硢����ӥХ��ʥ�ѥå������Τʤ���硢 �饤�֥��Υ���ѥ��뤬ɬ�פˤʤ�ޤ���

ɬ�׾��

i586@133, 64 MB RAM�Υ����ƥ�Ǥϡ����饤�֥��ȥ��ɥ���Υ���ѥ���� ��3���֤�����ޤ����ե�������i686@200�Ǥϡ���30ʬ�Ǥ���

��������Ÿ��

����ѥ��뤹�뤿��ˤϡ����������֤�Ÿ�����ƥ���������Ф�ɬ�פ����� �ޤ������ɤ���ˡ�ϼ����̤�Ǥ���

 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, localedata�ǥ��쥯�ȥ꤬glibc-2.0.6 �ǥ��쥯�ȥ�����֤��졢configure�������Υ��ɥ����ǧ���Ǥ���褦�� �ʤ�ޤ���

����

glibc-2.0.6�ǥ��쥯�ȥ����compile�Ȥ����ǥ��쥯�ȥ��������������� cd���ơ����Ƥκ�Ȥ򤳤���ǹԤ��ޤ�������ˤ�ꡢ���󥹥ȡ����� �õ��Ȥ��ڤˤʤ�ޤ����ʥץ�����೫ȯ�Ԥ���'make clean'��ޤ������� Ư���褦�ˤϤ��Ƥ��ʤ�����Ǥ�����

mkdir compile
cd compile
����../configure��¹Ԥ��ޤ������ɥ���ѥå�������Ȥ�����ˤϡ� --enable-add-ons=linux-threads,crypt,localedata�Τ褦�ˤ��ƥ��ץ���� ���ꤹ��ɬ�פ�����ޤ������󥹥ȡ��뤹��ѥ�����ꤹ��ɬ�פ⤢�뤫�� ����ޤ���ɸ��Ū��linux�ǥ����ȥ�ӥ塼�����˹�碌��ˤϡ� --prefix=/usr����ꤷ�ޤ�����linux�����ƥ��/usr��prefix�Ȥ��ƻ��ꤵ ����configure��libc.so��ۤ��ν��פʥ饤�֥���/lib�˳�Ǽ�����ۤ��� path��Ŭ�ڤ�Ĵ�����ޤ����˺ǽ�Ū�ʥ��ޥ�ɥ饤��ϼ��Τ褦�ˤʤ�� ���礦��
 ../configure --enable-add-ons=linuxthreads,crypt,localedata --prefix=/usr

����ѥ���

����ѥ���ȥ����å��ϼ����̤�Ǥ���

 make
 make check
 

5.2 ���󥹥ȡ���ν���

���������饤�󥹥ȡ��뤹����ˤ��衢�Х��ʥ꤫�饤�󥹥ȡ��뤹���� �ˤ��衢�������饤�֥��ν����Τ���ˡ������Ĥ��Υե���������򤹤� ɬ�פ�����ޤ�������������ѥ��뤵���ץ������ϡ�glibc�˥�󥯤��� �ޤ������Ť��ץ������Τ�����ưŪ�˥�󥯤��줿��Τ�libc5�˰�¸���Ƥ��� ���ᡢñ�˸Ť��С��������񤭤���櫓�ˤϹԤ��ʤ��ΤǤ���

  1. �Ť��ե���������򤹤뤿��ο������ǥ��쥯�ȥ��������ޤ���
     mkdir -p /usr/i486-linuxlibc5/lib
     
    
  2. �Ť��إå����ե������/usr/include�������򤵤��ޤ���
     mv /usr/include /usr/i486-linuxlibc5/include
     
    
  3. ������include�ǥ��쥯�ȥ����������ۤ���include�ǥ��쥯�ȥ�ؤ� ��󥯤�������ޤ���
     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++ include�ǥ��쥯�ȥ��/usr/include�� �ᤷ�Ƥ����������ɤ��Ǥ��礦�� �嵭�ʳ������ƤΥإå����ե�������󥯤β�����Ԥ��ޤ���ncurses�ʤ� ����ɸ��饤�֥��Τ����Ĥ��ϡ��ե����뤫�ȼ���include�ǥ��쥯�ȥ�ؤ� ��󥯤�/usr/include���֤��Ƥ��ޤ��� �������ä��饤�֥���Ŭ�ڤ˻��Ѥ��뤿��ˤϡ������Υե����� ���󥯤������Ŭ�ڤ��Ԥ��Ƥ���ɬ�פ�����ΤǤ���
  4. �������饤�֥��ǥ��쥯�ȥ��/usr/i486-linuxlibc5/lib�ˤ� /etc/ld.so.conf�ե��������Ƭ�˲ä��ޤ��� glibc�����󥹥ȡ��뤵�줿���ȴ�̯�ʥ�å��������Ф�Τ��򤱤뤿��ˤϡ� ld.so 1.8.8�ʹߤ�Ȥä������褤�Ǥ��礦��
  5. �Ť�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��ư����ݤ˻Ȥ���ץ�����बɬ�פȤ���ե�����Ǥ��ꡢ �롼�ȥɥ饤�֥ѡ��ƥ������ˤʤ��ƤϤʤ�ʤ�����Ǥ���
  6. /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
     
    
  7. �饤�֥����ư�����顢�饤�֥�ꥭ��å���򹹿����ޤ���
     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
 
�����Ǥϡ�i486-unknown-linux�������ƥ�̾��2.7.2.2���С�������ֹ� �Ǥ���/usr/lib/gcc-lib/<�����ƥ�>��Ť������ƥ�ǥ��쥯�ȥ�˥��ԡ� ���ޤ���
 cd /usr/lib/gcc-lib/
 cp -r i486-unknown-linux i486-linuxlibc5
 
���ˡ����Υǥ��쥯�ȥ�ȥС������ǥ��쥯�ȥ�˰�ư���ޤ���
 cd /usr/lib/gcc-lib/i486-unknown-linux/2.7.2.2
 
�����ơ����Υǥ��쥯�ȥ��specs�ե�����򥳥ԡ����ޤ������Υե������� �ǡ�/lib/ld-linux.so.1�Ƚ񤫤줿��ʬ��/lib/ld-linux.so.2���ѹ����ޤ��� �ޤ���%{...:-lgmon}�Ȥ������Ҥ����ƺ�����ޤ���glibc�ϥץ��ե������ ��gmon�饤�֥���Ȥ�ʤ�����Ǥ���specs�ե��������� specs�ե�������� ��򻲾Ȥ��Ƥ���������

5.6 ���󥹥ȡ��봰λ�γ�ǧ

���󥹥ȡ��봰λ���ǧ���뤿��ˡ����Υץ�������ե�����Ȥ��� �������Ƥ���������

 #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!"��ɽ�� �����Х��󥹥ȡ��������Ǥ���

��������make ����Ѥ��ƥ���ѥ��뤹���硢����ˤ����ޤ����� /usr/bin/cc���ƤФ�ƥ�󥯤����ޤ��Ԥ��ʤ����Ȥ�����ޤ��� ���ξ�硢gcc��/usr/bin/cc�˥��ԡ����뤫���Ķ��ѿ��ʤޤ���make�ޥ�����CC�� gcc��ؤ��褦���ѹ����Ƥ���������


���Υڡ��� ���Υڡ��� �ܼ���