[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

gcc 2.7.2.3



Hi!

Some infos to the gcc 2.7.2.3 I've made.
It works under MiNT /and/ under TOS/MagiC. 
With my gcc 2.7.2.3 you must use the util-40.lzh, because I've made some 
changes on the interface gcc -> ld.
You can find all gcc-2.7.2.3 related files here:

 ftp://ftp.rz.tu-harburg.de/pub/software/systems/atari/gnu/gcc/2.7.2.3

If you install it under MiNT on a minixfs, you can use the UNIX-like
path 
structure. If you want to use an other path structure you had to set the 
environment variables GNUEXEC, GNULIB, GNUINC and GXXINC.
If the linker found $GNULIB, he's using TOS names for the libs (c.olb)
otherwise he's using UNIX names (libc.a)

I've installed the gcc 2.7.2.3 on a TOS partition and it works correctly
under
MiNT /and/ MagiC.
On the TOS partition I've got the following structure (drive G:):

        g/gnu:
        drwxrwx---   1 root     wheel           0 Dec  9  1995 bin/
        drwxrwx---   1 root     wheel           0 Dec  9  1995 include/
        drwxrwx---   1 root     wheel           0 Dec  9  1995 lib/

        g/gnu/bin:
        -rwxrwx---   1 root     wheel      128233 Dec  9  1995 as.ttp
        -rwxrwx---   1 root     wheel     1093496 Feb  2 09:41 cc1.ttp
        -rwxrwx---   1 root     wheel     1439760 Feb  2 09:41
cc1plus.ttp
        -rwxrwx---   1 root     wheel       99405 Feb  2 09:41 cpp.ttp
        -rwxrwx---   1 root     wheel       39055 Feb  2 09:41 g++.ttp
        -rwxrwx---   1 root     wheel       85454 Feb  2 12:06 gcc.ttp
        -rwxrwx---   1 root     wheel       53983 Oct 21 13:41 ld.ttp
        -rwxrwx---   1 root     wheel       52685 Oct 21 13:41
sym-ld.ttp

        g/gnu/include:
                [all headers from mintlib, gemlib, ...]

        g/gnu/include/g++:
                [all headers from libg++]

        g/gnu/lib:
        -r--r-----   1 root     wheel         563 Oct 30 21:19 crt0.o
        -rw-rw----   1 root     wheel       44304 Dec  9  1995
curses.olb
        -rw-rw----   1 root     wheel      281622 Oct 12 19:11 g++.olb
        -rw-rw----   1 root     wheel       47624 Nov  5 12:17 gem.olb
        -rw-rw----   1 root     wheel       50954 Nov  5 12:39
gem_mt.olb
        -rw-rw----   1 root     wheel      209884 Jan 22 09:31 gnu.olb
        -rw-rw----   1 root     wheel        5740 Jan 17 18:42 iio.olb
        -rw-rw----   1 root     wheel       34430 Dec  9  1995 pml.olb
        -rw-rw----   1 root     wheel       26156 Jul  3  1995
portlib.olb
        -rw-rw----   1 root     wheel       51918 Sep  7  1996
socket.olb
        -rw-rw----   1 root     wheel        5895 Feb  1 20:01 specs
        -rw-rw----   1 root     wheel      272468 Oct 12 19:11
stdc++.olb


To use this installation under MagiC with command shell Mupfel I must
set the 
following environment:

        export PATH=".;g:\gnu\bin"
        export TMPDIR="p:\"

        export GNUEXEC='g:/gnu/bin/'
        export GNULIB='g:/gnu/lib'
        export GNUINC='g:/gnu/include'
        export GXXINC='g:/gnu/include/g++,g:/gnu/include'

To use the same installation unter MiNT, I've create the following path 
structure with many soft-links on my minix partition:

        /usr:
        drwxr-xr-x   3 root     wheel        4128 Nov 10 15:34 bin/
        lrwxrwxrwx   1 root     wheel          14 Sep 10 19:54 include
-> /g/gnu/include/
        drwxr-xr-x   5 root     wheel         928 Oct 28 12:17 lib/
        drwxr-xr-x   3 root     wheel         160 Oct 18 14:19
m68k-atari-mint/

        usr/bin:
        lrwxrwxrwx   1 root     wheel           3 Oct 21 14:36 cc -> gcc
        lrwxrwxrwx   1 root     wheel          18 Sep 10 19:46 g++ ->
/g/gnu/bin/g++.ttp
        lrwxrwxrwx   1 root     wheel          17 Sep 10 20:00 gas ->
/g/gnu/bin/as.ttp
        lrwxrwxrwx   1 root     wheel          18 Jun 24  1997 gcc ->
/g/gnu/bin/gcc.ttp
        lrwxrwxrwx   1 root     wheel          17 Oct 21 14:40 ld ->
/g/gnu/bin/ld.ttp

        usr/lib:
        lrwxrwxrwx   1 root     wheel          17 Sep 10 19:51 crt0.o ->
/g/gnu/lib/crt0.o
        lrwxrwxrwx   1 root     wheel          19 sep 24 18:47
g++-include -> /g/gnu/include/g++//
        drwxrwxrwx   3 root     wheel          96 Oct 17 17:30 gcc-lib/
        lrwxrwxrwx   1 root     wheel          21 Oct 28 12:17
libcurses.a -> /g/gnu/lib/curses.olb
        lrwxrwxrwx   1 root     wheel          18 Sep 10 19:51 libg++.a
-> /g/gnu/lib/g++.olb
        lrwxrwxrwx   1 root     wheel          18 Sep 10 19:51 libgem.a
-> /g/gnu/lib/gem.olb
        lrwxrwxrwx   1 root     wheel          21 Sep 10 19:51
libgem_mt.a -> /g/gnu/lib/gem_mt.olb
        lrwxrwxrwx   1 root     wheel          18 Oct 18 17:39 libgnu.a
-> /g/gnu/lib/gnu.olb
        lrwxrwxrwx   1 root     wheel          18 Oct  3 13:55 libiio.a
-> /g/gnu/lib/iio.olb
        lrwxrwxrwx   1 root     wheel          18 Oct 18 14:25 libpml.a
-> /g/gnu/lib/pml.olb
        lrwxrwxrwx   1 root     wheel          21 Sep 10 19:51
libstdc++.a -> /g/gnu/lib/stdc++.olb

        usr/lib/gcc-lib:
        drwxrwxrwx   4 root     wheel         128 Jan 31 15:44
m68k-atari-mint/

        usr/lib/gcc-lib/m68k-atari-mint:
        drwxrwxrwx   2 root     wheel         192 Oct 21 14:29 2.7.2.3/

        usr/lib/gcc-lib/m68k-atari-mint/2.7.2.3:
        lrwxrwxrwx   1 root     wheel          18 Oct 21 14:29 cc1 ->
/g/gnu/bin/cc1.ttp
        lrwxrwxrwx   1 root     wheel          22 Oct 19 17:13 cc1plus
-> /g/gnu/bin/cc1plus.ttp
        lrwxrwxrwx   1 root     wheel          18 Oct 21 14:29 cpp ->
/g/gnu/bin/cpp.ttp
        lrwxrwxrwx   1 root     wheel          16 Oct 19 17:14 specs ->
/g/gnu/lib/specs

        usr/m68k-atari-mint:
        drwxrwxrwx   2 root     wheel         224 Feb  4 11:36 bin/

        usr/m68k-atari-mint/bin:
        lrwxrwxrwx   1 root     wheel          17 Sep 10 19:47 as ->
/g/gnu/bin/as.ttp
        lrwxrwxrwx   1 root     wheel          17 Sep 10 19:47 ld ->
/g/gnu/bin/ld.ttp
        lrwxrwxrwx   1 root     wheel          21 Oct 19 17:29 sym-ld ->
/g/gnu/bin/sym-ld.ttp

For this structure no environment variable must be set.

Now to the mystic specs file: 
All parameters in gcc are handled with data structures calls 'spec'.
There are 
specs for the platform-specific options, predefined symbols for the
preprocessor,
rules for generating the lib names and so on. Most of these specs are
defined in
the compiler sources but may be overwritten with the external
user-configurable 
spec file. 
For example take a look on the spec 'startfile':

        *startfile:
        %{mbaserel:b}%{mint:m}%{pg:g}%{p:m}crt0.o%s

The base name of the startfile is 'crt0.o'. If option '-maserel' is set,
you've
got 'bcrt0.o', when '-mint' is activ, 'mcrt0.o'.
If you need a special predefine for the preprocessor, you can add it to
the
'predefines'-spec:

        *predefines:
        -Dmy_personal_define -Dmc68000 -Datarist -Dgem -Asystem(tos) ...

You can generate a spec file with `gcc -dumpspecs`. Normaly you don't
make
changes to the spec file, just install it and gcc will be happy ;-))

 Chris.
 
------------------------------------------------------------------------
 Christian Felsch   email: felsch@tu-harburg.d400.de    (Big mails, uue)
 Bevenser Weg 18           christian_felsch@hh.maus.de  (Mails < 16K)
 21079 Hamburg
 Germany            WWW  : http://www.tu-harburg.de/~smcf1605/   
------------------------------------------------------------------------