���� �������� ��������� ��������� GNU CC � ������� Unix. ��. ������ [��������� �� VMS], ��� VMS ������. � ���� ������� �� �������, ��� �� ������������ � ��� �� ��������, ������� �������� �������� ���- ��; ��. ������ [������ ����������], ����� ��������, ��� ������������� � ��������� �������� � ������� Unix.
�� �� ������ ���������� GNU C � ������� ��� ������ � MS-DOS. �� �� ����� ��������������� ������� ������������ MS-DOS ����� ��� ������. �� ������ �������� ������ ����� ���������� DJGPP, ������� �������� �������� �����, ����� ��� � ��������, � �������� ��� ����������� ���������������� �������� ��� ���������� � ����������.
./configure --build=sparc-sun-sunos4.1
��� ������������ ����� ���� ������������ ��� ����� ��� �����
�����������.
������������� ��� ������������ ����� ��� �����, �����������
���������.
��� �������� ��������� �������: `���������-��������-�������'.
(��� ����� ����� ���� ��������� ��������, `configure' ����� ��������,
����� �������� ������ ����� �����.) ��������, `m68k-sun-sunos4.1'
���������� Sun 3.
�� ������ ����� �������� ����� ������������ �� �������� ���
����������. ��������, `sun3' �������� `m68k-sun', ���
`sun3-sunos4.1' - ������ ������ ������� Sun 3. �� ������ �����
������������ ������ `sun3-sunos', ��� ��� ������ SunOS ��������� ��
��������� ������ �������. `sun3-bsd' ����� ��������, ��� ���
`configure' �����, ��� ������������ ������� BSD �� Sun 3 - SunOS.
�� ������ ������� ����� ������ ����� ������ �� ����� ������ �
����� ��������� �� ����� �����������. � ����������� �������, ������
��������� � ������������. ��� ��� �� ����� � ���� �� ������� ������,
���� �� ������ ��.
��. ������ [������������], �� ������� �������������� ���� �����-
������� � ���������� ������������ ������ �� ���. �� ������ ����������
���������� � ���� ������� ����� ����������� ����� ���������� ��������
�� ��������� GNU CC.
������� ������ �������������� �����, ������� �� ������ �������
����������, ����� ���������� �������� ���������� � �����������
������������. ��� - `--with-gnu-as', `--with-gnu-ld', `--with-stabs' �
`--nfp'.
���� �� ������ ������������ GNU CC � ����������� GNU (GAS), �� ������ ������� ��� � ������� `--c-gnu-as' ������ ����� �� ���������� `configure'.
������������� ���� ����� �� ������������� GAS. ��� ������ �������� ����� GNU CC, ����� �� ������� � GAS. ���������� � ��������� GAS - ��� ���� ������.
��������, ���� �� �� ������ ������������ GAS � �� ����������� `--with-gnu-as' ��� ���������� GNU CC, ��� ���� ������ - ��������������, ��� GAS �� ����������. GNU CC ���� ��������� � ������ as � ��������� ���������; ���� ���������, ������� �� ������� - GAS, ����� �� ��������� GAS. ���� �� �� �������, ��� GNU CC ������� ���������, ������� �� ����������, ���������� ������� `-v', ����� �� ��� ����������.
������� ��� �����, ����������� �� �� GAS: `hppa1.0-�����-�����', `hppa1.1-�����-�����', `i386-�����-sysv', `i386-�����-isc', `i860-�����-bsd', `m68k-bull-sysv', `m68k-hp-hpux', `m68k-sony-bsd', `m68k-altos-sysv', `m68000-hp-hpux', `m68000-att-sysv', `ANY-lynx-lynxos' � `mips-�����'). � ����� ������ ������� `--with-gnu-as' �� ����� �������� �������.
� �������� ������������� ���� (����� HP-PA, ISC �� 386 � `mips-sgi-irix5.*'), ���� �� ����������� GAS, �� ������, �����, ������������ GNU ������ (� ��������� `--with-gnu-ld').
������� ����� `--with-gnu-ld', ���� �� ���������� ������������ GNU ������ � GNU CC.
��� ����� �� ���������� ������������� GNU ������; ��� ������ �������� ��������� GNU CC, ����� �� ������� � GNU ��������. � ���������, ��� ��������� ��������� `collect2' - ���������, ������� � ��������� ������ ������ � �������� �������� ���������� ��� ������� ������� � ����������� ������������.
� ��������, ���������� �� MIPS, � � �������� �� Alpha �� ������ ����������, ������ �� GNU CC ��������� ���������� ���������� ������ ECOFF ��� ������������ stab'� BSD-�����, ������������ ����� ���������� ������� ECOFF. ���������� ���������� ������ ECOFF �� ����� ��������� ������������ �����, �������� �� C. ������ BSD stab'�� ����� ������������ ������ �����, �� �� �������� ������ � ���������� GNU - GDB.
������, GNU CC ���������� ���������� ������ ECOFF �� ���������; ���� �� ������������� BSD stab'�, ������� `--with-stabs', ����� �� �������������� GNU CC.
��� ����������� �� ����, ����� ��������� �� ���������, ����� �������������� GNU CC, ������������ ����� ������������ ����� `-gcoff' � `-gstabs+', ����� ���� ��������� ���������� ������ ��� ���������� ����������.
`--with-stabs' ����� �������� ����� � ������� ISC �� 386, ���� ������������ '--with-gas'. ��� �������� ���������� ���������� ���������� stab'��, ���������� � ����� COFF'�. ���� ��� ���������� ���������� ������ ������������ C++; ������� ���������� ���������� COFF'� �� ������ �����.
`--with-stabs' ����� �������� ����� � �������� �� 386, ����������� SVR4. ��� �������� ���������� ���������� ���������� stab'��, ���������� � ����� ELF'�. C++ ���������� � ��������� ����� (2.6.0) �� ������������ ���������� ���������� DWARF, ������ ������������ �� 386 SVR4 ����������; stab'� ������������ ���������� �������. �� ������� gas � gdb, ��������� ������� ���������������� �������� SVR4 �� ����� ������������ ��� ���������������� stab'�.
� ��������� �������� �� ������ ���������, ����� �� ������ ������ ��������� �����. ��� ������� �������� `m68k-sun-sunos n' � `m68k-isi-bsd'. � ����� ������ �������, `--nfp' � ��������� ����� �� ����� �������� �������, ����, ��������, ������� ������ �������, ��� ��� ����� �� ���� �������.
make stage1
����� ������������ � ���������� � ������ `stage1'. ����� ����,
��� ��������� ����� ���������, �� ������ �������� ������� ��� ����� �
������� ������� `rm -r stage1'.
make CC="stage1/xgcc -Bstage1/" CFLAGS="-g -O2"
��� ���������� ��������� ������ 2 �����������.
make stage2
make CC="stage2/xgcc -Bstage2/" CFLAGS="-g -O2"
��� ���������� ��������� ������ 3 �����������. ����� ����� `-B',
����� ����������� ������ ���� ������ �� ������, ��� ����� �� �������
������ 2 �����������.
make compare
��� ����� ��������� ����� ��������� �����, ������� ���������� �
������� 2 � 3. ����� ��������, ������� ��������� �����, ��������� ��
��, ��� ������ 2 �����������, ��������������� GNU CC �����������, �
������������� ���������� ������������ ��������� ������, ������� ��
������ �����������.
make install CC="stage2/xgcc -Bstage2/" CFLAGS="-g -O" LANGUAGES="LIST"
��� �������� ����� `cc1', `cpp' � `libgcc.a' � ����� `cc1', `cpp'
� `libgcc.a' � �������� `/usr/local/lib/gcc-lib/����/������' - ���, �
������� ����������� ��������� ����������� ���� ��. ����� '����' - ���
������� ������, ���������, ����� �� ��������� `configure', � '������'
- ����� ������ GNU CC.
��� ����� �������� ����������� ��������� `xgcc' �
`/usr/local/bin/gcc', ��� ��� ��� ���������� � �������� ��������
������ ����������.
���� ����������� ��������� ���� ����������� �����������:
1750a, a29k, alpha, arm, cN, clipper, dsp16xx, elxsi, h8300,
hppa1.0, hppa1.1, i370, i386, i486, i586, i860, i960, m68000, m68k,
m88k, mips, mipsel, mips64, mips64el, ns32k, powerpc, powerpcle,
pyramid, romp, rs6000, sh, sparc, sparclite, sparc64, vax, we32k.
���� ����������� �������������� ����� ��������. ��� �� ������
������, ������� ���������� ������������ ����, ��� ����� �������
����������� �����.
acorn, alliant, altos, apollo, att, bull, cbm, convergent, convex,
crds, dec, dg, dolphin, elxsi, encore, harris, hitachi, hp, ibm,
intergraph, isi, mips, motorola, ncr, next, ns, omron, plexus,
sequent, sgi, sony, sun, tti, unicom, wrs.
��� �������� ����� �������� ������ ��� ���������� ����������������, ����� ��������� ��������� ���������� ������������. �� ������ �������� ���, ��������� ������ `���������-�������', ���� ��� �� ����������. ��������, `vax-ultrix4.2' ������������ `vax-dec-ultrix4.2'.
���� ���������� ������ ����� ������:
386bsd, aix, acis, amigados, aos, aout, bosx, bsd, clix, coff,
ctix, cxux, dgux, dynix, ebmon, ecoff, elf, esix, freebsd, hms,
genix, gnu, gnu/linux, hiux, hpux, iris, irix, isc, luna, lynxos,
mach, minix, msdos, mvs, netbsd, newsos, nindy, ns, osf, osfrose,
ptx, riscix, riscos, rtu, sco, sim, solaris, sunos, sym, sysv,
udi, ultrix, unicos, uniplus, unos, vms, vsta, vxworks, winnt,
xenix.
�� ������ �������� ��� �������, ����� `configure' ������������ �� ������������ ������� �� ���������� � ��������.
�� ������ ��������� ����� ������ � ���� �������; ��� ����� ��� �� ����� ������ ��������. ��������, �� ������ ������ `bsd4.3' ��� `bsd4.4', ����� �������� ������ BSD. �����������, ����� ������ �������� ��������� ��� `sysv3' � `sysv4', ������� ����� �������������� ��-�������.
���� �� ����������� ����������� ���������� ���� `i860-dg-vms', �� ������ �������� ��������� �� ������ �� `configure', ��� �� �� ����� ������������ ����� ���������� � ������� ������, ��� �������� � ���������. `configure' ������ �������� ������������� ��� ��� ��������, ������� �� �����������. GNU CC �� ������������ ��� ��������� ��������.
����� �������������� ������ ������ ����� ���. ������ �������� ����� ������������ ��� ���������� ��� ���������� ���������/��������. ������� ������� ��������� �������� ����:
3300, 3b1, 3bN, 7300, altos3068, altos, apollo68, att-7300,
balance, convex-cN, crds, decstation-3100, decstation, delta,
encore, fx2800, gmicro, hp7NN, hp8NN, hp9k2NN, hp9k3NN, hp9k7NN,
hp9k8NN, iris4d, iris, isi68, m3230, magnum, merlin, miniframe,
mmax, news-3600, news800, news, next, pbd, pc532, pmax, powerpc,
powerpcle, ps2, risc-news, rtpc, sun2, sun386i, sun386, sun3,
sun4, symmetry, tower-32, tower.
�� ��������, ��� �������� ��� ���������� � ��� ������������
����������, � ��� ��������. ���� �� ������ ������������� ����
����������� ����� ������������ ������������ ������������, �� ������
������������ `local' ��� ��� ��������, ����� ���������� � ���. ���� ��
����������� ������������ `���������-local', �� ��� ������������ ���
�������� ���������� ������������, ����� �������� ��� �����
������������.
����� �������, ���� �� ���������� `m68k-local', ������������ ���������� ����� `m68k.md', `local.h', `m68k.c', `xm-local.h', `t-local' � `x-local', ��� � �������� `config/m68k'.
���� �� ������ ��������� ��������� � ���������� ����� � �������� ��������, �� ����������� �������� �����, ���� �������, ��� �� ������ ������ ��-�������:
make distclean
mkdir gcc-sun3
cd gcc-sun3
� ��������, ������� �� ������������ ������������� ������, ����
������� ������ ���� � ��� �� �������� �������, ��� � ������� ��������
�������.
../gcc/configure ...
��� ����� �������� `configure', ��� �������� ���������
�����������; `configure' ����� ������� �� ����� �����, �������
��������������, ����� �������� ���. �� ���� �� ������ ���� ����������,
�� ������ ������� �������� ������� � ������� ����� `--srcdir' :
../gcc/configure - srcdir= ../gcc ������ �����
�������, ������� �� ���������� � `--srcdir' �� ������ ���� ��� ��
���������, � ������� ��������� `configure'.
������, �� ������ ��������� `make' � ���� ��������. �� �� ������
��������� ���� ������������ ���������� ����, ��� ������� ���������
�������� ������. �� ������, ������, ��������� `configure' �����, ���
��������� ������ ������������, ���� ���� ������� �� ������������
������������� ������.
GNU CC ����� ��������������� ��� ��������������� ��� ������ �����, �� �� ��� ����.
��������� GNU CC ���������� ������������ ���, ��, ��������, ���������� � ���������������, ����� GNU CC ��� �����������, �������� ��������� �����. ���� �� ������ ��������� �� �� ������� ������, �� � ���� �� ���������� � ������������. �� ����� ���������� � ������������ ������ � �����������, ���������� ��� ������� ������, ������� �� ������ ���������� �� ����-������.
���������� � ���������� �������� � �������������� ���������������� �������� ��������� �����:
����� ��������� GNU CC ��� ���������������, �� ��������� � ���������� `configure'. ����������� `--target=����', ����� ������� ��� ������� ������. ���� `configure' �������� ���������� ��������� ���������������� �������, �� ������� �� ��� ����������, ����� ������� '--build=��������'. ��������, ���� ��������, ��� ��������������� ���������������, ������� ���������� ��� ��� ������� HP 68030 � �������� BSD, ������� `configure' ����� ��������� ����������������:
./configure --target=m68k-hp-bsd4.3
���� � ��� ���� �������������� � �����������, �� ������ �� ������ ����������. ��������� �� � ������� `/usr/local/����/bin'. ������� ������� ���������������� �������, ������� �� ������ �������� � ���� �������:
��� ������ ���� ��������������.
��� ������ ���� �����������.
��� ������ ���� ��������������: ���������, ������� ����� ��������� ��������� ������� (������������ �������) � ������� ������� ������.
��� ������ ���� ��������� ��� �������� ������� ��������������� � �������� �����.
����� ������� ������ ������������ ��� ����� ����o�� � ���, ����� ��������� ����� Binutils � GAS. C�������������� �� � ���� �� ������ `--host' � '--target', ������� �� ����������� ��� ���������������� GNU CC, ����� ��������� � ���������� ��. ��� ������������� ���� ���������� ����� ������������� � ��������������� �������. �� ��� �� ������������ ��� ������� ������, ������� ������������ GNU CC.
���� �� ������ ���������� ����������, ����� ������������ � �����������������, �����, ��� ���������� ���������� C, ��������� �� � ������� `/usr/local/����/lib'; ��������� GNU CC �������� ��� ����� � ���� ����������� � ��������������� �����, ����� GNU CC ��� �������� �� � ��������� � ����. ���� ������� ������ ����������� ���������� ���������� ��������� � ������� ������:
ftp �������-������
lcd /usr/local/����/lib
cd /lib
get libc.a
cd /usr/lib
get libg.a
get libm.a
quit
������ ����� ���������, � ������� �� ����������, � ��
�������������� �� ������� ������, ����� ������� �� ������������
�������.
������ ������� ������ ������� "����� ������" ���� `crt0.o' � `crtn.o', ������� ��������� � ������� ����������� �����; ��� ����� ������ ���������� � `/usr/local/����/lib'. ����� ������� ��������� ��������� ��� `crt0.o', ��� ���������� � ����������� ��� ������� ������� ����������. ���� ������� ������ ����������� ���� ������ � ������� ������:
ftp �������-������
lcd /usr/local/����/lib
prompt
cd /lib
mget *crt*.o
cd /usr/lib
mget *crt*.o
quit
������ �� ������ ���������� �����, ��� � ��� ���������� ����������� ��� ����� ������ ����������� stage 1. ���� �� ���������� �����-���� ������� 'libgcc1.a'. ����� ���������� ����� �������� � �����, ��� ����� ���� ����,
�������� ���� � �� �� ��� ������� � �����- ������������. ��� �����, ��� GNU CC ��������� ���� ������ ������������ �����, � ����� ��� GNU CC ��������� ������������� ������������ �����. ������������������ GNU CC ��������� fixincludes ��� ������������� ������� � '$(tooldir)/include'. (���� ������������ ����� ��������������� ������ ���� �������������, ��� ������ ���� ����������� �� ���������� GNU CC. ���� ������������ ����� ��������������� ��� �������� ��� ANSI C � GNU CC, ������ ���������� ������ �� �����.)
�������� ���� � �� �� ��� ������� � �����- ������������. ��� �����, ��� g++ ������� � ������ �������, � ������� ������������ ������. libg++ ������������� ������ ����������������� ������������ ����� � ���� ����������.
������������ ������ ��� ������� �����������. ������ ��� '/usr/local/include'. GNU CC ������������� ��� ����������, ��� ��� ������������ ����� ������������� ������������ ����� � '/usr/local/include'.
������������ ������ ��� ����������������. GNU CC ������ ����� �� �������������.
������������ ��� ��� �������, ��� � ��� �����������������. ��� ����� ��� ����������� ������������ ������ ��� ������ �������, ������� GNU CC ����� ������������. ��� ���������������� ��� '/usr/include'. ����� �� ������� ��������������� fixincludes ������������ ��� ������������ ����� � ���� ��������.