added concrete implementations of putc(), getc(), getchar() and gets()
[tangerine.git] / compiler / c_lib / ReadMe.GCC
blobaefb84b7125a73cccae45297bedb33fd31aab35d
1 GNU/C (gcc) notes:
2 ------------------
3 [Stefan Fuchs <snfuchs@sokrates.franken.de> ]
6 I have ported this source to gnu/c.
8 This source can only be compiled with gcc V2.7.2.1 and above
9 as it requires explicit register specification, which was made
10 available with this version for the first time.
12 As its implementation is not yet perfect, the source code must
13 be modified to work with gcc (see below).
15 Some of this problems are announced to be fixed with gcc V2.8.0 .
17 The size of the executable is quite small (840 Bytes) compared to
18 the SAS/C version (860 Bytes) and shows that gcc has become a very
19 efficient compiler.
23 I made the following changes:
25 makefile.gcc:
26   added
28 compiler.h:
29   In order to compile with gcc the following changes must be made within
30   source and include files:
31   __asm must be converted to ASM, as __asm has a different meaning with gcc.
32   GNUCREG("xy") must be added after each parameter of each function, which
33   gets parameters in certain registers.
35 Startup.c:
36   Changed #include "samplefuncs.h"  to  #include "SampleFuncs.h"
37           as the gcc precompiler is case-sensitive with filenames
38   gcc can not handle relative pathnames, so when compiling with gcc, the
39           pathname of examplebase.h is specified within the makefile
40   __asm replaced by ASM
41   GNUCREG("xy") added
42   all references to struct SegList * replaced by APTR as this structure is
43           nowhere declared and gcc does not like this.
44   __saveds removed for LibStart() and ExtFuncLib(), as these do not access
45           any global data. This should save some bytes on all compilers.
47 SampleFuncs.h:
48   __asm replaced by ASM
49   GNUCREG("xy") added
51 LibInit.c:
52   gcc can not handle relative pathnames, so when compiling with gcc, the
53           pathname of examplebase.h is specified within the makefile
55 SampleFuncs.c:
56   __asm replaced by ASM
57   GNUCREG("xy") added
60 Have fun.