home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1992 March / Source_Code_CD-ROM_Walnut_Creek_March_1992.iso / usenet / altsrcs / 1 / 1806 / README < prev   
Encoding:
Text File  |  1990-12-28  |  2.7 KB  |  103 lines

  1. Here is a patch kit and instructions for building g++ 1.37.1 for
  2. SCO Xenix 386.  You will need
  3.  
  4.     Bison 1.03
  5.     GCC 1.37.1/GAS 1.3[456] with Xenix patches posted by me previously.
  6.  
  7. in addition to this patch kit and the g++-1.37.1 source from the FSF.
  8.  
  9. 1. Build and install bison 1.03 and the XENIX verion of GCC and GAS
  10.    using the patch kits posted by me previously.
  11.  
  12. 2. Ensure that the standard header files are fixed.  Depending on how
  13.    many of my GCC patches you have installed, and depending on whether
  14.    or not you have used the fix.h.xenix script from one of my later GCC
  15.    patches, you may or may not have to do one or more of the following:
  16.  
  17.    a. delete the lines
  18.  
  19.     #ifdef M_XENIX
  20.     #define _SIZE_T
  21.     #endif
  22.  
  23.    from stddef.h in the GCC source directory
  24.  
  25.    b. put these lines at the top
  26.  
  27.         #ifndef _STDIO_H_INCLUDED
  28.         #define _STDIO_H_INCLUDED
  29.  
  30.       and this line at the bottom
  31.  
  32.         #endif /* _STDIO_H_INCLUDED */
  33.  
  34.       of the standard include file /usr/include/stdio.h.  If this has
  35.       already been done to the copy in /usr/local/lib/gcc-include/stdio.h,
  36.       you probably don't have to do this.
  37.  
  38.    c. In whichever stdio.h file is relevant, ensure that:
  39.  
  40.     i.   The definition of va_list has been removed
  41.     ii.  add #define _SIZE_T to mark the typedef of size_t there.
  42.  
  43.    d. Remove the definition of time_t and size_t from the relevant time.h
  44.  
  45. 3. In the GCC source directory, add gnulib2 to gnulib by typing
  46.  
  47.     make gnulib2
  48.  
  49.    Install this version of gnulib as /usr/local/lib/gcc-gnulib
  50.  
  51. 4. unpack g++ in the Gnu source directory, so that the current
  52.    directory contains the following directories,
  53.  
  54.     gcc-1.37/
  55.     g++-1.37.0/
  56.  
  57. 5. mkdir g++
  58.  
  59. 6. ln g++-1.37.0/* g++
  60.  
  61. 7. cd g++
  62.  
  63. 8. patch -p < g++-x386.pch    # the patch contained within this kit.
  64.                 # (or just feed the kit itself to patch)
  65. 9. make maketest
  66.  
  67.   (ignore errors from ln)
  68.  
  69. 10. sh config.g++ xenix386
  70.  
  71. 11. Edit the Makefile to taste.
  72.     Pay particular attention to the value of COFFLAGS: current Xenix
  73.     versions of /lib/ldr require the definition of FASCIST_LDR.
  74.  
  75.     You need to define FASCIST_LDR if ld -r truncates symbols to 40
  76.     characters.  You can check this by compiling one-line the program:
  77.  
  78.     aaaaaaaaTaaaaaaaaaTaaaaaaaaaTaaaaaaaaaT123456789T123456789T(){}
  79.  
  80.     with the commands:
  81.     
  82.     gcc -c test.c
  83.     ld -r -o test.R test.o
  84.  
  85.     The command:
  86.  
  87.     nm test.R
  88.  
  89.     will then show if the name has been truncated.  (If nm reports
  90.     'symbol table read error' or something to that effect, then ld -r
  91.     may possibly be working.) The ldr in SLS fix lng238 *should* not have
  92.     needed FASCIST_LDR, but it core dumps when linking groff, so you
  93.     apprently still need to define FASCIST_LDR with it.  Sigh.
  94.  
  95. 12. make
  96.  
  97. 13. make install
  98.  
  99. 14. Enjoy!
  100.  
  101. Steve.
  102. (steve@robobar.co.uk)
  103.