home *** CD-ROM | disk | FTP | other *** search
/ Peanuts NeXT Software Archives / Peanuts-Update.iso / OpenStep / unix / developer / language / c_and_friends / gcc-ns3-drivers.2.7.2.3.1.I.README < prev    next >
Encoding:
Text File  |  1997-12-16  |  4.0 KB  |  115 lines

  1. gcc-ns3-drivers.2.7.2.3.1.README
  2. Dec 12, 1997
  3.  
  4. For now, the READMEs for the following packages are the same, since
  5. they are so interdependant.
  6.  
  7. md5sum:
  8. ffaee65a833990bf9efff6430d7f06d2  gcc.2.7.2.3.2.I.b.tar.gz (~7.1MB)
  9. 3429dc2251490aa9b184d4e62f44df31  gcc-ns3-drivers.2.7.2.3.1.I.b.tar.gz (~10.9MB)
  10.  
  11. These archives contains the following pre-built binaries: 
  12. gcc-2.7.2.3
  13. g77-0.5.21
  14. libg++-2.7.2
  15.  
  16. built on and for the i386-next-nextstep4 platform.  includes drivers
  17. for  
  18. i386-next-nextstep4
  19. and (if also installing the gcc-ns3-drivers package)
  20. i386-next-nextstep3 (a cross-compiler)
  21. m68k-next-nextstep3 (a cross-compiler)
  22. targets.
  23.  
  24.  
  25. NOTES
  26.  
  27. Regarding the versioning of this package:
  28. I tacked on my port attempt numbers to the end of the gcc versions, ie,
  29. This represents my second (.2) attempt at porting gcc v2.7.2.3 to OpenStep.  
  30. This is also my first (.1) attempt at a nextstep3 gcc v2.7.2.3 cross compiler.  
  31. I hope this doesn't confuse people. 
  32. (-;
  33.  
  34. These packages have been built for and tested on OpenStep for Mach 4.2, 
  35. but may also work on others version of OpenStep for Mach 4.x. 
  36. This build will does NOT work on NEXTSTEP 3.x and earlier.  
  37. I used (for the most part) patches to gcc provided from
  38. ftp://nice.ethz.ch/users/chris/OS4/
  39. to get the newest gcc working form OpenStep for Mach 4.x.  Patches were
  40. available for i386 only, hence no m68k(-next-nextstep4) support... yet.
  41.  
  42. I was unable to build a dynamic (ala shared) library version of libg++,
  43. so if you use g++, at link time, you may get a bunch of linker warnings
  44. complaining about non-moveable code in libg++ and libstdc++.  Do not 
  45. worry about this too much... it still works (??).
  46.  
  47.  
  48. INSTALLATION
  49.  
  50. The tar.gz archives contains the installer packages gcc.pkg and
  51. gcc-ns3-drivers.pkg.  Use /NextAdmin/Installer.app to install to
  52. /usr/local and you're done.  If you want to build m68k binaries, make sure
  53. to specify "Install software for both NeXT and Intel" (in Installer.app)
  54. when installing the ns3-drivers package.
  55.  
  56. NOTE: you STILL need the nexstep developer packages (tested for OpenStep
  57. for Mach 4.2 only... earlier/other versions may or may not work) installed
  58. in order to use this, as it uses NeXT's supplied C libraries.  Also, in
  59. order to use the m68k-next-* cross-compiler, you need the DeveloperLibs
  60. installed for m68k (in addition to i386).
  61.  
  62.  
  63. NOTE: To use the libg++ (C++) library, you need to rename or remove
  64. the file /usr/lib/libg++.dylib, as it will conflict with this installed 
  65. (native) version  (verified for OS 4.2).  I find it odd that NeXT 
  66. included a libg++ in the developer, but no headers or information on 
  67. what version this libg++ represents.
  68.  
  69.  
  70. CROSS-COMPILING
  71.  
  72. It's a little tricky to use the nextstep3 cross-compiler,
  73. you need to postpend -ns3 to the name of the compiler,
  74. AND use gcc's -b flag to specify architecture (if -b
  75. is omited the compiler assumes the native (i386) architecture).
  76. To produce m68k binaries, for example, envoke gcc as:
  77. gcc-ns3 -bm68k-next-nextstep3 foo.c
  78.  
  79. WIERD SIDE NOTE (I haven't figured this one out yet)
  80. The following does NOT work (even though it SHOULD):
  81. gcc -bm68k-next-nextstep3 foo.c
  82. This runs the ns4 native front end, but specifies the use of the ns3
  83. driver.  It fails because (for some reason), the ns4 compiler flags
  84. are passed to the compiler and linker (e.g. -dynamic), and produces
  85. bad binaries.
  86.  
  87. FAT binary NOTE 
  88. gcc cannot (easily) create FAT binaries, at least not in the same sense
  89. of NeXT's cc, ie,
  90. cc -arch m68k -arch i386 foo.c
  91. With gcc, you need to create to separate binaries, and then use
  92. lipo.
  93.  
  94. Also, the cross-compilers don't look in /usr/local/lib for linking
  95. libraries, by default, like the native compiler does.  If you need to
  96. link against items in /usr/local/lib, you'll need to pass the option
  97. -L/usr/local/lib (ie, by adding to CFLAGS or LDFLAGS) to the linker (ld).
  98.  
  99.  
  100. CREDITS
  101.  
  102. GNU Software, gcc source
  103. http://www.gnu.ai.mit.edu/
  104.  
  105. gcc patches for OpenStep 4.x
  106. ftp://nice.ethz.ch/users/chris/OS4/
  107.  
  108. Packager
  109. Rex Dieter <rdieter@math.unl.edu>
  110. Computer System Manager 
  111. Universtity of Nebraska-Lincoln  
  112. Department of Mathematics and Statistics 
  113. http://www.math.unl.edu/~rdieter/
  114.  
  115.