home *** CD-ROM | disk | FTP | other *** search
- Here is a patch kit and instructions for building g++ 1.37.1 for
- SCO Xenix 386. You will need
-
- Bison 1.03
- GCC 1.37.1/GAS 1.3[456] with Xenix patches posted by me previously.
-
- in addition to this patch kit and the g++-1.37.1 source from the FSF.
-
- 1. Build and install bison 1.03 and the XENIX verion of GCC and GAS
- using the patch kits posted by me previously.
-
- 2. Ensure that the standard header files are fixed. Depending on how
- many of my GCC patches you have installed, and depending on whether
- or not you have used the fix.h.xenix script from one of my later GCC
- patches, you may or may not have to do one or more of the following:
-
- a. delete the lines
-
- #ifdef M_XENIX
- #define _SIZE_T
- #endif
-
- from stddef.h in the GCC source directory
-
- b. put these lines at the top
-
- #ifndef _STDIO_H_INCLUDED
- #define _STDIO_H_INCLUDED
-
- and this line at the bottom
-
- #endif /* _STDIO_H_INCLUDED */
-
- of the standard include file /usr/include/stdio.h. If this has
- already been done to the copy in /usr/local/lib/gcc-include/stdio.h,
- you probably don't have to do this.
-
- c. In whichever stdio.h file is relevant, ensure that:
-
- i. The definition of va_list has been removed
- ii. add #define _SIZE_T to mark the typedef of size_t there.
-
- d. Remove the definition of time_t and size_t from the relevant time.h
-
- 3. In the GCC source directory, add gnulib2 to gnulib by typing
-
- make gnulib2
-
- Install this version of gnulib as /usr/local/lib/gcc-gnulib
-
- 4. unpack g++ in the Gnu source directory, so that the current
- directory contains the following directories,
-
- gcc-1.37/
- g++-1.37.0/
-
- 5. mkdir g++
-
- 6. ln g++-1.37.0/* g++
-
- 7. cd g++
-
- 8. patch -p < g++-x386.pch # the patch contained within this kit.
- # (or just feed the kit itself to patch)
- 9. make maketest
-
- (ignore errors from ln)
-
- 10. sh config.g++ xenix386
-
- 11. Edit the Makefile to taste.
- Pay particular attention to the value of COFFLAGS: current Xenix
- versions of /lib/ldr require the definition of FASCIST_LDR.
-
- You need to define FASCIST_LDR if ld -r truncates symbols to 40
- characters. You can check this by compiling one-line the program:
-
- aaaaaaaaTaaaaaaaaaTaaaaaaaaaTaaaaaaaaaT123456789T123456789T(){}
-
- with the commands:
-
- gcc -c test.c
- ld -r -o test.R test.o
-
- The command:
-
- nm test.R
-
- will then show if the name has been truncated. (If nm reports
- 'symbol table read error' or something to that effect, then ld -r
- may possibly be working.) The ldr in SLS fix lng238 *should* not have
- needed FASCIST_LDR, but it core dumps when linking groff, so you
- apprently still need to define FASCIST_LDR with it. Sigh.
-
- 12. make
-
- 13. make install
-
- 14. Enjoy!
-
- Steve.
- (steve@robobar.co.uk)
-