This is the file .../info/dir, which contains the
topmost node of the Info hierarchy, called (dir)Top.
The first time you invoke Info you start off looking at this node.

File: dir,	Node: Top	This is the top of the INFO tree

  This (the Directory node) gives a menu of major topics.
  Typing "q" exits, "?" lists all Info commands, "d" returns here,
  "h" gives a primer for first-timers,
  "mEmacs<Return>" visits the Emacs manual, etc.

  In Emacs, you can click mouse button 2 on a menu item or cross reference
  to select it.

* Menu:

Miscellaneous
* As: (as).                     The GNU assembler.
* Gas: (as).                    The GNU assembler.
* Ld: (ld).                       The GNU linker.
* gprof: (gprof).                Profiling your program's execution

Individual utilities
* addr2line: (binutils)addr2line. Convert addresses to file and line.
* aot-compile: (gcj)Invoking aot-compile.
                            Compile bytecode to native and generate databases.
* ar: (binutils)ar.               Create, modify, and extract from archives.
* c++filt: (binutils)c++filt.	  Filter to demangle encoded C++ symbols.
* cxxfilt: (binutils)c++filt.     MS-DOS name for c++filt.
* dlltool: (binutils)dlltool.	  Create files needed to build and use DLLs.
* gc-analyze: (gcj)Invoking gc-analyze.
                            Analyze Garbage Collector (GC) memory dumps.
* gcj-dbtool: (gcj)Invoking gcj-dbtool.
                            Tool for manipulating class file databases.
* gij: (gcj)Invoking gij.   GNU interpreter for Java bytecode
* grmic: (gcj)Invoking grmic.
                            Generate stubs for Remote Method Invocation.
* jcf-dump: (gcj)Invoking jcf-dump.
                            Print information about Java class files
* jv-convert: (gcj)Invoking jv-convert.
                            Convert file from one encoding to another
* nlmconv: (binutils)nlmconv.     Converts object code into an NLM.
* nm: (binutils)nm.               List symbols from object files.
* objcopy: (binutils)objcopy.	  Copy and translate object files.
* objdump: (binutils)objdump.     Display information from object files.
* ranlib: (binutils)ranlib.       Generate index to archive contents.
* readelf: (binutils)readelf.	  Display the contents of ELF format files.
* rebuild-gcj-db: (gcj)Invoking rebuild-gcj-db.
                            Merge the per-solib databases made by aot-compile
                            into one system-wide database.
* size: (binutils)size.           List section sizes and total size.
* strings: (binutils)strings.     List printable strings from files.
* strip: (binutils)strip.         Discard symbols.
* windmc: (binutils)windmc.	  Generator for Windows message resources.
* windres: (binutils)windres.	  Manipulate Windows resources.

Software development
* Bfd: (bfd).                   The Binary File Descriptor library.
* Binutils: (binutils).         The GNU binary utilities.
* Cpp: (cpp).                  The GNU C preprocessor.
* Cpplib: (cppinternals).      Cpplib internals.
* Gcj: (gcj).               Ahead-of-time compiler for the Java language
* g++: (gcc).                  The GNU C++ compiler.
* gcc: (gcc).                  The GNU Compiler Collection.
* gccinstall: (gccinstall).    Installing the GNU Compiler Collection.
* gccint: (gccint).            Internals of the GNU Compiler Collection.
* gfortran: (gfortran).                  The GNU Fortran Compiler.

GNU Libraries
* libgomp: (libgomp).                    GNU OpenMP runtime library
