diff options
author | Eli Zaretskii <eliz@gnu.org> | 2000-03-19 11:53:24 +0000 |
---|---|---|
committer | Eli Zaretskii <eliz@gnu.org> | 2000-03-19 11:53:24 +0000 |
commit | ded59a1e28dc98f0198900bf4c08097f01eb7c6d (patch) | |
tree | 8bd70d416b475d817ac60e9f605475218dd8d3bf /gdb/config/djgpp/README | |
parent | 615b480ff2f023441df3d2f5e7ccdd70a27dc608 (diff) | |
download | gdb-ded59a1e28dc98f0198900bf4c08097f01eb7c6d.zip gdb-ded59a1e28dc98f0198900bf4c08097f01eb7c6d.tar.gz gdb-ded59a1e28dc98f0198900bf4c08097f01eb7c6d.tar.bz2 |
Support for building GDB with DJGPP, and running the test suite on
it:
* config/djgpp/djconfig.sh: New file.
* config/djgpp/config.sed: New file.
* config/djgpp/README: New file.
* config/djgpp/fnchange.lst: New file.
* config/djgpp/djcheck.sh: New file.
Diffstat (limited to 'gdb/config/djgpp/README')
-rw-r--r-- | gdb/config/djgpp/README | 172 |
1 files changed, 172 insertions, 0 deletions
diff --git a/gdb/config/djgpp/README b/gdb/config/djgpp/README new file mode 100644 index 0000000..cced234 --- /dev/null +++ b/gdb/config/djgpp/README @@ -0,0 +1,172 @@ + + How to build and install the DJGPP native version of GDB + ******************************************************** + +General +======= + +GDB built with DJGPP supports native DJGPP debugging, whereby you run +gdb.exe and the program being debugged on the same machine. In +addition, this version supports remote debugging via a serial port, +provided that the target machine has a GDB-compatible debugging stub +which can be linked with the target program (see the section "Remote +Serial" in the GDB manual for more details). + + +Installation of the binary distribution +======================================= + +Simply unzip the gdbNNNb.zip file (where NNN is the version number) +from the top DJGPP installation directory. Be sure to preserve the +directory structure while you unzip (use -d switch if you do this with +PKUNZIP). On Windows 9X and Windows 2000, use an unzip program which +supports long file names; one such program is unzip32.exe, available +from the DJGPP sites. + +If you need the libraries which are built as part of GDB, install the +companion file gdbNNNa.zip. This allows to develop applications which +use the same functions as GDB. For example, you can build your own +front end to the debugger. + + +Rebuilding GDB from sources +=========================== + +1. Prerequisites + ------------- +To build the package, you will need the DJGPP development environment +(GCC, header files, and the libraries), and also DJGPP ports of the +following tools: + + - GNU Make 3.78.1 or later + - Bash 2.03 or later + - GNU Sed + - GNU Fileutils + - GNU Textutils 2.0 or later + - GNU Sh-utils + - GNU Grep 2.4 or later + - GNU Findutils + - GNU Awk 3.04 or later + - GNU Bison (only if you change one of the gdb/*.y files) + - Groff (only if you need to format the man pages) + - GNU Diffutils (only if you run the test suite) + +These programs should be available from the DJGPP sites, in the v2gnu +directory. In addition, the configuration script invokes the `update' +and `utod' utilities which are part of the basic DJGPP development kit +(djdevNNN.zip). + + +2. Unpacking the sources + --------------------- +If you download the source distribution from one of the DJGPP sites, +just unzip it while preserving the directory structure (I suggest to +use unzip32.exe available with the rest of DJGPP), and proceed to the +section "How to build" below. + +Source distributions downloaded from one of the GNU FTP sites need +some more work to unpack. First, you MUST use the `djtar' program to +unzip the package. That's because some file names in the official +distributions need to be changed to avoid problems on the various +platforms supported by DJGPP. `djtar' can rename files on the fly +given a file with name mappings; the distribution includes a file +`gdb/config/djgpp/fnchange.lst' with the necessary mappings. So you +need first to retrieve that file, and then invoke `djtar' to unpack +the distribution. Here's how: + + + djtar -x -p -o gdb-5.0/gdb/config/djgpp/fnchange.lst gdb-5.0.tar.gz > lst + djtar -x -n lst gdb-5.0.tar.gz + +(The name of the distribution archive and the top-level directory will +be different for versions other than 5.0.) + + +3. How to build + ------------ + +The source distribution available from DJGPP archives is already +configured for DJGPP v2.x, so if you only want to compile it, just +invoke Make: + + make + +To build a package downloaded from a GNU FTP site, you will need o +configure it first. You will also need to configure it if you want to +change the configuration options (e.g., compile with support for the +GDBMI interface). To configure GDB, type this command: + + sh ./gdb/config/djgpp/djconfig.sh + +This script checks the unpacked distribution, then edits the configure +scripts in the various subdirectories, to make them suitable for +DJGPP, and finally invokes the top-level configure script, which +recursively configures all the subdirectories. + +You may pass optional switches to djconfig.sh. It accepts all the +switches accepted by the original GDB configure script. These +switches are described in the file gdb/README, and their full list be +displayed by running the following command: + + sh ./gdb/configure --help + +NOTE: if you *do* use optional command-line switches, you MUST pass +to the script the name of the directory where GDB sources are +unpacked--even if you are building GDB in-place! For example: + + sh ./gdb/config/djgpp/djconfig.sh . --enable-gdbmi + +It is also possible to build GDB in a directory that is different from +the one where the sources were unpacked. In that case, you have to +pass the source directory as the first argument to the script: + + sh ./gdb/config/djgpp/djconfig.sh d:/gnu/gdb-5.0 + +You MUST use forward slashes in the first argument. + +After the configure script finishes, run Make: + + make + +When Make finishes, you can install the package: + + make install INSTALL='/dev/env/DJDIR/bin/ginstall -c' + +The above doesn't install the docs; for that you will need to say +this: + + make -k install-info INSTALL='/dev/env/DJDIR/bin/ginstall -c' + +(The -k switch is required, because some unneeded targets that are +part of the install process fail; -k lets Make run to completion +nonetheless.) + +The test suite has been made to work with DJGPP. If you make a change +in some of the programs, or want to be sure you have a fully +functional GDB executable, it is a good idea to run the test suite. +You cannot use "make check" for that, since it will want to run the +`dejagnu' utility which GDB doesn't support. Instead, use the special +script gdb/config/djgpp/djcheck.sh, like this: + + cd gdb/testsuite + sh ../config/djgpp/djcheck.sh + +This will run for a while and should not print anything. Any test +that fails to produce the expected output will cause the diffs between +the expected and the actual output be printed, and in addition will +leave behind a file SOMETHING.tst (where SOMETHING is the name of one +of the tests). You should compare each of the *.tst files with the +corresponding *.out file and convince yourself that the differences do +not indicate a real problem. Examples of differences you can +disregard are changes in the copyright blurb printed by GDB, values of +unitialized variables, addresses of global variables like argv[] and +envp[] (which depend on the size of your environment), etc. + +Note that djcheck.sh only recurses into those of the subdirectories of +the test suite which test features supported by the DJGPP port of GDB. +For example, the tests in the gdb.gdbtk, gdb.threads, and gdb.hp +directories are not run. + + +Enjoy, + Eli Zaretskii <eliz@is.elta.co.il> |