1 README for GDB release 2 3This is GDB, the GNU source-level debugger. 4 5A summary of new features is in the file `gdb/NEWS'. 6 7Check the GDB home page at http://www.gnu.org/software/gdb/ for up to 8date release information, mailing list links and archives, etc. 9 10GDB's bug tracking data base can be found at 11http://www.gnu.org/software/gdb/bugs/ 12 13Unpacking and Installation -- quick overview 14========================== 15 16 The release is provided as a gzipped tar file called 17'gdb-VERSION.tar.gz', where VERSION is the version of GDB. 18 19 The GDB debugger sources, the generic GNU include 20files, the BFD ("binary file description") library, the readline 21library, and other libraries all have directories of their own 22underneath the gdb-VERSION directory. The idea is that a variety of GNU 23tools can share a common copy of these things. Be aware of variation 24over time--for example don't try to build GDB with a copy of bfd from 25a release other than the GDB release (such as a binutils release), 26especially if the releases are more than a few weeks apart. 27Configuration scripts and makefiles exist to cruise up and down this 28directory tree and automatically build all the pieces in the right 29order. 30 31 When you unpack the gdb-VERSION.tar.gz file, it will create a 32source directory called `gdb-VERSION'. 33 34You can build GDB right in the source directory: 35 36 cd gdb-VERSION 37 ./configure --prefix=/usr/local (or wherever you want) 38 make all install 39 40However, we recommend that an empty directory be used instead. 41This way you do not clutter your source tree with binary files 42and will be able to create different builds with different 43configuration options. 44 45You can build GDB in any empty build directory: 46 47 mkdir build 48 cd build 49 <full path to your sources>/gdb-VERSION/configure [etc...] 50 make all install 51 52(Building GDB with DJGPP tools for MS-DOS/MS-Windows is slightly 53different; see the file gdb-VERSION/gdb/config/djgpp/README for details.) 54 55 This will configure and build all the libraries as well as GDB. If 56`configure' can't determine your system type, specify one as its 57argument, e.g., `./configure sun4' or `./configure decstation'. 58 59 Make sure that your 'configure' line ends in 'gdb-VERSION/configure': 60 61 /berman/migchain/source/gdb-VERSION/configure # RIGHT 62 /berman/migchain/source/gdb-VERSION/gdb/configure # WRONG 63 64 The GDB package contains several subdirectories, such as 'gdb', 65'bfd', and 'readline'. If your 'configure' line ends in 66'gdb-VERSION/gdb/configure', then you are configuring only the gdb 67subdirectory, not the whole GDB package. This leads to build errors 68such as: 69 70 make: *** No rule to make target `../bfd/bfd.h', needed by `gdb.o'. Stop. 71 72 If you get other compiler errors during this stage, see the `Reporting 73Bugs' section below; there are a few known problems. 74 75 GDB's `configure' script has many options to enable or disable 76different features or dependencies. These options are not generally 77known to the top-level `configure', so if you want to see a complete 78list of options, invoke the subdirectory `configure', like: 79 80 /berman/migchain/source/gdb-VERSION/gdb/configure --help 81 82 (Take note of how this differs from the invocation used to actually 83configure the build tree.) 84 85 GDB requires a C++11 compiler. If you do not have a 86C++11 compiler for your system, you may be able to download and install 87the GNU CC compiler. It is available via anonymous FTP from the 88directory `ftp://ftp.gnu.org/pub/gnu/gcc'. GDB also requires an ISO 89C standard library. The GDB remote server, GDBserver, builds with some 90non-ISO standard libraries - e.g. for Windows CE. 91 92 GDB can optionally be built against various external libraries. 93These dependencies are described below in the "`configure options" 94section of this README. 95 96 GDB can be used as a cross-debugger, running on a machine of one 97type while debugging a program running on a machine of another type. 98See below. 99 100 101More Documentation 102****************** 103 104 All the documentation for GDB comes as part of the machine-readable 105distribution. The documentation is written in Texinfo format, which 106is a documentation system that uses a single source file to produce 107both on-line information and a printed manual. You can use one of the 108Info formatting commands to create the on-line version of the 109documentation and TeX (or `texi2roff') to typeset the printed version. 110 111 GDB includes an already formatted copy of the on-line Info version 112of this manual in the `gdb/doc' subdirectory. The main Info file is 113`gdb-VERSION/gdb/doc/gdb.info', and it refers to subordinate files 114matching `gdb.info*' in the same directory. If necessary, you can 115print out these files, or read them with any editor; but they are 116easier to read using the `info' subsystem in GNU Emacs or the 117standalone `info' program, available as part of the GNU Texinfo 118distribution. 119 120 If you want to format these Info files yourself, you need one of the 121Info formatting programs, such as `texinfo-format-buffer' or 122`makeinfo'. 123 124 If you have `makeinfo' installed, and are in the top level GDB 125source directory (`gdb-VERSION'), you can make the Info file by 126typing: 127 128 cd gdb/doc 129 make info 130 131 If you want to typeset and print copies of this manual, you need 132TeX, a program to print its DVI output files, and `texinfo.tex', the 133Texinfo definitions file. This file is included in the GDB 134distribution, in the directory `gdb-VERSION/texinfo'. 135 136 TeX is a typesetting program; it does not print files directly, but 137produces output files called DVI files. To print a typeset document, 138you need a program to print DVI files. If your system has TeX 139installed, chances are it has such a program. The precise command to 140use depends on your system; `lpr -d' is common; another (for PostScript 141devices) is `dvips'. The DVI print command may require a file name 142without any extension or a `.dvi' extension. 143 144 TeX also requires a macro definitions file called `texinfo.tex'. 145This file tells TeX how to typeset a document written in Texinfo 146format. On its own, TeX cannot read, much less typeset a Texinfo file. 147 `texinfo.tex' is distributed with GDB and is located in the 148`gdb-VERSION/texinfo' directory. 149 150 If you have TeX and a DVI printer program installed, you can typeset 151and print this manual. First switch to the `gdb' subdirectory of 152the main source directory (for example, to `gdb-VERSION/gdb') and then type: 153 154 make doc/gdb.dvi 155 156 If you prefer to have the manual in PDF format, type this from the 157`gdb/doc' subdirectory of the main source directory: 158 159 make gdb.pdf 160 161For this to work, you will need the PDFTeX package to be installed. 162 163 164Installing GDB 165************** 166 167 GDB comes with a `configure' script that automates the process of 168preparing GDB for installation; you can then use `make' to build the 169`gdb' program. 170 171 The GDB distribution includes all the source code you need for GDB in 172a single directory. That directory contains: 173 174`gdb-VERSION/{COPYING,COPYING.LIB}' 175 Standard GNU license files. Please read them. 176 177`gdb-VERSION/bfd' 178 source for the Binary File Descriptor library 179 180`gdb-VERSION/config*' 181 script for configuring GDB, along with other support files 182 183`gdb-VERSION/gdb' 184 the source specific to GDB itself 185 186`gdb-VERSION/include' 187 GNU include files 188 189`gdb-VERSION/libiberty' 190 source for the `-liberty' free software library 191 192`gdb-VERSION/opcodes' 193 source for the library of opcode tables and disassemblers 194 195`gdb-VERSION/readline' 196 source for the GNU command-line interface 197 NOTE: The readline library is compiled for use by GDB, but will 198 not be installed on your system when "make install" is issued. 199 200`gdb-VERSION/sim' 201 source for some simulators (ARM, D10V, SPARC, M32R, MIPS, PPC, V850, etc) 202 203`gdb-VERSION/texinfo' 204 The `texinfo.tex' file, which you need in order to make a printed 205 manual using TeX. 206 207`gdb-VERSION/etc' 208 Coding standards, useful files for editing GDB, and other 209 miscellanea. 210 211 Note: the following instructions are for building GDB on Unix or 212Unix-like systems. Instructions for building with DJGPP for 213MS-DOS/MS-Windows are in the file gdb/config/djgpp/README. 214 215 The simplest way to configure and build GDB is to run `configure' 216from the `gdb-VERSION' directory. 217 218 First switch to the `gdb-VERSION' source directory if you are 219not already in it; then run `configure'. 220 221 For example: 222 223 cd gdb-VERSION 224 ./configure 225 make 226 227 Running `configure' followed by `make' builds the `bfd', 228`readline', `mmalloc', and `libiberty' libraries, then `gdb' itself. 229The configured source files, and the binaries, are left in the 230corresponding source directories. 231 232 `configure' is a Bourne-shell (`/bin/sh') script; if your system 233does not recognize this automatically when you run a different shell, 234you may need to run `sh' on it explicitly: 235 236 sh configure 237 238 If you run `configure' from a directory that contains source 239directories for multiple libraries or programs, `configure' creates 240configuration files for every directory level underneath (unless 241you tell it not to, with the `--norecursion' option). 242 243 You can install `gdb' anywhere; it has no hardwired paths. However, 244you should make sure that the shell on your path (named by the `SHELL' 245environment variable) is publicly readable. Remember that GDB uses the 246shell to start your program--some systems refuse to let GDB debug child 247processes whose programs are not readable. 248 249 250Compiling GDB in another directory 251================================== 252 253 If you want to run GDB versions for several host or target machines, 254you need a different `gdb' compiled for each combination of host and 255target. `configure' is designed to make this easy by allowing you to 256generate each configuration in a separate subdirectory, rather than in 257the source directory. If your `make' program handles the `VPATH' 258feature correctly (GNU `make' and SunOS 'make' are two that should), 259running `make' in each of these directories builds the `gdb' program 260specified there. 261 262 To build `gdb' in a separate directory, run `configure' with the 263`--srcdir' option to specify where to find the source. (You also need 264to specify a path to find `configure' itself from your working 265directory. If the path to `configure' would be the same as the 266argument to `--srcdir', you can leave out the `--srcdir' option; it 267will be assumed.) 268 269 For example, you can build GDB in a separate 270directory for a Sun 4 like this: 271 272 cd gdb-VERSION 273 mkdir ../gdb-sun4 274 cd ../gdb-sun4 275 ../gdb-VERSION/configure 276 make 277 278 When `configure' builds a configuration using a remote source 279directory, it creates a tree for the binaries with the same structure 280(and using the same names) as the tree under the source directory. In 281the example, you'd find the Sun 4 library `libiberty.a' in the 282directory `gdb-sun4/libiberty', and GDB itself in `gdb-sun4/gdb'. 283 284 One popular reason to build several GDB configurations in separate 285directories is to configure GDB for cross-compiling (where GDB runs on 286one machine--the host--while debugging programs that run on another 287machine--the target). You specify a cross-debugging target by giving 288the `--target=TARGET' option to `configure'. 289 290 When you run `make' to build a program or library, you must run it 291in a configured directory--whatever directory you were in when you 292called `configure' (or one of its subdirectories). 293 294 The `Makefile' that `configure' generates in each source directory 295also runs recursively. If you type `make' in a source directory such 296as `gdb-VERSION' (or in a separate configured directory configured with 297`--srcdir=PATH/gdb-VERSION'), you will build all the required libraries, 298and then build GDB. 299 300 When you have multiple hosts or targets configured in separate 301directories, you can run `make' on them in parallel (for example, if 302they are NFS-mounted on each of the hosts); they will not interfere 303with each other. 304 305 306Specifying names for hosts and targets 307====================================== 308 309 The specifications used for hosts and targets in the `configure' 310script are based on a three-part naming scheme, but some short 311predefined aliases are also supported. The full naming scheme encodes 312three pieces of information in the following pattern: 313 314 ARCHITECTURE-VENDOR-OS 315 316 For example, you can use the alias `sun4' as a HOST argument or in a 317`--target=TARGET' option. The equivalent full name is 318`sparc-sun-sunos4'. 319 320 The `configure' script accompanying GDB does not provide any query 321facility to list all supported host and target names or aliases. 322`configure' calls the Bourne shell script `config.sub' to map 323abbreviations to full names; you can read the script, if you wish, or 324you can use it to test your guesses on abbreviations--for example: 325 326 % sh config.sub sun4 327 sparc-sun-sunos4.1.1 328 % sh config.sub sun3 329 m68k-sun-sunos4.1.1 330 % sh config.sub decstation 331 mips-dec-ultrix4.2 332 % sh config.sub hp300bsd 333 m68k-hp-bsd 334 % sh config.sub i386v 335 i386-pc-sysv 336 % sh config.sub i786v 337 Invalid configuration `i786v': machine `i786v' not recognized 338 339`config.sub' is also distributed in the GDB source directory. 340 341 342`configure' options 343=================== 344 345 Here is a summary of the `configure' options and arguments that are 346most often useful for building GDB. `configure' also has several other 347options not listed here. There are many options to gdb's `configure' 348script, some of which are only useful in special situation. 349*note : (autoconf.info)Running configure scripts, for a full 350explanation of `configure'. 351 352 configure [--help] 353 [--prefix=DIR] 354 [--srcdir=PATH] 355 [--target=TARGET] 356 [--host=HOST] 357 [HOST] 358 359You may introduce options with a single `-' rather than `--' if you 360prefer; but you may abbreviate option names if you use `--'. Some 361more obscure GDB `configure' options are not listed here. 362 363`--help' 364 Display a quick summary of how to invoke `configure'. 365 366`-prefix=DIR' 367 Configure the source to install programs and files under directory 368 `DIR'. 369 370`--srcdir=PATH' 371 *Warning: using this option requires GNU `make', or another `make' 372 that compatibly implements the `VPATH' feature.* 373 Use this option to make configurations in directories separate 374 from the GDB source directories. Among other things, you can use 375 this to build (or maintain) several configurations simultaneously, 376 in separate directories. `configure' writes configuration 377 specific files in the current directory, but arranges for them to 378 use the source in the directory PATH. `configure' will create 379 directories under the working directory in parallel to the source 380 directories below PATH. 381 382`--host=HOST' 383 Configure GDB to run on the specified HOST. 384 385 There is no convenient way to generate a list of all available 386 hosts. 387 388`HOST ...' 389 Same as `--host=HOST'. If you omit this, GDB will guess; it's 390 quite accurate. 391 392`--target=TARGET' 393 Configure GDB for cross-debugging programs running on the specified 394 TARGET. Without this option, GDB is configured to debug programs 395 that run on the same machine (HOST) as GDB itself. 396 397 There is no convenient way to generate a list of all available 398 targets. 399 400`--enable-targets=TARGET,TARGET,...' 401`--enable-targets=all` 402 Configure GDB for cross-debugging programs running on the 403 specified list of targets. The special value `all' configures 404 GDB for debugging programs running on any target it supports. 405 406`--with-gdb-datadir=PATH' 407 Set the GDB-specific data directory. GDB will look here for 408 certain supporting files or scripts. This defaults to the `gdb' 409 subdirectory of `datadir' (which can be set using `--datadir'). 410 411`--with-relocated-sources=DIR' 412 Sets up the default source path substitution rule so that 413 directory names recorded in debug information will be 414 automatically adjusted for any directory under DIR. DIR should 415 be a subdirectory of GDB's configured prefix, the one mentioned 416 in the `--prefix' or `--exec-prefix' options to configure. This 417 option is useful if GDB is supposed to be moved to a different 418 place after it is built. 419 420`--enable-64-bit-bfd' 421 Enable 64-bit support in BFD on 32-bit hosts. 422 423`--disable-gdbmi' 424 Build GDB without the GDB/MI machine interface. 425 426`--enable-tui' 427 Build GDB with the text-mode full-screen user interface (TUI). 428 Requires a curses library (ncurses and cursesX are also 429 supported). 430 431`--with-curses' 432 Use the curses library instead of the termcap library, for 433 text-mode terminal operations. 434 435`--with-libunwind-ia64' 436 Use the libunwind library for unwinding function call stack on ia64 437 target platforms. 438 See http://www.nongnu.org/libunwind/index.html for details. 439 440`--with-system-readline' 441 Use the readline library installed on the host, rather than the 442 library supplied as part of GDB. 443 444`--with-system-zlib 445 Use the zlib library installed on the host, rather than the 446 library supplied as part of GDB. 447 448`--with-expat' 449 Build GDB with Expat, a library for XML parsing. (Done by 450 default if libexpat is installed and found at configure time.) 451 This library is used to read XML files supplied with GDB. If it 452 is unavailable, some features, such as remote protocol memory 453 maps, target descriptions, and shared library lists, that are 454 based on XML files, will not be available in GDB. If your host 455 does not have libexpat installed, you can get the latest version 456 from `http://expat.sourceforge.net'. 457 458`--with-libiconv-prefix[=DIR]' 459 Build GDB with GNU libiconv, a character set encoding conversion 460 library. This is not done by default, as on GNU systems the 461 `iconv' that is built in to the C library is sufficient. If your 462 host does not have a working `iconv', you can get the latest 463 version of GNU iconv from `https://www.gnu.org/software/libiconv/'. 464 465 GDB's build system also supports building GNU libiconv as part of 466 the overall build. See the GDB manual instructions on how to do 467 this. 468 469`--with-lzma' 470 Build GDB with LZMA, a compression library. (Done by default if 471 liblzma is installed and found at configure time.) LZMA is used 472 by GDB's "mini debuginfo" feature, which is only useful on 473 platforms using the ELF object file format. If your host does 474 not have liblzma installed, you can get the latest version from 475 `https://tukaani.org/xz/'. 476 477`--with-mpfr' 478 Build GDB with GNU MPFR, a library for multiple-precision 479 floating-point computation with correct rounding. (Done by 480 default if GNU MPFR is installed and found at configure time.) 481 This library is used to emulate target floating-point arithmetic 482 during expression evaluation when the target uses different 483 floating-point formats than the host. If GNU MPFR is not 484 available, GDB will fall back to using host floating-point 485 arithmetic. If your host does not have GNU MPFR installed, you 486 can get the latest version from `http://www.mpfr.org'. 487 488`--with-python[=PYTHON]' 489 Build GDB with Python scripting support. (Done by default if 490 libpython is present and found at configure time.) Python makes 491 GDB scripting much more powerful than the restricted CLI 492 scripting language. If your host does not have Python installed, 493 you can find it on `http://www.python.org/download/'. The oldest 494 version of Python supported by GDB is 2.4. The optional argument 495 PYTHON is used to find the Python headers and libraries. It can 496 be either the name of a Python executable, or the name of the 497 directory in which Python is installed. 498 499`--with-guile[=GUILE]' 500 Build GDB with GNU Guile scripting support. (Done by default if 501 libguile is present and found at configure time.) If your host 502 does not have Guile installed, you can find it at 503 `https://www.gnu.org/software/guile/'. The optional argument 504 GUILE can be a version number, which will cause `configure' to 505 try to use that version of Guile; or the file name of a 506 `pkg-config' executable, which will be queried to find the 507 information needed to compile and link against Guile. 508 509`--without-included-regex' 510 Don't use the regex library included with GDB (as part of the 511 libiberty library). This is the default on hosts with version 2 512 of the GNU C library. 513 514`--with-sysroot=DIR' 515 Use DIR as the default system root directory for libraries whose 516 file names begin with `/lib' or `/usr/lib'. (The value of DIR 517 can be modified at run time by using the "set sysroot" command.) 518 If DIR is under the GDB configured prefix (set with `--prefix' or 519 `--exec-prefix' options), the default system root will be 520 automatically adjusted if and when GDB is moved to a different 521 location. 522 523`--with-system-gdbinit=FILE' 524 Configure GDB to automatically load a system-wide init file. 525 FILE should be an absolute file name. If FILE is in a directory 526 under the configured prefix, and GDB is moved to another location 527 after being built, the location of the system-wide init file will 528 be adjusted accordingly. 529 530`--enable-build-warnings' 531 When building the GDB sources, ask the compiler to warn about any 532 code which looks even vaguely suspicious. It passes many 533 different warning flags, depending on the exact version of the 534 compiler you are using. 535 536`--enable-werror' 537 Treat compiler warnings as werrors. It adds the -Werror flag to 538 the compiler, which will fail the compilation if the compiler 539 outputs any warning messages. 540 541`--enable-ubsan' 542 Enable the GCC undefined behavior sanitizer. By default this is 543 disabled in GDB releases, but enabled when building from git. 544 The undefined behavior sanitizer checks for C++ undefined 545 behavior. It has a performance cost, so if you are looking at 546 GDB's performance, you should disable it. 547 548`--enable-unit-tests[=yes|no]' 549 Enable (i.e., include) support for unit tests when compiling GDB 550 and GDBServer. Note that if this option is not passed, GDB will 551 have selftests if it is a development build, and will *not* have 552 selftests if it is a non-development build. 553 554`configure' accepts other options, for compatibility with configuring 555other GNU tools recursively. 556 557 558Remote debugging 559================= 560 561 The files m68k-stub.c, i386-stub.c, and sparc-stub.c are examples 562of remote stubs to be used with remote.c. They are designed to run 563standalone on an m68k, i386, or SPARC cpu and communicate properly 564with the remote.c stub over a serial line. 565 566 The directory gdb/gdbserver/ contains `gdbserver', a program that 567allows remote debugging for Unix applications. GDBserver is only 568supported for some native configurations, including Sun 3, Sun 4, and 569Linux. 570 571 The file gdb/gdbserver/README includes further notes on GDBserver; in 572particular, it explains how to build GDBserver for cross-debugging 573(where GDBserver runs on the target machine, which is of a different 574architecture than the host machine running GDB). 575 576 577Reporting Bugs in GDB 578===================== 579 580 There are several ways of reporting bugs in GDB. The prefered 581method is to use the World Wide Web: 582 583 http://www.gnu.org/software/gdb/bugs/ 584 585As an alternative, the bug report can be submitted, via e-mail, to the 586address "bug-gdb@gnu.org". 587 588 When submitting a bug, please include the GDB version number, and 589how you configured it (e.g., "sun4" or "mach386 host, 590i586-intel-synopsys target"). Since GDB supports so many 591different configurations, it is important that you be precise about 592this. The simplest way to do this is to include the output from these 593commands: 594 595 % gdb --version 596 % gdb --config 597 598 For more information on how/whether to report bugs, see the 599Reporting Bugs chapter of the GDB manual (gdb/doc/gdb.texinfo). 600 601 602Graphical interface to GDB -- X Windows, MS Windows 603========================== 604 605 Several graphical interfaces to GDB are available. You should 606check: 607 608 https://sourceware.org/gdb/wiki/GDB%20Front%20Ends 609 610for an up-to-date list. 611 612 Emacs users will very likely enjoy the Grand Unified Debugger mode; 613try typing `M-x gdb RET'. 614 615 616Writing Code for GDB 617===================== 618 619 There is information about writing code for GDB in the file 620`CONTRIBUTE' and at the website: 621 622 http://www.gnu.org/software/gdb/ 623 624in particular in the wiki. 625 626 If you are pondering writing anything but a short patch, especially 627take note of the information about copyrights and copyright assignment. 628It can take quite a while to get all the paperwork done, so 629we encourage you to start that process as soon as you decide you are 630planning to work on something, or at least well ahead of when you 631think you will be ready to submit the patches. 632 633 634GDB Testsuite 635============= 636 637 Included with the GDB distribution is a DejaGNU based testsuite 638that can either be used to test your newly built GDB, or for 639regression testing a GDB with local modifications. 640 641 Running the testsuite requires the prior installation of DejaGNU, 642which is generally available via ftp. The directory 643ftp://sources.redhat.com/pub/dejagnu/ will contain a recent snapshot. 644Once DejaGNU is installed, you can run the tests in one of the 645following ways: 646 647 (1) cd gdb-VERSION 648 make check-gdb 649 650or 651 652 (2) cd gdb-VERSION/gdb 653 make check 654 655or 656 657 (3) cd gdb-VERSION/gdb/testsuite 658 make site.exp (builds the site specific file) 659 runtest -tool gdb GDB=../gdb (or GDB=<somepath> as appropriate) 660 661When using a `make'-based method, you can use the Makefile variable 662`RUNTESTFLAGS' to pass flags to `runtest', e.g.: 663 664 make RUNTESTFLAGS=--directory=gdb.cp check 665 666If you use GNU make, you can use its `-j' option to run the testsuite 667in parallel. This can greatly reduce the amount of time it takes for 668the testsuite to run. In this case, if you set `RUNTESTFLAGS' then, 669by default, the tests will be run serially even under `-j'. You can 670override this and force a parallel run by setting the `make' variable 671`FORCE_PARALLEL' to any non-empty value. Note that the parallel `make 672check' assumes that you want to run the entire testsuite, so it is not 673compatible with some dejagnu options, like `--directory'. 674 675The last method gives you slightly more control in case of problems 676with building one or more test executables or if you are using the 677testsuite `standalone', without it being part of the GDB source tree. 678 679See the DejaGNU documentation for further details. 680 681 682Copyright and License Notices 683============================= 684 685Most files maintained by the GDB Project contain a copyright notice 686as well as a license notice, usually at the start of the file. 687 688To reduce the length of copyright notices, consecutive years in the 689copyright notice can be combined into a single range. For instance, 690the following list of copyright years... 691 692 1986, 1988, 1989, 1991-1993, 1999, 2000, 2007, 2008, 2009, 2010, 2011 693 694... is abbreviated into: 695 696 1986, 1988-1989, 1991-1993, 1999-2000, 2007-2011 697 698Every year of each range, inclusive, is a copyrightable year that 699could be listed individually. 700 701 702(this is for editing this file with GNU emacs) 703Local Variables: 704mode: text 705End: 706