home *** CD-ROM | disk | FTP | other *** search
/ Black Box 4 / BlackBox.cdr / progc / djgas138.arj / README < prev    next >
Text File  |  1992-04-13  |  15KB  |  383 lines

  1.  
  2. This is the README file for DJ's GCC port to DOS ("djgpp")
  3.  
  4. Contents:
  5.     * Overview
  6.     * What's available
  7.     * How to install
  8.     * Deviations and Caveats
  9.     * Copyright information
  10.  
  11. Disclaimer: This software is distributed WITHOUT ANY WARRANTY; without
  12. even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  13. PURPOSE.
  14.  
  15. DJ Delorie
  16. USmail: 24 Kirsten Ave, Rochester, NH 03867-2954, USA
  17. email:  dj@ctron.com
  18.  
  19. mailing list: djgpp@sun.soe.clarkson.edu (listserv@sun.soe.clarkson.edu)
  20.  
  21.  
  22.  
  23.  
  24. Overview:
  25.  
  26. This package contains a 32-bit 80386 DOS extender with symbolic
  27. debugger, a C/C++ compiler with utilities, development libraries, and
  28. source code.  It generates full 32-bit programs and supports full
  29. virtual memory with paging to disk. 
  30.  
  31. Requirements:
  32.  
  33. A 80386-based IBM compatible PC or PS/2, approximately 4-5Mb of hard
  34. drive space, and 512K RAM. 
  35.  
  36. Supported Wares:
  37.  
  38. * Up to 128M of extended memory (expanded under VCPI)
  39. * Up to 128M of disk space used for swapping
  40. * SuperVGA 256-color mode up to 1024x768
  41. * 80387
  42. * XMS & VDISK memory allocation strategies
  43. * VCPI programs, such as QEMM and 386MAX
  44.  
  45. Unsupported:
  46.  
  47. * DPMI programs, such as Windows 3.0
  48. * Multiprocessing (fork())
  49.  
  50.  
  51.  
  52.  
  53. File location:
  54.  
  55.     host:      grape.ecs.clarkson.edu
  56.     login:     ftp
  57.     password:  send your e-mail address
  58.     directory: ~ftp/pub/msdos/djgpp
  59.  
  60. Many thanks to the sysops at Clarkson for providing a home to djgpp!
  61.  
  62. As a convenience to non-FTP users, djgpp is also stored on Clarkson's
  63. archive server, sun.soe.clarkson.edu.  To access the archive server,
  64. do this:
  65.    % mail archive-server@sun.soe.clarkson.edu
  66.    Subject: <none>
  67.    help
  68.    index msdos/djgpp
  69.    ^D
  70.  
  71. NOTE: In accordance with FSF CopyLeft, you are not allowed to upload
  72. this program to a distribution site unless that site also makes the FSF
  73. sources for these programs available.  Please read the file COPYING for
  74. more details.  FSF sources are available on prep.ai.mit.edu, and on
  75. either grape.ecs.clarkson.edu or sun.soe.clarkson.edu
  76.  
  77. NOTE: If your application links in object modules that were written
  78. by FSF, your application counts as a "derived work" and must obey
  79. the provisions of the FSF Copyrights.  See the file COPYING for
  80. details.  Specifically, the C++ classes in libc.a and obstacks are
  81. FSF works that are covered by the GNU GPL.  The mere act of compiling
  82. does not affect the copyright status of your program.
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92. INSTALLING:
  93.  
  94. To install, you must do the following:
  95.  
  96. * Create a "temp" directory, like c:\tmp.
  97.  
  98. * Create a directory to install in, like c:\djgpp.
  99.  
  100. * Un-zip djgpp.zip in the install directory.
  101.     C:\DJGPP> pkunzip -d djgpp.zip
  102.  
  103. * Add the following lines to C:\AUTOEXEC.BAT:
  104.     set COMPILER_PATH=c:/djgpp/bin
  105.     set C_INCLUDE_PATH=c:/djgpp/include
  106.     set CPLUS_INCLUDE_PATH=c:/djgpp/cplusinc:c:/djgpp/include
  107.     set OBJC_INCLUDE_PATH=c:/djgpp/include
  108.     set OBJCPLUS_INCLUDE_PATH=c:/djgpp/include
  109.     set LIBRARY_PATH=c:/djgpp/lib
  110.     set TEMP=c:/tmp
  111.              ^^^ this is where gcc's temp files go
  112.     set GO32TMP=c:/tmp
  113.                 ^^^ this is where your paging file goes
  114.     set GO32=ansi driver c:/djgpp/drivers/SOMETHING.grd gw 1024 gh 768
  115.                          ^^^ whatever driver works with your VGA (optional)
  116.     set BISON_SIMPLE=c:/djgpp/lib/bison.simple
  117.     set BISON_HAIRY=c:/djgpp/lib/bison.hairy
  118.     set FLEX_SKELETON=c:/djgpp/lib/flex.skeleton
  119.  
  120.   GO32TMP is where go32 puts its paging file (TMP and TEMP are checked,
  121.   in that order, also)
  122.  
  123.   Remember that unless you manually type these at the command line,
  124.   they won't take effect until you reboot.  Don't include the "ansi"
  125.   keyword in the "go32" variable if you don't have an ANSI.SYS driver
  126.   or equivalent.
  127.  
  128. * Add your binaries directory to your PATH in C:\AUTOEXEC.BAT
  129.     SET PATH= . . . ;C:\DJGPP\BIN
  130.  
  131. That's it! djgpp is now installed on your system.
  132.  
  133.  
  134.  
  135.  
  136.  
  137. The GO32 environment variable:
  138.  
  139.  
  140. This variable controls the options available in go32 or debug32.  The
  141. syntax of this variable is:
  142.  
  143.   SET GO32=[parm [value]] [parm [value]] . . .
  144.  
  145. Parameters:
  146.  
  147.   ansi           Use ANSI commands to control the color in debug32
  148.   mono           Use the Monochrome monitor for debugging - useful when
  149.                    debugging graphics applications
  150.   1rm            Redirect stdout (file #1) to the monochrome monitor
  151.   2rm            Redirect stderr (file #2) to the monochrome monitor
  152.   1r2            Redirect stdout (file #1) to stderr (file #2)
  153.   2r1            Redirect stderr (file #2) to stdout (file #1)
  154.  
  155.   glob           enable globbing (default)
  156.   noglob         disable globbing
  157.  
  158.   emu [path]     Use the specified file as the 80387 emulator
  159.  
  160.   driver [path]  Use the specified file as the graphics driver
  161.   gw [width]     Default graphics width
  162.   gh [height]    Default graphics height
  163.   tw [width]     Default text width
  164.   th [height]    Default text height
  165.   nc [colors]    Number of colors (for new-style drivers only - see cbgrx100.zip)
  166.  
  167.  
  168. These parameters may occur in any order.
  169.  
  170. Note that "1rm" and "2rm" are done before "1r2" and "2r1", so "1rm 2r1" sends
  171. stdout to the mono monitor and stderr to any redirection used.
  172.  
  173. Examples:
  174.  
  175.   C:\> set GO32=mono driver c:\djgpp\drivers\tseng4k.grd gw 1024 gh 768 tw 132 th 43 nc 256
  176.   C:\> set GO32=ansi
  177.   C:\> set GO32=driver c:\djgpp\drivers\tseng4k.grd ansi
  178.   C:\> set GO32=mono 1rm 2rm
  179.  
  180.  
  181.  
  182.  
  183.  
  184.  
  185.  
  186.  
  187.  
  188.  
  189. Deviations and Caveats:
  190.  
  191. GCC/G++ deviates from the U**x version in a number of ways, mostly to
  192. accomodate deficiencies in the MS-DOS environment, and my own laziness.
  193.  
  194. * An 80387 is required to do floating point.  An emulator is provided.
  195.   cc1 and cc1plus shouldn't use the 387 unless compiling floating point
  196.   code.  The environment variable "387" can override the auto-detection
  197.   routine:
  198.     SET 387=YES   to force 387 handlers to be enabled
  199.     SET 387=NO    to force 387 accesses to fault
  200.     SET 387=QUERY to get a message showing the results of the auto-detection
  201.   If no 80387 is present and the program attempts to use it, a message
  202.   indicating where the instruction is will be displayed.  To use the
  203.   387 emulator, add "emu c:\djgpp\emu387\emu387" to the GO32 environment
  204.   variable.  Specifying use of the emulator overrides the "387"
  205.   environment variable.
  206.  
  207. * The VDISK method of allocating extended memory is supported.  The
  208.   INT 15h method is also.  When the extender runs out of conventional and
  209.   extended memory, it uses a paging file named $(GO32TMP)/pageXXXX.386, where
  210.   XXXX is an unspecified hex value.  This file is normally removed on exit.
  211.  
  212. * Up to 128 MB of physical memory and 128 MB of disk swap space are allowed.
  213.   A 512K machine is sufficient, but very slow due to paging.
  214.  
  215. * The utilies support the MS-DOS standard response file method for giving
  216.   more than 128 bytes of command line.  Example: "gcc -o foo @foo.lnk" where
  217.   foo.lnk contains a list of .o files.  Wildcard expansion (globbing) is
  218.   performed on the parameters, unless they are surrounded by single quotes.
  219.   Double quotes can be used to prevent spaces from separating arguments.
  220.  
  221. * Since MS-DOS does not distinguish case in file names, some .h files
  222.   used for C++ have had underscores prepended to them to avoid conflict
  223.   (ie: String.h conflicts with string.h, so it became _String.h).
  224.  
  225. * When using ar to create archives, be warned that the ar version
  226.   supplied cannot update an archive that's been sequenced (ar s foo.a),
  227.   and cannot sequence a file that's been sequenced.  Also, ld cannot
  228.   use an archive that's not sequenced.  The following method is suggested:
  229.       ar rv mylib.a $(OBJS)
  230.       cp mylib.a mylib2.a
  231.       ar rvs mylib2.a
  232.       (and then link with mylib2.a)
  233.  
  234. * The extender can be added to any gcc-compiled program by copying go32.exe
  235.   to be <program>.exe, where <program> is the 32-bit program.  For example,
  236.   if "hello" is a gcc-compiled a.out file, and "hello.exe" is a copy of
  237.   go32.exe, then when "hello.exe" runs, it loads the file called "hello"
  238.   in the same directory, and executes it if present.  Otherwise,
  239.   the first parameter is the executable (ie: go32 cc1plus foo.cc).
  240.  
  241. * The extender can be merged to create one .exe file that is the extender
  242.   and the executable in one file, by using the stub.exe program:
  243.       copy /b stub.exe+myprog myprog.exe
  244.   This will only work if go32.exe is in your search path, because stub.exe
  245.   runs it.  Alternatively, you can prepend go32.exe itself to an a.out file
  246.   to get a single executable (stub.exe is much smaller).  Note that if
  247.   you re-compile go32 or stub, you must strip off the symbol table first. 
  248.  
  249. * The extender runs programs at logical address 0.  A copy of the first
  250.   1 MB of physical memory (including the AT channel) is mapped to
  251.   0xE0000000 in the program's address space.  The stack grows down from
  252.   0x7FFFFFFC in the program's address space.  Data usually starts at
  253.   0x00400000.
  254.  
  255. * The paging mechanism understands how SuperVGA's map their memory onto
  256.   the AT bus and automatically swaps pages as the program tries to
  257.   access them.  The program sees a linear range from 0xD0000000 to
  258.   0xD0100000 that corresponds to each pixel in the 256-color modes
  259.   of SuperVGAs.  To use this feature, you'll have to set the GO32
  260.   environment variable like this:
  261.     C>set go32=driver c:\djgpp\drivers\tseng4k.grd gw 640 gh 480 tw 132 th 43
  262.   These parameter pairs can be omitted or rearranged as needed.  They are
  263.   the "driver" name, default graphics width and height, and default
  264.   text width and height. Libgr.a doesn't have to be recompiled, nor
  265.   do graphics programs, when a different graphics mode is selected
  266.   (the extender handles it).  It is strongly recommended that the program
  267.   use the GR_default_graphics and GR_default_text modes to switch to
  268.   graphics or text.  These modes use the parameters specified by the
  269.   GO32 environment variable, allowing the user to select a favorite
  270.   graphics and text mode.
  271.  
  272. * Symbols are stored in virtual memory, so you won't run out of symbol
  273.   space until both extended memory and the disk are all used up.  For
  274.   large programs, you might notice a slight delay while it looks up
  275.   symbols.  Programs with a lot of lines in a given module may run out
  276.   of memory as the line number table is built in real memory and transferred
  277.   to virtual memory.
  278.  
  279. * Signals are not reported to the program.  However, interrupts do continue
  280.   to get serviced while in protected mode (ie: keypress, timer, etc).
  281.   CTRL-C will get you back to the debugger in debug32, and you can continue
  282.   from where you stopped.  All signals (ie: exceptions) cause debugging
  283.   traps in debug32, or general faults in go32.
  284.  
  285.  
  286.  
  287. Copyright Information:
  288.  
  289. * Source code for the GNU utilities is copyright (c) Free Software Foundation.
  290.   For more information on the FSF copyright, see their source code or write
  291.   Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  292.  
  293.   A copy of their file "COPYING" is included in the docs directory.  Some of
  294.   the FSF source code has been modified to operate properly in the MS-DOS
  295.   environment.
  296.  
  297. * Source code for most of libc.a are copyright (c) Regents of the University
  298.   of California.  These files include copyright information in them.  The
  299.   utilities are compiled against these libraries, and thus contain software
  300.   developed by the University of California, Berkeley, and its contributors.
  301.   Some of the BSD source code has been modified to operate properly in the
  302.   MS-DOS environment.
  303.  
  304. * Any sources not falling under the copyrights of FSF or UCB (as above) are
  305.   Copyright (c) 1991 DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954.
  306.   To contact me via E-Mail, sent to "dj@ctron.com".  Cabletron Systems Inc
  307.   is in no way involved with this project; I just happen to work for them
  308.   during the day.
  309.  
  310. Terms and Conditions:
  311.  
  312. * Source code copyright FSF is distributed under the terms of the GNU
  313.   Public General License.  See the file "COPYING" in doc.arc for more
  314.   information.  If your program links in object modules (in libc.a) that
  315.   are compiled from GNU sources, then your entire program must be
  316.   distributed under the terms of the GNU GPL as a "derived work".  These
  317.   modules are the C++ class library (including the streams classes) and
  318.   obstacks.  The sources in libsrc have the copyright notices in them
  319.   for the various modules.
  320.  
  321. * Source code copyright UCB is distributed under the terms listed in the
  322.   UCB source code itself.
  323.  
  324. * Source code copyright DJ Delorie is distributed under the terms of the
  325.   GNU General Public Licence, with the following exceptions:
  326.   ("go32.exe" refers to go32.exe and debug32.exe)
  327.  
  328.   * There are no conditions on distributing copies of stub.exe as
  329.     it is originally distributed in this software package.
  330.  
  331.   * If a user creates an application, prepends a copy of go32.exe onto
  332.     the beginning of it, and distributes it free of charge, then the
  333.     user is under no obligations to distribute source or pay royalties.
  334.     Note that the copyright terms of the FSF and/or UCB must be
  335.     obeyed regardless of this.
  336.   
  337.   * If a user creates an application, prepends a copy of go32.exe onto
  338.     the beginning of it, and charges a fee for the software, then a
  339.     royalty of $5 or 5% of the selling price per copy sold must be paid
  340.     to DJ Delorie, 24 Kirsten Ave, Rochester NH 03867-2954.  Note that
  341.     shareware programs are not considered "sold" until payment is rendered
  342.     for them.
  343.  
  344.   * For all other cases, source code for go32.exe must be distributed
  345.     with any distributed copies of go32.exe.
  346.   
  347.   * Software that requires go32.exe to run, but is not distributed with
  348.     a copy of go32.exe, incurs no obligations with regards to the
  349.     above sections.
  350.  
  351.   * Contact me for special terms if none of the above are suitable.
  352.  
  353.   * Donations are always appreciated.
  354.  
  355.   The intent of this copyright is this: If you make money by using the
  356.   programs I wrote, I get some of it.  If you use your sources to
  357.   teach others how to write programs, I'll support you.
  358.  
  359.   Changes to source code copyright BSD or FSF are copyright DJ Delorie, but
  360.   fall under the terms of the original copyright.
  361.  
  362.  
  363.  
  364.  
  365.  
  366. Donations may be made to any of the following:
  367.  
  368.     DJ Delorie
  369.     24 Kirsten Ave
  370.     Rochester, NH  03867-2954
  371.     USA
  372.  
  373.     Free Software Foundation
  374.     675 Mass Ave
  375.     Cambridge, MA  02139
  376.     USA
  377.  
  378.     Computer Systems Research Group
  379.     Computer Science Division, EECS
  380.     University of California
  381.     Berkeley, California  94720
  382.     USA
  383.