home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 603c.lha / GCC_&_G++_v1.40-920127 / README < prev    next >
Text File  |  1992-01-28  |  6KB  |  115 lines

  1. Oh well.. I thought this wasn't necessary. But since gcc2.0 is somewhat 
  2. late, and since I got many requests for a C++ compiler *now*, I compiled
  3. version 1.40 of both, gcc and g++. They're included in this archive.
  4.  
  5. Since my C library is out now, and since archives are getting bigger and
  6. bigger, I decided not to include any headers and libraries with the
  7. compiler distribution anymore (except the minimal gnulib, which is needed
  8. for g++). All binaries need the shared library though, which is included.
  9.  
  10. If you didn't already, I strongly advise you to obtain the library from
  11. the same site you got this archive (or from amiga.physik.unizh.ch or
  12. nic.funet.fi if that fails). You can use almost any C library for gcc, but
  13. you'll probably run into bigger problems using libg++ with a typical
  14. Amiga C library, since libg++ uses some pretty private information from
  15. the stdio implemention (which is the reason why I didn't upgrade my stdio
  16. package to the newest BSD version, I'll first have to check compatibility
  17. issues in libg++).
  18.  
  19. G++ introduces some other problem. Until now, you were more or less free
  20. which linker you used (for BLink, you had to convert the object files with
  21. SObjA, written by the BuRP team, for Manx, you could use my sun2manx tool),
  22. now you probably HAVE to use gcc-ld, or you teach your conversion tool to
  23. implement those GNU set objects, that implement initialization of file scope
  24. variables (constructors/destructors in C++). Since sun2manx is a thing of
  25. the past, at least I won't implement this there.
  26.  
  27.  
  28. INSTALLATION
  29.  
  30. If you are upgrading from one of my previous releases, you should feel
  31. familiar with the directory structure already (I didn't change to the
  32. gcc-2.0 structure on purpose since this is still the old 1.x line).  The
  33. only minor thing that changed, is that the assembler is now called
  34. `gcc-as', no longer `gcc-a68'.  This makes this gcc port use the same names
  35. used by gcc under **ix systems. 
  36. And don't forget: install ixemul.library into libs:! It's a newer version
  37. than the one distributed with the library archive currently.
  38.  
  39. Note: I changed the normal name `g++' to `gpp', since if AmigaDOS sees a
  40.       line terminated with a `+', the `+' is swallowed and treated as
  41.       line continuation character (somewhat like \ under **ix).
  42.  
  43. The hunk2gcc/ directory contains a bugfixed version of hunk2gcc, see
  44. its README file for further explanations.
  45.  
  46.  
  47. If this is your first approach to gcc/g++, this is what you have to do
  48. to make it work (hopefully ;-)):
  49. o the directory local/ contains the preprocessor, C-compiler, C++-compiler,
  50.   assembler and linker. Assign LOCAL: to this directory.
  51. o bin/ contains the drivers (gcc and gpp). Either copy those files into a 
  52.   directory you have in your PATH or add bin/ to your PATH.
  53. o lib/ contains `gnulib', which defines some symbols needed for g++
  54.   initialization stuff.
  55.   Assign GCC: to a directory, such that Gcc:include/ points to your header
  56.   files, and Gcc:lib/ contains this gnulib, your C-library (called libc.a), 
  57.   and your C-startup file (called crt0.o).
  58.   If you don't have headers and a C library, you can get them from the
  59.   same site you got this archive from, or if that fails, from 
  60.   amiga.physik.unizh.ch or nic.funet.fi. (The file should be called 
  61.   ixemlib92xy.lha, where xy should be as high as possible).
  62. o libs/ contains ixemul.library, my shared library that emulates lots of 
  63.   **ix system calls, and additionally contains most functions which normally 
  64.   are in a static C library for other compilers. You have to install this
  65.   library in your LIBS: directory, or none of the distributed binaries
  66.   will work !!
  67.  
  68.  
  69.  
  70. CHANGES SINCE 1.39
  71.  
  72. Besides the `normal' changes as documented in the ChangeLog of the source
  73. distribution of gcc (obtainable from prep.ai.mit.edu:pub/gnu/gcc-1.40.tar.Z),
  74. I made some changes to the tm-amiga.h file to better support the now (really?)
  75. default setting of -mc68000 -msoft-float. It seems that this default isn't
  76. supported properly for the Sun configuration either, that's the reason the
  77. 1.39 release had problems in this area. You find this file in the src/
  78. directory. You should now be able to compile
  79.   gcc foo.c -o foo
  80. and expect foo to be fully 68000 conformant, before you had to explicitly
  81. use the `-mc68000 -msoft-float' options.
  82.  
  83. Since the new compiler uses the shared library, it profits from improvements
  84. made there as well. I hope this won't introduce too many new bugs though...
  85.  
  86. One consequence of using the shared library though will probably be a slight
  87. increase in memory use. I agree that memory usage starts to be inacceptable,
  88. especially for g++. If someone comes up with a more restrictive malloc-package
  89. (has to support the functions from the current implementation, especially
  90. memalign()), I'll be happy to include it in the library as an option for
  91. systems that don't come with megabytes of RAM. In some cases you might get
  92. away with flushing the library from time to time.
  93.  
  94.  
  95.  
  96. SOME REMARKS TO G++
  97.  
  98. I don't know hardly any C++, so I'm not able to really test this compiler.
  99. What I did, I compiled groff-1.04, and it seems to work reasonably well
  100. (finally a man page formatter under AmigaDOS ;-)). You probably want libg++
  101. as well, which I'll upload as a separate package (to cut down on the size
  102. of this one, for those that only want gcc).
  103.  
  104. Then, since this the first real free C++ compiler for the Amiga, I'd like to
  105. hear how well it competes against the commercial products, if you have some
  106. benchmarks, please let me know!
  107.  
  108.  
  109. Good luck!
  110.  
  111. -Markus Wild
  112.  
  113. X400-routed...:    <wild@nessie.cs.id.ethz.ch>
  114. SMTP-direct:    <wild@amiga.physik.unizh.ch>
  115.