=====================================================================
Linux GCC FAQ 1994/02/01 ��
Mitchum DSouza, <
[email protected]> ��
���{��� ���� �����i�u�h�b�j (NIFTY-Serve GAA00714)
<
[email protected]>
���{���t 1995/02/11
=====================================================================
-------------------- Linux GCC FAQ 1994/02/01 �� -----------------------------
0) ���� FAQ �̍ŐV�o�[�W�����͂ǂ��Ŏ�ɓ�����܂����H
1) �����g���Ă��� GCC �̃o�[�W������m��ɂ͂ǂ���������ł����H
2) GCC,as,ld,ar, ���̑��̍ŐV�ł̔z�t�͂ǂ��ɂ���܂����H
3) libc.so,libw.so �̋��L���C�u�����̍ŐV�ł͂ǂ��Ō����邱�Ƃ��ł��܂����H
4) Linux �ő��ɂ͂ǂ̂悤�ȋ��L���C�u�������g���܂����H
5) Linux �p�̋��L DLL ���C�u��������ɂ͂ǂ�����悢�̂ł����H
6) ���ȃo�C�i����s�����̂ɁC"PLT__oct__FUii" ���b�Z�[�W����̂͂Ȃ�
�ł����H
7) �v���b�g�z�[�� XXX ��� Linux �̃R�[�h��͂������N���X�R���p�C������ɂ͂�
������悢�̂ł��傤���H
8) �ǂ̂悤�ȃV���{���� Linux �� GCC �ɂ��Ď����I�ɒ�`����܂����H
9) �R���p�C������ �isigvec�Ƃ��������ʂȃV�O�i���Ȃǂ́j BSD �̎d�l��Ȃ����ɂ�
�ǂ���������ł����H
10) SIGBUS, SIGEMT, SIGIOT, SIGTRAP, SIGSYS �Ȃǂ͂ǂ��ɂ���܂����H
11) libhard �� libsoft �Ƃ͉��ł����H
12) ���b�Z�[�W "can't load library: /lib/libxxx.so, Incompatible version" �̈�
���͉��ł����H
13) �킽���̃��C�u�������ƂĂ�傫���̂͂Ȃ��ł����H�܂��A�ǂ�����Ώ������Ȃ�
�܂����H
14) -N �t���O��g���Ɖ����N����܂����H�܂��A�ǂ��g�������̂ł����H
15) �v���O�����̃f�o�b�L���O���͂ǂ�����Ύ���̂ł����H
16) �ǂ̃f�o�b�J�� Linux �Ŏg���܂����H
17) daemon �v���O������f�o�b�O�����@�́H
18) profiling �Ƃ͉��ł����H�܂��A�v���O������ profile ����ɂ͂ǂ̂悤�ɂ����
�悢�̂ł��傤���H
19) ���A�o�C�i�����ÓI�ɂ܂��͋��L���C�u�����Ƀ����N����Ă����ꍇ�ɁA�����
���ׂ��@�͂���܂����H
20) Linux �� LD_LIBRARY_PATH ��T�|�[�g���Ă��܂����H
21) ���̃v���O�����ł� /lib/cpp ���K�v�ł��B�ǂ������ɓ��ꂽ��悢�̂ł��傤
���H
22) <varargs.h> �͂ǂ��ł����H
23) ���̃v���O�����ŁA<linux/foo.h> ��C���N���[�h�������̂ł����A�����邱��
���ł��܂���B�ǂ��ɂ���̂ł��傤���H
24) foo() ���̓��C�u�����ɓ����Ă���̂ł��傤���H
25) �v���O���� XXX �� Linux �ɈڐA����ɂ͂ǂ���������ł����H
26) gcc/library �� foo �Ńo�O������̂ł����A�ǂ�����悢�̂ł��傤���H
27) ���L���C�u�����������@�\������ÓI���C�u�������傫���Ȃ�̂͂Ȃ��ł�
���H
28) /usr/lib ��ɂ��� .sa �t�@�C���Ƃ͉��ł����H
29) Linux �p�̃I�u�W�F�N�g�w���� C �͂ǂ��Ŏ�ɓ�����܂����H
30) "Internal compiler error: cc1 got fatal signal 11" �̃��b�Z�[�W�̈Ӗ��͉���
�����H
31) libc.lite �Ƃ͉��ł����H
32) Linux �̃��C�u������ SHADOW Password ��T�|�[�g���Ă܂����H
�܂��A�I���E�I�t�͂ǂ�����悢�̂ł����H
33) math.h ���[�`����������܂���B�v���O������ log(), sin() �Ȃǂ�g�p���Ă�
�܂��B�����Ă��������I
34) GCC �̃}�j���A���͂���܂����H������Ȃ�A�ǂ��Ŏ�ɓ�����܂����H
�܂��A�ǂ�����Έ�ł��܂����H
35) "Undefined symbol _bsd_ioctl" �̃��b�Z�[�W���o�܂����B�ǂ���������̂ł�
���H
36) �o�[�W�����A�b�v����Ƃ��́A/usr/lib/gcc-lib/i[34]86-linux/<old-version>
����Â� STUFF ���菜�����Ƃ͂ł��܂����H
37) �w�����āxlibipc.a �͂ǂ��ł����Hdosemu 0.49 �̂��߂ɕK�v�Ȃ̂ł����B
38) XXX ���R���p�C���ł��܂���B_deamon ������`�ɂȂ�܂��B���ꂩ�����āI�I
39) �w�����āxar �� ���C�u�����ɂ��Ăł��B�V���{���̓��C�u�����ɂ���̂ł�
���A�����N�Ɏ��s���܂��B
40) �����āI���S�҂Ȃ̂ł����A "libc.so.4: incompat. minor ver no." �Ƃ������[
�j���O���b�Z�[�W���łč����Ă��܂��B
41) c �̃v���O�����̃R���p�C���̑O�Ƀ`�F�b�N���� `lint' �͂ǂ��ł����H
42) ���̃v���O������ sgtty.h ���K�v�Ȃ̂ł����A�ǂ��ɂ���̂ł��傤���H
43) SIGSEGV �ɂ��R�A�t�@�C����~�߂��葖�点���肷��ɂ͂ǂ�����悢�̂�
���傤���H
44) "can't load dynamic linker `/lib/ld.so'" �̃��b�Z�[�W�̈Ӗ��͉��ł����H
45) -O2 �� -O6 �̃I�v�V�����̈Ⴂ�͉��ł����H
46) �o���s���̃o�C�i�����g���C�̖ؔn�̂悤�ȃE�B���X�Ɋ������Ă��邩�ǂ���
�`�F�b�N�����@�́H
47) C ���C�u�����̃\�[�X�͂ǂ��ɂ���܂����H�܂����r���h�����@�́H
48) FD_* �̒�`�͂ǂ��ɂ���܂����H
49) -g �I�v�V�����t�Ń����N������A__fpu_control �� ___setfpucw ������`���ƌ�
���Ă��܂����̂ł����B
50) �킽���̃��C�u������A�v���P�[�V������ۉ�����c�[���͂ǂ��Ŏ�ɓ���܂�
���H
51) `mkimage' �Ƃ��� DLL �c�[���� libgcc �̂Ȃ��Ɍ�����܂���B�����Ă�����
���B
52) "__NEEDS_SHRLIB_libc_4 multiply defined" �̃��b�Z�[�W��o�Ȃ��悤�ɂ���ɂ�
�ǂ���������̂ł��傤���H
53) QMAGIC �Ƃ����͈̂�ʓI�ɂ͂ǂ�������̂ł����H
54) �ǂ̂悤�ɂ���AQMAGIC �̎��s�t�@�C����C�u������쐬�ł��܂����H
55) "warning using incompatable library version xxx" �̃��b�Z�[�W��o�Ȃ��悤��
���邱�Ƃ͂ł��܂����H
-------------------------------------------------------------------------------
0) ���� FAQ �̍ŐV�o�[�W�����͂ǂ��Ŏ�ɓ�����܂����H
��: �ŐV�ł� comp.os.linux.announce �ɒ��I�Ƀ|�X�g����Ă���A��v�� Linux
�T�C�g�ɔz�t����Ă��܂��B�Ⴆ�A
sunsite.unc.edu:/pub/Linux/docs/faqs
���̑��� GCC, C, C++, g++, Objective-C �� FAQ �͑���
rtfm.mit.edu:pub/usenet/news.answers
�ɂ���ł��傤�B
-------------------------------------------------------------------------------
1) �����g���Ă��� GCC �̃o�[�W������m��ɂ͂ǂ���������ł����H
��: �ȉ��̃R�}���h��s���Ă��������B
gcc -v
���Ȃ��̎g���Ă��� GCC �̃o�[�W������m�F�ł��܂��B�i���̕��͂�j������
���鎞�_�Ŏ��̃}�V���ŏ�L�̃R�}���h��s����ƁA�ȉ��̂悤�ɕ\�������
���B
Reading specs from /usr/lib/gcc-lib/i386-linux/2.5.7/specs
gcc version 2.5.7
����Ɠ�����̂��A����ȏ�̃o�[�W�����ɃA�b�v�O���[�h���鎖����߂���
���B
P.S ���A�ȉ��̏o�͌��ʂ��Ȃ�A
Reading specs from /usr/lib/gcc-lib/i486-linux/2.5.7/specs
gcc version 2.5.7
486 �p�ɃR���p�C�����ꂽ gcc �𑖂点�邱�Ƃ��ł��܂��B
-------------------------------------------------------------------------------
2) GCC,as,ld,ar, ���̑��̍ŐV�ł̔z�t�͂ǂ��ɂ���܂����H
��: GCC �z�t�̌����̏ꏊ�́Atsx-11.mit.edu �� /pub/linux/packages/GCC �ł��B
���̃~���[�T�C�g�ł��l�ł��B���ׂĂ� GCC �̌����̍ŐV�o�[�W�����́A
�����Ō������܂��B
�i���̕��͂�j�����Ă��鎞�_�̍ŐV�� GCC �́A�o�[�W���� 2.5.7 �ł���A�ȉ�
�̏ꏊ�Ŏ�ɓ���܂����B
tsx-11.mit.edu:/pub/linux/packages/GCC/gcc-2.5.7-p1.tar.gz
�������Ȃ���A����� GNU foundation �ɂ�� GCC �̗��p�ł���ŐV�o�[�W������
���Ƃ�Ӗ����Ă���̂ł͂���܂���B�ŐV�� * �z�t * �o�[�W�����ł��B
Linux GCC �̃����e��Ă���l�X�́A���Ȃ��̂��߂ɂ��Ȃ����g�����p�ł���
�ŐV�o�[�W������R���p�C�����₷���悤�ɍ��Ă��܂��BGCC �\�[�X�ƂƂ��
�z�u����X�N���v�g�����Ȃ��̂��߂ɗp�ӂ���Ă��܂��B
���A���Ȃ���������R���p�C���������Ȃ�A�ŐV�̃C���N���[�h�i�w�b�_�j�t�@
�C�����K�v�ɂȂ�ł��傤�B�i���̕��͂�j�����Ă��鎞�_�̍ŐV�̃C���N���[�h
�i�t�@�C���j�́A�ȉ�������ł��܂��B
tsx-11.mit.edu:/pub/linux/packages/GCC/inc-4.5.8.tar.gz
-------------------------------------------------------------------------------
3) libc.so,libw.so �̋��L���C�u�����̍ŐV�ł͂ǂ��Ō����邱�Ƃ��ł��܂����H
��: ��� (2) ��Ă��������Bimage*/tar.z �t�@�C�����K�v�ł��B486 ���߂̃C��
�[�W�́A/pub/linux/packages/GCC/486 �Ō������܂��B
-------------------------------------------------------------------------------
4) Linux �ő��ɂ͂ǂ̂悤�ȋ��L���C�u�������g���܂����H
��: Ok!�����ɁA�����R���p�C���������X�g������܂��B�����̒lj��^�ύX��
��ڂɂ݂Ă��������B
�ȉ��ɏq�ׂ�t�@�C���́A�e���C�u�������ŋߓ����Ă���i�܂��͓����Ă����
���ꂽ�j�t�@�C���ł��B
P.S. �ȉ��̃��C�u��������m���Ȃ�̂ɂ��邽�߂ɁA���C�u��������e����
�l�X�A�܂����C�u�������g�� tools-x.y.tar.z �p�b�P�[�W�ɓ����Ă���
doc/table_description �t�@�C����Q�Ƃ��܂��B
����炪�ǂ��Ŏ�ɓ��邩�͎��� (5) ��Q�Ƃ��Ă��������B
���ꂪ�ALinux �p�� DLL ���C�u�������o�^����Ă����ʓI�ȃt�@�C���ꗗ�ł��B
======================================================================
libc.so tsx-11.mit.edu:/pub/linux/packages/GCC/image-4.5.8.tar.gz
libm.so ��L�� tar.gz �t�@�C���Ɋ܂܂�Ă��܂��B
libX11.so tsx-11.mit.edu:pub/linux/packages/X11/XFree86-2.0/xf86-lib-2.0
.tar.gz
libXt.so ��L�� tar.gz �t�@�C���Ɋ܂܂�Ă��܂��B
libXaw.so ��L�� tar.gz �t�@�C���Ɋ܂܂�Ă��܂��B
librl.so sunsite.unc.edu:/pub/Linux/libs/librl-1.1.tar.z
libgr.so sunsite.unc.edu:/pub/Linux/libs/libgr-1.2.tar.z
libf2c.so sunsite.unc.edu:/pub/Linux/development/fortran/libf2c-0.9.tar.z
libF77.so ��L�� libf2c.so �����Ɏg���Ă��������B
libI77.so ��L�� libf2c.so �����Ɏg���Ă��������B
libXpm.so sunsite.unc.edu:/pub/Linux/libs/libXpm32g.tar.z
libnsl.so ftp.lysator.liu.se:/pub/NYS/nys-0.xx.tar.gz
libolgx.so sunsite.unc.edu:/pub/Linux/libs/xview3L5.tar.gz
libxview.so ��L�� tar.gz �t�@�C���Ɋ܂܂�Ă��܂��B
libsspkg.so ��L�� tar.gz �t�@�C���Ɋ܂܂�Ă��܂��B
libUIT.so ��L�� tar.gz �t�@�C���Ɋ܂܂�Ă��܂��B
libPEX.so tsx-11.mit.edu:pub/linux/packages/X11/XFree86-1.3/xf86-pex-2.0
.tar.gz
libtcl.so sunsite.unc.edu:/pub/Linux/development/tcl/*
libtk.so tcl/tk �̂Ȃ��̂��낢��� tar.gz �t�@�C���Ɋ܂܂�Ă�
�܂��B
libWc.so �s���ł��B
libXp.so �s���ł��B
libIV.so nic.funet.fi:/pub/OS/Linux/images/Slackware/iv1/iv*.tgz
libUnidraw.so ��L�� .tgz �t�@�C���Ɋ܂܂�Ă��܂��B
libXm.so Motif ���C�u�����̓t���[�\�t�g�ł͂���܂���B���L�̃m�[�g��Q��
�����������B
libsrgp.so sunsite.unc.edu:/pub/Linux/X11/devel/suit.tpz
libsuit.so ��L�� tpz �t�@�C���Ɋ܂܂�Ă��܂��B�i�z�z���Ă��Ȃ��ƕ�
����Ă��܂��j
libOI.so tsx-11.mit.edu:/pub/linux/packages/OI/oi40.tar
libOIrg.so ��L�� tar �t�@�C���Ɋ܂܂�Ă��܂��B
libld.so tsx-11.mit.edu:/pub/linux/packages/GCC/ldso-1.4.tar.z
�ilibc 4.4.4 �ȏオ�K�v�ł��j
libarma.so ftp.atnf.csiro.au:/pub/karma
libkarmaX11.so ��L�� site ����������B
libkarmaXt.so ��L�� site ����������B
libkarmagraphics.so ��L�� site ����������B
libkarmawidgets.so ��L�� site ����������B
libkarmaxview.so ��L�� site ����������B
libwxwin.so sunsite.unc.edu:/pub/Linux/X11/devel/wxWin_linux.tgz
libandrew.so sunsite.unc.edu:/pub/Linux/X11/andrew/andrew.apps.tar.gz
libUil.so ���ƃ��C�u�����ł��B
libBLT.so sunsite.unc.edu:/pub/Linux/devel/tcl/blt1.0-bin.tar.z
libvga.so sunsite.unc.edu:/pub/Linux/libs/svgalib097.tgz
libitcl.so sunsite.unc.edu:/pub/Linux/devel/tcl/itcl1.3-bin.tar.z
------------
�m�[�g 1:-
3D ���ʁilibXaw3d-0.6�j�� Xaw �� DLL ���C�u�����̈ꕔ�� Xaw �N���C�A���g��
�� Mac(TM) ���C�N�̃X�N���[���o�[�́A���̂��̈ȉ��œ���ł��܂��B
sunsite.unc.edu:/pub/Linux/libs/libXaw3d-3.0-B.tar.z
��
sunsite.unc.edu:/pub/Linux/libs/libXaw.Scrollbar.taz
�m�[�g 2:-
motif �p�̃��C�u�����́A�����Ȃ�������܂���!!
�ڂ����͈ȉ��̈��p��ǂ�ł��������B
------
Metro Link �Ђ́A199 �h���� Linux �p�� OSF/Motif 1.2.2 �̊��S�ȃ����^�C����
�J���V�X�e������܂��B
�K�v�Ȃ��:
Linux 0.99pl4 �ȏ� (���݂� 0.99pl12 �� OK)
XFree86 1.2 �ȏ� (1.3 �� OK)
libc 4.3.3 �ȏ� (libc 4.4 �� OK)
����܂�ł��邩:
�����^�C��:
1) Motif �E�B���h�E�}�l�[�W�� (mwm)
2) ���L motif ���C�u���� (libXm.so.1.2.2)
3) OSF �� net ����� Motif �̃f��
�J���c�[��:
1) ���L + �ÓI Motif ���C�u����
2) �ÓI Mrm �� Uil ���C�u����
3) UIL �R���p�C��
4) Motif �w�b�_���C�u����
5) Motif �t�@���N�V�����R�[���̃}�j���A��
6) Imakefile �T�|�[�g
7) OSF/Motif �̃f���̃\�[�X
�����āAO'Reilly & Associates, Inc �ɂ��o�ł���Ă��� X-window books ����
���Ȃ����I���B
Linux �p OSF/Motif 1.2.2 �́AMetro Link �Ђ֘A�����邱�ƂŒ����ł��܂��B
�d�b�ԍ��� (305) 970-7353�AFAX �ԍ��� (305) 970-7351�A
�d�q���[����
[email protected] �ł��B
==============================================================================
Metro Link Incorporated. 2213 W. McNab Rd. Pompano Beach, Florida 33069
X11.5 and OSF/Motif for QNX, SVR3, SVR4.[012], SCO, Linux, UnixWare, LynxOS,
AT&T, Venix, ISC, Solaris, Pyramid, SunOS
Voice: +1.305.970.7353 Fax: +1.305.970.7351 Email:
[email protected]
WATCH your: Word Action Thought Character Heart
==============================================================================
-------------------------------------------------------------------------------
5) Linux �p�̋��L DLL ���C�u��������ɂ͂ǂ�����悢�̂ł����H
��: tsx-11.mit.edu ����A�ȉ��̃t�@�C�����ɓ���ăC���X�g�[�����Ă��������B
/pub/linux/packages/GCC/src/tools-2.10.tar.z
�O��I�� doc �T�u�f�B���N�g���� README.tr �t�@�C����ǂ�ł��������B
��������̓w�͂ɂ�肾������L DLL ���邱�Ƃ��ł���悤�ɓǂ݂₷���A
�o���邩����̂��Ƃ��ڂ��Ă���܂��B
���A���Ȃ��� README.ps �����t�̐V���� README.tr ����A���ꂢ��
�|�X�g�X�N���v�g�o�[�W�������~�����Ȃ�A README.tr ����Ȃ����Ȃ����
�Ȃ�Ȃ��ł��傤�B�������Agroff ��w�K���x�C���X�g�[�����Ȃ���Ȃ�܂�
��Bdoc �T�u�f�B���N�g���ŁA�R�}���h `make README.ps' ��s���邾���ŏ\
���ł��B
** �m�[�g: �o�[�W�������ς��Ă��邩����܂���B
-------------------------------------------------------------------------------
6) ���ȃo�C�i����s�����̂ɁC"PLT__oct__FUii" ���b�Z�[�W����̂͂Ȃ�
�ł����H
��: �����炭�A���Ȃ��������Ă��� libc.so �̃o�[�W�������Â��A���^�܂��́A
�����o�[�W������ `ld' ���g���ăv���O������R���p�C����������ł���
���B
����@�́Atsx-11.mit.edu �� /pub/linux/package/GCC/binutils.tar.z �̒�
����V�o�[�W�����̃o�C�i�����[�e�B���e�B���ɓ���邱�Ƃł��B
-------------------------------------------------------------------------------
7) �v���b�g�z�[�� XXX ��� Linux �̃R�[�h��͂������N���X�R���p�C������ɂ͂�
������悢�̂ł��傤���H
��: gcc �̃\�[�X�R�[�h����Ă���Ɖ��肵�܂��B����́AGCC �� INSTALL �t�@
�C���̏��ŗ���ł��܂��B
�v���b�g�z�[�� XXX �� `configure --target=i386-linux-linux --host=XXX'
�Ƃ��邱�Ƃɂ��� `make' ��܂����A�����𑱂��܂��B
Linux �̃C���N���[�h�t�@�C����J�[�l���̃C���N���[�h�t�@�C����
tsx-11.mit.edu �ɂ��� /pub/linux/packages/GCC/src �̃\�[�X����N���X�R���p
�C����N���X�����J���邱�Ƃ��K�v�Ȃ��ƂɋC�Â��ł��傤�B
linux �}�V���̃R�[�h���邽�߂� Sparc (Sun) �p�̃N���X�R���p�C���̍쐬��
������܂��B�ȒP�ȕ��@�ł��B���łɎg���Ă��� linux �}�V����g���Ă��� HLU
�ɂ��ăR���p�C�����ꂽlinux ���C�u������g�p����ȒP�ȕ��@�ł��B
���́w���͂ȁx�A�h�o�C�X�́A�������̃R���p�C���Ŏg�p���� GNU �� make
(gmake) ���ɓ���邱�Ƃł��B�i�o�C�i�����[�e�B���e�B�� gas �� Sun ��
make ���l�� Makefiles.linux ����Ǝ��s����ł��傤)
7.1) ���ł� Sun ��̕W���C���X�g�[���p�X�Ƃ��� /usr/local/bin �ɓ��� gcc
�o�[�W���� 2.4.5 ������Ɖ��肵�܂��B���Ȃ킿�A�R���p�C����
/usr/local/lib/gcc-lib �ɂ���܂��B
�ŏ��́A �ȉ��̂悤�� linux ���L�̃f�B���N�g������܂��B
�i���ԃf�B���N�g������K�v�����邩����܂���j
% mkdir -p /usr/local/lib/gcc-lib/i386-linux-linux/bin
% mkdir -p /usr/local/lib/gcc-lib/i386-linux-linux/2.4.5/include
% mkdir /usr/local/lib/gcc-lib/i386-linux-linux/include
7.2) ���ϐ���ݒ肷�鎖�ɂ��A�����p�X����ł����܂Ȃ��Ă悭�Ȃ�܂��B
.login �� .cshrc �t�@�C���ɃZ�b�g���Ă��������B���l�� DLL �Ȃǂ̃N���X�R
���p�C���̂��߂� l-ar, l-ranlib ��g���K�v������ł��傤�B
����������A�ȉ��̂��Ƃ�s���Ă��������B
csh �̏ꍇ:
% setenv LBINS /usr/local/lib/gcc-lib/i386-linux-linux/bin/
sh �̏ꍇ:
% LBINS=/usr/local/lib/gcc-lib/i386-linux-linux/bin/
% export LBINS
linux, asm, gnu, sys �₻�̑��̃T�u�f�B���N�g���̓�e�Ƃ��āw���ׂẮx
linux ���L�̃w�b�_�t�@�C�����Ă��������B${LBINS}../include �z����
�w�m�F�x���Ă��������B�w�b�_�t�@�C���݂̍菈�͎���(2)�A(23)��Ă�����
���B���Ȃ��́A���ꂼ��ɂ��ĐV�����J�[�l������[�X���Ȃ���Ȃ�܂�
��B
���� linux �}�V������Asun �֓]���̘b��܂��傤�B
% rcp -r linux_machine:/usr/include ${LBINS}../
���A�C���N���[�h�t�@�C���ƃJ�[�l���̃\�[�X���ɓ����K�v������܂��B
���� (2) ��Ă��������B�����W�J����K�v����܂��B
���������āAlimits.h, varargs.h, stdargs.h �̂悤�� gnu �̓��ʂȃt�@�C��
���K�v�ɂȂ�ł��傤�B�܂��A���� linux �}�V���̘b��܂��傤�B
% rcp -r \
linux_machine:/usr/lib/gcc-lib/i386-linux/2.4.5/include \
${LBINS}../2.4.5
i386 �܂��� 2.4.5 �͂��Ȃ��̃}�V���� gcc �̃o�[�W�����ɂ��ς��Ȃ����
�Ȃ�Ȃ�������܂���B
7.3) ���āA���Ȃ��̓N���X�A�Z���u���ƃ����J��W�J���A�R���p�C�����Ȃ����
��܂���B
�ȉ��̃t�@�C�����ɓ���Ă��������B
tsx-11.mit.edu:/pub/linux/packages/GCC/src/binutils-1.9l.3.tar.gz
tsx-11.mit.edu:/pub/linux/packages/GCC/src/gas-1.38.1l.2.tar.gz
�����āA�ǂ����œW�J���Ă��������B
7.3.1) �o�C�i�����[�e�B���e�B�̃f�B���N�g�� binutils-1.9l.3 �̒�:
Makefile.linux ��G�f�B�b�g���āAbindir ��`�̍s��������Ă��������B
bindir=${LBINS}
�����āA���Ȃ��̃}�V���i���̏ꍇ�� "sun4"�j�̓K���ȃu���b�N�����т܂��B
HOST_ROOT=${LBINS}..
0.99pl12 (���Ԃ�ȏ�̃��x���ł�) �̂��߂�a.out.h �� page.h ��f�B
���N�g���ɃR�s�[���AMISCFLAGS �̒��Ɋ܂܂Ȃ���Ȃ�Ȃ��ł��傤�B
�����āA�J�����g�o�C�i�����[�e�B���e�B�̃f�B���N�g���ňȉ��̂��Ƃ�s
�����������B
% mkdir linux
% cp ${LBINS}../include/linux/a.out.h linux
% cp ${LBINS}../include/linux/page.h linux
�����āAMakefile.linux ��ҏW���A�K���� MISCFLAGS �̃��C���� -I ���
���������B
�����āA���s���Ă��������B
% make -f Makefile.linux archpfx= install
linux �� ar, ranlib ���[�e�B���e�B�Ƃ��āAl-ar, l-ranlib ��s���邱��
���ł���悤�ɂ��邽�߂ɁA�ȉ��̂��Ƃ�s���Ă��������B(���͌l��
${HOME}/bin �f�B���N�g���� l-blah ��u���Ă��܂�)
% sh -c 'for i in ${LBINS}*; do \
ln -s $i ${HOME}/bin/l-`basename $i`; done'
7.3.2) ******* gas-1.38.1l.1 �̎� *******
�A�Z���u���f�B���N�g�� gas-1.38.1l.1 �̒�:
makefile.linux ��ҏW���A�ȉ���ǂ�œK���ȍs��ύX���Ă��������B
LINUX_INCDIR=
HEADERS=-DA_OUT_H=\"${LBINS}../include/linux/a.out.h\"
�����āA�ł�����ł��������B(��������̃��[�j���O���ł�ł��傤)
% make -f makefile.linux
�N���X�A�Z���u���̃o�C�i���t�@�C����蓮�ŃR�s�[���Ă��������B
% cp a386 ${LBINS}as
******* gas-2.2 �i����ȏ�j�̎� *******
�A�Z���u���f�B���N�g���ňȉ��̂��Ƃ�s���Ă��������B
% ./configure --host=sun4 --target=i386-linux-linux
% make CC=gcc CFLAGS=-O2 LDFLAGS=-s
7.3.3) �Ō�Ɉȉ��̓�̃����N��s���Ă��������B
% ln -s ${LBINS}as ${LBINS}../2.4.5/as
% ln -s ${LBINS}ld ${LBINS}../2.4.5/ld
7.4) ���āA���Ȃ��� Sun ��� GCC �\�[�X�f�B���N�g���ɓW�J����ɂ͈ȉ��̂���
��s�����������B
% ./configure --host=sun4 --target=i386-linux-linux
% make CC=/usr/local/bin/gcc CFLAGS="-O2 -s" \
tooldir=${LBINS}.. LANGUAGES="c c++ objc"
libgcc.a ���C�u������쐬���ɃG���[�ŏI�����邩����܂��A�������Ă�
�������B�]�݂͑��ɃN���X�R���p�C���̃o�C�i���ł�����B
7.5) �ȏ�̍�Ƃ��I����A�K�ȏꏊ�ɃR�s�[���܂��B
% cp cc1 cc1plus cpp ${LBINS}../2.4.5
�O�u���Ƃ��ăR���p�C���� bin �f�B���N�g���ɃR�s�[���A�ȒP�ɂǂ����i���Ƃ�
�� ~/bin�j�Ƀ����N���܂��B
% cp xgcc ${LBINS}gcc
% ln -s ${LBINS}gcc ${HOME}/bin/gcc-linux
7.6) ���Ȃ��� linux �}�V�����烉�C�u��������o���܂��B
% rcp linux_machine:/usr/lib/lib\*a ${LBINS}../2.4.5
% rcp linux_machine:/usr/X386/lib\*a ${LBINS}../2.4.5
% rcp linux_machine:/usr/lib/crt0.o ${LBINS}../2.4.5
7.7) �����������Ƃł��B�Ȃɂ��R���p�C�����Ă݂Ă��������B�p�b�P�[�W�ɏ���
��Ă��邽������̂悢���Ƃ�����̂ŁA�ȉ��̂��Ƃ���Ă݂܂��傤�B
�i���Ȃ��� ${HOME}/bin �ɃZ�b�g����p�X�����Ɖ��肵�܂��B�j
% make CC="gcc-linux -O6 -s" RANLIB=l-ranlib AR="l-ar"
7.8) ���A���L DLL �ŃN���X�R���p�C��������Ȃ�A�ȉ��̂�̂��ɓ�
��Ȃ���Ȃ�܂���B
tsx-11.mit.edu:/pub/linux/packages/GCC/src/tools-2.10.tar.z
�N���X�o�[�W�����̃R���p�C���̂��߂ɗp�ӂ��ꂽ tools �T�u�f�B���N�g��
�� Makefile.cross ��g���Ă��������B Makefile.cross �̍ŏ��̕�����ȉ�
�̂悤�ɕύX���Ă��������B
CROSSBINDIR=${LBINS}
CROSSINCDIR=${LBINS}../include
�Ō�� BINDIR �̒�`��ύX���܂��B�킽���� ${LBINS}../dll/bin ��Z�b�g
���Ă��܂��B����́A���Ȃ��̂��߂� ${LBINS}../dll/jump ��쐬���邱�Ƃ�
�Ȃ�ł��傤�B�����āA
% make -f Makefile.cross install
��s���ׂ��ł��B
-------------------------------------------------------------------------------
8) �ǂ̂悤�ȃV���{���� Linux �� GCC �ɂ��Ď����I�ɒ�`����܂����H
��: �V���{���́A`linux', `__unix__', '__i386__', `__linux__', `__unix',
`__i386', `__linux' �ł��B
���������X�g�̓R���p�C�����ɂ� gcc �� -v �t���O��g�����Ƃŕ\������܂��B
P.s �R���p�C����ʂ��ăv���O������ "linux" �͎����I�ɒ�`����܂��BPOSIX ��
�������Ă��܁w����x�B__linux__ �̑���Ƃ��ăI�y���[�e�B���O�V�X�e�� �̂�
���ȓ��ʂȃR���p�C���v���O�������g���ׂ���̂ł��B__linux__ �� POSIX �ɏ���
���Ă��܁w���x�B
���̂��Ƃ́A���Ȃ��� linux �̓��ʂȃR�[�h�̉����ނ��Ƃ��ł��邱�Ƃ�Ӗ�
���Ă��܂��B�i�Ⴆ�j
#ifdef __linux__
...[linux specific code here]...
#endif /* ifdef linux */
Makefile �ɒ�`�����ʂȉ�������Ȃ��ėǂ��̂ł��B
���Ȃ��́A�t�@�C���ɂ��Ȃ����g�̒�`����邾���ł��B
/usr/lib/gcc-lib/i386-linux/2.5.7/specs
-------------------------------------------------------------------------------
9) �R���p�C������ �isigvec�Ƃ��������ʂȃV�O�i���Ȃǂ́j BSD �̎d�l��Ȃ����ɂ�
�ǂ���������ł����H
��: �v���O������ -I/usr/include/bsd ����ăR���p�C�����A-lbsd ����ă���
�N���܂��B���������āAmakefile �� CFLAGS �s�� -I/usr/include/bsd ��A
LDFLAGS �s�� -lbsd ��lj����܂��B���A���Ȃ��� BSD �`���̃V�O�i���̓�����
�K�v�Ȃ�A-D__USE_BSD_SIGNAL ��lj�����K�v�́w����܂���x�B����́A
-I/usr/include/bsd ��g�����Ƃ��ɁA�����I�ɒlj�����܂��B
-------------------------------------------------------------------------------
10) SIGBUS, SIGEMT, SIGIOT, SIGTRAP, SIGSYS �Ȃǂ͂ǂ��ɂ���܂����H
��: Linux �� 100% POSIX �R���p�`�ł���A������ POSIX �̃V�O�i���ł͂����
����B�ȒP�ȕ��@�Ƃ��ẮA�����̃V�O�i���� SIGUNUSED �ōĒ�`���邱�Ƃ�
���B /usr/include/bsd/signal.h �̒�`��Ă��������B
�������Ȃ���A�����̃V�O�i�����Ȃ����Ƃ��APOSIX �Ɂw�]���x���Ƃ�o���Ă�
���ׂ��ł��B������ SIGUNUSED �� #define �������ɁA�V�����v���O������
�ȉ��̂悤�ɂ��ׂ��ł��B
#ifdef SIGSYS
....[non-posix sigsys code here]....
#endif
SIGSYS�iSIGBUS ���l�Ɂj�̎g�p���K�v�ȃR�[�h�ƂȂ�܂��B
ISO/IEC 9945-1:1990 (IEEE Std 1003.1-1990) �� B.3.3.1.1 ����̔����ł��B
�uSIGBUS, SIGEMT, SIGIOT, SIGTRAP �� SIGSYS �́APOSIX.1 ����O����܂����B
�Ȃ��Ȃ�A�����̓����͎�i�ɗ����Ă��܂����A�\���ɕ��ނ��邱�Ƃ��ł��܂�
��ł����B��i���v�����邱�Ƃɂ�肱���̃V�O�i���͒��ꂽ�������
���A���������Ƃ��͎��̎����ؖ����A�Ɋւ��Ă̐�����L�q��
�Ȃ���Ȃ�܂���B
-------------------------------------------------------------------------------
11) libhard �� libsoft �Ƃ͉��ł����H
��: �����́A���l�G�~�����[�V�������[�`���̃��C�u�����ł��B���i�Ⴆ�� 387
�̂悤�ȁj���l���Z��s���n�[�h�E�F�A����Ă���Ȃ� hard ��A���̂悤�ȃn
�[�h���Ȃ��Ȃ琔�l���Z�̃G�~�����[�V������s�� soft ��I��܂��B
���A���ݔz�z���Ă��� Linux ��g�p���Ă���Ȃ�A�����̃��C�u�����͕K�v
�w����܂���x�B���l���Z�G�~�����[�V�����̓J�[�l�����x���ŃT�|�[�g���Ă���
���B�i���Ȃ킿�A���A�g�������Ȃ�A`make config' �ɂ��J�[�l�������ꂽ
������g���܂��B�j
����������� 387 �͎d����邱�Ƃ��ł��܂��B���A/libm.so.4.x.y ����
/lib/libm.so.4 ����N���Ă���Ȃ�A���S�ɏ������Ƃ��ł��邩����܂���B
-------------------------------------------------------------------------------
12) ���b�Z�[�W "can't load library: /lib/libxxx.so, Incompatible version" �̈�
���͉��ł����H
��: ���L���C�u���������W���Ă����ƁA�v���O�������s���ɃN���b�V������N����
�悤�ɂȂ�����A�������ł����肵�܂��B�����͂����肳���邽�߂ɁA�o�[�W��
���ɂ��ĕ��ނ���K�v������܂��B�Ⴆ�A�t�@���N�V�����R�[�����܂�����
�ς��A�܂��͖����Ȃ��Ă��܂����ꍇ�Ȃǂ������ł��B
���C�u�����̌Ăі� - libc.so.4.3.3
T T T T
/ / | \
/ / | \
/ / | \
���C�u������ / | \
/ | \
���W���[�o�[�W�����i���o�[ | �p�b�`���x��
|
�}�C�i�[�o�[�W�����i���o�[
���W���[�o�[�W�����i���o�[�̈Ⴂ�́A�v���O��������N�������C�u�����Ɠ���
���� �J�����g���C�u�����̃��W���[�o�[�W�����Ƃ��������ꍇ�ɂ̂݃v���O����
�̎��s���ۏ���邱�Ƃł��B
����́Alibc.so.4.3.3 �ŃR���p�C�����ꂽ�v���O�����́Alibc.so.5.1.2 �Ƃ���
�����ŐV�� DLL ���C�u������ł͎��s�s�\�ł���Ƃ������Ƃ�Ӗ����Ă��܂��B
�܂�v���O������ libc.so.4 ��K�v�Ƃ��Ă��āAlibc.so.5.1.2 ���� libc.so.4
�ւ̃����N���Ă����Ȃ��Ƃ������Ƃł��B
�}�C�i�[�o�[�W�����i���o�[�̒�`�Ƃ��ẮA���L DLL ���C�u�����Ń}�C�i�[�`�F
���W��V�lj��������������A�ߋ��̌݊������ۂ���Ă��邱�Ƃ���Ă��܂��B
�}�C�i�[�o�[�W�����i���o�[���I���W�i���̃R���p�C��������菬�������C�u��
����g�p���悤�Ƃ���ƁA�i���o�[�ύX�ɂ�郏�[�j���O����������ł��傤���A
��ʂ̎��s�ł͑S���������č\���܂���B
�p�b�`���x���i���o�[�̓i���o�����O�̐\�����킹����Ȃ̂Ŗ������Ă��܂��܂�
��B����͂���̓��C�u�����R�[�h�̌�A�⏬���ȃo�O�t�B�b�N�X�Ŏg�p�����
���B
���ɖ߂�ƁA���Ȃ����o�C�i���̎��s����Ƃ��ɁA���������C�u�������C���X
�g�[������Ă��Ȃ����Ƃ�Ӗ����܂��B��P����ɂ́A����� (3),(19) ��
���āA�ŐV�̃��C�u�������ɓ���邱�Ƃł��B
-------------------------------------------------------------------------------
13) �킽���̃��C�u�������ƂĂ�傫���̂͂Ȃ��ł����H�܂��A�ǂ�����Ώ������Ȃ�
�܂����H
��: ��菬�������C�u�������~�����Ȃ�A���ׂ����Ƃ͂�������܂��B
* �R�[�h�̍œK�� - �R���p�C������ -O2 �t���O��g���܂��B
* �����o�C�i���̃X�g���b�v�� - ld �̕����� -s �t���O��g���܂��B
* �����o�C�i���̍쐬 - ld �̕����� -N �t���O��g���܂��B
������g�ݍ��킹�Ďg���܂��B���A�o�C�i����X�g���b�v���������Ȃ�A��y
�� ld �� "-s" �I�v�V������g�����\�[�X�ɂ��Ȃ��ł��������B"strip" �R�}���h
��g���Ă��������B"man strip" ��s���ďڂ�������Ă��������B
`ld' �����J�̓f�t�H���g�Ńv���O������L���C�u�����Ƀ����N���܂��B������
�Ȃ���A�֘A�̂���ꕔ����邱�Ƃ��ł��Ȃ��i���Ȃ킿 .sa �t�@�C���j�A
�w�܂��́x���[�U�ɂƂ��ĕs���t�@�C���ł������ꍇ�́i���Ȃ킿 .a �t�@�C��
�Ƃ��āj�ÓI�����N��݂悤�Ƃ��܂��B���Ȃ��̃o�C�i������ϑ傫�����R�͂�
�ꂩ����܂���B�T�[�`�p�X�� /usr/lib �� /lib �� / �̃��C�u�������� .sa
�� .a ��T���܂��B���̂��Ƃ́Astub �� DLL ���L���C�u��������̃f�B���N
�g�����ɓ_�݂����邱�ƂɂȂ邩����܂���B���_��I�ɍs���ɂ� (20) ��
���������B
��������� FSF �̍�҂�����܂��A�����̃v���O�������f�o�b�O����AMakefile
���� -g �I�v�V��������苎���邱�Ƃ��X���]��ł���̂�m���Ă��܂��B
���ʂƂ��āA�X�^�e�B�b�N�Ƀ����N���ꂽ�v���O�����̂Ȃ��ɂ͔���ȃf�o�b�O�V
���{�����c���Ă��܂��B�����Ȃ����\�t�g��R���p�C�����A���̓����ɖ�������
����Ȃ�A-g �� CFLAGS ���^�܂��� LDFLAGS ����폜���邽�߂ɁA���Ӑ[��
Makefile ��`�F�b�N�����������B
-------------------------------------------------------------------------------
14) -N �t���O��g���Ɖ����N����܂����H�܂��A�ǂ��g�������̂ł����H
��: ���z�L���ɂ��X���b�v���\�ɂȂ�܂��B-N �I�v�V������g���ƁA�y�[�W���E
�����ς��ɋl�ߍ��܂ꂽ�X�̃Z�O�����g�̈����A����炪�A�����Ȃ����s
�t�@�C�����g�p�ł���悤�ɂȂ�܂��BLinux �́A�ȒP�Ɂw�Y��邱�Ɓx�ɂ���
���蓖�Ă���i�������肵���j�y�[�W�X���b�v��p�ł��܂��B�Ȃ��Ȃ�A����
��t�@�C�����璼�ڂɍă��[�h�ł��邩��ł��B
�����A�X���b�v�p�[�e�B�V������X���b�v�t�@�C���ɂ�镨���I�ȃX���b�v�@�\��
�����Ă��܂��B����ɂ́A�����̎��Ԃƃf�B�X�N�X�y�[�X���K�v�ł��B
�X���b�v�́A�ʏ�͏����ȃv���O�����ɂ͊W����܂���B-N ��g���ăR���p�C��
����Ă����Ƃ��Ă�ł��B�傫�ȃv���O�����i�Ⴆ�Agcc �܂��� emacs�j�A�܂�
�͕����̒i�K����Ă���悤�ȃv���O�����ishell �� xterm �̂悤�Ȃ�́j�́A
-N �Ȃ��ŃR���p�C�����ׂ��ł��B���̌��ʁA�R�[�h�y�[�W�͂��ꂢ�Ɋ��蓖�Ă��
�܂��B���A�������s���Łi�v���O������j���点���Ȃ�A�J�[�l���͉��z�L��
�œ����Ă���g���Ă��Ȃ��R�[�h�y�[�W�i���Ƃōă��[�h�ł���j��폜���͂�
�߂܂��B�A�����Ȃ����s�`���ł͕s�\�ł��B
���������āA�����Ȃ��̃v���O�������d�v�Ȃ�������̃�������g�p����悤��
��A-N ��g�p���Ȃ����A�J�[�l���̃������Ǘ���W���邵���Ȃ��ł��傤�B
�n�b�L���Ƃ��� `one-off' �v���O�����́A���̃t���O��g�p���ăR���p�C�������
���܂��B���Ȃ킿�A�����ԃ�������ɂƂǂ܂�Ȃ���̂ł��B�Ⴆ�Ahostname,
fsck, mkfs, w �Ȃǂł��Bdaemon �ł́A���� -N �t���O����Ďg�p���w�Ȃ��x
�ʼn������B��������ɏ풓���邱�Ƃ͈Ӗ����Ȃ�����ł��B
-------------------------------------------------------------------------------
15) �v���O�����̃f�o�b�L���O���͂ǂ�����Ύ���̂ł����H
��: �v���O������R���p�C�����邱�Ƃ��K�v�ł��B�i���Ȃ킿�A���ׂẴI�u�W�F�N
�g�j�����āA-g �t���O��t���ă����N���܂��B����������Ɓw���ׂẴv���O����
�x�� -g ��t���ăR���p�C�����܂��B
�f�o�b�L���O�c�[���ł܂��������̃t�@�C���� -g �œ����Ă��܂��B�i�f�o�b�L
���O�c�[���̓o�O���炯�ł��j-g �t���O��g�����d�v�Ȃ��Ƃ́A
-fomit-frame-pointer ��g�p���w�Ȃ��x���Ƃł���A����ɂ��Agdb �����܂���
��܂��B
�s�K�ɂ��āA���L���C�u�����͐��\�̂��߂ɕ��ʁA -fomit-frame-pointer ��t��
�ăR���p�C������Ă��܂��B
���̑���ɁA�f�o�b�L���O���� -g �܂��́A -static �t���O����J�ɕt����
��A�L���C�u�����Ƀ����N���邱�Ƃ͌����Ȃ��Ƃł��B���A�������Ȃ�����
��A�Z�O�����g�ᔽ�����������Ƃ��Ɂi�������A�N�Z�X�́j�o�߂�ǂ邱�Ƃ���
���܂���B
�����N����
Can't find libg.a
�̃��b�Z�[�W���o�͂��ꂽ�Ȃ�A
tsx-11.mit.edu : /pub/linux/packages/GCC/extra*.tar.z
�t�@�C�����ɓ����K�v������܂��B
�������Ȃ���A���Ȃ��̃}�V���ŒP����
% cd /usr/lib; ln -s libc.a libg.a
��s����Ώ\���ȃf�o�b�L���O������邩����܂���B
�t���@�\�� libg.a (~2Mb) ��g�p���Ȃ���A�f�o�b�O�ł��Ȃ����C�u�����R�[
������ł��傤�B
���A���\�̃f�o�b�O������̂Ȃ�A�o�C�i����X�g���b�v�����Ă��w�Ȃ��x
���Ƃ�m�F���Ă��������B
-------------------------------------------------------------------------------
16) �ǂ̃f�o�b�K�� Linux �Ŏg���܂����H
��: ���`�����A��Ԃ����f�o�b�K�� `gdb' �ł��B���C�ɓ���̃T�C�g�ŒT���Ă�
�������B�Ⴆ�A
prep.ai.mit.edu:/pub/gnu/gdb-4.11.tar.gz
�ɂ���܂��B
Linux �p�̂�
sunsite.unc.edu:/pub/Linux/devel/gdb-4.11-bin.tar.gz
�ɂ���܂��B
X �f�o�b�K�� gdb ��Ƃ��Ă���̂Łi���Ȃ킿�A�ŏ��� gdb ��C���X�g�[����
��K�v������܂����j�g�p�ł��܂��B�\�[�X��
ftp.x.org:/contrib/xxgdb-1.06.tar.Z
�ɂ���܂��B
�܂��AUPS �f�o�b�K�� Rick Sladkey ���ɂ�����܂����B����� xxgdb �Ɠ�
�l�� X �z���œ��삵�܂����A���Ă��܂���B�P�Ȃ� X �̃e�L�X�g�x�[�X�̃f�o�b
�K�ł͂���܂���B�ǂ�������������Ă���A���A�f�o�b�O�ޗ��Ɏ��Ԃ�
��₷�Ȃ�A�ޗ���`�F�b�N�A�E�g���ׂ��ł��傤�BUPS �� Linux �p�̃p�b�`��
sunsite.unc.edu:/pub/Linux/devel/ups-2.45.2-linux-0.1.diff.gz
�Ō������܂��B�܂��A�߂��� X �A�[�J�C�u�܂���
ftp.x.org:/contrib/ups-2.45.2.tar.Z
����A�t���\�[�X���ɓ����K�v������ł��傤�B
-------------------------------------------------------------------------------
17) daemon �v���O������f�o�b�O�����@�́H
��: �ȒP�ɏ����ƁA�f�o�b�N����O�� fork ���Ă��Ȃ��Adaemon �v���O��������
����Ȃ���Ȃ�܂���B
�������Ȃ���A`gdb' �f�o�b�K��g�p����Ƃ������Ƃ́Afork�w��x�� daemon ��
attach �ł���Ƃ������Ƃł��Bgdb �Ƀf�o�b�O�������v���Z�X�� id ��`���邱
�ƂŃf�o�b�O�ł��܂��B
����ɂ́A`attach' �R�}���h��g���Ă��������BGDB �̊��S�ȃI�����C���w���v��
�����ł͖�ɗ����܂��B
�܂��A�\�[�X��肵�ĂȂ��Ă�A�o�C�i�����X�g���b�v����Ă���Ȃ�A
`strace' �v���O�������ɓ���Adaemon �̃v���Z�X id �Ɋ����āA�o�͂����
�邱�Ƃ��ł��܂��B
���A�T��������m���Ă����Ȃ�A�L���ȕ��@�ł��B
-------------------------------------------------------------------------------
18) profiling �Ƃ͉��ł����H�܂��A�v���O������ profile ����ɂ͂ǂ̂悤�ɂ����
�悢�̂ł��傤���H
��: profiling �Ƃ́A�ǂ��łǂ̓���Ŏ��Ԃ���₳�ꂽ���A��������́i�V�X�e��
�R�[�������̊��ɂ��č��ꂽ���A�܂��A�S���s���Ԃׂ��@�ł��B
�R�[�h�̍œK����ǂ��ŕs�K�v�Ɏ��Ԃ��Q��Ă��邩���ɂ͗ǂ����@�ł��B
�S�ẴI�u�W�F�N�g�ƃ����N�� profiling ����ɂ́A-p �t���O�ŃR���p�C������
����Ȃ�܂���B���� (15) �� profiling �ɕK�v�ȃ��C�u�����̓���ꏊ���
���������B
���ۂ� graph profile ���ɓ����ɂ́A`grof' �Ƃ����v���O�������K�v�ł��B
����́A�o�C�i�����[�e�B���e�B�p�b�P�[�W�ɓ����Ă��܂��B
���肩�����܂��ƁA���Ȃ��̍s������ Linux �A�[�J�C�u�T�C�g�Ō����Ă�����
���B�Ⴆ�A
tsx-11.mit.edu:/pub/linux/packages/GCC/binutils.tar.z
-------------------------------------------------------------------------------
19) ���A�o�C�i�����ÓI�ɂ܂��͋��L���C�u�����Ƀ����N����Ă����ꍇ�ɁA�����
���ׂ��@�͂���܂����H
��: �͂�����܂��B
`ldd' �Ƃ������[�e�B���e�B��g�p���Ă��������B���̃��[�e�B���e�B�́A�v����
��郉�C�u�����̏���o�͂��܂��B���A`ldd' ��s�����Ƃ��ɉ��̏���o
�͂���Ȃ������ꍇ�́A���ׂ��v���O�����͐ÓI�Ƀ����N����Ă��܂��B
�� (1): �R�}���h�i���� linux �V�X�e���j
% ldd /bin/init
�o�͂��Ȃ����Ƃ͐ÓI�Ƀ����N���ꂽ�Ƃ������Ƃł��B�ÓI�Ƀ����N�����悢
�̂ł��B:-) �i�m�[�g: libc.so.4.5.10 �ȏ�Ń����N���ꂽ�v���O�����ł�
"statically linked" �̃��b�Z�[�W���o�͂����ł��傤�B�j
�� (2): �R�}���h�i���� linux �V�X�e���j
% ldd /usr/bin/gs
���Ȃ킿�Aghostscript �C���^�v���^�͈ȉ��̏���o�͂��܂��B
libm.so.4 => /lib/libm.so.4.4 (4.0)
libX11.so.3 => /lib/libX11.so.3.0 (DLL Jump 3.0pl0)
libc.so.4 => /lib/libc.so.4.4 (DLL Jump 4.3)
���̂��Ƃ́A`gs' �v���O���������I�Ƀ����N����A3 �̋��L���C�u������v����
�Ă��邱�Ƃ���Ă��܂��B���ʓ�̐��͂�����̃��C�u�����ilibX11�j���
�Ă���A�v���O�������R���p�C�����ꂽ�Ƃ��Ɏ����Ă������C�u�����̃J�����g�o
�[�W�����ł��B`gs' ���A���l���Z���C�u���� (libm), �ŃR���p�C�����ꂽ�Ƃ�
�́A�o�[�W���� 4.0 �ŁADLL ���C�u�����łȂ������̂ł����A�K�^�ɂ� 4.4 ��
DLL ���C�u�����ł��点�邱�Ƃ��ł������ł��B���l�ɁA���̃J�����g�� C ���C
�u���� (libc)�́A`gs' ��R���p�C�������Ƃ����o�[�W�������オ���Ă��܂��B
�� ���Ȃ��� `ldd' �̓o�[�W�����ɂ��ẮA�Ȃɂ��ʂ̌��ʂ�o�͂�邩��
��܂���B
-------------------------------------------------------------------------------
20) Linux �� LD_LIBRARY_PATH ��T�|�[�g���Ă��܂����H
��: �͂��Ƃ������ł��B�o�C�i���̃R���p�C�����Ɏg�p���� libc �̃o�[�W������
�ˑ����܂��B
* ���� LD_LIBRARY_PATH �́A4.3.3 �ȏ�̃��C�u�����ŃT�|�[�g����Ă��܂��B
���Ȃ킿�A���Ȃ��� stub (/usr/lib/libc.sa) �� __load.o ���[�`���́A�����
�����邽�߂ɕύX����Ă��܂��Blibc �̃o�[�W���� 4.4.4 �����ŃR���p�C������
���o�C�i���ł́ALinux �̓��I�����J�́Alibc.sa �� stub �Ɍ���A�����o�C�i
�����ׂĂɃ����N����� __load.o �`���̐ÓI�I�u�W�F�N�g�ł��B���̂��Ƃ́A
__load.o �̕ύX���A�ЂƂЂƂA���ׂẴo�C�i���Ɍ���A���y����̂ɑ��
�Ȏ��Ԃ�v���邱�Ƃ�Ӗ����Ă��܂��B
�����āA����̉Ƃ��ẮA4.3.3 (libc.so.4.3.4 �ȏ�) �ȏ�̃��C�u������g
�p���ăR���p�C�������Ȃ�A�C�G�X�ł��B�������A���ʂƂ��ẮA�w���ׂẮx
�o�C�i����R���p�C������A�C�����K�v�͂Ȃ��ł��傤�B
* libc �̃o�[�W������ 4.4.4 �ȏ�ł́A���I�ɍ��ꂽ���I���[�_�͕K�v�ȃ��C
�u��������A�ʒu�Â���Ɏ������g��[�f�B���O�A�A�����[�f�B���O���܂��B
���̌��ʁA�o�C�i���͏������A���I���[�_�A�����J�ɂ��ύX�� libc ����u����
��܂��Bld.so �p�b�P�[�W�ɂ��� ld.so �� ldconfig �̃}�j���A����Ă�����
���B�܂��C���� (4) �� libld.so �̍��ڂ�Q�Ƃ��Ă��������B
Linux �� LD_LIBRARY_PATH �͈��S�ŊȌ��ł���ASun-OS �ōs�������@��s����
�����@�ł̓����͗\���ł��܂���B
�ŏ��� Sun-OS �� LD_LIBRARY_PATH �̎g�p���@�Ƃ̈Ⴂ�́A�R���p�C���i�����N�j
��Ԓ��̎��ł���ASun-OS �� LD_LIBRARY_PATH �́A���낢��ȃ��C�u�������
���邽�߂ɉ�߂���A���ꂽ�א�̃o�C�i���Ɂw�L�^�x����܂��B�䂦�ɁA��
���^�C���o�C�i���ɂ����ẮALD_LIBRARY_PATH �ׂ�O�Ɂi�܂��
LD_LIBRARY_PATH ���߂����A�L�^���ꂽ�p�X�̍ŏ��̋��L���C�u���������
���ƂŁj���L���C�u�����̂ǂ���T������m���Ă��܂��B���������āA�I�[�o�[�w
�b�h��点�܂��B
�� Linux �́A���̏���L�^���Ă��܂��A���̑���Ƃ��ă����N�ɕK�v��
���C�u�����̃����^�C���i���s�t�@�C���j��T���܂��B
Linux �Ńo�C�i����s����Ƃ��A���ALD_LIBRARY_PATH ���w�Ȃ���x�A����
�^�C���Ƀ��C�u��������N���邽�߂ɍŏ� /usr/lib ���� /lib ������ / ��T��
�܂��B����́A"���҃T�[�`�p�X" �Ƃ��ďƉ��܂��B
�� / �́A�{���̓T�[�`�p�X�ł͂���܂��A�ߋ��̌݊����̂��߂Ɏc���Ă���A
���[�U�̂Ȃ��ɂ� "/lib/libfoo.so" �Ƃ��������O��g���Ă��� ���L DLL ��
���� uselib() �͈ȉ��̂悤�ɓ��삵�܂��B
(1) uselib("/usr/lib//lib/libfoo.so.x") ---- �͂���
(2) uselib("/lib//lib/libfoo.so.x") ---- �܂��͂���
(3) uselib("//lib/libfoo.so.x") ---- ������ !!
���̂��߁A���ۂ� DLL �� / �ɒu���Ȃ��ł��������B
���āA�� LD_LIBRARY_PATH ��w�����āx���āA���[�g�iuid �� 0�j�ł���Ȃ�
�ALD_LIBRARY_PATH �́A���҃T�[�`�p�X�ɂ��������ĒT���܂��B
���A����ȊO�ɕ��ʂ̃��[�U�iuid != 0�j�ł���A���s����o�C�i���� suid
���s�`���̏ꍇ�Alibc.so.x �ƕK�v�ȃ��C�u�����͋����I�Ɋ��Ҍ����p�X�̂ǂ�
�����烍�[�h����܂��BLD_LIBRARY_PATH �͖�������܂��B�i�����S�����Z�b�g��
�ԁj����ɂ��A���g�̃G�~�����[�V�������畁�ʂ̃��[�U�ł͒�~���܂��B
�Ⴆ�Asetuid() �́A�����ō��� libc ���C�u�������Ă�܂��B
�Ō�ɁA���A�m�[�}�����[�U�Ŏ��s����o�C�i�����w���ʂ́x�o�C�i���Ȃ�A
LD_LIBRARY_PATH �͍ŏ��ɕK�v�Ƃ��郉�C�u������T���܂��B
���A���[�U�� LD_LIBRARY_PATH �Ń��C�u������������Ȃ���A�����p�X�Ƃ���
�w���҃T�[�`�p�X�x��Z�b�g���Č����𑱂��܂��B���̂��ƂŁA�����A���ʂ�
LD_LIBRARY_PATH ��Z�b�g����������A�K�ȃ��[�U�[�̃o�C�i����s����
���B
-------------------------------------------------------------------------------
21) ���̃v���O�����ł� /lib/cpp ���K�v�ł��B�ǂ������ɓ��ꂽ��悢�̂ł��傤
���H
��: cpp �� /usr/lib/gcc-lib/i386-linux/2.5.7 �̒��ɂ���܂��B
(gcc �̃o�[�W�����i���o�[�͕ς��Ă��邩����܂���)
�ȉ��̃R�}���h��s���Ă��������B
% cd /lib; ln -sf /usr/lib/gcc-lib/i486-linux/2.5.7/cpp
** 2.5.7 �͂��Ȃ��̎g���Ă��� GCC �̂�̂ɂ��Ă��������B
** 386 �̃R���p�C����g���Ă���Ȃ�Ai486 �� i386 �ɂ��Ă��������B
���̕��@�ŁA���悢����@�͂�����ł��B
% cat > /lib/cpp
#!/bin/sh
cc -E "$@"
Ctrl-D[EOF]
���̕��@�́A�V���� gcc �ɂ��āA�Â� gcc ��폜�����Ƃ��� /lib/cpp ��������
���Ȃ邩����܂���B
-------------------------------------------------------------------------------
22) <varargs.h> �͂ǂ��ł����H
��: varargs.h �́A/usr/lib/gcc-lib/i386-linux/2.5.7/include �̒��̑��̃V�X�e
���ɑ������t�@�C���ɂ���܂��B
<varargs.h> �́AK&R �ɂ����̂ł��Bgcc �̃f�t�H���g�� ANSI �ł��B
<stdarg.h> �����Ɏg���ׂ��ł��傤�B
** �o�[�W�����i���o 2.5.7 �́A���Ȃ��̎g���Ă��� GCC �̃o�[�W�����ɒu������
�ĉ������B
** ���A486 �p�̃R���p�C����g���Ă���Ȃ�Ai386 �� i486 �ɕύX���Ă�����
���B
-------------------------------------------------------------------------------
23) ���̃v���O�����ŁA<linux/foo.h> ��C���N���[�h�������̂ł����A�����邱��
���ł��܂���B�ǂ��ɂ���̂ł��傤���H
��: �������̃C���N���[�h�t�@�C���́A�J�[�l���̃o�[�W�����Ɉˑ����Ă���A
���̂悤�ɁA�J�[�l���̃����[�X���ƂɂȂ��Ă��܂��B�ŐV�̃J�[�l���̃\�[�X��
��ɓ����K�v������A�W�J��A�����N��K�v������܂��B
���A/usr/src ������A����ɃJ�[�l���̃\�[�X������Ȃ�A�ȉ��̃R�}���h��
���s�����������B
% cd /usr/include
% ln -sf /usr/src/linux/include/linux
% ln -sf /usr/src/linux/include/asm
MCC �����[�X�͂����̃����N��n�߂��玝���Ă��܂���B���������āA�V����
�J�[�l���̃\�[�X�c���[��C���X�g�[�����Ă�Â��C���N���[�h�t�@�C����g�p��
�邱�Ƃ��ł��܂��B���ӂ��Ă��������B
-------------------------------------------------------------------------------
24) foo() ���̓��C�u�����ɓ����Ă���̂ł��傤���H
��: �������C�u�����ɓ����Ă��邩�ǂ������ׂ��@�́A�ȉ��Ɏ����Ƃ���ł��B
flock() �����T�|�[�g����Ă��邩�ǂ����ׂ�͈̂ȉ��̂悤�ɂ��܂��B
% nm /usr/lib/libc.a | grep flock
���̂悤�ȏo�͌��ʂ̏ꍇ�́A
00000000 T flock
flock() ���� libc.a/libc.sa. �ɒ�`����Ă��܂��B
���̂悤�ȏo�͌��ʂ̏ꍇ�́A
00000000 U flock
flock() ���Q�Ƃł��邱�Ƃ���܂��B`U' �́Aflock ���ǂ����Œ�`����Ă�
��A�����͂��邱�Ƃŏꏊ���킩�郉�C�u������C���N���[�h����K�v����
�邱�Ƃ�Ӗ����Ă��܂��B
-------------------------------------------------------------------------------
25) �v���O���� XXX �� Linux �Ɏ����Ă���ɂ͂ǂ���������ł����H
��: ���ꂩ���ALinux �Ƀv���O������w�����Ă����x���ɖ߂��Ă��������B
���ALinux �Ɏ����Ă�����̂�����Ȃ�������A�Ӗ�������܂���B
�{�C�ōl����ƁA��ʓI�ɏ��ύX�Ƃ��ẮALinux �p�� 100% POSIX �ɂ���������
�ҏW�����\�[�X���K�v�ł��B
���̃v���O�����R�[�h���ύX����Ă����悤�ɁA�����I�ɂ� `make' �����Ŏ��s
�`�������悤�ɂ��ׂ��ł��B
���Ƃ�悭�N������̈�Ƃ��āA��ʊ��� Linux �̃w�b�_�t�@�C���Ƀ}�N
���Œ�`����Ă��āA�v���v���Z�b�T���R�[�h�̂Ȃ��̗ގ������v���g�^�C�v��`
�̉�͂�ۂ��邱�Ƃ��������܂��B�ގ�������̂Ƃ��ẮAatoi() �� atol()
���������܂��B
���̑��̈�ʓI�Ȗ��Ƃ��ẮA"sprintf(string, fmt, ...)" �ł́A�قƂ�ǂ�
unix �̏ꍇ�́A�z��̃|�C���^��Ԃ��܂��BLinux �ł́A�z��̒��̕��������
���܂��B
���̑��̖��́ALinux �� GCC �́AANSI �R���p�C���ł���Ƃ��������ɂ�蔭��
�������ł��B�d�v�ȂقƂ�ǂ̕ύX�́A�v���v���Z�b�T�̂��߂ł��B�ȉ��̃I�v�V
������lj������������B
-traditional
�́A�����ЂƂ́i���ɓI�ȁj����@�ł��B
+----------------------------------------+
| Brouno Haible ������̉��l����R�����g |
+----------------------------------------+
����́AUnix �̃\�t�g�E�F�A�� Linux �Ɏ����Ă���Ƃ��ɔ�������ł��낤���
��L�q���Ă݂���̂ł��B
C �ŏ����ꂽ�\�t�g�E�F�A�ł���Ɖ��肵�܂��B
Linux (����������ƁALinux �̃V�X�e���R�[���� C ���C�u������) �́A�ł���
������APOSIX �݊��ɋ߂Â��Ă��܂��B���ꂩ��Z�����X�g����Ă݂܂��B
��� 1: select() �� timeout �p�����^
------------------------------------
����:
���͂� CPU ��H���Ԃ��|�[�����O���悤�ȃv���O����
���:
select() �̓V�X�e���R�[���ł��Btimeout �p�����^�́A�ÓT�I�ɃV�X�e���ł́A
���[�h�I�����[�Ƃ��Ďg���܂��B�������̃}�j���A���ɂ́A3 �N�ȏ�O����
�L�q����Ă��܂��B
select() �́A���܂����ꏊ�Ŏ��Ԃ��ύX�����Ƃ����悻�I���W�i����
timeout ����c�������Ԃ�Ԃ��܂��B���̂��Ƃ́A�����A�⑫�����ł���
���B���������āAselect �R�[����timeout �|�C���^���ύX����Ȃ��Ǝv����
�Ƃ͋�Ȃ��Ƃł��B
���A�܂��߂ɂ��̃A�h�o�C�X����Ȃ�������A�^�C���A�E�g�̍\���̂̏�
���߂��� 0 �̃^�C���A�E�g����������ł��傤�B����͓����^�C���A�E�g�\���̂�
�g���� select() �̏����I�ȃR�[���������ɖ߂��Ă��邱�Ƃ�Ӗ����܂��B
�p��:
�^�C���A�E�g�̒l�� select() ��ĂԂƂ��͂���\���̂ɓ���Ă��������B
�ȉ��̂悤�ɃR�[�h��ύX���Ă��������B
struct timeval timeout;
timeout.tv_sec = 1; timeout.tv_usec = 0;
while (some_condition)
{ select(n,readfds,writefds,exceptfds,&timeout); }
����
struct timeval timeout;
while (some_condition)
{ timeout.tv_sec = 1; timeout.tv_usec = 0;
select(n,readfds,writefds,exceptfds,&timeout);
}
��
���Q: �V�X�e���R�[���ɂ�銄�荞��
------------------------------------
����:
�R���g���[�� Z �Ńv���O������~�߁A���̌ナ�X�^�[�g�����A�܂��́A���̑���
�ŁA�R���g���[�� C ���荞�݂̃V�O�i�������������Ƃ��A�R�v���Z�X���I��
���܂��B"interrupted system call" �� "write: unknown error" �̂悤�ȃ��b�Z
�[�W���Ԃ��Ă��܂��B
���:
���s���̃V�X�e���R�[���v���O�����̓V�O�i���v���Z�X�ɂ�芄�荞�݂�������A
-1 ��Ԃ��Aerrno = EINTR ��Z�b�g���܂��B���̃v���O�����ُ͈�I�������悤��
�����Ă��܂��܂��B
���:
���Ȃ��̃v���O�����́isignal(), sigaction(), sigvec() ��g���j�C���X�g�[��
���ꂽ�V�O�i���n���h������Ă��܂��B�V�O�i������������ƃV�O�i���n���h��
���Ăяo����܂��B���̌��ۂ́A�ق��� UNIX �V�X�e���̏ꍇ�A���A�܂���
2, 3 �̒x���V�X�e���R�[���ŋN����܂��B
�V�O�i�����x���f�o�C�X�i�t�@�C���łȂ��A�^�[�~�i���̂悤�ȁj�� read(2),
write(2), open(2), ioctl(2) �̃V�X�e���R�[���̎��s���� pause(2) �̃V�X
�e���R�[���� wait(2) �̃V�X�e���R�[���̎��s���Ɉ����N�����ꂽ�Ƃ��A
�O���Ē�~�����܂��̓]���r�v���Z�X�����łɑ��݂��Ă��邽�߂����ɂ�
�߂��Ă��܂���B�V�O�i����L���b�`����������s����A�V�X�e���R�[��
���荞�݂� errno �� EINTR ��Z�b�g����v���Z�X��Ăяo���A-1 ��Ԃ���
���B
Linux �iPOSIX ��܂݂܂��j�ł́A�V�O�i����`�F�b�N���A�V�O�i���n���h����
���s���܂��B
* ���ł��������i�^�C�}�̍��݁j,
* �w�ǂ́x�V�X�e���R�[������̃��^�[���ł��邩
* �ȉ��Ɏ����V�X�e���R�[���̎��s���ł�������
select(),
pause(),
connect(), accept(),
�^�[�~�i���A�\�P�b�g�A�p�C�v�A /proc �t�@�C���ւ� read(),
�^�[�~�i���A�\�P�b�g�A�p�C�v�A���C���v�����^�ւ� write(),
FIFO, PTY, �܂��̓V���A����ւ� open(),
�^�[�~�i���ւ� ioctl(),
F_SETLKW �R�}���h�ł� fcntl(),
wait4(),
syslog(),
���̑� TCP or NFS ����
�w���̑��̃I�y���[�e�B���O�V�X�e���ł́A�ȉ��̃V�X�e���R�[����܂߂�
����Ȃ�Ȃ�������܂���B
creat(), close(), getmsg(), putmsg(), msgrcv(), msgsnd(), recv(),
send(), wait(), waitpid(), wait3(), tcdrain(), sigpause(),
semop() �x
�Ō�� 2 �̃P�[�X�ƃV�O�i���n���h���̕��A�l�̉���ɂ��V�X�e���R�[����
-1 ��Ԃ��Aerrno �� EINTR ��Z�b�g���܂��B
���ASA_RESTART �t���O�����������V�O�i���Ƃ��ăZ�b�g����Ă�A�قƂ�ǂ̏�
���A�V�X�e���R�[���̓V�O�i���n���h�����s��A�����I�Ƀ��X�^�[�g�i���s�j���A
���Ȃ��̃v���O������ EINTR �͌����܂���B
���Ȃ��͂Ȃ����ꂪ�f�t�H���g�̓���łȂ��̂����₷�邩����܂���B���R��
EINTR ��Ԃ��A�Z�b�g���邱�Ƃ���苭�́i�v���O�����ɑ��������ׂ�
�V�O�i���ɒ����ɔ�������@���^���܂��j�ł��邩��ł��B
�V�X�e���R�[���͂�͂�w�_�[�N�g���l���x�ł͂Ȃ��̂ł��B
�m�[�g : �������̃o�[�W������ BSD Unix �̃f�t�H���g����̓V�X�e���R�[����
���X�^�[�g���邱�Ƃł��B���荞�܂ꂽ�V�X�e���R�[������o�����߂ɂ́A
SV_INTERRUPT �܂��� SA_INTERRRUP �t���O��g�p���Ȃ���Ȃ�܂���B
�C�����@�Ƃ��Ă� 2 �̕��@��I��ł��܂��B
�C�� 1:
���Ȃ��̃C���X�g�[�������S�ẴV�O�i���n���h���ɑ��A�V�O�A�N�V�����t���O
�Ƃ��āASA_RESTRT ��lj����܂��B�Ⴆ�A
signal (sig_nr, my_signal_handler);
��
signal (sig_nr, my_signal_handler);
{ struct sigaction sa;
sigaction (sig_nr, (struct sigaction *)0, &sa);
#ifdef SA_RESTART
sa.sa_flags |= SA_RESTART;
#endif
#ifdef SA_INTERRUPT
sa.sa_flags &= ~ SA_INTERRUPT;
#endif
sigaction (sig_nr, &sa, (struct sigaction *)0);
}
�ɕύX���܂��B
�m�[�g : �����قƂ�ǂ̃V�X�e���R�[���ɓK�p����ꍇ�Aread(), write(),
ioctl(), select(), pause(), connect() ��� EINTR ��`�F�b�N���Ȃ���Ȃ��
����B
������ read() �� ioctl() �� 2 �̗����Ă����܂��B
read() ��g������I���W�i��������
int result;
while (len > 0)
{ result = read(fd,buffer,len);
if (result < 0) break;
buffer += result; len -= result;
}
��
int result;
while (len > 0)
{ result = read(fd,buffer,len);
if (result < 0) { if (errno != EINTR) break; }
else { buffer += result; len -= result; }
}
�ɕύX���܂��B
�܂��Aioctl() ��g���Ă���I���W�i���̕�����
int result;
result = ioctl(fd,cmd,addr);
��
int result;
do { result = ioctl(fd,cmd,addr); }
while ((result == -1) && (errno == EINTR));
�ɕύX���܂��B
-------------------------------------------------------------------------------
26) gcc/library �� foo �Ńo�O������̂ł����A�ǂ�����悢�̂ł��傤���H
��: �{���ł����H
�����ƁA���A�v���O�������ُ�I���A�܂��͊��Ғʂ�ɓ����Ȃ��Ȃ�A�܂�
�ŏ��Ɏ����Ă݂āA���s�ɃR�[�h��i�荞��ŁA�m�F���Ă��������B
�ÓI�o�[�W�����Ƌ��L�o�[�W�����ǂ���ł������܂����H
�i���Ȃ킿�ADLL ���C�u�����ƐÓI���C�u�����ǂ��炩�̖��ł��傤���H�j
gcc �̑���ʂ̃}�V����g�����Ƃ͂ł��܂����H����������ƁALinux/GCC �݂̂�
�Ȃ��AGCC �S�̖̂��ł����H�������Ȃ�ȉ��Ɏ��� USENET �̃j���[�X�O���[
�v�ɓ��e�����ق����悢������܂���B
gnu.gcc.bug, gnu.gcc.help, gnu.g++.help,
comp.lang.c, or comp.lang.c++.
���͐��l���Z�G�~�����[�^�ł����H�������Ȃ�A���l���Z�G�~�����[�^�̍��
�ł��� Bill Metzenthen �� (
[email protected]) �Ƀ��[������
�ق����悢������܂���B
���ǁ
[email protected] ���A�� (
[email protected])
���AHLU �ɂł��[�����ׂ��ł��傤�B
-------------------------------------------------------------------------------
27) ���L���C�u�����������@�\������ÓI���C�u�������傫���Ȃ�͉̂��̂ł�
���H
��: ���L���C�u�����̓f�B�X�N�X�y�[�X�s�����ł�g���ł���悤�ɂ��邽�߂�
`holes' �Ƃ����`�ŃX�y�[�X��\�Ă��܂��B`makehole' ��Ăяo���A�܂���
�g�p����ȒP�� `cp' �͂��̗\��̈��g�p���܂��B
���Ȃ��́A���C�u������쐬��ɏ��������邱�Ƃ��ł��܂��B
-------------------------------------------------------------------------------
28) /usr/lib ��ɂ��� .sa �t�@�C���Ƃ͉��ł����H
��: .sa �t�@�C���Ƃ́A���L���C�u�������甲���o����̂ł���A�����ȃ��C�u����
������o�������ׂẴO���[�o���ϐ���܂݁A�����^�C������N���邽�߂�
�K�v�Ȋ���|�C���g���Ă��܂��B���� (13) ��Q�Ƃ��Ă��������B
-------------------------------------------------------------------------------
29) Linux �p�̃I�u�W�F�N�g�w���� C �͂ǂ��Ŏ�ɓ�����܂����H
��: �I�u�W�F�N�g�w���� C �� gcc �� 2.4.0 �ȏ�̃o�[�W�����Ń����[�X����Ă���
���B����́A�ډ��e�X�g���ł��B�ŐV�o�[�W�����͈ȉ��̂�̂ł��B
tsx-11.mit.edu:/pub/linux/packages/GCC/gcc-2.5.7-p2.tar.gz
-------------------------------------------------------------------------------
30) "Internal compiler error: cc1 got fatal signal 11" �̃��b�Z�[�W�̈Ӗ��͉���
�����H
��: GCC �͂��Ԃ�v���O�����𑖂点�邽�߂��×~�Ƀ��������A������ RAM
�̗̈��H���Ԃ����̂ł��傤�B���ʁA�v���I�V�O�i���� 11 �́ARAM ��
�p���e�B�G���[��n�[�h��Q��Ӗ����Ă��܂��B����n�[�h�f�B�X�N�̕s�ǃu���b
�N�̂����� cc1 �œ�����ԂɊׂ������Ƃ�����܂��B����́A�`�b�v�̃I�[�o�[
�q�[�g�i�t�����`�t���C�ł͂���܂���j�ɂ��G���[�Ƃ��ĕ���Ă��܂��B
�܂��A��@�\�� IDE �R���g���[���ƃh���C�u�� 8MHz AT �o�X�N���b�N�ȏ�ő���
���悤�Ƃ���Ɣ������܂��B����̓X���b�v�X�y�[�X�̕ϑ�����N�������Ƃɂ�
�蓯���G���[�ƂȂ�܂��B
��ʂɁA�V�O�i�� 11 (�Z�O�����e�[�V�����E�o�C�I���[�V�����j�́A�v���Z�X�X
�y�[�X�s����ԂłŃ�������A�N�Z�X�ɍs�����A�܂��̓��[�h�I�����[�̈�ɏ���
���݂ɍs�������Ƃ�Ӗ����Ă��܂��B���܂ɁA���̃V�O�i���̓\�t�g�̃o�O�Ŕ���
���邱�Ƃ���A�n�[�h��Q�Ƃ͌���܂���B�i�܂��̓V�X�e���̌J��Ԃ�
�n���O�B�Ȃ��Ȃ�J�[�l���œ��������N���邩��ł��B�jgcc 2.3.3 �ł́A���l��
����������́h�V�O�i�� 11�h��Č����܂����B
�܂��A`ld' �� `as' �̍Œ��̏�Q�Ƃ��Ă������܂��B���Acc1, cpp, �܂���
ld �ɖ�肪����Ƃ���Agcc �� -v �t���O��t���ă��R���p�C�����Ċm�F����
�݂Ă��������B
-------------------------------------------------------------------------------
31) libc.lite �Ƃ͉��ł����H
��: libc.lite �Ƃ́A�t���b�s�[�^�p�łقƂ�ǂ̔ڂ���(��:�Ӗ��s��) UNIX ��
�^�X�N�����邽�߂� libc ���C�u�����̌y���o�[�W�����ł�����ɂ́Acurses,
dbm, termcap �Ȃǂ̃R�[�h��܂�ł��܂���B���A���Ȃ��� /lib/libc.so.4 ��
�y�����C�u��������N���Ă���Ȃ�A�t���o�[�W�����ɒu�������鎖�����
���܂��B�ǂ��Ŏ�ɓ�����邩�͎��� (3) ��Q�Ƃ��Ă��������B
-------------------------------------------------------------------------------
32) Linux �̃��C�u������ SHADOW Password ��T�|�[�g���Ă܂����H
�܂��A�I���E�I�t�͂ǂ�����悢�̂ł����H
��: �T�|�[�g���Ă��܂��B
�K���ȏꏊ�� SHADOW_PWD ���`���ăR���p�C�����Ashadow ���C�u��������N
����K�v������܂��Bshadow ���C�u�����͈ȉ��œ���ł��܂��B
sunsite.unc.edu:/pub/Linux/distributions/SLS/a4/shadow.tgz
��̓I�ɂ� Makefile �� CFLAGS �s�� -DSHADOW_PWD �t���O��ALDFLAGS �s��
-lshadow �t���O��lj���������̂ł��B
�\�[�X�r�b�g��ύX���Ȃ���Ȃ�Ȃ�������܂��Ashadow ��T�|�[�g��
�� "cript()" �͊��ł͂Ȃ��A�}�N���Ƃ��Ē���܂��B
����䂦�A���ׂĂ� "extern int crypt()" �ł�܂Â�������܂���B
����́Agetpwent(), setpwent() ���̑��̃��[�`����g�����w���ׂẮx�K�v��
�o�C�i����R���p�C�����邱�ƂȂ��ł́Ashadow password �̃I���E�I�t��s��
���@���w�Ȃ��x���Ƃ�Ӗ����Ă��܂��B
-------------------------------------------------------------------------------
33) math.h ���[�`����������܂���B�v���O������R���p�C�����Ă���̂ł����A
log(), sin() �Ȃǂ�������܂���B���ꂩ�A�����āI
��: ����������g�p�����v���O������R���p�C�����Ă���ꍇ�A�K�ȃ��C�u����
��v���O�����Ɂw�K���x�����N���Ȃ���Ȃ�܂���B���l���Z����g���ɂ�
�����N���� libm.a ��C���N���[�h���Ȃ���Ȃ�Ȃ��Ƃ������Ƃł��B��������
��� LDFLAGS �� -lm ��Acurses ���ł� -lcurses �� dbm ���ł� -ldbm �Ȃ�
�����K�v������܂��B
���ʂ́A�I�u�W�F�N�g�̌�� -lm �t���O��u���܂��B
% gcc -lm -o math_prog math_prog.c
�́A�܂�������Ő��l���Z���͉�͂ł��܂���B�����ł͂Ȃ��A
% gcc -o math_prog math_prog.c -lm
�Ɠ��͂��Ă��������B
-------------------------------------------------------------------------------
34) GCC �̃}�j���A���͂���܂����H������Ȃ�A�ǂ��Ŏ�ɓ�����܂����H
�܂��A�ǂ�����Έ�ł��܂����H
��: �}�j���A���� sunsite �� GCC �f�B���N�g���ɂ���܂��B
sunsite.unc.edu:/pub/Linux/GCC/gcc-man.tar.z
���̃t�@�C���� cccp.1, cpp.1, g++.1, gcc.1 �� man �t�@�C����܂�ł��܂��B
���A���Ȃ�������ꂽ���ׂĂ� GCC �̃}�j���A����K�v�Ƃ��Ă���Ȃ�A
GCC ���u���Ă���ǂ����̃��[�J�� ftp �T�C�g�₻�̑��� FSF �̓s���̂悢�Ƃ�
�납�炷�ׂẴ\�[�X���ɓ���Ȃ���Ȃ�܂���BGCC �̃\�[�X���� TeX ��
�̃}�j���A������K�v������܂��B
���A���Ȃ������C�u�����̃t�@���N�V�����R�[���̃}�j���A����T���Ă����
��Aglibc �̑S�Ẵ\�[�X���K�v�ł��B����́AGCC �̃\�[�X������ ftp �T�C�g
�Ɠ����ꏊ�ɂ���܂��B�ĂсA�}�j���A����쐬���邽�߂� TeX ���K�v�ƂȂ��
���B
���̃}�j���A���Œ��ӂ��ׂ��_�� 900 �y�[�W�̑傫���ł��邱�Ƃł��B
�n�}����Ă����Advi �t�@�C���Ƃ��ăI�����C���ŕۑ����Ă����Ă��������B
�w���x�t�@�C�����痈��ǂ���̃p�b�P�[�W�� Gnu info �� xinfo, emacs ��g
�p���Č��邱�Ƃ��ł��܂��B�w���x�t�@�C���͏��V�X�e���Ɋ�Â����n�C�p�[
�e�L�X�g�`���ł��B
-------------------------------------------------------------------------------
35) "Undefined symbol _bsd_ioctl" �̃��b�Z�[�W���o�܂����B�ǂ���������̂ł�
���H
��: �����N���� /usr/lib/libbsd.a �Ƃ��� bsd �̃��C�u������C���N���[�h���邱
�Ƃ�Y��Ă��܂��B
����@: Makefile �� LDFLAGS �s�� -lbsd �t���O������������B�iLDFLAGS
�s�������ꍇ�͎蓮�ʼn����Ă��������j
-------------------------------------------------------------------------------
36) �o�[�W�����A�b�v����Ƃ��́A/usr/lib/gcc-lib/i[34]86-linux/<old-version>
����Â���̂��菜�����Ƃ͂ł��܂����H
��: �����ƁA���Agcc �̃e�X�g�o�[�W�����łȂ���A�f�B���N�g������Â��o�[
�W�������菜�����Ƃ͑S����肠��܂���B"gcc -V <old-version>" �Ƃ��邱��
�ŌÂ��o�[�W������ GCC �ŃR���p�C�����邱�Ƃ��ł��܂��B
-------------------------------------------------------------------------------
37) �w�����āxlibipc.a �͂ǂ��ł����Hdosemu 0.49 �̂��߂ɕK�v�Ȃ̂ł����B
��: Inter Process Communication (IPC) ���͕W���� libc >= libc.so.4.4.1 ��
����܂��B���A���Ȃ��������Ă��� libc �� libc.so.4.4.1 �ȏゾ�����ꍇ�́A
-lipc �͕K�v����܂���BMakefile ���炻�̍s����Ă��������B���A
libc.so.4.4.1 �����������ꍇ�́A���C�u������o�[�W�����A�b�v���Ă��������B
-------------------------------------------------------------------------------
38) XXX ���R���p�C���ł��܂���B_daemon ������`�ɂȂ�܂��B���ꂩ�����āI�I
��: daemon() �� libbsd.a �ɓ����Ă��܂��B-lbsd �� Makefile �� LDFLAGS �s��
�������������B
-------------------------------------------------------------------------------
39) �w�����āxar �� ���C�u�����ɂ��Ăł��B�V���{���̓��C�u�����ɂ���̂ł�
���A�����N�Ɏ��s���܂��B
��: ������ `ranlib' ���������e�[�u������Ȃ��Ƃ��� `ar'�̃o�O�ł��B
�ȉ��̃R�}���h��ł����߂Γ����悤�ɂȂ�܂��B
% ar -dv libfoo.a __.SYMDEF
% ranlib libfoo.a
-------------------------------------------------------------------------------
40) �����āI ���S�҂Ȃ̂ł����A"libc.so.4: incompat. minor ver no." �Ƃ������[
�j���O���b�Z�[�W���łč����Ă��܂��B
��: ���L���C�u�����̃o�[�W�����A�b�v���K�v�ł��B���� 12 �� 3 �̊T�v��Ă���
�����B
-------------------------------------------------------------------------------
41) c �̃v���O�����̃R���p�C���̑O�Ƀ`�F�b�N���� `lint' �͂ǂ��ł����H
��: `lint' �̂悤�ȃv���O������`�F�b�N����悤�Ȃ�̂͂���܂���B���̑���
�Ƀv���O������`�F�b�N����ɂ� gcc �̉ߓx�̃I�v�V������g���܂��B�}�j���A��
�ɏ����Ă��邢�낢��ȃI�v�V������Ă��������B
�ł��ʓI�Ȃ�͈̂ȉ��̃I�v�V�����ł��B
% gcc -Wall foo.c
���̃I�v�V�����͋N����ł��낤�\�Ȍ���̃��[�j���O��o�͂��܂��B
-------------------------------------------------------------------------------
42) ���̃v���O������ sgtty.h ���K�v�Ȃ̂ł����A�ǂ��ɂ���̂ł��傤���H
��: sgtty.h �� /usr/include/bsd �f�B���N�g���ɓ���܂��B�R���p�C������
Makefile �� CFLAGS �s�Ɉȉ��̍s��lj����Ă��������B
-I/usr/include/bsd
-------------------------------------------------------------------------------
43) SIGSEGV �ɂ��R�A�t�@�C���̍쐬��֎~������A�������肷��ɂ͂ǂ������
�悢�̂ł��傤���H
��: ����͖{���� GCC �̎���ł͂Ȃ��Ashell �̎���Ȃ̂ł����A�Ȃɂ��Ȃ�ł�
���S�ɃR�A�t�@�C������Ȃ�����ɂ�
C-shell `csh' (tcsh) �̏ꍇ
% limit core 0
Bourne shell `sh' (bash) �̏ꍇ
% ulimit -c 0
��s�����������B
�V�O�i�� 11 (SEGV) ��������̂݁A�R�A�t�@�C������悤�ɂ���ɂ�
C-shell `csh' (tcsh) �̏ꍇ
% limit core unlimited
Bourne shell `sh' (bash) �̏ꍇ
% ulimit -c unlimited
��s�����������B
-------------------------------------------------------------------------------
44) "can't load dynamic linker `/lib/ld.so'" �̃��b�Z�[�W�̈Ӗ��͉��ł����H
��: ����́A���I�����J�^���[�_���C���X�g�[������Ă��Ȃ����Ƃ�Ӗ����Ă���
���B���� 4 �� libld.so �̓����@��Q�Ƃ��Ă��������B
-------------------------------------------------------------------------------
45) -O2 �� -O6 �ł̌����̈Ⴂ�͉��ł����H
��: ���݂͂���܂���B���A���Ȃ��� i386/i486 �̃z�X�g / �^�[�Q�b�g�Ƃ���
GCC �̃\�[�X�R�[�h��Ă���Ȃ�A-Ox �� x>2 �̏ꍇ�͓�����̂ł��邱�Ƃ�
�킩��ł��傤�B���ہAMakefile �� x>2 ��g�p���邱�Ƃ͈������Ƃł��B�Ȃ���
��AGCC ������ -O3 �Ƃ������œK���I�v�V������C���e���i�̃`�b�v�j��^�[�Q
�b�g�̗p���邩����Ȃ����߁A���̍œK���ɂ��ďo�͂����R�[�h���j��
�邩����܂���B
-------------------------------------------------------------------------------
46) �o���s���̃o�C�i�����g���C�̖ؔn�̂悤�ȃE�B���X�Ɋ������Ă��邩�ǂ���
�`�F�b�N�����@�́H
��: �ŏ��ɁA���A���Ȃ��̃}�V�����E�B���X�Ɋ������Ă��邩�S�z�Ȃ�A������
�w�Ȃ��x���Ƃł��i���Ȃ��Ƃ� root �ł́j�B�����āA�\�[�X����ă��R���p
�C�����Ă��������B���̕��@�Ƃ��ẮA"string <filename> | less" �Ɠ��͂��邱
�Ƃʼn��炩�̏��ɓ��邩����܂���B���A�������q�ɏo��Ȃ�A
�����s���ȓ�����T�邽�߂� "strace" ��g�����Ƃ��ł��܂��B
-------------------------------------------------------------------------------
47) C ���C�u�����̃\�[�X�͂ǂ��ɂ���܂����H�܂����r���h�����@�́H
��: �ȉ��̃T�C�g�̃��W���[����Q�Ƃ��Ă��������B
tsx-11.mit.edu:/pub/linux/pagkages/GCC/libc-4.5.8.tar.gz
���A���L���C�u�������~�����Ȃ�Adll �c�[���p�b�P�[�W���K�v�ɂȂ�ł���
���B���� (5) �̓���ꏊ��Q�Ƃ��Ă��������B
-------------------------------------------------------------------------------
48) FD_* �̒�`�͂ǂ��ɂ���܂����H
��: <sys/time.h> �Ɋ܂܂�Ă��āA�}�N����lj������ł��傤�B
-------------------------------------------------------------------------------
49) -g �I�v�V�����t�Ń����N������A___fpu_control �� ___setfpucw ������`���ƌ�
���Ă��܂����̂ł����B
/usr/lib/crt0.o Undefined symbol ___fpu_control reference from text segment.
/usr/lib/crt0.o Undefined symbol ___setfpucw reference from text segment.
�Ȃɂ������̂ł��傤���H
��: libc.sa �� crt0.o �� libc.sa �� libc.a ��ŋ߂� linux �� libc �ɃA�b�v�f
�[�g����K�v������܂��B�������A�Â� libg.a �W���c���Ă��܂��܂��B
���A�{���Ƀf�o�b�O���C�u�����ɂ��X�^�e�B�b�N�o�C�i���i-g �̈Ӗ�����j
���K�v�Ȃ�Alibg.a ��肵�ăC���X�g�[�����ׂ��ł��B
����ɂ��Ă͎��� (15) ��Ă��������B
-------------------------------------------------------------------------------
50) �킽���̃��C�u������A�v���P�[�V������ۉ�����c�[���͂ǂ��Ŏ�ɓ���܂�
���H
��: �ȉ��̃t�@�C�����ɓ���Ă��������B
sunsite.unc.edu:/pub/Linux/utils/nls/cat-pack.tar.gz
�����āA�w���ɏ]���Ă��������B
���[�U���������낢��Ȍ���ɂ��J�^���O�͈ȉ��̂Ƃ���Ō������܂��B
sunsite.unc.edu:/pub/Linux/utils/nls/catalogs
�������ׂ��f�B���N�g���ɓ������܂��B
���P: ���ۉ��c�[���Ɗ��̓o�[�W���� 4.4.4�i�Ⴆ�Alibc.so.4.5.x �ȏ�j��
�g�p�\�ł��B
���Q: linux �ɂ�����w���ۉ��x�̏͒x��Ă���Alinux pl14 ��
Latin-1/ISO-8859-1 �̃L�����N�^�[�Z�b�g�����ƃT�|�[�g���ꂽ�悤�ȏ�Ԃ�
���B
-------------------------------------------------------------------------------
51) `mkimage' �Ƃ��� DLL �c�[���� libgcc �̂Ȃ��Ɍ�����܂���B�����Ă�����
���B
��: libc.so.4.5.x �ȏ�ł́Alibgcc �͂��łɋ��L�ł͂���܂���B
���������āAmkimage �� `-lgcc' �̕�����ȉ��̂悤�ɒu�������Ȃ���Ȃ�܂�
��B
`gcc -print-libgcc-file-name`
�Z�������
`gcc --print`
�ł��B�o�b�N�N�H�[�g�͕K�v����܂���B
-------------------------------------------------------------------------------
52) "__NEEDS_SHRLIB_libc_4 multiply defined" �̃��b�Z�[�W��o�Ȃ��悤�ɂ���ɂ�
�ǂ���������̂ł��傤���H
��: libc.sa.4.5.x �ȏ�ł� libgcc �͋��L�ł͂Ȃ��Ȃ��Ă��܂��B���������āA
/usr/lib/libgcc* �t�@�C����ׂč폜���w�Ȃ���x�Ȃ�܂���B
% rm -f /usr/lib/libgcc*
-------------------------------------------------------------------------------
53) QMAGIC �Ƃ����̂́A��ʓI�ɂ͂ǂ�������̂ł����H
��: QMAGIC �̓X�^���_�[�h�� a.out �iZMAGIC �Ƃ������j�̂悤�Ȏ��s�`���̃t�H�[
�}�b�g�ł��B�������A�}�b�s���O����Ȃ��ŏ��̃y�[�W�ɒu����܂��B���̂��Ƃ�
���A0-4096 �͈̔͂Ń}�b�s���O����Ȃ��g���b�v�Ƃ��ĊȒP�Ɂw�܂������x����
���@�Ŏ����ł��܂��B����ɑ��A���Ȃ��̃o�C�i�����ւ̉e���͂قƂ�ǂ����
����B(~1K)
/etc/magic �t�@�C���ɐ������o�^����A���Ȃ��� `file' �R�}���h�� QMAGIC �o
�C�i���Ɠ����ɂ��邱�Ƃ��ł��܂��B�킽���́A�قƂ�ǂ̃`���l���ɓK����
�G���g���[��z�t���Ă��܂��B
-------------------------------------------------------------------------------
54) �ǂ̂悤�ɂ���AQMAGIC �̎��s�t�@�C����C�u������쐬�ł��܂����H
��: QMAGIC �̎��s�t�@�C������ɂ́A�ŐV�� `ld' �̃o�C�i����\�[�X�̃p�b�`��
�K�v�ł��B`binutils-as.tar.gz' �Ƃ����t�@�C�����z�t����Ă��܂��B���� (6)
��Q�Ƃ��Ă��������B
QMAGIC ���s�t�@�C���̍��:
Makefile ���� LDFLAGS �s�Ɉȉ��̕�����lj����܂��B
LDFLAGS = -Wl,-qmagic
�܂���
LDFLAGS = -Xlinker -qmagic
QMAGIC ���C�u�����̍��:
���߂�Ȃ����B`mkimage' �̎g���������܂����킩��܂���B�������҂��Ă�
�������B
55) "warning using incompatable library version xxx" �̃��b�Z�[�W��o�Ȃ��悤�� ���邱�Ƃ͂ł��܂����H
��: �͂��ł��܂��B
���A ld.so �̃o�[�W���� 1.4 �ȏ����Ă���Ȃ�A���ϐ��� LD_NOWARN ��
�lj����邱�ƂŃ��b�Z�[�W��o�Ȃ����邱�Ƃ��ł��܂��B��: �v���I�ȃG���[���b
�Z�[�W�͏o�͂���܂��B
csh (tcsh)�ł�:
setenv LD_NOWARN
sh (bash)�ł�:
export LD_NOWARN=1
�ł��B
===============================================================================
�ӎ�: (���s��)
H.J.Lu
Dirk Hohndel
David Engel
Eric Youngdale
Bill Metzenthen
Rik Faith
Steven S. Dick
Bruno Haible
Andrew Tefft
Kai Petzke
Tuomas J Lukka
Fergus Henderson
Paul Gortmaker
Olaf Flebbe
�����āA�����
Linus Torvalds
===============================================================================
���� ���A���Ȃ��̖��O�������A�Ӗ��E���Ӗ��ɂ�����炸�����v�����Ă��Ă�A
�ǂ����A�C����Q���Ȃ��ł��������B���̒P�Ȃ�~�X�ł��̂ŁB���ɓd�q���[����
���������B�C�����܂��̂ŁB
===============================================================================
���� FAQ �� Linux �p GCC �̖��m�ȉ̕�ɂɂ��邽�߂ɁA�d�q���[���ɂ�鎿���
(���A����Ȃ�A�����) �Z���A�lj����Ď��̂���`����Ă��������B
Mitchum DSouza <
[email protected]>
--
comp.os.linux.announce �ւ̂��ӌ���
[email protected] �܂ŁB