---
 binutils-2.16.1/bfd/doc/bfd.info-1                              | 8006 ---
 binutils-2.16.1/bfd/doc/bfd.info-2                              | 1702 
 binutils-2.16.1/binutils/doc/addr2line.1                        |  230 
 binutils-2.16.1/binutils/doc/ar.1                               |  377 
 binutils-2.16.1/binutils/doc/cxxfilt.man                        |  276 
 binutils-2.16.1/binutils/doc/dlltool.1                          |  457 
 binutils-2.16.1/binutils/doc/nlmconv.1                          |  230 
 binutils-2.16.1/binutils/doc/nm.1                               |  436 
 binutils-2.16.1/binutils/doc/objcopy.1                          |  760 
 binutils-2.16.1/binutils/doc/objdump.1                          |  604 
 binutils-2.16.1/binutils/doc/ranlib.1                           |  175 
 binutils-2.16.1/binutils/doc/readelf.1                          |  353 
 binutils-2.16.1/binutils/doc/size.1                             |  250 
 binutils-2.16.1/binutils/doc/strings.1                          |  236 
 binutils-2.16.1/binutils/doc/strip.1                            |  364 
 binutils-2.16.1/binutils/doc/windres.1                          |  330 
 binutils-2.16.1/etc/configure.info                              | 2771 -
 binutils-2.16.1/etc/standards.info                              | 4930 --
 binutils-2.16.1/gas/testsuite/gas/i386/x86-64-pcrel.d           |   14 
 binutils-2.16.1/gas/testsuite/gas/i386/x86-64-pcrel.s           |    9 
 binutils-2.16.1/gas/testsuite/gas/ia64/reloc-uw-ilp32.d         |   15 
 binutils-2.16.1/gas/testsuite/gas/ia64/reloc-uw.d               |   13 
 binutils-2.16.1/gas/testsuite/gas/ia64/reloc-uw.s               |   13 
 binutils-2.16.1/gas/testsuite/gas/mips/ldstla-32-1.l            |   81 
 binutils-2.16.1/gas/testsuite/gas/mips/ldstla-32-1.s            |   73 
 binutils-2.16.1/gas/testsuite/gas/mips/ldstla-32-mips3-1.l      |  101 
 binutils-2.16.1/gas/testsuite/gas/mips/ldstla-32-mips3-1.s      |   73 
 binutils-2.16.1/gas/testsuite/gas/mips/ldstla-32-mips3-shared.d |  271 
 binutils-2.16.1/gas/testsuite/gas/mips/ldstla-32-mips3.d        |  271 
 binutils-2.16.1/gas/testsuite/gas/mips/ldstla-32-mips3.s        |  133 
 binutils-2.16.1/gprof/gprof.1                                   |  742 
 binutils-2.16.1/gprof/gprof.info                                | 2313 -
 binutils-2.16.1/ld/configdoc.texi                               |   20 
 binutils-2.16.1/ld/ld.1                                         | 2006 
 binutils-2.16.1/ld/ld.info                                      | 6314 --
 binutils-2.16.1/md5.sum                                         | 6523 --
 binutils-2.16.1/.cvsignore                                      |   32 
 binutils-2.16.1/COPYING.LIBGLOSS                                |  297 
 binutils-2.16.1/COPYING.NEWLIB                                  |  760 
 binutils-2.16.1/ChangeLog                                       |10661 ++++
 binutils-2.16.1/ChangeLog.csl                                   |  287 
 binutils-2.16.1/MAINTAINERS                                     |  114 
 binutils-2.16.1/README-maintainer-mode                          |   14 
 binutils-2.16.1/bfd/ChangeLog                                   |  205 
 binutils-2.16.1/bfd/Makefile.am                                 |    2 
 binutils-2.16.1/bfd/Makefile.in                                 |   26 
 binutils-2.16.1/bfd/aclocal.m4                                  |  437 
 binutils-2.16.1/bfd/bfd-in.h                                    |    4 
 binutils-2.16.1/bfd/bfd-in2.h                                   |   97 
 binutils-2.16.1/bfd/configure                                   |    2 
 binutils-2.16.1/bfd/configure.in                                |    2 
 binutils-2.16.1/bfd/cpu-arm.c                                   |   10 
 binutils-2.16.1/bfd/doc/ChangeLog                               |   23 
 binutils-2.16.1/bfd/doc/Makefile.am                             |  134 
 binutils-2.16.1/bfd/doc/Makefile.in                             |  142 
 binutils-2.16.1/bfd/doc/bfd.info                                | 9805 ++++
 binutils-2.16.1/bfd/elf.c                                       |   10 
 binutils-2.16.1/bfd/elf32-arm.c                                 | 1780 
 binutils-2.16.1/bfd/elf32-i386.c                                |   31 
 binutils-2.16.1/bfd/elf32-ppc.c                                 |   30 
 binutils-2.16.1/bfd/elf32-xtensa.c                              |    4 
 binutils-2.16.1/bfd/elf64-alpha.c                               |  165 
 binutils-2.16.1/bfd/elf64-ppc.c                                 |  329 
 binutils-2.16.1/bfd/elf64-ppc.h                                 |    2 
 binutils-2.16.1/bfd/elfcode.h                                   |   77 
 binutils-2.16.1/bfd/elflink.c                                   |   29 
 binutils-2.16.1/bfd/elfxx-mips.c                                |  101 
 binutils-2.16.1/bfd/libbfd.h                                    |   50 
 binutils-2.16.1/bfd/po/.cvsignore                               |    1 
 binutils-2.16.1/bfd/reloc.c                                     |  149 
 binutils-2.16.1/bfd/version.h                                   |    2 
 binutils-2.16.1/binutils/ChangeLog                              |   29 
 binutils-2.16.1/binutils/MAINTAINERS                            |    2 
 binutils-2.16.1/binutils/NEWS                                   |   54 
 binutils-2.16.1/binutils/doc/binutils.info                      |   83 
 binutils-2.16.1/binutils/doc/binutils.texi                      |   13 
 binutils-2.16.1/binutils/objdump.c                              |    5 
 binutils-2.16.1/binutils/po/.cvsignore                          |    1 
 binutils-2.16.1/binutils/readelf.c                              |   14 
 binutils-2.16.1/configure.in                                    |    2 
 binutils-2.16.1/contrib/ChangeLog                               |    7 
 binutils-2.16.1/contrib/texi2pod.pl                             |  431 
 binutils-2.16.1/depcomp                                         |  522 
 binutils-2.16.1/etc/ChangeLog                                   |  561 
 binutils-2.16.1/etc/add-log.el                                  |  573 
 binutils-2.16.1/etc/add-log.vi                                  |   11 
 binutils-2.16.1/gas/ChangeLog                                   |  217 
 binutils-2.16.1/gas/as.h                                        |    5 
 binutils-2.16.1/gas/config/tc-arm.c                             |22407 ++++------
 binutils-2.16.1/gas/config/tc-arm.h                             |    9 
 binutils-2.16.1/gas/config/tc-i386.c                            |    9 
 binutils-2.16.1/gas/config/tc-ia64.c                            |   10 
 binutils-2.16.1/gas/config/tc-m32r.c                            |    2 
 binutils-2.16.1/gas/config/tc-mips.c                            |  113 
 binutils-2.16.1/gas/config/tc-xtensa.c                          |  643 
 binutils-2.16.1/gas/config/tc-xtensa.h                          |    7 
 binutils-2.16.1/gas/config/tc-z8k.c                             |    2 
 binutils-2.16.1/gas/config/te-armeabi.h                         |    8 
 binutils-2.16.1/gas/config/te-armlinuxeabi.h                    |    1 
 binutils-2.16.1/gas/config/te-symbian.h                         |    2 
 binutils-2.16.1/gas/configure.tgt                               |    4 
 binutils-2.16.1/gas/hash.c                                      |   47 
 binutils-2.16.1/gas/hash.h                                      |    5 
 binutils-2.16.1/gas/input-scrub.c                               |    2 
 binutils-2.16.1/gas/read.c                                      |  223 
 binutils-2.16.1/gas/sb.c                                        |   32 
 binutils-2.16.1/gas/sb.h                                        |    1 
 binutils-2.16.1/gas/stabs.c                                     |    5 
 binutils-2.16.1/gas/symbols.c                                   |   13 
 binutils-2.16.1/gas/symbols.h                                   |    3 
 binutils-2.16.1/gas/testsuite/ChangeLog                         |   39 
 binutils-2.16.1/gas/testsuite/gas/arm/arch4t.d                  |   36 
 binutils-2.16.1/gas/testsuite/gas/arm/arch4t.s                  |    9 
 binutils-2.16.1/gas/testsuite/gas/arm/arch6zk.d                 |   24 
 binutils-2.16.1/gas/testsuite/gas/arm/arch6zk.s                 |   28 
 binutils-2.16.1/gas/testsuite/gas/arm/archv6t2-bad.l            |   38 
 binutils-2.16.1/gas/testsuite/gas/arm/archv6t2-bad.s            |   53 
 binutils-2.16.1/gas/testsuite/gas/arm/archv6t2.d                |   51 
 binutils-2.16.1/gas/testsuite/gas/arm/archv6t2.s                |   55 
 binutils-2.16.1/gas/testsuite/gas/arm/arm.exp                   |   51 
 binutils-2.16.1/gas/testsuite/gas/arm/arm3.d                    |   11 
 binutils-2.16.1/gas/testsuite/gas/arm/arm3.s                    |    7 
 binutils-2.16.1/gas/testsuite/gas/arm/arm6.d                    |   19 
 binutils-2.16.1/gas/testsuite/gas/arm/arm6.s                    |    7 
 binutils-2.16.1/gas/testsuite/gas/arm/arm7dm.d                  |   19 
 binutils-2.16.1/gas/testsuite/gas/arm/arm7dm.s                  |   14 
 binutils-2.16.1/gas/testsuite/gas/arm/armv1-bad.l               |   15 
 binutils-2.16.1/gas/testsuite/gas/arm/armv1-bad.s               |    3 
 binutils-2.16.1/gas/testsuite/gas/arm/bignum1.d                 |    8 
 binutils-2.16.1/gas/testsuite/gas/arm/bignum1.s                 |    2 
 binutils-2.16.1/gas/testsuite/gas/arm/float.d                   |  131 
 binutils-2.16.1/gas/testsuite/gas/arm/float.s                   |    5 
 binutils-2.16.1/gas/testsuite/gas/arm/immed.d                   |   16 
 binutils-2.16.1/gas/testsuite/gas/arm/immed.s                   |    4 
 binutils-2.16.1/gas/testsuite/gas/arm/iwmmxt-bad.l              |   16 
 binutils-2.16.1/gas/testsuite/gas/arm/iwmmxt.d                  |    9 
 binutils-2.16.1/gas/testsuite/gas/arm/iwmmxt.s                  |   11 
 binutils-2.16.1/gas/testsuite/gas/arm/macro1.d                  |   12 
 binutils-2.16.1/gas/testsuite/gas/arm/macro1.s                  |   12 
 binutils-2.16.1/gas/testsuite/gas/arm/mapping.d                 |    8 
 binutils-2.16.1/gas/testsuite/gas/arm/maverick.d                |   78 
 binutils-2.16.1/gas/testsuite/gas/arm/maverick.s                |   78 
 binutils-2.16.1/gas/testsuite/gas/arm/offset.d                  |   11 
 binutils-2.16.1/gas/testsuite/gas/arm/offset.s                  |   17 
 binutils-2.16.1/gas/testsuite/gas/arm/pic.d                     |    2 
 binutils-2.16.1/gas/testsuite/gas/arm/r15-bad.l                 |    8 
 binutils-2.16.1/gas/testsuite/gas/arm/r15-bad.s                 |    4 
 binutils-2.16.1/gas/testsuite/gas/arm/req.l                     |    4 
 binutils-2.16.1/gas/testsuite/gas/arm/req.s                     |    6 
 binutils-2.16.1/gas/testsuite/gas/arm/t16-bad.l                 |  185 
 binutils-2.16.1/gas/testsuite/gas/arm/t16-bad.s                 |  135 
 binutils-2.16.1/gas/testsuite/gas/arm/tcompat.d                 |   50 
 binutils-2.16.1/gas/testsuite/gas/arm/tcompat.s                 |   45 
 binutils-2.16.1/gas/testsuite/gas/arm/tcompat2.d                |   26 
 binutils-2.16.1/gas/testsuite/gas/arm/tcompat2.s                |   32 
 binutils-2.16.1/gas/testsuite/gas/arm/thumb.d                   |  189 
 binutils-2.16.1/gas/testsuite/gas/arm/thumb.s                   |    8 
 binutils-2.16.1/gas/testsuite/gas/arm/thumb32.d                 |  995 
 binutils-2.16.1/gas/testsuite/gas/arm/thumb32.s                 |  735 
 binutils-2.16.1/gas/testsuite/gas/arm/thumbv6.d                 |    2 
 binutils-2.16.1/gas/testsuite/gas/arm/thumbv6k.d                |   15 
 binutils-2.16.1/gas/testsuite/gas/arm/thumbv6k.s                |   14 
 binutils-2.16.1/gas/testsuite/gas/arm/tls.d                     |   21 
 binutils-2.16.1/gas/testsuite/gas/arm/tls.s                     |   14 
 binutils-2.16.1/gas/testsuite/gas/arm/unwind.d                  |    5 
 binutils-2.16.1/gas/testsuite/gas/arm/vfp-bad.l                 |   16 
 binutils-2.16.1/gas/testsuite/gas/i386/i386.exp                 |    1 
 binutils-2.16.1/gas/testsuite/gas/ia64/ia64.exp                 |    2 
 binutils-2.16.1/gas/testsuite/gas/mips/ldstla-32-shared.d       |  380 
 binutils-2.16.1/gas/testsuite/gas/mips/ldstla-32.d              |  380 
 binutils-2.16.1/gas/testsuite/gas/mips/ldstla-32.s              |  142 
 binutils-2.16.1/gas/testsuite/gas/mips/mips.exp                 |   10 
 binutils-2.16.1/gprof/ChangeLog                                 |    8 
 binutils-2.16.1/gprof/corefile.c                                |   22 
 binutils-2.16.1/gprof/po/.cvsignore                             |    1 
 binutils-2.16.1/gprof/po/de.po                                  |  236 
 binutils-2.16.1/include/elf/arm.h                               |  234 
 binutils-2.16.1/include/libiberty.h                             |    7 
 binutils-2.16.1/include/opcode/ChangeLog                        |    4 
 binutils-2.16.1/include/opcode/arm.h                            |    9 
 binutils-2.16.1/include/opcode/i386.h                           |    1 
 binutils-2.16.1/ld/ChangeLog                                    |   15 
 binutils-2.16.1/ld/configure.tgt                                |    3 
 binutils-2.16.1/ld/emultempl/ppc64elf.em                        |    4 
 binutils-2.16.1/ld/ld.texinfo                                   |    1 
 binutils-2.16.1/ld/ldver.texi                                   |    2 
 binutils-2.16.1/ld/po/.cvsignore                                |    1 
 binutils-2.16.1/ld/scripttempl/armbpabi.sc                      |    7 
 binutils-2.16.1/ld/testsuite/ChangeLog                          |   14 
 binutils-2.16.1/ld/testsuite/ld-arm/arm-app-abs32.d             |    2 
 binutils-2.16.1/ld/testsuite/ld-arm/arm-app.d                   |    4 
 binutils-2.16.1/ld/testsuite/ld-arm/arm-dyn.ld                  |    2 
 binutils-2.16.1/ld/testsuite/ld-arm/arm-elf.exp                 |    6 
 binutils-2.16.1/ld/testsuite/ld-arm/arm-lib.ld                  |    2 
 binutils-2.16.1/ld/testsuite/ld-arm/mixed-app.d                 |    6 
 binutils-2.16.1/ld/testsuite/ld-arm/tls-app.d                   |   18 
 binutils-2.16.1/ld/testsuite/ld-arm/tls-app.r                   |   12 
 binutils-2.16.1/ld/testsuite/ld-arm/tls-app.s                   |   34 
 binutils-2.16.1/ld/testsuite/ld-arm/tls-lib.d                   |   15 
 binutils-2.16.1/ld/testsuite/ld-arm/tls-lib.r                   |   10 
 binutils-2.16.1/ld/testsuite/ld-arm/tls-lib.s                   |   22 
 binutils-2.16.1/ld/testsuite/ld-elfweak/dsow.dsym               |    2 
 binutils-2.16.1/ld/testsuite/ld-elfweak/weak.dsym               |    2 
 binutils-2.16.1/ld/testsuite/ld-powerpc/reloc.d                 |    5 
 binutils-2.16.1/ld/testsuite/ld-selective/selective.exp         |    6 
 binutils-2.16.1/opcodes/ChangeLog                               |   17 
 binutils-2.16.1/opcodes/arm-dis.c                               | 1360 
 binutils-2.16.1/opcodes/i386-dis.c                              |   47 
 binutils-2.16.1/opcodes/po/.cvsignore                           |    1 
 binutils-2.16.1/opcodes/ppc-opc.c                               |   10 
 210 files changed, 41829 insertions(+), 58010 deletions(-)

Index: b/binutils-2.16.1/bfd/aclocal.m4
===================================================================
--- a/binutils-2.16.1/bfd/aclocal.m4
+++ b/binutils-2.16.1/bfd/aclocal.m4
@@ -1,7 +1,7 @@
-# generated automatically by aclocal 1.9.5 -*- Autoconf -*-
+# generated automatically by aclocal 1.9.2 -*- Autoconf -*-
 
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005  Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
+# Free Software Foundation, Inc.
 # This file is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -11,11 +11,23 @@
 # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
 # PARTICULAR PURPOSE.
 
-# Copyright (C) 2002, 2003, 2005  Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
+#                                                        -*- Autoconf -*-
+# Copyright (C) 2002, 2003  Free Software Foundation, Inc.
+# Generated from amversion.in; do not edit by hand.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
 
 # AM_AUTOMAKE_VERSION(VERSION)
 # ----------------------------
@@ -28,15 +40,26 @@ AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api
 # Call AM_AUTOMAKE_VERSION so it can be traced.
 # This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
 AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
-	 [AM_AUTOMAKE_VERSION([1.9.5])])
+	 [AM_AUTOMAKE_VERSION([1.9.2])])
 
-# AM_AUX_DIR_EXPAND                                         -*- Autoconf -*-
+# AM_AUX_DIR_EXPAND
 
-# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
+# Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
 
 # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
 # $ac_aux_dir to `$srcdir/foo'.  In other projects, it is set to
@@ -83,16 +106,26 @@ AC_PREREQ([2.50])dnl
 am_aux_dir=`cd $ac_aux_dir && pwd`
 ])
 
-# AM_CONDITIONAL                                            -*- Autoconf -*-
+# AM_CONDITIONAL                                              -*- Autoconf -*-
 
-# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
+# Copyright (C) 1997, 2000, 2001, 2003, 2004 Free Software Foundation, Inc.
 
-# serial 7
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# serial 6
 
 # AM_CONDITIONAL(NAME, SHELL-CONDITION)
 # -------------------------------------
@@ -116,15 +149,26 @@ AC_CONFIG_COMMANDS_PRE(
 Usually this means the macro was only invoked conditionally.]])
 fi])])
 
+# serial 7						-*- Autoconf -*-
 
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
 # Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
 
-# serial 8
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
 
 # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
 # written in clear, in which case automake, when reading aclocal.m4,
@@ -133,6 +177,7 @@ fi])])
 # CC etc. in the Makefile, will ask for an AC_PROG_CC use...
 
 
+
 # _AM_DEPENDENCIES(NAME)
 # ----------------------
 # See how the compiler implements dependency checking.
@@ -272,16 +317,27 @@ AM_CONDITIONAL([AMDEP], [test "x$enable_
 AC_SUBST([AMDEPBACKSLASH])
 ])
 
-# Generate code to set up dependency tracking.              -*- Autoconf -*-
+# Generate code to set up dependency tracking.   -*- Autoconf -*-
 
-# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
+# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004
+#   Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
 
-#serial 3
+#serial 2
 
 # _AM_OUTPUT_DEPENDENCY_COMMANDS
 # ------------------------------
@@ -340,31 +396,54 @@ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS]
      [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
 ])
 
-# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
+# Like AC_CONFIG_HEADER, but automatically create stamp file. -*- Autoconf -*-
 
-# serial 8
+# Copyright (C) 1996, 1997, 2000, 2001, 2003 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# serial 7
 
 # AM_CONFIG_HEADER is obsolete.  It has been replaced by AC_CONFIG_HEADERS.
 AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)])
 
-# Do all the work for Automake.                             -*- Autoconf -*-
+# Do all the work for Automake.                            -*- Autoconf -*-
 
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+# This macro actually does too much some checks are only needed if
+# your package does certain things.  But this isn't really a big deal.
+
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004
 # Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
 
-# serial 12
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
 
-# This macro actually does too much.  Some checks are only needed if
-# your package does certain things.  But this isn't really a big deal.
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# serial 11
 
 # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
 # AM_INIT_AUTOMAKE([OPTIONS])
@@ -466,27 +545,51 @@ for _am_header in $config_headers :; do
 done
 echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
 
-# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
 # AM_PROG_INSTALL_SH
 # ------------------
 # Define $install_sh.
+
+# Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
 AC_DEFUN([AM_PROG_INSTALL_SH],
 [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
 install_sh=${install_sh-"$am_aux_dir/install-sh"}
 AC_SUBST(install_sh)])
 
-# Copyright (C) 2003, 2005  Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
+#                                                          -*- Autoconf -*-
+# Copyright (C) 2003  Free Software Foundation, Inc.
 
-# serial 2
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# serial 1
 
 # Check whether the underlying file-system supports filenames
 # with a leading dot.  For instance MS-DOS doesn't.
@@ -501,17 +604,28 @@ fi
 rmdir .tst 2>/dev/null
 AC_SUBST([am__leading_dot])])
 
-# Add --enable-maintainer-mode option to configure.         -*- Autoconf -*-
+# Add --enable-maintainer-mode option to configure.
 # From Jim Meyering
 
-# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005
+# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004
 # Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
 
-# serial 4
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# serial 3
 
 AC_DEFUN([AM_MAINTAINER_MODE],
 [AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles])
@@ -530,15 +644,26 @@ AC_DEFUN([AM_MAINTAINER_MODE],
 
 AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE])
 
-# Check to see how 'make' treats includes.	            -*- Autoconf -*-
+# Check to see how 'make' treats includes.	-*- Autoconf -*-
 
-# Copyright (C) 2001, 2002, 2003, 2005  Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
+# Copyright (C) 2001, 2002, 2003 Free Software Foundation, Inc.
 
-# serial 3
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# serial 2
 
 # AM_MAKE_INCLUDE()
 # -----------------
@@ -582,16 +707,27 @@ AC_MSG_RESULT([$_am_result])
 rm -f confinc confmf
 ])
 
-# Fake the existence of programs that GNU maintainers use.  -*- Autoconf -*-
+#  -*- Autoconf -*-
 
-# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005
-# Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
 
-# serial 4
+# Copyright (C) 1997, 1999, 2000, 2001, 2003 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# serial 3
 
 # AM_MISSING_PROG(NAME, PROGRAM)
 # ------------------------------
@@ -617,16 +753,27 @@ else
 fi
 ])
 
-# Copyright (C) 2003, 2004, 2005  Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
 # AM_PROG_MKDIR_P
 # ---------------
 # Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise.
-#
+
+# Copyright (C) 2003, 2004 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
 # Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories
 # created by `make install' are always world readable, even if the
 # installer happens to have an overly restrictive umask (e.g. 077).
@@ -680,15 +827,26 @@ else
 fi
 AC_SUBST([mkdir_p])])
 
-# Helper functions for option handling.                     -*- Autoconf -*-
+# Helper functions for option handling.                    -*- Autoconf -*-
 
-# Copyright (C) 2001, 2002, 2003, 2005  Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
+# Copyright (C) 2001, 2002, 2003  Free Software Foundation, Inc.
 
-# serial 3
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# serial 2
 
 # _AM_MANGLE_OPTION(NAME)
 # -----------------------
@@ -713,16 +871,28 @@ AC_DEFUN([_AM_SET_OPTIONS],
 AC_DEFUN([_AM_IF_OPTION],
 [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
 
-# Check to make sure that the build environment is sane.    -*- Autoconf -*-
-
-# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
-# Free Software Foundation, Inc.
 #
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
+# Check to make sure that the build environment is sane.
+#
+
+# Copyright (C) 1996, 1997, 2000, 2001, 2003 Free Software Foundation, Inc.
 
-# serial 4
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# serial 3
 
 # AM_SANITY_CHECK
 # ---------------
@@ -765,14 +935,25 @@ Check your system clock])
 fi
 AC_MSG_RESULT(yes)])
 
-# Copyright (C) 2001, 2003, 2005  Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
 # AM_PROG_INSTALL_STRIP
-# ---------------------
+
+# Copyright (C) 2001, 2003 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
 # One issue with vendor `install' (even GNU) is that you can't
 # specify the program used to strip binaries.  This is especially
 # annoying in cross-compiling environments, where the build's strip
@@ -795,13 +976,25 @@ AC_SUBST([INSTALL_STRIP_PROGRAM])])
 
 # Check how to create a tarball.                            -*- Autoconf -*-
 
-# Copyright (C) 2004, 2005  Free Software Foundation, Inc.
-#
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
+# Copyright (C) 2004  Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# serial 1
 
-# serial 2
 
 # _AM_PROG_TAR(FORMAT)
 # --------------------
Index: b/binutils-2.16.1/bfd/bfd-in2.h
===================================================================
--- a/binutils-2.16.1/bfd/bfd-in2.h
+++ b/binutils-2.16.1/bfd/bfd-in2.h
@@ -828,6 +828,10 @@ extern bfd_boolean bfd_elf32_arm_get_bfd
 extern bfd_boolean bfd_elf32_arm_add_glue_sections_to_bfd
   (bfd *, struct bfd_link_info *);
 
+/* ELF ARM mapping symbol support */
+extern bfd_boolean bfd_is_arm_mapping_symbol_name
+  (const char * name);
+
 /* ARM Note section processing.  */
 extern bfd_boolean bfd_arm_merge_machines
   (bfd *, bfd *);
@@ -2658,36 +2662,23 @@ not stored in the instruction.  The 2nd 
 field in the instruction.  */
   BFD_RELOC_THUMB_PCREL_BLX,
 
-/* These relocs are only used within the ARM assembler.  They are not
-(at present) written to any object files.  */
-  BFD_RELOC_ARM_IMMEDIATE,
-  BFD_RELOC_ARM_ADRL_IMMEDIATE,
+/* Thumb 7-, 9-, 12-, 20-, 23-, and 25-bit pc-relative branches.
+The lowest bit must be zero and is not stored in the instruction.
+Note that the corresponding ELF R_ARM_THM_JUMPnn constant has an
+"nn" one smaller in all cases.  Note further that BRANCH23
+corresponds to R_ARM_THM_CALL.  */
+  BFD_RELOC_THUMB_PCREL_BRANCH7,
+  BFD_RELOC_THUMB_PCREL_BRANCH9,
+  BFD_RELOC_THUMB_PCREL_BRANCH12,
+  BFD_RELOC_THUMB_PCREL_BRANCH20,
+  BFD_RELOC_THUMB_PCREL_BRANCH23,
+  BFD_RELOC_THUMB_PCREL_BRANCH25,
+
+/* 12-bit immediate offset, used in ARM-format ldr and str instructions.  */
   BFD_RELOC_ARM_OFFSET_IMM,
-  BFD_RELOC_ARM_SHIFT_IMM,
-  BFD_RELOC_ARM_SMI,
-  BFD_RELOC_ARM_SWI,
-  BFD_RELOC_ARM_MULTI,
-  BFD_RELOC_ARM_CP_OFF_IMM,
-  BFD_RELOC_ARM_CP_OFF_IMM_S2,
-  BFD_RELOC_ARM_ADR_IMM,
-  BFD_RELOC_ARM_LDR_IMM,
-  BFD_RELOC_ARM_LITERAL,
-  BFD_RELOC_ARM_IN_POOL,
-  BFD_RELOC_ARM_OFFSET_IMM8,
-  BFD_RELOC_ARM_HWLITERAL,
-  BFD_RELOC_ARM_THUMB_ADD,
-  BFD_RELOC_ARM_THUMB_IMM,
-  BFD_RELOC_ARM_THUMB_SHIFT,
+
+/* 5-bit immediate offset, used in Thumb-format ldr and str instructions.  */
   BFD_RELOC_ARM_THUMB_OFFSET,
-  BFD_RELOC_ARM_GOT12,
-  BFD_RELOC_ARM_GOT32,
-  BFD_RELOC_ARM_JUMP_SLOT,
-  BFD_RELOC_ARM_COPY,
-  BFD_RELOC_ARM_GLOB_DAT,
-  BFD_RELOC_ARM_PLT32,
-  BFD_RELOC_ARM_RELATIVE,
-  BFD_RELOC_ARM_GOTOFF,
-  BFD_RELOC_ARM_GOTPC,
 
 /* Pc-relative or absolute relocation depending on target.  Used for
 entries in .init_array sections.  */
@@ -2699,7 +2690,7 @@ entries in .init_array sections.  */
 /* Data segment base relative address.  */
   BFD_RELOC_ARM_SBREL32,
 
-/* This reloc is used for References to RTTI dta from exception handling
+/* This reloc is used for references to RTTI data from exception handling
 tables.  The actual definition depends on the target.  It may be a
 pc-relative or some form of GOT-indirect relocation.  */
   BFD_RELOC_ARM_TARGET2,
@@ -2707,6 +2698,48 @@ pc-relative or some form of GOT-indirect
 /* 31-bit PC relative address.  */
   BFD_RELOC_ARM_PREL31,
 
+/* Relocations for setting up GOTs and PLTs for shared libraries.  */
+  BFD_RELOC_ARM_JUMP_SLOT,
+  BFD_RELOC_ARM_GLOB_DAT,
+  BFD_RELOC_ARM_GOT32,
+  BFD_RELOC_ARM_PLT32,
+  BFD_RELOC_ARM_RELATIVE,
+  BFD_RELOC_ARM_GOTOFF,
+  BFD_RELOC_ARM_GOTPC,
+
+/* ARM thread-local storage relocations.  */
+  BFD_RELOC_ARM_TLS_GD32,
+  BFD_RELOC_ARM_TLS_LDO32,
+  BFD_RELOC_ARM_TLS_LDM32,
+  BFD_RELOC_ARM_TLS_DTPOFF32,
+  BFD_RELOC_ARM_TLS_DTPMOD32,
+  BFD_RELOC_ARM_TLS_TPOFF32,
+  BFD_RELOC_ARM_TLS_IE32,
+  BFD_RELOC_ARM_TLS_LE32,
+
+/* These relocs are only used within the ARM assembler.  They are not
+(at present) written to any object files.  */
+  BFD_RELOC_ARM_IMMEDIATE,
+  BFD_RELOC_ARM_ADRL_IMMEDIATE,
+  BFD_RELOC_ARM_T32_IMMEDIATE,
+  BFD_RELOC_ARM_SHIFT_IMM,
+  BFD_RELOC_ARM_SMI,
+  BFD_RELOC_ARM_SWI,
+  BFD_RELOC_ARM_MULTI,
+  BFD_RELOC_ARM_CP_OFF_IMM,
+  BFD_RELOC_ARM_CP_OFF_IMM_S2,
+  BFD_RELOC_ARM_ADR_IMM,
+  BFD_RELOC_ARM_LDR_IMM,
+  BFD_RELOC_ARM_LITERAL,
+  BFD_RELOC_ARM_IN_POOL,
+  BFD_RELOC_ARM_OFFSET_IMM8,
+  BFD_RELOC_ARM_T32_OFFSET_U8,
+  BFD_RELOC_ARM_T32_OFFSET_IMM,
+  BFD_RELOC_ARM_HWLITERAL,
+  BFD_RELOC_ARM_THUMB_ADD,
+  BFD_RELOC_ARM_THUMB_IMM,
+  BFD_RELOC_ARM_THUMB_SHIFT,
+
 /* Renesas / SuperH SH relocs.  Not all of these appear in object files.  */
   BFD_RELOC_SH_PCDISP8BY2,
   BFD_RELOC_SH_PCDISP12BY2,
@@ -2799,12 +2832,6 @@ pc-relative or some form of GOT-indirect
   BFD_RELOC_SH_TLS_DTPOFF32,
   BFD_RELOC_SH_TLS_TPOFF32,
 
-/* Thumb 23-, 12- and 9-bit pc-relative branches.  The lowest bit must
-be zero and is not stored in the instruction.  */
-  BFD_RELOC_THUMB_PCREL_BRANCH9,
-  BFD_RELOC_THUMB_PCREL_BRANCH12,
-  BFD_RELOC_THUMB_PCREL_BRANCH23,
-
 /* ARC Cores relocs.
 ARC 22 bit pc-relative branch.  The lowest two bits must be zero and are
 not stored in the instruction.  The high 20 bits are installed in bits 26
Index: b/binutils-2.16.1/bfd/bfd-in.h
===================================================================
--- a/binutils-2.16.1/bfd/bfd-in.h
+++ b/binutils-2.16.1/bfd/bfd-in.h
@@ -821,6 +821,10 @@ extern bfd_boolean bfd_elf32_arm_get_bfd
 extern bfd_boolean bfd_elf32_arm_add_glue_sections_to_bfd
   (bfd *, struct bfd_link_info *);
 
+/* ELF ARM mapping symbol support */
+extern bfd_boolean bfd_is_arm_mapping_symbol_name
+  (const char * name);
+
 /* ARM Note section processing.  */
 extern bfd_boolean bfd_arm_merge_machines
   (bfd *, bfd *);
Index: b/binutils-2.16.1/bfd/ChangeLog
===================================================================
--- a/binutils-2.16.1/bfd/ChangeLog
+++ b/binutils-2.16.1/bfd/ChangeLog
@@ -1,198 +1,15 @@
-2005-05-02  Daniel Jacobowitz  <dan@codesourcery.com>
+2005-03-30  Julian Brown  <julian@codesourcery.com>
 
-	* Makefile.am: Set RELEASE.
-	* configure.in: Bump version to 2.16.1.
-	* Makefile.in, configure: Regenerated.
-
-2005-06-06  Alan Modra  <amodra@bigpond.net.au>
-
-	* elf64-pcc.c (ppc64_elf_gc_mark_hook): For the local sym in .opd
-	case, include addend when indexing .opd section map.
-	(ppc64_elf_edit_opd): Add no_opd_opt param.  Do nothing besides
-	clear opd_adjust array if no_opd_opt set.  Tidy code.
-	Ignore zero size .opd.  Check bfd_alloc return value.
-	(ppc_stub_name): Return immediately on bfd_malloc fail.
-	* elf64-ppc.h (ppc64_elf_edit_opd): Update prototype.
-
-2005-06-03  Alan Modra  <amodra@bigpond.net.au>
-
-	PR 568
-	* elf32-i386.c (elf_i386_relocate_section): Handle zero symndx
-	for all reloc types.
-
-	Apply from mainline:
-	2005-05-12  H.J. Lu  <hongjiu.lu@intel.com>
-	* elf32-i386.c (elf_i386_relocate_section): Allow R_386_GOTOFF
-	against protected function when building executable.
-
-2005-06-03  Alan Modra  <amodra@bigpond.net.au>
-
-	* elf64-ppc.c (add_symbol_adjust): Set sym visibility to most
-	restrictive of func code and func descr for undefined syms as well
-	as defined.
-
-2005-05-29  Daniel Jacobowitz  <dan@codesourcery.com>
-
-	Backport from mainline:
-	2005-05-29  Jakub Jelinek  <jakub@redhat.com>
-	* elfcode.h (elf_object_p): Fail if e_shoff != 0, e_shnum == 0 and
-	first shdr has sh_size == 0.  Fail if e_shnum is large to cause
-	arithmetic overflow when allocating the i_shdr array.
-	Sanity check sh_link and sh_info fields.  Fix e_shstrndx sanity check.
-
-	2005-05-18  H.J. Lu  <hongjiu.lu@intel.com>
-	* elf.c (group_signature): Undo the last change. Check if the
-	symbol table section is correct.
-
-	2005-05-17  Nick Clifton  <nickc@redhat.com>
-	* elf.c (group_signature): Check for a group section which is
-	actually a (corrupt) symbol table section in disguise and prevent
-	an infinite loop from occurring.
-
-	2005-05-17  Tavis Ormandy <taviso@gentoo.org>
-	* elf.c (bfd_section_from_shdr): Add sanity check when parsing
-	dynamic sections.
-
-	2005-05-09  Alan Modra  <amodra@bigpond.net.au>
-	* elfcode.h (elf_object_p): Add more sanity checks on elf header.
-
-2005-05-28  David Daney  <ddaney@avtrex.com>
-
-	* elfxx-mips.c (_bfd_mips_elf_finish_dynamic_sections):  Move
-	calculation of DT_RELSZ to occur after all dynamic relocations
-	are created.
-
-2005-05-26  Mark Kettenis  <kettenis@gnu.org>
-            Maciej W. Rozycki  <macro@linux-mips.org>
-
-	* elfxx-mips.c (_bfd_mips_elf_section_processing): Warn and
-	stop processing of options if one of invalid size is
-	encountered.
-	(_bfd_mips_elf_section_from_shdr): Likewise.
-	(_bfd_mips_elf_fake_sections): Reset the type of empty special
-	sections.
-
-2005-05-22  Richard Henderson  <rth@redhat.com>
-
-	* elf64-alpha.c (elf64_alpha_relax_section): Ignore non-allocated
-	sections.
-	(elf64_alpha_check_relocs): Likewise.
-	(elf64_alpha_relocate_section): Don't emit dynamic relocations to
-	non-allocated sections.
-
-2005-05-22  Richard Henderson  <rth@redhat.com>
-
-        * elf64-alpha.c (elf64_alpha_relax_with_lituse): Relax jsr to
-        undefweak to use zero register.  Call elf64_alpha_relax_got_load
-        if not all uses removed.
-        (elf64_alpha_relax_got_load): Relax undefweak to lda zero.
-        (elf64_alpha_relax_section): Handle undefweak symbols.
-        (elf64_alpha_calc_dynrel_sizes): Don't add relocs for undefweak.
-        (elf64_alpha_size_rela_got_1): Likewise.
-        (elf64_alpha_relocate_section): Likewise.
-
-2005-05-22  Richard Henderson  <rth@redhat.com>
-
-        * elf64-alpha.c (elf64_alpha_relax_section): Only operate
-        on SEC_CODE sections.
-
-2005-05-13  Bob Wilson  <bob.wilson@acm.org>
-
-	* elf32-xtensa.c (xtensa_get_property_section_name): Add missing
-	periods in linkonce_kind values.
-
-2005-05-10  Alan Modra  <amodra@bigpond.net.au>
-
-	Apply from mainline.
-	2005-05-09  Alan Modra  <amodra@bigpond.net.au>
-	* elf64-ppc.c (struct ppc64_elf_obj_tdata): Add has_dotsym.
-	(ppc64_elf_add_symbol_hook): Set has_dotsym.
-	(ppc64_elf_check_directives): Only process syms when has_dotsym.
-	(func_desc_adjust): Hide fake function descriptors when function
-	code entry is defined.
-	(adjust_opd_syms): Adjust for deleted_section becoming union field.
-
-	2005-04-05  Alan Modra  <amodra@bigpond.net.au>
-	* elf64-ppc.c (dec_dynrel_count): New function split out from
-	ppc64_elf_edit_toc, with additional code from ppc64_elf_edit_opd.
-	(ppc64_elf_edit_toc, ppc64_elf_edit_opd): Use it.
-	(ppc64_elf_tls_optimize): Likewise.
-
-	2005-04-01  Alan Modra  <amodra@bigpond.net.au>
-	* elf64-ppc.c (ppc64_elf_edit_toc): Account for dynamic relocs
-	that we no longer need.
-
-2005-05-02  Daniel Jacobowitz  <dan@codesourcery.com>
-
-	* Makefile.am: Clear RELEASE.
-	* Makefile.in: Regenerated.
-
-2005-05-02  Daniel Jacobowitz  <dan@codesourcery.com>
-
-	* Makefile.am: Set RELEASE.
-	* configure.in: Bump version to 2.16.
-	* Makefile.in, configure: Regenerated.
-
-2005-05-01  Paul Brook  <paul@codesourcery.com>
-
-	* elf32-arm.c (bfd_elf32_arm_process_before_allocation): Treat
-	R_ARM_PLT32 the same as R_ARM_PC24.
-	(arm_add_to_rel): Ditto.
-
-2005-04-29  Daniel Jacobowitz  <dan@codesourcery.com>
-
-	* aclocal.m4, Makefile.in: Regenerated.
-
-2005-04-27  Nick Clifton  <nickc@redhat.com>
-
-	* elflink.c (elf_link_input_bfd): Handle the case where a badly
-	formatted input file results in a reloc which has no associated
-	global symbol.
-
-2005-04-20  Daniel Jacobowitz  <dan@codesourcery.com>
-
-	* configure.in: Bump version to 2.15.97.
-	* configure: Regenerated.
-
-2005-04-19  Daniel Jacobowitz  <dan@codesourcery.com>
-
-	* elfxx-mips.c (struct mips_elf_link_hash_entry): Update comment.
-	(mips_elf_create_local_got_entry): Check h->root.forced_local.
-
-2005-04-19  Alan Modra  <amodra@bigpond.net.au>
-
-	* elf32-ppc.c (ppc_elf_check_relocs): Don't bother with
-	dynamic relocs in non-SEC_ALLOC sections.
-	(ppc_elf_gc_sweep_hook): Likewise.
-	(ppc_elf_relax_section): Likewise.
-	(ppc_elf_relocate_section): Likewise.
-
-2005-04-15  Alan Modra  <amodra@bigpond.net.au>
-
-	PR ld/815
-	* elflink.c (elf_smash_syms): Clear undef.next if it's not being
-	used as a list pointer.
-
-2005-04-05  Richard Sandiford  <rsandifo@redhat.com>
-
-	* elfxx-mips.c (MIPS_ELF_OPTIONS_SECTION_NAME_P): New macro.
-	(_bfd_mips_elf_section_from_shdr): Use it to check for recognized
-	SHT_MIPS_OPTIONS names.  Allow all sections with unrecognised
-	section flags.
-	(_bfd_mips_elf_fake_sections): Use MIPS_ELF_OPTIONS_SECTION_NAME_P
-	to check for SHT_MIPS_OPTIONS sections.
-	(_bfd_mips_elf_set_section_contents): Likewise.
-
-2005-04-01  Alan Modra  <amodra@bigpond.net.au>
-
-	* elf64-ppc.c (ppc64_elf_get_synthetic_symtab): Return -1 on errors
-	rather than 0.
-	(ppc64_elf_check_relocs): Remove unnecessary SEC_ALLOC check.
-
-2005-03-29  Daniel Jacobowitz  <dan@codesourcery.com>
-
-	* elf32-arm.c (elf32_arm_check_relocs): Increment count for all
-	relocation types.  Don't count relocations which will use a PLT.
+	* bfd-in.h (bfd_is_arm_mapping_symbol_name): Add prototype.
+	* bfd-in2.h: Regenerate.
+	* elf32-arm.c (elf32_arm_is_target_special_symbol): Rename call to
+	bfd_is_arm_mapping_symbol_name.
+	(elf32_arm_output_symbol_hook): Likewise.
+	(arm_elf_find_function): Likewise, and include STT_NOTYPE in test for
+	mapping symbols.
+	(is_arm_mapping_symbol_name): Function moved from here...
+	* cpu-arm.c (bfd_is_arm_mapping_symbol_name): ...to here, renamed and
+	made global.
 
 2005-03-22  Bob Wilson  <bob.wilson@acm.org>
 
Index: b/binutils-2.16.1/bfd/configure
===================================================================
--- a/binutils-2.16.1/bfd/configure
+++ b/binutils-2.16.1/bfd/configure
@@ -2834,7 +2834,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE=bfd
- VERSION=2.16.1
+ VERSION=2.15.96
 
 
 cat >>confdefs.h <<_ACEOF
Index: b/binutils-2.16.1/bfd/configure.in
===================================================================
--- a/binutils-2.16.1/bfd/configure.in
+++ b/binutils-2.16.1/bfd/configure.in
@@ -8,7 +8,7 @@ AC_CONFIG_SRCDIR([libbfd.c])
 AC_CANONICAL_TARGET
 AC_ISC_POSIX
 
-AM_INIT_AUTOMAKE(bfd, 2.16.1)
+AM_INIT_AUTOMAKE(bfd, 2.15.96)
 
 dnl These must be called before AM_PROG_LIBTOOL, because it may want
 dnl to call AC_CHECK_PROG.
Index: b/binutils-2.16.1/bfd/cpu-arm.c
===================================================================
--- a/binutils-2.16.1/bfd/cpu-arm.c
+++ b/binutils-2.16.1/bfd/cpu-arm.c
@@ -400,3 +400,13 @@ bfd_arm_get_mach_from_notes (bfd *abfd, 
     free (buffer);
   return bfd_mach_arm_unknown;
 }
+
+bfd_boolean
+bfd_is_arm_mapping_symbol_name (const char * name)
+{
+  return (name != NULL)
+    && (name[0] == '$')
+    && ((name[1] == 'a') || (name[1] == 't') || (name[1] == 'd'))
+    && (name[2] == 0);
+}
+
Index: b/binutils-2.16.1/bfd/doc/bfd.info
===================================================================
--- a/binutils-2.16.1/bfd/doc/bfd.info
+++ b/binutils-2.16.1/bfd/doc/bfd.info
@@ -1,5 +1,7 @@
-This is ../.././bfd/doc/bfd.info, produced by makeinfo version 4.7 from
-../.././bfd/doc/bfd.texinfo.
+This is
+/scratch/paul/2005-q1b/src/binutils-csl-arm-2005q1/bfd/doc/bfd.info,
+produced by makeinfo version 4.7 from
+/scratch/paul/2005-q1b/src/binutils-csl-arm-2005q1/bfd/doc/bfd.texinfo.
 
 START-INFO-DIR-ENTRY
 * Bfd: (bfd).                   The Binary File Descriptor library.
@@ -17,73 +19,9740 @@ END-INFO-DIR-ENTRY
 section entitled "GNU Free Documentation License".
 
 
-Indirect:
-bfd.info-1: 724
-bfd.info-2: 298309
+File: bfd.info,  Node: Top,  Next: Overview,  Prev: (dir),  Up: (dir)
+
+   This file documents the binary file descriptor library libbfd.
+
+* Menu:
+
+* Overview::			Overview of BFD
+* BFD front end::		BFD front end
+* BFD back ends::		BFD back ends
+* GNU Free Documentation License::  GNU Free Documentation License
+* Index::			Index
+
+
+File: bfd.info,  Node: Overview,  Next: BFD front end,  Prev: Top,  Up: Top
+
+1 Introduction
+**************
+
+BFD is a package which allows applications to use the same routines to
+operate on object files whatever the object file format.  A new object
+file format can be supported simply by creating a new BFD back end and
+adding it to the library.
+
+   BFD is split into two parts: the front end, and the back ends (one
+for each object file format).
+   * The front end of BFD provides the interface to the user. It manages
+     memory and various canonical data structures. The front end also
+     decides which back end to use and when to call back end routines.
+
+   * The back ends provide BFD its view of the real world. Each back
+     end provides a set of calls which the BFD front end can use to
+     maintain its canonical form. The back ends also may keep around
+     information for their own use, for greater efficiency.
+
+* Menu:
+
+* History::			History
+* How It Works::		How It Works
+* What BFD Version 2 Can Do::	What BFD Version 2 Can Do
+
+
+File: bfd.info,  Node: History,  Next: How It Works,  Prev: Overview,  Up: Overview
+
+1.1 History
+===========
+
+One spur behind BFD was the desire, on the part of the GNU 960 team at
+Intel Oregon, for interoperability of applications on their COFF and
+b.out file formats.  Cygnus was providing GNU support for the team, and
+was contracted to provide the required functionality.
+
+   The name came from a conversation David Wallace was having with
+Richard Stallman about the library: RMS said that it would be quite
+hard--David said "BFD".  Stallman was right, but the name stuck.
+
+   At the same time, Ready Systems wanted much the same thing, but for
+different object file formats: IEEE-695, Oasys, Srecords, a.out and 68k
+coff.
+
+   BFD was first implemented by members of Cygnus Support; Steve
+Chamberlain (`sac@cygnus.com'), John Gilmore (`gnu@cygnus.com'), K.
+Richard Pixley (`rich@cygnus.com') and David Henkel-Wallace
+(`gumby@cygnus.com').
+
+
+File: bfd.info,  Node: How It Works,  Next: What BFD Version 2 Can Do,  Prev: History,  Up: Overview
+
+1.2 How To Use BFD
+==================
+
+To use the library, include `bfd.h' and link with `libbfd.a'.
+
+   BFD provides a common interface to the parts of an object file for a
+calling application.
+
+   When an application sucessfully opens a target file (object,
+archive, or whatever), a pointer to an internal structure is returned.
+This pointer points to a structure called `bfd', described in `bfd.h'.
+Our convention is to call this pointer a BFD, and instances of it
+within code `abfd'.  All operations on the target object file are
+applied as methods to the BFD.  The mapping is defined within `bfd.h'
+in a set of macros, all beginning with `bfd_' to reduce namespace
+pollution.
+
+   For example, this sequence does what you would probably expect:
+return the number of sections in an object file attached to a BFD
+`abfd'.
+
+     #include "bfd.h"
+
+     unsigned int number_of_sections (abfd)
+     bfd *abfd;
+     {
+       return bfd_count_sections (abfd);
+     }
+
+   The abstraction used within BFD is that an object file has:
+
+   * a header,
+
+   * a number of sections containing raw data (*note Sections::),
+
+   * a set of relocations (*note Relocations::), and
+
+   * some symbol information (*note Symbols::).
+   Also, BFDs opened for archives have the additional attribute of an
+index and contain subordinate BFDs. This approach is fine for a.out and
+coff, but loses efficiency when applied to formats such as S-records and
+IEEE-695.
+
+
+File: bfd.info,  Node: What BFD Version 2 Can Do,  Prev: How It Works,  Up: Overview
+
+1.3 What BFD Version 2 Can Do
+=============================
+
+When an object file is opened, BFD subroutines automatically determine
+the format of the input object file.  They then build a descriptor in
+memory with pointers to routines that will be used to access elements of
+the object file's data structures.
+
+   As different information from the object files is required, BFD
+reads from different sections of the file and processes them.  For
+example, a very common operation for the linker is processing symbol
+tables.  Each BFD back end provides a routine for converting between
+the object file's representation of symbols and an internal canonical
+format. When the linker asks for the symbol table of an object file, it
+calls through a memory pointer to the routine from the relevant BFD
+back end which reads and converts the table into a canonical form.  The
+linker then operates upon the canonical form. When the link is finished
+and the linker writes the output file's symbol table, another BFD back
+end routine is called to take the newly created symbol table and
+convert it into the chosen output format.
+
+* Menu:
+
+* BFD information loss::	Information Loss
+* Canonical format::		The BFD	canonical object-file format
+
+
+File: bfd.info,  Node: BFD information loss,  Next: Canonical format,  Up: What BFD Version 2 Can Do
+
+1.3.1 Information Loss
+----------------------
+
+_Information can be lost during output._ The output formats supported
+by BFD do not provide identical facilities, and information which can
+be described in one form has nowhere to go in another format. One
+example of this is alignment information in `b.out'. There is nowhere
+in an `a.out' format file to store alignment information on the
+contained data, so when a file is linked from `b.out' and an `a.out'
+image is produced, alignment information will not propagate to the
+output file. (The linker will still use the alignment information
+internally, so the link is performed correctly).
+
+   Another example is COFF section names. COFF files may contain an
+unlimited number of sections, each one with a textual section name. If
+the target of the link is a format which does not have many sections
+(e.g., `a.out') or has sections without names (e.g., the Oasys format),
+the link cannot be done simply. You can circumvent this problem by
+describing the desired input-to-output section mapping with the linker
+command language.
+
+   _Information can be lost during canonicalization._ The BFD internal
+canonical form of the external formats is not exhaustive; there are
+structures in input formats for which there is no direct representation
+internally.  This means that the BFD back ends cannot maintain all
+possible data richness through the transformation between external to
+internal and back to external formats.
+
+   This limitation is only a problem when an application reads one
+format and writes another.  Each BFD back end is responsible for
+maintaining as much data as possible, and the internal BFD canonical
+form has structures which are opaque to the BFD core, and exported only
+to the back ends. When a file is read in one format, the canonical form
+is generated for BFD and the application. At the same time, the back
+end saves away any information which may otherwise be lost. If the data
+is then written back in the same format, the back end routine will be
+able to use the canonical form provided by the BFD core as well as the
+information it prepared earlier.  Since there is a great deal of
+commonality between back ends, there is no information lost when
+linking or copying big endian COFF to little endian COFF, or `a.out' to
+`b.out'.  When a mixture of formats is linked, the information is only
+lost from the files whose format differs from the destination.
+
+
+File: bfd.info,  Node: Canonical format,  Prev: BFD information loss,  Up: What BFD Version 2 Can Do
+
+1.3.2 The BFD canonical object-file format
+------------------------------------------
+
+The greatest potential for loss of information occurs when there is the
+least overlap between the information provided by the source format,
+that stored by the canonical format, and that needed by the destination
+format. A brief description of the canonical form may help you
+understand which kinds of data you can count on preserving across
+conversions.
+
+_files_
+     Information stored on a per-file basis includes target machine
+     architecture, particular implementation format type, a demand
+     pageable bit, and a write protected bit.  Information like Unix
+     magic numbers is not stored here--only the magic numbers' meaning,
+     so a `ZMAGIC' file would have both the demand pageable bit and the
+     write protected text bit set.  The byte order of the target is
+     stored on a per-file basis, so that big- and little-endian object
+     files may be used with one another.
+
+_sections_
+     Each section in the input file contains the name of the section,
+     the section's original address in the object file, size and
+     alignment information, various flags, and pointers into other BFD
+     data structures.
+
+_symbols_
+     Each symbol contains a pointer to the information for the object
+     file which originally defined it, its name, its value, and various
+     flag bits.  When a BFD back end reads in a symbol table, it
+     relocates all symbols to make them relative to the base of the
+     section where they were defined.  Doing this ensures that each
+     symbol points to its containing section.  Each symbol also has a
+     varying amount of hidden private data for the BFD back end.  Since
+     the symbol points to the original file, the private data format
+     for that symbol is accessible.  `ld' can operate on a collection
+     of symbols of wildly different formats without problems.
+
+     Normal global and simple local symbols are maintained on output,
+     so an output file (no matter its format) will retain symbols
+     pointing to functions and to global, static, and common variables.
+     Some symbol information is not worth retaining; in `a.out', type
+     information is stored in the symbol table as long symbol names.
+     This information would be useless to most COFF debuggers; the
+     linker has command line switches to allow users to throw it away.
+
+     There is one word of type information within the symbol, so if the
+     format supports symbol type information within symbols (for
+     example, COFF, IEEE, Oasys) and the type is simple enough to fit
+     within one word (nearly everything but aggregates), the
+     information will be preserved.
+
+_relocation level_
+     Each canonical BFD relocation record contains a pointer to the
+     symbol to relocate to, the offset of the data to relocate, the
+     section the data is in, and a pointer to a relocation type
+     descriptor. Relocation is performed by passing messages through
+     the relocation type descriptor and the symbol pointer. Therefore,
+     relocations can be performed on output data using a relocation
+     method that is only available in one of the input formats. For
+     instance, Oasys provides a byte relocation format.  A relocation
+     record requesting this relocation type would point indirectly to a
+     routine to perform this, so the relocation may be performed on a
+     byte being written to a 68k COFF file, even though 68k COFF has no
+     such relocation type.
+
+_line numbers_
+     Object formats can contain, for debugging purposes, some form of
+     mapping between symbols, source line numbers, and addresses in the
+     output file.  These addresses have to be relocated along with the
+     symbol information.  Each symbol with an associated list of line
+     number records points to the first record of the list.  The head
+     of a line number list consists of a pointer to the symbol, which
+     allows finding out the address of the function whose line number
+     is being described. The rest of the list is made up of pairs:
+     offsets into the section and line numbers. Any format which can
+     simply derive this information can pass it successfully between
+     formats (COFF, IEEE and Oasys).
+
+
+File: bfd.info,  Node: BFD front end,  Next: BFD back ends,  Prev: Overview,  Up: Top
+
+2 BFD Front End
+***************
+
+2.1 `typedef bfd'
+=================
+
+A BFD has type `bfd'; objects of this type are the cornerstone of any
+application using BFD. Using BFD consists of making references though
+the BFD and to data in the BFD.
+
+   Here is the structure that defines the type `bfd'.  It contains the
+major data about the file and pointers to the rest of the data.
+
+
+     struct bfd
+     {
+       /* A unique identifier of the BFD  */
+       unsigned int id;
+
+       /* The filename the application opened the BFD with.  */
+       const char *filename;
+
+       /* A pointer to the target jump table.  */
+       const struct bfd_target *xvec;
+
+       /* The IOSTREAM, and corresponding IO vector that provide access
+          to the file backing the BFD.  */
+       void *iostream;
+       const struct bfd_iovec *iovec;
+
+       /* Is the file descriptor being cached?  That is, can it be closed as
+          needed, and re-opened when accessed later?  */
+       bfd_boolean cacheable;
+
+       /* Marks whether there was a default target specified when the
+          BFD was opened. This is used to select which matching algorithm
+          to use to choose the back end.  */
+       bfd_boolean target_defaulted;
+
+       /* The caching routines use these to maintain a
+          least-recently-used list of BFDs.  */
+       struct bfd *lru_prev, *lru_next;
+
+       /* When a file is closed by the caching routines, BFD retains
+          state information on the file here...  */
+       ufile_ptr where;
+
+       /* ... and here: (``once'' means at least once).  */
+       bfd_boolean opened_once;
+
+       /* Set if we have a locally maintained mtime value, rather than
+          getting it from the file each time.  */
+       bfd_boolean mtime_set;
+
+       /* File modified time, if mtime_set is TRUE.  */
+       long mtime;
+
+       /* Reserved for an unimplemented file locking extension.  */
+       int ifd;
+
+       /* The format which belongs to the BFD. (object, core, etc.)  */
+       bfd_format format;
+
+       /* The direction with which the BFD was opened.  */
+       enum bfd_direction
+         {
+           no_direction = 0,
+           read_direction = 1,
+           write_direction = 2,
+           both_direction = 3
+         }
+       direction;
+
+       /* Format_specific flags.  */
+       flagword flags;
+
+       /* Currently my_archive is tested before adding origin to
+          anything. I believe that this can become always an add of
+          origin, with origin set to 0 for non archive files.  */
+       ufile_ptr origin;
+
+       /* Remember when output has begun, to stop strange things
+          from happening.  */
+       bfd_boolean output_has_begun;
+
+       /* A hash table for section names.  */
+       struct bfd_hash_table section_htab;
+
+       /* Pointer to linked list of sections.  */
+       struct bfd_section *sections;
+
+       /* The place where we add to the section list.  */
+       struct bfd_section **section_tail;
+
+       /* The number of sections.  */
+       unsigned int section_count;
+
+       /* Stuff only useful for object files:
+          The start address.  */
+       bfd_vma start_address;
+
+       /* Used for input and output.  */
+       unsigned int symcount;
+
+       /* Symbol table for output BFD (with symcount entries).  */
+       struct bfd_symbol  **outsymbols;
+
+       /* Used for slurped dynamic symbol tables.  */
+       unsigned int dynsymcount;
+
+       /* Pointer to structure which contains architecture information.  */
+       const struct bfd_arch_info *arch_info;
+
+       /* Flag set if symbols from this BFD should not be exported.  */
+       bfd_boolean no_export;
+
+       /* Stuff only useful for archives.  */
+       void *arelt_data;
+       struct bfd *my_archive;      /* The containing archive BFD.  */
+       struct bfd *next;            /* The next BFD in the archive.  */
+       struct bfd *archive_head;    /* The first BFD in the archive.  */
+       bfd_boolean has_armap;
+
+       /* A chain of BFD structures involved in a link.  */
+       struct bfd *link_next;
+
+       /* A field used by _bfd_generic_link_add_archive_symbols.  This will
+          be used only for archive elements.  */
+       int archive_pass;
+
+       /* Used by the back end to hold private data.  */
+       union
+         {
+           struct aout_data_struct *aout_data;
+           struct artdata *aout_ar_data;
+           struct _oasys_data *oasys_obj_data;
+           struct _oasys_ar_data *oasys_ar_data;
+           struct coff_tdata *coff_obj_data;
+           struct pe_tdata *pe_obj_data;
+           struct xcoff_tdata *xcoff_obj_data;
+           struct ecoff_tdata *ecoff_obj_data;
+           struct ieee_data_struct *ieee_data;
+           struct ieee_ar_data_struct *ieee_ar_data;
+           struct srec_data_struct *srec_data;
+           struct ihex_data_struct *ihex_data;
+           struct tekhex_data_struct *tekhex_data;
+           struct elf_obj_tdata *elf_obj_data;
+           struct nlm_obj_tdata *nlm_obj_data;
+           struct bout_data_struct *bout_data;
+           struct mmo_data_struct *mmo_data;
+           struct sun_core_struct *sun_core_data;
+           struct sco5_core_struct *sco5_core_data;
+           struct trad_core_struct *trad_core_data;
+           struct som_data_struct *som_data;
+           struct hpux_core_struct *hpux_core_data;
+           struct hppabsd_core_struct *hppabsd_core_data;
+           struct sgi_core_struct *sgi_core_data;
+           struct lynx_core_struct *lynx_core_data;
+           struct osf_core_struct *osf_core_data;
+           struct cisco_core_struct *cisco_core_data;
+           struct versados_data_struct *versados_data;
+           struct netbsd_core_struct *netbsd_core_data;
+           struct mach_o_data_struct *mach_o_data;
+           struct mach_o_fat_data_struct *mach_o_fat_data;
+           struct bfd_pef_data_struct *pef_data;
+           struct bfd_pef_xlib_data_struct *pef_xlib_data;
+           struct bfd_sym_data_struct *sym_data;
+           void *any;
+         }
+       tdata;
+
+       /* Used by the application to hold private data.  */
+       void *usrdata;
+
+       /* Where all the allocated stuff under this BFD goes.  This is a
+          struct objalloc *, but we use void * to avoid requiring the inclusion
+          of objalloc.h.  */
+       void *memory;
+     };
+
+2.2 Error reporting
+===================
+
+Most BFD functions return nonzero on success (check their individual
+documentation for precise semantics).  On an error, they call
+`bfd_set_error' to set an error condition that callers can check by
+calling `bfd_get_error'.  If that returns `bfd_error_system_call', then
+check `errno'.
+
+   The easiest way to report a BFD error to the user is to use
+`bfd_perror'.
+
+2.2.1 Type `bfd_error_type'
+---------------------------
+
+The values returned by `bfd_get_error' are defined by the enumerated
+type `bfd_error_type'.
+
+
+     typedef enum bfd_error
+     {
+       bfd_error_no_error = 0,
+       bfd_error_system_call,
+       bfd_error_invalid_target,
+       bfd_error_wrong_format,
+       bfd_error_wrong_object_format,
+       bfd_error_invalid_operation,
+       bfd_error_no_memory,
+       bfd_error_no_symbols,
+       bfd_error_no_armap,
+       bfd_error_no_more_archived_files,
+       bfd_error_malformed_archive,
+       bfd_error_file_not_recognized,
+       bfd_error_file_ambiguously_recognized,
+       bfd_error_no_contents,
+       bfd_error_nonrepresentable_section,
+       bfd_error_no_debug_section,
+       bfd_error_bad_value,
+       bfd_error_file_truncated,
+       bfd_error_file_too_big,
+       bfd_error_invalid_error_code
+     }
+     bfd_error_type;
+
+2.2.1.1 `bfd_get_error'
+.......................
+
+*Synopsis*
+     bfd_error_type bfd_get_error (void);
+   *Description*
+Return the current BFD error condition.
+
+2.2.1.2 `bfd_set_error'
+.......................
+
+*Synopsis*
+     void bfd_set_error (bfd_error_type error_tag);
+   *Description*
+Set the BFD error condition to be ERROR_TAG.
+
+2.2.1.3 `bfd_errmsg'
+....................
+
+*Synopsis*
+     const char *bfd_errmsg (bfd_error_type error_tag);
+   *Description*
+Return a string describing the error ERROR_TAG, or the system error if
+ERROR_TAG is `bfd_error_system_call'.
+
+2.2.1.4 `bfd_perror'
+....................
+
+*Synopsis*
+     void bfd_perror (const char *message);
+   *Description*
+Print to the standard error stream a string describing the last BFD
+error that occurred, or the last system error if the last BFD error was
+a system call failure.  If MESSAGE is non-NULL and non-empty, the error
+string printed is preceded by MESSAGE, a colon, and a space.  It is
+followed by a newline.
+
+2.2.2 BFD error handler
+-----------------------
+
+Some BFD functions want to print messages describing the problem.  They
+call a BFD error handler function.  This function may be overridden by
+the program.
+
+   The BFD error handler acts like printf.
+
+
+     typedef void (*bfd_error_handler_type) (const char *, ...);
+
+2.2.2.1 `bfd_set_error_handler'
+...............................
+
+*Synopsis*
+     bfd_error_handler_type bfd_set_error_handler (bfd_error_handler_type);
+   *Description*
+Set the BFD error handler function.  Returns the previous function.
+
+2.2.2.2 `bfd_set_error_program_name'
+....................................
+
+*Synopsis*
+     void bfd_set_error_program_name (const char *);
+   *Description*
+Set the program name to use when printing a BFD error.  This is printed
+before the error message followed by a colon and space.  The string
+must not be changed after it is passed to this function.
+
+2.2.2.3 `bfd_get_error_handler'
+...............................
+
+*Synopsis*
+     bfd_error_handler_type bfd_get_error_handler (void);
+   *Description*
+Return the BFD error handler function.
+
+2.3 Symbols
+===========
+
+2.3.0.1 `bfd_get_reloc_upper_bound'
+...................................
+
+*Synopsis*
+     long bfd_get_reloc_upper_bound (bfd *abfd, asection *sect);
+   *Description*
+Return the number of bytes required to store the relocation information
+associated with section SECT attached to bfd ABFD.  If an error occurs,
+return -1.
+
+2.3.0.2 `bfd_canonicalize_reloc'
+................................
+
+*Synopsis*
+     long bfd_canonicalize_reloc
+        (bfd *abfd, asection *sec, arelent **loc, asymbol **syms);
+   *Description*
+Call the back end associated with the open BFD ABFD and translate the
+external form of the relocation information attached to SEC into the
+internal canonical form.  Place the table into memory at LOC, which has
+been preallocated, usually by a call to `bfd_get_reloc_upper_bound'.
+Returns the number of relocs, or -1 on error.
+
+   The SYMS table is also needed for horrible internal magic reasons.
+
+2.3.0.3 `bfd_set_reloc'
+.......................
+
+*Synopsis*
+     void bfd_set_reloc
+        (bfd *abfd, asection *sec, arelent **rel, unsigned int count);
+   *Description*
+Set the relocation pointer and count within section SEC to the values
+REL and COUNT.  The argument ABFD is ignored.
+
+2.3.0.4 `bfd_set_file_flags'
+............................
+
+*Synopsis*
+     bfd_boolean bfd_set_file_flags (bfd *abfd, flagword flags);
+   *Description*
+Set the flag word in the BFD ABFD to the value FLAGS.
+
+   Possible errors are:
+   * `bfd_error_wrong_format' - The target bfd was not of object format.
+
+   * `bfd_error_invalid_operation' - The target bfd was open for
+     reading.
+
+   * `bfd_error_invalid_operation' - The flag word contained a bit
+     which was not applicable to the type of file.  E.g., an attempt
+     was made to set the `D_PAGED' bit on a BFD format which does not
+     support demand paging.
+
+2.3.0.5 `bfd_get_arch_size'
+...........................
+
+*Synopsis*
+     int bfd_get_arch_size (bfd *abfd);
+   *Description*
+Returns the architecture address size, in bits, as determined by the
+object file's format.  For ELF, this information is included in the
+header.
+
+   *Returns*
+Returns the arch size in bits if known, `-1' otherwise.
+
+2.3.0.6 `bfd_get_sign_extend_vma'
+.................................
+
+*Synopsis*
+     int bfd_get_sign_extend_vma (bfd *abfd);
+   *Description*
+Indicates if the target architecture "naturally" sign extends an
+address.  Some architectures implicitly sign extend address values when
+they are converted to types larger than the size of an address.  For
+instance, bfd_get_start_address() will return an address sign extended
+to fill a bfd_vma when this is the case.
+
+   *Returns*
+Returns `1' if the target architecture is known to sign extend
+addresses, `0' if the target architecture is known to not sign extend
+addresses, and `-1' otherwise.
+
+2.3.0.7 `bfd_set_start_address'
+...............................
+
+*Synopsis*
+     bfd_boolean bfd_set_start_address (bfd *abfd, bfd_vma vma);
+   *Description*
+Make VMA the entry point of output BFD ABFD.
+
+   *Returns*
+Returns `TRUE' on success, `FALSE' otherwise.
+
+2.3.0.8 `bfd_get_gp_size'
+.........................
+
+*Synopsis*
+     unsigned int bfd_get_gp_size (bfd *abfd);
+   *Description*
+Return the maximum size of objects to be optimized using the GP
+register under MIPS ECOFF.  This is typically set by the `-G' argument
+to the compiler, assembler or linker.
+
+2.3.0.9 `bfd_set_gp_size'
+.........................
+
+*Synopsis*
+     void bfd_set_gp_size (bfd *abfd, unsigned int i);
+   *Description*
+Set the maximum size of objects to be optimized using the GP register
+under ECOFF or MIPS ELF.  This is typically set by the `-G' argument to
+the compiler, assembler or linker.
+
+2.3.0.10 `bfd_scan_vma'
+.......................
+
+*Synopsis*
+     bfd_vma bfd_scan_vma (const char *string, const char **end, int base);
+   *Description*
+Convert, like `strtoul', a numerical expression STRING into a `bfd_vma'
+integer, and return that integer.  (Though without as many bells and
+whistles as `strtoul'.)  The expression is assumed to be unsigned
+(i.e., positive).  If given a BASE, it is used as the base for
+conversion.  A base of 0 causes the function to interpret the string in
+hex if a leading "0x" or "0X" is found, otherwise in octal if a leading
+zero is found, otherwise in decimal.
+
+   If the value would overflow, the maximum `bfd_vma' value is returned.
+
+2.3.0.11 `bfd_copy_private_header_data'
+.......................................
+
+*Synopsis*
+     bfd_boolean bfd_copy_private_header_data (bfd *ibfd, bfd *obfd);
+   *Description*
+Copy private BFD header information from the BFD IBFD to the the BFD
+OBFD.  This copies information that may require sections to exist, but
+does not require symbol tables.  Return `true' on success, `false' on
+error.  Possible error returns are:
+
+   * `bfd_error_no_memory' - Not enough memory exists to create private
+     data for OBFD.
+
+     #define bfd_copy_private_header_data(ibfd, obfd) \
+          BFD_SEND (obfd, _bfd_copy_private_header_data, \
+                    (ibfd, obfd))
+
+2.3.0.12 `bfd_copy_private_bfd_data'
+....................................
+
+*Synopsis*
+     bfd_boolean bfd_copy_private_bfd_data (bfd *ibfd, bfd *obfd);
+   *Description*
+Copy private BFD information from the BFD IBFD to the the BFD OBFD.
+Return `TRUE' on success, `FALSE' on error.  Possible error returns are:
+
+   * `bfd_error_no_memory' - Not enough memory exists to create private
+     data for OBFD.
+
+     #define bfd_copy_private_bfd_data(ibfd, obfd) \
+          BFD_SEND (obfd, _bfd_copy_private_bfd_data, \
+                    (ibfd, obfd))
+
+2.3.0.13 `bfd_merge_private_bfd_data'
+.....................................
+
+*Synopsis*
+     bfd_boolean bfd_merge_private_bfd_data (bfd *ibfd, bfd *obfd);
+   *Description*
+Merge private BFD information from the BFD IBFD to the the output file
+BFD OBFD when linking.  Return `TRUE' on success, `FALSE' on error.
+Possible error returns are:
+
+   * `bfd_error_no_memory' - Not enough memory exists to create private
+     data for OBFD.
+
+     #define bfd_merge_private_bfd_data(ibfd, obfd) \
+          BFD_SEND (obfd, _bfd_merge_private_bfd_data, \
+                    (ibfd, obfd))
+
+2.3.0.14 `bfd_set_private_flags'
+................................
+
+*Synopsis*
+     bfd_boolean bfd_set_private_flags (bfd *abfd, flagword flags);
+   *Description*
+Set private BFD flag information in the BFD ABFD.  Return `TRUE' on
+success, `FALSE' on error.  Possible error returns are:
+
+   * `bfd_error_no_memory' - Not enough memory exists to create private
+     data for OBFD.
+
+     #define bfd_set_private_flags(abfd, flags) \
+          BFD_SEND (abfd, _bfd_set_private_flags, (abfd, flags))
+
+2.3.0.15 `Other functions'
+..........................
+
+*Description*
+The following functions exist but have not yet been documented.
+     #define bfd_sizeof_headers(abfd, reloc) \
+            BFD_SEND (abfd, _bfd_sizeof_headers, (abfd, reloc))
+
+     #define bfd_find_nearest_line(abfd, sec, syms, off, file, func, line) \
+            BFD_SEND (abfd, _bfd_find_nearest_line, \
+                      (abfd, sec, syms, off, file, func, line))
+
+     #define bfd_debug_info_start(abfd) \
+            BFD_SEND (abfd, _bfd_debug_info_start, (abfd))
+
+     #define bfd_debug_info_end(abfd) \
+            BFD_SEND (abfd, _bfd_debug_info_end, (abfd))
+
+     #define bfd_debug_info_accumulate(abfd, section) \
+            BFD_SEND (abfd, _bfd_debug_info_accumulate, (abfd, section))
+
+     #define bfd_stat_arch_elt(abfd, stat) \
+            BFD_SEND (abfd, _bfd_stat_arch_elt,(abfd, stat))
+
+     #define bfd_update_armap_timestamp(abfd) \
+            BFD_SEND (abfd, _bfd_update_armap_timestamp, (abfd))
+
+     #define bfd_set_arch_mach(abfd, arch, mach)\
+            BFD_SEND ( abfd, _bfd_set_arch_mach, (abfd, arch, mach))
+
+     #define bfd_relax_section(abfd, section, link_info, again) \
+            BFD_SEND (abfd, _bfd_relax_section, (abfd, section, link_info, again))
+
+     #define bfd_gc_sections(abfd, link_info) \
+            BFD_SEND (abfd, _bfd_gc_sections, (abfd, link_info))
+
+     #define bfd_merge_sections(abfd, link_info) \
+            BFD_SEND (abfd, _bfd_merge_sections, (abfd, link_info))
+
+     #define bfd_is_group_section(abfd, sec) \
+            BFD_SEND (abfd, _bfd_is_group_section, (abfd, sec))
+
+     #define bfd_discard_group(abfd, sec) \
+            BFD_SEND (abfd, _bfd_discard_group, (abfd, sec))
+
+     #define bfd_link_hash_table_create(abfd) \
+            BFD_SEND (abfd, _bfd_link_hash_table_create, (abfd))
+
+     #define bfd_link_hash_table_free(abfd, hash) \
+            BFD_SEND (abfd, _bfd_link_hash_table_free, (hash))
+
+     #define bfd_link_add_symbols(abfd, info) \
+            BFD_SEND (abfd, _bfd_link_add_symbols, (abfd, info))
+
+     #define bfd_link_just_syms(abfd, sec, info) \
+            BFD_SEND (abfd, _bfd_link_just_syms, (sec, info))
+
+     #define bfd_final_link(abfd, info) \
+            BFD_SEND (abfd, _bfd_final_link, (abfd, info))
+
+     #define bfd_free_cached_info(abfd) \
+            BFD_SEND (abfd, _bfd_free_cached_info, (abfd))
+
+     #define bfd_get_dynamic_symtab_upper_bound(abfd) \
+            BFD_SEND (abfd, _bfd_get_dynamic_symtab_upper_bound, (abfd))
+
+     #define bfd_print_private_bfd_data(abfd, file)\
+            BFD_SEND (abfd, _bfd_print_private_bfd_data, (abfd, file))
+
+     #define bfd_canonicalize_dynamic_symtab(abfd, asymbols) \
+            BFD_SEND (abfd, _bfd_canonicalize_dynamic_symtab, (abfd, asymbols))
+
+     #define bfd_get_synthetic_symtab(abfd, count, syms, dyncount, dynsyms, ret) \
+            BFD_SEND (abfd, _bfd_get_synthetic_symtab, (abfd, count, syms, \
+                                                        dyncount, dynsyms, ret))
+
+     #define bfd_get_dynamic_reloc_upper_bound(abfd) \
+            BFD_SEND (abfd, _bfd_get_dynamic_reloc_upper_bound, (abfd))
+
+     #define bfd_canonicalize_dynamic_reloc(abfd, arels, asyms) \
+            BFD_SEND (abfd, _bfd_canonicalize_dynamic_reloc, (abfd, arels, asyms))
+
+     extern bfd_byte *bfd_get_relocated_section_contents
+       (bfd *, struct bfd_link_info *, struct bfd_link_order *, bfd_byte *,
+        bfd_boolean, asymbol **);
+
+2.3.0.16 `bfd_alt_mach_code'
+............................
+
+*Synopsis*
+     bfd_boolean bfd_alt_mach_code (bfd *abfd, int alternative);
+   *Description*
+When more than one machine code number is available for the same
+machine type, this function can be used to switch between the preferred
+one (alternative == 0) and any others.  Currently, only ELF supports
+this feature, with up to two alternate machine codes.
+
+     struct bfd_preserve
+     {
+       void *marker;
+       void *tdata;
+       flagword flags;
+       const struct bfd_arch_info *arch_info;
+       struct bfd_section *sections;
+       struct bfd_section **section_tail;
+       unsigned int section_count;
+       struct bfd_hash_table section_htab;
+     };
+
+2.3.0.17 `bfd_preserve_save'
+............................
+
+*Synopsis*
+     bfd_boolean bfd_preserve_save (bfd *, struct bfd_preserve *);
+   *Description*
+When testing an object for compatibility with a particular target
+back-end, the back-end object_p function needs to set up certain fields
+in the bfd on successfully recognizing the object.  This typically
+happens in a piecemeal fashion, with failures possible at many points.
+On failure, the bfd is supposed to be restored to its initial state,
+which is virtually impossible.  However, restoring a subset of the bfd
+state works in practice.  This function stores the subset and
+reinitializes the bfd.
+
+2.3.0.18 `bfd_preserve_restore'
+...............................
+
+*Synopsis*
+     void bfd_preserve_restore (bfd *, struct bfd_preserve *);
+   *Description*
+This function restores bfd state saved by bfd_preserve_save.  If MARKER
+is non-NULL in struct bfd_preserve then that block and all subsequently
+bfd_alloc'd memory is freed.
+
+2.3.0.19 `bfd_preserve_finish'
+..............................
+
+*Synopsis*
+     void bfd_preserve_finish (bfd *, struct bfd_preserve *);
+   *Description*
+This function should be called when the bfd state saved by
+bfd_preserve_save is no longer needed.  ie. when the back-end object_p
+function returns with success.
+
+2.3.0.20 `struct bfd_iovec'
+...........................
+
+*Description*
+The `struct bfd_iovec' contains the internal file I/O class.  Each
+`BFD' has an instance of this class and all file I/O is routed through
+it (it is assumed that the instance implements all methods listed
+below).
+     struct bfd_iovec
+     {
+       /* To avoid problems with macros, a "b" rather than "f"
+          prefix is prepended to each method name.  */
+       /* Attempt to read/write NBYTES on ABFD's IOSTREAM storing/fetching
+          bytes starting at PTR.  Return the number of bytes actually
+          transfered (a read past end-of-file returns less than NBYTES),
+          or -1 (setting `bfd_error') if an error occurs.  */
+       file_ptr (*bread) (struct bfd *abfd, void *ptr, file_ptr nbytes);
+       file_ptr (*bwrite) (struct bfd *abfd, const void *ptr,
+                           file_ptr nbytes);
+       /* Return the current IOSTREAM file offset, or -1 (setting `bfd_error'
+          if an error occurs.  */
+       file_ptr (*btell) (struct bfd *abfd);
+       /* For the following, on successful completion a value of 0 is returned.
+          Otherwise, a value of -1 is returned (and  `bfd_error' is set).  */
+       int (*bseek) (struct bfd *abfd, file_ptr offset, int whence);
+       int (*bclose) (struct bfd *abfd);
+       int (*bflush) (struct bfd *abfd);
+       int (*bstat) (struct bfd *abfd, struct stat *sb);
+     };
+
+2.3.0.21 `bfd_get_mtime'
+........................
+
+*Synopsis*
+     long bfd_get_mtime (bfd *abfd);
+   *Description*
+Return the file modification time (as read from the file system, or
+from the archive header for archive members).
+
+2.3.0.22 `bfd_get_size'
+.......................
+
+*Synopsis*
+     long bfd_get_size (bfd *abfd);
+   *Description*
+Return the file size (as read from file system) for the file associated
+with BFD ABFD.
+
+   The initial motivation for, and use of, this routine is not so we
+can get the exact size of the object the BFD applies to, since that
+might not be generally possible (archive members for example).  It
+would be ideal if someone could eventually modify it so that such
+results were guaranteed.
+
+   Instead, we want to ask questions like "is this NNN byte sized
+object I'm about to try read from file offset YYY reasonable?"  As as
+example of where we might do this, some object formats use string
+tables for which the first `sizeof (long)' bytes of the table contain
+the size of the table itself, including the size bytes.  If an
+application tries to read what it thinks is one of these string tables,
+without some way to validate the size, and for some reason the size is
+wrong (byte swapping error, wrong location for the string table, etc.),
+the only clue is likely to be a read error when it tries to read the
+table, or a "virtual memory exhausted" error when it tries to allocate
+15 bazillon bytes of space for the 15 bazillon byte table it is about
+to read.  This function at least allows us to answer the question, "is
+the size reasonable?".
+
+* Menu:
+
+* Memory Usage::
+* Initialization::
+* Sections::
+* Symbols::
+* Archives::
+* Formats::
+* Relocations::
+* Core Files::
+* Targets::
+* Architectures::
+* Opening and Closing::
+* Internal::
+* File Caching::
+* Linker Functions::
+* Hash Tables::
+
+
+File: bfd.info,  Node: Memory Usage,  Next: Initialization,  Prev: BFD front end,  Up: BFD front end
+
+2.4 Memory Usage
+================
+
+BFD keeps all of its internal structures in obstacks. There is one
+obstack per open BFD file, into which the current state is stored. When
+a BFD is closed, the obstack is deleted, and so everything which has
+been allocated by BFD for the closing file is thrown away.
+
+   BFD does not free anything created by an application, but pointers
+into `bfd' structures become invalid on a `bfd_close'; for example,
+after a `bfd_close' the vector passed to `bfd_canonicalize_symtab' is
+still around, since it has been allocated by the application, but the
+data that it pointed to are lost.
+
+   The general rule is to not close a BFD until all operations dependent
+upon data from the BFD have been completed, or all the data from within
+the file has been copied. To help with the management of memory, there
+is a function (`bfd_alloc_size') which returns the number of bytes in
+obstacks associated with the supplied BFD. This could be used to select
+the greediest open BFD, close it to reclaim the memory, perform some
+operation and reopen the BFD again, to get a fresh copy of the data
+structures.
+
+
+File: bfd.info,  Node: Initialization,  Next: Sections,  Prev: Memory Usage,  Up: BFD front end
+
+2.5 Initialization
+==================
+
+These are the functions that handle initializing a BFD.
+
+2.5.0.1 `bfd_init'
+..................
+
+*Synopsis*
+     void bfd_init (void);
+   *Description*
+This routine must be called before any other BFD function to initialize
+magical internal data structures.
+
+
+File: bfd.info,  Node: Sections,  Next: Symbols,  Prev: Initialization,  Up: BFD front end
+
+2.6 Sections
+============
+
+The raw data contained within a BFD is maintained through the section
+abstraction.  A single BFD may have any number of sections.  It keeps
+hold of them by pointing to the first; each one points to the next in
+the list.
+
+   Sections are supported in BFD in `section.c'.
+
+* Menu:
+
+* Section Input::
+* Section Output::
+* typedef asection::
+* section prototypes::
+
+
+File: bfd.info,  Node: Section Input,  Next: Section Output,  Prev: Sections,  Up: Sections
+
+2.6.1 Section input
+-------------------
+
+When a BFD is opened for reading, the section structures are created
+and attached to the BFD.
+
+   Each section has a name which describes the section in the outside
+world--for example, `a.out' would contain at least three sections,
+called `.text', `.data' and `.bss'.
+
+   Names need not be unique; for example a COFF file may have several
+sections named `.data'.
+
+   Sometimes a BFD will contain more than the "natural" number of
+sections. A back end may attach other sections containing constructor
+data, or an application may add a section (using `bfd_make_section') to
+the sections attached to an already open BFD. For example, the linker
+creates an extra section `COMMON' for each input file's BFD to hold
+information about common storage.
+
+   The raw data is not necessarily read in when the section descriptor
+is created. Some targets may leave the data in place until a
+`bfd_get_section_contents' call is made. Other back ends may read in
+all the data at once.  For example, an S-record file has to be read
+once to determine the size of the data. An IEEE-695 file doesn't
+contain raw data in sections, but data and relocation expressions
+intermixed, so the data area has to be parsed to get out the data and
+relocations.
+
+
+File: bfd.info,  Node: Section Output,  Next: typedef asection,  Prev: Section Input,  Up: Sections
+
+2.6.2 Section output
+--------------------
+
+To write a new object style BFD, the various sections to be written
+have to be created. They are attached to the BFD in the same way as
+input sections; data is written to the sections using
+`bfd_set_section_contents'.
+
+   Any program that creates or combines sections (e.g., the assembler
+and linker) must use the `asection' fields `output_section' and
+`output_offset' to indicate the file sections to which each section
+must be written.  (If the section is being created from scratch,
+`output_section' should probably point to the section itself and
+`output_offset' should probably be zero.)
+
+   The data to be written comes from input sections attached (via
+`output_section' pointers) to the output sections.  The output section
+structure can be considered a filter for the input section: the output
+section determines the vma of the output data and the name, but the
+input section determines the offset into the output section of the data
+to be written.
+
+   E.g., to create a section "O", starting at 0x100, 0x123 long,
+containing two subsections, "A" at offset 0x0 (i.e., at vma 0x100) and
+"B" at offset 0x20 (i.e., at vma 0x120) the `asection' structures would
+look like:
+
+        section name          "A"
+          output_offset   0x00
+          size            0x20
+          output_section ----------->  section name    "O"
+                                  |    vma             0x100
+        section name          "B" |    size            0x123
+          output_offset   0x20    |
+          size            0x103   |
+          output_section  --------|
+
+2.6.3 Link orders
+-----------------
+
+The data within a section is stored in a "link_order".  These are much
+like the fixups in `gas'.  The link_order abstraction allows a section
+to grow and shrink within itself.
+
+   A link_order knows how big it is, and which is the next link_order
+and where the raw data for it is; it also points to a list of
+relocations which apply to it.
+
+   The link_order is used by the linker to perform relaxing on final
+code.  The compiler creates code which is as big as necessary to make
+it work without relaxing, and the user can select whether to relax.
+Sometimes relaxing takes a lot of time.  The linker runs around the
+relocations to see if any are attached to data which can be shrunk, if
+so it does it on a link_order by link_order basis.
+
+
+File: bfd.info,  Node: typedef asection,  Next: section prototypes,  Prev: Section Output,  Up: Sections
+
+2.6.4 typedef asection
+----------------------
+
+Here is the section structure:
+
+
+     typedef struct bfd_section
+     {
+       /* The name of the section; the name isn't a copy, the pointer is
+          the same as that passed to bfd_make_section.  */
+       const char *name;
+
+       /* A unique sequence number.  */
+       int id;
+
+       /* Which section in the bfd; 0..n-1 as sections are created in a bfd.  */
+       int index;
+
+       /* The next section in the list belonging to the BFD, or NULL.  */
+       struct bfd_section *next;
+
+       /* The field flags contains attributes of the section. Some
+          flags are read in from the object file, and some are
+          synthesized from other information.  */
+       flagword flags;
+
+     #define SEC_NO_FLAGS   0x000
+
+       /* Tells the OS to allocate space for this section when loading.
+          This is clear for a section containing debug information only.  */
+     #define SEC_ALLOC      0x001
+
+       /* Tells the OS to load the section from the file when loading.
+          This is clear for a .bss section.  */
+     #define SEC_LOAD       0x002
+
+       /* The section contains data still to be relocated, so there is
+          some relocation information too.  */
+     #define SEC_RELOC      0x004
+
+       /* A signal to the OS that the section contains read only data.  */
+     #define SEC_READONLY   0x008
+
+       /* The section contains code only.  */
+     #define SEC_CODE       0x010
+
+       /* The section contains data only.  */
+     #define SEC_DATA       0x020
+
+       /* The section will reside in ROM.  */
+     #define SEC_ROM        0x040
+
+       /* The section contains constructor information. This section
+          type is used by the linker to create lists of constructors and
+          destructors used by `g++'. When a back end sees a symbol
+          which should be used in a constructor list, it creates a new
+          section for the type of name (e.g., `__CTOR_LIST__'), attaches
+          the symbol to it, and builds a relocation. To build the lists
+          of constructors, all the linker has to do is catenate all the
+          sections called `__CTOR_LIST__' and relocate the data
+          contained within - exactly the operations it would peform on
+          standard data.  */
+     #define SEC_CONSTRUCTOR 0x080
+
+       /* The section has contents - a data section could be
+          `SEC_ALLOC' | `SEC_HAS_CONTENTS'; a debug section could be
+          `SEC_HAS_CONTENTS'  */
+     #define SEC_HAS_CONTENTS 0x100
+
+       /* An instruction to the linker to not output the section
+          even if it has information which would normally be written.  */
+     #define SEC_NEVER_LOAD 0x200
+
+       /* The section contains thread local data.  */
+     #define SEC_THREAD_LOCAL 0x400
+
+       /* The section has GOT references.  This flag is only for the
+          linker, and is currently only used by the elf32-hppa back end.
+          It will be set if global offset table references were detected
+          in this section, which indicate to the linker that the section
+          contains PIC code, and must be handled specially when doing a
+          static link.  */
+     #define SEC_HAS_GOT_REF 0x800
+
+       /* The section contains common symbols (symbols may be defined
+          multiple times, the value of a symbol is the amount of
+          space it requires, and the largest symbol value is the one
+          used).  Most targets have exactly one of these (which we
+          translate to bfd_com_section_ptr), but ECOFF has two.  */
+     #define SEC_IS_COMMON 0x1000
+
+       /* The section contains only debugging information.  For
+          example, this is set for ELF .debug and .stab sections.
+          strip tests this flag to see if a section can be
+          discarded.  */
+     #define SEC_DEBUGGING 0x2000
+
+       /* The contents of this section are held in memory pointed to
+          by the contents field.  This is checked by bfd_get_section_contents,
+          and the data is retrieved from memory if appropriate.  */
+     #define SEC_IN_MEMORY 0x4000
+
+       /* The contents of this section are to be excluded by the
+          linker for executable and shared objects unless those
+          objects are to be further relocated.  */
+     #define SEC_EXCLUDE 0x8000
+
+       /* The contents of this section are to be sorted based on the sum of
+          the symbol and addend values specified by the associated relocation
+          entries.  Entries without associated relocation entries will be
+          appended to the end of the section in an unspecified order.  */
+     #define SEC_SORT_ENTRIES 0x10000
+
+       /* When linking, duplicate sections of the same name should be
+          discarded, rather than being combined into a single section as
+          is usually done.  This is similar to how common symbols are
+          handled.  See SEC_LINK_DUPLICATES below.  */
+     #define SEC_LINK_ONCE 0x20000
+
+       /* If SEC_LINK_ONCE is set, this bitfield describes how the linker
+          should handle duplicate sections.  */
+     #define SEC_LINK_DUPLICATES 0x40000
+
+       /* This value for SEC_LINK_DUPLICATES means that duplicate
+          sections with the same name should simply be discarded.  */
+     #define SEC_LINK_DUPLICATES_DISCARD 0x0
+
+       /* This value for SEC_LINK_DUPLICATES means that the linker
+          should warn if there are any duplicate sections, although
+          it should still only link one copy.  */
+     #define SEC_LINK_DUPLICATES_ONE_ONLY 0x80000
+
+       /* This value for SEC_LINK_DUPLICATES means that the linker
+          should warn if any duplicate sections are a different size.  */
+     #define SEC_LINK_DUPLICATES_SAME_SIZE 0x100000
+
+       /* This value for SEC_LINK_DUPLICATES means that the linker
+          should warn if any duplicate sections contain different
+          contents.  */
+     #define SEC_LINK_DUPLICATES_SAME_CONTENTS \
+       (SEC_LINK_DUPLICATES_ONE_ONLY | SEC_LINK_DUPLICATES_SAME_SIZE)
+
+       /* This section was created by the linker as part of dynamic
+          relocation or other arcane processing.  It is skipped when
+          going through the first-pass output, trusting that someone
+          else up the line will take care of it later.  */
+     #define SEC_LINKER_CREATED 0x200000
+
+       /* This section should not be subject to garbage collection.  */
+     #define SEC_KEEP 0x400000
+
+       /* This section contains "short" data, and should be placed
+          "near" the GP.  */
+     #define SEC_SMALL_DATA 0x800000
+
+       /* Attempt to merge identical entities in the section.
+          Entity size is given in the entsize field.  */
+     #define SEC_MERGE 0x1000000
+
+       /* If given with SEC_MERGE, entities to merge are zero terminated
+          strings where entsize specifies character size instead of fixed
+          size entries.  */
+     #define SEC_STRINGS 0x2000000
+
+       /* This section contains data about section groups.  */
+     #define SEC_GROUP 0x4000000
+
+       /* The section is a COFF shared library section.  This flag is
+          only for the linker.  If this type of section appears in
+          the input file, the linker must copy it to the output file
+          without changing the vma or size.  FIXME: Although this
+          was originally intended to be general, it really is COFF
+          specific (and the flag was renamed to indicate this).  It
+          might be cleaner to have some more general mechanism to
+          allow the back end to control what the linker does with
+          sections.  */
+     #define SEC_COFF_SHARED_LIBRARY 0x10000000
+
+       /* This section contains data which may be shared with other
+          executables or shared objects. This is for COFF only.  */
+     #define SEC_COFF_SHARED 0x20000000
+
+       /* When a section with this flag is being linked, then if the size of
+          the input section is less than a page, it should not cross a page
+          boundary.  If the size of the input section is one page or more,
+          it should be aligned on a page boundary.  This is for TI
+          TMS320C54X only.  */
+     #define SEC_TIC54X_BLOCK 0x40000000
+
+       /* Conditionally link this section; do not link if there are no
+          references found to any symbol in the section.  This is for TI
+          TMS320C54X only.  */
+     #define SEC_TIC54X_CLINK 0x80000000
+
+       /*  End of section flags.  */
+
+       /* Some internal packed boolean fields.  */
+
+       /* See the vma field.  */
+       unsigned int user_set_vma : 1;
+
+       /* A mark flag used by some of the linker backends.  */
+       unsigned int linker_mark : 1;
+
+       /* Another mark flag used by some of the linker backends.  Set for
+          output sections that have an input section.  */
+       unsigned int linker_has_input : 1;
+
+       /* A mark flag used by some linker backends for garbage collection.  */
+       unsigned int gc_mark : 1;
+
+       /* The following flags are used by the ELF linker. */
+
+       /* Mark sections which have been allocated to segments.  */
+       unsigned int segment_mark : 1;
+
+       /* Type of sec_info information.  */
+       unsigned int sec_info_type:3;
+     #define ELF_INFO_TYPE_NONE      0
+     #define ELF_INFO_TYPE_STABS     1
+     #define ELF_INFO_TYPE_MERGE     2
+     #define ELF_INFO_TYPE_EH_FRAME  3
+     #define ELF_INFO_TYPE_JUST_SYMS 4
+
+       /* Nonzero if this section uses RELA relocations, rather than REL.  */
+       unsigned int use_rela_p:1;
+
+       /* Bits used by various backends.  The generic code doesn't touch
+          these fields.  */
+
+       /* Nonzero if this section has TLS related relocations.  */
+       unsigned int has_tls_reloc:1;
+
+       /* Nonzero if this section has a gp reloc.  */
+       unsigned int has_gp_reloc:1;
+
+       /* Nonzero if this section needs the relax finalize pass.  */
+       unsigned int need_finalize_relax:1;
+
+       /* Whether relocations have been processed.  */
+       unsigned int reloc_done : 1;
+
+       /* End of internal packed boolean fields.  */
+
+       /*  The virtual memory address of the section - where it will be
+           at run time.  The symbols are relocated against this.  The
+           user_set_vma flag is maintained by bfd; if it's not set, the
+           backend can assign addresses (for example, in `a.out', where
+           the default address for `.data' is dependent on the specific
+           target and various flags).  */
+       bfd_vma vma;
+
+       /*  The load address of the section - where it would be in a
+           rom image; really only used for writing section header
+           information.  */
+       bfd_vma lma;
+
+       /* The size of the section in octets, as it will be output.
+          Contains a value even if the section has no contents (e.g., the
+          size of `.bss').  */
+       bfd_size_type size;
+
+       /* For input sections, the original size on disk of the section, in
+          octets.  This field is used by the linker relaxation code.  It is
+          currently only set for sections where the linker relaxation scheme
+          doesn't cache altered section and reloc contents (stabs, eh_frame,
+          SEC_MERGE, some coff relaxing targets), and thus the original size
+          needs to be kept to read the section multiple times.
+          For output sections, rawsize holds the section size calculated on
+          a previous linker relaxation pass.  */
+       bfd_size_type rawsize;
+
+       /* If this section is going to be output, then this value is the
+          offset in *bytes* into the output section of the first byte in the
+          input section (byte ==> smallest addressable unit on the
+          target).  In most cases, if this was going to start at the
+          100th octet (8-bit quantity) in the output section, this value
+          would be 100.  However, if the target byte size is 16 bits
+          (bfd_octets_per_byte is "2"), this value would be 50.  */
+       bfd_vma output_offset;
+
+       /* The output section through which to map on output.  */
+       struct bfd_section *output_section;
+
+       /* The alignment requirement of the section, as an exponent of 2 -
+          e.g., 3 aligns to 2^3 (or 8).  */
+       unsigned int alignment_power;
+
+       /* If an input section, a pointer to a vector of relocation
+          records for the data in this section.  */
+       struct reloc_cache_entry *relocation;
+
+       /* If an output section, a pointer to a vector of pointers to
+          relocation records for the data in this section.  */
+       struct reloc_cache_entry **orelocation;
+
+       /* The number of relocation records in one of the above.  */
+       unsigned reloc_count;
+
+       /* Information below is back end specific - and not always used
+          or updated.  */
+
+       /* File position of section data.  */
+       file_ptr filepos;
+
+       /* File position of relocation info.  */
+       file_ptr rel_filepos;
+
+       /* File position of line data.  */
+       file_ptr line_filepos;
+
+       /* Pointer to data for applications.  */
+       void *userdata;
+
+       /* If the SEC_IN_MEMORY flag is set, this points to the actual
+          contents.  */
+       unsigned char *contents;
+
+       /* Attached line number information.  */
+       alent *lineno;
+
+       /* Number of line number records.  */
+       unsigned int lineno_count;
+
+       /* Entity size for merging purposes.  */
+       unsigned int entsize;
+
+       /* Points to the kept section if this section is a link-once section,
+          and is discarded.  */
+       struct bfd_section *kept_section;
+
+       /* When a section is being output, this value changes as more
+          linenumbers are written out.  */
+       file_ptr moving_line_filepos;
+
+       /* What the section number is in the target world.  */
+       int target_index;
+
+       void *used_by_bfd;
+
+       /* If this is a constructor section then here is a list of the
+          relocations created to relocate items within it.  */
+       struct relent_chain *constructor_chain;
+
+       /* The BFD which owns the section.  */
+       bfd *owner;
+
+       /* A symbol which points at this section only.  */
+       struct bfd_symbol *symbol;
+       struct bfd_symbol **symbol_ptr_ptr;
+
+       struct bfd_link_order *link_order_head;
+       struct bfd_link_order *link_order_tail;
+     } asection;
+
+     /* These sections are global, and are managed by BFD.  The application
+        and target back end are not permitted to change the values in
+        these sections.  New code should use the section_ptr macros rather
+        than referring directly to the const sections.  The const sections
+        may eventually vanish.  */
+     #define BFD_ABS_SECTION_NAME "*ABS*"
+     #define BFD_UND_SECTION_NAME "*UND*"
+     #define BFD_COM_SECTION_NAME "*COM*"
+     #define BFD_IND_SECTION_NAME "*IND*"
+
+     /* The absolute section.  */
+     extern asection bfd_abs_section;
+     #define bfd_abs_section_ptr ((asection *) &bfd_abs_section)
+     #define bfd_is_abs_section(sec) ((sec) == bfd_abs_section_ptr)
+     /* Pointer to the undefined section.  */
+     extern asection bfd_und_section;
+     #define bfd_und_section_ptr ((asection *) &bfd_und_section)
+     #define bfd_is_und_section(sec) ((sec) == bfd_und_section_ptr)
+     /* Pointer to the common section.  */
+     extern asection bfd_com_section;
+     #define bfd_com_section_ptr ((asection *) &bfd_com_section)
+     /* Pointer to the indirect section.  */
+     extern asection bfd_ind_section;
+     #define bfd_ind_section_ptr ((asection *) &bfd_ind_section)
+     #define bfd_is_ind_section(sec) ((sec) == bfd_ind_section_ptr)
+
+     #define bfd_is_const_section(SEC)              \
+      (   ((SEC) == bfd_abs_section_ptr)            \
+       || ((SEC) == bfd_und_section_ptr)            \
+       || ((SEC) == bfd_com_section_ptr)            \
+       || ((SEC) == bfd_ind_section_ptr))
+
+     extern const struct bfd_symbol * const bfd_abs_symbol;
+     extern const struct bfd_symbol * const bfd_com_symbol;
+     extern const struct bfd_symbol * const bfd_und_symbol;
+     extern const struct bfd_symbol * const bfd_ind_symbol;
+
+     /* Macros to handle insertion and deletion of a bfd's sections.  These
+        only handle the list pointers, ie. do not adjust section_count,
+        target_index etc.  */
+     #define bfd_section_list_remove(ABFD, PS) \
+       do                                                   \
+         {                                                  \
+           asection **_ps = PS;                             \
+           asection *_s = *_ps;                             \
+           *_ps = _s->next;                                 \
+           if (_s->next == NULL)                            \
+             (ABFD)->section_tail = _ps;                    \
+         }                                                  \
+       while (0)
+     #define bfd_section_list_insert(ABFD, PS, S) \
+       do                                                   \
+         {                                                  \
+           asection **_ps = PS;                             \
+           asection *_s = S;                                \
+           _s->next = *_ps;                                 \
+           *_ps = _s;                                       \
+           if (_s->next == NULL)                            \
+             (ABFD)->section_tail = &_s->next;              \
+         }                                                  \
+       while (0)
+
+
+File: bfd.info,  Node: section prototypes,  Prev: typedef asection,  Up: Sections
+
+2.6.5 Section prototypes
+------------------------
+
+These are the functions exported by the section handling part of BFD.
+
+2.6.5.1 `bfd_section_list_clear'
+................................
+
+*Synopsis*
+     void bfd_section_list_clear (bfd *);
+   *Description*
+Clears the section list, and also resets the section count and hash
+table entries.
+
+2.6.5.2 `bfd_get_section_by_name'
+.................................
+
+*Synopsis*
+     asection *bfd_get_section_by_name (bfd *abfd, const char *name);
+   *Description*
+Run through ABFD and return the one of the `asection's whose name
+matches NAME, otherwise `NULL'.  *Note Sections::, for more information.
+
+   This should only be used in special cases; the normal way to process
+all sections of a given name is to use `bfd_map_over_sections' and
+`strcmp' on the name (or better yet, base it on the section flags or
+something else) for each section.
+
+2.6.5.3 `bfd_get_section_by_name_if'
+....................................
+
+*Synopsis*
+     asection *bfd_get_section_by_name_if
+        (bfd *abfd,
+         const char *name,
+         bfd_boolean (*func) (bfd *abfd, asection *sect, void *obj),
+         void *obj);
+   *Description*
+Call the provided function FUNC for each section attached to the BFD
+ABFD whose name matches NAME, passing OBJ as an argument. The function
+will be called as if by
+
+            func (abfd, the_section, obj);
+
+   It returns the first section for which FUNC returns true, otherwise
+`NULL'.
+
+2.6.5.4 `bfd_get_unique_section_name'
+.....................................
+
+*Synopsis*
+     char *bfd_get_unique_section_name
+        (bfd *abfd, const char *templat, int *count);
+   *Description*
+Invent a section name that is unique in ABFD by tacking a dot and a
+digit suffix onto the original TEMPLAT.  If COUNT is non-NULL, then it
+specifies the first number tried as a suffix to generate a unique name.
+The value pointed to by COUNT will be incremented in this case.
+
+2.6.5.5 `bfd_make_section_old_way'
+..................................
+
+*Synopsis*
+     asection *bfd_make_section_old_way (bfd *abfd, const char *name);
+   *Description*
+Create a new empty section called NAME and attach it to the end of the
+chain of sections for the BFD ABFD. An attempt to create a section with
+a name which is already in use returns its pointer without changing the
+section chain.
+
+   It has the funny name since this is the way it used to be before it
+was rewritten....
+
+   Possible errors are:
+   * `bfd_error_invalid_operation' - If output has already started for
+     this BFD.
+
+   * `bfd_error_no_memory' - If memory allocation fails.
+
+2.6.5.6 `bfd_make_section_anyway'
+.................................
+
+*Synopsis*
+     asection *bfd_make_section_anyway (bfd *abfd, const char *name);
+   *Description*
+Create a new empty section called NAME and attach it to the end of the
+chain of sections for ABFD.  Create a new section even if there is
+already a section with that name.
+
+   Return `NULL' and set `bfd_error' on error; possible errors are:
+   * `bfd_error_invalid_operation' - If output has already started for
+     ABFD.
+
+   * `bfd_error_no_memory' - If memory allocation fails.
+
+2.6.5.7 `bfd_make_section'
+..........................
+
+*Synopsis*
+     asection *bfd_make_section (bfd *, const char *name);
+   *Description*
+Like `bfd_make_section_anyway', but return `NULL' (without calling
+bfd_set_error ()) without changing the section chain if there is
+already a section named NAME.  If there is an error, return `NULL' and
+set `bfd_error'.
+
+2.6.5.8 `bfd_set_section_flags'
+...............................
+
+*Synopsis*
+     bfd_boolean bfd_set_section_flags
+        (bfd *abfd, asection *sec, flagword flags);
+   *Description*
+Set the attributes of the section SEC in the BFD ABFD to the value
+FLAGS. Return `TRUE' on success, `FALSE' on error. Possible error
+returns are:
+
+   * `bfd_error_invalid_operation' - The section cannot have one or
+     more of the attributes requested. For example, a .bss section in
+     `a.out' may not have the `SEC_HAS_CONTENTS' field set.
+
+2.6.5.9 `bfd_map_over_sections'
+...............................
+
+*Synopsis*
+     void bfd_map_over_sections
+        (bfd *abfd,
+         void (*func) (bfd *abfd, asection *sect, void *obj),
+         void *obj);
+   *Description*
+Call the provided function FUNC for each section attached to the BFD
+ABFD, passing OBJ as an argument. The function will be called as if by
+
+            func (abfd, the_section, obj);
+
+   This is the preferred method for iterating over sections; an
+alternative would be to use a loop:
+
+               section *p;
+               for (p = abfd->sections; p != NULL; p = p->next)
+                  func (abfd, p, ...)
+
+2.6.5.10 `bfd_sections_find_if'
+...............................
+
+*Synopsis*
+     asection *bfd_sections_find_if
+        (bfd *abfd,
+         bfd_boolean (*operation) (bfd *abfd, asection *sect, void *obj),
+         void *obj);
+   *Description*
+Call the provided function OPERATION for each section attached to the
+BFD ABFD, passing OBJ as an argument. The function will be called as if
+by
+
+            operation (abfd, the_section, obj);
+
+   It returns the first section for which OPERATION returns true.
+
+2.6.5.11 `bfd_set_section_size'
+...............................
+
+*Synopsis*
+     bfd_boolean bfd_set_section_size
+        (bfd *abfd, asection *sec, bfd_size_type val);
+   *Description*
+Set SEC to the size VAL. If the operation is ok, then `TRUE' is
+returned, else `FALSE'.
+
+   Possible error returns:
+   * `bfd_error_invalid_operation' - Writing has started to the BFD, so
+     setting the size is invalid.
+
+2.6.5.12 `bfd_set_section_contents'
+...................................
+
+*Synopsis*
+     bfd_boolean bfd_set_section_contents
+        (bfd *abfd, asection *section, const void *data,
+         file_ptr offset, bfd_size_type count);
+   *Description*
+Sets the contents of the section SECTION in BFD ABFD to the data
+starting in memory at DATA. The data is written to the output section
+starting at offset OFFSET for COUNT octets.
+
+   Normally `TRUE' is returned, else `FALSE'. Possible error returns
+are:
+   * `bfd_error_no_contents' - The output section does not have the
+     `SEC_HAS_CONTENTS' attribute, so nothing can be written to it.
+
+   * and some more too
+   This routine is front end to the back end function
+`_bfd_set_section_contents'.
+
+2.6.5.13 `bfd_get_section_contents'
+...................................
+
+*Synopsis*
+     bfd_boolean bfd_get_section_contents
+        (bfd *abfd, asection *section, void *location, file_ptr offset,
+         bfd_size_type count);
+   *Description*
+Read data from SECTION in BFD ABFD into memory starting at LOCATION.
+The data is read at an offset of OFFSET from the start of the input
+section, and is read for COUNT bytes.
+
+   If the contents of a constructor with the `SEC_CONSTRUCTOR' flag set
+are requested or if the section does not have the `SEC_HAS_CONTENTS'
+flag set, then the LOCATION is filled with zeroes. If no errors occur,
+`TRUE' is returned, else `FALSE'.
+
+2.6.5.14 `bfd_malloc_and_get_section'
+.....................................
+
+*Synopsis*
+     bfd_boolean bfd_malloc_and_get_section
+        (bfd *abfd, asection *section, bfd_byte **buf);
+   *Description*
+Read all data from SECTION in BFD ABFD into a buffer, *BUF, malloc'd by
+this function.
+
+2.6.5.15 `bfd_copy_private_section_data'
+........................................
+
+*Synopsis*
+     bfd_boolean bfd_copy_private_section_data
+        (bfd *ibfd, asection *isec, bfd *obfd, asection *osec);
+   *Description*
+Copy private section information from ISEC in the BFD IBFD to the
+section OSEC in the BFD OBFD.  Return `TRUE' on success, `FALSE' on
+error.  Possible error returns are:
+
+   * `bfd_error_no_memory' - Not enough memory exists to create private
+     data for OSEC.
+
+     #define bfd_copy_private_section_data(ibfd, isection, obfd, osection) \
+          BFD_SEND (obfd, _bfd_copy_private_section_data, \
+                    (ibfd, isection, obfd, osection))
+
+2.6.5.16 `_bfd_strip_section_from_output'
+.........................................
+
+*Synopsis*
+     void _bfd_strip_section_from_output
+        (struct bfd_link_info *info, asection *section);
+   *Description*
+Remove SECTION from the output.  If the output section becomes empty,
+remove it from the output bfd.
+
+   This function won't actually do anything except twiddle flags if
+called too late in the linking process, when it's not safe to remove
+sections.
+
+2.6.5.17 `bfd_generic_is_group_section'
+.......................................
+
+*Synopsis*
+     bfd_boolean bfd_generic_is_group_section (bfd *, const asection *sec);
+   *Description*
+Returns TRUE if SEC is a member of a group.
+
+2.6.5.18 `bfd_generic_discard_group'
+....................................
+
+*Synopsis*
+     bfd_boolean bfd_generic_discard_group (bfd *abfd, asection *group);
+   *Description*
+Remove all members of GROUP from the output.
+
+
+File: bfd.info,  Node: Symbols,  Next: Archives,  Prev: Sections,  Up: BFD front end
+
+2.7 Symbols
+===========
+
+BFD tries to maintain as much symbol information as it can when it
+moves information from file to file. BFD passes information to
+applications though the `asymbol' structure. When the application
+requests the symbol table, BFD reads the table in the native form and
+translates parts of it into the internal format. To maintain more than
+the information passed to applications, some targets keep some
+information "behind the scenes" in a structure only the particular back
+end knows about. For example, the coff back end keeps the original
+symbol table structure as well as the canonical structure when a BFD is
+read in. On output, the coff back end can reconstruct the output symbol
+table so that no information is lost, even information unique to coff
+which BFD doesn't know or understand. If a coff symbol table were read,
+but were written through an a.out back end, all the coff specific
+information would be lost. The symbol table of a BFD is not necessarily
+read in until a canonicalize request is made. Then the BFD back end
+fills in a table provided by the application with pointers to the
+canonical information.  To output symbols, the application provides BFD
+with a table of pointers to pointers to `asymbol's. This allows
+applications like the linker to output a symbol as it was read, since
+the "behind the scenes" information will be still available.
+
+* Menu:
+
+* Reading Symbols::
+* Writing Symbols::
+* Mini Symbols::
+* typedef asymbol::
+* symbol handling functions::
+
+
+File: bfd.info,  Node: Reading Symbols,  Next: Writing Symbols,  Prev: Symbols,  Up: Symbols
+
+2.7.1 Reading symbols
+---------------------
+
+There are two stages to reading a symbol table from a BFD: allocating
+storage, and the actual reading process. This is an excerpt from an
+application which reads the symbol table:
+
+              long storage_needed;
+              asymbol **symbol_table;
+              long number_of_symbols;
+              long i;
+
+              storage_needed = bfd_get_symtab_upper_bound (abfd);
+
+              if (storage_needed < 0)
+                FAIL
+
+              if (storage_needed == 0)
+                return;
+
+              symbol_table = xmalloc (storage_needed);
+                ...
+              number_of_symbols =
+                 bfd_canonicalize_symtab (abfd, symbol_table);
+
+              if (number_of_symbols < 0)
+                FAIL
+
+              for (i = 0; i < number_of_symbols; i++)
+                process_symbol (symbol_table[i]);
+
+   All storage for the symbols themselves is in an objalloc connected
+to the BFD; it is freed when the BFD is closed.
+
+
+File: bfd.info,  Node: Writing Symbols,  Next: Mini Symbols,  Prev: Reading Symbols,  Up: Symbols
+
+2.7.2 Writing symbols
+---------------------
+
+Writing of a symbol table is automatic when a BFD open for writing is
+closed. The application attaches a vector of pointers to pointers to
+symbols to the BFD being written, and fills in the symbol count. The
+close and cleanup code reads through the table provided and performs
+all the necessary operations. The BFD output code must always be
+provided with an "owned" symbol: one which has come from another BFD,
+or one which has been created using `bfd_make_empty_symbol'.  Here is an
+example showing the creation of a symbol table with only one element:
+
+            #include "bfd.h"
+            int main (void)
+            {
+              bfd *abfd;
+              asymbol *ptrs[2];
+              asymbol *new;
+
+              abfd = bfd_openw ("foo","a.out-sunos-big");
+              bfd_set_format (abfd, bfd_object);
+              new = bfd_make_empty_symbol (abfd);
+              new->name = "dummy_symbol";
+              new->section = bfd_make_section_old_way (abfd, ".text");
+              new->flags = BSF_GLOBAL;
+              new->value = 0x12345;
+
+              ptrs[0] = new;
+              ptrs[1] = 0;
+
+              bfd_set_symtab (abfd, ptrs, 1);
+              bfd_close (abfd);
+              return 0;
+            }
+
+            ./makesym
+            nm foo
+            00012345 A dummy_symbol
+
+   Many formats cannot represent arbitrary symbol information; for
+instance, the `a.out' object format does not allow an arbitrary number
+of sections. A symbol pointing to a section which is not one  of
+`.text', `.data' or `.bss' cannot be described.
+
+
+File: bfd.info,  Node: Mini Symbols,  Next: typedef asymbol,  Prev: Writing Symbols,  Up: Symbols
+
+2.7.3 Mini Symbols
+------------------
+
+Mini symbols provide read-only access to the symbol table.  They use
+less memory space, but require more time to access.  They can be useful
+for tools like nm or objdump, which may have to handle symbol tables of
+extremely large executables.
+
+   The `bfd_read_minisymbols' function will read the symbols into
+memory in an internal form.  It will return a `void *' pointer to a
+block of memory, a symbol count, and the size of each symbol.  The
+pointer is allocated using `malloc', and should be freed by the caller
+when it is no longer needed.
+
+   The function `bfd_minisymbol_to_symbol' will take a pointer to a
+minisymbol, and a pointer to a structure returned by
+`bfd_make_empty_symbol', and return a `asymbol' structure.  The return
+value may or may not be the same as the value from
+`bfd_make_empty_symbol' which was passed in.
+
+
+File: bfd.info,  Node: typedef asymbol,  Next: symbol handling functions,  Prev: Mini Symbols,  Up: Symbols
+
+2.7.4 typedef asymbol
+---------------------
+
+An `asymbol' has the form:
+
+
+     typedef struct bfd_symbol
+     {
+       /* A pointer to the BFD which owns the symbol. This information
+          is necessary so that a back end can work out what additional
+          information (invisible to the application writer) is carried
+          with the symbol.
+
+          This field is *almost* redundant, since you can use section->owner
+          instead, except that some symbols point to the global sections
+          bfd_{abs,com,und}_section.  This could be fixed by making
+          these globals be per-bfd (or per-target-flavor).  FIXME.  */
+       struct bfd *the_bfd; /* Use bfd_asymbol_bfd(sym) to access this field.  */
+
+       /* The text of the symbol. The name is left alone, and not copied; the
+          application may not alter it.  */
+       const char *name;
+
+       /* The value of the symbol.  This really should be a union of a
+          numeric value with a pointer, since some flags indicate that
+          a pointer to another symbol is stored here.  */
+       symvalue value;
+
+       /* Attributes of a symbol.  */
+     #define BSF_NO_FLAGS    0x00
+
+       /* The symbol has local scope; `static' in `C'. The value
+          is the offset into the section of the data.  */
+     #define BSF_LOCAL      0x01
+
+       /* The symbol has global scope; initialized data in `C'. The
+          value is the offset into the section of the data.  */
+     #define BSF_GLOBAL     0x02
+
+       /* The symbol has global scope and is exported. The value is
+          the offset into the section of the data.  */
+     #define BSF_EXPORT     BSF_GLOBAL /* No real difference.  */
+
+       /* A normal C symbol would be one of:
+          `BSF_LOCAL', `BSF_FORT_COMM',  `BSF_UNDEFINED' or
+          `BSF_GLOBAL'.  */
+
+       /* The symbol is a debugging record. The value has an arbitrary
+          meaning, unless BSF_DEBUGGING_RELOC is also set.  */
+     #define BSF_DEBUGGING  0x08
+
+       /* The symbol denotes a function entry point.  Used in ELF,
+          perhaps others someday.  */
+     #define BSF_FUNCTION    0x10
+
+       /* Used by the linker.  */
+     #define BSF_KEEP        0x20
+     #define BSF_KEEP_G      0x40
+
+       /* A weak global symbol, overridable without warnings by
+          a regular global symbol of the same name.  */
+     #define BSF_WEAK        0x80
+
+       /* This symbol was created to point to a section, e.g. ELF's
+          STT_SECTION symbols.  */
+     #define BSF_SECTION_SYM 0x100
+
+       /* The symbol used to be a common symbol, but now it is
+          allocated.  */
+     #define BSF_OLD_COMMON  0x200
+
+       /* The default value for common data.  */
+     #define BFD_FORT_COMM_DEFAULT_VALUE 0
+
+       /* In some files the type of a symbol sometimes alters its
+          location in an output file - ie in coff a `ISFCN' symbol
+          which is also `C_EXT' symbol appears where it was
+          declared and not at the end of a section.  This bit is set
+          by the target BFD part to convey this information.  */
+     #define BSF_NOT_AT_END    0x400
+
+       /* Signal that the symbol is the label of constructor section.  */
+     #define BSF_CONSTRUCTOR   0x800
+
+       /* Signal that the symbol is a warning symbol.  The name is a
+          warning.  The name of the next symbol is the one to warn about;
+          if a reference is made to a symbol with the same name as the next
+          symbol, a warning is issued by the linker.  */
+     #define BSF_WARNING       0x1000
+
+       /* Signal that the symbol is indirect.  This symbol is an indirect
+          pointer to the symbol with the same name as the next symbol.  */
+     #define BSF_INDIRECT      0x2000
+
+       /* BSF_FILE marks symbols that contain a file name.  This is used
+          for ELF STT_FILE symbols.  */
+     #define BSF_FILE          0x4000
+
+       /* Symbol is from dynamic linking information.  */
+     #define BSF_DYNAMIC       0x8000
+
+       /* The symbol denotes a data object.  Used in ELF, and perhaps
+          others someday.  */
+     #define BSF_OBJECT        0x10000
+
+       /* This symbol is a debugging symbol.  The value is the offset
+          into the section of the data.  BSF_DEBUGGING should be set
+          as well.  */
+     #define BSF_DEBUGGING_RELOC 0x20000
+
+       /* This symbol is thread local.  Used in ELF.  */
+     #define BSF_THREAD_LOCAL  0x40000
+
+       flagword flags;
+
+       /* A pointer to the section to which this symbol is
+          relative.  This will always be non NULL, there are special
+          sections for undefined and absolute symbols.  */
+       struct bfd_section *section;
+
+       /* Back end special data.  */
+       union
+         {
+           void *p;
+           bfd_vma i;
+         }
+       udata;
+     }
+     asymbol;
+
+
+File: bfd.info,  Node: symbol handling functions,  Prev: typedef asymbol,  Up: Symbols
+
+2.7.5 Symbol handling functions
+-------------------------------
+
+2.7.5.1 `bfd_get_symtab_upper_bound'
+....................................
+
+*Description*
+Return the number of bytes required to store a vector of pointers to
+`asymbols' for all the symbols in the BFD ABFD, including a terminal
+NULL pointer. If there are no symbols in the BFD, then return 0.  If an
+error occurs, return -1.
+     #define bfd_get_symtab_upper_bound(abfd) \
+          BFD_SEND (abfd, _bfd_get_symtab_upper_bound, (abfd))
+
+2.7.5.2 `bfd_is_local_label'
+............................
+
+*Synopsis*
+     bfd_boolean bfd_is_local_label (bfd *abfd, asymbol *sym);
+   *Description*
+Return TRUE if the given symbol SYM in the BFD ABFD is a compiler
+generated local label, else return FALSE.
+
+2.7.5.3 `bfd_is_local_label_name'
+.................................
+
+*Synopsis*
+     bfd_boolean bfd_is_local_label_name (bfd *abfd, const char *name);
+   *Description*
+Return TRUE if a symbol with the name NAME in the BFD ABFD is a
+compiler generated local label, else return FALSE.  This just checks
+whether the name has the form of a local label.
+     #define bfd_is_local_label_name(abfd, name) \
+       BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name))
+
+2.7.5.4 `bfd_is_target_special_symbol'
+......................................
+
+*Synopsis*
+     bfd_boolean bfd_is_target_special_symbol (bfd *abfd, asymbol *sym);
+   *Description*
+Return TRUE iff a symbol SYM in the BFD ABFD is something special to
+the particular target represented by the BFD.  Such symbols should
+normally not be mentioned to the user.
+     #define bfd_is_target_special_symbol(abfd, sym) \
+       BFD_SEND (abfd, _bfd_is_target_special_symbol, (abfd, sym))
+
+2.7.5.5 `bfd_canonicalize_symtab'
+.................................
+
+*Description*
+Read the symbols from the BFD ABFD, and fills in the vector LOCATION
+with pointers to the symbols and a trailing NULL.  Return the actual
+number of symbol pointers, not including the NULL.
+     #define bfd_canonicalize_symtab(abfd, location) \
+       BFD_SEND (abfd, _bfd_canonicalize_symtab, (abfd, location))
+
+2.7.5.6 `bfd_set_symtab'
+........................
+
+*Synopsis*
+     bfd_boolean bfd_set_symtab
+        (bfd *abfd, asymbol **location, unsigned int count);
+   *Description*
+Arrange that when the output BFD ABFD is closed, the table LOCATION of
+COUNT pointers to symbols will be written.
+
+2.7.5.7 `bfd_print_symbol_vandf'
+................................
+
+*Synopsis*
+     void bfd_print_symbol_vandf (bfd *abfd, void *file, asymbol *symbol);
+   *Description*
+Print the value and flags of the SYMBOL supplied to the stream FILE.
+
+2.7.5.8 `bfd_make_empty_symbol'
+...............................
+
+*Description*
+Create a new `asymbol' structure for the BFD ABFD and return a pointer
+to it.
+
+   This routine is necessary because each back end has private
+information surrounding the `asymbol'. Building your own `asymbol' and
+pointing to it will not create the private information, and will cause
+problems later on.
+     #define bfd_make_empty_symbol(abfd) \
+       BFD_SEND (abfd, _bfd_make_empty_symbol, (abfd))
+
+2.7.5.9 `_bfd_generic_make_empty_symbol'
+........................................
+
+*Synopsis*
+     asymbol *_bfd_generic_make_empty_symbol (bfd *);
+   *Description*
+Create a new `asymbol' structure for the BFD ABFD and return a pointer
+to it.  Used by core file routines, binary back-end and anywhere else
+where no private info is needed.
+
+2.7.5.10 `bfd_make_debug_symbol'
+................................
+
+*Description*
+Create a new `asymbol' structure for the BFD ABFD, to be used as a
+debugging symbol.  Further details of its use have yet to be worked out.
+     #define bfd_make_debug_symbol(abfd,ptr,size) \
+       BFD_SEND (abfd, _bfd_make_debug_symbol, (abfd, ptr, size))
+
+2.7.5.11 `bfd_decode_symclass'
+..............................
+
+*Description*
+Return a character corresponding to the symbol class of SYMBOL, or '?'
+for an unknown class.
+
+   *Synopsis*
+     int bfd_decode_symclass (asymbol *symbol);
+
+2.7.5.12 `bfd_is_undefined_symclass'
+....................................
+
+*Description*
+Returns non-zero if the class symbol returned by bfd_decode_symclass
+represents an undefined symbol.  Returns zero otherwise.
+
+   *Synopsis*
+     bfd_boolean bfd_is_undefined_symclass (int symclass);
+
+2.7.5.13 `bfd_symbol_info'
+..........................
+
+*Description*
+Fill in the basic info about symbol that nm needs.  Additional info may
+be added by the back-ends after calling this function.
+
+   *Synopsis*
+     void bfd_symbol_info (asymbol *symbol, symbol_info *ret);
+
+2.7.5.14 `bfd_copy_private_symbol_data'
+.......................................
+
+*Synopsis*
+     bfd_boolean bfd_copy_private_symbol_data
+        (bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym);
+   *Description*
+Copy private symbol information from ISYM in the BFD IBFD to the symbol
+OSYM in the BFD OBFD.  Return `TRUE' on success, `FALSE' on error.
+Possible error returns are:
+
+   * `bfd_error_no_memory' - Not enough memory exists to create private
+     data for OSEC.
+
+     #define bfd_copy_private_symbol_data(ibfd, isymbol, obfd, osymbol) \
+       BFD_SEND (obfd, _bfd_copy_private_symbol_data, \
+                 (ibfd, isymbol, obfd, osymbol))
+
+
+File: bfd.info,  Node: Archives,  Next: Formats,  Prev: Symbols,  Up: BFD front end
+
+2.8 Archives
+============
+
+*Description*
+An archive (or library) is just another BFD.  It has a symbol table,
+although there's not much a user program will do with it.
+
+   The big difference between an archive BFD and an ordinary BFD is
+that the archive doesn't have sections.  Instead it has a chain of BFDs
+that are considered its contents.  These BFDs can be manipulated like
+any other.  The BFDs contained in an archive opened for reading will
+all be opened for reading.  You may put either input or output BFDs
+into an archive opened for output; they will be handled correctly when
+the archive is closed.
+
+   Use `bfd_openr_next_archived_file' to step through the contents of
+an archive opened for input.  You don't have to read the entire archive
+if you don't want to!  Read it until you find what you want.
+
+   Archive contents of output BFDs are chained through the `next'
+pointer in a BFD.  The first one is findable through the `archive_head'
+slot of the archive.  Set it with `bfd_set_archive_head' (q.v.).  A
+given BFD may be in only one open output archive at a time.
+
+   As expected, the BFD archive code is more general than the archive
+code of any given environment.  BFD archives may contain files of
+different formats (e.g., a.out and coff) and even different
+architectures.  You may even place archives recursively into archives!
+
+   This can cause unexpected confusion, since some archive formats are
+more expressive than others.  For instance, Intel COFF archives can
+preserve long filenames; SunOS a.out archives cannot.  If you move a
+file from the first to the second format and back again, the filename
+may be truncated.  Likewise, different a.out environments have different
+conventions as to how they truncate filenames, whether they preserve
+directory names in filenames, etc.  When interoperating with native
+tools, be sure your files are homogeneous.
+
+   Beware: most of these formats do not react well to the presence of
+spaces in filenames.  We do the best we can, but can't always handle
+this case due to restrictions in the format of archives.  Many Unix
+utilities are braindead in regards to spaces and such in filenames
+anyway, so this shouldn't be much of a restriction.
+
+   Archives are supported in BFD in `archive.c'.
+
+2.8.0.1 `bfd_get_next_mapent'
+.............................
+
+*Synopsis*
+     symindex bfd_get_next_mapent
+        (bfd *abfd, symindex previous, carsym **sym);
+   *Description*
+Step through archive ABFD's symbol table (if it has one).  Successively
+update SYM with the next symbol's information, returning that symbol's
+(internal) index into the symbol table.
+
+   Supply `BFD_NO_MORE_SYMBOLS' as the PREVIOUS entry to get the first
+one; returns `BFD_NO_MORE_SYMBOLS' when you've already got the last one.
+
+   A `carsym' is a canonical archive symbol.  The only user-visible
+element is its name, a null-terminated string.
+
+2.8.0.2 `bfd_set_archive_head'
+..............................
+
+*Synopsis*
+     bfd_boolean bfd_set_archive_head (bfd *output, bfd *new_head);
+   *Description*
+Set the head of the chain of BFDs contained in the archive OUTPUT to
+NEW_HEAD.
+
+2.8.0.3 `bfd_openr_next_archived_file'
+......................................
+
+*Synopsis*
+     bfd *bfd_openr_next_archived_file (bfd *archive, bfd *previous);
+   *Description*
+Provided a BFD, ARCHIVE, containing an archive and NULL, open an input
+BFD on the first contained element and returns that.  Subsequent calls
+should pass the archive and the previous return value to return a
+created BFD to the next contained element. NULL is returned when there
+are no more.
+
+
+File: bfd.info,  Node: Formats,  Next: Relocations,  Prev: Archives,  Up: BFD front end
+
+2.9 File formats
+================
+
+A format is a BFD concept of high level file contents type. The formats
+supported by BFD are:
+
+   * `bfd_object'
+   The BFD may contain data, symbols, relocations and debug info.
+
+   * `bfd_archive'
+   The BFD contains other BFDs and an optional index.
+
+   * `bfd_core'
+   The BFD contains the result of an executable core dump.
+
+2.9.0.1 `bfd_check_format'
+..........................
+
+*Synopsis*
+     bfd_boolean bfd_check_format (bfd *abfd, bfd_format format);
+   *Description*
+Verify if the file attached to the BFD ABFD is compatible with the
+format FORMAT (i.e., one of `bfd_object', `bfd_archive' or `bfd_core').
+
+   If the BFD has been set to a specific target before the call, only
+the named target and format combination is checked. If the target has
+not been set, or has been set to `default', then all the known target
+backends is interrogated to determine a match.  If the default target
+matches, it is used.  If not, exactly one target must recognize the
+file, or an error results.
+
+   The function returns `TRUE' on success, otherwise `FALSE' with one
+of the following error codes:
+
+   * `bfd_error_invalid_operation' - if `format' is not one of
+     `bfd_object', `bfd_archive' or `bfd_core'.
+
+   * `bfd_error_system_call' - if an error occured during a read - even
+     some file mismatches can cause bfd_error_system_calls.
+
+   * `file_not_recognised' - none of the backends recognised the file
+     format.
+
+   * `bfd_error_file_ambiguously_recognized' - more than one backend
+     recognised the file format.
+
+2.9.0.2 `bfd_check_format_matches'
+..................................
+
+*Synopsis*
+     bfd_boolean bfd_check_format_matches
+        (bfd *abfd, bfd_format format, char ***matching);
+   *Description*
+Like `bfd_check_format', except when it returns FALSE with `bfd_errno'
+set to `bfd_error_file_ambiguously_recognized'.  In that case, if
+MATCHING is not NULL, it will be filled in with a NULL-terminated list
+of the names of the formats that matched, allocated with `malloc'.
+Then the user may choose a format and try again.
+
+   When done with the list that MATCHING points to, the caller should
+free it.
+
+2.9.0.3 `bfd_set_format'
+........................
+
+*Synopsis*
+     bfd_boolean bfd_set_format (bfd *abfd, bfd_format format);
+   *Description*
+This function sets the file format of the BFD ABFD to the format
+FORMAT. If the target set in the BFD does not support the format
+requested, the format is invalid, or the BFD is not open for writing,
+then an error occurs.
+
+2.9.0.4 `bfd_format_string'
+...........................
+
+*Synopsis*
+     const char *bfd_format_string (bfd_format format);
+   *Description*
+Return a pointer to a const string `invalid', `object', `archive',
+`core', or `unknown', depending upon the value of FORMAT.
+
+
+File: bfd.info,  Node: Relocations,  Next: Core Files,  Prev: Formats,  Up: BFD front end
+
+2.10 Relocations
+================
+
+BFD maintains relocations in much the same way it maintains symbols:
+they are left alone until required, then read in en-masse and
+translated into an internal form.  A common routine
+`bfd_perform_relocation' acts upon the canonical form to do the fixup.
+
+   Relocations are maintained on a per section basis, while symbols are
+maintained on a per BFD basis.
+
+   All that a back end has to do to fit the BFD interface is to create
+a `struct reloc_cache_entry' for each relocation in a particular
+section, and fill in the right bits of the structures.
+
+* Menu:
+
+* typedef arelent::
+* howto manager::
+
+
+File: bfd.info,  Node: typedef arelent,  Next: howto manager,  Prev: Relocations,  Up: Relocations
+
+2.10.1 typedef arelent
+----------------------
+
+This is the structure of a relocation entry:
+
+
+     typedef enum bfd_reloc_status
+     {
+       /* No errors detected.  */
+       bfd_reloc_ok,
+
+       /* The relocation was performed, but there was an overflow.  */
+       bfd_reloc_overflow,
+
+       /* The address to relocate was not within the section supplied.  */
+       bfd_reloc_outofrange,
+
+       /* Used by special functions.  */
+       bfd_reloc_continue,
+
+       /* Unsupported relocation size requested.  */
+       bfd_reloc_notsupported,
+
+       /* Unused.  */
+       bfd_reloc_other,
+
+       /* The symbol to relocate against was undefined.  */
+       bfd_reloc_undefined,
+
+       /* The relocation was performed, but may not be ok - presently
+          generated only when linking i960 coff files with i960 b.out
+          symbols.  If this type is returned, the error_message argument
+          to bfd_perform_relocation will be set.  */
+       bfd_reloc_dangerous
+      }
+      bfd_reloc_status_type;
+
+
+     typedef struct reloc_cache_entry
+     {
+       /* A pointer into the canonical table of pointers.  */
+       struct bfd_symbol **sym_ptr_ptr;
+
+       /* offset in section.  */
+       bfd_size_type address;
+
+       /* addend for relocation value.  */
+       bfd_vma addend;
+
+       /* Pointer to how to perform the required relocation.  */
+       reloc_howto_type *howto;
+
+     }
+     arelent;
+   *Description*
+Here is a description of each of the fields within an `arelent':
+
+   * `sym_ptr_ptr'
+   The symbol table pointer points to a pointer to the symbol
+associated with the relocation request.  It is the pointer into the
+table returned by the back end's `canonicalize_symtab' action. *Note
+Symbols::. The symbol is referenced through a pointer to a pointer so
+that tools like the linker can fix up all the symbols of the same name
+by modifying only one pointer. The relocation routine looks in the
+symbol and uses the base of the section the symbol is attached to and
+the value of the symbol as the initial relocation offset. If the symbol
+pointer is zero, then the section provided is looked up.
+
+   * `address'
+   The `address' field gives the offset in bytes from the base of the
+section data which owns the relocation record to the first byte of
+relocatable information. The actual data relocated will be relative to
+this point; for example, a relocation type which modifies the bottom
+two bytes of a four byte word would not touch the first byte pointed to
+in a big endian world.
+
+   * `addend'
+   The `addend' is a value provided by the back end to be added (!)  to
+the relocation offset. Its interpretation is dependent upon the howto.
+For example, on the 68k the code:
+
+             char foo[];
+             main()
+                     {
+                     return foo[0x12345678];
+                     }
+
+   Could be compiled into:
+
+             linkw fp,#-4
+             moveb @#12345678,d0
+             extbl d0
+             unlk fp
+             rts
+
+   This could create a reloc pointing to `foo', but leave the offset in
+the data, something like:
+
+     RELOCATION RECORDS FOR [.text]:
+     offset   type      value
+     00000006 32        _foo
+
+     00000000 4e56 fffc          ; linkw fp,#-4
+     00000004 1039 1234 5678     ; moveb @#12345678,d0
+     0000000a 49c0               ; extbl d0
+     0000000c 4e5e               ; unlk fp
+     0000000e 4e75               ; rts
+
+   Using coff and an 88k, some instructions don't have enough space in
+them to represent the full address range, and pointers have to be
+loaded in two parts. So you'd get something like:
+
+             or.u     r13,r0,hi16(_foo+0x12345678)
+             ld.b     r2,r13,lo16(_foo+0x12345678)
+             jmp      r1
+
+   This should create two relocs, both pointing to `_foo', and with
+0x12340000 in their addend field. The data would consist of:
+
+     RELOCATION RECORDS FOR [.text]:
+     offset   type      value
+     00000002 HVRT16    _foo+0x12340000
+     00000006 LVRT16    _foo+0x12340000
+
+     00000000 5da05678           ; or.u r13,r0,0x5678
+     00000004 1c4d5678           ; ld.b r2,r13,0x5678
+     00000008 f400c001           ; jmp r1
+
+   The relocation routine digs out the value from the data, adds it to
+the addend to get the original offset, and then adds the value of
+`_foo'. Note that all 32 bits have to be kept around somewhere, to cope
+with carry from bit 15 to bit 16.
+
+   One further example is the sparc and the a.out format. The sparc has
+a similar problem to the 88k, in that some instructions don't have room
+for an entire offset, but on the sparc the parts are created in odd
+sized lumps. The designers of the a.out format chose to not use the
+data within the section for storing part of the offset; all the offset
+is kept within the reloc. Anything in the data should be ignored.
+
+             save %sp,-112,%sp
+             sethi %hi(_foo+0x12345678),%g2
+             ldsb [%g2+%lo(_foo+0x12345678)],%i0
+             ret
+             restore
+
+   Both relocs contain a pointer to `foo', and the offsets contain junk.
+
+     RELOCATION RECORDS FOR [.text]:
+     offset   type      value
+     00000004 HI22      _foo+0x12345678
+     00000008 LO10      _foo+0x12345678
+
+     00000000 9de3bf90     ; save %sp,-112,%sp
+     00000004 05000000     ; sethi %hi(_foo+0),%g2
+     00000008 f048a000     ; ldsb [%g2+%lo(_foo+0)],%i0
+     0000000c 81c7e008     ; ret
+     00000010 81e80000     ; restore
+
+   * `howto'
+   The `howto' field can be imagined as a relocation instruction. It is
+a pointer to a structure which contains information on what to do with
+all of the other information in the reloc record and data section. A
+back end would normally have a relocation instruction set and turn
+relocations into pointers to the correct structure on input - but it
+would be possible to create each howto field on demand.
+
+2.10.1.1 `enum complain_overflow'
+.................................
+
+Indicates what sort of overflow checking should be done when performing
+a relocation.
+
+
+     enum complain_overflow
+     {
+       /* Do not complain on overflow.  */
+       complain_overflow_dont,
+
+       /* Complain if the bitfield overflows, whether it is considered
+          as signed or unsigned.  */
+       complain_overflow_bitfield,
+
+       /* Complain if the value overflows when considered as signed
+          number.  */
+       complain_overflow_signed,
+
+       /* Complain if the value overflows when considered as an
+          unsigned number.  */
+       complain_overflow_unsigned
+     };
+
+2.10.1.2 `reloc_howto_type'
+...........................
+
+The `reloc_howto_type' is a structure which contains all the
+information that libbfd needs to know to tie up a back end's data.
+
+     struct bfd_symbol;             /* Forward declaration.  */
+
+     struct reloc_howto_struct
+     {
+       /*  The type field has mainly a documentary use - the back end can
+           do what it wants with it, though normally the back end's
+           external idea of what a reloc number is stored
+           in this field.  For example, a PC relative word relocation
+           in a coff environment has the type 023 - because that's
+           what the outside world calls a R_PCRWORD reloc.  */
+       unsigned int type;
+
+       /*  The value the final relocation is shifted right by.  This drops
+           unwanted data from the relocation.  */
+       unsigned int rightshift;
+
+       /*  The size of the item to be relocated.  This is *not* a
+           power-of-two measure.  To get the number of bytes operated
+           on by a type of relocation, use bfd_get_reloc_size.  */
+       int size;
+
+       /*  The number of bits in the item to be relocated.  This is used
+           when doing overflow checking.  */
+       unsigned int bitsize;
+
+       /*  Notes that the relocation is relative to the location in the
+           data section of the addend.  The relocation function will
+           subtract from the relocation value the address of the location
+           being relocated.  */
+       bfd_boolean pc_relative;
+
+       /*  The bit position of the reloc value in the destination.
+           The relocated value is left shifted by this amount.  */
+       unsigned int bitpos;
+
+       /* What type of overflow error should be checked for when
+          relocating.  */
+       enum complain_overflow complain_on_overflow;
+
+       /* If this field is non null, then the supplied function is
+          called rather than the normal function.  This allows really
+          strange relocation methods to be accommodated (e.g., i960 callj
+          instructions).  */
+       bfd_reloc_status_type (*special_function)
+         (bfd *, arelent *, struct bfd_symbol *, void *, asection *,
+          bfd *, char **);
+
+       /* The textual name of the relocation type.  */
+       char *name;
+
+       /* Some formats record a relocation addend in the section contents
+          rather than with the relocation.  For ELF formats this is the
+          distinction between USE_REL and USE_RELA (though the code checks
+          for USE_REL == 1/0).  The value of this field is TRUE if the
+          addend is recorded with the section contents; when performing a
+          partial link (ld -r) the section contents (the data) will be
+          modified.  The value of this field is FALSE if addends are
+          recorded with the relocation (in arelent.addend); when performing
+          a partial link the relocation will be modified.
+          All relocations for all ELF USE_RELA targets should set this field
+          to FALSE (values of TRUE should be looked on with suspicion).
+          However, the converse is not true: not all relocations of all ELF
+          USE_REL targets set this field to TRUE.  Why this is so is peculiar
+          to each particular target.  For relocs that aren't used in partial
+          links (e.g. GOT stuff) it doesn't matter what this is set to.  */
+       bfd_boolean partial_inplace;
+
+       /* src_mask selects the part of the instruction (or data) to be used
+          in the relocation sum.  If the target relocations don't have an
+          addend in the reloc, eg. ELF USE_REL, src_mask will normally equal
+          dst_mask to extract the addend from the section contents.  If
+          relocations do have an addend in the reloc, eg. ELF USE_RELA, this
+          field should be zero.  Non-zero values for ELF USE_RELA targets are
+          bogus as in those cases the value in the dst_mask part of the
+          section contents should be treated as garbage.  */
+       bfd_vma src_mask;
+
+       /* dst_mask selects which parts of the instruction (or data) are
+          replaced with a relocated value.  */
+       bfd_vma dst_mask;
+
+       /* When some formats create PC relative instructions, they leave
+          the value of the pc of the place being relocated in the offset
+          slot of the instruction, so that a PC relative relocation can
+          be made just by adding in an ordinary offset (e.g., sun3 a.out).
+          Some formats leave the displacement part of an instruction
+          empty (e.g., m88k bcs); this flag signals the fact.  */
+       bfd_boolean pcrel_offset;
+     };
+
+2.10.1.3 `The HOWTO Macro'
+..........................
+
+*Description*
+The HOWTO define is horrible and will go away.
+     #define HOWTO(C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC) \
+       { (unsigned) C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC }
+
+   *Description*
+And will be replaced with the totally magic way. But for the moment, we
+are compatible, so do it this way.
+     #define NEWHOWTO(FUNCTION, NAME, SIZE, REL, IN) \
+       HOWTO (0, 0, SIZE, 0, REL, 0, complain_overflow_dont, FUNCTION, \
+              NAME, FALSE, 0, 0, IN)
+
+   *Description*
+This is used to fill in an empty howto entry in an array.
+     #define EMPTY_HOWTO(C) \
+       HOWTO ((C), 0, 0, 0, FALSE, 0, complain_overflow_dont, NULL, \
+              NULL, FALSE, 0, 0, FALSE)
+
+   *Description*
+Helper routine to turn a symbol into a relocation value.
+     #define HOWTO_PREPARE(relocation, symbol)               \
+       {                                                     \
+         if (symbol != NULL)                                 \
+           {                                                 \
+             if (bfd_is_com_section (symbol->section))       \
+               {                                             \
+                 relocation = 0;                             \
+               }                                             \
+             else                                            \
+               {                                             \
+                 relocation = symbol->value;                 \
+               }                                             \
+           }                                                 \
+       }
+
+2.10.1.4 `bfd_get_reloc_size'
+.............................
+
+*Synopsis*
+     unsigned int bfd_get_reloc_size (reloc_howto_type *);
+   *Description*
+For a reloc_howto_type that operates on a fixed number of bytes, this
+returns the number of bytes operated on.
+
+2.10.1.5 `arelent_chain'
+........................
+
+*Description*
+How relocs are tied together in an `asection':
+     typedef struct relent_chain
+     {
+       arelent relent;
+       struct relent_chain *next;
+     }
+     arelent_chain;
+
+2.10.1.6 `bfd_check_overflow'
+.............................
+
+*Synopsis*
+     bfd_reloc_status_type bfd_check_overflow
+        (enum complain_overflow how,
+         unsigned int bitsize,
+         unsigned int rightshift,
+         unsigned int addrsize,
+         bfd_vma relocation);
+   *Description*
+Perform overflow checking on RELOCATION which has BITSIZE significant
+bits and will be shifted right by RIGHTSHIFT bits, on a machine with
+addresses containing ADDRSIZE significant bits.  The result is either of
+`bfd_reloc_ok' or `bfd_reloc_overflow'.
+
+2.10.1.7 `bfd_perform_relocation'
+.................................
+
+*Synopsis*
+     bfd_reloc_status_type bfd_perform_relocation
+        (bfd *abfd,
+         arelent *reloc_entry,
+         void *data,
+         asection *input_section,
+         bfd *output_bfd,
+         char **error_message);
+   *Description*
+If OUTPUT_BFD is supplied to this function, the generated image will be
+relocatable; the relocations are copied to the output file after they
+have been changed to reflect the new state of the world. There are two
+ways of reflecting the results of partial linkage in an output file: by
+modifying the output data in place, and by modifying the relocation
+record.  Some native formats (e.g., basic a.out and basic coff) have no
+way of specifying an addend in the relocation type, so the addend has
+to go in the output data.  This is no big deal since in these formats
+the output data slot will always be big enough for the addend. Complex
+reloc types with addends were invented to solve just this problem.  The
+ERROR_MESSAGE argument is set to an error message if this return
+`bfd_reloc_dangerous'.
+
+2.10.1.8 `bfd_install_relocation'
+.................................
+
+*Synopsis*
+     bfd_reloc_status_type bfd_install_relocation
+        (bfd *abfd,
+         arelent *reloc_entry,
+         void *data, bfd_vma data_start,
+         asection *input_section,
+         char **error_message);
+   *Description*
+This looks remarkably like `bfd_perform_relocation', except it does not
+expect that the section contents have been filled in.  I.e., it's
+suitable for use when creating, rather than applying a relocation.
+
+   For now, this function should be considered reserved for the
+assembler.
+
+
+File: bfd.info,  Node: howto manager,  Prev: typedef arelent,  Up: Relocations
+
+2.11 The howto manager
+======================
+
+When an application wants to create a relocation, but doesn't know what
+the target machine might call it, it can find out by using this bit of
+code.
+
+2.11.0.1 `bfd_reloc_code_type'
+..............................
+
+*Description*
+The insides of a reloc code.  The idea is that, eventually, there will
+be one enumerator for every type of relocation we ever do.  Pass one of
+these values to `bfd_reloc_type_lookup', and it'll return a howto
+pointer.
+
+   This does mean that the application must determine the correct
+enumerator value; you can't get a howto pointer from a random set of
+attributes.
+
+   Here are the possible values for `enum bfd_reloc_code_real':
+
+ -- : BFD_RELOC_64
+ -- : BFD_RELOC_32
+ -- : BFD_RELOC_26
+ -- : BFD_RELOC_24
+ -- : BFD_RELOC_16
+ -- : BFD_RELOC_14
+ -- : BFD_RELOC_8
+     Basic absolute relocations of N bits.
+
+ -- : BFD_RELOC_64_PCREL
+ -- : BFD_RELOC_32_PCREL
+ -- : BFD_RELOC_24_PCREL
+ -- : BFD_RELOC_16_PCREL
+ -- : BFD_RELOC_12_PCREL
+ -- : BFD_RELOC_8_PCREL
+     PC-relative relocations.  Sometimes these are relative to the
+     address of the relocation itself; sometimes they are relative to
+     the start of the section containing the relocation.  It depends on
+     the specific target.
+
+     The 24-bit relocation is used in some Intel 960 configurations.
+
+ -- : BFD_RELOC_32_SECREL
+     Section relative relocations.  Some targets need this for DWARF2.
+
+ -- : BFD_RELOC_32_GOT_PCREL
+ -- : BFD_RELOC_16_GOT_PCREL
+ -- : BFD_RELOC_8_GOT_PCREL
+ -- : BFD_RELOC_32_GOTOFF
+ -- : BFD_RELOC_16_GOTOFF
+ -- : BFD_RELOC_LO16_GOTOFF
+ -- : BFD_RELOC_HI16_GOTOFF
+ -- : BFD_RELOC_HI16_S_GOTOFF
+ -- : BFD_RELOC_8_GOTOFF
+ -- : BFD_RELOC_64_PLT_PCREL
+ -- : BFD_RELOC_32_PLT_PCREL
+ -- : BFD_RELOC_24_PLT_PCREL
+ -- : BFD_RELOC_16_PLT_PCREL
+ -- : BFD_RELOC_8_PLT_PCREL
+ -- : BFD_RELOC_64_PLTOFF
+ -- : BFD_RELOC_32_PLTOFF
+ -- : BFD_RELOC_16_PLTOFF
+ -- : BFD_RELOC_LO16_PLTOFF
+ -- : BFD_RELOC_HI16_PLTOFF
+ -- : BFD_RELOC_HI16_S_PLTOFF
+ -- : BFD_RELOC_8_PLTOFF
+     For ELF.
+
+ -- : BFD_RELOC_68K_GLOB_DAT
+ -- : BFD_RELOC_68K_JMP_SLOT
+ -- : BFD_RELOC_68K_RELATIVE
+     Relocations used by 68K ELF.
+
+ -- : BFD_RELOC_32_BASEREL
+ -- : BFD_RELOC_16_BASEREL
+ -- : BFD_RELOC_LO16_BASEREL
+ -- : BFD_RELOC_HI16_BASEREL
+ -- : BFD_RELOC_HI16_S_BASEREL
+ -- : BFD_RELOC_8_BASEREL
+ -- : BFD_RELOC_RVA
+     Linkage-table relative.
+
+ -- : BFD_RELOC_8_FFnn
+     Absolute 8-bit relocation, but used to form an address like 0xFFnn.
+
+ -- : BFD_RELOC_32_PCREL_S2
+ -- : BFD_RELOC_16_PCREL_S2
+ -- : BFD_RELOC_23_PCREL_S2
+     These PC-relative relocations are stored as word displacements -
+     i.e., byte displacements shifted right two bits.  The 30-bit word
+     displacement (<<32_PCREL_S2>> - 32 bits, shifted 2) is used on the
+     SPARC.  (SPARC tools generally refer to this as <<WDISP30>>.)  The
+     signed 16-bit displacement is used on the MIPS, and the 23-bit
+     displacement is used on the Alpha.
+
+ -- : BFD_RELOC_HI22
+ -- : BFD_RELOC_LO10
+     High 22 bits and low 10 bits of 32-bit value, placed into lower
+     bits of the target word.  These are used on the SPARC.
+
+ -- : BFD_RELOC_GPREL16
+ -- : BFD_RELOC_GPREL32
+     For systems that allocate a Global Pointer register, these are
+     displacements off that register.  These relocation types are
+     handled specially, because the value the register will have is
+     decided relatively late.
+
+ -- : BFD_RELOC_I960_CALLJ
+     Reloc types used for i960/b.out.
+
+ -- : BFD_RELOC_NONE
+ -- : BFD_RELOC_SPARC_WDISP22
+ -- : BFD_RELOC_SPARC22
+ -- : BFD_RELOC_SPARC13
+ -- : BFD_RELOC_SPARC_GOT10
+ -- : BFD_RELOC_SPARC_GOT13
+ -- : BFD_RELOC_SPARC_GOT22
+ -- : BFD_RELOC_SPARC_PC10
+ -- : BFD_RELOC_SPARC_PC22
+ -- : BFD_RELOC_SPARC_WPLT30
+ -- : BFD_RELOC_SPARC_COPY
+ -- : BFD_RELOC_SPARC_GLOB_DAT
+ -- : BFD_RELOC_SPARC_JMP_SLOT
+ -- : BFD_RELOC_SPARC_RELATIVE
+ -- : BFD_RELOC_SPARC_UA16
+ -- : BFD_RELOC_SPARC_UA32
+ -- : BFD_RELOC_SPARC_UA64
+     SPARC ELF relocations.  There is probably some overlap with other
+     relocation types already defined.
+
+ -- : BFD_RELOC_SPARC_BASE13
+ -- : BFD_RELOC_SPARC_BASE22
+     I think these are specific to SPARC a.out (e.g., Sun 4).
+
+ -- : BFD_RELOC_SPARC_64
+ -- : BFD_RELOC_SPARC_10
+ -- : BFD_RELOC_SPARC_11
+ -- : BFD_RELOC_SPARC_OLO10
+ -- : BFD_RELOC_SPARC_HH22
+ -- : BFD_RELOC_SPARC_HM10
+ -- : BFD_RELOC_SPARC_LM22
+ -- : BFD_RELOC_SPARC_PC_HH22
+ -- : BFD_RELOC_SPARC_PC_HM10
+ -- : BFD_RELOC_SPARC_PC_LM22
+ -- : BFD_RELOC_SPARC_WDISP16
+ -- : BFD_RELOC_SPARC_WDISP19
+ -- : BFD_RELOC_SPARC_7
+ -- : BFD_RELOC_SPARC_6
+ -- : BFD_RELOC_SPARC_5
+ -- : BFD_RELOC_SPARC_DISP64
+ -- : BFD_RELOC_SPARC_PLT32
+ -- : BFD_RELOC_SPARC_PLT64
+ -- : BFD_RELOC_SPARC_HIX22
+ -- : BFD_RELOC_SPARC_LOX10
+ -- : BFD_RELOC_SPARC_H44
+ -- : BFD_RELOC_SPARC_M44
+ -- : BFD_RELOC_SPARC_L44
+ -- : BFD_RELOC_SPARC_REGISTER
+     SPARC64 relocations
+
+ -- : BFD_RELOC_SPARC_REV32
+     SPARC little endian relocation
+
+ -- : BFD_RELOC_SPARC_TLS_GD_HI22
+ -- : BFD_RELOC_SPARC_TLS_GD_LO10
+ -- : BFD_RELOC_SPARC_TLS_GD_ADD
+ -- : BFD_RELOC_SPARC_TLS_GD_CALL
+ -- : BFD_RELOC_SPARC_TLS_LDM_HI22
+ -- : BFD_RELOC_SPARC_TLS_LDM_LO10
+ -- : BFD_RELOC_SPARC_TLS_LDM_ADD
+ -- : BFD_RELOC_SPARC_TLS_LDM_CALL
+ -- : BFD_RELOC_SPARC_TLS_LDO_HIX22
+ -- : BFD_RELOC_SPARC_TLS_LDO_LOX10
+ -- : BFD_RELOC_SPARC_TLS_LDO_ADD
+ -- : BFD_RELOC_SPARC_TLS_IE_HI22
+ -- : BFD_RELOC_SPARC_TLS_IE_LO10
+ -- : BFD_RELOC_SPARC_TLS_IE_LD
+ -- : BFD_RELOC_SPARC_TLS_IE_LDX
+ -- : BFD_RELOC_SPARC_TLS_IE_ADD
+ -- : BFD_RELOC_SPARC_TLS_LE_HIX22
+ -- : BFD_RELOC_SPARC_TLS_LE_LOX10
+ -- : BFD_RELOC_SPARC_TLS_DTPMOD32
+ -- : BFD_RELOC_SPARC_TLS_DTPMOD64
+ -- : BFD_RELOC_SPARC_TLS_DTPOFF32
+ -- : BFD_RELOC_SPARC_TLS_DTPOFF64
+ -- : BFD_RELOC_SPARC_TLS_TPOFF32
+ -- : BFD_RELOC_SPARC_TLS_TPOFF64
+     SPARC TLS relocations
+
+ -- : BFD_RELOC_ALPHA_GPDISP_HI16
+     Alpha ECOFF and ELF relocations.  Some of these treat the symbol or
+     "addend" in some special way.  For GPDISP_HI16 ("gpdisp")
+     relocations, the symbol is ignored when writing; when reading, it
+     will be the absolute section symbol.  The addend is the
+     displacement in bytes of the "lda" instruction from the "ldah"
+     instruction (which is at the address of this reloc).
+
+ -- : BFD_RELOC_ALPHA_GPDISP_LO16
+     For GPDISP_LO16 ("ignore") relocations, the symbol is handled as
+     with GPDISP_HI16 relocs.  The addend is ignored when writing the
+     relocations out, and is filled in with the file's GP value on
+     reading, for convenience.
+
+ -- : BFD_RELOC_ALPHA_GPDISP
+     The ELF GPDISP relocation is exactly the same as the GPDISP_HI16
+     relocation except that there is no accompanying GPDISP_LO16
+     relocation.
+
+ -- : BFD_RELOC_ALPHA_LITERAL
+ -- : BFD_RELOC_ALPHA_ELF_LITERAL
+ -- : BFD_RELOC_ALPHA_LITUSE
+     The Alpha LITERAL/LITUSE relocs are produced by a symbol reference;
+     the assembler turns it into a LDQ instruction to load the address
+     of the symbol, and then fills in a register in the real
+     instruction.
+
+     The LITERAL reloc, at the LDQ instruction, refers to the .lita
+     section symbol.  The addend is ignored when writing, but is filled
+     in with the file's GP value on reading, for convenience, as with
+     the GPDISP_LO16 reloc.
+
+     The ELF_LITERAL reloc is somewhere between 16_GOTOFF and
+     GPDISP_LO16.  It should refer to the symbol to be referenced, as
+     with 16_GOTOFF, but it generates output not based on the position
+     within the .got section, but relative to the GP value chosen for
+     the file during the final link stage.
+
+     The LITUSE reloc, on the instruction using the loaded address,
+     gives information to the linker that it might be able to use to
+     optimize away some literal section references.  The symbol is
+     ignored (read as the absolute section symbol), and the "addend"
+     indicates the type of instruction using the register: 1 - "memory"
+     fmt insn 2 - byte-manipulation (byte offset reg) 3 - jsr (target
+     of branch)
+
+ -- : BFD_RELOC_ALPHA_HINT
+     The HINT relocation indicates a value that should be filled into
+     the "hint" field of a jmp/jsr/ret instruction, for possible branch-
+     prediction logic which may be provided on some processors.
+
+ -- : BFD_RELOC_ALPHA_LINKAGE
+     The LINKAGE relocation outputs a linkage pair in the object file,
+     which is filled by the linker.
+
+ -- : BFD_RELOC_ALPHA_CODEADDR
+     The CODEADDR relocation outputs a STO_CA in the object file, which
+     is filled by the linker.
+
+ -- : BFD_RELOC_ALPHA_GPREL_HI16
+ -- : BFD_RELOC_ALPHA_GPREL_LO16
+     The GPREL_HI/LO relocations together form a 32-bit offset from the
+     GP register.
+
+ -- : BFD_RELOC_ALPHA_BRSGP
+     Like BFD_RELOC_23_PCREL_S2, except that the source and target must
+     share a common GP, and the target address is adjusted for
+     STO_ALPHA_STD_GPLOAD.
+
+ -- : BFD_RELOC_ALPHA_TLSGD
+ -- : BFD_RELOC_ALPHA_TLSLDM
+ -- : BFD_RELOC_ALPHA_DTPMOD64
+ -- : BFD_RELOC_ALPHA_GOTDTPREL16
+ -- : BFD_RELOC_ALPHA_DTPREL64
+ -- : BFD_RELOC_ALPHA_DTPREL_HI16
+ -- : BFD_RELOC_ALPHA_DTPREL_LO16
+ -- : BFD_RELOC_ALPHA_DTPREL16
+ -- : BFD_RELOC_ALPHA_GOTTPREL16
+ -- : BFD_RELOC_ALPHA_TPREL64
+ -- : BFD_RELOC_ALPHA_TPREL_HI16
+ -- : BFD_RELOC_ALPHA_TPREL_LO16
+ -- : BFD_RELOC_ALPHA_TPREL16
+     Alpha thread-local storage relocations.
+
+ -- : BFD_RELOC_MIPS_JMP
+     Bits 27..2 of the relocation address shifted right 2 bits; simple
+     reloc otherwise.
+
+ -- : BFD_RELOC_MIPS16_JMP
+     The MIPS16 jump instruction.
+
+ -- : BFD_RELOC_MIPS16_GPREL
+     MIPS16 GP relative reloc.
+
+ -- : BFD_RELOC_HI16
+     High 16 bits of 32-bit value; simple reloc.
+
+ -- : BFD_RELOC_HI16_S
+     High 16 bits of 32-bit value but the low 16 bits will be sign
+     extended and added to form the final result.  If the low 16 bits
+     form a negative number, we need to add one to the high value to
+     compensate for the borrow when the low bits are added.
+
+ -- : BFD_RELOC_LO16
+     Low 16 bits.
+
+ -- : BFD_RELOC_MIPS16_HI16
+     MIPS16 high 16 bits of 32-bit value.
+
+ -- : BFD_RELOC_MIPS16_HI16_S
+     MIPS16 high 16 bits of 32-bit value but the low 16 bits will be
+     sign extended and added to form the final result.  If the low 16
+     bits form a negative number, we need to add one to the high value
+     to compensate for the borrow when the low bits are added.
+
+ -- : BFD_RELOC_MIPS16_LO16
+     MIPS16 low 16 bits.
+
+ -- : BFD_RELOC_MIPS_LITERAL
+     Relocation against a MIPS literal section.
+
+ -- : BFD_RELOC_MIPS_GOT16
+ -- : BFD_RELOC_MIPS_CALL16
+ -- : BFD_RELOC_MIPS_GOT_HI16
+ -- : BFD_RELOC_MIPS_GOT_LO16
+ -- : BFD_RELOC_MIPS_CALL_HI16
+ -- : BFD_RELOC_MIPS_CALL_LO16
+ -- : BFD_RELOC_MIPS_SUB
+ -- : BFD_RELOC_MIPS_GOT_PAGE
+ -- : BFD_RELOC_MIPS_GOT_OFST
+ -- : BFD_RELOC_MIPS_GOT_DISP
+ -- : BFD_RELOC_MIPS_SHIFT5
+ -- : BFD_RELOC_MIPS_SHIFT6
+ -- : BFD_RELOC_MIPS_INSERT_A
+ -- : BFD_RELOC_MIPS_INSERT_B
+ -- : BFD_RELOC_MIPS_DELETE
+ -- : BFD_RELOC_MIPS_HIGHEST
+ -- : BFD_RELOC_MIPS_HIGHER
+ -- : BFD_RELOC_MIPS_SCN_DISP
+ -- : BFD_RELOC_MIPS_REL16
+ -- : BFD_RELOC_MIPS_RELGOT
+ -- : BFD_RELOC_MIPS_JALR
+ -- : BFD_RELOC_MIPS_TLS_DTPMOD32
+ -- : BFD_RELOC_MIPS_TLS_DTPREL32
+ -- : BFD_RELOC_MIPS_TLS_DTPMOD64
+ -- : BFD_RELOC_MIPS_TLS_DTPREL64
+ -- : BFD_RELOC_MIPS_TLS_GD
+ -- : BFD_RELOC_MIPS_TLS_LDM
+ -- : BFD_RELOC_MIPS_TLS_DTPREL_HI16
+ -- : BFD_RELOC_MIPS_TLS_DTPREL_LO16
+ -- : BFD_RELOC_MIPS_TLS_GOTTPREL
+ -- : BFD_RELOC_MIPS_TLS_TPREL32
+ -- : BFD_RELOC_MIPS_TLS_TPREL64
+ -- : BFD_RELOC_MIPS_TLS_TPREL_HI16
+ -- : BFD_RELOC_MIPS_TLS_TPREL_LO16
+     MIPS ELF relocations.
+
+ -- : BFD_RELOC_FRV_LABEL16
+ -- : BFD_RELOC_FRV_LABEL24
+ -- : BFD_RELOC_FRV_LO16
+ -- : BFD_RELOC_FRV_HI16
+ -- : BFD_RELOC_FRV_GPREL12
+ -- : BFD_RELOC_FRV_GPRELU12
+ -- : BFD_RELOC_FRV_GPREL32
+ -- : BFD_RELOC_FRV_GPRELHI
+ -- : BFD_RELOC_FRV_GPRELLO
+ -- : BFD_RELOC_FRV_GOT12
+ -- : BFD_RELOC_FRV_GOTHI
+ -- : BFD_RELOC_FRV_GOTLO
+ -- : BFD_RELOC_FRV_FUNCDESC
+ -- : BFD_RELOC_FRV_FUNCDESC_GOT12
+ -- : BFD_RELOC_FRV_FUNCDESC_GOTHI
+ -- : BFD_RELOC_FRV_FUNCDESC_GOTLO
+ -- : BFD_RELOC_FRV_FUNCDESC_VALUE
+ -- : BFD_RELOC_FRV_FUNCDESC_GOTOFF12
+ -- : BFD_RELOC_FRV_FUNCDESC_GOTOFFHI
+ -- : BFD_RELOC_FRV_FUNCDESC_GOTOFFLO
+ -- : BFD_RELOC_FRV_GOTOFF12
+ -- : BFD_RELOC_FRV_GOTOFFHI
+ -- : BFD_RELOC_FRV_GOTOFFLO
+ -- : BFD_RELOC_FRV_GETTLSOFF
+ -- : BFD_RELOC_FRV_TLSDESC_VALUE
+ -- : BFD_RELOC_FRV_GOTTLSDESC12
+ -- : BFD_RELOC_FRV_GOTTLSDESCHI
+ -- : BFD_RELOC_FRV_GOTTLSDESCLO
+ -- : BFD_RELOC_FRV_TLSMOFF12
+ -- : BFD_RELOC_FRV_TLSMOFFHI
+ -- : BFD_RELOC_FRV_TLSMOFFLO
+ -- : BFD_RELOC_FRV_GOTTLSOFF12
+ -- : BFD_RELOC_FRV_GOTTLSOFFHI
+ -- : BFD_RELOC_FRV_GOTTLSOFFLO
+ -- : BFD_RELOC_FRV_TLSOFF
+ -- : BFD_RELOC_FRV_TLSDESC_RELAX
+ -- : BFD_RELOC_FRV_GETTLSOFF_RELAX
+ -- : BFD_RELOC_FRV_TLSOFF_RELAX
+ -- : BFD_RELOC_FRV_TLSMOFF
+     Fujitsu Frv Relocations.
+
+ -- : BFD_RELOC_MN10300_GOTOFF24
+     This is a 24bit GOT-relative reloc for the mn10300.
+
+ -- : BFD_RELOC_MN10300_GOT32
+     This is a 32bit GOT-relative reloc for the mn10300, offset by two
+     bytes in the instruction.
+
+ -- : BFD_RELOC_MN10300_GOT24
+     This is a 24bit GOT-relative reloc for the mn10300, offset by two
+     bytes in the instruction.
+
+ -- : BFD_RELOC_MN10300_GOT16
+     This is a 16bit GOT-relative reloc for the mn10300, offset by two
+     bytes in the instruction.
+
+ -- : BFD_RELOC_MN10300_COPY
+     Copy symbol at runtime.
+
+ -- : BFD_RELOC_MN10300_GLOB_DAT
+     Create GOT entry.
+
+ -- : BFD_RELOC_MN10300_JMP_SLOT
+     Create PLT entry.
+
+ -- : BFD_RELOC_MN10300_RELATIVE
+     Adjust by program base.
+
+ -- : BFD_RELOC_386_GOT32
+ -- : BFD_RELOC_386_PLT32
+ -- : BFD_RELOC_386_COPY
+ -- : BFD_RELOC_386_GLOB_DAT
+ -- : BFD_RELOC_386_JUMP_SLOT
+ -- : BFD_RELOC_386_RELATIVE
+ -- : BFD_RELOC_386_GOTOFF
+ -- : BFD_RELOC_386_GOTPC
+ -- : BFD_RELOC_386_TLS_TPOFF
+ -- : BFD_RELOC_386_TLS_IE
+ -- : BFD_RELOC_386_TLS_GOTIE
+ -- : BFD_RELOC_386_TLS_LE
+ -- : BFD_RELOC_386_TLS_GD
+ -- : BFD_RELOC_386_TLS_LDM
+ -- : BFD_RELOC_386_TLS_LDO_32
+ -- : BFD_RELOC_386_TLS_IE_32
+ -- : BFD_RELOC_386_TLS_LE_32
+ -- : BFD_RELOC_386_TLS_DTPMOD32
+ -- : BFD_RELOC_386_TLS_DTPOFF32
+ -- : BFD_RELOC_386_TLS_TPOFF32
+     i386/elf relocations
+
+ -- : BFD_RELOC_X86_64_GOT32
+ -- : BFD_RELOC_X86_64_PLT32
+ -- : BFD_RELOC_X86_64_COPY
+ -- : BFD_RELOC_X86_64_GLOB_DAT
+ -- : BFD_RELOC_X86_64_JUMP_SLOT
+ -- : BFD_RELOC_X86_64_RELATIVE
+ -- : BFD_RELOC_X86_64_GOTPCREL
+ -- : BFD_RELOC_X86_64_32S
+ -- : BFD_RELOC_X86_64_DTPMOD64
+ -- : BFD_RELOC_X86_64_DTPOFF64
+ -- : BFD_RELOC_X86_64_TPOFF64
+ -- : BFD_RELOC_X86_64_TLSGD
+ -- : BFD_RELOC_X86_64_TLSLD
+ -- : BFD_RELOC_X86_64_DTPOFF32
+ -- : BFD_RELOC_X86_64_GOTTPOFF
+ -- : BFD_RELOC_X86_64_TPOFF32
+     x86-64/elf relocations
+
+ -- : BFD_RELOC_NS32K_IMM_8
+ -- : BFD_RELOC_NS32K_IMM_16
+ -- : BFD_RELOC_NS32K_IMM_32
+ -- : BFD_RELOC_NS32K_IMM_8_PCREL
+ -- : BFD_RELOC_NS32K_IMM_16_PCREL
+ -- : BFD_RELOC_NS32K_IMM_32_PCREL
+ -- : BFD_RELOC_NS32K_DISP_8
+ -- : BFD_RELOC_NS32K_DISP_16
+ -- : BFD_RELOC_NS32K_DISP_32
+ -- : BFD_RELOC_NS32K_DISP_8_PCREL
+ -- : BFD_RELOC_NS32K_DISP_16_PCREL
+ -- : BFD_RELOC_NS32K_DISP_32_PCREL
+     ns32k relocations
+
+ -- : BFD_RELOC_PDP11_DISP_8_PCREL
+ -- : BFD_RELOC_PDP11_DISP_6_PCREL
+     PDP11 relocations
+
+ -- : BFD_RELOC_PJ_CODE_HI16
+ -- : BFD_RELOC_PJ_CODE_LO16
+ -- : BFD_RELOC_PJ_CODE_DIR16
+ -- : BFD_RELOC_PJ_CODE_DIR32
+ -- : BFD_RELOC_PJ_CODE_REL16
+ -- : BFD_RELOC_PJ_CODE_REL32
+     Picojava relocs.  Not all of these appear in object files.
+
+ -- : BFD_RELOC_PPC_B26
+ -- : BFD_RELOC_PPC_BA26
+ -- : BFD_RELOC_PPC_TOC16
+ -- : BFD_RELOC_PPC_B16
+ -- : BFD_RELOC_PPC_B16_BRTAKEN
+ -- : BFD_RELOC_PPC_B16_BRNTAKEN
+ -- : BFD_RELOC_PPC_BA16
+ -- : BFD_RELOC_PPC_BA16_BRTAKEN
+ -- : BFD_RELOC_PPC_BA16_BRNTAKEN
+ -- : BFD_RELOC_PPC_COPY
+ -- : BFD_RELOC_PPC_GLOB_DAT
+ -- : BFD_RELOC_PPC_JMP_SLOT
+ -- : BFD_RELOC_PPC_RELATIVE
+ -- : BFD_RELOC_PPC_LOCAL24PC
+ -- : BFD_RELOC_PPC_EMB_NADDR32
+ -- : BFD_RELOC_PPC_EMB_NADDR16
+ -- : BFD_RELOC_PPC_EMB_NADDR16_LO
+ -- : BFD_RELOC_PPC_EMB_NADDR16_HI
+ -- : BFD_RELOC_PPC_EMB_NADDR16_HA
+ -- : BFD_RELOC_PPC_EMB_SDAI16
+ -- : BFD_RELOC_PPC_EMB_SDA2I16
+ -- : BFD_RELOC_PPC_EMB_SDA2REL
+ -- : BFD_RELOC_PPC_EMB_SDA21
+ -- : BFD_RELOC_PPC_EMB_MRKREF
+ -- : BFD_RELOC_PPC_EMB_RELSEC16
+ -- : BFD_RELOC_PPC_EMB_RELST_LO
+ -- : BFD_RELOC_PPC_EMB_RELST_HI
+ -- : BFD_RELOC_PPC_EMB_RELST_HA
+ -- : BFD_RELOC_PPC_EMB_BIT_FLD
+ -- : BFD_RELOC_PPC_EMB_RELSDA
+ -- : BFD_RELOC_PPC64_HIGHER
+ -- : BFD_RELOC_PPC64_HIGHER_S
+ -- : BFD_RELOC_PPC64_HIGHEST
+ -- : BFD_RELOC_PPC64_HIGHEST_S
+ -- : BFD_RELOC_PPC64_TOC16_LO
+ -- : BFD_RELOC_PPC64_TOC16_HI
+ -- : BFD_RELOC_PPC64_TOC16_HA
+ -- : BFD_RELOC_PPC64_TOC
+ -- : BFD_RELOC_PPC64_PLTGOT16
+ -- : BFD_RELOC_PPC64_PLTGOT16_LO
+ -- : BFD_RELOC_PPC64_PLTGOT16_HI
+ -- : BFD_RELOC_PPC64_PLTGOT16_HA
+ -- : BFD_RELOC_PPC64_ADDR16_DS
+ -- : BFD_RELOC_PPC64_ADDR16_LO_DS
+ -- : BFD_RELOC_PPC64_GOT16_DS
+ -- : BFD_RELOC_PPC64_GOT16_LO_DS
+ -- : BFD_RELOC_PPC64_PLT16_LO_DS
+ -- : BFD_RELOC_PPC64_SECTOFF_DS
+ -- : BFD_RELOC_PPC64_SECTOFF_LO_DS
+ -- : BFD_RELOC_PPC64_TOC16_DS
+ -- : BFD_RELOC_PPC64_TOC16_LO_DS
+ -- : BFD_RELOC_PPC64_PLTGOT16_DS
+ -- : BFD_RELOC_PPC64_PLTGOT16_LO_DS
+     Power(rs6000) and PowerPC relocations.
+
+ -- : BFD_RELOC_PPC_TLS
+ -- : BFD_RELOC_PPC_DTPMOD
+ -- : BFD_RELOC_PPC_TPREL16
+ -- : BFD_RELOC_PPC_TPREL16_LO
+ -- : BFD_RELOC_PPC_TPREL16_HI
+ -- : BFD_RELOC_PPC_TPREL16_HA
+ -- : BFD_RELOC_PPC_TPREL
+ -- : BFD_RELOC_PPC_DTPREL16
+ -- : BFD_RELOC_PPC_DTPREL16_LO
+ -- : BFD_RELOC_PPC_DTPREL16_HI
+ -- : BFD_RELOC_PPC_DTPREL16_HA
+ -- : BFD_RELOC_PPC_DTPREL
+ -- : BFD_RELOC_PPC_GOT_TLSGD16
+ -- : BFD_RELOC_PPC_GOT_TLSGD16_LO
+ -- : BFD_RELOC_PPC_GOT_TLSGD16_HI
+ -- : BFD_RELOC_PPC_GOT_TLSGD16_HA
+ -- : BFD_RELOC_PPC_GOT_TLSLD16
+ -- : BFD_RELOC_PPC_GOT_TLSLD16_LO
+ -- : BFD_RELOC_PPC_GOT_TLSLD16_HI
+ -- : BFD_RELOC_PPC_GOT_TLSLD16_HA
+ -- : BFD_RELOC_PPC_GOT_TPREL16
+ -- : BFD_RELOC_PPC_GOT_TPREL16_LO
+ -- : BFD_RELOC_PPC_GOT_TPREL16_HI
+ -- : BFD_RELOC_PPC_GOT_TPREL16_HA
+ -- : BFD_RELOC_PPC_GOT_DTPREL16
+ -- : BFD_RELOC_PPC_GOT_DTPREL16_LO
+ -- : BFD_RELOC_PPC_GOT_DTPREL16_HI
+ -- : BFD_RELOC_PPC_GOT_DTPREL16_HA
+ -- : BFD_RELOC_PPC64_TPREL16_DS
+ -- : BFD_RELOC_PPC64_TPREL16_LO_DS
+ -- : BFD_RELOC_PPC64_TPREL16_HIGHER
+ -- : BFD_RELOC_PPC64_TPREL16_HIGHERA
+ -- : BFD_RELOC_PPC64_TPREL16_HIGHEST
+ -- : BFD_RELOC_PPC64_TPREL16_HIGHESTA
+ -- : BFD_RELOC_PPC64_DTPREL16_DS
+ -- : BFD_RELOC_PPC64_DTPREL16_LO_DS
+ -- : BFD_RELOC_PPC64_DTPREL16_HIGHER
+ -- : BFD_RELOC_PPC64_DTPREL16_HIGHERA
+ -- : BFD_RELOC_PPC64_DTPREL16_HIGHEST
+ -- : BFD_RELOC_PPC64_DTPREL16_HIGHESTA
+     PowerPC and PowerPC64 thread-local storage relocations.
+
+ -- : BFD_RELOC_I370_D12
+     IBM 370/390 relocations
+
+ -- : BFD_RELOC_CTOR
+     The type of reloc used to build a constructor table - at the moment
+     probably a 32 bit wide absolute relocation, but the target can
+     choose.  It generally does map to one of the other relocation
+     types.
+
+ -- : BFD_RELOC_ARM_PCREL_BRANCH
+     ARM 26 bit pc-relative branch.  The lowest two bits must be zero
+     and are not stored in the instruction.
+
+ -- : BFD_RELOC_ARM_PCREL_BLX
+     ARM 26 bit pc-relative branch.  The lowest bit must be zero and is
+     not stored in the instruction.  The 2nd lowest bit comes from a 1
+     bit field in the instruction.
+
+ -- : BFD_RELOC_THUMB_PCREL_BLX
+     Thumb 22 bit pc-relative branch.  The lowest bit must be zero and
+     is not stored in the instruction.  The 2nd lowest bit comes from a
+     1 bit field in the instruction.
+
+ -- : BFD_RELOC_ARM_IMMEDIATE
+ -- : BFD_RELOC_ARM_ADRL_IMMEDIATE
+ -- : BFD_RELOC_ARM_OFFSET_IMM
+ -- : BFD_RELOC_ARM_SHIFT_IMM
+ -- : BFD_RELOC_ARM_SMI
+ -- : BFD_RELOC_ARM_SWI
+ -- : BFD_RELOC_ARM_MULTI
+ -- : BFD_RELOC_ARM_CP_OFF_IMM
+ -- : BFD_RELOC_ARM_CP_OFF_IMM_S2
+ -- : BFD_RELOC_ARM_ADR_IMM
+ -- : BFD_RELOC_ARM_LDR_IMM
+ -- : BFD_RELOC_ARM_LITERAL
+ -- : BFD_RELOC_ARM_IN_POOL
+ -- : BFD_RELOC_ARM_OFFSET_IMM8
+ -- : BFD_RELOC_ARM_HWLITERAL
+ -- : BFD_RELOC_ARM_THUMB_ADD
+ -- : BFD_RELOC_ARM_THUMB_IMM
+ -- : BFD_RELOC_ARM_THUMB_SHIFT
+ -- : BFD_RELOC_ARM_THUMB_OFFSET
+ -- : BFD_RELOC_ARM_GOT12
+ -- : BFD_RELOC_ARM_GOT32
+ -- : BFD_RELOC_ARM_JUMP_SLOT
+ -- : BFD_RELOC_ARM_COPY
+ -- : BFD_RELOC_ARM_GLOB_DAT
+ -- : BFD_RELOC_ARM_PLT32
+ -- : BFD_RELOC_ARM_RELATIVE
+ -- : BFD_RELOC_ARM_GOTOFF
+ -- : BFD_RELOC_ARM_GOTPC
+     These relocs are only used within the ARM assembler.  They are not
+     (at present) written to any object files.
+
+ -- : BFD_RELOC_ARM_TARGET1
+     Pc-relative or absolute relocation depending on target.  Used for
+     entries in .init_array sections.
+
+ -- : BFD_RELOC_ARM_ROSEGREL32
+     Read-only segment base relative address.
+
+ -- : BFD_RELOC_ARM_SBREL32
+     Data segment base relative address.
+
+ -- : BFD_RELOC_ARM_TARGET2
+     This reloc is used for References to RTTI dta from exception
+     handling tables.  The actual definition depends on the target.  It
+     may be a pc-relative or some form of GOT-indirect relocation.
+
+ -- : BFD_RELOC_ARM_PREL31
+     31-bit PC relative address.
+
+ -- : BFD_RELOC_SH_PCDISP8BY2
+ -- : BFD_RELOC_SH_PCDISP12BY2
+ -- : BFD_RELOC_SH_IMM3
+ -- : BFD_RELOC_SH_IMM3U
+ -- : BFD_RELOC_SH_DISP12
+ -- : BFD_RELOC_SH_DISP12BY2
+ -- : BFD_RELOC_SH_DISP12BY4
+ -- : BFD_RELOC_SH_DISP12BY8
+ -- : BFD_RELOC_SH_DISP20
+ -- : BFD_RELOC_SH_DISP20BY8
+ -- : BFD_RELOC_SH_IMM4
+ -- : BFD_RELOC_SH_IMM4BY2
+ -- : BFD_RELOC_SH_IMM4BY4
+ -- : BFD_RELOC_SH_IMM8
+ -- : BFD_RELOC_SH_IMM8BY2
+ -- : BFD_RELOC_SH_IMM8BY4
+ -- : BFD_RELOC_SH_PCRELIMM8BY2
+ -- : BFD_RELOC_SH_PCRELIMM8BY4
+ -- : BFD_RELOC_SH_SWITCH16
+ -- : BFD_RELOC_SH_SWITCH32
+ -- : BFD_RELOC_SH_USES
+ -- : BFD_RELOC_SH_COUNT
+ -- : BFD_RELOC_SH_ALIGN
+ -- : BFD_RELOC_SH_CODE
+ -- : BFD_RELOC_SH_DATA
+ -- : BFD_RELOC_SH_LABEL
+ -- : BFD_RELOC_SH_LOOP_START
+ -- : BFD_RELOC_SH_LOOP_END
+ -- : BFD_RELOC_SH_COPY
+ -- : BFD_RELOC_SH_GLOB_DAT
+ -- : BFD_RELOC_SH_JMP_SLOT
+ -- : BFD_RELOC_SH_RELATIVE
+ -- : BFD_RELOC_SH_GOTPC
+ -- : BFD_RELOC_SH_GOT_LOW16
+ -- : BFD_RELOC_SH_GOT_MEDLOW16
+ -- : BFD_RELOC_SH_GOT_MEDHI16
+ -- : BFD_RELOC_SH_GOT_HI16
+ -- : BFD_RELOC_SH_GOTPLT_LOW16
+ -- : BFD_RELOC_SH_GOTPLT_MEDLOW16
+ -- : BFD_RELOC_SH_GOTPLT_MEDHI16
+ -- : BFD_RELOC_SH_GOTPLT_HI16
+ -- : BFD_RELOC_SH_PLT_LOW16
+ -- : BFD_RELOC_SH_PLT_MEDLOW16
+ -- : BFD_RELOC_SH_PLT_MEDHI16
+ -- : BFD_RELOC_SH_PLT_HI16
+ -- : BFD_RELOC_SH_GOTOFF_LOW16
+ -- : BFD_RELOC_SH_GOTOFF_MEDLOW16
+ -- : BFD_RELOC_SH_GOTOFF_MEDHI16
+ -- : BFD_RELOC_SH_GOTOFF_HI16
+ -- : BFD_RELOC_SH_GOTPC_LOW16
+ -- : BFD_RELOC_SH_GOTPC_MEDLOW16
+ -- : BFD_RELOC_SH_GOTPC_MEDHI16
+ -- : BFD_RELOC_SH_GOTPC_HI16
+ -- : BFD_RELOC_SH_COPY64
+ -- : BFD_RELOC_SH_GLOB_DAT64
+ -- : BFD_RELOC_SH_JMP_SLOT64
+ -- : BFD_RELOC_SH_RELATIVE64
+ -- : BFD_RELOC_SH_GOT10BY4
+ -- : BFD_RELOC_SH_GOT10BY8
+ -- : BFD_RELOC_SH_GOTPLT10BY4
+ -- : BFD_RELOC_SH_GOTPLT10BY8
+ -- : BFD_RELOC_SH_GOTPLT32
+ -- : BFD_RELOC_SH_SHMEDIA_CODE
+ -- : BFD_RELOC_SH_IMMU5
+ -- : BFD_RELOC_SH_IMMS6
+ -- : BFD_RELOC_SH_IMMS6BY32
+ -- : BFD_RELOC_SH_IMMU6
+ -- : BFD_RELOC_SH_IMMS10
+ -- : BFD_RELOC_SH_IMMS10BY2
+ -- : BFD_RELOC_SH_IMMS10BY4
+ -- : BFD_RELOC_SH_IMMS10BY8
+ -- : BFD_RELOC_SH_IMMS16
+ -- : BFD_RELOC_SH_IMMU16
+ -- : BFD_RELOC_SH_IMM_LOW16
+ -- : BFD_RELOC_SH_IMM_LOW16_PCREL
+ -- : BFD_RELOC_SH_IMM_MEDLOW16
+ -- : BFD_RELOC_SH_IMM_MEDLOW16_PCREL
+ -- : BFD_RELOC_SH_IMM_MEDHI16
+ -- : BFD_RELOC_SH_IMM_MEDHI16_PCREL
+ -- : BFD_RELOC_SH_IMM_HI16
+ -- : BFD_RELOC_SH_IMM_HI16_PCREL
+ -- : BFD_RELOC_SH_PT_16
+ -- : BFD_RELOC_SH_TLS_GD_32
+ -- : BFD_RELOC_SH_TLS_LD_32
+ -- : BFD_RELOC_SH_TLS_LDO_32
+ -- : BFD_RELOC_SH_TLS_IE_32
+ -- : BFD_RELOC_SH_TLS_LE_32
+ -- : BFD_RELOC_SH_TLS_DTPMOD32
+ -- : BFD_RELOC_SH_TLS_DTPOFF32
+ -- : BFD_RELOC_SH_TLS_TPOFF32
+     Renesas / SuperH SH relocs.  Not all of these appear in object
+     files.
+
+ -- : BFD_RELOC_THUMB_PCREL_BRANCH9
+ -- : BFD_RELOC_THUMB_PCREL_BRANCH12
+ -- : BFD_RELOC_THUMB_PCREL_BRANCH23
+     Thumb 23-, 12- and 9-bit pc-relative branches.  The lowest bit must
+     be zero and is not stored in the instruction.
+
+ -- : BFD_RELOC_ARC_B22_PCREL
+     ARC Cores relocs.  ARC 22 bit pc-relative branch.  The lowest two
+     bits must be zero and are not stored in the instruction.  The high
+     20 bits are installed in bits 26 through 7 of the instruction.
+
+ -- : BFD_RELOC_ARC_B26
+     ARC 26 bit absolute branch.  The lowest two bits must be zero and
+     are not stored in the instruction.  The high 24 bits are installed
+     in bits 23 through 0.
+
+ -- : BFD_RELOC_D10V_10_PCREL_R
+     Mitsubishi D10V relocs.  This is a 10-bit reloc with the right 2
+     bits assumed to be 0.
+
+ -- : BFD_RELOC_D10V_10_PCREL_L
+     Mitsubishi D10V relocs.  This is a 10-bit reloc with the right 2
+     bits assumed to be 0.  This is the same as the previous reloc
+     except it is in the left container, i.e., shifted left 15 bits.
+
+ -- : BFD_RELOC_D10V_18
+     This is an 18-bit reloc with the right 2 bits assumed to be 0.
+
+ -- : BFD_RELOC_D10V_18_PCREL
+     This is an 18-bit reloc with the right 2 bits assumed to be 0.
+
+ -- : BFD_RELOC_D30V_6
+     Mitsubishi D30V relocs.  This is a 6-bit absolute reloc.
+
+ -- : BFD_RELOC_D30V_9_PCREL
+     This is a 6-bit pc-relative reloc with the right 3 bits assumed to
+     be 0.
+
+ -- : BFD_RELOC_D30V_9_PCREL_R
+     This is a 6-bit pc-relative reloc with the right 3 bits assumed to
+     be 0. Same as the previous reloc but on the right side of the
+     container.
+
+ -- : BFD_RELOC_D30V_15
+     This is a 12-bit absolute reloc with the right 3 bitsassumed to be
+     0.
+
+ -- : BFD_RELOC_D30V_15_PCREL
+     This is a 12-bit pc-relative reloc with the right 3 bits assumed
+     to be 0.
+
+ -- : BFD_RELOC_D30V_15_PCREL_R
+     This is a 12-bit pc-relative reloc with the right 3 bits assumed
+     to be 0. Same as the previous reloc but on the right side of the
+     container.
+
+ -- : BFD_RELOC_D30V_21
+     This is an 18-bit absolute reloc with the right 3 bits assumed to
+     be 0.
+
+ -- : BFD_RELOC_D30V_21_PCREL
+     This is an 18-bit pc-relative reloc with the right 3 bits assumed
+     to be 0.
+
+ -- : BFD_RELOC_D30V_21_PCREL_R
+     This is an 18-bit pc-relative reloc with the right 3 bits assumed
+     to be 0. Same as the previous reloc but on the right side of the
+     container.
+
+ -- : BFD_RELOC_D30V_32
+     This is a 32-bit absolute reloc.
+
+ -- : BFD_RELOC_D30V_32_PCREL
+     This is a 32-bit pc-relative reloc.
+
+ -- : BFD_RELOC_DLX_HI16_S
+     DLX relocs
+
+ -- : BFD_RELOC_DLX_LO16
+     DLX relocs
+
+ -- : BFD_RELOC_DLX_JMP26
+     DLX relocs
+
+ -- : BFD_RELOC_M32R_24
+     Renesas M32R (formerly Mitsubishi M32R) relocs.  This is a 24 bit
+     absolute address.
+
+ -- : BFD_RELOC_M32R_10_PCREL
+     This is a 10-bit pc-relative reloc with the right 2 bits assumed
+     to be 0.
+
+ -- : BFD_RELOC_M32R_18_PCREL
+     This is an 18-bit reloc with the right 2 bits assumed to be 0.
+
+ -- : BFD_RELOC_M32R_26_PCREL
+     This is a 26-bit reloc with the right 2 bits assumed to be 0.
+
+ -- : BFD_RELOC_M32R_HI16_ULO
+     This is a 16-bit reloc containing the high 16 bits of an address
+     used when the lower 16 bits are treated as unsigned.
+
+ -- : BFD_RELOC_M32R_HI16_SLO
+     This is a 16-bit reloc containing the high 16 bits of an address
+     used when the lower 16 bits are treated as signed.
+
+ -- : BFD_RELOC_M32R_LO16
+     This is a 16-bit reloc containing the lower 16 bits of an address.
+
+ -- : BFD_RELOC_M32R_SDA16
+     This is a 16-bit reloc containing the small data area offset for
+     use in add3, load, and store instructions.
+
+ -- : BFD_RELOC_M32R_GOT24
+ -- : BFD_RELOC_M32R_26_PLTREL
+ -- : BFD_RELOC_M32R_COPY
+ -- : BFD_RELOC_M32R_GLOB_DAT
+ -- : BFD_RELOC_M32R_JMP_SLOT
+ -- : BFD_RELOC_M32R_RELATIVE
+ -- : BFD_RELOC_M32R_GOTOFF
+ -- : BFD_RELOC_M32R_GOTOFF_HI_ULO
+ -- : BFD_RELOC_M32R_GOTOFF_HI_SLO
+ -- : BFD_RELOC_M32R_GOTOFF_LO
+ -- : BFD_RELOC_M32R_GOTPC24
+ -- : BFD_RELOC_M32R_GOT16_HI_ULO
+ -- : BFD_RELOC_M32R_GOT16_HI_SLO
+ -- : BFD_RELOC_M32R_GOT16_LO
+ -- : BFD_RELOC_M32R_GOTPC_HI_ULO
+ -- : BFD_RELOC_M32R_GOTPC_HI_SLO
+ -- : BFD_RELOC_M32R_GOTPC_LO
+     For PIC.
+
+ -- : BFD_RELOC_V850_9_PCREL
+     This is a 9-bit reloc
+
+ -- : BFD_RELOC_V850_22_PCREL
+     This is a 22-bit reloc
+
+ -- : BFD_RELOC_V850_SDA_16_16_OFFSET
+     This is a 16 bit offset from the short data area pointer.
+
+ -- : BFD_RELOC_V850_SDA_15_16_OFFSET
+     This is a 16 bit offset (of which only 15 bits are used) from the
+     short data area pointer.
+
+ -- : BFD_RELOC_V850_ZDA_16_16_OFFSET
+     This is a 16 bit offset from the zero data area pointer.
+
+ -- : BFD_RELOC_V850_ZDA_15_16_OFFSET
+     This is a 16 bit offset (of which only 15 bits are used) from the
+     zero data area pointer.
+
+ -- : BFD_RELOC_V850_TDA_6_8_OFFSET
+     This is an 8 bit offset (of which only 6 bits are used) from the
+     tiny data area pointer.
+
+ -- : BFD_RELOC_V850_TDA_7_8_OFFSET
+     This is an 8bit offset (of which only 7 bits are used) from the
+     tiny data area pointer.
+
+ -- : BFD_RELOC_V850_TDA_7_7_OFFSET
+     This is a 7 bit offset from the tiny data area pointer.
+
+ -- : BFD_RELOC_V850_TDA_16_16_OFFSET
+     This is a 16 bit offset from the tiny data area pointer.
+
+ -- : BFD_RELOC_V850_TDA_4_5_OFFSET
+     This is a 5 bit offset (of which only 4 bits are used) from the
+     tiny data area pointer.
+
+ -- : BFD_RELOC_V850_TDA_4_4_OFFSET
+     This is a 4 bit offset from the tiny data area pointer.
+
+ -- : BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET
+     This is a 16 bit offset from the short data area pointer, with the
+     bits placed non-contiguously in the instruction.
+
+ -- : BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET
+     This is a 16 bit offset from the zero data area pointer, with the
+     bits placed non-contiguously in the instruction.
+
+ -- : BFD_RELOC_V850_CALLT_6_7_OFFSET
+     This is a 6 bit offset from the call table base pointer.
+
+ -- : BFD_RELOC_V850_CALLT_16_16_OFFSET
+     This is a 16 bit offset from the call table base pointer.
+
+ -- : BFD_RELOC_V850_LONGCALL
+     Used for relaxing indirect function calls.
+
+ -- : BFD_RELOC_V850_LONGJUMP
+     Used for relaxing indirect jumps.
+
+ -- : BFD_RELOC_V850_ALIGN
+     Used to maintain alignment whilst relaxing.
+
+ -- : BFD_RELOC_V850_LO16_SPLIT_OFFSET
+     This is a variation of BFD_RELOC_LO16 that can be used in v850e
+     ld.bu instructions.
+
+ -- : BFD_RELOC_MN10300_32_PCREL
+     This is a 32bit pcrel reloc for the mn10300, offset by two bytes
+     in the instruction.
+
+ -- : BFD_RELOC_MN10300_16_PCREL
+     This is a 16bit pcrel reloc for the mn10300, offset by two bytes
+     in the instruction.
+
+ -- : BFD_RELOC_TIC30_LDP
+     This is a 8bit DP reloc for the tms320c30, where the most
+     significant 8 bits of a 24 bit word are placed into the least
+     significant 8 bits of the opcode.
+
+ -- : BFD_RELOC_TIC54X_PARTLS7
+     This is a 7bit reloc for the tms320c54x, where the least
+     significant 7 bits of a 16 bit word are placed into the least
+     significant 7 bits of the opcode.
+
+ -- : BFD_RELOC_TIC54X_PARTMS9
+     This is a 9bit DP reloc for the tms320c54x, where the most
+     significant 9 bits of a 16 bit word are placed into the least
+     significant 9 bits of the opcode.
+
+ -- : BFD_RELOC_TIC54X_23
+     This is an extended address 23-bit reloc for the tms320c54x.
+
+ -- : BFD_RELOC_TIC54X_16_OF_23
+     This is a 16-bit reloc for the tms320c54x, where the least
+     significant 16 bits of a 23-bit extended address are placed into
+     the opcode.
+
+ -- : BFD_RELOC_TIC54X_MS7_OF_23
+     This is a reloc for the tms320c54x, where the most significant 7
+     bits of a 23-bit extended address are placed into the opcode.
+
+ -- : BFD_RELOC_FR30_48
+     This is a 48 bit reloc for the FR30 that stores 32 bits.
+
+ -- : BFD_RELOC_FR30_20
+     This is a 32 bit reloc for the FR30 that stores 20 bits split up
+     into two sections.
+
+ -- : BFD_RELOC_FR30_6_IN_4
+     This is a 16 bit reloc for the FR30 that stores a 6 bit word
+     offset in 4 bits.
+
+ -- : BFD_RELOC_FR30_8_IN_8
+     This is a 16 bit reloc for the FR30 that stores an 8 bit byte
+     offset into 8 bits.
+
+ -- : BFD_RELOC_FR30_9_IN_8
+     This is a 16 bit reloc for the FR30 that stores a 9 bit short
+     offset into 8 bits.
+
+ -- : BFD_RELOC_FR30_10_IN_8
+     This is a 16 bit reloc for the FR30 that stores a 10 bit word
+     offset into 8 bits.
+
+ -- : BFD_RELOC_FR30_9_PCREL
+     This is a 16 bit reloc for the FR30 that stores a 9 bit pc relative
+     short offset into 8 bits.
+
+ -- : BFD_RELOC_FR30_12_PCREL
+     This is a 16 bit reloc for the FR30 that stores a 12 bit pc
+     relative short offset into 11 bits.
+
+ -- : BFD_RELOC_MCORE_PCREL_IMM8BY4
+ -- : BFD_RELOC_MCORE_PCREL_IMM11BY2
+ -- : BFD_RELOC_MCORE_PCREL_IMM4BY2
+ -- : BFD_RELOC_MCORE_PCREL_32
+ -- : BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2
+ -- : BFD_RELOC_MCORE_RVA
+     Motorola Mcore relocations.
+
+ -- : BFD_RELOC_MMIX_GETA
+ -- : BFD_RELOC_MMIX_GETA_1
+ -- : BFD_RELOC_MMIX_GETA_2
+ -- : BFD_RELOC_MMIX_GETA_3
+     These are relocations for the GETA instruction.
+
+ -- : BFD_RELOC_MMIX_CBRANCH
+ -- : BFD_RELOC_MMIX_CBRANCH_J
+ -- : BFD_RELOC_MMIX_CBRANCH_1
+ -- : BFD_RELOC_MMIX_CBRANCH_2
+ -- : BFD_RELOC_MMIX_CBRANCH_3
+     These are relocations for a conditional branch instruction.
+
+ -- : BFD_RELOC_MMIX_PUSHJ
+ -- : BFD_RELOC_MMIX_PUSHJ_1
+ -- : BFD_RELOC_MMIX_PUSHJ_2
+ -- : BFD_RELOC_MMIX_PUSHJ_3
+ -- : BFD_RELOC_MMIX_PUSHJ_STUBBABLE
+     These are relocations for the PUSHJ instruction.
+
+ -- : BFD_RELOC_MMIX_JMP
+ -- : BFD_RELOC_MMIX_JMP_1
+ -- : BFD_RELOC_MMIX_JMP_2
+ -- : BFD_RELOC_MMIX_JMP_3
+     These are relocations for the JMP instruction.
+
+ -- : BFD_RELOC_MMIX_ADDR19
+     This is a relocation for a relative address as in a GETA
+     instruction or a branch.
+
+ -- : BFD_RELOC_MMIX_ADDR27
+     This is a relocation for a relative address as in a JMP
+     instruction.
+
+ -- : BFD_RELOC_MMIX_REG_OR_BYTE
+     This is a relocation for an instruction field that may be a general
+     register or a value 0..255.
+
+ -- : BFD_RELOC_MMIX_REG
+     This is a relocation for an instruction field that may be a general
+     register.
+
+ -- : BFD_RELOC_MMIX_BASE_PLUS_OFFSET
+     This is a relocation for two instruction fields holding a register
+     and an offset, the equivalent of the relocation.
+
+ -- : BFD_RELOC_MMIX_LOCAL
+     This relocation is an assertion that the expression is not
+     allocated as a global register.  It does not modify contents.
+
+ -- : BFD_RELOC_AVR_7_PCREL
+     This is a 16 bit reloc for the AVR that stores 8 bit pc relative
+     short offset into 7 bits.
+
+ -- : BFD_RELOC_AVR_13_PCREL
+     This is a 16 bit reloc for the AVR that stores 13 bit pc relative
+     short offset into 12 bits.
+
+ -- : BFD_RELOC_AVR_16_PM
+     This is a 16 bit reloc for the AVR that stores 17 bit value
+     (usually program memory address) into 16 bits.
+
+ -- : BFD_RELOC_AVR_LO8_LDI
+     This is a 16 bit reloc for the AVR that stores 8 bit value (usually
+     data memory address) into 8 bit immediate value of LDI insn.
+
+ -- : BFD_RELOC_AVR_HI8_LDI
+     This is a 16 bit reloc for the AVR that stores 8 bit value (high 8
+     bit of data memory address) into 8 bit immediate value of LDI insn.
+
+ -- : BFD_RELOC_AVR_HH8_LDI
+     This is a 16 bit reloc for the AVR that stores 8 bit value (most
+     high 8 bit of program memory address) into 8 bit immediate value
+     of LDI insn.
+
+ -- : BFD_RELOC_AVR_LO8_LDI_NEG
+     This is a 16 bit reloc for the AVR that stores negated 8 bit value
+     (usually data memory address) into 8 bit immediate value of SUBI
+     insn.
+
+ -- : BFD_RELOC_AVR_HI8_LDI_NEG
+     This is a 16 bit reloc for the AVR that stores negated 8 bit value
+     (high 8 bit of data memory address) into 8 bit immediate value of
+     SUBI insn.
+
+ -- : BFD_RELOC_AVR_HH8_LDI_NEG
+     This is a 16 bit reloc for the AVR that stores negated 8 bit value
+     (most high 8 bit of program memory address) into 8 bit immediate
+     value of LDI or SUBI insn.
+
+ -- : BFD_RELOC_AVR_LO8_LDI_PM
+     This is a 16 bit reloc for the AVR that stores 8 bit value (usually
+     command address) into 8 bit immediate value of LDI insn.
+
+ -- : BFD_RELOC_AVR_HI8_LDI_PM
+     This is a 16 bit reloc for the AVR that stores 8 bit value (high 8
+     bit of command address) into 8 bit immediate value of LDI insn.
+
+ -- : BFD_RELOC_AVR_HH8_LDI_PM
+     This is a 16 bit reloc for the AVR that stores 8 bit value (most
+     high 8 bit of command address) into 8 bit immediate value of LDI
+     insn.
+
+ -- : BFD_RELOC_AVR_LO8_LDI_PM_NEG
+     This is a 16 bit reloc for the AVR that stores negated 8 bit value
+     (usually command address) into 8 bit immediate value of SUBI insn.
+
+ -- : BFD_RELOC_AVR_HI8_LDI_PM_NEG
+     This is a 16 bit reloc for the AVR that stores negated 8 bit value
+     (high 8 bit of 16 bit command address) into 8 bit immediate value
+     of SUBI insn.
+
+ -- : BFD_RELOC_AVR_HH8_LDI_PM_NEG
+     This is a 16 bit reloc for the AVR that stores negated 8 bit value
+     (high 6 bit of 22 bit command address) into 8 bit immediate value
+     of SUBI insn.
+
+ -- : BFD_RELOC_AVR_CALL
+     This is a 32 bit reloc for the AVR that stores 23 bit value into
+     22 bits.
+
+ -- : BFD_RELOC_AVR_LDI
+     This is a 16 bit reloc for the AVR that stores all needed bits for
+     absolute addressing with ldi with overflow check to linktime
+
+ -- : BFD_RELOC_AVR_6
+     This is a 6 bit reloc for the AVR that stores offset for ldd/std
+     instructions
+
+ -- : BFD_RELOC_AVR_6_ADIW
+     This is a 6 bit reloc for the AVR that stores offset for adiw/sbiw
+     instructions
+
+ -- : BFD_RELOC_390_12
+     Direct 12 bit.
+
+ -- : BFD_RELOC_390_GOT12
+     12 bit GOT offset.
+
+ -- : BFD_RELOC_390_PLT32
+     32 bit PC relative PLT address.
+
+ -- : BFD_RELOC_390_COPY
+     Copy symbol at runtime.
+
+ -- : BFD_RELOC_390_GLOB_DAT
+     Create GOT entry.
+
+ -- : BFD_RELOC_390_JMP_SLOT
+     Create PLT entry.
+
+ -- : BFD_RELOC_390_RELATIVE
+     Adjust by program base.
+
+ -- : BFD_RELOC_390_GOTPC
+     32 bit PC relative offset to GOT.
+
+ -- : BFD_RELOC_390_GOT16
+     16 bit GOT offset.
+
+ -- : BFD_RELOC_390_PC16DBL
+     PC relative 16 bit shifted by 1.
+
+ -- : BFD_RELOC_390_PLT16DBL
+     16 bit PC rel. PLT shifted by 1.
+
+ -- : BFD_RELOC_390_PC32DBL
+     PC relative 32 bit shifted by 1.
+
+ -- : BFD_RELOC_390_PLT32DBL
+     32 bit PC rel. PLT shifted by 1.
+
+ -- : BFD_RELOC_390_GOTPCDBL
+     32 bit PC rel. GOT shifted by 1.
+
+ -- : BFD_RELOC_390_GOT64
+     64 bit GOT offset.
+
+ -- : BFD_RELOC_390_PLT64
+     64 bit PC relative PLT address.
+
+ -- : BFD_RELOC_390_GOTENT
+     32 bit rel. offset to GOT entry.
+
+ -- : BFD_RELOC_390_GOTOFF64
+     64 bit offset to GOT.
+
+ -- : BFD_RELOC_390_GOTPLT12
+     12-bit offset to symbol-entry within GOT, with PLT handling.
+
+ -- : BFD_RELOC_390_GOTPLT16
+     16-bit offset to symbol-entry within GOT, with PLT handling.
+
+ -- : BFD_RELOC_390_GOTPLT32
+     32-bit offset to symbol-entry within GOT, with PLT handling.
+
+ -- : BFD_RELOC_390_GOTPLT64
+     64-bit offset to symbol-entry within GOT, with PLT handling.
+
+ -- : BFD_RELOC_390_GOTPLTENT
+     32-bit rel. offset to symbol-entry within GOT, with PLT handling.
+
+ -- : BFD_RELOC_390_PLTOFF16
+     16-bit rel. offset from the GOT to a PLT entry.
+
+ -- : BFD_RELOC_390_PLTOFF32
+     32-bit rel. offset from the GOT to a PLT entry.
+
+ -- : BFD_RELOC_390_PLTOFF64
+     64-bit rel. offset from the GOT to a PLT entry.
+
+ -- : BFD_RELOC_390_TLS_LOAD
+ -- : BFD_RELOC_390_TLS_GDCALL
+ -- : BFD_RELOC_390_TLS_LDCALL
+ -- : BFD_RELOC_390_TLS_GD32
+ -- : BFD_RELOC_390_TLS_GD64
+ -- : BFD_RELOC_390_TLS_GOTIE12
+ -- : BFD_RELOC_390_TLS_GOTIE32
+ -- : BFD_RELOC_390_TLS_GOTIE64
+ -- : BFD_RELOC_390_TLS_LDM32
+ -- : BFD_RELOC_390_TLS_LDM64
+ -- : BFD_RELOC_390_TLS_IE32
+ -- : BFD_RELOC_390_TLS_IE64
+ -- : BFD_RELOC_390_TLS_IEENT
+ -- : BFD_RELOC_390_TLS_LE32
+ -- : BFD_RELOC_390_TLS_LE64
+ -- : BFD_RELOC_390_TLS_LDO32
+ -- : BFD_RELOC_390_TLS_LDO64
+ -- : BFD_RELOC_390_TLS_DTPMOD
+ -- : BFD_RELOC_390_TLS_DTPOFF
+ -- : BFD_RELOC_390_TLS_TPOFF
+     s390 tls relocations.
+
+ -- : BFD_RELOC_390_20
+ -- : BFD_RELOC_390_GOT20
+ -- : BFD_RELOC_390_GOTPLT20
+ -- : BFD_RELOC_390_TLS_GOTIE20
+     Long displacement extension.
+
+ -- : BFD_RELOC_IP2K_FR9
+     Scenix IP2K - 9-bit register number / data address
+
+ -- : BFD_RELOC_IP2K_BANK
+     Scenix IP2K - 4-bit register/data bank number
+
+ -- : BFD_RELOC_IP2K_ADDR16CJP
+     Scenix IP2K - low 13 bits of instruction word address
+
+ -- : BFD_RELOC_IP2K_PAGE3
+     Scenix IP2K - high 3 bits of instruction word address
+
+ -- : BFD_RELOC_IP2K_LO8DATA
+ -- : BFD_RELOC_IP2K_HI8DATA
+ -- : BFD_RELOC_IP2K_EX8DATA
+     Scenix IP2K - ext/low/high 8 bits of data address
+
+ -- : BFD_RELOC_IP2K_LO8INSN
+ -- : BFD_RELOC_IP2K_HI8INSN
+     Scenix IP2K - low/high 8 bits of instruction word address
+
+ -- : BFD_RELOC_IP2K_PC_SKIP
+     Scenix IP2K - even/odd PC modifier to modify snb pcl.0
+
+ -- : BFD_RELOC_IP2K_TEXT
+     Scenix IP2K - 16 bit word address in text section.
+
+ -- : BFD_RELOC_IP2K_FR_OFFSET
+     Scenix IP2K - 7-bit sp or dp offset
+
+ -- : BFD_RELOC_VPE4KMATH_DATA
+ -- : BFD_RELOC_VPE4KMATH_INSN
+     Scenix VPE4K coprocessor - data/insn-space addressing
+
+ -- : BFD_RELOC_VTABLE_INHERIT
+ -- : BFD_RELOC_VTABLE_ENTRY
+     These two relocations are used by the linker to determine which of
+     the entries in a C++ virtual function table are actually used.
+     When the -gc-sections option is given, the linker will zero out
+     the entries that are not used, so that the code for those
+     functions need not be included in the output.
+
+     VTABLE_INHERIT is a zero-space relocation used to describe to the
+     linker the inheritance tree of a C++ virtual function table.  The
+     relocation's symbol should be the parent class' vtable, and the
+     relocation should be located at the child vtable.
+
+     VTABLE_ENTRY is a zero-space relocation that describes the use of a
+     virtual function table entry.  The reloc's symbol should refer to
+     the table of the class mentioned in the code.  Off of that base,
+     an offset describes the entry that is being used.  For Rela hosts,
+     this offset is stored in the reloc's addend.  For Rel hosts, we
+     are forced to put this offset in the reloc's section offset.
+
+ -- : BFD_RELOC_IA64_IMM14
+ -- : BFD_RELOC_IA64_IMM22
+ -- : BFD_RELOC_IA64_IMM64
+ -- : BFD_RELOC_IA64_DIR32MSB
+ -- : BFD_RELOC_IA64_DIR32LSB
+ -- : BFD_RELOC_IA64_DIR64MSB
+ -- : BFD_RELOC_IA64_DIR64LSB
+ -- : BFD_RELOC_IA64_GPREL22
+ -- : BFD_RELOC_IA64_GPREL64I
+ -- : BFD_RELOC_IA64_GPREL32MSB
+ -- : BFD_RELOC_IA64_GPREL32LSB
+ -- : BFD_RELOC_IA64_GPREL64MSB
+ -- : BFD_RELOC_IA64_GPREL64LSB
+ -- : BFD_RELOC_IA64_LTOFF22
+ -- : BFD_RELOC_IA64_LTOFF64I
+ -- : BFD_RELOC_IA64_PLTOFF22
+ -- : BFD_RELOC_IA64_PLTOFF64I
+ -- : BFD_RELOC_IA64_PLTOFF64MSB
+ -- : BFD_RELOC_IA64_PLTOFF64LSB
+ -- : BFD_RELOC_IA64_FPTR64I
+ -- : BFD_RELOC_IA64_FPTR32MSB
+ -- : BFD_RELOC_IA64_FPTR32LSB
+ -- : BFD_RELOC_IA64_FPTR64MSB
+ -- : BFD_RELOC_IA64_FPTR64LSB
+ -- : BFD_RELOC_IA64_PCREL21B
+ -- : BFD_RELOC_IA64_PCREL21BI
+ -- : BFD_RELOC_IA64_PCREL21M
+ -- : BFD_RELOC_IA64_PCREL21F
+ -- : BFD_RELOC_IA64_PCREL22
+ -- : BFD_RELOC_IA64_PCREL60B
+ -- : BFD_RELOC_IA64_PCREL64I
+ -- : BFD_RELOC_IA64_PCREL32MSB
+ -- : BFD_RELOC_IA64_PCREL32LSB
+ -- : BFD_RELOC_IA64_PCREL64MSB
+ -- : BFD_RELOC_IA64_PCREL64LSB
+ -- : BFD_RELOC_IA64_LTOFF_FPTR22
+ -- : BFD_RELOC_IA64_LTOFF_FPTR64I
+ -- : BFD_RELOC_IA64_LTOFF_FPTR32MSB
+ -- : BFD_RELOC_IA64_LTOFF_FPTR32LSB
+ -- : BFD_RELOC_IA64_LTOFF_FPTR64MSB
+ -- : BFD_RELOC_IA64_LTOFF_FPTR64LSB
+ -- : BFD_RELOC_IA64_SEGREL32MSB
+ -- : BFD_RELOC_IA64_SEGREL32LSB
+ -- : BFD_RELOC_IA64_SEGREL64MSB
+ -- : BFD_RELOC_IA64_SEGREL64LSB
+ -- : BFD_RELOC_IA64_SECREL32MSB
+ -- : BFD_RELOC_IA64_SECREL32LSB
+ -- : BFD_RELOC_IA64_SECREL64MSB
+ -- : BFD_RELOC_IA64_SECREL64LSB
+ -- : BFD_RELOC_IA64_REL32MSB
+ -- : BFD_RELOC_IA64_REL32LSB
+ -- : BFD_RELOC_IA64_REL64MSB
+ -- : BFD_RELOC_IA64_REL64LSB
+ -- : BFD_RELOC_IA64_LTV32MSB
+ -- : BFD_RELOC_IA64_LTV32LSB
+ -- : BFD_RELOC_IA64_LTV64MSB
+ -- : BFD_RELOC_IA64_LTV64LSB
+ -- : BFD_RELOC_IA64_IPLTMSB
+ -- : BFD_RELOC_IA64_IPLTLSB
+ -- : BFD_RELOC_IA64_COPY
+ -- : BFD_RELOC_IA64_LTOFF22X
+ -- : BFD_RELOC_IA64_LDXMOV
+ -- : BFD_RELOC_IA64_TPREL14
+ -- : BFD_RELOC_IA64_TPREL22
+ -- : BFD_RELOC_IA64_TPREL64I
+ -- : BFD_RELOC_IA64_TPREL64MSB
+ -- : BFD_RELOC_IA64_TPREL64LSB
+ -- : BFD_RELOC_IA64_LTOFF_TPREL22
+ -- : BFD_RELOC_IA64_DTPMOD64MSB
+ -- : BFD_RELOC_IA64_DTPMOD64LSB
+ -- : BFD_RELOC_IA64_LTOFF_DTPMOD22
+ -- : BFD_RELOC_IA64_DTPREL14
+ -- : BFD_RELOC_IA64_DTPREL22
+ -- : BFD_RELOC_IA64_DTPREL64I
+ -- : BFD_RELOC_IA64_DTPREL32MSB
+ -- : BFD_RELOC_IA64_DTPREL32LSB
+ -- : BFD_RELOC_IA64_DTPREL64MSB
+ -- : BFD_RELOC_IA64_DTPREL64LSB
+ -- : BFD_RELOC_IA64_LTOFF_DTPREL22
+     Intel IA64 Relocations.
+
+ -- : BFD_RELOC_M68HC11_HI8
+     Motorola 68HC11 reloc.  This is the 8 bit high part of an absolute
+     address.
+
+ -- : BFD_RELOC_M68HC11_LO8
+     Motorola 68HC11 reloc.  This is the 8 bit low part of an absolute
+     address.
+
+ -- : BFD_RELOC_M68HC11_3B
+     Motorola 68HC11 reloc.  This is the 3 bit of a value.
+
+ -- : BFD_RELOC_M68HC11_RL_JUMP
+     Motorola 68HC11 reloc.  This reloc marks the beginning of a
+     jump/call instruction.  It is used for linker relaxation to
+     correctly identify beginning of instruction and change some
+     branches to use PC-relative addressing mode.
+
+ -- : BFD_RELOC_M68HC11_RL_GROUP
+     Motorola 68HC11 reloc.  This reloc marks a group of several
+     instructions that gcc generates and for which the linker
+     relaxation pass can modify and/or remove some of them.
+
+ -- : BFD_RELOC_M68HC11_LO16
+     Motorola 68HC11 reloc.  This is the 16-bit lower part of an
+     address.  It is used for 'call' instruction to specify the symbol
+     address without any special transformation (due to memory bank
+     window).
+
+ -- : BFD_RELOC_M68HC11_PAGE
+     Motorola 68HC11 reloc.  This is a 8-bit reloc that specifies the
+     page number of an address.  It is used by 'call' instruction to
+     specify the page number of the symbol.
+
+ -- : BFD_RELOC_M68HC11_24
+     Motorola 68HC11 reloc.  This is a 24-bit reloc that represents the
+     address with a 16-bit value and a 8-bit page number.  The symbol
+     address is transformed to follow the 16K memory bank of 68HC12
+     (seen as mapped in the window).
+
+ -- : BFD_RELOC_M68HC12_5B
+     Motorola 68HC12 reloc.  This is the 5 bits of a value.
+
+ -- : BFD_RELOC_16C_NUM08
+ -- : BFD_RELOC_16C_NUM08_C
+ -- : BFD_RELOC_16C_NUM16
+ -- : BFD_RELOC_16C_NUM16_C
+ -- : BFD_RELOC_16C_NUM32
+ -- : BFD_RELOC_16C_NUM32_C
+ -- : BFD_RELOC_16C_DISP04
+ -- : BFD_RELOC_16C_DISP04_C
+ -- : BFD_RELOC_16C_DISP08
+ -- : BFD_RELOC_16C_DISP08_C
+ -- : BFD_RELOC_16C_DISP16
+ -- : BFD_RELOC_16C_DISP16_C
+ -- : BFD_RELOC_16C_DISP24
+ -- : BFD_RELOC_16C_DISP24_C
+ -- : BFD_RELOC_16C_DISP24a
+ -- : BFD_RELOC_16C_DISP24a_C
+ -- : BFD_RELOC_16C_REG04
+ -- : BFD_RELOC_16C_REG04_C
+ -- : BFD_RELOC_16C_REG04a
+ -- : BFD_RELOC_16C_REG04a_C
+ -- : BFD_RELOC_16C_REG14
+ -- : BFD_RELOC_16C_REG14_C
+ -- : BFD_RELOC_16C_REG16
+ -- : BFD_RELOC_16C_REG16_C
+ -- : BFD_RELOC_16C_REG20
+ -- : BFD_RELOC_16C_REG20_C
+ -- : BFD_RELOC_16C_ABS20
+ -- : BFD_RELOC_16C_ABS20_C
+ -- : BFD_RELOC_16C_ABS24
+ -- : BFD_RELOC_16C_ABS24_C
+ -- : BFD_RELOC_16C_IMM04
+ -- : BFD_RELOC_16C_IMM04_C
+ -- : BFD_RELOC_16C_IMM16
+ -- : BFD_RELOC_16C_IMM16_C
+ -- : BFD_RELOC_16C_IMM20
+ -- : BFD_RELOC_16C_IMM20_C
+ -- : BFD_RELOC_16C_IMM24
+ -- : BFD_RELOC_16C_IMM24_C
+ -- : BFD_RELOC_16C_IMM32
+ -- : BFD_RELOC_16C_IMM32_C
+     NS CR16C Relocations.
+
+ -- : BFD_RELOC_CRX_REL4
+ -- : BFD_RELOC_CRX_REL8
+ -- : BFD_RELOC_CRX_REL8_CMP
+ -- : BFD_RELOC_CRX_REL16
+ -- : BFD_RELOC_CRX_REL24
+ -- : BFD_RELOC_CRX_REL32
+ -- : BFD_RELOC_CRX_REGREL12
+ -- : BFD_RELOC_CRX_REGREL22
+ -- : BFD_RELOC_CRX_REGREL28
+ -- : BFD_RELOC_CRX_REGREL32
+ -- : BFD_RELOC_CRX_ABS16
+ -- : BFD_RELOC_CRX_ABS32
+ -- : BFD_RELOC_CRX_NUM8
+ -- : BFD_RELOC_CRX_NUM16
+ -- : BFD_RELOC_CRX_NUM32
+ -- : BFD_RELOC_CRX_IMM16
+ -- : BFD_RELOC_CRX_IMM32
+ -- : BFD_RELOC_CRX_SWITCH8
+ -- : BFD_RELOC_CRX_SWITCH16
+ -- : BFD_RELOC_CRX_SWITCH32
+     NS CRX Relocations.
+
+ -- : BFD_RELOC_CRIS_BDISP8
+ -- : BFD_RELOC_CRIS_UNSIGNED_5
+ -- : BFD_RELOC_CRIS_SIGNED_6
+ -- : BFD_RELOC_CRIS_UNSIGNED_6
+ -- : BFD_RELOC_CRIS_SIGNED_8
+ -- : BFD_RELOC_CRIS_UNSIGNED_8
+ -- : BFD_RELOC_CRIS_SIGNED_16
+ -- : BFD_RELOC_CRIS_UNSIGNED_16
+ -- : BFD_RELOC_CRIS_LAPCQ_OFFSET
+ -- : BFD_RELOC_CRIS_UNSIGNED_4
+     These relocs are only used within the CRIS assembler.  They are not
+     (at present) written to any object files.
+
+ -- : BFD_RELOC_CRIS_COPY
+ -- : BFD_RELOC_CRIS_GLOB_DAT
+ -- : BFD_RELOC_CRIS_JUMP_SLOT
+ -- : BFD_RELOC_CRIS_RELATIVE
+     Relocs used in ELF shared libraries for CRIS.
+
+ -- : BFD_RELOC_CRIS_32_GOT
+     32-bit offset to symbol-entry within GOT.
+
+ -- : BFD_RELOC_CRIS_16_GOT
+     16-bit offset to symbol-entry within GOT.
+
+ -- : BFD_RELOC_CRIS_32_GOTPLT
+     32-bit offset to symbol-entry within GOT, with PLT handling.
+
+ -- : BFD_RELOC_CRIS_16_GOTPLT
+     16-bit offset to symbol-entry within GOT, with PLT handling.
+
+ -- : BFD_RELOC_CRIS_32_GOTREL
+     32-bit offset to symbol, relative to GOT.
+
+ -- : BFD_RELOC_CRIS_32_PLT_GOTREL
+     32-bit offset to symbol with PLT entry, relative to GOT.
+
+ -- : BFD_RELOC_CRIS_32_PLT_PCREL
+     32-bit offset to symbol with PLT entry, relative to this
+     relocation.
+
+ -- : BFD_RELOC_860_COPY
+ -- : BFD_RELOC_860_GLOB_DAT
+ -- : BFD_RELOC_860_JUMP_SLOT
+ -- : BFD_RELOC_860_RELATIVE
+ -- : BFD_RELOC_860_PC26
+ -- : BFD_RELOC_860_PLT26
+ -- : BFD_RELOC_860_PC16
+ -- : BFD_RELOC_860_LOW0
+ -- : BFD_RELOC_860_SPLIT0
+ -- : BFD_RELOC_860_LOW1
+ -- : BFD_RELOC_860_SPLIT1
+ -- : BFD_RELOC_860_LOW2
+ -- : BFD_RELOC_860_SPLIT2
+ -- : BFD_RELOC_860_LOW3
+ -- : BFD_RELOC_860_LOGOT0
+ -- : BFD_RELOC_860_SPGOT0
+ -- : BFD_RELOC_860_LOGOT1
+ -- : BFD_RELOC_860_SPGOT1
+ -- : BFD_RELOC_860_LOGOTOFF0
+ -- : BFD_RELOC_860_SPGOTOFF0
+ -- : BFD_RELOC_860_LOGOTOFF1
+ -- : BFD_RELOC_860_SPGOTOFF1
+ -- : BFD_RELOC_860_LOGOTOFF2
+ -- : BFD_RELOC_860_LOGOTOFF3
+ -- : BFD_RELOC_860_LOPC
+ -- : BFD_RELOC_860_HIGHADJ
+ -- : BFD_RELOC_860_HAGOT
+ -- : BFD_RELOC_860_HAGOTOFF
+ -- : BFD_RELOC_860_HAPC
+ -- : BFD_RELOC_860_HIGH
+ -- : BFD_RELOC_860_HIGOT
+ -- : BFD_RELOC_860_HIGOTOFF
+     Intel i860 Relocations.
+
+ -- : BFD_RELOC_OPENRISC_ABS_26
+ -- : BFD_RELOC_OPENRISC_REL_26
+     OpenRISC Relocations.
+
+ -- : BFD_RELOC_H8_DIR16A8
+ -- : BFD_RELOC_H8_DIR16R8
+ -- : BFD_RELOC_H8_DIR24A8
+ -- : BFD_RELOC_H8_DIR24R8
+ -- : BFD_RELOC_H8_DIR32A16
+     H8 elf Relocations.
+
+ -- : BFD_RELOC_XSTORMY16_REL_12
+ -- : BFD_RELOC_XSTORMY16_12
+ -- : BFD_RELOC_XSTORMY16_24
+ -- : BFD_RELOC_XSTORMY16_FPTR16
+     Sony Xstormy16 Relocations.
+
+ -- : BFD_RELOC_VAX_GLOB_DAT
+ -- : BFD_RELOC_VAX_JMP_SLOT
+ -- : BFD_RELOC_VAX_RELATIVE
+     Relocations used by VAX ELF.
+
+ -- : BFD_RELOC_MSP430_10_PCREL
+ -- : BFD_RELOC_MSP430_16_PCREL
+ -- : BFD_RELOC_MSP430_16
+ -- : BFD_RELOC_MSP430_16_PCREL_BYTE
+ -- : BFD_RELOC_MSP430_16_BYTE
+ -- : BFD_RELOC_MSP430_2X_PCREL
+ -- : BFD_RELOC_MSP430_RL_PCREL
+     msp430 specific relocation codes
+
+ -- : BFD_RELOC_IQ2000_OFFSET_16
+ -- : BFD_RELOC_IQ2000_OFFSET_21
+ -- : BFD_RELOC_IQ2000_UHI16
+     IQ2000 Relocations.
+
+ -- : BFD_RELOC_XTENSA_RTLD
+     Special Xtensa relocation used only by PLT entries in ELF shared
+     objects to indicate that the runtime linker should set the value
+     to one of its own internal functions or data structures.
+
+ -- : BFD_RELOC_XTENSA_GLOB_DAT
+ -- : BFD_RELOC_XTENSA_JMP_SLOT
+ -- : BFD_RELOC_XTENSA_RELATIVE
+     Xtensa relocations for ELF shared objects.
+
+ -- : BFD_RELOC_XTENSA_PLT
+     Xtensa relocation used in ELF object files for symbols that may
+     require PLT entries.  Otherwise, this is just a generic 32-bit
+     relocation.
+
+ -- : BFD_RELOC_XTENSA_DIFF8
+ -- : BFD_RELOC_XTENSA_DIFF16
+ -- : BFD_RELOC_XTENSA_DIFF32
+     Xtensa relocations to mark the difference of two local symbols.
+     These are only needed to support linker relaxation and can be
+     ignored when not relaxing.  The field is set to the value of the
+     difference assuming no relaxation.  The relocation encodes the
+     position of the first symbol so the linker can determine whether
+     to adjust the field value.
+
+ -- : BFD_RELOC_XTENSA_SLOT0_OP
+ -- : BFD_RELOC_XTENSA_SLOT1_OP
+ -- : BFD_RELOC_XTENSA_SLOT2_OP
+ -- : BFD_RELOC_XTENSA_SLOT3_OP
+ -- : BFD_RELOC_XTENSA_SLOT4_OP
+ -- : BFD_RELOC_XTENSA_SLOT5_OP
+ -- : BFD_RELOC_XTENSA_SLOT6_OP
+ -- : BFD_RELOC_XTENSA_SLOT7_OP
+ -- : BFD_RELOC_XTENSA_SLOT8_OP
+ -- : BFD_RELOC_XTENSA_SLOT9_OP
+ -- : BFD_RELOC_XTENSA_SLOT10_OP
+ -- : BFD_RELOC_XTENSA_SLOT11_OP
+ -- : BFD_RELOC_XTENSA_SLOT12_OP
+ -- : BFD_RELOC_XTENSA_SLOT13_OP
+ -- : BFD_RELOC_XTENSA_SLOT14_OP
+     Generic Xtensa relocations for instruction operands.  Only the slot
+     number is encoded in the relocation.  The relocation applies to the
+     last PC-relative immediate operand, or if there are no PC-relative
+     immediates, to the last immediate operand.
+
+ -- : BFD_RELOC_XTENSA_SLOT0_ALT
+ -- : BFD_RELOC_XTENSA_SLOT1_ALT
+ -- : BFD_RELOC_XTENSA_SLOT2_ALT
+ -- : BFD_RELOC_XTENSA_SLOT3_ALT
+ -- : BFD_RELOC_XTENSA_SLOT4_ALT
+ -- : BFD_RELOC_XTENSA_SLOT5_ALT
+ -- : BFD_RELOC_XTENSA_SLOT6_ALT
+ -- : BFD_RELOC_XTENSA_SLOT7_ALT
+ -- : BFD_RELOC_XTENSA_SLOT8_ALT
+ -- : BFD_RELOC_XTENSA_SLOT9_ALT
+ -- : BFD_RELOC_XTENSA_SLOT10_ALT
+ -- : BFD_RELOC_XTENSA_SLOT11_ALT
+ -- : BFD_RELOC_XTENSA_SLOT12_ALT
+ -- : BFD_RELOC_XTENSA_SLOT13_ALT
+ -- : BFD_RELOC_XTENSA_SLOT14_ALT
+     Alternate Xtensa relocations.  Only the slot is encoded in the
+     relocation.  The meaning of these relocations is opcode-specific.
+
+ -- : BFD_RELOC_XTENSA_OP0
+ -- : BFD_RELOC_XTENSA_OP1
+ -- : BFD_RELOC_XTENSA_OP2
+     Xtensa relocations for backward compatibility.  These have all been
+     replaced by BFD_RELOC_XTENSA_SLOT0_OP.
+
+ -- : BFD_RELOC_XTENSA_ASM_EXPAND
+     Xtensa relocation to mark that the assembler expanded the
+     instructions from an original target.  The expansion size is
+     encoded in the reloc size.
+
+ -- : BFD_RELOC_XTENSA_ASM_SIMPLIFY
+     Xtensa relocation to mark that the linker should simplify
+     assembler-expanded instructions.  This is commonly used internally
+     by the linker after analysis of a BFD_RELOC_XTENSA_ASM_EXPAND.
+
+
+     typedef enum bfd_reloc_code_real bfd_reloc_code_real_type;
+
+2.11.0.2 `bfd_reloc_type_lookup'
+................................
+
+*Synopsis*
+     reloc_howto_type *bfd_reloc_type_lookup
+        (bfd *abfd, bfd_reloc_code_real_type code);
+   *Description*
+Return a pointer to a howto structure which, when invoked, will perform
+the relocation CODE on data from the architecture noted.
+
+2.11.0.3 `bfd_default_reloc_type_lookup'
+........................................
+
+*Synopsis*
+     reloc_howto_type *bfd_default_reloc_type_lookup
+        (bfd *abfd, bfd_reloc_code_real_type  code);
+   *Description*
+Provides a default relocation lookup routine for any architecture.
+
+2.11.0.4 `bfd_get_reloc_code_name'
+..................................
+
+*Synopsis*
+     const char *bfd_get_reloc_code_name (bfd_reloc_code_real_type code);
+   *Description*
+Provides a printable name for the supplied relocation code.  Useful
+mainly for printing error messages.
+
+2.11.0.5 `bfd_generic_relax_section'
+....................................
+
+*Synopsis*
+     bfd_boolean bfd_generic_relax_section
+        (bfd *abfd,
+         asection *section,
+         struct bfd_link_info *,
+         bfd_boolean *);
+   *Description*
+Provides default handling for relaxing for back ends which don't do
+relaxing.
+
+2.11.0.6 `bfd_generic_gc_sections'
+..................................
+
+*Synopsis*
+     bfd_boolean bfd_generic_gc_sections
+        (bfd *, struct bfd_link_info *);
+   *Description*
+Provides default handling for relaxing for back ends which don't do
+section gc - i.e., does nothing.
+
+2.11.0.7 `bfd_generic_merge_sections'
+.....................................
+
+*Synopsis*
+     bfd_boolean bfd_generic_merge_sections
+        (bfd *, struct bfd_link_info *);
+   *Description*
+Provides default handling for SEC_MERGE section merging for back ends
+which don't have SEC_MERGE support - i.e., does nothing.
+
+2.11.0.8 `bfd_generic_get_relocated_section_contents'
+.....................................................
+
+*Synopsis*
+     bfd_byte *bfd_generic_get_relocated_section_contents
+        (bfd *abfd,
+         struct bfd_link_info *link_info,
+         struct bfd_link_order *link_order,
+         bfd_byte *data,
+         bfd_boolean relocatable,
+         asymbol **symbols);
+   *Description*
+Provides default handling of relocation effort for back ends which
+can't be bothered to do it efficiently.
+
+
+File: bfd.info,  Node: Core Files,  Next: Targets,  Prev: Relocations,  Up: BFD front end
+
+2.12 Core files
+===============
+
+*Description*
+These are functions pertaining to core files.
+
+2.12.0.1 `bfd_core_file_failing_command'
+........................................
+
+*Synopsis*
+     const char *bfd_core_file_failing_command (bfd *abfd);
+   *Description*
+Return a read-only string explaining which program was running when it
+failed and produced the core file ABFD.
+
+2.12.0.2 `bfd_core_file_failing_signal'
+.......................................
+
+*Synopsis*
+     int bfd_core_file_failing_signal (bfd *abfd);
+   *Description*
+Returns the signal number which caused the core dump which generated
+the file the BFD ABFD is attached to.
+
+2.12.0.3 `core_file_matches_executable_p'
+.........................................
+
+*Synopsis*
+     bfd_boolean core_file_matches_executable_p
+        (bfd *core_bfd, bfd *exec_bfd);
+   *Description*
+Return `TRUE' if the core file attached to CORE_BFD was generated by a
+run of the executable file attached to EXEC_BFD, `FALSE' otherwise.
+
+
+File: bfd.info,  Node: Targets,  Next: Architectures,  Prev: Core Files,  Up: BFD front end
+
+2.13 Targets
+============
+
+*Description*
+Each port of BFD to a different machine requires the creation of a
+target back end. All the back end provides to the root part of BFD is a
+structure containing pointers to functions which perform certain low
+level operations on files. BFD translates the applications's requests
+through a pointer into calls to the back end routines.
+
+   When a file is opened with `bfd_openr', its format and target are
+unknown. BFD uses various mechanisms to determine how to interpret the
+file. The operations performed are:
+
+   * Create a BFD by calling the internal routine `_bfd_new_bfd', then
+     call `bfd_find_target' with the target string supplied to
+     `bfd_openr' and the new BFD pointer.
+
+   * If a null target string was provided to `bfd_find_target', look up
+     the environment variable `GNUTARGET' and use that as the target
+     string.
+
+   * If the target string is still `NULL', or the target string is
+     `default', then use the first item in the target vector as the
+     target type, and set `target_defaulted' in the BFD to cause
+     `bfd_check_format' to loop through all the targets.  *Note
+     bfd_target::.  *Note Formats::.
+
+   * Otherwise, inspect the elements in the target vector one by one,
+     until a match on target name is found. When found, use it.
+
+   * Otherwise return the error `bfd_error_invalid_target' to
+     `bfd_openr'.
+
+   * `bfd_openr' attempts to open the file using `bfd_open_file', and
+     returns the BFD.
+   Once the BFD has been opened and the target selected, the file
+format may be determined. This is done by calling `bfd_check_format' on
+the BFD with a suggested format.  If `target_defaulted' has been set,
+each possible target type is tried to see if it recognizes the
+specified format.  `bfd_check_format' returns `TRUE' when the caller
+guesses right.
+
+* Menu:
+
+* bfd_target::
+
+
+File: bfd.info,  Node: bfd_target,  Prev: Targets,  Up: Targets
+
+2.13.1 bfd_target
+-----------------
+
+*Description*
+This structure contains everything that BFD knows about a target. It
+includes things like its byte order, name, and which routines to call
+to do various operations.
+
+   Every BFD points to a target structure with its `xvec' member.
+
+   The macros below are used to dispatch to functions through the
+`bfd_target' vector. They are used in a number of macros further down
+in `bfd.h', and are also used when calling various routines by hand
+inside the BFD implementation.  The ARGLIST argument must be
+parenthesized; it contains all the arguments to the called function.
+
+   They make the documentation (more) unpleasant to read, so if someone
+wants to fix this and not break the above, please do.
+     #define BFD_SEND(bfd, message, arglist) \
+       ((*((bfd)->xvec->message)) arglist)
+
+     #ifdef DEBUG_BFD_SEND
+     #undef BFD_SEND
+     #define BFD_SEND(bfd, message, arglist) \
+       (((bfd) && (bfd)->xvec && (bfd)->xvec->message) ? \
+         ((*((bfd)->xvec->message)) arglist) : \
+         (bfd_assert (__FILE__,__LINE__), NULL))
+     #endif
+   For operations which index on the BFD format:
+     #define BFD_SEND_FMT(bfd, message, arglist) \
+       (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist)
+
+     #ifdef DEBUG_BFD_SEND
+     #undef BFD_SEND_FMT
+     #define BFD_SEND_FMT(bfd, message, arglist) \
+       (((bfd) && (bfd)->xvec && (bfd)->xvec->message) ? \
+        (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist) : \
+        (bfd_assert (__FILE__,__LINE__), NULL))
+     #endif
+   This is the structure which defines the type of BFD this is.  The
+`xvec' member of the struct `bfd' itself points here.  Each module that
+implements access to a different target under BFD, defines one of these.
+
+   FIXME, these names should be rationalised with the names of the
+entry points which call them. Too bad we can't have one macro to define
+them both!
+     enum bfd_flavour
+     {
+       bfd_target_unknown_flavour,
+       bfd_target_aout_flavour,
+       bfd_target_coff_flavour,
+       bfd_target_ecoff_flavour,
+       bfd_target_xcoff_flavour,
+       bfd_target_elf_flavour,
+       bfd_target_ieee_flavour,
+       bfd_target_nlm_flavour,
+       bfd_target_oasys_flavour,
+       bfd_target_tekhex_flavour,
+       bfd_target_srec_flavour,
+       bfd_target_ihex_flavour,
+       bfd_target_som_flavour,
+       bfd_target_os9k_flavour,
+       bfd_target_versados_flavour,
+       bfd_target_msdos_flavour,
+       bfd_target_ovax_flavour,
+       bfd_target_evax_flavour,
+       bfd_target_mmo_flavour,
+       bfd_target_mach_o_flavour,
+       bfd_target_pef_flavour,
+       bfd_target_pef_xlib_flavour,
+       bfd_target_sym_flavour
+     };
+
+     enum bfd_endian { BFD_ENDIAN_BIG, BFD_ENDIAN_LITTLE, BFD_ENDIAN_UNKNOWN };
+
+     /* Forward declaration.  */
+     typedef struct bfd_link_info _bfd_link_info;
+
+     typedef struct bfd_target
+     {
+       /* Identifies the kind of target, e.g., SunOS4, Ultrix, etc.  */
+       char *name;
+
+      /* The "flavour" of a back end is a general indication about
+         the contents of a file.  */
+       enum bfd_flavour flavour;
+
+       /* The order of bytes within the data area of a file.  */
+       enum bfd_endian byteorder;
+
+      /* The order of bytes within the header parts of a file.  */
+       enum bfd_endian header_byteorder;
+
+       /* A mask of all the flags which an executable may have set -
+          from the set `BFD_NO_FLAGS', `HAS_RELOC', ...`D_PAGED'.  */
+       flagword object_flags;
+
+      /* A mask of all the flags which a section may have set - from
+         the set `SEC_NO_FLAGS', `SEC_ALLOC', ...`SET_NEVER_LOAD'.  */
+       flagword section_flags;
+
+      /* The character normally found at the front of a symbol.
+         (if any), perhaps `_'.  */
+       char symbol_leading_char;
+
+      /* The pad character for file names within an archive header.  */
+       char ar_pad_char;
+
+       /* The maximum number of characters in an archive header.  */
+       unsigned short ar_max_namelen;
+
+       /* Entries for byte swapping for data. These are different from the
+          other entry points, since they don't take a BFD as the first argument.
+          Certain other handlers could do the same.  */
+       bfd_uint64_t   (*bfd_getx64) (const void *);
+       bfd_int64_t    (*bfd_getx_signed_64) (const void *);
+       void           (*bfd_putx64) (bfd_uint64_t, void *);
+       bfd_vma        (*bfd_getx32) (const void *);
+       bfd_signed_vma (*bfd_getx_signed_32) (const void *);
+       void           (*bfd_putx32) (bfd_vma, void *);
+       bfd_vma        (*bfd_getx16) (const void *);
+       bfd_signed_vma (*bfd_getx_signed_16) (const void *);
+       void           (*bfd_putx16) (bfd_vma, void *);
+
+       /* Byte swapping for the headers.  */
+       bfd_uint64_t   (*bfd_h_getx64) (const void *);
+       bfd_int64_t    (*bfd_h_getx_signed_64) (const void *);
+       void           (*bfd_h_putx64) (bfd_uint64_t, void *);
+       bfd_vma        (*bfd_h_getx32) (const void *);
+       bfd_signed_vma (*bfd_h_getx_signed_32) (const void *);
+       void           (*bfd_h_putx32) (bfd_vma, void *);
+       bfd_vma        (*bfd_h_getx16) (const void *);
+       bfd_signed_vma (*bfd_h_getx_signed_16) (const void *);
+       void           (*bfd_h_putx16) (bfd_vma, void *);
+
+       /* Format dependent routines: these are vectors of entry points
+          within the target vector structure, one for each format to check.  */
+
+       /* Check the format of a file being read.  Return a `bfd_target *' or zero.  */
+       const struct bfd_target *(*_bfd_check_format[bfd_type_end]) (bfd *);
+
+       /* Set the format of a file being written.  */
+       bfd_boolean (*_bfd_set_format[bfd_type_end]) (bfd *);
+
+       /* Write cached information into a file being written, at `bfd_close'.  */
+       bfd_boolean (*_bfd_write_contents[bfd_type_end]) (bfd *);
+   The general target vector.  These vectors are initialized using the
+BFD_JUMP_TABLE macros.
+
+       /* Generic entry points.  */
+     #define BFD_JUMP_TABLE_GENERIC(NAME) \
+       NAME##_close_and_cleanup, \
+       NAME##_bfd_free_cached_info, \
+       NAME##_new_section_hook, \
+       NAME##_get_section_contents, \
+       NAME##_get_section_contents_in_window
+
+       /* Called when the BFD is being closed to do any necessary cleanup.  */
+       bfd_boolean (*_close_and_cleanup) (bfd *);
+       /* Ask the BFD to free all cached information.  */
+       bfd_boolean (*_bfd_free_cached_info) (bfd *);
+       /* Called when a new section is created.  */
+       bfd_boolean (*_new_section_hook) (bfd *, sec_ptr);
+       /* Read the contents of a section.  */
+       bfd_boolean (*_bfd_get_section_contents)
+         (bfd *, sec_ptr, void *, file_ptr, bfd_size_type);
+       bfd_boolean (*_bfd_get_section_contents_in_window)
+         (bfd *, sec_ptr, bfd_window *, file_ptr, bfd_size_type);
+
+       /* Entry points to copy private data.  */
+     #define BFD_JUMP_TABLE_COPY(NAME) \
+       NAME##_bfd_copy_private_bfd_data, \
+       NAME##_bfd_merge_private_bfd_data, \
+       NAME##_bfd_copy_private_section_data, \
+       NAME##_bfd_copy_private_symbol_data, \
+       NAME##_bfd_copy_private_header_data, \
+       NAME##_bfd_set_private_flags, \
+       NAME##_bfd_print_private_bfd_data
+
+       /* Called to copy BFD general private data from one object file
+          to another.  */
+       bfd_boolean (*_bfd_copy_private_bfd_data) (bfd *, bfd *);
+       /* Called to merge BFD general private data from one object file
+          to a common output file when linking.  */
+       bfd_boolean (*_bfd_merge_private_bfd_data) (bfd *, bfd *);
+       /* Called to copy BFD private section data from one object file
+          to another.  */
+       bfd_boolean (*_bfd_copy_private_section_data)
+         (bfd *, sec_ptr, bfd *, sec_ptr);
+       /* Called to copy BFD private symbol data from one symbol
+          to another.  */
+       bfd_boolean (*_bfd_copy_private_symbol_data)
+         (bfd *, asymbol *, bfd *, asymbol *);
+       /* Called to copy BFD private header data from one object file
+          to another.  */
+       bfd_boolean (*_bfd_copy_private_header_data)
+         (bfd *, bfd *);
+       /* Called to set private backend flags.  */
+       bfd_boolean (*_bfd_set_private_flags) (bfd *, flagword);
+
+       /* Called to print private BFD data.  */
+       bfd_boolean (*_bfd_print_private_bfd_data) (bfd *, void *);
+
+       /* Core file entry points.  */
+     #define BFD_JUMP_TABLE_CORE(NAME) \
+       NAME##_core_file_failing_command, \
+       NAME##_core_file_failing_signal, \
+       NAME##_core_file_matches_executable_p
+
+       char *      (*_core_file_failing_command) (bfd *);
+       int         (*_core_file_failing_signal) (bfd *);
+       bfd_boolean (*_core_file_matches_executable_p) (bfd *, bfd *);
+
+       /* Archive entry points.  */
+     #define BFD_JUMP_TABLE_ARCHIVE(NAME) \
+       NAME##_slurp_armap, \
+       NAME##_slurp_extended_name_table, \
+       NAME##_construct_extended_name_table, \
+       NAME##_truncate_arname, \
+       NAME##_write_armap, \
+       NAME##_read_ar_hdr, \
+       NAME##_openr_next_archived_file, \
+       NAME##_get_elt_at_index, \
+       NAME##_generic_stat_arch_elt, \
+       NAME##_update_armap_timestamp
+
+       bfd_boolean (*_bfd_slurp_armap) (bfd *);
+       bfd_boolean (*_bfd_slurp_extended_name_table) (bfd *);
+       bfd_boolean (*_bfd_construct_extended_name_table)
+         (bfd *, char **, bfd_size_type *, const char **);
+       void        (*_bfd_truncate_arname) (bfd *, const char *, char *);
+       bfd_boolean (*write_armap)
+         (bfd *, unsigned int, struct orl *, unsigned int, int);
+       void *      (*_bfd_read_ar_hdr_fn) (bfd *);
+       bfd *       (*openr_next_archived_file) (bfd *, bfd *);
+     #define bfd_get_elt_at_index(b,i) BFD_SEND (b, _bfd_get_elt_at_index, (b,i))
+       bfd *       (*_bfd_get_elt_at_index) (bfd *, symindex);
+       int         (*_bfd_stat_arch_elt) (bfd *, struct stat *);
+       bfd_boolean (*_bfd_update_armap_timestamp) (bfd *);
+
+       /* Entry points used for symbols.  */
+     #define BFD_JUMP_TABLE_SYMBOLS(NAME) \
+       NAME##_get_symtab_upper_bound, \
+       NAME##_canonicalize_symtab, \
+       NAME##_make_empty_symbol, \
+       NAME##_print_symbol, \
+       NAME##_get_symbol_info, \
+       NAME##_bfd_is_local_label_name, \
+       NAME##_bfd_is_target_special_symbol, \
+       NAME##_get_lineno, \
+       NAME##_find_nearest_line, \
+       NAME##_bfd_make_debug_symbol, \
+       NAME##_read_minisymbols, \
+       NAME##_minisymbol_to_symbol
+
+       long        (*_bfd_get_symtab_upper_bound) (bfd *);
+       long        (*_bfd_canonicalize_symtab)
+         (bfd *, struct bfd_symbol **);
+       struct bfd_symbol *
+                   (*_bfd_make_empty_symbol) (bfd *);
+       void        (*_bfd_print_symbol)
+         (bfd *, void *, struct bfd_symbol *, bfd_print_symbol_type);
+     #define bfd_print_symbol(b,p,s,e) BFD_SEND (b, _bfd_print_symbol, (b,p,s,e))
+       void        (*_bfd_get_symbol_info)
+         (bfd *, struct bfd_symbol *, symbol_info *);
+     #define bfd_get_symbol_info(b,p,e) BFD_SEND (b, _bfd_get_symbol_info, (b,p,e))
+       bfd_boolean (*_bfd_is_local_label_name) (bfd *, const char *);
+       bfd_boolean (*_bfd_is_target_special_symbol) (bfd *, asymbol *);
+       alent *     (*_get_lineno) (bfd *, struct bfd_symbol *);
+       bfd_boolean (*_bfd_find_nearest_line)
+         (bfd *, struct bfd_section *, struct bfd_symbol **, bfd_vma,
+          const char **, const char **, unsigned int *);
+      /* Back-door to allow format-aware applications to create debug symbols
+         while using BFD for everything else.  Currently used by the assembler
+         when creating COFF files.  */
+       asymbol *   (*_bfd_make_debug_symbol)
+         (bfd *, void *, unsigned long size);
+     #define bfd_read_minisymbols(b, d, m, s) \
+       BFD_SEND (b, _read_minisymbols, (b, d, m, s))
+       long        (*_read_minisymbols)
+         (bfd *, bfd_boolean, void **, unsigned int *);
+     #define bfd_minisymbol_to_symbol(b, d, m, f) \
+       BFD_SEND (b, _minisymbol_to_symbol, (b, d, m, f))
+       asymbol *   (*_minisymbol_to_symbol)
+         (bfd *, bfd_boolean, const void *, asymbol *);
+
+       /* Routines for relocs.  */
+     #define BFD_JUMP_TABLE_RELOCS(NAME) \
+       NAME##_get_reloc_upper_bound, \
+       NAME##_canonicalize_reloc, \
+       NAME##_bfd_reloc_type_lookup
+
+       long        (*_get_reloc_upper_bound) (bfd *, sec_ptr);
+       long        (*_bfd_canonicalize_reloc)
+         (bfd *, sec_ptr, arelent **, struct bfd_symbol **);
+       /* See documentation on reloc types.  */
+       reloc_howto_type *
+                   (*reloc_type_lookup) (bfd *, bfd_reloc_code_real_type);
+
+       /* Routines used when writing an object file.  */
+     #define BFD_JUMP_TABLE_WRITE(NAME) \
+       NAME##_set_arch_mach, \
+       NAME##_set_section_contents
+
+       bfd_boolean (*_bfd_set_arch_mach)
+         (bfd *, enum bfd_architecture, unsigned long);
+       bfd_boolean (*_bfd_set_section_contents)
+         (bfd *, sec_ptr, const void *, file_ptr, bfd_size_type);
+
+       /* Routines used by the linker.  */
+     #define BFD_JUMP_TABLE_LINK(NAME) \
+       NAME##_sizeof_headers, \
+       NAME##_bfd_get_relocated_section_contents, \
+       NAME##_bfd_relax_section, \
+       NAME##_bfd_link_hash_table_create, \
+       NAME##_bfd_link_hash_table_free, \
+       NAME##_bfd_link_add_symbols, \
+       NAME##_bfd_link_just_syms, \
+       NAME##_bfd_final_link, \
+       NAME##_bfd_link_split_section, \
+       NAME##_bfd_gc_sections, \
+       NAME##_bfd_merge_sections, \
+       NAME##_bfd_is_group_section, \
+       NAME##_bfd_discard_group, \
+       NAME##_section_already_linked \
+
+       int         (*_bfd_sizeof_headers) (bfd *, bfd_boolean);
+       bfd_byte *  (*_bfd_get_relocated_section_contents)
+         (bfd *, struct bfd_link_info *, struct bfd_link_order *,
+          bfd_byte *, bfd_boolean, struct bfd_symbol **);
+
+       bfd_boolean (*_bfd_relax_section)
+         (bfd *, struct bfd_section *, struct bfd_link_info *, bfd_boolean *);
+
+       /* Create a hash table for the linker.  Different backends store
+          different information in this table.  */
+       struct bfd_link_hash_table *
+                   (*_bfd_link_hash_table_create) (bfd *);
+
+       /* Release the memory associated with the linker hash table.  */
+       void        (*_bfd_link_hash_table_free) (struct bfd_link_hash_table *);
+
+       /* Add symbols from this object file into the hash table.  */
+       bfd_boolean (*_bfd_link_add_symbols) (bfd *, struct bfd_link_info *);
+
+       /* Indicate that we are only retrieving symbol values from this section.  */
+       void        (*_bfd_link_just_syms) (asection *, struct bfd_link_info *);
+
+       /* Do a link based on the link_order structures attached to each
+          section of the BFD.  */
+       bfd_boolean (*_bfd_final_link) (bfd *, struct bfd_link_info *);
+
+       /* Should this section be split up into smaller pieces during linking.  */
+       bfd_boolean (*_bfd_link_split_section) (bfd *, struct bfd_section *);
+
+       /* Remove sections that are not referenced from the output.  */
+       bfd_boolean (*_bfd_gc_sections) (bfd *, struct bfd_link_info *);
+
+       /* Attempt to merge SEC_MERGE sections.  */
+       bfd_boolean (*_bfd_merge_sections) (bfd *, struct bfd_link_info *);
+
+       /* Is this section a member of a group?  */
+       bfd_boolean (*_bfd_is_group_section) (bfd *, const struct bfd_section *);
+
+       /* Discard members of a group.  */
+       bfd_boolean (*_bfd_discard_group) (bfd *, struct bfd_section *);
+
+       /* Check if SEC has been already linked during a reloceatable or
+          final link.  */
+       void (*_section_already_linked) (bfd *, struct bfd_section *);
+
+       /* Routines to handle dynamic symbols and relocs.  */
+     #define BFD_JUMP_TABLE_DYNAMIC(NAME) \
+       NAME##_get_dynamic_symtab_upper_bound, \
+       NAME##_canonicalize_dynamic_symtab, \
+       NAME##_get_synthetic_symtab, \
+       NAME##_get_dynamic_reloc_upper_bound, \
+       NAME##_canonicalize_dynamic_reloc
+
+       /* Get the amount of memory required to hold the dynamic symbols.  */
+       long        (*_bfd_get_dynamic_symtab_upper_bound) (bfd *);
+       /* Read in the dynamic symbols.  */
+       long        (*_bfd_canonicalize_dynamic_symtab)
+         (bfd *, struct bfd_symbol **);
+       /* Create synthetized symbols.  */
+       long        (*_bfd_get_synthetic_symtab)
+         (bfd *, long, struct bfd_symbol **, long, struct bfd_symbol **,
+          struct bfd_symbol **);
+       /* Get the amount of memory required to hold the dynamic relocs.  */
+       long        (*_bfd_get_dynamic_reloc_upper_bound) (bfd *);
+       /* Read in the dynamic relocs.  */
+       long        (*_bfd_canonicalize_dynamic_reloc)
+         (bfd *, arelent **, struct bfd_symbol **);
+   A pointer to an alternative bfd_target in case the current one is not
+satisfactory.  This can happen when the target cpu supports both big
+and little endian code, and target chosen by the linker has the wrong
+endianness.  The function open_output() in ld/ldlang.c uses this field
+to find an alternative output format that is suitable.
+       /* Opposite endian version of this target.  */
+       const struct bfd_target * alternative_target;
+
+       /* Data for use by back-end routines, which isn't
+          generic enough to belong in this structure.  */
+       const void *backend_data;
+
+     } bfd_target;
+
+2.13.1.1 `bfd_set_default_target'
+.................................
+
+*Synopsis*
+     bfd_boolean bfd_set_default_target (const char *name);
+   *Description*
+Set the default target vector to use when recognizing a BFD.  This
+takes the name of the target, which may be a BFD target name or a
+configuration triplet.
+
+2.13.1.2 `bfd_find_target'
+..........................
+
+*Synopsis*
+     const bfd_target *bfd_find_target (const char *target_name, bfd *abfd);
+   *Description*
+Return a pointer to the transfer vector for the object target named
+TARGET_NAME.  If TARGET_NAME is `NULL', choose the one in the
+environment variable `GNUTARGET'; if that is null or not defined, then
+choose the first entry in the target list.  Passing in the string
+"default" or setting the environment variable to "default" will cause
+the first entry in the target list to be returned, and
+"target_defaulted" will be set in the BFD.  This causes
+`bfd_check_format' to loop over all the targets to find the one that
+matches the file being read.
+
+2.13.1.3 `bfd_target_list'
+..........................
+
+*Synopsis*
+     const char ** bfd_target_list (void);
+   *Description*
+Return a freshly malloced NULL-terminated vector of the names of all
+the valid BFD targets. Do not modify the names.
+
+2.13.1.4 `bfd_seach_for_target'
+...............................
+
+*Synopsis*
+     const bfd_target *bfd_search_for_target
+        (int (*search_func) (const bfd_target *, void *),
+         void *);
+   *Description*
+Return a pointer to the first transfer vector in the list of transfer
+vectors maintained by BFD that produces a non-zero result when passed
+to the function SEARCH_FUNC.  The parameter DATA is passed, unexamined,
+to the search function.
+
+
+File: bfd.info,  Node: Architectures,  Next: Opening and Closing,  Prev: Targets,  Up: BFD front end
+
+2.14 Architectures
+==================
+
+BFD keeps one atom in a BFD describing the architecture of the data
+attached to the BFD: a pointer to a `bfd_arch_info_type'.
+
+   Pointers to structures can be requested independently of a BFD so
+that an architecture's information can be interrogated without access
+to an open BFD.
+
+   The architecture information is provided by each architecture
+package.  The set of default architectures is selected by the macro
+`SELECT_ARCHITECTURES'.  This is normally set up in the
+`config/TARGET.mt' file of your choice.  If the name is not defined,
+then all the architectures supported are included.
+
+   When BFD starts up, all the architectures are called with an
+initialize method.  It is up to the architecture back end to insert as
+many items into the list of architectures as it wants to; generally
+this would be one for each machine and one for the default case (an
+item with a machine field of 0).
+
+   BFD's idea of an architecture is implemented in `archures.c'.
+
+2.14.1 bfd_architecture
+-----------------------
+
+*Description*
+This enum gives the object file's CPU architecture, in a global
+sense--i.e., what processor family does it belong to?  Another field
+indicates which processor within the family is in use.  The machine
+gives a number which distinguishes different versions of the
+architecture, containing, for example, 2 and 3 for Intel i960 KA and
+i960 KB, and 68020 and 68030 for Motorola 68020 and 68030.
+     enum bfd_architecture
+     {
+       bfd_arch_unknown,   /* File arch not known.  */
+       bfd_arch_obscure,   /* Arch known, not one of these.  */
+       bfd_arch_m68k,      /* Motorola 68xxx */
+     #define bfd_mach_m68000 1
+     #define bfd_mach_m68008 2
+     #define bfd_mach_m68010 3
+     #define bfd_mach_m68020 4
+     #define bfd_mach_m68030 5
+     #define bfd_mach_m68040 6
+     #define bfd_mach_m68060 7
+     #define bfd_mach_cpu32  8
+     #define bfd_mach_mcf5200  9
+     #define bfd_mach_mcf5206e 10
+     #define bfd_mach_mcf5307  11
+     #define bfd_mach_mcf5407  12
+     #define bfd_mach_mcf528x  13
+     #define bfd_mach_mcfv4e   14
+     #define bfd_mach_mcf521x   15
+     #define bfd_mach_mcf5249   16
+     #define bfd_mach_mcf547x   17
+     #define bfd_mach_mcf548x   18
+       bfd_arch_vax,       /* DEC Vax */
+       bfd_arch_i960,      /* Intel 960 */
+         /* The order of the following is important.
+            lower number indicates a machine type that
+            only accepts a subset of the instructions
+            available to machines with higher numbers.
+            The exception is the "ca", which is
+            incompatible with all other machines except
+            "core".  */
+
+     #define bfd_mach_i960_core      1
+     #define bfd_mach_i960_ka_sa     2
+     #define bfd_mach_i960_kb_sb     3
+     #define bfd_mach_i960_mc        4
+     #define bfd_mach_i960_xa        5
+     #define bfd_mach_i960_ca        6
+     #define bfd_mach_i960_jx        7
+     #define bfd_mach_i960_hx        8
+
+       bfd_arch_or32,      /* OpenRISC 32 */
+
+       bfd_arch_a29k,      /* AMD 29000 */
+       bfd_arch_sparc,     /* SPARC */
+     #define bfd_mach_sparc                 1
+     /* The difference between v8plus and v9 is that v9 is a true 64 bit env.  */
+     #define bfd_mach_sparc_sparclet        2
+     #define bfd_mach_sparc_sparclite       3
+     #define bfd_mach_sparc_v8plus          4
+     #define bfd_mach_sparc_v8plusa         5 /* with ultrasparc add'ns.  */
+     #define bfd_mach_sparc_sparclite_le    6
+     #define bfd_mach_sparc_v9              7
+     #define bfd_mach_sparc_v9a             8 /* with ultrasparc add'ns.  */
+     #define bfd_mach_sparc_v8plusb         9 /* with cheetah add'ns.  */
+     #define bfd_mach_sparc_v9b             10 /* with cheetah add'ns.  */
+     /* Nonzero if MACH has the v9 instruction set.  */
+     #define bfd_mach_sparc_v9_p(mach) \
+       ((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9b \
+        && (mach) != bfd_mach_sparc_sparclite_le)
+     /* Nonzero if MACH is a 64 bit sparc architecture.  */
+     #define bfd_mach_sparc_64bit_p(mach) \
+       ((mach) >= bfd_mach_sparc_v9 && (mach) != bfd_mach_sparc_v8plusb)
+       bfd_arch_mips,      /* MIPS Rxxxx */
+     #define bfd_mach_mips3000              3000
+     #define bfd_mach_mips3900              3900
+     #define bfd_mach_mips4000              4000
+     #define bfd_mach_mips4010              4010
+     #define bfd_mach_mips4100              4100
+     #define bfd_mach_mips4111              4111
+     #define bfd_mach_mips4120              4120
+     #define bfd_mach_mips4300              4300
+     #define bfd_mach_mips4400              4400
+     #define bfd_mach_mips4600              4600
+     #define bfd_mach_mips4650              4650
+     #define bfd_mach_mips5000              5000
+     #define bfd_mach_mips5400              5400
+     #define bfd_mach_mips5500              5500
+     #define bfd_mach_mips6000              6000
+     #define bfd_mach_mips7000              7000
+     #define bfd_mach_mips8000              8000
+     #define bfd_mach_mips9000              9000
+     #define bfd_mach_mips10000             10000
+     #define bfd_mach_mips12000             12000
+     #define bfd_mach_mips16                16
+     #define bfd_mach_mips5                 5
+     #define bfd_mach_mips_sb1              12310201 /* octal 'SB', 01 */
+     #define bfd_mach_mipsisa32             32
+     #define bfd_mach_mipsisa32r2           33
+     #define bfd_mach_mipsisa64             64
+     #define bfd_mach_mipsisa64r2           65
+       bfd_arch_i386,      /* Intel 386 */
+     #define bfd_mach_i386_i386 1
+     #define bfd_mach_i386_i8086 2
+     #define bfd_mach_i386_i386_intel_syntax 3
+     #define bfd_mach_x86_64 64
+     #define bfd_mach_x86_64_intel_syntax 65
+       bfd_arch_we32k,     /* AT&T WE32xxx */
+       bfd_arch_tahoe,     /* CCI/Harris Tahoe */
+       bfd_arch_i860,      /* Intel 860 */
+       bfd_arch_i370,      /* IBM 360/370 Mainframes */
+       bfd_arch_romp,      /* IBM ROMP PC/RT */
+       bfd_arch_alliant,   /* Alliant */
+       bfd_arch_convex,    /* Convex */
+       bfd_arch_m88k,      /* Motorola 88xxx */
+       bfd_arch_m98k,      /* Motorola 98xxx */
+       bfd_arch_pyramid,   /* Pyramid Technology */
+       bfd_arch_h8300,     /* Renesas H8/300 (formerly Hitachi H8/300) */
+     #define bfd_mach_h8300    1
+     #define bfd_mach_h8300h   2
+     #define bfd_mach_h8300s   3
+     #define bfd_mach_h8300hn  4
+     #define bfd_mach_h8300sn  5
+     #define bfd_mach_h8300sx  6
+     #define bfd_mach_h8300sxn 7
+       bfd_arch_pdp11,     /* DEC PDP-11 */
+       bfd_arch_powerpc,   /* PowerPC */
+     #define bfd_mach_ppc           32
+     #define bfd_mach_ppc64         64
+     #define bfd_mach_ppc_403       403
+     #define bfd_mach_ppc_403gc     4030
+     #define bfd_mach_ppc_505       505
+     #define bfd_mach_ppc_601       601
+     #define bfd_mach_ppc_602       602
+     #define bfd_mach_ppc_603       603
+     #define bfd_mach_ppc_ec603e    6031
+     #define bfd_mach_ppc_604       604
+     #define bfd_mach_ppc_620       620
+     #define bfd_mach_ppc_630       630
+     #define bfd_mach_ppc_750       750
+     #define bfd_mach_ppc_860       860
+     #define bfd_mach_ppc_a35       35
+     #define bfd_mach_ppc_rs64ii    642
+     #define bfd_mach_ppc_rs64iii   643
+     #define bfd_mach_ppc_7400      7400
+     #define bfd_mach_ppc_e500      500
+       bfd_arch_rs6000,    /* IBM RS/6000 */
+     #define bfd_mach_rs6k          6000
+     #define bfd_mach_rs6k_rs1      6001
+     #define bfd_mach_rs6k_rsc      6003
+     #define bfd_mach_rs6k_rs2      6002
+       bfd_arch_hppa,      /* HP PA RISC */
+     #define bfd_mach_hppa10        10
+     #define bfd_mach_hppa11        11
+     #define bfd_mach_hppa20        20
+     #define bfd_mach_hppa20w       25
+       bfd_arch_d10v,      /* Mitsubishi D10V */
+     #define bfd_mach_d10v          1
+     #define bfd_mach_d10v_ts2      2
+     #define bfd_mach_d10v_ts3      3
+       bfd_arch_d30v,      /* Mitsubishi D30V */
+       bfd_arch_dlx,       /* DLX */
+       bfd_arch_m68hc11,   /* Motorola 68HC11 */
+       bfd_arch_m68hc12,   /* Motorola 68HC12 */
+     #define bfd_mach_m6812_default 0
+     #define bfd_mach_m6812         1
+     #define bfd_mach_m6812s        2
+       bfd_arch_z8k,       /* Zilog Z8000 */
+     #define bfd_mach_z8001         1
+     #define bfd_mach_z8002         2
+       bfd_arch_h8500,     /* Renesas H8/500 (formerly Hitachi H8/500) */
+       bfd_arch_sh,        /* Renesas / SuperH SH (formerly Hitachi SH) */
+     #define bfd_mach_sh            1
+     #define bfd_mach_sh2        0x20
+     #define bfd_mach_sh_dsp     0x2d
+     #define bfd_mach_sh2a       0x2a
+     #define bfd_mach_sh2a_nofpu 0x2b
+     #define bfd_mach_sh2a_nofpu_or_sh4_nommu_nofpu 0x2a1
+     #define bfd_mach_sh2a_nofpu_or_sh3_nommu 0x2a2
+     #define bfd_mach_sh2a_or_sh4  0x2a3
+     #define bfd_mach_sh2a_or_sh3e 0x2a4
+     #define bfd_mach_sh2e       0x2e
+     #define bfd_mach_sh3        0x30
+     #define bfd_mach_sh3_nommu  0x31
+     #define bfd_mach_sh3_dsp    0x3d
+     #define bfd_mach_sh3e       0x3e
+     #define bfd_mach_sh4        0x40
+     #define bfd_mach_sh4_nofpu  0x41
+     #define bfd_mach_sh4_nommu_nofpu  0x42
+     #define bfd_mach_sh4a       0x4a
+     #define bfd_mach_sh4a_nofpu 0x4b
+     #define bfd_mach_sh4al_dsp  0x4d
+     #define bfd_mach_sh5        0x50
+       bfd_arch_alpha,     /* Dec Alpha */
+     #define bfd_mach_alpha_ev4  0x10
+     #define bfd_mach_alpha_ev5  0x20
+     #define bfd_mach_alpha_ev6  0x30
+       bfd_arch_arm,       /* Advanced Risc Machines ARM.  */
+     #define bfd_mach_arm_unknown   0
+     #define bfd_mach_arm_2         1
+     #define bfd_mach_arm_2a        2
+     #define bfd_mach_arm_3         3
+     #define bfd_mach_arm_3M        4
+     #define bfd_mach_arm_4         5
+     #define bfd_mach_arm_4T        6
+     #define bfd_mach_arm_5         7
+     #define bfd_mach_arm_5T        8
+     #define bfd_mach_arm_5TE       9
+     #define bfd_mach_arm_XScale    10
+     #define bfd_mach_arm_ep9312    11
+     #define bfd_mach_arm_iWMMXt    12
+       bfd_arch_ns32k,     /* National Semiconductors ns32000 */
+       bfd_arch_w65,       /* WDC 65816 */
+       bfd_arch_tic30,     /* Texas Instruments TMS320C30 */
+       bfd_arch_tic4x,     /* Texas Instruments TMS320C3X/4X */
+     #define bfd_mach_tic3x         30
+     #define bfd_mach_tic4x         40
+       bfd_arch_tic54x,    /* Texas Instruments TMS320C54X */
+       bfd_arch_tic80,     /* TI TMS320c80 (MVP) */
+       bfd_arch_v850,      /* NEC V850 */
+     #define bfd_mach_v850          1
+     #define bfd_mach_v850e         'E'
+     #define bfd_mach_v850e1        '1'
+       bfd_arch_arc,       /* ARC Cores */
+     #define bfd_mach_arc_5         5
+     #define bfd_mach_arc_6         6
+     #define bfd_mach_arc_7         7
+     #define bfd_mach_arc_8         8
+       bfd_arch_m32r,      /* Renesas M32R (formerly Mitsubishi M32R/D) */
+     #define bfd_mach_m32r          1 /* For backwards compatibility.  */
+     #define bfd_mach_m32rx         'x'
+     #define bfd_mach_m32r2         '2'
+       bfd_arch_mn10200,   /* Matsushita MN10200 */
+       bfd_arch_mn10300,   /* Matsushita MN10300 */
+     #define bfd_mach_mn10300               300
+     #define bfd_mach_am33          330
+     #define bfd_mach_am33_2        332
+       bfd_arch_fr30,
+     #define bfd_mach_fr30          0x46523330
+       bfd_arch_frv,
+     #define bfd_mach_frv           1
+     #define bfd_mach_frvsimple     2
+     #define bfd_mach_fr300         300
+     #define bfd_mach_fr400         400
+     #define bfd_mach_fr450         450
+     #define bfd_mach_frvtomcat     499     /* fr500 prototype */
+     #define bfd_mach_fr500         500
+     #define bfd_mach_fr550         550
+       bfd_arch_mcore,
+       bfd_arch_ia64,      /* HP/Intel ia64 */
+     #define bfd_mach_ia64_elf64    64
+     #define bfd_mach_ia64_elf32    32
+       bfd_arch_ip2k,      /* Ubicom IP2K microcontrollers. */
+     #define bfd_mach_ip2022        1
+     #define bfd_mach_ip2022ext     2
+      bfd_arch_iq2000,     /* Vitesse IQ2000.  */
+     #define bfd_mach_iq2000        1
+     #define bfd_mach_iq10          2
+       bfd_arch_pj,
+       bfd_arch_avr,       /* Atmel AVR microcontrollers.  */
+     #define bfd_mach_avr1          1
+     #define bfd_mach_avr2          2
+     #define bfd_mach_avr3          3
+     #define bfd_mach_avr4          4
+     #define bfd_mach_avr5          5
+       bfd_arch_cr16c,       /* National Semiconductor CompactRISC. */
+     #define bfd_mach_cr16c         1
+       bfd_arch_crx,       /*  National Semiconductor CRX.  */
+     #define bfd_mach_crx           1
+       bfd_arch_cris,      /* Axis CRIS */
+     #define bfd_mach_cris_v0_v10   255
+     #define bfd_mach_cris_v32      32
+     #define bfd_mach_cris_v10_v32  1032
+       bfd_arch_s390,      /* IBM s390 */
+     #define bfd_mach_s390_31       31
+     #define bfd_mach_s390_64       64
+       bfd_arch_openrisc,  /* OpenRISC */
+       bfd_arch_mmix,      /* Donald Knuth's educational processor.  */
+       bfd_arch_xstormy16,
+     #define bfd_mach_xstormy16     1
+       bfd_arch_msp430,    /* Texas Instruments MSP430 architecture.  */
+     #define bfd_mach_msp11          11
+     #define bfd_mach_msp110         110
+     #define bfd_mach_msp12          12
+     #define bfd_mach_msp13          13
+     #define bfd_mach_msp14          14
+     #define bfd_mach_msp15          15
+     #define bfd_mach_msp16          16
+     #define bfd_mach_msp31          31
+     #define bfd_mach_msp32          32
+     #define bfd_mach_msp33          33
+     #define bfd_mach_msp41          41
+     #define bfd_mach_msp42          42
+     #define bfd_mach_msp43          43
+     #define bfd_mach_msp44          44
+       bfd_arch_xtensa,    /* Tensilica's Xtensa cores.  */
+     #define bfd_mach_xtensa        1
+        bfd_arch_maxq,     /* Dallas MAXQ 10/20 */
+     #define bfd_mach_maxq10    10
+     #define bfd_mach_maxq20    20
+       bfd_arch_last
+       };
+
+2.14.2 bfd_arch_info
+--------------------
+
+*Description*
+This structure contains information on architectures for use within BFD.
+
+     typedef struct bfd_arch_info
+     {
+       int bits_per_word;
+       int bits_per_address;
+       int bits_per_byte;
+       enum bfd_architecture arch;
+       unsigned long mach;
+       const char *arch_name;
+       const char *printable_name;
+       unsigned int section_align_power;
+       /* TRUE if this is the default machine for the architecture.
+          The default arch should be the first entry for an arch so that
+          all the entries for that arch can be accessed via `next'.  */
+       bfd_boolean the_default;
+       const struct bfd_arch_info * (*compatible)
+         (const struct bfd_arch_info *a, const struct bfd_arch_info *b);
+
+       bfd_boolean (*scan) (const struct bfd_arch_info *, const char *);
+
+       const struct bfd_arch_info *next;
+     }
+     bfd_arch_info_type;
+
+2.14.2.1 `bfd_printable_name'
+.............................
+
+*Synopsis*
+     const char *bfd_printable_name (bfd *abfd);
+   *Description*
+Return a printable string representing the architecture and machine
+from the pointer to the architecture info structure.
+
+2.14.2.2 `bfd_scan_arch'
+........................
+
+*Synopsis*
+     const bfd_arch_info_type *bfd_scan_arch (const char *string);
+   *Description*
+Figure out if BFD supports any cpu which could be described with the
+name STRING.  Return a pointer to an `arch_info' structure if a machine
+is found, otherwise NULL.
+
+2.14.2.3 `bfd_arch_list'
+........................
+
+*Synopsis*
+     const char **bfd_arch_list (void);
+   *Description*
+Return a freshly malloced NULL-terminated vector of the names of all
+the valid BFD architectures.  Do not modify the names.
+
+2.14.2.4 `bfd_arch_get_compatible'
+..................................
+
+*Synopsis*
+     const bfd_arch_info_type *bfd_arch_get_compatible
+        (const bfd *abfd, const bfd *bbfd, bfd_boolean accept_unknowns);
+   *Description*
+Determine whether two BFDs' architectures and machine types are
+compatible.  Calculates the lowest common denominator between the two
+architectures and machine types implied by the BFDs and returns a
+pointer to an `arch_info' structure describing the compatible machine.
+
+2.14.2.5 `bfd_default_arch_struct'
+..................................
+
+*Description*
+The `bfd_default_arch_struct' is an item of `bfd_arch_info_type' which
+has been initialized to a fairly generic state.  A BFD starts life by
+pointing to this structure, until the correct back end has determined
+the real architecture of the file.
+     extern const bfd_arch_info_type bfd_default_arch_struct;
+
+2.14.2.6 `bfd_set_arch_info'
+............................
+
+*Synopsis*
+     void bfd_set_arch_info (bfd *abfd, const bfd_arch_info_type *arg);
+   *Description*
+Set the architecture info of ABFD to ARG.
+
+2.14.2.7 `bfd_default_set_arch_mach'
+....................................
+
+*Synopsis*
+     bfd_boolean bfd_default_set_arch_mach
+        (bfd *abfd, enum bfd_architecture arch, unsigned long mach);
+   *Description*
+Set the architecture and machine type in BFD ABFD to ARCH and MACH.
+Find the correct pointer to a structure and insert it into the
+`arch_info' pointer.
+
+2.14.2.8 `bfd_get_arch'
+.......................
+
+*Synopsis*
+     enum bfd_architecture bfd_get_arch (bfd *abfd);
+   *Description*
+Return the enumerated type which describes the BFD ABFD's architecture.
+
+2.14.2.9 `bfd_get_mach'
+.......................
+
+*Synopsis*
+     unsigned long bfd_get_mach (bfd *abfd);
+   *Description*
+Return the long type which describes the BFD ABFD's machine.
+
+2.14.2.10 `bfd_arch_bits_per_byte'
+..................................
+
+*Synopsis*
+     unsigned int bfd_arch_bits_per_byte (bfd *abfd);
+   *Description*
+Return the number of bits in one of the BFD ABFD's architecture's bytes.
+
+2.14.2.11 `bfd_arch_bits_per_address'
+.....................................
+
+*Synopsis*
+     unsigned int bfd_arch_bits_per_address (bfd *abfd);
+   *Description*
+Return the number of bits in one of the BFD ABFD's architecture's
+addresses.
+
+2.14.2.12 `bfd_default_compatible'
+..................................
+
+*Synopsis*
+     const bfd_arch_info_type *bfd_default_compatible
+        (const bfd_arch_info_type *a, const bfd_arch_info_type *b);
+   *Description*
+The default function for testing for compatibility.
+
+2.14.2.13 `bfd_default_scan'
+............................
+
+*Synopsis*
+     bfd_boolean bfd_default_scan
+        (const struct bfd_arch_info *info, const char *string);
+   *Description*
+The default function for working out whether this is an architecture
+hit and a machine hit.
+
+2.14.2.14 `bfd_get_arch_info'
+.............................
+
+*Synopsis*
+     const bfd_arch_info_type *bfd_get_arch_info (bfd *abfd);
+   *Description*
+Return the architecture info struct in ABFD.
+
+2.14.2.15 `bfd_lookup_arch'
+...........................
+
+*Synopsis*
+     const bfd_arch_info_type *bfd_lookup_arch
+        (enum bfd_architecture arch, unsigned long machine);
+   *Description*
+Look for the architecture info structure which matches the arguments
+ARCH and MACHINE. A machine of 0 matches the machine/architecture
+structure which marks itself as the default.
+
+2.14.2.16 `bfd_printable_arch_mach'
+...................................
+
+*Synopsis*
+     const char *bfd_printable_arch_mach
+        (enum bfd_architecture arch, unsigned long machine);
+   *Description*
+Return a printable string representing the architecture and machine
+type.
+
+   This routine is depreciated.
+
+2.14.2.17 `bfd_octets_per_byte'
+...............................
+
+*Synopsis*
+     unsigned int bfd_octets_per_byte (bfd *abfd);
+   *Description*
+Return the number of octets (8-bit quantities) per target byte (minimum
+addressable unit).  In most cases, this will be one, but some DSP
+targets have 16, 32, or even 48 bits per byte.
+
+2.14.2.18 `bfd_arch_mach_octets_per_byte'
+.........................................
+
+*Synopsis*
+     unsigned int bfd_arch_mach_octets_per_byte
+        (enum bfd_architecture arch, unsigned long machine);
+   *Description*
+See bfd_octets_per_byte.
+
+   This routine is provided for those cases where a bfd * is not
+available
+
+
+File: bfd.info,  Node: Opening and Closing,  Next: Internal,  Prev: Architectures,  Up: BFD front end
+
+2.15 Opening and closing BFDs
+=============================
+
+2.15.0.1 `bfd_openr'
+....................
+
+*Synopsis*
+     bfd *bfd_openr (const char *filename, const char *target);
+   *Description*
+Open the file FILENAME (using `fopen') with the target TARGET.  Return
+a pointer to the created BFD.
+
+   Calls `bfd_find_target', so TARGET is interpreted as by that
+function.
+
+   If `NULL' is returned then an error has occured.   Possible errors
+are `bfd_error_no_memory', `bfd_error_invalid_target' or `system_call'
+error.
+
+2.15.0.2 `bfd_fdopenr'
+......................
+
+*Synopsis*
+     bfd *bfd_fdopenr (const char *filename, const char *target, int fd);
+   *Description*
+`bfd_fdopenr' is to `bfd_fopenr' much like `fdopen' is to `fopen'.  It
+opens a BFD on a file already described by the FD supplied.
+
+   When the file is later `bfd_close'd, the file descriptor will be
+closed.  If the caller desires that this file descriptor be cached by
+BFD (opened as needed, closed as needed to free descriptors for other
+opens), with the supplied FD used as an initial file descriptor (but
+subject to closure at any time), call bfd_set_cacheable(bfd, 1) on the
+returned BFD.  The default is to assume no caching; the file descriptor
+will remain open until `bfd_close', and will not be affected by BFD
+operations on other files.
+
+   Possible errors are `bfd_error_no_memory',
+`bfd_error_invalid_target' and `bfd_error_system_call'.
+
+2.15.0.3 `bfd_openstreamr'
+..........................
+
+*Synopsis*
+     bfd *bfd_openstreamr (const char *, const char *, void *);
+   *Description*
+Open a BFD for read access on an existing stdio stream.  When the BFD
+is passed to `bfd_close', the stream will be closed.
+
+2.15.0.4 `bfd_openr_iovec'
+..........................
+
+*Synopsis*
+     bfd *bfd_openr_iovec (const char *filename, const char *target,
+         void *(*open) (struct bfd *nbfd,
+         void *open_closure),
+         void *open_closure,
+         file_ptr (*pread) (struct bfd *nbfd,
+         void *stream,
+         void *buf,
+         file_ptr nbytes,
+         file_ptr offset),
+         int (*close) (struct bfd *nbfd,
+         void *stream));
+   *Description*
+Create and return a BFD backed by a read-only STREAM.  The STREAM is
+created using OPEN, accessed using PREAD and destroyed using CLOSE.
+
+   Calls `bfd_find_target', so TARGET is interpreted as by that
+function.
+
+   Calls OPEN (which can call `bfd_zalloc' and `bfd_get_filename') to
+obtain the read-only stream backing the BFD.  OPEN either succeeds
+returning the non-`NULL' STREAM, or fails returning `NULL' (setting
+`bfd_error').
+
+   Calls PREAD to request NBYTES of data from STREAM starting at OFFSET
+(e.g., via a call to `bfd_read').  PREAD either succeeds returning the
+number of bytes read (which can be less than NBYTES when end-of-file),
+or fails returning -1 (setting `bfd_error').
+
+   Calls CLOSE when the BFD is later closed using `bfd_close'.  CLOSE
+either succeeds returning 0, or fails returning -1 (setting
+`bfd_error').
+
+   If `bfd_openr_iovec' returns `NULL' then an error has occurred.
+Possible errors are `bfd_error_no_memory', `bfd_error_invalid_target'
+and `bfd_error_system_call'.
+
+2.15.0.5 `bfd_openw'
+....................
+
+*Synopsis*
+     bfd *bfd_openw (const char *filename, const char *target);
+   *Description*
+Create a BFD, associated with file FILENAME, using the file format
+TARGET, and return a pointer to it.
+
+   Possible errors are `bfd_error_system_call', `bfd_error_no_memory',
+`bfd_error_invalid_target'.
+
+2.15.0.6 `bfd_close'
+....................
+
+*Synopsis*
+     bfd_boolean bfd_close (bfd *abfd);
+   *Description*
+Close a BFD. If the BFD was open for writing, then pending operations
+are completed and the file written out and closed.  If the created file
+is executable, then `chmod' is called to mark it as such.
+
+   All memory attached to the BFD is released.
+
+   The file descriptor associated with the BFD is closed (even if it
+was passed in to BFD by `bfd_fdopenr').
+
+   *Returns*
+`TRUE' is returned if all is ok, otherwise `FALSE'.
+
+2.15.0.7 `bfd_close_all_done'
+.............................
+
+*Synopsis*
+     bfd_boolean bfd_close_all_done (bfd *);
+   *Description*
+Close a BFD.  Differs from `bfd_close' since it does not complete any
+pending operations.  This routine would be used if the application had
+just used BFD for swapping and didn't want to use any of the writing
+code.
+
+   If the created file is executable, then `chmod' is called to mark it
+as such.
+
+   All memory attached to the BFD is released.
+
+   *Returns*
+`TRUE' is returned if all is ok, otherwise `FALSE'.
+
+2.15.0.8 `bfd_create'
+.....................
+
+*Synopsis*
+     bfd *bfd_create (const char *filename, bfd *templ);
+   *Description*
+Create a new BFD in the manner of `bfd_openw', but without opening a
+file. The new BFD takes the target from the target used by TEMPLATE.
+The format is always set to `bfd_object'.
+
+2.15.0.9 `bfd_make_writable'
+............................
+
+*Synopsis*
+     bfd_boolean bfd_make_writable (bfd *abfd);
+   *Description*
+Takes a BFD as created by `bfd_create' and converts it into one like as
+returned by `bfd_openw'.  It does this by converting the BFD to
+BFD_IN_MEMORY.  It's assumed that you will call `bfd_make_readable' on
+this bfd later.
+
+   *Returns*
+`TRUE' is returned if all is ok, otherwise `FALSE'.
+
+2.15.0.10 `bfd_make_readable'
+.............................
+
+*Synopsis*
+     bfd_boolean bfd_make_readable (bfd *abfd);
+   *Description*
+Takes a BFD as created by `bfd_create' and `bfd_make_writable' and
+converts it into one like as returned by `bfd_openr'.  It does this by
+writing the contents out to the memory buffer, then reversing the
+direction.
+
+   *Returns*
+`TRUE' is returned if all is ok, otherwise `FALSE'.
+
+2.15.0.11 `bfd_alloc'
+.....................
+
+*Synopsis*
+     void *bfd_alloc (bfd *abfd, bfd_size_type wanted);
+   *Description*
+Allocate a block of WANTED bytes of memory attached to `abfd' and
+return a pointer to it.
+
+2.15.0.12 `bfd_zalloc'
+......................
+
+*Synopsis*
+     void *bfd_zalloc (bfd *abfd, bfd_size_type wanted);
+   *Description*
+Allocate a block of WANTED bytes of zeroed memory attached to `abfd'
+and return a pointer to it.
+
+2.15.0.13 `bfd_calc_gnu_debuglink_crc32'
+........................................
+
+*Synopsis*
+     unsigned long bfd_calc_gnu_debuglink_crc32
+        (unsigned long crc, const unsigned char *buf, bfd_size_type len);
+   *Description*
+Computes a CRC value as used in the .gnu_debuglink section.  Advances
+the previously computed CRC value by computing and adding in the crc32
+for LEN bytes of BUF.
+
+   *Returns*
+Return the updated CRC32 value.
+
+2.15.0.14 `get_debug_link_info'
+...............................
+
+*Synopsis*
+     char *get_debug_link_info (bfd *abfd, unsigned long *crc32_out);
+   *Description*
+fetch the filename and CRC32 value for any separate debuginfo
+associated with ABFD. Return NULL if no such info found, otherwise
+return filename and update CRC32_OUT.
+
+2.15.0.15 `separate_debug_file_exists'
+......................................
+
+*Synopsis*
+     bfd_boolean separate_debug_file_exists
+        (char *name, unsigned long crc32);
+   *Description*
+Checks to see if NAME is a file and if its contents match CRC32.
+
+2.15.0.16 `find_separate_debug_file'
+....................................
+
+*Synopsis*
+     char *find_separate_debug_file (bfd *abfd);
+   *Description*
+Searches ABFD for a reference to separate debugging information, scans
+various locations in the filesystem, including the file tree rooted at
+DEBUG_FILE_DIRECTORY, and returns a filename of such debugging
+information if the file is found and has matching CRC32.  Returns NULL
+if no reference to debugging file exists, or file cannot be found.
+
+2.15.0.17 `bfd_follow_gnu_debuglink'
+....................................
+
+*Synopsis*
+     char *bfd_follow_gnu_debuglink (bfd *abfd, const char *dir);
+   *Description*
+Takes a BFD and searches it for a .gnu_debuglink section.  If this
+section is found, it examines the section for the name and checksum of
+a '.debug' file containing auxiliary debugging information.  It then
+searches the filesystem for this .debug file in some standard
+locations, including the directory tree rooted at DIR, and if found
+returns the full filename.
+
+   If DIR is NULL, it will search a default path configured into libbfd
+at build time.  [XXX this feature is not currently implemented].
+
+   *Returns*
+`NULL' on any errors or failure to locate the .debug file, otherwise a
+pointer to a heap-allocated string containing the filename.  The caller
+is responsible for freeing this string.
+
+2.15.0.18 `bfd_create_gnu_debuglink_section'
+............................................
+
+*Synopsis*
+     struct bfd_section *bfd_create_gnu_debuglink_section
+        (bfd *abfd, const char *filename);
+   *Description*
+Takes a BFD and adds a .gnu_debuglink section to it.  The section is
+sized to be big enough to contain a link to the specified FILENAME.
+
+   *Returns*
+A pointer to the new section is returned if all is ok.  Otherwise
+`NULL' is returned and bfd_error is set.
+
+2.15.0.19 `bfd_fill_in_gnu_debuglink_section'
+.............................................
+
+*Synopsis*
+     bfd_boolean bfd_fill_in_gnu_debuglink_section
+        (bfd *abfd, struct bfd_section *sect, const char *filename);
+   *Description*
+Takes a BFD and containing a .gnu_debuglink section SECT and fills in
+the contents of the section to contain a link to the specified
+FILENAME.  The filename should be relative to the current directory.
+
+   *Returns*
+`TRUE' is returned if all is ok.  Otherwise `FALSE' is returned and
+bfd_error is set.
+
+
+File: bfd.info,  Node: Internal,  Next: File Caching,  Prev: Opening and Closing,  Up: BFD front end
+
+2.16 Internal functions
+=======================
+
+*Description*
+These routines are used within BFD.  They are not intended for export,
+but are documented here for completeness.
+
+2.16.0.1 `bfd_write_bigendian_4byte_int'
+........................................
+
+*Synopsis*
+     bfd_boolean bfd_write_bigendian_4byte_int (bfd *, unsigned int);
+   *Description*
+Write a 4 byte integer I to the output BFD ABFD, in big endian order
+regardless of what else is going on.  This is useful in archives.
+
+2.16.0.2 `bfd_put_size'
+.......................
+
+2.16.0.3 `bfd_get_size'
+.......................
+
+*Description*
+These macros as used for reading and writing raw data in sections; each
+access (except for bytes) is vectored through the target format of the
+BFD and mangled accordingly. The mangling performs any necessary endian
+translations and removes alignment restrictions.  Note that types
+accepted and returned by these macros are identical so they can be
+swapped around in macros--for example, `libaout.h' defines `GET_WORD'
+to either `bfd_get_32' or `bfd_get_64'.
+
+   In the put routines, VAL must be a `bfd_vma'.  If we are on a system
+without prototypes, the caller is responsible for making sure that is
+true, with a cast if necessary.  We don't cast them in the macro
+definitions because that would prevent `lint' or `gcc -Wall' from
+detecting sins such as passing a pointer.  To detect calling these with
+less than a `bfd_vma', use `gcc -Wconversion' on a host with 64 bit
+`bfd_vma''s.
+
+     /* Byte swapping macros for user section data.  */
+
+     #define bfd_put_8(abfd, val, ptr) \
+       ((void) (*((unsigned char *) (ptr)) = (val) & 0xff))
+     #define bfd_put_signed_8 \
+       bfd_put_8
+     #define bfd_get_8(abfd, ptr) \
+       (*(unsigned char *) (ptr) & 0xff)
+     #define bfd_get_signed_8(abfd, ptr) \
+       (((*(unsigned char *) (ptr) & 0xff) ^ 0x80) - 0x80)
+
+     #define bfd_put_16(abfd, val, ptr) \
+       BFD_SEND (abfd, bfd_putx16, ((val),(ptr)))
+     #define bfd_put_signed_16 \
+       bfd_put_16
+     #define bfd_get_16(abfd, ptr) \
+       BFD_SEND (abfd, bfd_getx16, (ptr))
+     #define bfd_get_signed_16(abfd, ptr) \
+       BFD_SEND (abfd, bfd_getx_signed_16, (ptr))
+
+     #define bfd_put_32(abfd, val, ptr) \
+       BFD_SEND (abfd, bfd_putx32, ((val),(ptr)))
+     #define bfd_put_signed_32 \
+       bfd_put_32
+     #define bfd_get_32(abfd, ptr) \
+       BFD_SEND (abfd, bfd_getx32, (ptr))
+     #define bfd_get_signed_32(abfd, ptr) \
+       BFD_SEND (abfd, bfd_getx_signed_32, (ptr))
+
+     #define bfd_put_64(abfd, val, ptr) \
+       BFD_SEND (abfd, bfd_putx64, ((val), (ptr)))
+     #define bfd_put_signed_64 \
+       bfd_put_64
+     #define bfd_get_64(abfd, ptr) \
+       BFD_SEND (abfd, bfd_getx64, (ptr))
+     #define bfd_get_signed_64(abfd, ptr) \
+       BFD_SEND (abfd, bfd_getx_signed_64, (ptr))
+
+     #define bfd_get(bits, abfd, ptr)                       \
+       ((bits) == 8 ? (bfd_vma) bfd_get_8 (abfd, ptr)       \
+        : (bits) == 16 ? bfd_get_16 (abfd, ptr)             \
+        : (bits) == 32 ? bfd_get_32 (abfd, ptr)             \
+        : (bits) == 64 ? bfd_get_64 (abfd, ptr)             \
+        : (abort (), (bfd_vma) - 1))
+
+     #define bfd_put(bits, abfd, val, ptr)                  \
+       ((bits) == 8 ? bfd_put_8  (abfd, val, ptr)           \
+        : (bits) == 16 ? bfd_put_16 (abfd, val, ptr)                \
+        : (bits) == 32 ? bfd_put_32 (abfd, val, ptr)                \
+        : (bits) == 64 ? bfd_put_64 (abfd, val, ptr)                \
+        : (abort (), (void) 0))
+
+2.16.0.4 `bfd_h_put_size'
+.........................
+
+*Description*
+These macros have the same function as their `bfd_get_x' brethren,
+except that they are used for removing information for the header
+records of object files. Believe it or not, some object files keep
+their header records in big endian order and their data in little
+endian order.
+
+     /* Byte swapping macros for file header data.  */
+
+     #define bfd_h_put_8(abfd, val, ptr) \
+       bfd_put_8 (abfd, val, ptr)
+     #define bfd_h_put_signed_8(abfd, val, ptr) \
+       bfd_put_8 (abfd, val, ptr)
+     #define bfd_h_get_8(abfd, ptr) \
+       bfd_get_8 (abfd, ptr)
+     #define bfd_h_get_signed_8(abfd, ptr) \
+       bfd_get_signed_8 (abfd, ptr)
+
+     #define bfd_h_put_16(abfd, val, ptr) \
+       BFD_SEND (abfd, bfd_h_putx16, (val, ptr))
+     #define bfd_h_put_signed_16 \
+       bfd_h_put_16
+     #define bfd_h_get_16(abfd, ptr) \
+       BFD_SEND (abfd, bfd_h_getx16, (ptr))
+     #define bfd_h_get_signed_16(abfd, ptr) \
+       BFD_SEND (abfd, bfd_h_getx_signed_16, (ptr))
+
+     #define bfd_h_put_32(abfd, val, ptr) \
+       BFD_SEND (abfd, bfd_h_putx32, (val, ptr))
+     #define bfd_h_put_signed_32 \
+       bfd_h_put_32
+     #define bfd_h_get_32(abfd, ptr) \
+       BFD_SEND (abfd, bfd_h_getx32, (ptr))
+     #define bfd_h_get_signed_32(abfd, ptr) \
+       BFD_SEND (abfd, bfd_h_getx_signed_32, (ptr))
+
+     #define bfd_h_put_64(abfd, val, ptr) \
+       BFD_SEND (abfd, bfd_h_putx64, (val, ptr))
+     #define bfd_h_put_signed_64 \
+       bfd_h_put_64
+     #define bfd_h_get_64(abfd, ptr) \
+       BFD_SEND (abfd, bfd_h_getx64, (ptr))
+     #define bfd_h_get_signed_64(abfd, ptr) \
+       BFD_SEND (abfd, bfd_h_getx_signed_64, (ptr))
+
+     /* Aliases for the above, which should eventually go away.  */
+
+     #define H_PUT_64  bfd_h_put_64
+     #define H_PUT_32  bfd_h_put_32
+     #define H_PUT_16  bfd_h_put_16
+     #define H_PUT_8   bfd_h_put_8
+     #define H_PUT_S64 bfd_h_put_signed_64
+     #define H_PUT_S32 bfd_h_put_signed_32
+     #define H_PUT_S16 bfd_h_put_signed_16
+     #define H_PUT_S8  bfd_h_put_signed_8
+     #define H_GET_64  bfd_h_get_64
+     #define H_GET_32  bfd_h_get_32
+     #define H_GET_16  bfd_h_get_16
+     #define H_GET_8   bfd_h_get_8
+     #define H_GET_S64 bfd_h_get_signed_64
+     #define H_GET_S32 bfd_h_get_signed_32
+     #define H_GET_S16 bfd_h_get_signed_16
+     #define H_GET_S8  bfd_h_get_signed_8
+
+2.16.0.5 `bfd_log2'
+...................
+
+*Synopsis*
+     unsigned int bfd_log2 (bfd_vma x);
+   *Description*
+Return the log base 2 of the value supplied, rounded up.  E.g., an X of
+1025 returns 11.  A X of 0 returns 0.
+
+
+File: bfd.info,  Node: File Caching,  Next: Linker Functions,  Prev: Internal,  Up: BFD front end
+
+2.17 File caching
+=================
+
+The file caching mechanism is embedded within BFD and allows the
+application to open as many BFDs as it wants without regard to the
+underlying operating system's file descriptor limit (often as low as 20
+open files).  The module in `cache.c' maintains a least recently used
+list of `BFD_CACHE_MAX_OPEN' files, and exports the name
+`bfd_cache_lookup', which runs around and makes sure that the required
+BFD is open. If not, then it chooses a file to close, closes it and
+opens the one wanted, returning its file handle.
+
+2.17.0.1 `BFD_CACHE_MAX_OPEN macro'
+...................................
+
+*Description*
+The maximum number of files which the cache will keep open at one time.
+     #define BFD_CACHE_MAX_OPEN 10
+
+2.17.0.2 `bfd_last_cache'
+.........................
+
+*Synopsis*
+     extern bfd *bfd_last_cache;
+   *Description*
+Zero, or a pointer to the topmost BFD on the chain.  This is used by
+the `bfd_cache_lookup' macro in `libbfd.h' to determine when it can
+avoid a function call.
+
+2.17.0.3 `bfd_cache_lookup'
+...........................
+
+*Description*
+Check to see if the required BFD is the same as the last one looked up.
+If so, then it can use the stream in the BFD with impunity, since it
+can't have changed since the last lookup; otherwise, it has to perform
+the complicated lookup function.
+     #define bfd_cache_lookup(x) \
+         ((x) == bfd_last_cache ? \
+           (FILE *) (bfd_last_cache->iostream): \
+            bfd_cache_lookup_worker (x))
+
+2.17.0.4 `bfd_cache_init'
+.........................
+
+*Synopsis*
+     bfd_boolean bfd_cache_init (bfd *abfd);
+   *Description*
+Add a newly opened BFD to the cache.
+
+2.17.0.5 `bfd_cache_close'
+..........................
+
+*Synopsis*
+     bfd_boolean bfd_cache_close (bfd *abfd);
+   *Description*
+Remove the BFD ABFD from the cache. If the attached file is open, then
+close it too.
+
+   *Returns*
+`FALSE' is returned if closing the file fails, `TRUE' is returned if
+all is well.
+
+2.17.0.6 `bfd_cache_close_all'
+..............................
+
+*Synopsis*
+     bfd_boolean bfd_cache_close_all (void);
+   *Description*
+Remove all BFDs from the cache. If the attached file is open, then
+close it too.
+
+   *Returns*
+`FALSE' is returned if closing one of the file fails, `TRUE' is
+returned if all is well.
+
+2.17.0.7 `bfd_open_file'
+........................
+
+*Synopsis*
+     FILE* bfd_open_file (bfd *abfd);
+   *Description*
+Call the OS to open a file for ABFD.  Return the `FILE *' (possibly
+`NULL') that results from this operation.  Set up the BFD so that
+future accesses know the file is open. If the `FILE *' returned is
+`NULL', then it won't have been put in the cache, so it won't have to
+be removed from it.
+
+2.17.0.8 `bfd_cache_lookup_worker'
+..................................
+
+*Synopsis*
+     FILE *bfd_cache_lookup_worker (bfd *abfd);
+   *Description*
+Called when the macro `bfd_cache_lookup' fails to find a quick answer.
+Find a file descriptor for ABFD.  If necessary, it open it.  If there
+are already more than `BFD_CACHE_MAX_OPEN' files open, it tries to
+close one first, to avoid running out of file descriptors.  It will
+abort rather than returning NULL if it is unable to (re)open the ABFD.
+
+
+File: bfd.info,  Node: Linker Functions,  Next: Hash Tables,  Prev: File Caching,  Up: BFD front end
+
+2.18 Linker Functions
+=====================
+
+The linker uses three special entry points in the BFD target vector.
+It is not necessary to write special routines for these entry points
+when creating a new BFD back end, since generic versions are provided.
+However, writing them can speed up linking and make it use
+significantly less runtime memory.
+
+   The first routine creates a hash table used by the other routines.
+The second routine adds the symbols from an object file to the hash
+table.  The third routine takes all the object files and links them
+together to create the output file.  These routines are designed so
+that the linker proper does not need to know anything about the symbols
+in the object files that it is linking.  The linker merely arranges the
+sections as directed by the linker script and lets BFD handle the
+details of symbols and relocs.
+
+   The second routine and third routines are passed a pointer to a
+`struct bfd_link_info' structure (defined in `bfdlink.h') which holds
+information relevant to the link, including the linker hash table
+(which was created by the first routine) and a set of callback
+functions to the linker proper.
+
+   The generic linker routines are in `linker.c', and use the header
+file `genlink.h'.  As of this writing, the only back ends which have
+implemented versions of these routines are a.out (in `aoutx.h') and
+ECOFF (in `ecoff.c').  The a.out routines are used as examples
+throughout this section.
+
+* Menu:
+
+* Creating a Linker Hash Table::
+* Adding Symbols to the Hash Table::
+* Performing the Final Link::
+
+
+File: bfd.info,  Node: Creating a Linker Hash Table,  Next: Adding Symbols to the Hash Table,  Prev: Linker Functions,  Up: Linker Functions
+
+2.18.1 Creating a linker hash table
+-----------------------------------
+
+The linker routines must create a hash table, which must be derived
+from `struct bfd_link_hash_table' described in `bfdlink.c'.  *Note Hash
+Tables::, for information on how to create a derived hash table.  This
+entry point is called using the target vector of the linker output file.
+
+   The `_bfd_link_hash_table_create' entry point must allocate and
+initialize an instance of the desired hash table.  If the back end does
+not require any additional information to be stored with the entries in
+the hash table, the entry point may simply create a `struct
+bfd_link_hash_table'.  Most likely, however, some additional
+information will be needed.
+
+   For example, with each entry in the hash table the a.out linker
+keeps the index the symbol has in the final output file (this index
+number is used so that when doing a relocatable link the symbol index
+used in the output file can be quickly filled in when copying over a
+reloc).  The a.out linker code defines the required structures and
+functions for a hash table derived from `struct bfd_link_hash_table'.
+The a.out linker hash table is created by the function
+`NAME(aout,link_hash_table_create)'; it simply allocates space for the
+hash table, initializes it, and returns a pointer to it.
+
+   When writing the linker routines for a new back end, you will
+generally not know exactly which fields will be required until you have
+finished.  You should simply create a new hash table which defines no
+additional fields, and then simply add fields as they become necessary.
+
+
+File: bfd.info,  Node: Adding Symbols to the Hash Table,  Next: Performing the Final Link,  Prev: Creating a Linker Hash Table,  Up: Linker Functions
+
+2.18.2 Adding symbols to the hash table
+---------------------------------------
+
+The linker proper will call the `_bfd_link_add_symbols' entry point for
+each object file or archive which is to be linked (typically these are
+the files named on the command line, but some may also come from the
+linker script).  The entry point is responsible for examining the file.
+For an object file, BFD must add any relevant symbol information to
+the hash table.  For an archive, BFD must determine which elements of
+the archive should be used and adding them to the link.
+
+   The a.out version of this entry point is
+`NAME(aout,link_add_symbols)'.
+
+* Menu:
+
+* Differing file formats::
+* Adding symbols from an object file::
+* Adding symbols from an archive::
+
+
+File: bfd.info,  Node: Differing file formats,  Next: Adding symbols from an object file,  Prev: Adding Symbols to the Hash Table,  Up: Adding Symbols to the Hash Table
+
+2.18.2.1 Differing file formats
+...............................
+
+Normally all the files involved in a link will be of the same format,
+but it is also possible to link together different format object files,
+and the back end must support that.  The `_bfd_link_add_symbols' entry
+point is called via the target vector of the file to be added.  This
+has an important consequence: the function may not assume that the hash
+table is the type created by the corresponding
+`_bfd_link_hash_table_create' vector.  All the `_bfd_link_add_symbols'
+function can assume about the hash table is that it is derived from
+`struct bfd_link_hash_table'.
+
+   Sometimes the `_bfd_link_add_symbols' function must store some
+information in the hash table entry to be used by the `_bfd_final_link'
+function.  In such a case the `creator' field of the hash table must be
+checked to make sure that the hash table was created by an object file
+of the same format.
+
+   The `_bfd_final_link' routine must be prepared to handle a hash
+entry without any extra information added by the
+`_bfd_link_add_symbols' function.  A hash entry without extra
+information will also occur when the linker script directs the linker
+to create a symbol.  Note that, regardless of how a hash table entry is
+added, all the fields will be initialized to some sort of null value by
+the hash table entry initialization function.
+
+   See `ecoff_link_add_externals' for an example of how to check the
+`creator' field before saving information (in this case, the ECOFF
+external symbol debugging information) in a hash table entry.
+
+
+File: bfd.info,  Node: Adding symbols from an object file,  Next: Adding symbols from an archive,  Prev: Differing file formats,  Up: Adding Symbols to the Hash Table
+
+2.18.2.2 Adding symbols from an object file
+...........................................
+
+When the `_bfd_link_add_symbols' routine is passed an object file, it
+must add all externally visible symbols in that object file to the hash
+table.  The actual work of adding the symbol to the hash table is
+normally handled by the function `_bfd_generic_link_add_one_symbol'.
+The `_bfd_link_add_symbols' routine is responsible for reading all the
+symbols from the object file and passing the correct information to
+`_bfd_generic_link_add_one_symbol'.
+
+   The `_bfd_link_add_symbols' routine should not use
+`bfd_canonicalize_symtab' to read the symbols.  The point of providing
+this routine is to avoid the overhead of converting the symbols into
+generic `asymbol' structures.
+
+   `_bfd_generic_link_add_one_symbol' handles the details of combining
+common symbols, warning about multiple definitions, and so forth.  It
+takes arguments which describe the symbol to add, notably symbol flags,
+a section, and an offset.  The symbol flags include such things as
+`BSF_WEAK' or `BSF_INDIRECT'.  The section is a section in the object
+file, or something like `bfd_und_section_ptr' for an undefined symbol
+or `bfd_com_section_ptr' for a common symbol.
+
+   If the `_bfd_final_link' routine is also going to need to read the
+symbol information, the `_bfd_link_add_symbols' routine should save it
+somewhere attached to the object file BFD.  However, the information
+should only be saved if the `keep_memory' field of the `info' argument
+is TRUE, so that the `-no-keep-memory' linker switch is effective.
+
+   The a.out function which adds symbols from an object file is
+`aout_link_add_object_symbols', and most of the interesting work is in
+`aout_link_add_symbols'.  The latter saves pointers to the hash tables
+entries created by `_bfd_generic_link_add_one_symbol' indexed by symbol
+number, so that the `_bfd_final_link' routine does not have to call the
+hash table lookup routine to locate the entry.
+
+
+File: bfd.info,  Node: Adding symbols from an archive,  Prev: Adding symbols from an object file,  Up: Adding Symbols to the Hash Table
+
+2.18.2.3 Adding symbols from an archive
+.......................................
+
+When the `_bfd_link_add_symbols' routine is passed an archive, it must
+look through the symbols defined by the archive and decide which
+elements of the archive should be included in the link.  For each such
+element it must call the `add_archive_element' linker callback, and it
+must add the symbols from the object file to the linker hash table.
+
+   In most cases the work of looking through the symbols in the archive
+should be done by the `_bfd_generic_link_add_archive_symbols' function.
+This function builds a hash table from the archive symbol table and
+looks through the list of undefined symbols to see which elements
+should be included.  `_bfd_generic_link_add_archive_symbols' is passed
+a function to call to make the final decision about adding an archive
+element to the link and to do the actual work of adding the symbols to
+the linker hash table.
+
+   The function passed to `_bfd_generic_link_add_archive_symbols' must
+read the symbols of the archive element and decide whether the archive
+element should be included in the link.  If the element is to be
+included, the `add_archive_element' linker callback routine must be
+called with the element as an argument, and the elements symbols must
+be added to the linker hash table just as though the element had itself
+been passed to the `_bfd_link_add_symbols' function.
+
+   When the a.out `_bfd_link_add_symbols' function receives an archive,
+it calls `_bfd_generic_link_add_archive_symbols' passing
+`aout_link_check_archive_element' as the function argument.
+`aout_link_check_archive_element' calls `aout_link_check_ar_symbols'.
+If the latter decides to add the element (an element is only added if
+it provides a real, non-common, definition for a previously undefined
+or common symbol) it calls the `add_archive_element' callback and then
+`aout_link_check_archive_element' calls `aout_link_add_symbols' to
+actually add the symbols to the linker hash table.
+
+   The ECOFF back end is unusual in that it does not normally call
+`_bfd_generic_link_add_archive_symbols', because ECOFF archives already
+contain a hash table of symbols.  The ECOFF back end searches the
+archive itself to avoid the overhead of creating a new hash table.
+
+
+File: bfd.info,  Node: Performing the Final Link,  Prev: Adding Symbols to the Hash Table,  Up: Linker Functions
+
+2.18.3 Performing the final link
+--------------------------------
+
+When all the input files have been processed, the linker calls the
+`_bfd_final_link' entry point of the output BFD.  This routine is
+responsible for producing the final output file, which has several
+aspects.  It must relocate the contents of the input sections and copy
+the data into the output sections.  It must build an output symbol
+table including any local symbols from the input files and the global
+symbols from the hash table.  When producing relocatable output, it must
+modify the input relocs and write them into the output file.  There may
+also be object format dependent work to be done.
+
+   The linker will also call the `write_object_contents' entry point
+when the BFD is closed.  The two entry points must work together in
+order to produce the correct output file.
+
+   The details of how this works are inevitably dependent upon the
+specific object file format.  The a.out `_bfd_final_link' routine is
+`NAME(aout,final_link)'.
+
+* Menu:
+
+* Information provided by the linker::
+* Relocating the section contents::
+* Writing the symbol table::
+
+
+File: bfd.info,  Node: Information provided by the linker,  Next: Relocating the section contents,  Prev: Performing the Final Link,  Up: Performing the Final Link
+
+2.18.3.1 Information provided by the linker
+...........................................
+
+Before the linker calls the `_bfd_final_link' entry point, it sets up
+some data structures for the function to use.
+
+   The `input_bfds' field of the `bfd_link_info' structure will point
+to a list of all the input files included in the link.  These files are
+linked through the `link_next' field of the `bfd' structure.
+
+   Each section in the output file will have a list of `link_order'
+structures attached to the `link_order_head' field (the `link_order'
+structure is defined in `bfdlink.h').  These structures describe how to
+create the contents of the output section in terms of the contents of
+various input sections, fill constants, and, eventually, other types of
+information.  They also describe relocs that must be created by the BFD
+backend, but do not correspond to any input file; this is used to
+support -Ur, which builds constructors while generating a relocatable
+object file.
+
+
+File: bfd.info,  Node: Relocating the section contents,  Next: Writing the symbol table,  Prev: Information provided by the linker,  Up: Performing the Final Link
+
+2.18.3.2 Relocating the section contents
+........................................
+
+The `_bfd_final_link' function should look through the `link_order'
+structures attached to each section of the output file.  Each
+`link_order' structure should either be handled specially, or it should
+be passed to the function `_bfd_default_link_order' which will do the
+right thing (`_bfd_default_link_order' is defined in `linker.c').
+
+   For efficiency, a `link_order' of type `bfd_indirect_link_order'
+whose associated section belongs to a BFD of the same format as the
+output BFD must be handled specially.  This type of `link_order'
+describes part of an output section in terms of a section belonging to
+one of the input files.  The `_bfd_final_link' function should read the
+contents of the section and any associated relocs, apply the relocs to
+the section contents, and write out the modified section contents.  If
+performing a relocatable link, the relocs themselves must also be
+modified and written out.
+
+   The functions `_bfd_relocate_contents' and
+`_bfd_final_link_relocate' provide some general support for performing
+the actual relocations, notably overflow checking.  Their arguments
+include information about the symbol the relocation is against and a
+`reloc_howto_type' argument which describes the relocation to perform.
+These functions are defined in `reloc.c'.
+
+   The a.out function which handles reading, relocating, and writing
+section contents is `aout_link_input_section'.  The actual relocation
+is done in `aout_link_input_section_std' and
+`aout_link_input_section_ext'.
+
+
+File: bfd.info,  Node: Writing the symbol table,  Prev: Relocating the section contents,  Up: Performing the Final Link
+
+2.18.3.3 Writing the symbol table
+.................................
+
+The `_bfd_final_link' function must gather all the symbols in the input
+files and write them out.  It must also write out all the symbols in
+the global hash table.  This must be controlled by the `strip' and
+`discard' fields of the `bfd_link_info' structure.
+
+   The local symbols of the input files will not have been entered into
+the linker hash table.  The `_bfd_final_link' routine must consider
+each input file and include the symbols in the output file.  It may be
+convenient to do this when looking through the `link_order' structures,
+or it may be done by stepping through the `input_bfds' list.
+
+   The `_bfd_final_link' routine must also traverse the global hash
+table to gather all the externally visible symbols.  It is possible
+that most of the externally visible symbols may be written out when
+considering the symbols of each input file, but it is still necessary
+to traverse the hash table since the linker script may have defined
+some symbols that are not in any of the input files.
+
+   The `strip' field of the `bfd_link_info' structure controls which
+symbols are written out.  The possible values are listed in
+`bfdlink.h'.  If the value is `strip_some', then the `keep_hash' field
+of the `bfd_link_info' structure is a hash table of symbols to keep;
+each symbol should be looked up in this hash table, and only symbols
+which are present should be included in the output file.
+
+   If the `strip' field of the `bfd_link_info' structure permits local
+symbols to be written out, the `discard' field is used to further
+controls which local symbols are included in the output file.  If the
+value is `discard_l', then all local symbols which begin with a certain
+prefix are discarded; this is controlled by the
+`bfd_is_local_label_name' entry point.
+
+   The a.out backend handles symbols by calling
+`aout_link_write_symbols' on each input BFD and then traversing the
+global hash table with the function `aout_link_write_other_symbol'.  It
+builds a string table while writing out the symbols, which is written
+to the output file at the end of `NAME(aout,final_link)'.
+
+2.18.3.4 `bfd_link_split_section'
+.................................
+
+*Synopsis*
+     bfd_boolean bfd_link_split_section (bfd *abfd, asection *sec);
+   *Description*
+Return nonzero if SEC should be split during a reloceatable or final
+link.
+     #define bfd_link_split_section(abfd, sec) \
+            BFD_SEND (abfd, _bfd_link_split_section, (abfd, sec))
+
+2.18.3.5 `bfd_section_already_linked'
+.....................................
+
+*Synopsis*
+     void bfd_section_already_linked (bfd *abfd, asection *sec);
+   *Description*
+Check if SEC has been already linked during a reloceatable or final
+link.
+     #define bfd_section_already_linked(abfd, sec) \
+            BFD_SEND (abfd, _section_already_linked, (abfd, sec))
+
+
+File: bfd.info,  Node: Hash Tables,  Prev: Linker Functions,  Up: BFD front end
+
+2.19 Hash Tables
+================
+
+BFD provides a simple set of hash table functions.  Routines are
+provided to initialize a hash table, to free a hash table, to look up a
+string in a hash table and optionally create an entry for it, and to
+traverse a hash table.  There is currently no routine to delete an
+string from a hash table.
+
+   The basic hash table does not permit any data to be stored with a
+string.  However, a hash table is designed to present a base class from
+which other types of hash tables may be derived.  These derived types
+may store additional information with the string.  Hash tables were
+implemented in this way, rather than simply providing a data pointer in
+a hash table entry, because they were designed for use by the linker
+back ends.  The linker may create thousands of hash table entries, and
+the overhead of allocating private data and storing and following
+pointers becomes noticeable.
+
+   The basic hash table code is in `hash.c'.
+
+* Menu:
+
+* Creating and Freeing a Hash Table::
+* Looking Up or Entering a String::
+* Traversing a Hash Table::
+* Deriving a New Hash Table Type::
+
+
+File: bfd.info,  Node: Creating and Freeing a Hash Table,  Next: Looking Up or Entering a String,  Prev: Hash Tables,  Up: Hash Tables
+
+2.19.1 Creating and freeing a hash table
+----------------------------------------
+
+To create a hash table, create an instance of a `struct bfd_hash_table'
+(defined in `bfd.h') and call `bfd_hash_table_init' (if you know
+approximately how many entries you will need, the function
+`bfd_hash_table_init_n', which takes a SIZE argument, may be used).
+`bfd_hash_table_init' returns `FALSE' if some sort of error occurs.
+
+   The function `bfd_hash_table_init' take as an argument a function to
+use to create new entries.  For a basic hash table, use the function
+`bfd_hash_newfunc'.  *Note Deriving a New Hash Table Type::, for why
+you would want to use a different value for this argument.
+
+   `bfd_hash_table_init' will create an objalloc which will be used to
+allocate new entries.  You may allocate memory on this objalloc using
+`bfd_hash_allocate'.
+
+   Use `bfd_hash_table_free' to free up all the memory that has been
+allocated for a hash table.  This will not free up the `struct
+bfd_hash_table' itself, which you must provide.
+
+   Use `bfd_hash_set_default_size' to set the default size of hash
+table to use.
+
+
+File: bfd.info,  Node: Looking Up or Entering a String,  Next: Traversing a Hash Table,  Prev: Creating and Freeing a Hash Table,  Up: Hash Tables
+
+2.19.2 Looking up or entering a string
+--------------------------------------
+
+The function `bfd_hash_lookup' is used both to look up a string in the
+hash table and to create a new entry.
+
+   If the CREATE argument is `FALSE', `bfd_hash_lookup' will look up a
+string.  If the string is found, it will returns a pointer to a `struct
+bfd_hash_entry'.  If the string is not found in the table
+`bfd_hash_lookup' will return `NULL'.  You should not modify any of the
+fields in the returns `struct bfd_hash_entry'.
+
+   If the CREATE argument is `TRUE', the string will be entered into
+the hash table if it is not already there.  Either way a pointer to a
+`struct bfd_hash_entry' will be returned, either to the existing
+structure or to a newly created one.  In this case, a `NULL' return
+means that an error occurred.
+
+   If the CREATE argument is `TRUE', and a new entry is created, the
+COPY argument is used to decide whether to copy the string onto the
+hash table objalloc or not.  If COPY is passed as `FALSE', you must be
+careful not to deallocate or modify the string as long as the hash table
+exists.
+
+
+File: bfd.info,  Node: Traversing a Hash Table,  Next: Deriving a New Hash Table Type,  Prev: Looking Up or Entering a String,  Up: Hash Tables
+
+2.19.3 Traversing a hash table
+------------------------------
+
+The function `bfd_hash_traverse' may be used to traverse a hash table,
+calling a function on each element.  The traversal is done in a random
+order.
+
+   `bfd_hash_traverse' takes as arguments a function and a generic
+`void *' pointer.  The function is called with a hash table entry (a
+`struct bfd_hash_entry *') and the generic pointer passed to
+`bfd_hash_traverse'.  The function must return a `boolean' value, which
+indicates whether to continue traversing the hash table.  If the
+function returns `FALSE', `bfd_hash_traverse' will stop the traversal
+and return immediately.
+
+
+File: bfd.info,  Node: Deriving a New Hash Table Type,  Prev: Traversing a Hash Table,  Up: Hash Tables
+
+2.19.4 Deriving a new hash table type
+-------------------------------------
+
+Many uses of hash tables want to store additional information which
+each entry in the hash table.  Some also find it convenient to store
+additional information with the hash table itself.  This may be done
+using a derived hash table.
+
+   Since C is not an object oriented language, creating a derived hash
+table requires sticking together some boilerplate routines with a few
+differences specific to the type of hash table you want to create.
+
+   An example of a derived hash table is the linker hash table.  The
+structures for this are defined in `bfdlink.h'.  The functions are in
+`linker.c'.
+
+   You may also derive a hash table from an already derived hash table.
+For example, the a.out linker backend code uses a hash table derived
+from the linker hash table.
+
+* Menu:
+
+* Define the Derived Structures::
+* Write the Derived Creation Routine::
+* Write Other Derived Routines::
+
+
+File: bfd.info,  Node: Define the Derived Structures,  Next: Write the Derived Creation Routine,  Prev: Deriving a New Hash Table Type,  Up: Deriving a New Hash Table Type
+
+2.19.4.1 Define the derived structures
+......................................
+
+You must define a structure for an entry in the hash table, and a
+structure for the hash table itself.
+
+   The first field in the structure for an entry in the hash table must
+be of the type used for an entry in the hash table you are deriving
+from.  If you are deriving from a basic hash table this is `struct
+bfd_hash_entry', which is defined in `bfd.h'.  The first field in the
+structure for the hash table itself must be of the type of the hash
+table you are deriving from itself.  If you are deriving from a basic
+hash table, this is `struct bfd_hash_table'.
+
+   For example, the linker hash table defines `struct
+bfd_link_hash_entry' (in `bfdlink.h').  The first field, `root', is of
+type `struct bfd_hash_entry'.  Similarly, the first field in `struct
+bfd_link_hash_table', `table', is of type `struct bfd_hash_table'.
+
+
+File: bfd.info,  Node: Write the Derived Creation Routine,  Next: Write Other Derived Routines,  Prev: Define the Derived Structures,  Up: Deriving a New Hash Table Type
+
+2.19.4.2 Write the derived creation routine
+...........................................
+
+You must write a routine which will create and initialize an entry in
+the hash table.  This routine is passed as the function argument to
+`bfd_hash_table_init'.
+
+   In order to permit other hash tables to be derived from the hash
+table you are creating, this routine must be written in a standard way.
+
+   The first argument to the creation routine is a pointer to a hash
+table entry.  This may be `NULL', in which case the routine should
+allocate the right amount of space.  Otherwise the space has already
+been allocated by a hash table type derived from this one.
+
+   After allocating space, the creation routine must call the creation
+routine of the hash table type it is derived from, passing in a pointer
+to the space it just allocated.  This will initialize any fields used
+by the base hash table.
+
+   Finally the creation routine must initialize any local fields for
+the new hash table type.
+
+   Here is a boilerplate example of a creation routine.  FUNCTION_NAME
+is the name of the routine.  ENTRY_TYPE is the type of an entry in the
+hash table you are creating.  BASE_NEWFUNC is the name of the creation
+routine of the hash table type your hash table is derived from.
+
+     struct bfd_hash_entry *
+     FUNCTION_NAME (entry, table, string)
+          struct bfd_hash_entry *entry;
+          struct bfd_hash_table *table;
+          const char *string;
+     {
+       struct ENTRY_TYPE *ret = (ENTRY_TYPE *) entry;
+
+      /* Allocate the structure if it has not already been allocated by a
+         derived class.  */
+       if (ret == (ENTRY_TYPE *) NULL)
+         {
+           ret = ((ENTRY_TYPE *)
+                  bfd_hash_allocate (table, sizeof (ENTRY_TYPE)));
+           if (ret == (ENTRY_TYPE *) NULL)
+             return NULL;
+         }
+
+      /* Call the allocation method of the base class.  */
+       ret = ((ENTRY_TYPE *)
+             BASE_NEWFUNC ((struct bfd_hash_entry *) ret, table, string));
+
+      /* Initialize the local fields here.  */
+
+       return (struct bfd_hash_entry *) ret;
+     }
+   *Description*
+The creation routine for the linker hash table, which is in `linker.c',
+looks just like this example.  FUNCTION_NAME is
+`_bfd_link_hash_newfunc'.  ENTRY_TYPE is `struct bfd_link_hash_entry'.
+BASE_NEWFUNC is `bfd_hash_newfunc', the creation routine for a basic
+hash table.
+
+   `_bfd_link_hash_newfunc' also initializes the local fields in a
+linker hash table entry: `type', `written' and `next'.
+
+
+File: bfd.info,  Node: Write Other Derived Routines,  Prev: Write the Derived Creation Routine,  Up: Deriving a New Hash Table Type
+
+2.19.4.3 Write other derived routines
+.....................................
+
+You will want to write other routines for your new hash table, as well.
+
+   You will want an initialization routine which calls the
+initialization routine of the hash table you are deriving from and
+initializes any other local fields.  For the linker hash table, this is
+`_bfd_link_hash_table_init' in `linker.c'.
+
+   You will want a lookup routine which calls the lookup routine of the
+hash table you are deriving from and casts the result.  The linker hash
+table uses `bfd_link_hash_lookup' in `linker.c' (this actually takes an
+additional argument which it uses to decide how to return the looked up
+value).
+
+   You may want a traversal routine.  This should just call the
+traversal routine of the hash table you are deriving from with
+appropriate casts.  The linker hash table uses `bfd_link_hash_traverse'
+in `linker.c'.
+
+   These routines may simply be defined as macros.  For example, the
+a.out backend linker hash table, which is derived from the linker hash
+table, uses macros for the lookup and traversal routines.  These are
+`aout_link_hash_lookup' and `aout_link_hash_traverse' in aoutx.h.
+
+
+File: bfd.info,  Node: BFD back ends,  Next: GNU Free Documentation License,  Prev: BFD front end,  Up: Top
+
+3 BFD back ends
+***************
+
+* Menu:
+
+* What to Put Where::
+* aout ::	a.out backends
+* coff ::	coff backends
+* elf  ::	elf backends
+* mmo  ::	mmo backend
+
+
+File: bfd.info,  Node: What to Put Where,  Next: aout,  Prev: BFD back ends,  Up: BFD back ends
+
+   All of BFD lives in one directory.
+
+
+File: bfd.info,  Node: aout,  Next: coff,  Prev: What to Put Where,  Up: BFD back ends
+
+3.1 a.out backends
+==================
+
+*Description*
+BFD supports a number of different flavours of a.out format, though the
+major differences are only the sizes of the structures on disk, and the
+shape of the relocation information.
+
+   The support is split into a basic support file `aoutx.h' and other
+files which derive functions from the base. One derivation file is
+`aoutf1.h' (for a.out flavour 1), and adds to the basic a.out functions
+support for sun3, sun4, 386 and 29k a.out files, to create a target
+jump vector for a specific target.
+
+   This information is further split out into more specific files for
+each machine, including `sunos.c' for sun3 and sun4, `newsos3.c' for
+the Sony NEWS, and `demo64.c' for a demonstration of a 64 bit a.out
+format.
+
+   The base file `aoutx.h' defines general mechanisms for reading and
+writing records to and from disk and various other methods which BFD
+requires. It is included by `aout32.c' and `aout64.c' to form the names
+`aout_32_swap_exec_header_in', `aout_64_swap_exec_header_in', etc.
+
+   As an example, this is what goes on to make the back end for a sun4,
+from `aout32.c':
+
+            #define ARCH_SIZE 32
+            #include "aoutx.h"
+
+   Which exports names:
+
+            ...
+            aout_32_canonicalize_reloc
+            aout_32_find_nearest_line
+            aout_32_get_lineno
+            aout_32_get_reloc_upper_bound
+            ...
+
+   from `sunos.c':
+
+            #define TARGET_NAME "a.out-sunos-big"
+            #define VECNAME    sunos_big_vec
+            #include "aoutf1.h"
+
+   requires all the names from `aout32.c', and produces the jump vector
+
+            sunos_big_vec
+
+   The file `host-aout.c' is a special case.  It is for a large set of
+hosts that use "more or less standard" a.out files, and for which
+cross-debugging is not interesting.  It uses the standard 32-bit a.out
+support routines, but determines the file offsets and addresses of the
+text, data, and BSS sections, the machine architecture and machine
+type, and the entry point address, in a host-dependent manner.  Once
+these values have been determined, generic code is used to handle the
+object file.
+
+   When porting it to run on a new system, you must supply:
+
+             HOST_PAGE_SIZE
+             HOST_SEGMENT_SIZE
+             HOST_MACHINE_ARCH       (optional)
+             HOST_MACHINE_MACHINE    (optional)
+             HOST_TEXT_START_ADDR
+             HOST_STACK_END_ADDR
+
+   in the file `../include/sys/h-XXX.h' (for your host).  These values,
+plus the structures and macros defined in `a.out.h' on your host
+system, will produce a BFD target that will access ordinary a.out files
+on your host. To configure a new machine to use `host-aout.c', specify:
+
+            TDEFAULTS = -DDEFAULT_VECTOR=host_aout_big_vec
+            TDEPFILES= host-aout.o trad-core.o
+
+   in the `config/XXX.mt' file, and modify `configure.in' to use the
+`XXX.mt' file (by setting "`bfd_target=XXX'") when your configuration
+is selected.
+
+3.1.1 Relocations
+-----------------
+
+*Description*
+The file `aoutx.h' provides for both the _standard_ and _extended_
+forms of a.out relocation records.
+
+   The standard records contain only an address, a symbol index, and a
+type field. The extended records (used on 29ks and sparcs) also have a
+full integer for an addend.
+
+3.1.2 Internal entry points
+---------------------------
+
+*Description*
+`aoutx.h' exports several routines for accessing the contents of an
+a.out file, which are gathered and exported in turn by various format
+specific files (eg sunos.c).
+
+3.1.2.1 `aout_SIZE_swap_exec_header_in'
+.......................................
+
+*Synopsis*
+     void aout_SIZE_swap_exec_header_in,
+        (bfd *abfd,
+         struct external_exec *raw_bytes,
+         struct internal_exec *execp);
+   *Description*
+Swap the information in an executable header RAW_BYTES taken from a raw
+byte stream memory image into the internal exec header structure EXECP.
+
+3.1.2.2 `aout_SIZE_swap_exec_header_out'
+........................................
+
+*Synopsis*
+     void aout_SIZE_swap_exec_header_out
+        (bfd *abfd,
+         struct internal_exec *execp,
+         struct external_exec *raw_bytes);
+   *Description*
+Swap the information in an internal exec header structure EXECP into
+the buffer RAW_BYTES ready for writing to disk.
+
+3.1.2.3 `aout_SIZE_some_aout_object_p'
+......................................
+
+*Synopsis*
+     const bfd_target *aout_SIZE_some_aout_object_p
+        (bfd *abfd,
+         const bfd_target *(*callback_to_real_object_p) ());
+   *Description*
+Some a.out variant thinks that the file open in ABFD checking is an
+a.out file.  Do some more checking, and set up for access if it really
+is.  Call back to the calling environment's "finish up" function just
+before returning, to handle any last-minute setup.
+
+3.1.2.4 `aout_SIZE_mkobject'
+............................
+
+*Synopsis*
+     bfd_boolean aout_SIZE_mkobject, (bfd *abfd);
+   *Description*
+Initialize BFD ABFD for use with a.out files.
+
+3.1.2.5 `aout_SIZE_machine_type'
+................................
+
+*Synopsis*
+     enum machine_type  aout_SIZE_machine_type
+        (enum bfd_architecture arch,
+         unsigned long machine));
+   *Description*
+Keep track of machine architecture and machine type for a.out's. Return
+the `machine_type' for a particular architecture and machine, or
+`M_UNKNOWN' if that exact architecture and machine can't be represented
+in a.out format.
+
+   If the architecture is understood, machine type 0 (default) is
+always understood.
+
+3.1.2.6 `aout_SIZE_set_arch_mach'
+.................................
+
+*Synopsis*
+     bfd_boolean aout_SIZE_set_arch_mach,
+        (bfd *,
+         enum bfd_architecture arch,
+         unsigned long machine));
+   *Description*
+Set the architecture and the machine of the BFD ABFD to the values ARCH
+and MACHINE.  Verify that ABFD's format can support the architecture
+required.
+
+3.1.2.7 `aout_SIZE_new_section_hook'
+....................................
+
+*Synopsis*
+     bfd_boolean aout_SIZE_new_section_hook,
+        (bfd *abfd,
+         asection *newsect));
+   *Description*
+Called by the BFD in response to a `bfd_make_section' request.
+
+
+File: bfd.info,  Node: coff,  Next: elf,  Prev: aout,  Up: BFD back ends
+
+3.2 coff backends
+=================
+
+BFD supports a number of different flavours of coff format.  The major
+differences between formats are the sizes and alignments of fields in
+structures on disk, and the occasional extra field.
+
+   Coff in all its varieties is implemented with a few common files and
+a number of implementation specific files. For example, The 88k bcs
+coff format is implemented in the file `coff-m88k.c'. This file
+`#include's `coff/m88k.h' which defines the external structure of the
+coff format for the 88k, and `coff/internal.h' which defines the
+internal structure. `coff-m88k.c' also defines the relocations used by
+the 88k format *Note Relocations::.
+
+   The Intel i960 processor version of coff is implemented in
+`coff-i960.c'. This file has the same structure as `coff-m88k.c',
+except that it includes `coff/i960.h' rather than `coff-m88k.h'.
+
+3.2.1 Porting to a new version of coff
+--------------------------------------
+
+The recommended method is to select from the existing implementations
+the version of coff which is most like the one you want to use.  For
+example, we'll say that i386 coff is the one you select, and that your
+coff flavour is called foo.  Copy `i386coff.c' to `foocoff.c', copy
+`../include/coff/i386.h' to `../include/coff/foo.h', and add the lines
+to `targets.c' and `Makefile.in' so that your new back end is used.
+Alter the shapes of the structures in `../include/coff/foo.h' so that
+they match what you need. You will probably also have to add `#ifdef's
+to the code in `coff/internal.h' and `coffcode.h' if your version of
+coff is too wild.
+
+   You can verify that your new BFD backend works quite simply by
+building `objdump' from the `binutils' directory, and making sure that
+its version of what's going on and your host system's idea (assuming it
+has the pretty standard coff dump utility, usually called `att-dump' or
+just `dump') are the same.  Then clean up your code, and send what
+you've done to Cygnus. Then your stuff will be in the next release, and
+you won't have to keep integrating it.
+
+3.2.2 How the coff backend works
+--------------------------------
+
+3.2.2.1 File layout
+...................
+
+The Coff backend is split into generic routines that are applicable to
+any Coff target and routines that are specific to a particular target.
+The target-specific routines are further split into ones which are
+basically the same for all Coff targets except that they use the
+external symbol format or use different values for certain constants.
+
+   The generic routines are in `coffgen.c'.  These routines work for
+any Coff target.  They use some hooks into the target specific code;
+the hooks are in a `bfd_coff_backend_data' structure, one of which
+exists for each target.
+
+   The essentially similar target-specific routines are in
+`coffcode.h'.  This header file includes executable C code.  The
+various Coff targets first include the appropriate Coff header file,
+make any special defines that are needed, and then include `coffcode.h'.
+
+   Some of the Coff targets then also have additional routines in the
+target source file itself.
+
+   For example, `coff-i960.c' includes `coff/internal.h' and
+`coff/i960.h'.  It then defines a few constants, such as `I960', and
+includes `coffcode.h'.  Since the i960 has complex relocation types,
+`coff-i960.c' also includes some code to manipulate the i960 relocs.
+This code is not in `coffcode.h' because it would not be used by any
+other target.
+
+3.2.2.2 Bit twiddling
+.....................
+
+Each flavour of coff supported in BFD has its own header file
+describing the external layout of the structures. There is also an
+internal description of the coff layout, in `coff/internal.h'. A major
+function of the coff backend is swapping the bytes and twiddling the
+bits to translate the external form of the structures into the normal
+internal form. This is all performed in the `bfd_swap'_thing_direction
+routines. Some elements are different sizes between different versions
+of coff; it is the duty of the coff version specific include file to
+override the definitions of various packing routines in `coffcode.h'.
+E.g., the size of line number entry in coff is sometimes 16 bits, and
+sometimes 32 bits. `#define'ing `PUT_LNSZ_LNNO' and `GET_LNSZ_LNNO'
+will select the correct one. No doubt, some day someone will find a
+version of coff which has a varying field size not catered to at the
+moment. To port BFD, that person will have to add more `#defines'.
+Three of the bit twiddling routines are exported to `gdb';
+`coff_swap_aux_in', `coff_swap_sym_in' and `coff_swap_lineno_in'. `GDB'
+reads the symbol table on its own, but uses BFD to fix things up.  More
+of the bit twiddlers are exported for `gas'; `coff_swap_aux_out',
+`coff_swap_sym_out', `coff_swap_lineno_out', `coff_swap_reloc_out',
+`coff_swap_filehdr_out', `coff_swap_aouthdr_out',
+`coff_swap_scnhdr_out'. `Gas' currently keeps track of all the symbol
+table and reloc drudgery itself, thereby saving the internal BFD
+overhead, but uses BFD to swap things on the way out, making cross
+ports much safer.  Doing so also allows BFD (and thus the linker) to
+use the same header files as `gas', which makes one avenue to disaster
+disappear.
+
+3.2.2.3 Symbol reading
+......................
+
+The simple canonical form for symbols used by BFD is not rich enough to
+keep all the information available in a coff symbol table. The back end
+gets around this problem by keeping the original symbol table around,
+"behind the scenes".
+
+   When a symbol table is requested (through a call to
+`bfd_canonicalize_symtab'), a request gets through to
+`coff_get_normalized_symtab'. This reads the symbol table from the coff
+file and swaps all the structures inside into the internal form. It
+also fixes up all the pointers in the table (represented in the file by
+offsets from the first symbol in the table) into physical pointers to
+elements in the new internal table. This involves some work since the
+meanings of fields change depending upon context: a field that is a
+pointer to another structure in the symbol table at one moment may be
+the size in bytes of a structure at the next.  Another pass is made
+over the table. All symbols which mark file names (`C_FILE' symbols)
+are modified so that the internal string points to the value in the
+auxent (the real filename) rather than the normal text associated with
+the symbol (`".file"').
+
+   At this time the symbol names are moved around. Coff stores all
+symbols less than nine characters long physically within the symbol
+table; longer strings are kept at the end of the file in the string
+table. This pass moves all strings into memory and replaces them with
+pointers to the strings.
+
+   The symbol table is massaged once again, this time to create the
+canonical table used by the BFD application. Each symbol is inspected
+in turn, and a decision made (using the `sclass' field) about the
+various flags to set in the `asymbol'.  *Note Symbols::. The generated
+canonical table shares strings with the hidden internal symbol table.
+
+   Any linenumbers are read from the coff file too, and attached to the
+symbols which own the functions the linenumbers belong to.
+
+3.2.2.4 Symbol writing
+......................
+
+Writing a symbol to a coff file which didn't come from a coff file will
+lose any debugging information. The `asymbol' structure remembers the
+BFD from which the symbol was taken, and on output the back end makes
+sure that the same destination target as source target is present.
+
+   When the symbols have come from a coff file then all the debugging
+information is preserved.
+
+   Symbol tables are provided for writing to the back end in a vector
+of pointers to pointers. This allows applications like the linker to
+accumulate and output large symbol tables without having to do too much
+byte copying.
+
+   This function runs through the provided symbol table and patches
+each symbol marked as a file place holder (`C_FILE') to point to the
+next file place holder in the list. It also marks each `offset' field
+in the list with the offset from the first symbol of the current symbol.
+
+   Another function of this procedure is to turn the canonical value
+form of BFD into the form used by coff. Internally, BFD expects symbol
+values to be offsets from a section base; so a symbol physically at
+0x120, but in a section starting at 0x100, would have the value 0x20.
+Coff expects symbols to contain their final value, so symbols have
+their values changed at this point to reflect their sum with their
+owning section.  This transformation uses the `output_section' field of
+the `asymbol''s `asection' *Note Sections::.
+
+   * `coff_mangle_symbols'
+   This routine runs though the provided symbol table and uses the
+offsets generated by the previous pass and the pointers generated when
+the symbol table was read in to create the structured hierarchy
+required by coff. It changes each pointer to a symbol into the index
+into the symbol table of the asymbol.
+
+   * `coff_write_symbols'
+   This routine runs through the symbol table and patches up the
+symbols from their internal form into the coff way, calls the bit
+twiddlers, and writes out the table to the file.
+
+3.2.2.5 `coff_symbol_type'
+..........................
+
+*Description*
+The hidden information for an `asymbol' is described in a
+`combined_entry_type':
+
+
+     typedef struct coff_ptr_struct
+     {
+       /* Remembers the offset from the first symbol in the file for
+          this symbol. Generated by coff_renumber_symbols. */
+       unsigned int offset;
+
+       /* Should the value of this symbol be renumbered.  Used for
+          XCOFF C_BSTAT symbols.  Set by coff_slurp_symbol_table.  */
+       unsigned int fix_value : 1;
+
+       /* Should the tag field of this symbol be renumbered.
+          Created by coff_pointerize_aux. */
+       unsigned int fix_tag : 1;
+
+       /* Should the endidx field of this symbol be renumbered.
+          Created by coff_pointerize_aux. */
+       unsigned int fix_end : 1;
+
+       /* Should the x_csect.x_scnlen field be renumbered.
+          Created by coff_pointerize_aux. */
+       unsigned int fix_scnlen : 1;
+
+       /* Fix up an XCOFF C_BINCL/C_EINCL symbol.  The value is the
+          index into the line number entries.  Set by coff_slurp_symbol_table.  */
+       unsigned int fix_line : 1;
+
+       /* The container for the symbol structure as read and translated
+          from the file. */
+       union
+       {
+         union internal_auxent auxent;
+         struct internal_syment syment;
+       } u;
+     } combined_entry_type;
+
+
+     /* Each canonical asymbol really looks like this: */
+
+     typedef struct coff_symbol_struct
+     {
+       /* The actual symbol which the rest of BFD works with */
+       asymbol symbol;
+
+       /* A pointer to the hidden information for this symbol */
+       combined_entry_type *native;
+
+       /* A pointer to the linenumber information for this symbol */
+       struct lineno_cache_entry *lineno;
+
+       /* Have the line numbers been relocated yet ? */
+       bfd_boolean done_lineno;
+     } coff_symbol_type;
+
+3.2.2.6 `bfd_coff_backend_data'
+...............................
+
+     /* COFF symbol classifications.  */
+
+     enum coff_symbol_classification
+     {
+       /* Global symbol.  */
+       COFF_SYMBOL_GLOBAL,
+       /* Common symbol.  */
+       COFF_SYMBOL_COMMON,
+       /* Undefined symbol.  */
+       COFF_SYMBOL_UNDEFINED,
+       /* Local symbol.  */
+       COFF_SYMBOL_LOCAL,
+       /* PE section symbol.  */
+       COFF_SYMBOL_PE_SECTION
+     };
+Special entry points for gdb to swap in coff symbol table parts:
+     typedef struct
+     {
+       void (*_bfd_coff_swap_aux_in)
+         PARAMS ((bfd *, PTR, int, int, int, int, PTR));
+
+       void (*_bfd_coff_swap_sym_in)
+         PARAMS ((bfd *, PTR, PTR));
+
+       void (*_bfd_coff_swap_lineno_in)
+         PARAMS ((bfd *, PTR, PTR));
+
+       unsigned int (*_bfd_coff_swap_aux_out)
+         PARAMS ((bfd *, PTR, int, int, int, int, PTR));
+
+       unsigned int (*_bfd_coff_swap_sym_out)
+         PARAMS ((bfd *, PTR, PTR));
+
+       unsigned int (*_bfd_coff_swap_lineno_out)
+         PARAMS ((bfd *, PTR, PTR));
+
+       unsigned int (*_bfd_coff_swap_reloc_out)
+         PARAMS ((bfd *, PTR, PTR));
+
+       unsigned int (*_bfd_coff_swap_filehdr_out)
+         PARAMS ((bfd *, PTR, PTR));
+
+       unsigned int (*_bfd_coff_swap_aouthdr_out)
+         PARAMS ((bfd *, PTR, PTR));
+
+       unsigned int (*_bfd_coff_swap_scnhdr_out)
+         PARAMS ((bfd *, PTR, PTR));
+
+       unsigned int _bfd_filhsz;
+       unsigned int _bfd_aoutsz;
+       unsigned int _bfd_scnhsz;
+       unsigned int _bfd_symesz;
+       unsigned int _bfd_auxesz;
+       unsigned int _bfd_relsz;
+       unsigned int _bfd_linesz;
+       unsigned int _bfd_filnmlen;
+       bfd_boolean _bfd_coff_long_filenames;
+       bfd_boolean _bfd_coff_long_section_names;
+       unsigned int _bfd_coff_default_section_alignment_power;
+       bfd_boolean _bfd_coff_force_symnames_in_strings;
+       unsigned int _bfd_coff_debug_string_prefix_length;
+
+       void (*_bfd_coff_swap_filehdr_in)
+         PARAMS ((bfd *, PTR, PTR));
+
+       void (*_bfd_coff_swap_aouthdr_in)
+         PARAMS ((bfd *, PTR, PTR));
+
+       void (*_bfd_coff_swap_scnhdr_in)
+         PARAMS ((bfd *, PTR, PTR));
+
+       void (*_bfd_coff_swap_reloc_in)
+         PARAMS ((bfd *abfd, PTR, PTR));
+
+       bfd_boolean (*_bfd_coff_bad_format_hook)
+         PARAMS ((bfd *, PTR));
+
+       bfd_boolean (*_bfd_coff_set_arch_mach_hook)
+         PARAMS ((bfd *, PTR));
+
+       PTR (*_bfd_coff_mkobject_hook)
+         PARAMS ((bfd *, PTR, PTR));
+
+       bfd_boolean (*_bfd_styp_to_sec_flags_hook)
+         PARAMS ((bfd *, PTR, const char *, asection *, flagword *));
+
+       void (*_bfd_set_alignment_hook)
+         PARAMS ((bfd *, asection *, PTR));
+
+       bfd_boolean (*_bfd_coff_slurp_symbol_table)
+         PARAMS ((bfd *));
+
+       bfd_boolean (*_bfd_coff_symname_in_debug)
+         PARAMS ((bfd *, struct internal_syment *));
+
+       bfd_boolean (*_bfd_coff_pointerize_aux_hook)
+         PARAMS ((bfd *, combined_entry_type *, combined_entry_type *,
+                 unsigned int, combined_entry_type *));
+
+       bfd_boolean (*_bfd_coff_print_aux)
+         PARAMS ((bfd *, FILE *, combined_entry_type *, combined_entry_type *,
+                 combined_entry_type *, unsigned int));
+
+       void (*_bfd_coff_reloc16_extra_cases)
+         PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *, arelent *,
+                bfd_byte *, unsigned int *, unsigned int *));
+
+       int (*_bfd_coff_reloc16_estimate)
+         PARAMS ((bfd *, asection *, arelent *, unsigned int,
+                 struct bfd_link_info *));
+
+       enum coff_symbol_classification (*_bfd_coff_classify_symbol)
+         PARAMS ((bfd *, struct internal_syment *));
+
+       bfd_boolean (*_bfd_coff_compute_section_file_positions)
+         PARAMS ((bfd *));
+
+       bfd_boolean (*_bfd_coff_start_final_link)
+         PARAMS ((bfd *, struct bfd_link_info *));
+
+       bfd_boolean (*_bfd_coff_relocate_section)
+         PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
+                 struct internal_reloc *, struct internal_syment *, asection **));
+
+       reloc_howto_type *(*_bfd_coff_rtype_to_howto)
+         PARAMS ((bfd *, asection *, struct internal_reloc *,
+                 struct coff_link_hash_entry *, struct internal_syment *,
+                 bfd_vma *));
+
+       bfd_boolean (*_bfd_coff_adjust_symndx)
+         PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *,
+                 struct internal_reloc *, bfd_boolean *));
+
+       bfd_boolean (*_bfd_coff_link_add_one_symbol)
+         PARAMS ((struct bfd_link_info *, bfd *, const char *, flagword,
+                 asection *, bfd_vma, const char *, bfd_boolean, bfd_boolean,
+                 struct bfd_link_hash_entry **));
+
+       bfd_boolean (*_bfd_coff_link_output_has_begun)
+         PARAMS ((bfd *, struct coff_final_link_info *));
+
+       bfd_boolean (*_bfd_coff_final_link_postscript)
+         PARAMS ((bfd *, struct coff_final_link_info *));
+
+     } bfd_coff_backend_data;
+
+     #define coff_backend_info(abfd) \
+       ((bfd_coff_backend_data *) (abfd)->xvec->backend_data)
+
+     #define bfd_coff_swap_aux_in(a,e,t,c,ind,num,i) \
+       ((coff_backend_info (a)->_bfd_coff_swap_aux_in) (a,e,t,c,ind,num,i))
+
+     #define bfd_coff_swap_sym_in(a,e,i) \
+       ((coff_backend_info (a)->_bfd_coff_swap_sym_in) (a,e,i))
+
+     #define bfd_coff_swap_lineno_in(a,e,i) \
+       ((coff_backend_info ( a)->_bfd_coff_swap_lineno_in) (a,e,i))
+
+     #define bfd_coff_swap_reloc_out(abfd, i, o) \
+       ((coff_backend_info (abfd)->_bfd_coff_swap_reloc_out) (abfd, i, o))
+
+     #define bfd_coff_swap_lineno_out(abfd, i, o) \
+       ((coff_backend_info (abfd)->_bfd_coff_swap_lineno_out) (abfd, i, o))
+
+     #define bfd_coff_swap_aux_out(a,i,t,c,ind,num,o) \
+       ((coff_backend_info (a)->_bfd_coff_swap_aux_out) (a,i,t,c,ind,num,o))
+
+     #define bfd_coff_swap_sym_out(abfd, i,o) \
+       ((coff_backend_info (abfd)->_bfd_coff_swap_sym_out) (abfd, i, o))
+
+     #define bfd_coff_swap_scnhdr_out(abfd, i,o) \
+       ((coff_backend_info (abfd)->_bfd_coff_swap_scnhdr_out) (abfd, i, o))
+
+     #define bfd_coff_swap_filehdr_out(abfd, i,o) \
+       ((coff_backend_info (abfd)->_bfd_coff_swap_filehdr_out) (abfd, i, o))
+
+     #define bfd_coff_swap_aouthdr_out(abfd, i,o) \
+       ((coff_backend_info (abfd)->_bfd_coff_swap_aouthdr_out) (abfd, i, o))
+
+     #define bfd_coff_filhsz(abfd) (coff_backend_info (abfd)->_bfd_filhsz)
+     #define bfd_coff_aoutsz(abfd) (coff_backend_info (abfd)->_bfd_aoutsz)
+     #define bfd_coff_scnhsz(abfd) (coff_backend_info (abfd)->_bfd_scnhsz)
+     #define bfd_coff_symesz(abfd) (coff_backend_info (abfd)->_bfd_symesz)
+     #define bfd_coff_auxesz(abfd) (coff_backend_info (abfd)->_bfd_auxesz)
+     #define bfd_coff_relsz(abfd)  (coff_backend_info (abfd)->_bfd_relsz)
+     #define bfd_coff_linesz(abfd) (coff_backend_info (abfd)->_bfd_linesz)
+     #define bfd_coff_filnmlen(abfd) (coff_backend_info (abfd)->_bfd_filnmlen)
+     #define bfd_coff_long_filenames(abfd) \
+       (coff_backend_info (abfd)->_bfd_coff_long_filenames)
+     #define bfd_coff_long_section_names(abfd) \
+       (coff_backend_info (abfd)->_bfd_coff_long_section_names)
+     #define bfd_coff_default_section_alignment_power(abfd) \
+       (coff_backend_info (abfd)->_bfd_coff_default_section_alignment_power)
+     #define bfd_coff_swap_filehdr_in(abfd, i,o) \
+       ((coff_backend_info (abfd)->_bfd_coff_swap_filehdr_in) (abfd, i, o))
+
+     #define bfd_coff_swap_aouthdr_in(abfd, i,o) \
+       ((coff_backend_info (abfd)->_bfd_coff_swap_aouthdr_in) (abfd, i, o))
+
+     #define bfd_coff_swap_scnhdr_in(abfd, i,o) \
+       ((coff_backend_info (abfd)->_bfd_coff_swap_scnhdr_in) (abfd, i, o))
+
+     #define bfd_coff_swap_reloc_in(abfd, i, o) \
+       ((coff_backend_info (abfd)->_bfd_coff_swap_reloc_in) (abfd, i, o))
+
+     #define bfd_coff_bad_format_hook(abfd, filehdr) \
+       ((coff_backend_info (abfd)->_bfd_coff_bad_format_hook) (abfd, filehdr))
+
+     #define bfd_coff_set_arch_mach_hook(abfd, filehdr)\
+       ((coff_backend_info (abfd)->_bfd_coff_set_arch_mach_hook) (abfd, filehdr))
+     #define bfd_coff_mkobject_hook(abfd, filehdr, aouthdr)\
+       ((coff_backend_info (abfd)->_bfd_coff_mkobject_hook)\
+        (abfd, filehdr, aouthdr))
+
+     #define bfd_coff_styp_to_sec_flags_hook(abfd, scnhdr, name, section, flags_ptr)\
+       ((coff_backend_info (abfd)->_bfd_styp_to_sec_flags_hook)\
+        (abfd, scnhdr, name, section, flags_ptr))
+
+     #define bfd_coff_set_alignment_hook(abfd, sec, scnhdr)\
+       ((coff_backend_info (abfd)->_bfd_set_alignment_hook) (abfd, sec, scnhdr))
+
+     #define bfd_coff_slurp_symbol_table(abfd)\
+       ((coff_backend_info (abfd)->_bfd_coff_slurp_symbol_table) (abfd))
+
+     #define bfd_coff_symname_in_debug(abfd, sym)\
+       ((coff_backend_info (abfd)->_bfd_coff_symname_in_debug) (abfd, sym))
+
+     #define bfd_coff_force_symnames_in_strings(abfd)\
+       (coff_backend_info (abfd)->_bfd_coff_force_symnames_in_strings)
+
+     #define bfd_coff_debug_string_prefix_length(abfd)\
+       (coff_backend_info (abfd)->_bfd_coff_debug_string_prefix_length)
+
+     #define bfd_coff_print_aux(abfd, file, base, symbol, aux, indaux)\
+       ((coff_backend_info (abfd)->_bfd_coff_print_aux)\
+        (abfd, file, base, symbol, aux, indaux))
+
+     #define bfd_coff_reloc16_extra_cases(abfd, link_info, link_order,\
+                                          reloc, data, src_ptr, dst_ptr)\
+       ((coff_backend_info (abfd)->_bfd_coff_reloc16_extra_cases)\
+        (abfd, link_info, link_order, reloc, data, src_ptr, dst_ptr))
+
+     #define bfd_coff_reloc16_estimate(abfd, section, reloc, shrink, link_info)\
+       ((coff_backend_info (abfd)->_bfd_coff_reloc16_estimate)\
+        (abfd, section, reloc, shrink, link_info))
+
+     #define bfd_coff_classify_symbol(abfd, sym)\
+       ((coff_backend_info (abfd)->_bfd_coff_classify_symbol)\
+        (abfd, sym))
+
+     #define bfd_coff_compute_section_file_positions(abfd)\
+       ((coff_backend_info (abfd)->_bfd_coff_compute_section_file_positions)\
+        (abfd))
+
+     #define bfd_coff_start_final_link(obfd, info)\
+       ((coff_backend_info (obfd)->_bfd_coff_start_final_link)\
+        (obfd, info))
+     #define bfd_coff_relocate_section(obfd,info,ibfd,o,con,rel,isyms,secs)\
+       ((coff_backend_info (ibfd)->_bfd_coff_relocate_section)\
+        (obfd, info, ibfd, o, con, rel, isyms, secs))
+     #define bfd_coff_rtype_to_howto(abfd, sec, rel, h, sym, addendp)\
+       ((coff_backend_info (abfd)->_bfd_coff_rtype_to_howto)\
+        (abfd, sec, rel, h, sym, addendp))
+     #define bfd_coff_adjust_symndx(obfd, info, ibfd, sec, rel, adjustedp)\
+       ((coff_backend_info (abfd)->_bfd_coff_adjust_symndx)\
+        (obfd, info, ibfd, sec, rel, adjustedp))
+     #define bfd_coff_link_add_one_symbol(info, abfd, name, flags, section,\
+                                          value, string, cp, coll, hashp)\
+       ((coff_backend_info (abfd)->_bfd_coff_link_add_one_symbol)\
+        (info, abfd, name, flags, section, value, string, cp, coll, hashp))
+
+     #define bfd_coff_link_output_has_begun(a,p) \
+       ((coff_backend_info (a)->_bfd_coff_link_output_has_begun) (a,p))
+     #define bfd_coff_final_link_postscript(a,p) \
+       ((coff_backend_info (a)->_bfd_coff_final_link_postscript) (a,p))
+
+3.2.2.7 Writing relocations
+...........................
+
+To write relocations, the back end steps though the canonical
+relocation table and create an `internal_reloc'. The symbol index to
+use is removed from the `offset' field in the symbol table supplied.
+The address comes directly from the sum of the section base address and
+the relocation offset; the type is dug directly from the howto field.
+Then the `internal_reloc' is swapped into the shape of an
+`external_reloc' and written out to disk.
+
+3.2.2.8 Reading linenumbers
+...........................
+
+Creating the linenumber table is done by reading in the entire coff
+linenumber table, and creating another table for internal use.
+
+   A coff linenumber table is structured so that each function is
+marked as having a line number of 0. Each line within the function is
+an offset from the first line in the function. The base of the line
+number information for the table is stored in the symbol associated
+with the function.
+
+   Note: The PE format uses line number 0 for a flag indicating a new
+source file.
+
+   The information is copied from the external to the internal table,
+and each symbol which marks a function is marked by pointing its...
+
+   How does this work ?
+
+3.2.2.9 Reading relocations
+...........................
+
+Coff relocations are easily transformed into the internal BFD form
+(`arelent').
+
+   Reading a coff relocation table is done in the following stages:
+
+   * Read the entire coff relocation table into memory.
+
+   * Process each relocation in turn; first swap it from the external
+     to the internal form.
+
+   * Turn the symbol referenced in the relocation's symbol index into a
+     pointer into the canonical symbol table.  This table is the same
+     as the one returned by a call to `bfd_canonicalize_symtab'. The
+     back end will call that routine and save the result if a
+     canonicalization hasn't been done.
+
+   * The reloc index is turned into a pointer to a howto structure, in
+     a back end specific way. For instance, the 386 and 960 use the
+     `r_type' to directly produce an index into a howto table vector;
+     the 88k subtracts a number from the `r_type' field and creates an
+     addend field.
+
+
+File: bfd.info,  Node: elf,  Next: mmo,  Prev: coff,  Up: BFD back ends
+
+3.3
+===
+
+ELF backends
+
+   BFD support for ELF formats is being worked on.  Currently, the best
+supported back ends are for sparc and i386 (running svr4 or Solaris 2).
+
+   Documentation of the internals of the support code still needs to be
+written.  The code is changing quickly enough that we haven't bothered
+yet.
+
+3.3.0.1 `bfd_elf_find_section'
+..............................
+
+*Synopsis*
+     struct elf_internal_shdr *bfd_elf_find_section (bfd *abfd, char *name);
+   *Description*
+Helper functions for GDB to locate the string tables.  Since BFD hides
+string tables from callers, GDB needs to use an internal hook to find
+them.  Sun's .stabstr, in particular, isn't even pointed to by the
+.stab section, so ordinary mechanisms wouldn't work to find it, even if
+we had some.
+
+
+File: bfd.info,  Node: mmo,  Prev: elf,  Up: BFD back ends
+
+3.4 mmo backend
+===============
+
+The mmo object format is used exclusively together with Professor
+Donald E. Knuth's educational 64-bit processor MMIX.  The simulator
+`mmix' which is available at
+`http://www-cs-faculty.stanford.edu/~knuth/programs/mmix.tar.gz'
+understands this format.  That package also includes a combined
+assembler and linker called `mmixal'.  The mmo format has no advantages
+feature-wise compared to e.g. ELF.  It is a simple non-relocatable
+object format with no support for archives or debugging information,
+except for symbol value information and line numbers (which is not yet
+implemented in BFD).  See
+`http://www-cs-faculty.stanford.edu/~knuth/mmix.html' for more
+information about MMIX.  The ELF format is used for intermediate object
+files in the BFD implementation.
+
+* Menu:
+
+* File layout::
+* Symbol-table::
+* mmo section mapping::
+
+
+File: bfd.info,  Node: File layout,  Next: Symbol-table,  Prev: mmo,  Up: mmo
+
+3.4.1 File layout
+-----------------
+
+The mmo file contents is not partitioned into named sections as with
+e.g. ELF.  Memory areas is formed by specifying the location of the
+data that follows.  Only the memory area `0x0000...00' to `0x01ff...ff'
+is executable, so it is used for code (and constants) and the area
+`0x2000...00' to `0x20ff...ff' is used for writable data.  *Note mmo
+section mapping::.
+
+   There is provision for specifying "special data" of 65536 different
+types.  We use type 80 (decimal), arbitrarily chosen the same as the
+ELF `e_machine' number for MMIX, filling it with section information
+normally found in ELF objects. *Note mmo section mapping::.
+
+   Contents is entered as 32-bit words, xor:ed over previous contents,
+always zero-initialized.  A word that starts with the byte `0x98' forms
+a command called a `lopcode', where the next byte distinguished between
+the thirteen lopcodes.  The two remaining bytes, called the `Y' and `Z'
+fields, or the `YZ' field (a 16-bit big-endian number), are used for
+various purposes different for each lopcode.  As documented in
+`http://www-cs-faculty.stanford.edu/~knuth/mmixal-intro.ps.gz', the
+lopcodes are:
+
+`lop_quote'
+     0x98000001.  The next word is contents, regardless of whether it
+     starts with 0x98 or not.
+
+`lop_loc'
+     0x9801YYZZ, where `Z' is 1 or 2.  This is a location directive,
+     setting the location for the next data to the next 32-bit word
+     (for Z = 1) or 64-bit word (for Z = 2), plus Y * 2^56.  Normally
+     `Y' is 0 for the text segment and 2 for the data segment.
+
+`lop_skip'
+     0x9802YYZZ.  Increase the current location by `YZ' bytes.
+
+`lop_fixo'
+     0x9803YYZZ, where `Z' is 1 or 2.  Store the current location as 64
+     bits into the location pointed to by the next 32-bit (Z = 1) or
+     64-bit (Z = 2) word, plus Y * 2^56.
+
+`lop_fixr'
+     0x9804YYZZ.  `YZ' is stored into the current location plus 2 - 4 *
+     YZ.
+
+`lop_fixrx'
+     0x980500ZZ.  `Z' is 16 or 24.  A value `L' derived from the
+     following 32-bit word are used in a manner similar to `YZ' in
+     lop_fixr: it is xor:ed into the current location minus 4 * L.  The
+     first byte of the word is 0 or 1.  If it is 1, then L = (LOWEST 24
+     BITS OF WORD) - 2^Z, if 0, then L = (LOWEST 24 BITS OF WORD).
+
+`lop_file'
+     0x9806YYZZ.  `Y' is the file number, `Z' is count of 32-bit words.
+     Set the file number to `Y' and the line counter to 0.  The next Z
+     * 4 bytes contain the file name, padded with zeros if the count is
+     not a multiple of four.  The same `Y' may occur multiple times,
+     but `Z' must be 0 for all but the first occurrence.
+
+`lop_line'
+     0x9807YYZZ.  `YZ' is the line number.  Together with lop_file, it
+     forms the source location for the next 32-bit word.  Note that for
+     each non-lopcode 32-bit word, line numbers are assumed incremented
+     by one.
+
+`lop_spec'
+     0x9808YYZZ.  `YZ' is the type number.  Data until the next lopcode
+     other than lop_quote forms special data of type `YZ'.  *Note mmo
+     section mapping::.
+
+     Other types than 80, (or type 80 with a content that does not
+     parse) is stored in sections named `.MMIX.spec_data.N' where N is
+     the `YZ'-type.  The flags for such a sections say not to allocate
+     or load the data.  The vma is 0.  Contents of multiple occurrences
+     of special data N is concatenated to the data of the previous
+     lop_spec Ns.  The location in data or code at which the lop_spec
+     occurred is lost.
+
+`lop_pre'
+     0x980901ZZ.  The first lopcode in a file.  The `Z' field forms the
+     length of header information in 32-bit words, where the first word
+     tells the time in seconds since `00:00:00 GMT Jan 1 1970'.
+
+`lop_post'
+     0x980a00ZZ.  Z > 32.  This lopcode follows after all
+     content-generating lopcodes in a program.  The `Z' field denotes
+     the value of `rG' at the beginning of the program.  The following
+     256 - Z big-endian 64-bit words are loaded into global registers
+     `$G' ... `$255'.
+
+`lop_stab'
+     0x980b0000.  The next-to-last lopcode in a program.  Must follow
+     immediately after the lop_post lopcode and its data.  After this
+     lopcode follows all symbols in a compressed format (*note
+     Symbol-table::).
+
+`lop_end'
+     0x980cYYZZ.  The last lopcode in a program.  It must follow the
+     lop_stab lopcode and its data.  The `YZ' field contains the number
+     of 32-bit words of symbol table information after the preceding
+     lop_stab lopcode.
+
+   Note that the lopcode "fixups"; `lop_fixr', `lop_fixrx' and
+`lop_fixo' are not generated by BFD, but are handled.  They are
+generated by `mmixal'.
+
+   This trivial one-label, one-instruction file:
+
+      :Main TRAP 1,2,3
+
+   can be represented this way in mmo:
+
+      0x98090101 - lop_pre, one 32-bit word with timestamp.
+      <timestamp>
+      0x98010002 - lop_loc, text segment, using a 64-bit address.
+                   Note that mmixal does not emit this for the file above.
+      0x00000000 - Address, high 32 bits.
+      0x00000000 - Address, low 32 bits.
+      0x98060002 - lop_file, 2 32-bit words for file-name.
+      0x74657374 - "test"
+      0x2e730000 - ".s\0\0"
+      0x98070001 - lop_line, line 1.
+      0x00010203 - TRAP 1,2,3
+      0x980a00ff - lop_post, setting $255 to 0.
+      0x00000000
+      0x00000000
+      0x980b0000 - lop_stab for ":Main" = 0, serial 1.
+      0x203a4040   *Note Symbol-table::.
+      0x10404020
+      0x4d206120
+      0x69016e00
+      0x81000000
+      0x980c0005 - lop_end; symbol table contained five 32-bit words.
+
+
+File: bfd.info,  Node: Symbol-table,  Next: mmo section mapping,  Prev: File layout,  Up: mmo
+
+3.4.2 Symbol table format
+-------------------------
+
+From mmixal.w (or really, the generated mmixal.tex) in
+`http://www-cs-faculty.stanford.edu/~knuth/programs/mmix.tar.gz'):
+"Symbols are stored and retrieved by means of a `ternary search trie',
+following ideas of Bentley and Sedgewick. (See ACM-SIAM Symp. on
+Discrete Algorithms `8' (1997), 360-369; R.Sedgewick, `Algorithms in C'
+(Reading, Mass.  Addison-Wesley, 1998), `15.4'.)  Each trie node stores
+a character, and there are branches to subtries for the cases where a
+given character is less than, equal to, or greater than the character
+in the trie.  There also is a pointer to a symbol table entry if a
+symbol ends at the current node."
+
+   So it's a tree encoded as a stream of bytes.  The stream of bytes
+acts on a single virtual global symbol, adding and removing characters
+and signalling complete symbol points.  Here, we read the stream and
+create symbols at the completion points.
+
+   First, there's a control byte `m'.  If any of the listed bits in `m'
+is nonzero, we execute what stands at the right, in the listed order:
+
+      (MMO3_LEFT)
+      0x40 - Traverse left trie.
+             (Read a new command byte and recurse.)
+
+      (MMO3_SYMBITS)
+      0x2f - Read the next byte as a character and store it in the
+             current character position; increment character position.
+             Test the bits of `m':
+
+             (MMO3_WCHAR)
+             0x80 - The character is 16-bit (so read another byte,
+                    merge into current character.
+
+             (MMO3_TYPEBITS)
+             0xf  - We have a complete symbol; parse the type, value
+                    and serial number and do what should be done
+                    with a symbol.  The type and length information
+                    is in j = (m & 0xf).
+
+                    (MMO3_REGQUAL_BITS)
+                    j == 0xf: A register variable.  The following
+                              byte tells which register.
+                    j <= 8:   An absolute symbol.  Read j bytes as the
+                              big-endian number the symbol equals.
+                              A j = 2 with two zero bytes denotes an
+                              unknown symbol.
+                    j > 8:    As with j <= 8, but add (0x20 << 56)
+                              to the value in the following j - 8
+                              bytes.
+
+                    Then comes the serial number, as a variant of
+                    uleb128, but better named ubeb128:
+                    Read bytes and shift the previous value left 7
+                    (multiply by 128).  Add in the new byte, repeat
+                    until a byte has bit 7 set.  The serial number
+                    is the computed value minus 128.
+
+             (MMO3_MIDDLE)
+             0x20 - Traverse middle trie.  (Read a new command byte
+                    and recurse.)  Decrement character position.
+
+      (MMO3_RIGHT)
+      0x10 - Traverse right trie.  (Read a new command byte and
+             recurse.)
+
+   Let's look again at the `lop_stab' for the trivial file (*note File
+layout::).
+
+      0x980b0000 - lop_stab for ":Main" = 0, serial 1.
+      0x203a4040
+      0x10404020
+      0x4d206120
+      0x69016e00
+      0x81000000
+
+   This forms the trivial trie (note that the path between ":" and "M"
+is redundant):
+
+      203a     ":"
+      40       /
+      40      /
+      10      \
+      40      /
+      40     /
+      204d  "M"
+      2061  "a"
+      2069  "i"
+      016e  "n" is the last character in a full symbol, and
+            with a value represented in one byte.
+      00    The value is 0.
+      81    The serial number is 1.
+
+
+File: bfd.info,  Node: mmo section mapping,  Prev: Symbol-table,  Up: mmo
+
+3.4.3 mmo section mapping
+-------------------------
+
+The implementation in BFD uses special data type 80 (decimal) to
+encapsulate and describe named sections, containing e.g. debug
+information.  If needed, any datum in the encapsulation will be quoted
+using lop_quote.  First comes a 32-bit word holding the number of
+32-bit words containing the zero-terminated zero-padded segment name.
+After the name there's a 32-bit word holding flags describing the
+section type.  Then comes a 64-bit big-endian word with the section
+length (in bytes), then another with the section start address.
+Depending on the type of section, the contents might follow,
+zero-padded to 32-bit boundary.  For a loadable section (such as data
+or code), the contents might follow at some later point, not
+necessarily immediately, as a lop_loc with the same start address as in
+the section description, followed by the contents.  This in effect
+forms a descriptor that must be emitted before the actual contents.
+Sections described this way must not overlap.
+
+   For areas that don't have such descriptors, synthetic sections are
+formed by BFD.  Consecutive contents in the two memory areas
+`0x0000...00' to `0x01ff...ff' and `0x2000...00' to `0x20ff...ff' are
+entered in sections named `.text' and `.data' respectively.  If an area
+is not otherwise described, but would together with a neighboring lower
+area be less than `0x40000000' bytes long, it is joined with the lower
+area and the gap is zero-filled.  For other cases, a new section is
+formed, named `.MMIX.sec.N'.  Here, N is a number, a running count
+through the mmo file, starting at 0.
+
+   A loadable section specified as:
+
+      .section secname,"ax"
+      TETRA 1,2,3,4,-1,-2009
+      BYTE 80
+
+   and linked to address `0x4', is represented by the sequence:
+
+      0x98080050 - lop_spec 80
+      0x00000002 - two 32-bit words for the section name
+      0x7365636e - "secn"
+      0x616d6500 - "ame\0"
+      0x00000033 - flags CODE, READONLY, LOAD, ALLOC
+      0x00000000 - high 32 bits of section length
+      0x0000001c - section length is 28 bytes; 6 * 4 + 1 + alignment to 32 bits
+      0x00000000 - high 32 bits of section address
+      0x00000004 - section address is 4
+      0x98010002 - 64 bits with address of following data
+      0x00000000 - high 32 bits of address
+      0x00000004 - low 32 bits: data starts at address 4
+      0x00000001 - 1
+      0x00000002 - 2
+      0x00000003 - 3
+      0x00000004 - 4
+      0xffffffff - -1
+      0xfffff827 - -2009
+      0x50000000 - 80 as a byte, padded with zeros.
+
+   Note that the lop_spec wrapping does not include the section
+contents.  Compare this to a non-loaded section specified as:
+
+      .section thirdsec
+      TETRA 200001,100002
+      BYTE 38,40
+
+   This, when linked to address `0x200000000000001c', is represented by:
+
+      0x98080050 - lop_spec 80
+      0x00000002 - two 32-bit words for the section name
+      0x7365636e - "thir"
+      0x616d6500 - "dsec"
+      0x00000010 - flag READONLY
+      0x00000000 - high 32 bits of section length
+      0x0000000c - section length is 12 bytes; 2 * 4 + 2 + alignment to 32 bits
+      0x20000000 - high 32 bits of address
+      0x0000001c - low 32 bits of address 0x200000000000001c
+      0x00030d41 - 200001
+      0x000186a2 - 100002
+      0x26280000 - 38, 40 as bytes, padded with zeros
+
+   For the latter example, the section contents must not be loaded in
+memory, and is therefore specified as part of the special data.  The
+address is usually unimportant but might provide information for e.g.
+the DWARF 2 debugging format.
+
+
+File: bfd.info,  Node: GNU Free Documentation License,  Next: Index,  Prev: BFD back ends,  Up: Top
+
+Appendix A GNU Free Documentation License
+*****************************************
+
+                        Version 1.1, March 2000
+
+     Copyright (C) 2000, 2003 Free Software Foundation, Inc.
+     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+     Everyone is permitted to copy and distribute verbatim copies
+     of this license document, but changing it is not allowed.
+
+
+  0. PREAMBLE
+
+     The purpose of this License is to make a manual, textbook, or other
+     written document "free" in the sense of freedom: to assure everyone
+     the effective freedom to copy and redistribute it, with or without
+     modifying it, either commercially or noncommercially.  Secondarily,
+     this License preserves for the author and publisher a way to get
+     credit for their work, while not being considered responsible for
+     modifications made by others.
+
+     This License is a kind of "copyleft", which means that derivative
+     works of the document must themselves be free in the same sense.
+     It complements the GNU General Public License, which is a copyleft
+     license designed for free software.
+
+     We have designed this License in order to use it for manuals for
+     free software, because free software needs free documentation: a
+     free program should come with manuals providing the same freedoms
+     that the software does.  But this License is not limited to
+     software manuals; it can be used for any textual work, regardless
+     of subject matter or whether it is published as a printed book.
+     We recommend this License principally for works whose purpose is
+     instruction or reference.
+
+
+  1. APPLICABILITY AND DEFINITIONS
+
+     This License applies to any manual or other work that contains a
+     notice placed by the copyright holder saying it can be distributed
+     under the terms of this License.  The "Document", below, refers to
+     any such manual or work.  Any member of the public is a licensee,
+     and is addressed as "you."
+
+     A "Modified Version" of the Document means any work containing the
+     Document or a portion of it, either copied verbatim, or with
+     modifications and/or translated into another language.
+
+     A "Secondary Section" is a named appendix or a front-matter
+     section of the Document that deals exclusively with the
+     relationship of the publishers or authors of the Document to the
+     Document's overall subject (or to related matters) and contains
+     nothing that could fall directly within that overall subject.
+     (For example, if the Document is in part a textbook of
+     mathematics, a Secondary Section may not explain any mathematics.)
+     The relationship could be a matter of historical connection with
+     the subject or with related matters, or of legal, commercial,
+     philosophical, ethical or political position regarding them.
+
+     The "Invariant Sections" are certain Secondary Sections whose
+     titles are designated, as being those of Invariant Sections, in
+     the notice that says that the Document is released under this
+     License.
+
+     The "Cover Texts" are certain short passages of text that are
+     listed, as Front-Cover Texts or Back-Cover Texts, in the notice
+     that says that the Document is released under this License.
+
+     A "Transparent" copy of the Document means a machine-readable copy,
+     represented in a format whose specification is available to the
+     general public, whose contents can be viewed and edited directly
+     and straightforwardly with generic text editors or (for images
+     composed of pixels) generic paint programs or (for drawings) some
+     widely available drawing editor, and that is suitable for input to
+     text formatters or for automatic translation to a variety of
+     formats suitable for input to text formatters.  A copy made in an
+     otherwise Transparent file format whose markup has been designed
+     to thwart or discourage subsequent modification by readers is not
+     Transparent.  A copy that is not "Transparent" is called "Opaque."
+
+     Examples of suitable formats for Transparent copies include plain
+     ASCII without markup, Texinfo input format, LaTeX input format,
+     SGML or XML using a publicly available DTD, and
+     standard-conforming simple HTML designed for human modification.
+     Opaque formats include PostScript, PDF, proprietary formats that
+     can be read and edited only by proprietary word processors, SGML
+     or XML for which the DTD and/or processing tools are not generally
+     available, and the machine-generated HTML produced by some word
+     processors for output purposes only.
+
+     The "Title Page" means, for a printed book, the title page itself,
+     plus such following pages as are needed to hold, legibly, the
+     material this License requires to appear in the title page.  For
+     works in formats which do not have any title page as such, "Title
+     Page" means the text near the most prominent appearance of the
+     work's title, preceding the beginning of the body of the text.
+
+  2. VERBATIM COPYING
+
+     You may copy and distribute the Document in any medium, either
+     commercially or noncommercially, provided that this License, the
+     copyright notices, and the license notice saying this License
+     applies to the Document are reproduced in all copies, and that you
+     add no other conditions whatsoever to those of this License.  You
+     may not use technical measures to obstruct or control the reading
+     or further copying of the copies you make or distribute.  However,
+     you may accept compensation in exchange for copies.  If you
+     distribute a large enough number of copies you must also follow
+     the conditions in section 3.
+
+     You may also lend copies, under the same conditions stated above,
+     and you may publicly display copies.
+
+  3. COPYING IN QUANTITY
+
+     If you publish printed copies of the Document numbering more than
+     100, and the Document's license notice requires Cover Texts, you
+     must enclose the copies in covers that carry, clearly and legibly,
+     all these Cover Texts: Front-Cover Texts on the front cover, and
+     Back-Cover Texts on the back cover.  Both covers must also clearly
+     and legibly identify you as the publisher of these copies.  The
+     front cover must present the full title with all words of the
+     title equally prominent and visible.  You may add other material
+     on the covers in addition.  Copying with changes limited to the
+     covers, as long as they preserve the title of the Document and
+     satisfy these conditions, can be treated as verbatim copying in
+     other respects.
+
+     If the required texts for either cover are too voluminous to fit
+     legibly, you should put the first ones listed (as many as fit
+     reasonably) on the actual cover, and continue the rest onto
+     adjacent pages.
+
+     If you publish or distribute Opaque copies of the Document
+     numbering more than 100, you must either include a
+     machine-readable Transparent copy along with each Opaque copy, or
+     state in or with each Opaque copy a publicly-accessible
+     computer-network location containing a complete Transparent copy
+     of the Document, free of added material, which the general
+     network-using public has access to download anonymously at no
+     charge using public-standard network protocols.  If you use the
+     latter option, you must take reasonably prudent steps, when you
+     begin distribution of Opaque copies in quantity, to ensure that
+     this Transparent copy will remain thus accessible at the stated
+     location until at least one year after the last time you
+     distribute an Opaque copy (directly or through your agents or
+     retailers) of that edition to the public.
+
+     It is requested, but not required, that you contact the authors of
+     the Document well before redistributing any large number of
+     copies, to give them a chance to provide you with an updated
+     version of the Document.
+
+  4. MODIFICATIONS
+
+     You may copy and distribute a Modified Version of the Document
+     under the conditions of sections 2 and 3 above, provided that you
+     release the Modified Version under precisely this License, with
+     the Modified Version filling the role of the Document, thus
+     licensing distribution and modification of the Modified Version to
+     whoever possesses a copy of it.  In addition, you must do these
+     things in the Modified Version:
+
+     A. Use in the Title Page (and on the covers, if any) a title
+     distinct    from that of the Document, and from those of previous
+     versions    (which should, if there were any, be listed in the
+     History section    of the Document).  You may use the same title
+     as a previous version    if the original publisher of that version
+     gives permission.
+     B. List on the Title Page, as authors, one or more persons or
+     entities    responsible for authorship of the modifications in the
+     Modified    Version, together with at least five of the principal
+     authors of the    Document (all of its principal authors, if it
+     has less than five).
+     C. State on the Title page the name of the publisher of the
+     Modified Version, as the publisher.
+     D. Preserve all the copyright notices of the Document.
+     E. Add an appropriate copyright notice for your modifications
+     adjacent to the other copyright notices.
+     F. Include, immediately after the copyright notices, a license
+     notice    giving the public permission to use the Modified Version
+     under the    terms of this License, in the form shown in the
+     Addendum below.
+     G. Preserve in that license notice the full lists of Invariant
+     Sections    and required Cover Texts given in the Document's
+     license notice.
+     H. Include an unaltered copy of this License.
+     I. Preserve the section entitled "History", and its title, and add
+     to    it an item stating at least the title, year, new authors, and
+       publisher of the Modified Version as given on the Title Page.
+     If    there is no section entitled "History" in the Document,
+     create one    stating the title, year, authors, and publisher of
+     the Document as    given on its Title Page, then add an item
+     describing the Modified    Version as stated in the previous
+     sentence.
+     J. Preserve the network location, if any, given in the Document for
+       public access to a Transparent copy of the Document, and
+     likewise    the network locations given in the Document for
+     previous versions    it was based on.  These may be placed in the
+     "History" section.     You may omit a network location for a work
+     that was published at    least four years before the Document
+     itself, or if the original    publisher of the version it refers
+     to gives permission.
+     K. In any section entitled "Acknowledgements" or "Dedications",
+     preserve the section's title, and preserve in the section all the
+      substance and tone of each of the contributor acknowledgements
+     and/or dedications given therein.
+     L. Preserve all the Invariant Sections of the Document,
+     unaltered in their text and in their titles.  Section numbers
+     or the equivalent are not considered part of the section titles.
+     M. Delete any section entitled "Endorsements."  Such a section
+     may not be included in the Modified Version.
+     N. Do not retitle any existing section as "Endorsements"    or to
+     conflict in title with any Invariant Section.
+
+     If the Modified Version includes new front-matter sections or
+     appendices that qualify as Secondary Sections and contain no
+     material copied from the Document, you may at your option
+     designate some or all of these sections as invariant.  To do this,
+     add their titles to the list of Invariant Sections in the Modified
+     Version's license notice.  These titles must be distinct from any
+     other section titles.
+
+     You may add a section entitled "Endorsements", provided it contains
+     nothing but endorsements of your Modified Version by various
+     parties-for example, statements of peer review or that the text has
+     been approved by an organization as the authoritative definition
+     of a standard.
+
+     You may add a passage of up to five words as a Front-Cover Text,
+     and a passage of up to 25 words as a Back-Cover Text, to the end
+     of the list of Cover Texts in the Modified Version.  Only one
+     passage of Front-Cover Text and one of Back-Cover Text may be
+     added by (or through arrangements made by) any one entity.  If the
+     Document already includes a cover text for the same cover,
+     previously added by you or by arrangement made by the same entity
+     you are acting on behalf of, you may not add another; but you may
+     replace the old one, on explicit permission from the previous
+     publisher that added the old one.
+
+     The author(s) and publisher(s) of the Document do not by this
+     License give permission to use their names for publicity for or to
+     assert or imply endorsement of any Modified Version.
+
+  5. COMBINING DOCUMENTS
+
+     You may combine the Document with other documents released under
+     this License, under the terms defined in section 4 above for
+     modified versions, provided that you include in the combination
+     all of the Invariant Sections of all of the original documents,
+     unmodified, and list them all as Invariant Sections of your
+     combined work in its license notice.
+
+     The combined work need only contain one copy of this License, and
+     multiple identical Invariant Sections may be replaced with a single
+     copy.  If there are multiple Invariant Sections with the same name
+     but different contents, make the title of each such section unique
+     by adding at the end of it, in parentheses, the name of the
+     original author or publisher of that section if known, or else a
+     unique number.  Make the same adjustment to the section titles in
+     the list of Invariant Sections in the license notice of the
+     combined work.
+
+     In the combination, you must combine any sections entitled
+     "History" in the various original documents, forming one section
+     entitled "History"; likewise combine any sections entitled
+     "Acknowledgements", and any sections entitled "Dedications."  You
+     must delete all sections entitled "Endorsements."
+
+  6. COLLECTIONS OF DOCUMENTS
+
+     You may make a collection consisting of the Document and other
+     documents released under this License, and replace the individual
+     copies of this License in the various documents with a single copy
+     that is included in the collection, provided that you follow the
+     rules of this License for verbatim copying of each of the
+     documents in all other respects.
+
+     You may extract a single document from such a collection, and
+     distribute it individually under this License, provided you insert
+     a copy of this License into the extracted document, and follow
+     this License in all other respects regarding verbatim copying of
+     that document.
+
+  7. AGGREGATION WITH INDEPENDENT WORKS
+
+     A compilation of the Document or its derivatives with other
+     separate and independent documents or works, in or on a volume of
+     a storage or distribution medium, does not as a whole count as a
+     Modified Version of the Document, provided no compilation
+     copyright is claimed for the compilation.  Such a compilation is
+     called an "aggregate", and this License does not apply to the
+     other self-contained works thus compiled with the Document, on
+     account of their being thus compiled, if they are not themselves
+     derivative works of the Document.
+
+     If the Cover Text requirement of section 3 is applicable to these
+     copies of the Document, then if the Document is less than one
+     quarter of the entire aggregate, the Document's Cover Texts may be
+     placed on covers that surround only the Document within the
+     aggregate.  Otherwise they must appear on covers around the whole
+     aggregate.
+
+  8. TRANSLATION
+
+     Translation is considered a kind of modification, so you may
+     distribute translations of the Document under the terms of section
+     4.  Replacing Invariant Sections with translations requires special
+     permission from their copyright holders, but you may include
+     translations of some or all Invariant Sections in addition to the
+     original versions of these Invariant Sections.  You may include a
+     translation of this License provided that you also include the
+     original English version of this License.  In case of a
+     disagreement between the translation and the original English
+     version of this License, the original English version will prevail.
+
+  9. TERMINATION
+
+     You may not copy, modify, sublicense, or distribute the Document
+     except as expressly provided for under this License.  Any other
+     attempt to copy, modify, sublicense or distribute the Document is
+     void, and will automatically terminate your rights under this
+     License.  However, parties who have received copies, or rights,
+     from you under this License will not have their licenses
+     terminated so long as such parties remain in full compliance.
+
+ 10. FUTURE REVISIONS OF THIS LICENSE
+
+     The Free Software Foundation may publish new, revised versions of
+     the GNU Free Documentation License from time to time.  Such new
+     versions will be similar in spirit to the present version, but may
+     differ in detail to address new problems or concerns.  See
+     http://www.gnu.org/copyleft/.
+
+     Each version of the License is given a distinguishing version
+     number.  If the Document specifies that a particular numbered
+     version of this License "or any later version" applies to it, you
+     have the option of following the terms and conditions either of
+     that specified version or of any later version that has been
+     published (not as a draft) by the Free Software Foundation.  If
+     the Document does not specify a version number of this License,
+     you may choose any version ever published (not as a draft) by the
+     Free Software Foundation.
+
+
+ADDENDUM: How to use this License for your documents
+====================================================
+
+To use this License in a document you have written, include a copy of
+the License in the document and put the following copyright and license
+notices just after the title page:
+
+     Copyright (C)  YEAR  YOUR NAME.
+     Permission is granted to copy, distribute and/or modify this document
+     under the terms of the GNU Free Documentation License, Version 1.1
+     or any later version published by the Free Software Foundation;
+     with the Invariant Sections being LIST THEIR TITLES, with the
+     Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
+     A copy of the license is included in the section entitled "GNU
+     Free Documentation License."
+
+   If you have no Invariant Sections, write "with no Invariant Sections"
+instead of saying which ones are invariant.  If you have no Front-Cover
+Texts, write "no Front-Cover Texts" instead of "Front-Cover Texts being
+LIST"; likewise for Back-Cover Texts.
+
+   If your document contains nontrivial examples of program code, we
+recommend releasing these examples in parallel under your choice of
+free software license, such as the GNU General Public License, to
+permit their use in free software.
+
+
+File: bfd.info,  Node: Index,  Prev: GNU Free Documentation License,  Up: Top
+
+Index
+*****
+
+ [index ]
+* Menu:
+
+* _bfd_final_link_relocate:              Relocating the section contents.
+                                                             (line   22)
+* _bfd_generic_link_add_archive_symbols: Adding symbols from an archive.
+                                                             (line   12)
+* _bfd_generic_link_add_one_symbol:      Adding symbols from an object file.
+                                                             (line   19)
+* _bfd_generic_make_empty_symbol:        symbol handling functions.
+                                                             (line   92)
+* _bfd_link_add_symbols in target vector: Adding Symbols to the Hash Table.
+                                                             (line    6)
+* _bfd_link_final_link in target vector: Performing the Final Link.
+                                                             (line    6)
+* _bfd_link_hash_table_create in target vector: Creating a Linker Hash Table.
+                                                             (line    6)
+* _bfd_relocate_contents:                Relocating the section contents.
+                                                             (line   22)
+* _bfd_strip_section_from_output:        section prototypes. (line  242)
+* aout_SIZE_machine_type:                aout.               (line  146)
+* aout_SIZE_mkobject:                    aout.               (line  138)
+* aout_SIZE_new_section_hook:            aout.               (line  175)
+* aout_SIZE_set_arch_mach:               aout.               (line  162)
+* aout_SIZE_some_aout_object_p:          aout.               (line  125)
+* aout_SIZE_swap_exec_header_in:         aout.               (line  101)
+* aout_SIZE_swap_exec_header_out:        aout.               (line  113)
+* arelent_chain:                         typedef arelent.    (line  338)
+* BFD:                                   Overview.           (line    6)
+* BFD canonical format:                  Canonical format.   (line   11)
+* bfd_alloc:                             Opening and Closing.
+                                                             (line  179)
+* bfd_alt_mach_code:                     BFD front end.      (line  588)
+* bfd_arch_bits_per_address:             Architectures.      (line  453)
+* bfd_arch_bits_per_byte:                Architectures.      (line  445)
+* bfd_arch_get_compatible:               Architectures.      (line  388)
+* bfd_arch_list:                         Architectures.      (line  379)
+* bfd_arch_mach_octets_per_byte:         Architectures.      (line  522)
+* bfd_cache_close:                       File Caching.       (line   53)
+* bfd_cache_close_all:                   File Caching.       (line   66)
+* bfd_cache_init:                        File Caching.       (line   45)
+* bfd_cache_lookup:                      File Caching.       (line   32)
+* bfd_cache_lookup_worker:               File Caching.       (line   91)
+* BFD_CACHE_MAX_OPEN macro:              File Caching.       (line   15)
+* bfd_calc_gnu_debuglink_crc32:          Opening and Closing.
+                                                             (line  197)
+* bfd_canonicalize_reloc:                BFD front end.      (line  315)
+* bfd_canonicalize_symtab:               symbol handling functions.
+                                                             (line   50)
+* bfd_check_format:                      Formats.            (line   18)
+* bfd_check_format_matches:              Formats.            (line   49)
+* bfd_check_overflow:                    typedef arelent.    (line  350)
+* bfd_close:                             Opening and Closing.
+                                                             (line  104)
+* bfd_close_all_done:                    Opening and Closing.
+                                                             (line  122)
+* bfd_coff_backend_data:                 coff.               (line  246)
+* bfd_copy_private_bfd_data:             BFD front end.      (line  454)
+* bfd_copy_private_header_data:          BFD front end.      (line  436)
+* bfd_copy_private_section_data:         section prototypes. (line  224)
+* bfd_copy_private_symbol_data:          symbol handling functions.
+                                                             (line  140)
+* bfd_core_file_failing_command:         Core Files.         (line    9)
+* bfd_core_file_failing_signal:          Core Files.         (line   18)
+* bfd_create:                            Opening and Closing.
+                                                             (line  141)
+* bfd_create_gnu_debuglink_section:      Opening and Closing.
+                                                             (line  263)
+* bfd_decode_symclass:                   symbol handling functions.
+                                                             (line  111)
+* bfd_default_arch_struct:               Architectures.      (line  400)
+* bfd_default_compatible:                Architectures.      (line  462)
+* bfd_default_reloc_type_lookup:         howto manager.      (line 1704)
+* bfd_default_scan:                      Architectures.      (line  471)
+* bfd_default_set_arch_mach:             Architectures.      (line  418)
+* bfd_elf_find_section:                  elf.                (line   15)
+* bfd_errmsg:                            BFD front end.      (line  243)
+* bfd_fdopenr:                           Opening and Closing.
+                                                             (line   22)
+* bfd_fill_in_gnu_debuglink_section:     Opening and Closing.
+                                                             (line  277)
+* bfd_find_target:                       bfd_target.         (line  420)
+* bfd_follow_gnu_debuglink:              Opening and Closing.
+                                                             (line  242)
+* bfd_format_string:                     Formats.            (line   76)
+* bfd_generic_discard_group:             section prototypes. (line  264)
+* bfd_generic_gc_sections:               howto manager.      (line 1735)
+* bfd_generic_get_relocated_section_contents: howto manager. (line 1755)
+* bfd_generic_is_group_section:          section prototypes. (line  256)
+* bfd_generic_merge_sections:            howto manager.      (line 1745)
+* bfd_generic_relax_section:             howto manager.      (line 1722)
+* bfd_get_arch:                          Architectures.      (line  429)
+* bfd_get_arch_info:                     Architectures.      (line  481)
+* bfd_get_arch_size:                     BFD front end.      (line  359)
+* bfd_get_error:                         BFD front end.      (line  226)
+* bfd_get_error_handler:                 BFD front end.      (line  294)
+* bfd_get_gp_size:                       BFD front end.      (line  400)
+* bfd_get_mach:                          Architectures.      (line  437)
+* bfd_get_mtime:                         BFD front end.      (line  676)
+* bfd_get_next_mapent:                   Archives.           (line   49)
+* bfd_get_reloc_code_name:               howto manager.      (line 1713)
+* bfd_get_reloc_size:                    typedef arelent.    (line  329)
+* bfd_get_reloc_upper_bound:             BFD front end.      (line  305)
+* bfd_get_section_by_name:               section prototypes. (line   17)
+* bfd_get_section_by_name_if:            section prototypes. (line   31)
+* bfd_get_section_contents:              section prototypes. (line  197)
+* bfd_get_sign_extend_vma:               BFD front end.      (line  372)
+* bfd_get_size <1>:                      Internal.           (line   22)
+* bfd_get_size:                          BFD front end.      (line  685)
+* bfd_get_symtab_upper_bound:            symbol handling functions.
+                                                             (line    6)
+* bfd_get_unique_section_name:           section prototypes. (line   50)
+* bfd_h_put_size:                        Internal.           (line   94)
+* bfd_hash_allocate:                     Creating and Freeing a Hash Table.
+                                                             (line   17)
+* bfd_hash_lookup:                       Looking Up or Entering a String.
+                                                             (line    6)
+* bfd_hash_newfunc:                      Creating and Freeing a Hash Table.
+                                                             (line   12)
+* bfd_hash_set_default_size:             Creating and Freeing a Hash Table.
+                                                             (line   25)
+* bfd_hash_table_free:                   Creating and Freeing a Hash Table.
+                                                             (line   21)
+* bfd_hash_table_init:                   Creating and Freeing a Hash Table.
+                                                             (line    6)
+* bfd_hash_table_init_n:                 Creating and Freeing a Hash Table.
+                                                             (line    6)
+* bfd_hash_traverse:                     Traversing a Hash Table.
+                                                             (line    6)
+* bfd_init:                              Initialization.     (line    8)
+* bfd_install_relocation:                typedef arelent.    (line  391)
+* bfd_is_local_label:                    symbol handling functions.
+                                                             (line   17)
+* bfd_is_local_label_name:               symbol handling functions.
+                                                             (line   26)
+* bfd_is_target_special_symbol:          symbol handling functions.
+                                                             (line   38)
+* bfd_is_undefined_symclass:             symbol handling functions.
+                                                             (line  120)
+* bfd_last_cache:                        File Caching.       (line   22)
+* bfd_link_split_section:                Writing the symbol table.
+                                                             (line   44)
+* bfd_log2:                              Internal.           (line  161)
+* bfd_lookup_arch:                       Architectures.      (line  489)
+* bfd_make_debug_symbol:                 symbol handling functions.
+                                                             (line  102)
+* bfd_make_empty_symbol:                 symbol handling functions.
+                                                             (line   78)
+* bfd_make_readable:                     Opening and Closing.
+                                                             (line  165)
+* bfd_make_section:                      section prototypes. (line   98)
+* bfd_make_section_anyway:               section prototypes. (line   82)
+* bfd_make_section_old_way:              section prototypes. (line   62)
+* bfd_make_writable:                     Opening and Closing.
+                                                             (line  151)
+* bfd_malloc_and_get_section:            section prototypes. (line  214)
+* bfd_map_over_sections:                 section prototypes. (line  124)
+* bfd_merge_private_bfd_data:            BFD front end.      (line  470)
+* bfd_octets_per_byte:                   Architectures.      (line  512)
+* bfd_open_file:                         File Caching.       (line   79)
+* bfd_openr:                             Opening and Closing.
+                                                             (line    6)
+* bfd_openr_iovec:                       Opening and Closing.
+                                                             (line   52)
+* bfd_openr_next_archived_file:          Archives.           (line   75)
+* bfd_openstreamr:                       Opening and Closing.
+                                                             (line   43)
+* bfd_openw:                             Opening and Closing.
+                                                             (line   92)
+* bfd_perform_relocation:                typedef arelent.    (line  366)
+* bfd_perror:                            BFD front end.      (line  252)
+* bfd_preserve_finish:                   BFD front end.      (line  636)
+* bfd_preserve_restore:                  BFD front end.      (line  626)
+* bfd_preserve_save:                     BFD front end.      (line  610)
+* bfd_print_symbol_vandf:                symbol handling functions.
+                                                             (line   70)
+* bfd_printable_arch_mach:               Architectures.      (line  500)
+* bfd_printable_name:                    Architectures.      (line  360)
+* bfd_put_size:                          Internal.           (line   19)
+* BFD_RELOC_12_PCREL:                    howto manager.      (line   39)
+* BFD_RELOC_14:                          howto manager.      (line   31)
+* BFD_RELOC_16:                          howto manager.      (line   30)
+* BFD_RELOC_16_BASEREL:                  howto manager.      (line   80)
+* BFD_RELOC_16_GOT_PCREL:                howto manager.      (line   52)
+* BFD_RELOC_16_GOTOFF:                   howto manager.      (line   55)
+* BFD_RELOC_16_PCREL:                    howto manager.      (line   38)
+* BFD_RELOC_16_PCREL_S2:                 howto manager.      (line   92)
+* BFD_RELOC_16_PLT_PCREL:                howto manager.      (line   63)
+* BFD_RELOC_16_PLTOFF:                   howto manager.      (line   67)
+* BFD_RELOC_16C_ABS20:                   howto manager.      (line 1464)
+* BFD_RELOC_16C_ABS20_C:                 howto manager.      (line 1465)
+* BFD_RELOC_16C_ABS24:                   howto manager.      (line 1466)
+* BFD_RELOC_16C_ABS24_C:                 howto manager.      (line 1467)
+* BFD_RELOC_16C_DISP04:                  howto manager.      (line 1444)
+* BFD_RELOC_16C_DISP04_C:                howto manager.      (line 1445)
+* BFD_RELOC_16C_DISP08:                  howto manager.      (line 1446)
+* BFD_RELOC_16C_DISP08_C:                howto manager.      (line 1447)
+* BFD_RELOC_16C_DISP16:                  howto manager.      (line 1448)
+* BFD_RELOC_16C_DISP16_C:                howto manager.      (line 1449)
+* BFD_RELOC_16C_DISP24:                  howto manager.      (line 1450)
+* BFD_RELOC_16C_DISP24_C:                howto manager.      (line 1451)
+* BFD_RELOC_16C_DISP24a:                 howto manager.      (line 1452)
+* BFD_RELOC_16C_DISP24a_C:               howto manager.      (line 1453)
+* BFD_RELOC_16C_IMM04:                   howto manager.      (line 1468)
+* BFD_RELOC_16C_IMM04_C:                 howto manager.      (line 1469)
+* BFD_RELOC_16C_IMM16:                   howto manager.      (line 1470)
+* BFD_RELOC_16C_IMM16_C:                 howto manager.      (line 1471)
+* BFD_RELOC_16C_IMM20:                   howto manager.      (line 1472)
+* BFD_RELOC_16C_IMM20_C:                 howto manager.      (line 1473)
+* BFD_RELOC_16C_IMM24:                   howto manager.      (line 1474)
+* BFD_RELOC_16C_IMM24_C:                 howto manager.      (line 1475)
+* BFD_RELOC_16C_IMM32:                   howto manager.      (line 1476)
+* BFD_RELOC_16C_IMM32_C:                 howto manager.      (line 1477)
+* BFD_RELOC_16C_NUM08:                   howto manager.      (line 1438)
+* BFD_RELOC_16C_NUM08_C:                 howto manager.      (line 1439)
+* BFD_RELOC_16C_NUM16:                   howto manager.      (line 1440)
+* BFD_RELOC_16C_NUM16_C:                 howto manager.      (line 1441)
+* BFD_RELOC_16C_NUM32:                   howto manager.      (line 1442)
+* BFD_RELOC_16C_NUM32_C:                 howto manager.      (line 1443)
+* BFD_RELOC_16C_REG04:                   howto manager.      (line 1454)
+* BFD_RELOC_16C_REG04_C:                 howto manager.      (line 1455)
+* BFD_RELOC_16C_REG04a:                  howto manager.      (line 1456)
+* BFD_RELOC_16C_REG04a_C:                howto manager.      (line 1457)
+* BFD_RELOC_16C_REG14:                   howto manager.      (line 1458)
+* BFD_RELOC_16C_REG14_C:                 howto manager.      (line 1459)
+* BFD_RELOC_16C_REG16:                   howto manager.      (line 1460)
+* BFD_RELOC_16C_REG16_C:                 howto manager.      (line 1461)
+* BFD_RELOC_16C_REG20:                   howto manager.      (line 1462)
+* BFD_RELOC_16C_REG20_C:                 howto manager.      (line 1463)
+* BFD_RELOC_23_PCREL_S2:                 howto manager.      (line   93)
+* BFD_RELOC_24:                          howto manager.      (line   29)
+* BFD_RELOC_24_PCREL:                    howto manager.      (line   37)
+* BFD_RELOC_24_PLT_PCREL:                howto manager.      (line   62)
+* BFD_RELOC_26:                          howto manager.      (line   28)
+* BFD_RELOC_32:                          howto manager.      (line   27)
+* BFD_RELOC_32_BASEREL:                  howto manager.      (line   79)
+* BFD_RELOC_32_GOT_PCREL:                howto manager.      (line   51)
+* BFD_RELOC_32_GOTOFF:                   howto manager.      (line   54)
+* BFD_RELOC_32_PCREL:                    howto manager.      (line   36)
+* BFD_RELOC_32_PCREL_S2:                 howto manager.      (line   91)
+* BFD_RELOC_32_PLT_PCREL:                howto manager.      (line   61)
+* BFD_RELOC_32_PLTOFF:                   howto manager.      (line   66)
+* BFD_RELOC_32_SECREL:                   howto manager.      (line   48)
+* BFD_RELOC_386_COPY:                    howto manager.      (line  422)
+* BFD_RELOC_386_GLOB_DAT:                howto manager.      (line  423)
+* BFD_RELOC_386_GOT32:                   howto manager.      (line  420)
+* BFD_RELOC_386_GOTOFF:                  howto manager.      (line  426)
+* BFD_RELOC_386_GOTPC:                   howto manager.      (line  427)
+* BFD_RELOC_386_JUMP_SLOT:               howto manager.      (line  424)
+* BFD_RELOC_386_PLT32:                   howto manager.      (line  421)
+* BFD_RELOC_386_RELATIVE:                howto manager.      (line  425)
+* BFD_RELOC_386_TLS_DTPMOD32:            howto manager.      (line  437)
+* BFD_RELOC_386_TLS_DTPOFF32:            howto manager.      (line  438)
+* BFD_RELOC_386_TLS_GD:                  howto manager.      (line  432)
+* BFD_RELOC_386_TLS_GOTIE:               howto manager.      (line  430)
+* BFD_RELOC_386_TLS_IE:                  howto manager.      (line  429)
+* BFD_RELOC_386_TLS_IE_32:               howto manager.      (line  435)
+* BFD_RELOC_386_TLS_LDM:                 howto manager.      (line  433)
+* BFD_RELOC_386_TLS_LDO_32:              howto manager.      (line  434)
+* BFD_RELOC_386_TLS_LE:                  howto manager.      (line  431)
+* BFD_RELOC_386_TLS_LE_32:               howto manager.      (line  436)
+* BFD_RELOC_386_TLS_TPOFF:               howto manager.      (line  428)
+* BFD_RELOC_386_TLS_TPOFF32:             howto manager.      (line  439)
+* BFD_RELOC_390_12:                      howto manager.      (line 1155)
+* BFD_RELOC_390_20:                      howto manager.      (line 1255)
+* BFD_RELOC_390_COPY:                    howto manager.      (line 1164)
+* BFD_RELOC_390_GLOB_DAT:                howto manager.      (line 1167)
+* BFD_RELOC_390_GOT12:                   howto manager.      (line 1158)
+* BFD_RELOC_390_GOT16:                   howto manager.      (line 1179)
+* BFD_RELOC_390_GOT20:                   howto manager.      (line 1256)
+* BFD_RELOC_390_GOT64:                   howto manager.      (line 1197)
+* BFD_RELOC_390_GOTENT:                  howto manager.      (line 1203)
+* BFD_RELOC_390_GOTOFF64:                howto manager.      (line 1206)
+* BFD_RELOC_390_GOTPC:                   howto manager.      (line 1176)
+* BFD_RELOC_390_GOTPCDBL:                howto manager.      (line 1194)
+* BFD_RELOC_390_GOTPLT12:                howto manager.      (line 1209)
+* BFD_RELOC_390_GOTPLT16:                howto manager.      (line 1212)
+* BFD_RELOC_390_GOTPLT20:                howto manager.      (line 1257)
+* BFD_RELOC_390_GOTPLT32:                howto manager.      (line 1215)
+* BFD_RELOC_390_GOTPLT64:                howto manager.      (line 1218)
+* BFD_RELOC_390_GOTPLTENT:               howto manager.      (line 1221)
+* BFD_RELOC_390_JMP_SLOT:                howto manager.      (line 1170)
+* BFD_RELOC_390_PC16DBL:                 howto manager.      (line 1182)
+* BFD_RELOC_390_PC32DBL:                 howto manager.      (line 1188)
+* BFD_RELOC_390_PLT16DBL:                howto manager.      (line 1185)
+* BFD_RELOC_390_PLT32:                   howto manager.      (line 1161)
+* BFD_RELOC_390_PLT32DBL:                howto manager.      (line 1191)
+* BFD_RELOC_390_PLT64:                   howto manager.      (line 1200)
+* BFD_RELOC_390_PLTOFF16:                howto manager.      (line 1224)
+* BFD_RELOC_390_PLTOFF32:                howto manager.      (line 1227)
+* BFD_RELOC_390_PLTOFF64:                howto manager.      (line 1230)
+* BFD_RELOC_390_RELATIVE:                howto manager.      (line 1173)
+* BFD_RELOC_390_TLS_DTPMOD:              howto manager.      (line 1250)
+* BFD_RELOC_390_TLS_DTPOFF:              howto manager.      (line 1251)
+* BFD_RELOC_390_TLS_GD32:                howto manager.      (line 1236)
+* BFD_RELOC_390_TLS_GD64:                howto manager.      (line 1237)
+* BFD_RELOC_390_TLS_GDCALL:              howto manager.      (line 1234)
+* BFD_RELOC_390_TLS_GOTIE12:             howto manager.      (line 1238)
+* BFD_RELOC_390_TLS_GOTIE20:             howto manager.      (line 1258)
+* BFD_RELOC_390_TLS_GOTIE32:             howto manager.      (line 1239)
+* BFD_RELOC_390_TLS_GOTIE64:             howto manager.      (line 1240)
+* BFD_RELOC_390_TLS_IE32:                howto manager.      (line 1243)
+* BFD_RELOC_390_TLS_IE64:                howto manager.      (line 1244)
+* BFD_RELOC_390_TLS_IEENT:               howto manager.      (line 1245)
+* BFD_RELOC_390_TLS_LDCALL:              howto manager.      (line 1235)
+* BFD_RELOC_390_TLS_LDM32:               howto manager.      (line 1241)
+* BFD_RELOC_390_TLS_LDM64:               howto manager.      (line 1242)
+* BFD_RELOC_390_TLS_LDO32:               howto manager.      (line 1248)
+* BFD_RELOC_390_TLS_LDO64:               howto manager.      (line 1249)
+* BFD_RELOC_390_TLS_LE32:                howto manager.      (line 1246)
+* BFD_RELOC_390_TLS_LE64:                howto manager.      (line 1247)
+* BFD_RELOC_390_TLS_LOAD:                howto manager.      (line 1233)
+* BFD_RELOC_390_TLS_TPOFF:               howto manager.      (line 1252)
+* BFD_RELOC_64:                          howto manager.      (line   26)
+* BFD_RELOC_64_PCREL:                    howto manager.      (line   35)
+* BFD_RELOC_64_PLT_PCREL:                howto manager.      (line   60)
+* BFD_RELOC_64_PLTOFF:                   howto manager.      (line   65)
+* BFD_RELOC_68K_GLOB_DAT:                howto manager.      (line   74)
+* BFD_RELOC_68K_JMP_SLOT:                howto manager.      (line   75)
+* BFD_RELOC_68K_RELATIVE:                howto manager.      (line   76)
+* BFD_RELOC_8:                           howto manager.      (line   32)
+* BFD_RELOC_860_COPY:                    howto manager.      (line 1543)
+* BFD_RELOC_860_GLOB_DAT:                howto manager.      (line 1544)
+* BFD_RELOC_860_HAGOT:                   howto manager.      (line 1569)
+* BFD_RELOC_860_HAGOTOFF:                howto manager.      (line 1570)
+* BFD_RELOC_860_HAPC:                    howto manager.      (line 1571)
+* BFD_RELOC_860_HIGH:                    howto manager.      (line 1572)
+* BFD_RELOC_860_HIGHADJ:                 howto manager.      (line 1568)
+* BFD_RELOC_860_HIGOT:                   howto manager.      (line 1573)
+* BFD_RELOC_860_HIGOTOFF:                howto manager.      (line 1574)
+* BFD_RELOC_860_JUMP_SLOT:               howto manager.      (line 1545)
+* BFD_RELOC_860_LOGOT0:                  howto manager.      (line 1557)
+* BFD_RELOC_860_LOGOT1:                  howto manager.      (line 1559)
+* BFD_RELOC_860_LOGOTOFF0:               howto manager.      (line 1561)
+* BFD_RELOC_860_LOGOTOFF1:               howto manager.      (line 1563)
+* BFD_RELOC_860_LOGOTOFF2:               howto manager.      (line 1565)
+* BFD_RELOC_860_LOGOTOFF3:               howto manager.      (line 1566)
+* BFD_RELOC_860_LOPC:                    howto manager.      (line 1567)
+* BFD_RELOC_860_LOW0:                    howto manager.      (line 1550)
+* BFD_RELOC_860_LOW1:                    howto manager.      (line 1552)
+* BFD_RELOC_860_LOW2:                    howto manager.      (line 1554)
+* BFD_RELOC_860_LOW3:                    howto manager.      (line 1556)
+* BFD_RELOC_860_PC16:                    howto manager.      (line 1549)
+* BFD_RELOC_860_PC26:                    howto manager.      (line 1547)
+* BFD_RELOC_860_PLT26:                   howto manager.      (line 1548)
+* BFD_RELOC_860_RELATIVE:                howto manager.      (line 1546)
+* BFD_RELOC_860_SPGOT0:                  howto manager.      (line 1558)
+* BFD_RELOC_860_SPGOT1:                  howto manager.      (line 1560)
+* BFD_RELOC_860_SPGOTOFF0:               howto manager.      (line 1562)
+* BFD_RELOC_860_SPGOTOFF1:               howto manager.      (line 1564)
+* BFD_RELOC_860_SPLIT0:                  howto manager.      (line 1551)
+* BFD_RELOC_860_SPLIT1:                  howto manager.      (line 1553)
+* BFD_RELOC_860_SPLIT2:                  howto manager.      (line 1555)
+* BFD_RELOC_8_BASEREL:                   howto manager.      (line   84)
+* BFD_RELOC_8_FFnn:                      howto manager.      (line   88)
+* BFD_RELOC_8_GOT_PCREL:                 howto manager.      (line   53)
+* BFD_RELOC_8_GOTOFF:                    howto manager.      (line   59)
+* BFD_RELOC_8_PCREL:                     howto manager.      (line   40)
+* BFD_RELOC_8_PLT_PCREL:                 howto manager.      (line   64)
+* BFD_RELOC_8_PLTOFF:                    howto manager.      (line   71)
+* BFD_RELOC_ALPHA_BRSGP:                 howto manager.      (line  259)
+* BFD_RELOC_ALPHA_CODEADDR:              howto manager.      (line  250)
+* BFD_RELOC_ALPHA_DTPMOD64:              howto manager.      (line  266)
+* BFD_RELOC_ALPHA_DTPREL16:              howto manager.      (line  271)
+* BFD_RELOC_ALPHA_DTPREL64:              howto manager.      (line  268)
+* BFD_RELOC_ALPHA_DTPREL_HI16:           howto manager.      (line  269)
+* BFD_RELOC_ALPHA_DTPREL_LO16:           howto manager.      (line  270)
+* BFD_RELOC_ALPHA_ELF_LITERAL:           howto manager.      (line  215)
+* BFD_RELOC_ALPHA_GOTDTPREL16:           howto manager.      (line  267)
+* BFD_RELOC_ALPHA_GOTTPREL16:            howto manager.      (line  272)
+* BFD_RELOC_ALPHA_GPDISP:                howto manager.      (line  209)
+* BFD_RELOC_ALPHA_GPDISP_HI16:           howto manager.      (line  195)
+* BFD_RELOC_ALPHA_GPDISP_LO16:           howto manager.      (line  203)
+* BFD_RELOC_ALPHA_GPREL_HI16:            howto manager.      (line  254)
+* BFD_RELOC_ALPHA_GPREL_LO16:            howto manager.      (line  255)
+* BFD_RELOC_ALPHA_HINT:                  howto manager.      (line  241)
+* BFD_RELOC_ALPHA_LINKAGE:               howto manager.      (line  246)
+* BFD_RELOC_ALPHA_LITERAL:               howto manager.      (line  214)
+* BFD_RELOC_ALPHA_LITUSE:                howto manager.      (line  216)
+* BFD_RELOC_ALPHA_TLSGD:                 howto manager.      (line  264)
+* BFD_RELOC_ALPHA_TLSLDM:                howto manager.      (line  265)
+* BFD_RELOC_ALPHA_TPREL16:               howto manager.      (line  276)
+* BFD_RELOC_ALPHA_TPREL64:               howto manager.      (line  273)
+* BFD_RELOC_ALPHA_TPREL_HI16:            howto manager.      (line  274)
+* BFD_RELOC_ALPHA_TPREL_LO16:            howto manager.      (line  275)
+* BFD_RELOC_ARC_B22_PCREL:               howto manager.      (line  754)
+* BFD_RELOC_ARC_B26:                     howto manager.      (line  759)
+* BFD_RELOC_ARM_ADR_IMM:                 howto manager.      (line  615)
+* BFD_RELOC_ARM_ADRL_IMMEDIATE:          howto manager.      (line  607)
+* BFD_RELOC_ARM_COPY:                    howto manager.      (line  628)
+* BFD_RELOC_ARM_CP_OFF_IMM:              howto manager.      (line  613)
+* BFD_RELOC_ARM_CP_OFF_IMM_S2:           howto manager.      (line  614)
+* BFD_RELOC_ARM_GLOB_DAT:                howto manager.      (line  629)
+* BFD_RELOC_ARM_GOT12:                   howto manager.      (line  625)
+* BFD_RELOC_ARM_GOT32:                   howto manager.      (line  626)
+* BFD_RELOC_ARM_GOTOFF:                  howto manager.      (line  632)
+* BFD_RELOC_ARM_GOTPC:                   howto manager.      (line  633)
+* BFD_RELOC_ARM_HWLITERAL:               howto manager.      (line  620)
+* BFD_RELOC_ARM_IMMEDIATE:               howto manager.      (line  606)
+* BFD_RELOC_ARM_IN_POOL:                 howto manager.      (line  618)
+* BFD_RELOC_ARM_JUMP_SLOT:               howto manager.      (line  627)
+* BFD_RELOC_ARM_LDR_IMM:                 howto manager.      (line  616)
+* BFD_RELOC_ARM_LITERAL:                 howto manager.      (line  617)
+* BFD_RELOC_ARM_MULTI:                   howto manager.      (line  612)
+* BFD_RELOC_ARM_OFFSET_IMM:              howto manager.      (line  608)
+* BFD_RELOC_ARM_OFFSET_IMM8:             howto manager.      (line  619)
+* BFD_RELOC_ARM_PCREL_BLX:               howto manager.      (line  596)
+* BFD_RELOC_ARM_PCREL_BRANCH:            howto manager.      (line  592)
+* BFD_RELOC_ARM_PLT32:                   howto manager.      (line  630)
+* BFD_RELOC_ARM_PREL31:                  howto manager.      (line  652)
+* BFD_RELOC_ARM_RELATIVE:                howto manager.      (line  631)
+* BFD_RELOC_ARM_ROSEGREL32:              howto manager.      (line  641)
+* BFD_RELOC_ARM_SBREL32:                 howto manager.      (line  644)
+* BFD_RELOC_ARM_SHIFT_IMM:               howto manager.      (line  609)
+* BFD_RELOC_ARM_SMI:                     howto manager.      (line  610)
+* BFD_RELOC_ARM_SWI:                     howto manager.      (line  611)
+* BFD_RELOC_ARM_TARGET1:                 howto manager.      (line  637)
+* BFD_RELOC_ARM_TARGET2:                 howto manager.      (line  647)
+* BFD_RELOC_ARM_THUMB_ADD:               howto manager.      (line  621)
+* BFD_RELOC_ARM_THUMB_IMM:               howto manager.      (line  622)
+* BFD_RELOC_ARM_THUMB_OFFSET:            howto manager.      (line  624)
+* BFD_RELOC_ARM_THUMB_SHIFT:             howto manager.      (line  623)
+* BFD_RELOC_AVR_13_PCREL:                howto manager.      (line 1076)
+* BFD_RELOC_AVR_16_PM:                   howto manager.      (line 1080)
+* BFD_RELOC_AVR_6:                       howto manager.      (line 1147)
+* BFD_RELOC_AVR_6_ADIW:                  howto manager.      (line 1151)
+* BFD_RELOC_AVR_7_PCREL:                 howto manager.      (line 1072)
+* BFD_RELOC_AVR_CALL:                    howto manager.      (line 1139)
+* BFD_RELOC_AVR_HH8_LDI:                 howto manager.      (line 1092)
+* BFD_RELOC_AVR_HH8_LDI_NEG:             howto manager.      (line 1107)
+* BFD_RELOC_AVR_HH8_LDI_PM:              howto manager.      (line 1120)
+* BFD_RELOC_AVR_HH8_LDI_PM_NEG:          howto manager.      (line 1134)
+* BFD_RELOC_AVR_HI8_LDI:                 howto manager.      (line 1088)
+* BFD_RELOC_AVR_HI8_LDI_NEG:             howto manager.      (line 1102)
+* BFD_RELOC_AVR_HI8_LDI_PM:              howto manager.      (line 1116)
+* BFD_RELOC_AVR_HI8_LDI_PM_NEG:          howto manager.      (line 1129)
+* BFD_RELOC_AVR_LDI:                     howto manager.      (line 1143)
+* BFD_RELOC_AVR_LO8_LDI:                 howto manager.      (line 1084)
+* BFD_RELOC_AVR_LO8_LDI_NEG:             howto manager.      (line 1097)
+* BFD_RELOC_AVR_LO8_LDI_PM:              howto manager.      (line 1112)
+* BFD_RELOC_AVR_LO8_LDI_PM_NEG:          howto manager.      (line 1125)
+* bfd_reloc_code_type:                   howto manager.      (line   10)
+* BFD_RELOC_CRIS_16_GOT:                 howto manager.      (line 1524)
+* BFD_RELOC_CRIS_16_GOTPLT:              howto manager.      (line 1530)
+* BFD_RELOC_CRIS_32_GOT:                 howto manager.      (line 1521)
+* BFD_RELOC_CRIS_32_GOTPLT:              howto manager.      (line 1527)
+* BFD_RELOC_CRIS_32_GOTREL:              howto manager.      (line 1533)
+* BFD_RELOC_CRIS_32_PLT_GOTREL:          howto manager.      (line 1536)
+* BFD_RELOC_CRIS_32_PLT_PCREL:           howto manager.      (line 1539)
+* BFD_RELOC_CRIS_BDISP8:                 howto manager.      (line 1502)
+* BFD_RELOC_CRIS_COPY:                   howto manager.      (line 1515)
+* BFD_RELOC_CRIS_GLOB_DAT:               howto manager.      (line 1516)
+* BFD_RELOC_CRIS_JUMP_SLOT:              howto manager.      (line 1517)
+* BFD_RELOC_CRIS_LAPCQ_OFFSET:           howto manager.      (line 1510)
+* BFD_RELOC_CRIS_RELATIVE:               howto manager.      (line 1518)
+* BFD_RELOC_CRIS_SIGNED_16:              howto manager.      (line 1508)
+* BFD_RELOC_CRIS_SIGNED_6:               howto manager.      (line 1504)
+* BFD_RELOC_CRIS_SIGNED_8:               howto manager.      (line 1506)
+* BFD_RELOC_CRIS_UNSIGNED_16:            howto manager.      (line 1509)
+* BFD_RELOC_CRIS_UNSIGNED_4:             howto manager.      (line 1511)
+* BFD_RELOC_CRIS_UNSIGNED_5:             howto manager.      (line 1503)
+* BFD_RELOC_CRIS_UNSIGNED_6:             howto manager.      (line 1505)
+* BFD_RELOC_CRIS_UNSIGNED_8:             howto manager.      (line 1507)
+* BFD_RELOC_CRX_ABS16:                   howto manager.      (line 1490)
+* BFD_RELOC_CRX_ABS32:                   howto manager.      (line 1491)
+* BFD_RELOC_CRX_IMM16:                   howto manager.      (line 1495)
+* BFD_RELOC_CRX_IMM32:                   howto manager.      (line 1496)
+* BFD_RELOC_CRX_NUM16:                   howto manager.      (line 1493)
+* BFD_RELOC_CRX_NUM32:                   howto manager.      (line 1494)
+* BFD_RELOC_CRX_NUM8:                    howto manager.      (line 1492)
+* BFD_RELOC_CRX_REGREL12:                howto manager.      (line 1486)
+* BFD_RELOC_CRX_REGREL22:                howto manager.      (line 1487)
+* BFD_RELOC_CRX_REGREL28:                howto manager.      (line 1488)
+* BFD_RELOC_CRX_REGREL32:                howto manager.      (line 1489)
+* BFD_RELOC_CRX_REL16:                   howto manager.      (line 1483)
+* BFD_RELOC_CRX_REL24:                   howto manager.      (line 1484)
+* BFD_RELOC_CRX_REL32:                   howto manager.      (line 1485)
+* BFD_RELOC_CRX_REL4:                    howto manager.      (line 1480)
+* BFD_RELOC_CRX_REL8:                    howto manager.      (line 1481)
+* BFD_RELOC_CRX_REL8_CMP:                howto manager.      (line 1482)
+* BFD_RELOC_CRX_SWITCH16:                howto manager.      (line 1498)
+* BFD_RELOC_CRX_SWITCH32:                howto manager.      (line 1499)
+* BFD_RELOC_CRX_SWITCH8:                 howto manager.      (line 1497)
+* BFD_RELOC_CTOR:                        howto manager.      (line  586)
+* BFD_RELOC_D10V_10_PCREL_L:             howto manager.      (line  768)
+* BFD_RELOC_D10V_10_PCREL_R:             howto manager.      (line  764)
+* BFD_RELOC_D10V_18:                     howto manager.      (line  773)
+* BFD_RELOC_D10V_18_PCREL:               howto manager.      (line  776)
+* BFD_RELOC_D30V_15:                     howto manager.      (line  791)
+* BFD_RELOC_D30V_15_PCREL:               howto manager.      (line  795)
+* BFD_RELOC_D30V_15_PCREL_R:             howto manager.      (line  799)
+* BFD_RELOC_D30V_21:                     howto manager.      (line  804)
+* BFD_RELOC_D30V_21_PCREL:               howto manager.      (line  808)
+* BFD_RELOC_D30V_21_PCREL_R:             howto manager.      (line  812)
+* BFD_RELOC_D30V_32:                     howto manager.      (line  817)
+* BFD_RELOC_D30V_32_PCREL:               howto manager.      (line  820)
+* BFD_RELOC_D30V_6:                      howto manager.      (line  779)
+* BFD_RELOC_D30V_9_PCREL:                howto manager.      (line  782)
+* BFD_RELOC_D30V_9_PCREL_R:              howto manager.      (line  786)
+* BFD_RELOC_DLX_HI16_S:                  howto manager.      (line  823)
+* BFD_RELOC_DLX_JMP26:                   howto manager.      (line  829)
+* BFD_RELOC_DLX_LO16:                    howto manager.      (line  826)
+* BFD_RELOC_FR30_10_IN_8:                howto manager.      (line 1002)
+* BFD_RELOC_FR30_12_PCREL:               howto manager.      (line 1010)
+* BFD_RELOC_FR30_20:                     howto manager.      (line  986)
+* BFD_RELOC_FR30_48:                     howto manager.      (line  983)
+* BFD_RELOC_FR30_6_IN_4:                 howto manager.      (line  990)
+* BFD_RELOC_FR30_8_IN_8:                 howto manager.      (line  994)
+* BFD_RELOC_FR30_9_IN_8:                 howto manager.      (line  998)
+* BFD_RELOC_FR30_9_PCREL:                howto manager.      (line 1006)
+* BFD_RELOC_FRV_FUNCDESC:                howto manager.      (line  364)
+* BFD_RELOC_FRV_FUNCDESC_GOT12:          howto manager.      (line  365)
+* BFD_RELOC_FRV_FUNCDESC_GOTHI:          howto manager.      (line  366)
+* BFD_RELOC_FRV_FUNCDESC_GOTLO:          howto manager.      (line  367)
+* BFD_RELOC_FRV_FUNCDESC_GOTOFF12:       howto manager.      (line  369)
+* BFD_RELOC_FRV_FUNCDESC_GOTOFFHI:       howto manager.      (line  370)
+* BFD_RELOC_FRV_FUNCDESC_GOTOFFLO:       howto manager.      (line  371)
+* BFD_RELOC_FRV_FUNCDESC_VALUE:          howto manager.      (line  368)
+* BFD_RELOC_FRV_GETTLSOFF:               howto manager.      (line  375)
+* BFD_RELOC_FRV_GETTLSOFF_RELAX:         howto manager.      (line  388)
+* BFD_RELOC_FRV_GOT12:                   howto manager.      (line  361)
+* BFD_RELOC_FRV_GOTHI:                   howto manager.      (line  362)
+* BFD_RELOC_FRV_GOTLO:                   howto manager.      (line  363)
+* BFD_RELOC_FRV_GOTOFF12:                howto manager.      (line  372)
+* BFD_RELOC_FRV_GOTOFFHI:                howto manager.      (line  373)
+* BFD_RELOC_FRV_GOTOFFLO:                howto manager.      (line  374)
+* BFD_RELOC_FRV_GOTTLSDESC12:            howto manager.      (line  377)
+* BFD_RELOC_FRV_GOTTLSDESCHI:            howto manager.      (line  378)
+* BFD_RELOC_FRV_GOTTLSDESCLO:            howto manager.      (line  379)
+* BFD_RELOC_FRV_GOTTLSOFF12:             howto manager.      (line  383)
+* BFD_RELOC_FRV_GOTTLSOFFHI:             howto manager.      (line  384)
+* BFD_RELOC_FRV_GOTTLSOFFLO:             howto manager.      (line  385)
+* BFD_RELOC_FRV_GPREL12:                 howto manager.      (line  356)
+* BFD_RELOC_FRV_GPREL32:                 howto manager.      (line  358)
+* BFD_RELOC_FRV_GPRELHI:                 howto manager.      (line  359)
+* BFD_RELOC_FRV_GPRELLO:                 howto manager.      (line  360)
+* BFD_RELOC_FRV_GPRELU12:                howto manager.      (line  357)
+* BFD_RELOC_FRV_HI16:                    howto manager.      (line  355)
+* BFD_RELOC_FRV_LABEL16:                 howto manager.      (line  352)
+* BFD_RELOC_FRV_LABEL24:                 howto manager.      (line  353)
+* BFD_RELOC_FRV_LO16:                    howto manager.      (line  354)
+* BFD_RELOC_FRV_TLSDESC_RELAX:           howto manager.      (line  387)
+* BFD_RELOC_FRV_TLSDESC_VALUE:           howto manager.      (line  376)
+* BFD_RELOC_FRV_TLSMOFF:                 howto manager.      (line  390)
+* BFD_RELOC_FRV_TLSMOFF12:               howto manager.      (line  380)
+* BFD_RELOC_FRV_TLSMOFFHI:               howto manager.      (line  381)
+* BFD_RELOC_FRV_TLSMOFFLO:               howto manager.      (line  382)
+* BFD_RELOC_FRV_TLSOFF:                  howto manager.      (line  386)
+* BFD_RELOC_FRV_TLSOFF_RELAX:            howto manager.      (line  389)
+* BFD_RELOC_GPREL16:                     howto manager.      (line  106)
+* BFD_RELOC_GPREL32:                     howto manager.      (line  107)
+* BFD_RELOC_H8_DIR16A8:                  howto manager.      (line 1581)
+* BFD_RELOC_H8_DIR16R8:                  howto manager.      (line 1582)
+* BFD_RELOC_H8_DIR24A8:                  howto manager.      (line 1583)
+* BFD_RELOC_H8_DIR24R8:                  howto manager.      (line 1584)
+* BFD_RELOC_H8_DIR32A16:                 howto manager.      (line 1585)
+* BFD_RELOC_HI16:                        howto manager.      (line  289)
+* BFD_RELOC_HI16_BASEREL:                howto manager.      (line   82)
+* BFD_RELOC_HI16_GOTOFF:                 howto manager.      (line   57)
+* BFD_RELOC_HI16_PLTOFF:                 howto manager.      (line   69)
+* BFD_RELOC_HI16_S:                      howto manager.      (line  292)
+* BFD_RELOC_HI16_S_BASEREL:              howto manager.      (line   83)
+* BFD_RELOC_HI16_S_GOTOFF:               howto manager.      (line   58)
+* BFD_RELOC_HI16_S_PLTOFF:               howto manager.      (line   70)
+* BFD_RELOC_HI22:                        howto manager.      (line  101)
+* BFD_RELOC_I370_D12:                    howto manager.      (line  583)
+* BFD_RELOC_I960_CALLJ:                  howto manager.      (line  113)
+* BFD_RELOC_IA64_COPY:                   howto manager.      (line 1374)
+* BFD_RELOC_IA64_DIR32LSB:               howto manager.      (line 1319)
+* BFD_RELOC_IA64_DIR32MSB:               howto manager.      (line 1318)
+* BFD_RELOC_IA64_DIR64LSB:               howto manager.      (line 1321)
+* BFD_RELOC_IA64_DIR64MSB:               howto manager.      (line 1320)
+* BFD_RELOC_IA64_DTPMOD64LSB:            howto manager.      (line 1384)
+* BFD_RELOC_IA64_DTPMOD64MSB:            howto manager.      (line 1383)
+* BFD_RELOC_IA64_DTPREL14:               howto manager.      (line 1386)
+* BFD_RELOC_IA64_DTPREL22:               howto manager.      (line 1387)
+* BFD_RELOC_IA64_DTPREL32LSB:            howto manager.      (line 1390)
+* BFD_RELOC_IA64_DTPREL32MSB:            howto manager.      (line 1389)
+* BFD_RELOC_IA64_DTPREL64I:              howto manager.      (line 1388)
+* BFD_RELOC_IA64_DTPREL64LSB:            howto manager.      (line 1392)
+* BFD_RELOC_IA64_DTPREL64MSB:            howto manager.      (line 1391)
+* BFD_RELOC_IA64_FPTR32LSB:              howto manager.      (line 1336)
+* BFD_RELOC_IA64_FPTR32MSB:              howto manager.      (line 1335)
+* BFD_RELOC_IA64_FPTR64I:                howto manager.      (line 1334)
+* BFD_RELOC_IA64_FPTR64LSB:              howto manager.      (line 1338)
+* BFD_RELOC_IA64_FPTR64MSB:              howto manager.      (line 1337)
+* BFD_RELOC_IA64_GPREL22:                howto manager.      (line 1322)
+* BFD_RELOC_IA64_GPREL32LSB:             howto manager.      (line 1325)
+* BFD_RELOC_IA64_GPREL32MSB:             howto manager.      (line 1324)
+* BFD_RELOC_IA64_GPREL64I:               howto manager.      (line 1323)
+* BFD_RELOC_IA64_GPREL64LSB:             howto manager.      (line 1327)
+* BFD_RELOC_IA64_GPREL64MSB:             howto manager.      (line 1326)
+* BFD_RELOC_IA64_IMM14:                  howto manager.      (line 1315)
+* BFD_RELOC_IA64_IMM22:                  howto manager.      (line 1316)
+* BFD_RELOC_IA64_IMM64:                  howto manager.      (line 1317)
+* BFD_RELOC_IA64_IPLTLSB:                howto manager.      (line 1373)
+* BFD_RELOC_IA64_IPLTMSB:                howto manager.      (line 1372)
+* BFD_RELOC_IA64_LDXMOV:                 howto manager.      (line 1376)
+* BFD_RELOC_IA64_LTOFF22:                howto manager.      (line 1328)
+* BFD_RELOC_IA64_LTOFF22X:               howto manager.      (line 1375)
+* BFD_RELOC_IA64_LTOFF64I:               howto manager.      (line 1329)
+* BFD_RELOC_IA64_LTOFF_DTPMOD22:         howto manager.      (line 1385)
+* BFD_RELOC_IA64_LTOFF_DTPREL22:         howto manager.      (line 1393)
+* BFD_RELOC_IA64_LTOFF_FPTR22:           howto manager.      (line 1350)
+* BFD_RELOC_IA64_LTOFF_FPTR32LSB:        howto manager.      (line 1353)
+* BFD_RELOC_IA64_LTOFF_FPTR32MSB:        howto manager.      (line 1352)
+* BFD_RELOC_IA64_LTOFF_FPTR64I:          howto manager.      (line 1351)
+* BFD_RELOC_IA64_LTOFF_FPTR64LSB:        howto manager.      (line 1355)
+* BFD_RELOC_IA64_LTOFF_FPTR64MSB:        howto manager.      (line 1354)
+* BFD_RELOC_IA64_LTOFF_TPREL22:          howto manager.      (line 1382)
+* BFD_RELOC_IA64_LTV32LSB:               howto manager.      (line 1369)
+* BFD_RELOC_IA64_LTV32MSB:               howto manager.      (line 1368)
+* BFD_RELOC_IA64_LTV64LSB:               howto manager.      (line 1371)
+* BFD_RELOC_IA64_LTV64MSB:               howto manager.      (line 1370)
+* BFD_RELOC_IA64_PCREL21B:               howto manager.      (line 1339)
+* BFD_RELOC_IA64_PCREL21BI:              howto manager.      (line 1340)
+* BFD_RELOC_IA64_PCREL21F:               howto manager.      (line 1342)
+* BFD_RELOC_IA64_PCREL21M:               howto manager.      (line 1341)
+* BFD_RELOC_IA64_PCREL22:                howto manager.      (line 1343)
+* BFD_RELOC_IA64_PCREL32LSB:             howto manager.      (line 1347)
+* BFD_RELOC_IA64_PCREL32MSB:             howto manager.      (line 1346)
+* BFD_RELOC_IA64_PCREL60B:               howto manager.      (line 1344)
+* BFD_RELOC_IA64_PCREL64I:               howto manager.      (line 1345)
+* BFD_RELOC_IA64_PCREL64LSB:             howto manager.      (line 1349)
+* BFD_RELOC_IA64_PCREL64MSB:             howto manager.      (line 1348)
+* BFD_RELOC_IA64_PLTOFF22:               howto manager.      (line 1330)
+* BFD_RELOC_IA64_PLTOFF64I:              howto manager.      (line 1331)
+* BFD_RELOC_IA64_PLTOFF64LSB:            howto manager.      (line 1333)
+* BFD_RELOC_IA64_PLTOFF64MSB:            howto manager.      (line 1332)
+* BFD_RELOC_IA64_REL32LSB:               howto manager.      (line 1365)
+* BFD_RELOC_IA64_REL32MSB:               howto manager.      (line 1364)
+* BFD_RELOC_IA64_REL64LSB:               howto manager.      (line 1367)
+* BFD_RELOC_IA64_REL64MSB:               howto manager.      (line 1366)
+* BFD_RELOC_IA64_SECREL32LSB:            howto manager.      (line 1361)
+* BFD_RELOC_IA64_SECREL32MSB:            howto manager.      (line 1360)
+* BFD_RELOC_IA64_SECREL64LSB:            howto manager.      (line 1363)
+* BFD_RELOC_IA64_SECREL64MSB:            howto manager.      (line 1362)
+* BFD_RELOC_IA64_SEGREL32LSB:            howto manager.      (line 1357)
+* BFD_RELOC_IA64_SEGREL32MSB:            howto manager.      (line 1356)
+* BFD_RELOC_IA64_SEGREL64LSB:            howto manager.      (line 1359)
+* BFD_RELOC_IA64_SEGREL64MSB:            howto manager.      (line 1358)
+* BFD_RELOC_IA64_TPREL14:                howto manager.      (line 1377)
+* BFD_RELOC_IA64_TPREL22:                howto manager.      (line 1378)
+* BFD_RELOC_IA64_TPREL64I:               howto manager.      (line 1379)
+* BFD_RELOC_IA64_TPREL64LSB:             howto manager.      (line 1381)
+* BFD_RELOC_IA64_TPREL64MSB:             howto manager.      (line 1380)
+* BFD_RELOC_IP2K_ADDR16CJP:              howto manager.      (line 1267)
+* BFD_RELOC_IP2K_BANK:                   howto manager.      (line 1264)
+* BFD_RELOC_IP2K_EX8DATA:                howto manager.      (line 1275)
+* BFD_RELOC_IP2K_FR9:                    howto manager.      (line 1261)
+* BFD_RELOC_IP2K_FR_OFFSET:              howto manager.      (line 1288)
+* BFD_RELOC_IP2K_HI8DATA:                howto manager.      (line 1274)
+* BFD_RELOC_IP2K_HI8INSN:                howto manager.      (line 1279)
+* BFD_RELOC_IP2K_LO8DATA:                howto manager.      (line 1273)
+* BFD_RELOC_IP2K_LO8INSN:                howto manager.      (line 1278)
+* BFD_RELOC_IP2K_PAGE3:                  howto manager.      (line 1270)
+* BFD_RELOC_IP2K_PC_SKIP:                howto manager.      (line 1282)
+* BFD_RELOC_IP2K_TEXT:                   howto manager.      (line 1285)
+* BFD_RELOC_IQ2000_OFFSET_16:            howto manager.      (line 1608)
+* BFD_RELOC_IQ2000_OFFSET_21:            howto manager.      (line 1609)
+* BFD_RELOC_IQ2000_UHI16:                howto manager.      (line 1610)
+* BFD_RELOC_LO10:                        howto manager.      (line  102)
+* BFD_RELOC_LO16:                        howto manager.      (line  298)
+* BFD_RELOC_LO16_BASEREL:                howto manager.      (line   81)
+* BFD_RELOC_LO16_GOTOFF:                 howto manager.      (line   56)
+* BFD_RELOC_LO16_PLTOFF:                 howto manager.      (line   68)
+* BFD_RELOC_M32R_10_PCREL:               howto manager.      (line  836)
+* BFD_RELOC_M32R_18_PCREL:               howto manager.      (line  840)
+* BFD_RELOC_M32R_24:                     howto manager.      (line  832)
+* BFD_RELOC_M32R_26_PCREL:               howto manager.      (line  843)
+* BFD_RELOC_M32R_26_PLTREL:              howto manager.      (line  862)
+* BFD_RELOC_M32R_COPY:                   howto manager.      (line  863)
+* BFD_RELOC_M32R_GLOB_DAT:               howto manager.      (line  864)
+* BFD_RELOC_M32R_GOT16_HI_SLO:           howto manager.      (line  873)
+* BFD_RELOC_M32R_GOT16_HI_ULO:           howto manager.      (line  872)
+* BFD_RELOC_M32R_GOT16_LO:               howto manager.      (line  874)
+* BFD_RELOC_M32R_GOT24:                  howto manager.      (line  861)
+* BFD_RELOC_M32R_GOTOFF:                 howto manager.      (line  867)
+* BFD_RELOC_M32R_GOTOFF_HI_SLO:          howto manager.      (line  869)
+* BFD_RELOC_M32R_GOTOFF_HI_ULO:          howto manager.      (line  868)
+* BFD_RELOC_M32R_GOTOFF_LO:              howto manager.      (line  870)
+* BFD_RELOC_M32R_GOTPC24:                howto manager.      (line  871)
+* BFD_RELOC_M32R_GOTPC_HI_SLO:           howto manager.      (line  876)
+* BFD_RELOC_M32R_GOTPC_HI_ULO:           howto manager.      (line  875)
+* BFD_RELOC_M32R_GOTPC_LO:               howto manager.      (line  877)
+* BFD_RELOC_M32R_HI16_SLO:               howto manager.      (line  850)
+* BFD_RELOC_M32R_HI16_ULO:               howto manager.      (line  846)
+* BFD_RELOC_M32R_JMP_SLOT:               howto manager.      (line  865)
+* BFD_RELOC_M32R_LO16:                   howto manager.      (line  854)
+* BFD_RELOC_M32R_RELATIVE:               howto manager.      (line  866)
+* BFD_RELOC_M32R_SDA16:                  howto manager.      (line  857)
+* BFD_RELOC_M68HC11_24:                  howto manager.      (line 1429)
+* BFD_RELOC_M68HC11_3B:                  howto manager.      (line 1404)
+* BFD_RELOC_M68HC11_HI8:                 howto manager.      (line 1396)
+* BFD_RELOC_M68HC11_LO16:                howto manager.      (line 1418)
+* BFD_RELOC_M68HC11_LO8:                 howto manager.      (line 1400)
+* BFD_RELOC_M68HC11_PAGE:                howto manager.      (line 1424)
+* BFD_RELOC_M68HC11_RL_GROUP:            howto manager.      (line 1413)
+* BFD_RELOC_M68HC11_RL_JUMP:             howto manager.      (line 1407)
+* BFD_RELOC_M68HC12_5B:                  howto manager.      (line 1435)
+* BFD_RELOC_MCORE_PCREL_32:              howto manager.      (line 1017)
+* BFD_RELOC_MCORE_PCREL_IMM11BY2:        howto manager.      (line 1015)
+* BFD_RELOC_MCORE_PCREL_IMM4BY2:         howto manager.      (line 1016)
+* BFD_RELOC_MCORE_PCREL_IMM8BY4:         howto manager.      (line 1014)
+* BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2:    howto manager.      (line 1018)
+* BFD_RELOC_MCORE_RVA:                   howto manager.      (line 1019)
+* BFD_RELOC_MIPS16_GPREL:                howto manager.      (line  286)
+* BFD_RELOC_MIPS16_HI16:                 howto manager.      (line  301)
+* BFD_RELOC_MIPS16_HI16_S:               howto manager.      (line  304)
+* BFD_RELOC_MIPS16_JMP:                  howto manager.      (line  283)
+* BFD_RELOC_MIPS16_LO16:                 howto manager.      (line  310)
+* BFD_RELOC_MIPS_CALL16:                 howto manager.      (line  317)
+* BFD_RELOC_MIPS_CALL_HI16:              howto manager.      (line  320)
+* BFD_RELOC_MIPS_CALL_LO16:              howto manager.      (line  321)
+* BFD_RELOC_MIPS_DELETE:                 howto manager.      (line  330)
+* BFD_RELOC_MIPS_GOT16:                  howto manager.      (line  316)
+* BFD_RELOC_MIPS_GOT_DISP:               howto manager.      (line  325)
+* BFD_RELOC_MIPS_GOT_HI16:               howto manager.      (line  318)
+* BFD_RELOC_MIPS_GOT_LO16:               howto manager.      (line  319)
+* BFD_RELOC_MIPS_GOT_OFST:               howto manager.      (line  324)
+* BFD_RELOC_MIPS_GOT_PAGE:               howto manager.      (line  323)
+* BFD_RELOC_MIPS_HIGHER:                 howto manager.      (line  332)
+* BFD_RELOC_MIPS_HIGHEST:                howto manager.      (line  331)
+* BFD_RELOC_MIPS_INSERT_A:               howto manager.      (line  328)
+* BFD_RELOC_MIPS_INSERT_B:               howto manager.      (line  329)
+* BFD_RELOC_MIPS_JALR:                   howto manager.      (line  336)
+* BFD_RELOC_MIPS_JMP:                    howto manager.      (line  279)
+* BFD_RELOC_MIPS_LITERAL:                howto manager.      (line  313)
+* BFD_RELOC_MIPS_REL16:                  howto manager.      (line  334)
+* BFD_RELOC_MIPS_RELGOT:                 howto manager.      (line  335)
+* BFD_RELOC_MIPS_SCN_DISP:               howto manager.      (line  333)
+* BFD_RELOC_MIPS_SHIFT5:                 howto manager.      (line  326)
+* BFD_RELOC_MIPS_SHIFT6:                 howto manager.      (line  327)
+* BFD_RELOC_MIPS_SUB:                    howto manager.      (line  322)
+* BFD_RELOC_MIPS_TLS_DTPMOD32:           howto manager.      (line  337)
+* BFD_RELOC_MIPS_TLS_DTPMOD64:           howto manager.      (line  339)
+* BFD_RELOC_MIPS_TLS_DTPREL32:           howto manager.      (line  338)
+* BFD_RELOC_MIPS_TLS_DTPREL64:           howto manager.      (line  340)
+* BFD_RELOC_MIPS_TLS_DTPREL_HI16:        howto manager.      (line  343)
+* BFD_RELOC_MIPS_TLS_DTPREL_LO16:        howto manager.      (line  344)
+* BFD_RELOC_MIPS_TLS_GD:                 howto manager.      (line  341)
+* BFD_RELOC_MIPS_TLS_GOTTPREL:           howto manager.      (line  345)
+* BFD_RELOC_MIPS_TLS_LDM:                howto manager.      (line  342)
+* BFD_RELOC_MIPS_TLS_TPREL32:            howto manager.      (line  346)
+* BFD_RELOC_MIPS_TLS_TPREL64:            howto manager.      (line  347)
+* BFD_RELOC_MIPS_TLS_TPREL_HI16:         howto manager.      (line  348)
+* BFD_RELOC_MIPS_TLS_TPREL_LO16:         howto manager.      (line  349)
+* BFD_RELOC_MMIX_ADDR19:                 howto manager.      (line 1048)
+* BFD_RELOC_MMIX_ADDR27:                 howto manager.      (line 1052)
+* BFD_RELOC_MMIX_BASE_PLUS_OFFSET:       howto manager.      (line 1064)
+* BFD_RELOC_MMIX_CBRANCH:                howto manager.      (line 1028)
+* BFD_RELOC_MMIX_CBRANCH_1:              howto manager.      (line 1030)
+* BFD_RELOC_MMIX_CBRANCH_2:              howto manager.      (line 1031)
+* BFD_RELOC_MMIX_CBRANCH_3:              howto manager.      (line 1032)
+* BFD_RELOC_MMIX_CBRANCH_J:              howto manager.      (line 1029)
+* BFD_RELOC_MMIX_GETA:                   howto manager.      (line 1022)
+* BFD_RELOC_MMIX_GETA_1:                 howto manager.      (line 1023)
+* BFD_RELOC_MMIX_GETA_2:                 howto manager.      (line 1024)
+* BFD_RELOC_MMIX_GETA_3:                 howto manager.      (line 1025)
+* BFD_RELOC_MMIX_JMP:                    howto manager.      (line 1042)
+* BFD_RELOC_MMIX_JMP_1:                  howto manager.      (line 1043)
+* BFD_RELOC_MMIX_JMP_2:                  howto manager.      (line 1044)
+* BFD_RELOC_MMIX_JMP_3:                  howto manager.      (line 1045)
+* BFD_RELOC_MMIX_LOCAL:                  howto manager.      (line 1068)
+* BFD_RELOC_MMIX_PUSHJ:                  howto manager.      (line 1035)
+* BFD_RELOC_MMIX_PUSHJ_1:                howto manager.      (line 1036)
+* BFD_RELOC_MMIX_PUSHJ_2:                howto manager.      (line 1037)
+* BFD_RELOC_MMIX_PUSHJ_3:                howto manager.      (line 1038)
+* BFD_RELOC_MMIX_PUSHJ_STUBBABLE:        howto manager.      (line 1039)
+* BFD_RELOC_MMIX_REG:                    howto manager.      (line 1060)
+* BFD_RELOC_MMIX_REG_OR_BYTE:            howto manager.      (line 1056)
+* BFD_RELOC_MN10300_16_PCREL:            howto manager.      (line  952)
+* BFD_RELOC_MN10300_32_PCREL:            howto manager.      (line  948)
+* BFD_RELOC_MN10300_COPY:                howto manager.      (line  408)
+* BFD_RELOC_MN10300_GLOB_DAT:            howto manager.      (line  411)
+* BFD_RELOC_MN10300_GOT16:               howto manager.      (line  404)
+* BFD_RELOC_MN10300_GOT24:               howto manager.      (line  400)
+* BFD_RELOC_MN10300_GOT32:               howto manager.      (line  396)
+* BFD_RELOC_MN10300_GOTOFF24:            howto manager.      (line  393)
+* BFD_RELOC_MN10300_JMP_SLOT:            howto manager.      (line  414)
+* BFD_RELOC_MN10300_RELATIVE:            howto manager.      (line  417)
+* BFD_RELOC_MSP430_10_PCREL:             howto manager.      (line 1599)
+* BFD_RELOC_MSP430_16:                   howto manager.      (line 1601)
+* BFD_RELOC_MSP430_16_BYTE:              howto manager.      (line 1603)
+* BFD_RELOC_MSP430_16_PCREL:             howto manager.      (line 1600)
+* BFD_RELOC_MSP430_16_PCREL_BYTE:        howto manager.      (line 1602)
+* BFD_RELOC_MSP430_2X_PCREL:             howto manager.      (line 1604)
+* BFD_RELOC_MSP430_RL_PCREL:             howto manager.      (line 1605)
+* BFD_RELOC_NONE:                        howto manager.      (line  116)
+* BFD_RELOC_NS32K_DISP_16:               howto manager.      (line  467)
+* BFD_RELOC_NS32K_DISP_16_PCREL:         howto manager.      (line  470)
+* BFD_RELOC_NS32K_DISP_32:               howto manager.      (line  468)
+* BFD_RELOC_NS32K_DISP_32_PCREL:         howto manager.      (line  471)
+* BFD_RELOC_NS32K_DISP_8:                howto manager.      (line  466)
+* BFD_RELOC_NS32K_DISP_8_PCREL:          howto manager.      (line  469)
+* BFD_RELOC_NS32K_IMM_16:                howto manager.      (line  461)
+* BFD_RELOC_NS32K_IMM_16_PCREL:          howto manager.      (line  464)
+* BFD_RELOC_NS32K_IMM_32:                howto manager.      (line  462)
+* BFD_RELOC_NS32K_IMM_32_PCREL:          howto manager.      (line  465)
+* BFD_RELOC_NS32K_IMM_8:                 howto manager.      (line  460)
+* BFD_RELOC_NS32K_IMM_8_PCREL:           howto manager.      (line  463)
+* BFD_RELOC_OPENRISC_ABS_26:             howto manager.      (line 1577)
+* BFD_RELOC_OPENRISC_REL_26:             howto manager.      (line 1578)
+* BFD_RELOC_PDP11_DISP_6_PCREL:          howto manager.      (line  475)
+* BFD_RELOC_PDP11_DISP_8_PCREL:          howto manager.      (line  474)
+* BFD_RELOC_PJ_CODE_DIR16:               howto manager.      (line  480)
+* BFD_RELOC_PJ_CODE_DIR32:               howto manager.      (line  481)
+* BFD_RELOC_PJ_CODE_HI16:                howto manager.      (line  478)
+* BFD_RELOC_PJ_CODE_LO16:                howto manager.      (line  479)
+* BFD_RELOC_PJ_CODE_REL16:               howto manager.      (line  482)
+* BFD_RELOC_PJ_CODE_REL32:               howto manager.      (line  483)
+* BFD_RELOC_PPC64_ADDR16_DS:             howto manager.      (line  528)
+* BFD_RELOC_PPC64_ADDR16_LO_DS:          howto manager.      (line  529)
+* BFD_RELOC_PPC64_DTPREL16_DS:           howto manager.      (line  575)
+* BFD_RELOC_PPC64_DTPREL16_HIGHER:       howto manager.      (line  577)
+* BFD_RELOC_PPC64_DTPREL16_HIGHERA:      howto manager.      (line  578)
+* BFD_RELOC_PPC64_DTPREL16_HIGHEST:      howto manager.      (line  579)
+* BFD_RELOC_PPC64_DTPREL16_HIGHESTA:     howto manager.      (line  580)
+* BFD_RELOC_PPC64_DTPREL16_LO_DS:        howto manager.      (line  576)
+* BFD_RELOC_PPC64_GOT16_DS:              howto manager.      (line  530)
+* BFD_RELOC_PPC64_GOT16_LO_DS:           howto manager.      (line  531)
+* BFD_RELOC_PPC64_HIGHER:                howto manager.      (line  516)
+* BFD_RELOC_PPC64_HIGHER_S:              howto manager.      (line  517)
+* BFD_RELOC_PPC64_HIGHEST:               howto manager.      (line  518)
+* BFD_RELOC_PPC64_HIGHEST_S:             howto manager.      (line  519)
+* BFD_RELOC_PPC64_PLT16_LO_DS:           howto manager.      (line  532)
+* BFD_RELOC_PPC64_PLTGOT16:              howto manager.      (line  524)
+* BFD_RELOC_PPC64_PLTGOT16_DS:           howto manager.      (line  537)
+* BFD_RELOC_PPC64_PLTGOT16_HA:           howto manager.      (line  527)
+* BFD_RELOC_PPC64_PLTGOT16_HI:           howto manager.      (line  526)
+* BFD_RELOC_PPC64_PLTGOT16_LO:           howto manager.      (line  525)
+* BFD_RELOC_PPC64_PLTGOT16_LO_DS:        howto manager.      (line  538)
+* BFD_RELOC_PPC64_SECTOFF_DS:            howto manager.      (line  533)
+* BFD_RELOC_PPC64_SECTOFF_LO_DS:         howto manager.      (line  534)
+* BFD_RELOC_PPC64_TOC:                   howto manager.      (line  523)
+* BFD_RELOC_PPC64_TOC16_DS:              howto manager.      (line  535)
+* BFD_RELOC_PPC64_TOC16_HA:              howto manager.      (line  522)
+* BFD_RELOC_PPC64_TOC16_HI:              howto manager.      (line  521)
+* BFD_RELOC_PPC64_TOC16_LO:              howto manager.      (line  520)
+* BFD_RELOC_PPC64_TOC16_LO_DS:           howto manager.      (line  536)
+* BFD_RELOC_PPC64_TPREL16_DS:            howto manager.      (line  569)
+* BFD_RELOC_PPC64_TPREL16_HIGHER:        howto manager.      (line  571)
+* BFD_RELOC_PPC64_TPREL16_HIGHERA:       howto manager.      (line  572)
+* BFD_RELOC_PPC64_TPREL16_HIGHEST:       howto manager.      (line  573)
+* BFD_RELOC_PPC64_TPREL16_HIGHESTA:      howto manager.      (line  574)
+* BFD_RELOC_PPC64_TPREL16_LO_DS:         howto manager.      (line  570)
+* BFD_RELOC_PPC_B16:                     howto manager.      (line  489)
+* BFD_RELOC_PPC_B16_BRNTAKEN:            howto manager.      (line  491)
+* BFD_RELOC_PPC_B16_BRTAKEN:             howto manager.      (line  490)
+* BFD_RELOC_PPC_B26:                     howto manager.      (line  486)
+* BFD_RELOC_PPC_BA16:                    howto manager.      (line  492)
+* BFD_RELOC_PPC_BA16_BRNTAKEN:           howto manager.      (line  494)
+* BFD_RELOC_PPC_BA16_BRTAKEN:            howto manager.      (line  493)
+* BFD_RELOC_PPC_BA26:                    howto manager.      (line  487)
+* BFD_RELOC_PPC_COPY:                    howto manager.      (line  495)
+* BFD_RELOC_PPC_DTPMOD:                  howto manager.      (line  542)
+* BFD_RELOC_PPC_DTPREL:                  howto manager.      (line  552)
+* BFD_RELOC_PPC_DTPREL16:                howto manager.      (line  548)
+* BFD_RELOC_PPC_DTPREL16_HA:             howto manager.      (line  551)
+* BFD_RELOC_PPC_DTPREL16_HI:             howto manager.      (line  550)
+* BFD_RELOC_PPC_DTPREL16_LO:             howto manager.      (line  549)
+* BFD_RELOC_PPC_EMB_BIT_FLD:             howto manager.      (line  514)
+* BFD_RELOC_PPC_EMB_MRKREF:              howto manager.      (line  509)
+* BFD_RELOC_PPC_EMB_NADDR16:             howto manager.      (line  501)
+* BFD_RELOC_PPC_EMB_NADDR16_HA:          howto manager.      (line  504)
+* BFD_RELOC_PPC_EMB_NADDR16_HI:          howto manager.      (line  503)
+* BFD_RELOC_PPC_EMB_NADDR16_LO:          howto manager.      (line  502)
+* BFD_RELOC_PPC_EMB_NADDR32:             howto manager.      (line  500)
+* BFD_RELOC_PPC_EMB_RELSDA:              howto manager.      (line  515)
+* BFD_RELOC_PPC_EMB_RELSEC16:            howto manager.      (line  510)
+* BFD_RELOC_PPC_EMB_RELST_HA:            howto manager.      (line  513)
+* BFD_RELOC_PPC_EMB_RELST_HI:            howto manager.      (line  512)
+* BFD_RELOC_PPC_EMB_RELST_LO:            howto manager.      (line  511)
+* BFD_RELOC_PPC_EMB_SDA21:               howto manager.      (line  508)
+* BFD_RELOC_PPC_EMB_SDA2I16:             howto manager.      (line  506)
+* BFD_RELOC_PPC_EMB_SDA2REL:             howto manager.      (line  507)
+* BFD_RELOC_PPC_EMB_SDAI16:              howto manager.      (line  505)
+* BFD_RELOC_PPC_GLOB_DAT:                howto manager.      (line  496)
+* BFD_RELOC_PPC_GOT_DTPREL16:            howto manager.      (line  565)
+* BFD_RELOC_PPC_GOT_DTPREL16_HA:         howto manager.      (line  568)
+* BFD_RELOC_PPC_GOT_DTPREL16_HI:         howto manager.      (line  567)
+* BFD_RELOC_PPC_GOT_DTPREL16_LO:         howto manager.      (line  566)
+* BFD_RELOC_PPC_GOT_TLSGD16:             howto manager.      (line  553)
+* BFD_RELOC_PPC_GOT_TLSGD16_HA:          howto manager.      (line  556)
+* BFD_RELOC_PPC_GOT_TLSGD16_HI:          howto manager.      (line  555)
+* BFD_RELOC_PPC_GOT_TLSGD16_LO:          howto manager.      (line  554)
+* BFD_RELOC_PPC_GOT_TLSLD16:             howto manager.      (line  557)
+* BFD_RELOC_PPC_GOT_TLSLD16_HA:          howto manager.      (line  560)
+* BFD_RELOC_PPC_GOT_TLSLD16_HI:          howto manager.      (line  559)
+* BFD_RELOC_PPC_GOT_TLSLD16_LO:          howto manager.      (line  558)
+* BFD_RELOC_PPC_GOT_TPREL16:             howto manager.      (line  561)
+* BFD_RELOC_PPC_GOT_TPREL16_HA:          howto manager.      (line  564)
+* BFD_RELOC_PPC_GOT_TPREL16_HI:          howto manager.      (line  563)
+* BFD_RELOC_PPC_GOT_TPREL16_LO:          howto manager.      (line  562)
+* BFD_RELOC_PPC_JMP_SLOT:                howto manager.      (line  497)
+* BFD_RELOC_PPC_LOCAL24PC:               howto manager.      (line  499)
+* BFD_RELOC_PPC_RELATIVE:                howto manager.      (line  498)
+* BFD_RELOC_PPC_TLS:                     howto manager.      (line  541)
+* BFD_RELOC_PPC_TOC16:                   howto manager.      (line  488)
+* BFD_RELOC_PPC_TPREL:                   howto manager.      (line  547)
+* BFD_RELOC_PPC_TPREL16:                 howto manager.      (line  543)
+* BFD_RELOC_PPC_TPREL16_HA:              howto manager.      (line  546)
+* BFD_RELOC_PPC_TPREL16_HI:              howto manager.      (line  545)
+* BFD_RELOC_PPC_TPREL16_LO:              howto manager.      (line  544)
+* BFD_RELOC_RVA:                         howto manager.      (line   85)
+* BFD_RELOC_SH_ALIGN:                    howto manager.      (line  677)
+* BFD_RELOC_SH_CODE:                     howto manager.      (line  678)
+* BFD_RELOC_SH_COPY:                     howto manager.      (line  683)
+* BFD_RELOC_SH_COPY64:                   howto manager.      (line  708)
+* BFD_RELOC_SH_COUNT:                    howto manager.      (line  676)
+* BFD_RELOC_SH_DATA:                     howto manager.      (line  679)
+* BFD_RELOC_SH_DISP12:                   howto manager.      (line  659)
+* BFD_RELOC_SH_DISP12BY2:                howto manager.      (line  660)
+* BFD_RELOC_SH_DISP12BY4:                howto manager.      (line  661)
+* BFD_RELOC_SH_DISP12BY8:                howto manager.      (line  662)
+* BFD_RELOC_SH_DISP20:                   howto manager.      (line  663)
+* BFD_RELOC_SH_DISP20BY8:                howto manager.      (line  664)
+* BFD_RELOC_SH_GLOB_DAT:                 howto manager.      (line  684)
+* BFD_RELOC_SH_GLOB_DAT64:               howto manager.      (line  709)
+* BFD_RELOC_SH_GOT10BY4:                 howto manager.      (line  712)
+* BFD_RELOC_SH_GOT10BY8:                 howto manager.      (line  713)
+* BFD_RELOC_SH_GOT_HI16:                 howto manager.      (line  691)
+* BFD_RELOC_SH_GOT_LOW16:                howto manager.      (line  688)
+* BFD_RELOC_SH_GOT_MEDHI16:              howto manager.      (line  690)
+* BFD_RELOC_SH_GOT_MEDLOW16:             howto manager.      (line  689)
+* BFD_RELOC_SH_GOTOFF_HI16:              howto manager.      (line  703)
+* BFD_RELOC_SH_GOTOFF_LOW16:             howto manager.      (line  700)
+* BFD_RELOC_SH_GOTOFF_MEDHI16:           howto manager.      (line  702)
+* BFD_RELOC_SH_GOTOFF_MEDLOW16:          howto manager.      (line  701)
+* BFD_RELOC_SH_GOTPC:                    howto manager.      (line  687)
+* BFD_RELOC_SH_GOTPC_HI16:               howto manager.      (line  707)
+* BFD_RELOC_SH_GOTPC_LOW16:              howto manager.      (line  704)
+* BFD_RELOC_SH_GOTPC_MEDHI16:            howto manager.      (line  706)
+* BFD_RELOC_SH_GOTPC_MEDLOW16:           howto manager.      (line  705)
+* BFD_RELOC_SH_GOTPLT10BY4:              howto manager.      (line  714)
+* BFD_RELOC_SH_GOTPLT10BY8:              howto manager.      (line  715)
+* BFD_RELOC_SH_GOTPLT32:                 howto manager.      (line  716)
+* BFD_RELOC_SH_GOTPLT_HI16:              howto manager.      (line  695)
+* BFD_RELOC_SH_GOTPLT_LOW16:             howto manager.      (line  692)
+* BFD_RELOC_SH_GOTPLT_MEDHI16:           howto manager.      (line  694)
+* BFD_RELOC_SH_GOTPLT_MEDLOW16:          howto manager.      (line  693)
+* BFD_RELOC_SH_IMM3:                     howto manager.      (line  657)
+* BFD_RELOC_SH_IMM3U:                    howto manager.      (line  658)
+* BFD_RELOC_SH_IMM4:                     howto manager.      (line  665)
+* BFD_RELOC_SH_IMM4BY2:                  howto manager.      (line  666)
+* BFD_RELOC_SH_IMM4BY4:                  howto manager.      (line  667)
+* BFD_RELOC_SH_IMM8:                     howto manager.      (line  668)
+* BFD_RELOC_SH_IMM8BY2:                  howto manager.      (line  669)
+* BFD_RELOC_SH_IMM8BY4:                  howto manager.      (line  670)
+* BFD_RELOC_SH_IMM_HI16:                 howto manager.      (line  734)
+* BFD_RELOC_SH_IMM_HI16_PCREL:           howto manager.      (line  735)
+* BFD_RELOC_SH_IMM_LOW16:                howto manager.      (line  728)
+* BFD_RELOC_SH_IMM_LOW16_PCREL:          howto manager.      (line  729)
+* BFD_RELOC_SH_IMM_MEDHI16:              howto manager.      (line  732)
+* BFD_RELOC_SH_IMM_MEDHI16_PCREL:        howto manager.      (line  733)
+* BFD_RELOC_SH_IMM_MEDLOW16:             howto manager.      (line  730)
+* BFD_RELOC_SH_IMM_MEDLOW16_PCREL:       howto manager.      (line  731)
+* BFD_RELOC_SH_IMMS10:                   howto manager.      (line  722)
+* BFD_RELOC_SH_IMMS10BY2:                howto manager.      (line  723)
+* BFD_RELOC_SH_IMMS10BY4:                howto manager.      (line  724)
+* BFD_RELOC_SH_IMMS10BY8:                howto manager.      (line  725)
+* BFD_RELOC_SH_IMMS16:                   howto manager.      (line  726)
+* BFD_RELOC_SH_IMMS6:                    howto manager.      (line  719)
+* BFD_RELOC_SH_IMMS6BY32:                howto manager.      (line  720)
+* BFD_RELOC_SH_IMMU16:                   howto manager.      (line  727)
+* BFD_RELOC_SH_IMMU5:                    howto manager.      (line  718)
+* BFD_RELOC_SH_IMMU6:                    howto manager.      (line  721)
+* BFD_RELOC_SH_JMP_SLOT:                 howto manager.      (line  685)
+* BFD_RELOC_SH_JMP_SLOT64:               howto manager.      (line  710)
+* BFD_RELOC_SH_LABEL:                    howto manager.      (line  680)
+* BFD_RELOC_SH_LOOP_END:                 howto manager.      (line  682)
+* BFD_RELOC_SH_LOOP_START:               howto manager.      (line  681)
+* BFD_RELOC_SH_PCDISP12BY2:              howto manager.      (line  656)
+* BFD_RELOC_SH_PCDISP8BY2:               howto manager.      (line  655)
+* BFD_RELOC_SH_PCRELIMM8BY2:             howto manager.      (line  671)
+* BFD_RELOC_SH_PCRELIMM8BY4:             howto manager.      (line  672)
+* BFD_RELOC_SH_PLT_HI16:                 howto manager.      (line  699)
+* BFD_RELOC_SH_PLT_LOW16:                howto manager.      (line  696)
+* BFD_RELOC_SH_PLT_MEDHI16:              howto manager.      (line  698)
+* BFD_RELOC_SH_PLT_MEDLOW16:             howto manager.      (line  697)
+* BFD_RELOC_SH_PT_16:                    howto manager.      (line  736)
+* BFD_RELOC_SH_RELATIVE:                 howto manager.      (line  686)
+* BFD_RELOC_SH_RELATIVE64:               howto manager.      (line  711)
+* BFD_RELOC_SH_SHMEDIA_CODE:             howto manager.      (line  717)
+* BFD_RELOC_SH_SWITCH16:                 howto manager.      (line  673)
+* BFD_RELOC_SH_SWITCH32:                 howto manager.      (line  674)
+* BFD_RELOC_SH_TLS_DTPMOD32:             howto manager.      (line  742)
+* BFD_RELOC_SH_TLS_DTPOFF32:             howto manager.      (line  743)
+* BFD_RELOC_SH_TLS_GD_32:                howto manager.      (line  737)
+* BFD_RELOC_SH_TLS_IE_32:                howto manager.      (line  740)
+* BFD_RELOC_SH_TLS_LD_32:                howto manager.      (line  738)
+* BFD_RELOC_SH_TLS_LDO_32:               howto manager.      (line  739)
+* BFD_RELOC_SH_TLS_LE_32:                howto manager.      (line  741)
+* BFD_RELOC_SH_TLS_TPOFF32:              howto manager.      (line  744)
+* BFD_RELOC_SH_USES:                     howto manager.      (line  675)
+* BFD_RELOC_SPARC13:                     howto manager.      (line  119)
+* BFD_RELOC_SPARC22:                     howto manager.      (line  118)
+* BFD_RELOC_SPARC_10:                    howto manager.      (line  141)
+* BFD_RELOC_SPARC_11:                    howto manager.      (line  142)
+* BFD_RELOC_SPARC_5:                     howto manager.      (line  154)
+* BFD_RELOC_SPARC_6:                     howto manager.      (line  153)
+* BFD_RELOC_SPARC_64:                    howto manager.      (line  140)
+* BFD_RELOC_SPARC_7:                     howto manager.      (line  152)
+* BFD_RELOC_SPARC_BASE13:                howto manager.      (line  136)
+* BFD_RELOC_SPARC_BASE22:                howto manager.      (line  137)
+* BFD_RELOC_SPARC_COPY:                  howto manager.      (line  126)
+* BFD_RELOC_SPARC_DISP64:                howto manager.      (line  155)
+* BFD_RELOC_SPARC_GLOB_DAT:              howto manager.      (line  127)
+* BFD_RELOC_SPARC_GOT10:                 howto manager.      (line  120)
+* BFD_RELOC_SPARC_GOT13:                 howto manager.      (line  121)
+* BFD_RELOC_SPARC_GOT22:                 howto manager.      (line  122)
+* BFD_RELOC_SPARC_H44:                   howto manager.      (line  160)
+* BFD_RELOC_SPARC_HH22:                  howto manager.      (line  144)
+* BFD_RELOC_SPARC_HIX22:                 howto manager.      (line  158)
+* BFD_RELOC_SPARC_HM10:                  howto manager.      (line  145)
+* BFD_RELOC_SPARC_JMP_SLOT:              howto manager.      (line  128)
+* BFD_RELOC_SPARC_L44:                   howto manager.      (line  162)
+* BFD_RELOC_SPARC_LM22:                  howto manager.      (line  146)
+* BFD_RELOC_SPARC_LOX10:                 howto manager.      (line  159)
+* BFD_RELOC_SPARC_M44:                   howto manager.      (line  161)
+* BFD_RELOC_SPARC_OLO10:                 howto manager.      (line  143)
+* BFD_RELOC_SPARC_PC10:                  howto manager.      (line  123)
+* BFD_RELOC_SPARC_PC22:                  howto manager.      (line  124)
+* BFD_RELOC_SPARC_PC_HH22:               howto manager.      (line  147)
+* BFD_RELOC_SPARC_PC_HM10:               howto manager.      (line  148)
+* BFD_RELOC_SPARC_PC_LM22:               howto manager.      (line  149)
+* BFD_RELOC_SPARC_PLT32:                 howto manager.      (line  156)
+* BFD_RELOC_SPARC_PLT64:                 howto manager.      (line  157)
+* BFD_RELOC_SPARC_REGISTER:              howto manager.      (line  163)
+* BFD_RELOC_SPARC_RELATIVE:              howto manager.      (line  129)
+* BFD_RELOC_SPARC_REV32:                 howto manager.      (line  166)
+* BFD_RELOC_SPARC_TLS_DTPMOD32:          howto manager.      (line  187)
+* BFD_RELOC_SPARC_TLS_DTPMOD64:          howto manager.      (line  188)
+* BFD_RELOC_SPARC_TLS_DTPOFF32:          howto manager.      (line  189)
+* BFD_RELOC_SPARC_TLS_DTPOFF64:          howto manager.      (line  190)
+* BFD_RELOC_SPARC_TLS_GD_ADD:            howto manager.      (line  171)
+* BFD_RELOC_SPARC_TLS_GD_CALL:           howto manager.      (line  172)
+* BFD_RELOC_SPARC_TLS_GD_HI22:           howto manager.      (line  169)
+* BFD_RELOC_SPARC_TLS_GD_LO10:           howto manager.      (line  170)
+* BFD_RELOC_SPARC_TLS_IE_ADD:            howto manager.      (line  184)
+* BFD_RELOC_SPARC_TLS_IE_HI22:           howto manager.      (line  180)
+* BFD_RELOC_SPARC_TLS_IE_LD:             howto manager.      (line  182)
+* BFD_RELOC_SPARC_TLS_IE_LDX:            howto manager.      (line  183)
+* BFD_RELOC_SPARC_TLS_IE_LO10:           howto manager.      (line  181)
+* BFD_RELOC_SPARC_TLS_LDM_ADD:           howto manager.      (line  175)
+* BFD_RELOC_SPARC_TLS_LDM_CALL:          howto manager.      (line  176)
+* BFD_RELOC_SPARC_TLS_LDM_HI22:          howto manager.      (line  173)
+* BFD_RELOC_SPARC_TLS_LDM_LO10:          howto manager.      (line  174)
+* BFD_RELOC_SPARC_TLS_LDO_ADD:           howto manager.      (line  179)
+* BFD_RELOC_SPARC_TLS_LDO_HIX22:         howto manager.      (line  177)
+* BFD_RELOC_SPARC_TLS_LDO_LOX10:         howto manager.      (line  178)
+* BFD_RELOC_SPARC_TLS_LE_HIX22:          howto manager.      (line  185)
+* BFD_RELOC_SPARC_TLS_LE_LOX10:          howto manager.      (line  186)
+* BFD_RELOC_SPARC_TLS_TPOFF32:           howto manager.      (line  191)
+* BFD_RELOC_SPARC_TLS_TPOFF64:           howto manager.      (line  192)
+* BFD_RELOC_SPARC_UA16:                  howto manager.      (line  130)
+* BFD_RELOC_SPARC_UA32:                  howto manager.      (line  131)
+* BFD_RELOC_SPARC_UA64:                  howto manager.      (line  132)
+* BFD_RELOC_SPARC_WDISP16:               howto manager.      (line  150)
+* BFD_RELOC_SPARC_WDISP19:               howto manager.      (line  151)
+* BFD_RELOC_SPARC_WDISP22:               howto manager.      (line  117)
+* BFD_RELOC_SPARC_WPLT30:                howto manager.      (line  125)
+* BFD_RELOC_THUMB_PCREL_BLX:             howto manager.      (line  601)
+* BFD_RELOC_THUMB_PCREL_BRANCH12:        howto manager.      (line  749)
+* BFD_RELOC_THUMB_PCREL_BRANCH23:        howto manager.      (line  750)
+* BFD_RELOC_THUMB_PCREL_BRANCH9:         howto manager.      (line  748)
+* BFD_RELOC_TIC30_LDP:                   howto manager.      (line  956)
+* BFD_RELOC_TIC54X_16_OF_23:             howto manager.      (line  974)
+* BFD_RELOC_TIC54X_23:                   howto manager.      (line  971)
+* BFD_RELOC_TIC54X_MS7_OF_23:            howto manager.      (line  979)
+* BFD_RELOC_TIC54X_PARTLS7:              howto manager.      (line  961)
+* BFD_RELOC_TIC54X_PARTMS9:              howto manager.      (line  966)
+* bfd_reloc_type_lookup:                 howto manager.      (line 1693)
+* BFD_RELOC_V850_22_PCREL:               howto manager.      (line  883)
+* BFD_RELOC_V850_9_PCREL:                howto manager.      (line  880)
+* BFD_RELOC_V850_ALIGN:                  howto manager.      (line  941)
+* BFD_RELOC_V850_CALLT_16_16_OFFSET:     howto manager.      (line  932)
+* BFD_RELOC_V850_CALLT_6_7_OFFSET:       howto manager.      (line  929)
+* BFD_RELOC_V850_LO16_SPLIT_OFFSET:      howto manager.      (line  944)
+* BFD_RELOC_V850_LONGCALL:               howto manager.      (line  935)
+* BFD_RELOC_V850_LONGJUMP:               howto manager.      (line  938)
+* BFD_RELOC_V850_SDA_15_16_OFFSET:       howto manager.      (line  889)
+* BFD_RELOC_V850_SDA_16_16_OFFSET:       howto manager.      (line  886)
+* BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET: howto manager.      (line  921)
+* BFD_RELOC_V850_TDA_16_16_OFFSET:       howto manager.      (line  911)
+* BFD_RELOC_V850_TDA_4_4_OFFSET:         howto manager.      (line  918)
+* BFD_RELOC_V850_TDA_4_5_OFFSET:         howto manager.      (line  914)
+* BFD_RELOC_V850_TDA_6_8_OFFSET:         howto manager.      (line  900)
+* BFD_RELOC_V850_TDA_7_7_OFFSET:         howto manager.      (line  908)
+* BFD_RELOC_V850_TDA_7_8_OFFSET:         howto manager.      (line  904)
+* BFD_RELOC_V850_ZDA_15_16_OFFSET:       howto manager.      (line  896)
+* BFD_RELOC_V850_ZDA_16_16_OFFSET:       howto manager.      (line  893)
+* BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET: howto manager.      (line  925)
+* BFD_RELOC_VAX_GLOB_DAT:                howto manager.      (line 1594)
+* BFD_RELOC_VAX_JMP_SLOT:                howto manager.      (line 1595)
+* BFD_RELOC_VAX_RELATIVE:                howto manager.      (line 1596)
+* BFD_RELOC_VPE4KMATH_DATA:              howto manager.      (line 1291)
+* BFD_RELOC_VPE4KMATH_INSN:              howto manager.      (line 1292)
+* BFD_RELOC_VTABLE_ENTRY:                howto manager.      (line 1296)
+* BFD_RELOC_VTABLE_INHERIT:              howto manager.      (line 1295)
+* BFD_RELOC_X86_64_32S:                  howto manager.      (line  449)
+* BFD_RELOC_X86_64_COPY:                 howto manager.      (line  444)
+* BFD_RELOC_X86_64_DTPMOD64:             howto manager.      (line  450)
+* BFD_RELOC_X86_64_DTPOFF32:             howto manager.      (line  455)
+* BFD_RELOC_X86_64_DTPOFF64:             howto manager.      (line  451)
+* BFD_RELOC_X86_64_GLOB_DAT:             howto manager.      (line  445)
+* BFD_RELOC_X86_64_GOT32:                howto manager.      (line  442)
+* BFD_RELOC_X86_64_GOTPCREL:             howto manager.      (line  448)
+* BFD_RELOC_X86_64_GOTTPOFF:             howto manager.      (line  456)
+* BFD_RELOC_X86_64_JUMP_SLOT:            howto manager.      (line  446)
+* BFD_RELOC_X86_64_PLT32:                howto manager.      (line  443)
+* BFD_RELOC_X86_64_RELATIVE:             howto manager.      (line  447)
+* BFD_RELOC_X86_64_TLSGD:                howto manager.      (line  453)
+* BFD_RELOC_X86_64_TLSLD:                howto manager.      (line  454)
+* BFD_RELOC_X86_64_TPOFF32:              howto manager.      (line  457)
+* BFD_RELOC_X86_64_TPOFF64:              howto manager.      (line  452)
+* BFD_RELOC_XSTORMY16_12:                howto manager.      (line 1589)
+* BFD_RELOC_XSTORMY16_24:                howto manager.      (line 1590)
+* BFD_RELOC_XSTORMY16_FPTR16:            howto manager.      (line 1591)
+* BFD_RELOC_XSTORMY16_REL_12:            howto manager.      (line 1588)
+* BFD_RELOC_XTENSA_ASM_EXPAND:           howto manager.      (line 1682)
+* BFD_RELOC_XTENSA_ASM_SIMPLIFY:         howto manager.      (line 1687)
+* BFD_RELOC_XTENSA_DIFF16:               howto manager.      (line 1629)
+* BFD_RELOC_XTENSA_DIFF32:               howto manager.      (line 1630)
+* BFD_RELOC_XTENSA_DIFF8:                howto manager.      (line 1628)
+* BFD_RELOC_XTENSA_GLOB_DAT:             howto manager.      (line 1618)
+* BFD_RELOC_XTENSA_JMP_SLOT:             howto manager.      (line 1619)
+* BFD_RELOC_XTENSA_OP0:                  howto manager.      (line 1676)
+* BFD_RELOC_XTENSA_OP1:                  howto manager.      (line 1677)
+* BFD_RELOC_XTENSA_OP2:                  howto manager.      (line 1678)
+* BFD_RELOC_XTENSA_PLT:                  howto manager.      (line 1623)
+* BFD_RELOC_XTENSA_RELATIVE:             howto manager.      (line 1620)
+* BFD_RELOC_XTENSA_RTLD:                 howto manager.      (line 1613)
+* BFD_RELOC_XTENSA_SLOT0_ALT:            howto manager.      (line 1658)
+* BFD_RELOC_XTENSA_SLOT0_OP:             howto manager.      (line 1638)
+* BFD_RELOC_XTENSA_SLOT10_ALT:           howto manager.      (line 1668)
+* BFD_RELOC_XTENSA_SLOT10_OP:            howto manager.      (line 1648)
+* BFD_RELOC_XTENSA_SLOT11_ALT:           howto manager.      (line 1669)
+* BFD_RELOC_XTENSA_SLOT11_OP:            howto manager.      (line 1649)
+* BFD_RELOC_XTENSA_SLOT12_ALT:           howto manager.      (line 1670)
+* BFD_RELOC_XTENSA_SLOT12_OP:            howto manager.      (line 1650)
+* BFD_RELOC_XTENSA_SLOT13_ALT:           howto manager.      (line 1671)
+* BFD_RELOC_XTENSA_SLOT13_OP:            howto manager.      (line 1651)
+* BFD_RELOC_XTENSA_SLOT14_ALT:           howto manager.      (line 1672)
+* BFD_RELOC_XTENSA_SLOT14_OP:            howto manager.      (line 1652)
+* BFD_RELOC_XTENSA_SLOT1_ALT:            howto manager.      (line 1659)
+* BFD_RELOC_XTENSA_SLOT1_OP:             howto manager.      (line 1639)
+* BFD_RELOC_XTENSA_SLOT2_ALT:            howto manager.      (line 1660)
+* BFD_RELOC_XTENSA_SLOT2_OP:             howto manager.      (line 1640)
+* BFD_RELOC_XTENSA_SLOT3_ALT:            howto manager.      (line 1661)
+* BFD_RELOC_XTENSA_SLOT3_OP:             howto manager.      (line 1641)
+* BFD_RELOC_XTENSA_SLOT4_ALT:            howto manager.      (line 1662)
+* BFD_RELOC_XTENSA_SLOT4_OP:             howto manager.      (line 1642)
+* BFD_RELOC_XTENSA_SLOT5_ALT:            howto manager.      (line 1663)
+* BFD_RELOC_XTENSA_SLOT5_OP:             howto manager.      (line 1643)
+* BFD_RELOC_XTENSA_SLOT6_ALT:            howto manager.      (line 1664)
+* BFD_RELOC_XTENSA_SLOT6_OP:             howto manager.      (line 1644)
+* BFD_RELOC_XTENSA_SLOT7_ALT:            howto manager.      (line 1665)
+* BFD_RELOC_XTENSA_SLOT7_OP:             howto manager.      (line 1645)
+* BFD_RELOC_XTENSA_SLOT8_ALT:            howto manager.      (line 1666)
+* BFD_RELOC_XTENSA_SLOT8_OP:             howto manager.      (line 1646)
+* BFD_RELOC_XTENSA_SLOT9_ALT:            howto manager.      (line 1667)
+* BFD_RELOC_XTENSA_SLOT9_OP:             howto manager.      (line 1647)
+* bfd_scan_arch:                         Architectures.      (line  369)
+* bfd_scan_vma:                          BFD front end.      (line  420)
+* bfd_seach_for_target:                  bfd_target.         (line  445)
+* bfd_section_already_linked:            Writing the symbol table.
+                                                             (line   55)
+* bfd_section_list_clear:                section prototypes. (line    8)
+* bfd_sections_find_if:                  section prototypes. (line  145)
+* bfd_set_arch_info:                     Architectures.      (line  410)
+* bfd_set_archive_head:                  Archives.           (line   66)
+* bfd_set_default_target:                bfd_target.         (line  410)
+* bfd_set_error:                         BFD front end.      (line  235)
+* bfd_set_error_handler:                 BFD front end.      (line  275)
+* bfd_set_error_program_name:            BFD front end.      (line  284)
+* bfd_set_file_flags:                    BFD front end.      (line  340)
+* bfd_set_format:                        Formats.            (line   65)
+* bfd_set_gp_size:                       BFD front end.      (line  410)
+* bfd_set_private_flags:                 BFD front end.      (line  487)
+* bfd_set_reloc:                         BFD front end.      (line  330)
+* bfd_set_section_contents:              section prototypes. (line  176)
+* bfd_set_section_flags:                 section prototypes. (line  109)
+* bfd_set_section_size:                  section prototypes. (line  162)
+* bfd_set_start_address:                 BFD front end.      (line  389)
+* bfd_set_symtab:                        symbol handling functions.
+                                                             (line   60)
+* bfd_symbol_info:                       symbol handling functions.
+                                                             (line  130)
+* bfd_target_list:                       bfd_target.         (line  436)
+* bfd_write_bigendian_4byte_int:         Internal.           (line   10)
+* bfd_zalloc:                            Opening and Closing.
+                                                             (line  188)
+* coff_symbol_type:                      coff.               (line  186)
+* core_file_matches_executable_p:        Core Files.         (line   27)
+* find_separate_debug_file:              Opening and Closing.
+                                                             (line  230)
+* get_debug_link_info:                   Opening and Closing.
+                                                             (line  211)
+* Hash tables:                           Hash Tables.        (line    6)
+* internal object-file format:           Canonical format.   (line   11)
+* Linker:                                Linker Functions.   (line    6)
+* Other functions:                       BFD front end.      (line  502)
+* separate_debug_file_exists:            Opening and Closing.
+                                                             (line  221)
+* struct bfd_iovec:                      BFD front end.      (line  646)
+* target vector (_bfd_final_link):       Performing the Final Link.
+                                                             (line    6)
+* target vector (_bfd_link_add_symbols): Adding Symbols to the Hash Table.
+                                                             (line    6)
+* target vector (_bfd_link_hash_table_create): Creating a Linker Hash Table.
+                                                             (line    6)
+* The HOWTO Macro:                       typedef arelent.    (line  290)
+* what is it?:                           Overview.           (line    6)
+
+
 
 Tag Table:
-(Indirect)
-Node: Top724
-Node: Overview1056
-Node: History2107
-Node: How It Works3053
-Node: What BFD Version 2 Can Do4595
-Node: BFD information loss5910
-Node: Canonical format8442
-Node: BFD front end12814
-Node: Memory Usage38041
-Node: Initialization39269
-Node: Sections39665
-Node: Section Input40148
-Node: Section Output41513
-Node: typedef asection43999
-Node: section prototypes61598
-Node: Symbols70581
-Node: Reading Symbols72176
-Node: Writing Symbols73283
-Node: Mini Symbols74992
-Node: typedef asymbol75966
-Node: symbol handling functions80884
-Node: Archives86226
-Node: Formats89903
-Node: Relocations92794
-Node: typedef arelent93521
-Node: howto manager109239
-Node: Core Files165412
-Node: Targets166491
-Node: bfd_target168461
-Node: Architectures187781
-Node: Opening and Closing208078
-Node: Internal217791
-Node: File Caching224063
-Node: Linker Functions227370
-Node: Creating a Linker Hash Table229043
-Node: Adding Symbols to the Hash Table230781
-Node: Differing file formats231681
-Node: Adding symbols from an object file233429
-Node: Adding symbols from an archive235580
-Node: Performing the Final Link237994
-Node: Information provided by the linker239236
-Node: Relocating the section contents240386
-Node: Writing the symbol table242137
-Node: Hash Tables245130
-Node: Creating and Freeing a Hash Table246328
-Node: Looking Up or Entering a String247578
-Node: Traversing a Hash Table248831
-Node: Deriving a New Hash Table Type249620
-Node: Define the Derived Structures250686
-Node: Write the Derived Creation Routine251767
-Node: Write Other Derived Routines254461
-Node: BFD back ends255776
-Node: What to Put Where256046
-Node: aout256184
-Node: coff262435
-Node: elf287111
-Node: mmo287965
-Node: File layout288893
-Node: Symbol-table294540
-Node: mmo section mapping298309
-Node: GNU Free Documentation License301961
-Node: Index321681
+Node: Top810
+Node: Overview1142
+Node: History2193
+Node: How It Works3139
+Node: What BFD Version 2 Can Do4681
+Node: BFD information loss5996
+Node: Canonical format8528
+Node: BFD front end12900
+Node: Memory Usage38127
+Node: Initialization39355
+Node: Sections39751
+Node: Section Input40234
+Node: Section Output41599
+Node: typedef asection44085
+Node: section prototypes61684
+Node: Symbols70667
+Node: Reading Symbols72262
+Node: Writing Symbols73369
+Node: Mini Symbols75078
+Node: typedef asymbol76052
+Node: symbol handling functions80970
+Node: Archives86312
+Node: Formats89989
+Node: Relocations92880
+Node: typedef arelent93607
+Node: howto manager109325
+Node: Core Files165498
+Node: Targets166577
+Node: bfd_target168547
+Node: Architectures187867
+Node: Opening and Closing208164
+Node: Internal217877
+Node: File Caching224149
+Node: Linker Functions227456
+Node: Creating a Linker Hash Table229129
+Node: Adding Symbols to the Hash Table230867
+Node: Differing file formats231767
+Node: Adding symbols from an object file233515
+Node: Adding symbols from an archive235666
+Node: Performing the Final Link238080
+Node: Information provided by the linker239322
+Node: Relocating the section contents240472
+Node: Writing the symbol table242223
+Node: Hash Tables245216
+Node: Creating and Freeing a Hash Table246414
+Node: Looking Up or Entering a String247664
+Node: Traversing a Hash Table248917
+Node: Deriving a New Hash Table Type249706
+Node: Define the Derived Structures250772
+Node: Write the Derived Creation Routine251853
+Node: Write Other Derived Routines254547
+Node: BFD back ends255862
+Node: What to Put Where256132
+Node: aout256270
+Node: coff262521
+Node: elf287197
+Node: mmo288051
+Node: File layout288979
+Node: Symbol-table294626
+Node: mmo section mapping298395
+Node: GNU Free Documentation License302047
+Node: Index321767
 
 End Tag Table
Index: b/binutils-2.16.1/bfd/doc/bfd.info-1
===================================================================
--- a/binutils-2.16.1/bfd/doc/bfd.info-1
+++ /dev/null
@@ -1,8006 +0,0 @@
-This is ../.././bfd/doc/bfd.info, produced by makeinfo version 4.7 from
-../.././bfd/doc/bfd.texinfo.
-
-START-INFO-DIR-ENTRY
-* Bfd: (bfd).                   The Binary File Descriptor library.
-END-INFO-DIR-ENTRY
-
-   This file documents the BFD library.
-
-   Copyright (C) 1991, 2000, 2001, 2003 Free Software Foundation, Inc.
-
-   Permission is granted to copy, distribute and/or modify this document
-     under the terms of the GNU Free Documentation License, Version 1.1
-     or any later version published by the Free Software Foundation;
-   with no Invariant Sections, with no Front-Cover Texts, and with no
-    Back-Cover Texts.  A copy of the license is included in the
-section entitled "GNU Free Documentation License".
-
-
-File: bfd.info,  Node: Top,  Next: Overview,  Prev: (dir),  Up: (dir)
-
-   This file documents the binary file descriptor library libbfd.
-
-* Menu:
-
-* Overview::			Overview of BFD
-* BFD front end::		BFD front end
-* BFD back ends::		BFD back ends
-* GNU Free Documentation License::  GNU Free Documentation License
-* Index::			Index
-
-
-File: bfd.info,  Node: Overview,  Next: BFD front end,  Prev: Top,  Up: Top
-
-1 Introduction
-**************
-
-BFD is a package which allows applications to use the same routines to
-operate on object files whatever the object file format.  A new object
-file format can be supported simply by creating a new BFD back end and
-adding it to the library.
-
-   BFD is split into two parts: the front end, and the back ends (one
-for each object file format).
-   * The front end of BFD provides the interface to the user. It manages
-     memory and various canonical data structures. The front end also
-     decides which back end to use and when to call back end routines.
-
-   * The back ends provide BFD its view of the real world. Each back
-     end provides a set of calls which the BFD front end can use to
-     maintain its canonical form. The back ends also may keep around
-     information for their own use, for greater efficiency.
-
-* Menu:
-
-* History::			History
-* How It Works::		How It Works
-* What BFD Version 2 Can Do::	What BFD Version 2 Can Do
-
-
-File: bfd.info,  Node: History,  Next: How It Works,  Prev: Overview,  Up: Overview
-
-1.1 History
-===========
-
-One spur behind BFD was the desire, on the part of the GNU 960 team at
-Intel Oregon, for interoperability of applications on their COFF and
-b.out file formats.  Cygnus was providing GNU support for the team, and
-was contracted to provide the required functionality.
-
-   The name came from a conversation David Wallace was having with
-Richard Stallman about the library: RMS said that it would be quite
-hard--David said "BFD".  Stallman was right, but the name stuck.
-
-   At the same time, Ready Systems wanted much the same thing, but for
-different object file formats: IEEE-695, Oasys, Srecords, a.out and 68k
-coff.
-
-   BFD was first implemented by members of Cygnus Support; Steve
-Chamberlain (`sac@cygnus.com'), John Gilmore (`gnu@cygnus.com'), K.
-Richard Pixley (`rich@cygnus.com') and David Henkel-Wallace
-(`gumby@cygnus.com').
-
-
-File: bfd.info,  Node: How It Works,  Next: What BFD Version 2 Can Do,  Prev: History,  Up: Overview
-
-1.2 How To Use BFD
-==================
-
-To use the library, include `bfd.h' and link with `libbfd.a'.
-
-   BFD provides a common interface to the parts of an object file for a
-calling application.
-
-   When an application sucessfully opens a target file (object,
-archive, or whatever), a pointer to an internal structure is returned.
-This pointer points to a structure called `bfd', described in `bfd.h'.
-Our convention is to call this pointer a BFD, and instances of it
-within code `abfd'.  All operations on the target object file are
-applied as methods to the BFD.  The mapping is defined within `bfd.h'
-in a set of macros, all beginning with `bfd_' to reduce namespace
-pollution.
-
-   For example, this sequence does what you would probably expect:
-return the number of sections in an object file attached to a BFD
-`abfd'.
-
-     #include "bfd.h"
-
-     unsigned int number_of_sections (abfd)
-     bfd *abfd;
-     {
-       return bfd_count_sections (abfd);
-     }
-
-   The abstraction used within BFD is that an object file has:
-
-   * a header,
-
-   * a number of sections containing raw data (*note Sections::),
-
-   * a set of relocations (*note Relocations::), and
-
-   * some symbol information (*note Symbols::).
-   Also, BFDs opened for archives have the additional attribute of an
-index and contain subordinate BFDs. This approach is fine for a.out and
-coff, but loses efficiency when applied to formats such as S-records and
-IEEE-695.
-
-
-File: bfd.info,  Node: What BFD Version 2 Can Do,  Prev: How It Works,  Up: Overview
-
-1.3 What BFD Version 2 Can Do
-=============================
-
-When an object file is opened, BFD subroutines automatically determine
-the format of the input object file.  They then build a descriptor in
-memory with pointers to routines that will be used to access elements of
-the object file's data structures.
-
-   As different information from the object files is required, BFD
-reads from different sections of the file and processes them.  For
-example, a very common operation for the linker is processing symbol
-tables.  Each BFD back end provides a routine for converting between
-the object file's representation of symbols and an internal canonical
-format. When the linker asks for the symbol table of an object file, it
-calls through a memory pointer to the routine from the relevant BFD
-back end which reads and converts the table into a canonical form.  The
-linker then operates upon the canonical form. When the link is finished
-and the linker writes the output file's symbol table, another BFD back
-end routine is called to take the newly created symbol table and
-convert it into the chosen output format.
-
-* Menu:
-
-* BFD information loss::	Information Loss
-* Canonical format::		The BFD	canonical object-file format
-
-
-File: bfd.info,  Node: BFD information loss,  Next: Canonical format,  Up: What BFD Version 2 Can Do
-
-1.3.1 Information Loss
-----------------------
-
-_Information can be lost during output._ The output formats supported
-by BFD do not provide identical facilities, and information which can
-be described in one form has nowhere to go in another format. One
-example of this is alignment information in `b.out'. There is nowhere
-in an `a.out' format file to store alignment information on the
-contained data, so when a file is linked from `b.out' and an `a.out'
-image is produced, alignment information will not propagate to the
-output file. (The linker will still use the alignment information
-internally, so the link is performed correctly).
-
-   Another example is COFF section names. COFF files may contain an
-unlimited number of sections, each one with a textual section name. If
-the target of the link is a format which does not have many sections
-(e.g., `a.out') or has sections without names (e.g., the Oasys format),
-the link cannot be done simply. You can circumvent this problem by
-describing the desired input-to-output section mapping with the linker
-command language.
-
-   _Information can be lost during canonicalization._ The BFD internal
-canonical form of the external formats is not exhaustive; there are
-structures in input formats for which there is no direct representation
-internally.  This means that the BFD back ends cannot maintain all
-possible data richness through the transformation between external to
-internal and back to external formats.
-
-   This limitation is only a problem when an application reads one
-format and writes another.  Each BFD back end is responsible for
-maintaining as much data as possible, and the internal BFD canonical
-form has structures which are opaque to the BFD core, and exported only
-to the back ends. When a file is read in one format, the canonical form
-is generated for BFD and the application. At the same time, the back
-end saves away any information which may otherwise be lost. If the data
-is then written back in the same format, the back end routine will be
-able to use the canonical form provided by the BFD core as well as the
-information it prepared earlier.  Since there is a great deal of
-commonality between back ends, there is no information lost when
-linking or copying big endian COFF to little endian COFF, or `a.out' to
-`b.out'.  When a mixture of formats is linked, the information is only
-lost from the files whose format differs from the destination.
-
-
-File: bfd.info,  Node: Canonical format,  Prev: BFD information loss,  Up: What BFD Version 2 Can Do
-
-1.3.2 The BFD canonical object-file format
-------------------------------------------
-
-The greatest potential for loss of information occurs when there is the
-least overlap between the information provided by the source format,
-that stored by the canonical format, and that needed by the destination
-format. A brief description of the canonical form may help you
-understand which kinds of data you can count on preserving across
-conversions.  
-
-_files_
-     Information stored on a per-file basis includes target machine
-     architecture, particular implementation format type, a demand
-     pageable bit, and a write protected bit.  Information like Unix
-     magic numbers is not stored here--only the magic numbers' meaning,
-     so a `ZMAGIC' file would have both the demand pageable bit and the
-     write protected text bit set.  The byte order of the target is
-     stored on a per-file basis, so that big- and little-endian object
-     files may be used with one another.
-
-_sections_
-     Each section in the input file contains the name of the section,
-     the section's original address in the object file, size and
-     alignment information, various flags, and pointers into other BFD
-     data structures.
-
-_symbols_
-     Each symbol contains a pointer to the information for the object
-     file which originally defined it, its name, its value, and various
-     flag bits.  When a BFD back end reads in a symbol table, it
-     relocates all symbols to make them relative to the base of the
-     section where they were defined.  Doing this ensures that each
-     symbol points to its containing section.  Each symbol also has a
-     varying amount of hidden private data for the BFD back end.  Since
-     the symbol points to the original file, the private data format
-     for that symbol is accessible.  `ld' can operate on a collection
-     of symbols of wildly different formats without problems.
-
-     Normal global and simple local symbols are maintained on output,
-     so an output file (no matter its format) will retain symbols
-     pointing to functions and to global, static, and common variables.
-     Some symbol information is not worth retaining; in `a.out', type
-     information is stored in the symbol table as long symbol names.
-     This information would be useless to most COFF debuggers; the
-     linker has command line switches to allow users to throw it away.
-
-     There is one word of type information within the symbol, so if the
-     format supports symbol type information within symbols (for
-     example, COFF, IEEE, Oasys) and the type is simple enough to fit
-     within one word (nearly everything but aggregates), the
-     information will be preserved.
-
-_relocation level_
-     Each canonical BFD relocation record contains a pointer to the
-     symbol to relocate to, the offset of the data to relocate, the
-     section the data is in, and a pointer to a relocation type
-     descriptor. Relocation is performed by passing messages through
-     the relocation type descriptor and the symbol pointer. Therefore,
-     relocations can be performed on output data using a relocation
-     method that is only available in one of the input formats. For
-     instance, Oasys provides a byte relocation format.  A relocation
-     record requesting this relocation type would point indirectly to a
-     routine to perform this, so the relocation may be performed on a
-     byte being written to a 68k COFF file, even though 68k COFF has no
-     such relocation type.
-
-_line numbers_
-     Object formats can contain, for debugging purposes, some form of
-     mapping between symbols, source line numbers, and addresses in the
-     output file.  These addresses have to be relocated along with the
-     symbol information.  Each symbol with an associated list of line
-     number records points to the first record of the list.  The head
-     of a line number list consists of a pointer to the symbol, which
-     allows finding out the address of the function whose line number
-     is being described. The rest of the list is made up of pairs:
-     offsets into the section and line numbers. Any format which can
-     simply derive this information can pass it successfully between
-     formats (COFF, IEEE and Oasys).
-
-
-File: bfd.info,  Node: BFD front end,  Next: BFD back ends,  Prev: Overview,  Up: Top
-
-2 BFD Front End
-***************
-
-2.1 `typedef bfd'
-=================
-
-A BFD has type `bfd'; objects of this type are the cornerstone of any
-application using BFD. Using BFD consists of making references though
-the BFD and to data in the BFD.
-
-   Here is the structure that defines the type `bfd'.  It contains the
-major data about the file and pointers to the rest of the data.
-
-
-     struct bfd
-     {
-       /* A unique identifier of the BFD  */
-       unsigned int id;
-
-       /* The filename the application opened the BFD with.  */
-       const char *filename;
-
-       /* A pointer to the target jump table.  */
-       const struct bfd_target *xvec;
-
-       /* The IOSTREAM, and corresponding IO vector that provide access
-          to the file backing the BFD.  */
-       void *iostream;
-       const struct bfd_iovec *iovec;
-
-       /* Is the file descriptor being cached?  That is, can it be closed as
-          needed, and re-opened when accessed later?  */
-       bfd_boolean cacheable;
-
-       /* Marks whether there was a default target specified when the
-          BFD was opened. This is used to select which matching algorithm
-          to use to choose the back end.  */
-       bfd_boolean target_defaulted;
-
-       /* The caching routines use these to maintain a
-          least-recently-used list of BFDs.  */
-       struct bfd *lru_prev, *lru_next;
-
-       /* When a file is closed by the caching routines, BFD retains
-          state information on the file here...  */
-       ufile_ptr where;
-
-       /* ... and here: (``once'' means at least once).  */
-       bfd_boolean opened_once;
-
-       /* Set if we have a locally maintained mtime value, rather than
-          getting it from the file each time.  */
-       bfd_boolean mtime_set;
-
-       /* File modified time, if mtime_set is TRUE.  */
-       long mtime;
-
-       /* Reserved for an unimplemented file locking extension.  */
-       int ifd;
-
-       /* The format which belongs to the BFD. (object, core, etc.)  */
-       bfd_format format;
-
-       /* The direction with which the BFD was opened.  */
-       enum bfd_direction
-         {
-           no_direction = 0,
-           read_direction = 1,
-           write_direction = 2,
-           both_direction = 3
-         }
-       direction;
-
-       /* Format_specific flags.  */
-       flagword flags;
-
-       /* Currently my_archive is tested before adding origin to
-          anything. I believe that this can become always an add of
-          origin, with origin set to 0 for non archive files.  */
-       ufile_ptr origin;
-
-       /* Remember when output has begun, to stop strange things
-          from happening.  */
-       bfd_boolean output_has_begun;
-
-       /* A hash table for section names.  */
-       struct bfd_hash_table section_htab;
-
-       /* Pointer to linked list of sections.  */
-       struct bfd_section *sections;
-
-       /* The place where we add to the section list.  */
-       struct bfd_section **section_tail;
-
-       /* The number of sections.  */
-       unsigned int section_count;
-
-       /* Stuff only useful for object files:
-          The start address.  */
-       bfd_vma start_address;
-
-       /* Used for input and output.  */
-       unsigned int symcount;
-
-       /* Symbol table for output BFD (with symcount entries).  */
-       struct bfd_symbol  **outsymbols;
-
-       /* Used for slurped dynamic symbol tables.  */
-       unsigned int dynsymcount;
-
-       /* Pointer to structure which contains architecture information.  */
-       const struct bfd_arch_info *arch_info;
-
-       /* Flag set if symbols from this BFD should not be exported.  */
-       bfd_boolean no_export;
-
-       /* Stuff only useful for archives.  */
-       void *arelt_data;
-       struct bfd *my_archive;      /* The containing archive BFD.  */
-       struct bfd *next;            /* The next BFD in the archive.  */
-       struct bfd *archive_head;    /* The first BFD in the archive.  */
-       bfd_boolean has_armap;
-
-       /* A chain of BFD structures involved in a link.  */
-       struct bfd *link_next;
-
-       /* A field used by _bfd_generic_link_add_archive_symbols.  This will
-          be used only for archive elements.  */
-       int archive_pass;
-
-       /* Used by the back end to hold private data.  */
-       union
-         {
-           struct aout_data_struct *aout_data;
-           struct artdata *aout_ar_data;
-           struct _oasys_data *oasys_obj_data;
-           struct _oasys_ar_data *oasys_ar_data;
-           struct coff_tdata *coff_obj_data;
-           struct pe_tdata *pe_obj_data;
-           struct xcoff_tdata *xcoff_obj_data;
-           struct ecoff_tdata *ecoff_obj_data;
-           struct ieee_data_struct *ieee_data;
-           struct ieee_ar_data_struct *ieee_ar_data;
-           struct srec_data_struct *srec_data;
-           struct ihex_data_struct *ihex_data;
-           struct tekhex_data_struct *tekhex_data;
-           struct elf_obj_tdata *elf_obj_data;
-           struct nlm_obj_tdata *nlm_obj_data;
-           struct bout_data_struct *bout_data;
-           struct mmo_data_struct *mmo_data;
-           struct sun_core_struct *sun_core_data;
-           struct sco5_core_struct *sco5_core_data;
-           struct trad_core_struct *trad_core_data;
-           struct som_data_struct *som_data;
-           struct hpux_core_struct *hpux_core_data;
-           struct hppabsd_core_struct *hppabsd_core_data;
-           struct sgi_core_struct *sgi_core_data;
-           struct lynx_core_struct *lynx_core_data;
-           struct osf_core_struct *osf_core_data;
-           struct cisco_core_struct *cisco_core_data;
-           struct versados_data_struct *versados_data;
-           struct netbsd_core_struct *netbsd_core_data;
-           struct mach_o_data_struct *mach_o_data;
-           struct mach_o_fat_data_struct *mach_o_fat_data;
-           struct bfd_pef_data_struct *pef_data;
-           struct bfd_pef_xlib_data_struct *pef_xlib_data;
-           struct bfd_sym_data_struct *sym_data;
-           void *any;
-         }
-       tdata;
-
-       /* Used by the application to hold private data.  */
-       void *usrdata;
-
-       /* Where all the allocated stuff under this BFD goes.  This is a
-          struct objalloc *, but we use void * to avoid requiring the inclusion
-          of objalloc.h.  */
-       void *memory;
-     };
-
-2.2 Error reporting
-===================
-
-Most BFD functions return nonzero on success (check their individual
-documentation for precise semantics).  On an error, they call
-`bfd_set_error' to set an error condition that callers can check by
-calling `bfd_get_error'.  If that returns `bfd_error_system_call', then
-check `errno'.
-
-   The easiest way to report a BFD error to the user is to use
-`bfd_perror'.
-
-2.2.1 Type `bfd_error_type'
----------------------------
-
-The values returned by `bfd_get_error' are defined by the enumerated
-type `bfd_error_type'.
-
-
-     typedef enum bfd_error
-     {
-       bfd_error_no_error = 0,
-       bfd_error_system_call,
-       bfd_error_invalid_target,
-       bfd_error_wrong_format,
-       bfd_error_wrong_object_format,
-       bfd_error_invalid_operation,
-       bfd_error_no_memory,
-       bfd_error_no_symbols,
-       bfd_error_no_armap,
-       bfd_error_no_more_archived_files,
-       bfd_error_malformed_archive,
-       bfd_error_file_not_recognized,
-       bfd_error_file_ambiguously_recognized,
-       bfd_error_no_contents,
-       bfd_error_nonrepresentable_section,
-       bfd_error_no_debug_section,
-       bfd_error_bad_value,
-       bfd_error_file_truncated,
-       bfd_error_file_too_big,
-       bfd_error_invalid_error_code
-     }
-     bfd_error_type;
-   
-2.2.1.1 `bfd_get_error'
-.......................
-
-*Synopsis*
-     bfd_error_type bfd_get_error (void);
-   *Description*
-Return the current BFD error condition.
-
-2.2.1.2 `bfd_set_error'
-.......................
-
-*Synopsis*
-     void bfd_set_error (bfd_error_type error_tag);
-   *Description*
-Set the BFD error condition to be ERROR_TAG.
-
-2.2.1.3 `bfd_errmsg'
-....................
-
-*Synopsis*
-     const char *bfd_errmsg (bfd_error_type error_tag);
-   *Description*
-Return a string describing the error ERROR_TAG, or the system error if
-ERROR_TAG is `bfd_error_system_call'.
-
-2.2.1.4 `bfd_perror'
-....................
-
-*Synopsis*
-     void bfd_perror (const char *message);
-   *Description*
-Print to the standard error stream a string describing the last BFD
-error that occurred, or the last system error if the last BFD error was
-a system call failure.  If MESSAGE is non-NULL and non-empty, the error
-string printed is preceded by MESSAGE, a colon, and a space.  It is
-followed by a newline.
-
-2.2.2 BFD error handler
------------------------
-
-Some BFD functions want to print messages describing the problem.  They
-call a BFD error handler function.  This function may be overridden by
-the program.
-
-   The BFD error handler acts like printf.
-
-
-     typedef void (*bfd_error_handler_type) (const char *, ...);
-   
-2.2.2.1 `bfd_set_error_handler'
-...............................
-
-*Synopsis*
-     bfd_error_handler_type bfd_set_error_handler (bfd_error_handler_type);
-   *Description*
-Set the BFD error handler function.  Returns the previous function.
-
-2.2.2.2 `bfd_set_error_program_name'
-....................................
-
-*Synopsis*
-     void bfd_set_error_program_name (const char *);
-   *Description*
-Set the program name to use when printing a BFD error.  This is printed
-before the error message followed by a colon and space.  The string
-must not be changed after it is passed to this function.
-
-2.2.2.3 `bfd_get_error_handler'
-...............................
-
-*Synopsis*
-     bfd_error_handler_type bfd_get_error_handler (void);
-   *Description*
-Return the BFD error handler function.
-
-2.3 Symbols
-===========
-
-2.3.0.1 `bfd_get_reloc_upper_bound'
-...................................
-
-*Synopsis*
-     long bfd_get_reloc_upper_bound (bfd *abfd, asection *sect);
-   *Description*
-Return the number of bytes required to store the relocation information
-associated with section SECT attached to bfd ABFD.  If an error occurs,
-return -1.
-
-2.3.0.2 `bfd_canonicalize_reloc'
-................................
-
-*Synopsis*
-     long bfd_canonicalize_reloc
-        (bfd *abfd, asection *sec, arelent **loc, asymbol **syms);
-   *Description*
-Call the back end associated with the open BFD ABFD and translate the
-external form of the relocation information attached to SEC into the
-internal canonical form.  Place the table into memory at LOC, which has
-been preallocated, usually by a call to `bfd_get_reloc_upper_bound'.
-Returns the number of relocs, or -1 on error.
-
-   The SYMS table is also needed for horrible internal magic reasons.
-
-2.3.0.3 `bfd_set_reloc'
-.......................
-
-*Synopsis*
-     void bfd_set_reloc
-        (bfd *abfd, asection *sec, arelent **rel, unsigned int count);
-   *Description*
-Set the relocation pointer and count within section SEC to the values
-REL and COUNT.  The argument ABFD is ignored.
-
-2.3.0.4 `bfd_set_file_flags'
-............................
-
-*Synopsis*
-     bfd_boolean bfd_set_file_flags (bfd *abfd, flagword flags);
-   *Description*
-Set the flag word in the BFD ABFD to the value FLAGS.
-
-   Possible errors are:
-   * `bfd_error_wrong_format' - The target bfd was not of object format.
-
-   * `bfd_error_invalid_operation' - The target bfd was open for
-     reading.
-
-   * `bfd_error_invalid_operation' - The flag word contained a bit
-     which was not applicable to the type of file.  E.g., an attempt
-     was made to set the `D_PAGED' bit on a BFD format which does not
-     support demand paging.
-
-2.3.0.5 `bfd_get_arch_size'
-...........................
-
-*Synopsis*
-     int bfd_get_arch_size (bfd *abfd);
-   *Description*
-Returns the architecture address size, in bits, as determined by the
-object file's format.  For ELF, this information is included in the
-header.
-
-   *Returns*
-Returns the arch size in bits if known, `-1' otherwise.
-
-2.3.0.6 `bfd_get_sign_extend_vma'
-.................................
-
-*Synopsis*
-     int bfd_get_sign_extend_vma (bfd *abfd);
-   *Description*
-Indicates if the target architecture "naturally" sign extends an
-address.  Some architectures implicitly sign extend address values when
-they are converted to types larger than the size of an address.  For
-instance, bfd_get_start_address() will return an address sign extended
-to fill a bfd_vma when this is the case.
-
-   *Returns*
-Returns `1' if the target architecture is known to sign extend
-addresses, `0' if the target architecture is known to not sign extend
-addresses, and `-1' otherwise.
-
-2.3.0.7 `bfd_set_start_address'
-...............................
-
-*Synopsis*
-     bfd_boolean bfd_set_start_address (bfd *abfd, bfd_vma vma);
-   *Description*
-Make VMA the entry point of output BFD ABFD.
-
-   *Returns*
-Returns `TRUE' on success, `FALSE' otherwise.
-
-2.3.0.8 `bfd_get_gp_size'
-.........................
-
-*Synopsis*
-     unsigned int bfd_get_gp_size (bfd *abfd);
-   *Description*
-Return the maximum size of objects to be optimized using the GP
-register under MIPS ECOFF.  This is typically set by the `-G' argument
-to the compiler, assembler or linker.
-
-2.3.0.9 `bfd_set_gp_size'
-.........................
-
-*Synopsis*
-     void bfd_set_gp_size (bfd *abfd, unsigned int i);
-   *Description*
-Set the maximum size of objects to be optimized using the GP register
-under ECOFF or MIPS ELF.  This is typically set by the `-G' argument to
-the compiler, assembler or linker.
-
-2.3.0.10 `bfd_scan_vma'
-.......................
-
-*Synopsis*
-     bfd_vma bfd_scan_vma (const char *string, const char **end, int base);
-   *Description*
-Convert, like `strtoul', a numerical expression STRING into a `bfd_vma'
-integer, and return that integer.  (Though without as many bells and
-whistles as `strtoul'.)  The expression is assumed to be unsigned
-(i.e., positive).  If given a BASE, it is used as the base for
-conversion.  A base of 0 causes the function to interpret the string in
-hex if a leading "0x" or "0X" is found, otherwise in octal if a leading
-zero is found, otherwise in decimal.
-
-   If the value would overflow, the maximum `bfd_vma' value is returned.
-
-2.3.0.11 `bfd_copy_private_header_data'
-.......................................
-
-*Synopsis*
-     bfd_boolean bfd_copy_private_header_data (bfd *ibfd, bfd *obfd);
-   *Description*
-Copy private BFD header information from the BFD IBFD to the the BFD
-OBFD.  This copies information that may require sections to exist, but
-does not require symbol tables.  Return `true' on success, `false' on
-error.  Possible error returns are:
-
-   * `bfd_error_no_memory' - Not enough memory exists to create private
-     data for OBFD.
-
-     #define bfd_copy_private_header_data(ibfd, obfd) \
-          BFD_SEND (obfd, _bfd_copy_private_header_data, \
-                    (ibfd, obfd))
-
-2.3.0.12 `bfd_copy_private_bfd_data'
-....................................
-
-*Synopsis*
-     bfd_boolean bfd_copy_private_bfd_data (bfd *ibfd, bfd *obfd);
-   *Description*
-Copy private BFD information from the BFD IBFD to the the BFD OBFD.
-Return `TRUE' on success, `FALSE' on error.  Possible error returns are:
-
-   * `bfd_error_no_memory' - Not enough memory exists to create private
-     data for OBFD.
-
-     #define bfd_copy_private_bfd_data(ibfd, obfd) \
-          BFD_SEND (obfd, _bfd_copy_private_bfd_data, \
-                    (ibfd, obfd))
-
-2.3.0.13 `bfd_merge_private_bfd_data'
-.....................................
-
-*Synopsis*
-     bfd_boolean bfd_merge_private_bfd_data (bfd *ibfd, bfd *obfd);
-   *Description*
-Merge private BFD information from the BFD IBFD to the the output file
-BFD OBFD when linking.  Return `TRUE' on success, `FALSE' on error.
-Possible error returns are:
-
-   * `bfd_error_no_memory' - Not enough memory exists to create private
-     data for OBFD.
-
-     #define bfd_merge_private_bfd_data(ibfd, obfd) \
-          BFD_SEND (obfd, _bfd_merge_private_bfd_data, \
-                    (ibfd, obfd))
-
-2.3.0.14 `bfd_set_private_flags'
-................................
-
-*Synopsis*
-     bfd_boolean bfd_set_private_flags (bfd *abfd, flagword flags);
-   *Description*
-Set private BFD flag information in the BFD ABFD.  Return `TRUE' on
-success, `FALSE' on error.  Possible error returns are:
-
-   * `bfd_error_no_memory' - Not enough memory exists to create private
-     data for OBFD.
-
-     #define bfd_set_private_flags(abfd, flags) \
-          BFD_SEND (abfd, _bfd_set_private_flags, (abfd, flags))
-
-2.3.0.15 `Other functions'
-..........................
-
-*Description*
-The following functions exist but have not yet been documented.
-     #define bfd_sizeof_headers(abfd, reloc) \
-            BFD_SEND (abfd, _bfd_sizeof_headers, (abfd, reloc))
-
-     #define bfd_find_nearest_line(abfd, sec, syms, off, file, func, line) \
-            BFD_SEND (abfd, _bfd_find_nearest_line, \
-                      (abfd, sec, syms, off, file, func, line))
-
-     #define bfd_debug_info_start(abfd) \
-            BFD_SEND (abfd, _bfd_debug_info_start, (abfd))
-
-     #define bfd_debug_info_end(abfd) \
-            BFD_SEND (abfd, _bfd_debug_info_end, (abfd))
-
-     #define bfd_debug_info_accumulate(abfd, section) \
-            BFD_SEND (abfd, _bfd_debug_info_accumulate, (abfd, section))
-
-     #define bfd_stat_arch_elt(abfd, stat) \
-            BFD_SEND (abfd, _bfd_stat_arch_elt,(abfd, stat))
-
-     #define bfd_update_armap_timestamp(abfd) \
-            BFD_SEND (abfd, _bfd_update_armap_timestamp, (abfd))
-
-     #define bfd_set_arch_mach(abfd, arch, mach)\
-            BFD_SEND ( abfd, _bfd_set_arch_mach, (abfd, arch, mach))
-
-     #define bfd_relax_section(abfd, section, link_info, again) \
-            BFD_SEND (abfd, _bfd_relax_section, (abfd, section, link_info, again))
-
-     #define bfd_gc_sections(abfd, link_info) \
-            BFD_SEND (abfd, _bfd_gc_sections, (abfd, link_info))
-
-     #define bfd_merge_sections(abfd, link_info) \
-            BFD_SEND (abfd, _bfd_merge_sections, (abfd, link_info))
-
-     #define bfd_is_group_section(abfd, sec) \
-            BFD_SEND (abfd, _bfd_is_group_section, (abfd, sec))
-
-     #define bfd_discard_group(abfd, sec) \
-            BFD_SEND (abfd, _bfd_discard_group, (abfd, sec))
-
-     #define bfd_link_hash_table_create(abfd) \
-            BFD_SEND (abfd, _bfd_link_hash_table_create, (abfd))
-
-     #define bfd_link_hash_table_free(abfd, hash) \
-            BFD_SEND (abfd, _bfd_link_hash_table_free, (hash))
-
-     #define bfd_link_add_symbols(abfd, info) \
-            BFD_SEND (abfd, _bfd_link_add_symbols, (abfd, info))
-
-     #define bfd_link_just_syms(abfd, sec, info) \
-            BFD_SEND (abfd, _bfd_link_just_syms, (sec, info))
-
-     #define bfd_final_link(abfd, info) \
-            BFD_SEND (abfd, _bfd_final_link, (abfd, info))
-
-     #define bfd_free_cached_info(abfd) \
-            BFD_SEND (abfd, _bfd_free_cached_info, (abfd))
-
-     #define bfd_get_dynamic_symtab_upper_bound(abfd) \
-            BFD_SEND (abfd, _bfd_get_dynamic_symtab_upper_bound, (abfd))
-
-     #define bfd_print_private_bfd_data(abfd, file)\
-            BFD_SEND (abfd, _bfd_print_private_bfd_data, (abfd, file))
-
-     #define bfd_canonicalize_dynamic_symtab(abfd, asymbols) \
-            BFD_SEND (abfd, _bfd_canonicalize_dynamic_symtab, (abfd, asymbols))
-
-     #define bfd_get_synthetic_symtab(abfd, count, syms, dyncount, dynsyms, ret) \
-            BFD_SEND (abfd, _bfd_get_synthetic_symtab, (abfd, count, syms, \
-                                                        dyncount, dynsyms, ret))
-
-     #define bfd_get_dynamic_reloc_upper_bound(abfd) \
-            BFD_SEND (abfd, _bfd_get_dynamic_reloc_upper_bound, (abfd))
-
-     #define bfd_canonicalize_dynamic_reloc(abfd, arels, asyms) \
-            BFD_SEND (abfd, _bfd_canonicalize_dynamic_reloc, (abfd, arels, asyms))
-
-     extern bfd_byte *bfd_get_relocated_section_contents
-       (bfd *, struct bfd_link_info *, struct bfd_link_order *, bfd_byte *,
-        bfd_boolean, asymbol **);
-
-2.3.0.16 `bfd_alt_mach_code'
-............................
-
-*Synopsis*
-     bfd_boolean bfd_alt_mach_code (bfd *abfd, int alternative);
-   *Description*
-When more than one machine code number is available for the same
-machine type, this function can be used to switch between the preferred
-one (alternative == 0) and any others.  Currently, only ELF supports
-this feature, with up to two alternate machine codes.
-
-     struct bfd_preserve
-     {
-       void *marker;
-       void *tdata;
-       flagword flags;
-       const struct bfd_arch_info *arch_info;
-       struct bfd_section *sections;
-       struct bfd_section **section_tail;
-       unsigned int section_count;
-       struct bfd_hash_table section_htab;
-     };
-   
-2.3.0.17 `bfd_preserve_save'
-............................
-
-*Synopsis*
-     bfd_boolean bfd_preserve_save (bfd *, struct bfd_preserve *);
-   *Description*
-When testing an object for compatibility with a particular target
-back-end, the back-end object_p function needs to set up certain fields
-in the bfd on successfully recognizing the object.  This typically
-happens in a piecemeal fashion, with failures possible at many points.
-On failure, the bfd is supposed to be restored to its initial state,
-which is virtually impossible.  However, restoring a subset of the bfd
-state works in practice.  This function stores the subset and
-reinitializes the bfd.
-
-2.3.0.18 `bfd_preserve_restore'
-...............................
-
-*Synopsis*
-     void bfd_preserve_restore (bfd *, struct bfd_preserve *);
-   *Description*
-This function restores bfd state saved by bfd_preserve_save.  If MARKER
-is non-NULL in struct bfd_preserve then that block and all subsequently
-bfd_alloc'd memory is freed.
-
-2.3.0.19 `bfd_preserve_finish'
-..............................
-
-*Synopsis*
-     void bfd_preserve_finish (bfd *, struct bfd_preserve *);
-   *Description*
-This function should be called when the bfd state saved by
-bfd_preserve_save is no longer needed.  ie. when the back-end object_p
-function returns with success.
-
-2.3.0.20 `struct bfd_iovec'
-...........................
-
-*Description*
-The `struct bfd_iovec' contains the internal file I/O class.  Each
-`BFD' has an instance of this class and all file I/O is routed through
-it (it is assumed that the instance implements all methods listed
-below).
-     struct bfd_iovec
-     {
-       /* To avoid problems with macros, a "b" rather than "f"
-          prefix is prepended to each method name.  */
-       /* Attempt to read/write NBYTES on ABFD's IOSTREAM storing/fetching
-          bytes starting at PTR.  Return the number of bytes actually
-          transfered (a read past end-of-file returns less than NBYTES),
-          or -1 (setting `bfd_error') if an error occurs.  */
-       file_ptr (*bread) (struct bfd *abfd, void *ptr, file_ptr nbytes);
-       file_ptr (*bwrite) (struct bfd *abfd, const void *ptr,
-                           file_ptr nbytes);
-       /* Return the current IOSTREAM file offset, or -1 (setting `bfd_error'
-          if an error occurs.  */
-       file_ptr (*btell) (struct bfd *abfd);
-       /* For the following, on successful completion a value of 0 is returned.
-          Otherwise, a value of -1 is returned (and  `bfd_error' is set).  */
-       int (*bseek) (struct bfd *abfd, file_ptr offset, int whence);
-       int (*bclose) (struct bfd *abfd);
-       int (*bflush) (struct bfd *abfd);
-       int (*bstat) (struct bfd *abfd, struct stat *sb);
-     };
-
-2.3.0.21 `bfd_get_mtime'
-........................
-
-*Synopsis*
-     long bfd_get_mtime (bfd *abfd);
-   *Description*
-Return the file modification time (as read from the file system, or
-from the archive header for archive members).
-
-2.3.0.22 `bfd_get_size'
-.......................
-
-*Synopsis*
-     long bfd_get_size (bfd *abfd);
-   *Description*
-Return the file size (as read from file system) for the file associated
-with BFD ABFD.
-
-   The initial motivation for, and use of, this routine is not so we
-can get the exact size of the object the BFD applies to, since that
-might not be generally possible (archive members for example).  It
-would be ideal if someone could eventually modify it so that such
-results were guaranteed.
-
-   Instead, we want to ask questions like "is this NNN byte sized
-object I'm about to try read from file offset YYY reasonable?"  As as
-example of where we might do this, some object formats use string
-tables for which the first `sizeof (long)' bytes of the table contain
-the size of the table itself, including the size bytes.  If an
-application tries to read what it thinks is one of these string tables,
-without some way to validate the size, and for some reason the size is
-wrong (byte swapping error, wrong location for the string table, etc.),
-the only clue is likely to be a read error when it tries to read the
-table, or a "virtual memory exhausted" error when it tries to allocate
-15 bazillon bytes of space for the 15 bazillon byte table it is about
-to read.  This function at least allows us to answer the question, "is
-the size reasonable?".
-
-* Menu:
-
-* Memory Usage::
-* Initialization::
-* Sections::
-* Symbols::
-* Archives::
-* Formats::
-* Relocations::
-* Core Files::
-* Targets::
-* Architectures::
-* Opening and Closing::
-* Internal::
-* File Caching::
-* Linker Functions::
-* Hash Tables::
-
-
-File: bfd.info,  Node: Memory Usage,  Next: Initialization,  Prev: BFD front end,  Up: BFD front end
-
-2.4 Memory Usage
-================
-
-BFD keeps all of its internal structures in obstacks. There is one
-obstack per open BFD file, into which the current state is stored. When
-a BFD is closed, the obstack is deleted, and so everything which has
-been allocated by BFD for the closing file is thrown away.
-
-   BFD does not free anything created by an application, but pointers
-into `bfd' structures become invalid on a `bfd_close'; for example,
-after a `bfd_close' the vector passed to `bfd_canonicalize_symtab' is
-still around, since it has been allocated by the application, but the
-data that it pointed to are lost.
-
-   The general rule is to not close a BFD until all operations dependent
-upon data from the BFD have been completed, or all the data from within
-the file has been copied. To help with the management of memory, there
-is a function (`bfd_alloc_size') which returns the number of bytes in
-obstacks associated with the supplied BFD. This could be used to select
-the greediest open BFD, close it to reclaim the memory, perform some
-operation and reopen the BFD again, to get a fresh copy of the data
-structures.
-
-
-File: bfd.info,  Node: Initialization,  Next: Sections,  Prev: Memory Usage,  Up: BFD front end
-
-2.5 Initialization
-==================
-
-These are the functions that handle initializing a BFD.
-
-2.5.0.1 `bfd_init'
-..................
-
-*Synopsis*
-     void bfd_init (void);
-   *Description*
-This routine must be called before any other BFD function to initialize
-magical internal data structures.
-
-
-File: bfd.info,  Node: Sections,  Next: Symbols,  Prev: Initialization,  Up: BFD front end
-
-2.6 Sections
-============
-
-The raw data contained within a BFD is maintained through the section
-abstraction.  A single BFD may have any number of sections.  It keeps
-hold of them by pointing to the first; each one points to the next in
-the list.
-
-   Sections are supported in BFD in `section.c'.
-
-* Menu:
-
-* Section Input::
-* Section Output::
-* typedef asection::
-* section prototypes::
-
-
-File: bfd.info,  Node: Section Input,  Next: Section Output,  Prev: Sections,  Up: Sections
-
-2.6.1 Section input
--------------------
-
-When a BFD is opened for reading, the section structures are created
-and attached to the BFD.
-
-   Each section has a name which describes the section in the outside
-world--for example, `a.out' would contain at least three sections,
-called `.text', `.data' and `.bss'.
-
-   Names need not be unique; for example a COFF file may have several
-sections named `.data'.
-
-   Sometimes a BFD will contain more than the "natural" number of
-sections. A back end may attach other sections containing constructor
-data, or an application may add a section (using `bfd_make_section') to
-the sections attached to an already open BFD. For example, the linker
-creates an extra section `COMMON' for each input file's BFD to hold
-information about common storage.
-
-   The raw data is not necessarily read in when the section descriptor
-is created. Some targets may leave the data in place until a
-`bfd_get_section_contents' call is made. Other back ends may read in
-all the data at once.  For example, an S-record file has to be read
-once to determine the size of the data. An IEEE-695 file doesn't
-contain raw data in sections, but data and relocation expressions
-intermixed, so the data area has to be parsed to get out the data and
-relocations.
-
-
-File: bfd.info,  Node: Section Output,  Next: typedef asection,  Prev: Section Input,  Up: Sections
-
-2.6.2 Section output
---------------------
-
-To write a new object style BFD, the various sections to be written
-have to be created. They are attached to the BFD in the same way as
-input sections; data is written to the sections using
-`bfd_set_section_contents'.
-
-   Any program that creates or combines sections (e.g., the assembler
-and linker) must use the `asection' fields `output_section' and
-`output_offset' to indicate the file sections to which each section
-must be written.  (If the section is being created from scratch,
-`output_section' should probably point to the section itself and
-`output_offset' should probably be zero.)
-
-   The data to be written comes from input sections attached (via
-`output_section' pointers) to the output sections.  The output section
-structure can be considered a filter for the input section: the output
-section determines the vma of the output data and the name, but the
-input section determines the offset into the output section of the data
-to be written.
-
-   E.g., to create a section "O", starting at 0x100, 0x123 long,
-containing two subsections, "A" at offset 0x0 (i.e., at vma 0x100) and
-"B" at offset 0x20 (i.e., at vma 0x120) the `asection' structures would
-look like:
-
-        section name          "A"
-          output_offset   0x00
-          size            0x20
-          output_section ----------->  section name    "O"
-                                  |    vma             0x100
-        section name          "B" |    size            0x123
-          output_offset   0x20    |
-          size            0x103   |
-          output_section  --------|
-
-2.6.3 Link orders
------------------
-
-The data within a section is stored in a "link_order".  These are much
-like the fixups in `gas'.  The link_order abstraction allows a section
-to grow and shrink within itself.
-
-   A link_order knows how big it is, and which is the next link_order
-and where the raw data for it is; it also points to a list of
-relocations which apply to it.
-
-   The link_order is used by the linker to perform relaxing on final
-code.  The compiler creates code which is as big as necessary to make
-it work without relaxing, and the user can select whether to relax.
-Sometimes relaxing takes a lot of time.  The linker runs around the
-relocations to see if any are attached to data which can be shrunk, if
-so it does it on a link_order by link_order basis.
-
-
-File: bfd.info,  Node: typedef asection,  Next: section prototypes,  Prev: Section Output,  Up: Sections
-
-2.6.4 typedef asection
-----------------------
-
-Here is the section structure:
-
-
-     typedef struct bfd_section
-     {
-       /* The name of the section; the name isn't a copy, the pointer is
-          the same as that passed to bfd_make_section.  */
-       const char *name;
-
-       /* A unique sequence number.  */
-       int id;
-
-       /* Which section in the bfd; 0..n-1 as sections are created in a bfd.  */
-       int index;
-
-       /* The next section in the list belonging to the BFD, or NULL.  */
-       struct bfd_section *next;
-
-       /* The field flags contains attributes of the section. Some
-          flags are read in from the object file, and some are
-          synthesized from other information.  */
-       flagword flags;
-
-     #define SEC_NO_FLAGS   0x000
-
-       /* Tells the OS to allocate space for this section when loading.
-          This is clear for a section containing debug information only.  */
-     #define SEC_ALLOC      0x001
-
-       /* Tells the OS to load the section from the file when loading.
-          This is clear for a .bss section.  */
-     #define SEC_LOAD       0x002
-
-       /* The section contains data still to be relocated, so there is
-          some relocation information too.  */
-     #define SEC_RELOC      0x004
-
-       /* A signal to the OS that the section contains read only data.  */
-     #define SEC_READONLY   0x008
-
-       /* The section contains code only.  */
-     #define SEC_CODE       0x010
-
-       /* The section contains data only.  */
-     #define SEC_DATA       0x020
-
-       /* The section will reside in ROM.  */
-     #define SEC_ROM        0x040
-
-       /* The section contains constructor information. This section
-          type is used by the linker to create lists of constructors and
-          destructors used by `g++'. When a back end sees a symbol
-          which should be used in a constructor list, it creates a new
-          section for the type of name (e.g., `__CTOR_LIST__'), attaches
-          the symbol to it, and builds a relocation. To build the lists
-          of constructors, all the linker has to do is catenate all the
-          sections called `__CTOR_LIST__' and relocate the data
-          contained within - exactly the operations it would peform on
-          standard data.  */
-     #define SEC_CONSTRUCTOR 0x080
-
-       /* The section has contents - a data section could be
-          `SEC_ALLOC' | `SEC_HAS_CONTENTS'; a debug section could be
-          `SEC_HAS_CONTENTS'  */
-     #define SEC_HAS_CONTENTS 0x100
-
-       /* An instruction to the linker to not output the section
-          even if it has information which would normally be written.  */
-     #define SEC_NEVER_LOAD 0x200
-
-       /* The section contains thread local data.  */
-     #define SEC_THREAD_LOCAL 0x400
-
-       /* The section has GOT references.  This flag is only for the
-          linker, and is currently only used by the elf32-hppa back end.
-          It will be set if global offset table references were detected
-          in this section, which indicate to the linker that the section
-          contains PIC code, and must be handled specially when doing a
-          static link.  */
-     #define SEC_HAS_GOT_REF 0x800
-
-       /* The section contains common symbols (symbols may be defined
-          multiple times, the value of a symbol is the amount of
-          space it requires, and the largest symbol value is the one
-          used).  Most targets have exactly one of these (which we
-          translate to bfd_com_section_ptr), but ECOFF has two.  */
-     #define SEC_IS_COMMON 0x1000
-
-       /* The section contains only debugging information.  For
-          example, this is set for ELF .debug and .stab sections.
-          strip tests this flag to see if a section can be
-          discarded.  */
-     #define SEC_DEBUGGING 0x2000
-
-       /* The contents of this section are held in memory pointed to
-          by the contents field.  This is checked by bfd_get_section_contents,
-          and the data is retrieved from memory if appropriate.  */
-     #define SEC_IN_MEMORY 0x4000
-
-       /* The contents of this section are to be excluded by the
-          linker for executable and shared objects unless those
-          objects are to be further relocated.  */
-     #define SEC_EXCLUDE 0x8000
-
-       /* The contents of this section are to be sorted based on the sum of
-          the symbol and addend values specified by the associated relocation
-          entries.  Entries without associated relocation entries will be
-          appended to the end of the section in an unspecified order.  */
-     #define SEC_SORT_ENTRIES 0x10000
-
-       /* When linking, duplicate sections of the same name should be
-          discarded, rather than being combined into a single section as
-          is usually done.  This is similar to how common symbols are
-          handled.  See SEC_LINK_DUPLICATES below.  */
-     #define SEC_LINK_ONCE 0x20000
-
-       /* If SEC_LINK_ONCE is set, this bitfield describes how the linker
-          should handle duplicate sections.  */
-     #define SEC_LINK_DUPLICATES 0x40000
-
-       /* This value for SEC_LINK_DUPLICATES means that duplicate
-          sections with the same name should simply be discarded.  */
-     #define SEC_LINK_DUPLICATES_DISCARD 0x0
-
-       /* This value for SEC_LINK_DUPLICATES means that the linker
-          should warn if there are any duplicate sections, although
-          it should still only link one copy.  */
-     #define SEC_LINK_DUPLICATES_ONE_ONLY 0x80000
-
-       /* This value for SEC_LINK_DUPLICATES means that the linker
-          should warn if any duplicate sections are a different size.  */
-     #define SEC_LINK_DUPLICATES_SAME_SIZE 0x100000
-
-       /* This value for SEC_LINK_DUPLICATES means that the linker
-          should warn if any duplicate sections contain different
-          contents.  */
-     #define SEC_LINK_DUPLICATES_SAME_CONTENTS \
-       (SEC_LINK_DUPLICATES_ONE_ONLY | SEC_LINK_DUPLICATES_SAME_SIZE)
-
-       /* This section was created by the linker as part of dynamic
-          relocation or other arcane processing.  It is skipped when
-          going through the first-pass output, trusting that someone
-          else up the line will take care of it later.  */
-     #define SEC_LINKER_CREATED 0x200000
-
-       /* This section should not be subject to garbage collection.  */
-     #define SEC_KEEP 0x400000
-
-       /* This section contains "short" data, and should be placed
-          "near" the GP.  */
-     #define SEC_SMALL_DATA 0x800000
-
-       /* Attempt to merge identical entities in the section.
-          Entity size is given in the entsize field.  */
-     #define SEC_MERGE 0x1000000
-
-       /* If given with SEC_MERGE, entities to merge are zero terminated
-          strings where entsize specifies character size instead of fixed
-          size entries.  */
-     #define SEC_STRINGS 0x2000000
-
-       /* This section contains data about section groups.  */
-     #define SEC_GROUP 0x4000000
-
-       /* The section is a COFF shared library section.  This flag is
-          only for the linker.  If this type of section appears in
-          the input file, the linker must copy it to the output file
-          without changing the vma or size.  FIXME: Although this
-          was originally intended to be general, it really is COFF
-          specific (and the flag was renamed to indicate this).  It
-          might be cleaner to have some more general mechanism to
-          allow the back end to control what the linker does with
-          sections.  */
-     #define SEC_COFF_SHARED_LIBRARY 0x10000000
-
-       /* This section contains data which may be shared with other
-          executables or shared objects. This is for COFF only.  */
-     #define SEC_COFF_SHARED 0x20000000
-
-       /* When a section with this flag is being linked, then if the size of
-          the input section is less than a page, it should not cross a page
-          boundary.  If the size of the input section is one page or more,
-          it should be aligned on a page boundary.  This is for TI
-          TMS320C54X only.  */
-     #define SEC_TIC54X_BLOCK 0x40000000
-
-       /* Conditionally link this section; do not link if there are no
-          references found to any symbol in the section.  This is for TI
-          TMS320C54X only.  */
-     #define SEC_TIC54X_CLINK 0x80000000
-
-       /*  End of section flags.  */
-
-       /* Some internal packed boolean fields.  */
-
-       /* See the vma field.  */
-       unsigned int user_set_vma : 1;
-
-       /* A mark flag used by some of the linker backends.  */
-       unsigned int linker_mark : 1;
-
-       /* Another mark flag used by some of the linker backends.  Set for
-          output sections that have an input section.  */
-       unsigned int linker_has_input : 1;
-
-       /* A mark flag used by some linker backends for garbage collection.  */
-       unsigned int gc_mark : 1;
-
-       /* The following flags are used by the ELF linker. */
-
-       /* Mark sections which have been allocated to segments.  */
-       unsigned int segment_mark : 1;
-
-       /* Type of sec_info information.  */
-       unsigned int sec_info_type:3;
-     #define ELF_INFO_TYPE_NONE      0
-     #define ELF_INFO_TYPE_STABS     1
-     #define ELF_INFO_TYPE_MERGE     2
-     #define ELF_INFO_TYPE_EH_FRAME  3
-     #define ELF_INFO_TYPE_JUST_SYMS 4
-
-       /* Nonzero if this section uses RELA relocations, rather than REL.  */
-       unsigned int use_rela_p:1;
-
-       /* Bits used by various backends.  The generic code doesn't touch
-          these fields.  */
-
-       /* Nonzero if this section has TLS related relocations.  */
-       unsigned int has_tls_reloc:1;
-
-       /* Nonzero if this section has a gp reloc.  */
-       unsigned int has_gp_reloc:1;
-
-       /* Nonzero if this section needs the relax finalize pass.  */
-       unsigned int need_finalize_relax:1;
-
-       /* Whether relocations have been processed.  */
-       unsigned int reloc_done : 1;
-
-       /* End of internal packed boolean fields.  */
-
-       /*  The virtual memory address of the section - where it will be
-           at run time.  The symbols are relocated against this.  The
-           user_set_vma flag is maintained by bfd; if it's not set, the
-           backend can assign addresses (for example, in `a.out', where
-           the default address for `.data' is dependent on the specific
-           target and various flags).  */
-       bfd_vma vma;
-
-       /*  The load address of the section - where it would be in a
-           rom image; really only used for writing section header
-           information.  */
-       bfd_vma lma;
-
-       /* The size of the section in octets, as it will be output.
-          Contains a value even if the section has no contents (e.g., the
-          size of `.bss').  */
-       bfd_size_type size;
-
-       /* For input sections, the original size on disk of the section, in
-          octets.  This field is used by the linker relaxation code.  It is
-          currently only set for sections where the linker relaxation scheme
-          doesn't cache altered section and reloc contents (stabs, eh_frame,
-          SEC_MERGE, some coff relaxing targets), and thus the original size
-          needs to be kept to read the section multiple times.
-          For output sections, rawsize holds the section size calculated on
-          a previous linker relaxation pass.  */
-       bfd_size_type rawsize;
-
-       /* If this section is going to be output, then this value is the
-          offset in *bytes* into the output section of the first byte in the
-          input section (byte ==> smallest addressable unit on the
-          target).  In most cases, if this was going to start at the
-          100th octet (8-bit quantity) in the output section, this value
-          would be 100.  However, if the target byte size is 16 bits
-          (bfd_octets_per_byte is "2"), this value would be 50.  */
-       bfd_vma output_offset;
-
-       /* The output section through which to map on output.  */
-       struct bfd_section *output_section;
-
-       /* The alignment requirement of the section, as an exponent of 2 -
-          e.g., 3 aligns to 2^3 (or 8).  */
-       unsigned int alignment_power;
-
-       /* If an input section, a pointer to a vector of relocation
-          records for the data in this section.  */
-       struct reloc_cache_entry *relocation;
-
-       /* If an output section, a pointer to a vector of pointers to
-          relocation records for the data in this section.  */
-       struct reloc_cache_entry **orelocation;
-
-       /* The number of relocation records in one of the above.  */
-       unsigned reloc_count;
-
-       /* Information below is back end specific - and not always used
-          or updated.  */
-
-       /* File position of section data.  */
-       file_ptr filepos;
-
-       /* File position of relocation info.  */
-       file_ptr rel_filepos;
-
-       /* File position of line data.  */
-       file_ptr line_filepos;
-
-       /* Pointer to data for applications.  */
-       void *userdata;
-
-       /* If the SEC_IN_MEMORY flag is set, this points to the actual
-          contents.  */
-       unsigned char *contents;
-
-       /* Attached line number information.  */
-       alent *lineno;
-
-       /* Number of line number records.  */
-       unsigned int lineno_count;
-
-       /* Entity size for merging purposes.  */
-       unsigned int entsize;
-
-       /* Points to the kept section if this section is a link-once section,
-          and is discarded.  */
-       struct bfd_section *kept_section;
-
-       /* When a section is being output, this value changes as more
-          linenumbers are written out.  */
-       file_ptr moving_line_filepos;
-
-       /* What the section number is in the target world.  */
-       int target_index;
-
-       void *used_by_bfd;
-
-       /* If this is a constructor section then here is a list of the
-          relocations created to relocate items within it.  */
-       struct relent_chain *constructor_chain;
-
-       /* The BFD which owns the section.  */
-       bfd *owner;
-
-       /* A symbol which points at this section only.  */
-       struct bfd_symbol *symbol;
-       struct bfd_symbol **symbol_ptr_ptr;
-
-       struct bfd_link_order *link_order_head;
-       struct bfd_link_order *link_order_tail;
-     } asection;
-
-     /* These sections are global, and are managed by BFD.  The application
-        and target back end are not permitted to change the values in
-        these sections.  New code should use the section_ptr macros rather
-        than referring directly to the const sections.  The const sections
-        may eventually vanish.  */
-     #define BFD_ABS_SECTION_NAME "*ABS*"
-     #define BFD_UND_SECTION_NAME "*UND*"
-     #define BFD_COM_SECTION_NAME "*COM*"
-     #define BFD_IND_SECTION_NAME "*IND*"
-
-     /* The absolute section.  */
-     extern asection bfd_abs_section;
-     #define bfd_abs_section_ptr ((asection *) &bfd_abs_section)
-     #define bfd_is_abs_section(sec) ((sec) == bfd_abs_section_ptr)
-     /* Pointer to the undefined section.  */
-     extern asection bfd_und_section;
-     #define bfd_und_section_ptr ((asection *) &bfd_und_section)
-     #define bfd_is_und_section(sec) ((sec) == bfd_und_section_ptr)
-     /* Pointer to the common section.  */
-     extern asection bfd_com_section;
-     #define bfd_com_section_ptr ((asection *) &bfd_com_section)
-     /* Pointer to the indirect section.  */
-     extern asection bfd_ind_section;
-     #define bfd_ind_section_ptr ((asection *) &bfd_ind_section)
-     #define bfd_is_ind_section(sec) ((sec) == bfd_ind_section_ptr)
-
-     #define bfd_is_const_section(SEC)              \
-      (   ((SEC) == bfd_abs_section_ptr)            \
-       || ((SEC) == bfd_und_section_ptr)            \
-       || ((SEC) == bfd_com_section_ptr)            \
-       || ((SEC) == bfd_ind_section_ptr))
-
-     extern const struct bfd_symbol * const bfd_abs_symbol;
-     extern const struct bfd_symbol * const bfd_com_symbol;
-     extern const struct bfd_symbol * const bfd_und_symbol;
-     extern const struct bfd_symbol * const bfd_ind_symbol;
-
-     /* Macros to handle insertion and deletion of a bfd's sections.  These
-        only handle the list pointers, ie. do not adjust section_count,
-        target_index etc.  */
-     #define bfd_section_list_remove(ABFD, PS) \
-       do                                                   \
-         {                                                  \
-           asection **_ps = PS;                             \
-           asection *_s = *_ps;                             \
-           *_ps = _s->next;                                 \
-           if (_s->next == NULL)                            \
-             (ABFD)->section_tail = _ps;                    \
-         }                                                  \
-       while (0)
-     #define bfd_section_list_insert(ABFD, PS, S) \
-       do                                                   \
-         {                                                  \
-           asection **_ps = PS;                             \
-           asection *_s = S;                                \
-           _s->next = *_ps;                                 \
-           *_ps = _s;                                       \
-           if (_s->next == NULL)                            \
-             (ABFD)->section_tail = &_s->next;              \
-         }                                                  \
-       while (0)
-
-
-File: bfd.info,  Node: section prototypes,  Prev: typedef asection,  Up: Sections
-
-2.6.5 Section prototypes
-------------------------
-
-These are the functions exported by the section handling part of BFD.
-
-2.6.5.1 `bfd_section_list_clear'
-................................
-
-*Synopsis*
-     void bfd_section_list_clear (bfd *);
-   *Description*
-Clears the section list, and also resets the section count and hash
-table entries.
-
-2.6.5.2 `bfd_get_section_by_name'
-.................................
-
-*Synopsis*
-     asection *bfd_get_section_by_name (bfd *abfd, const char *name);
-   *Description*
-Run through ABFD and return the one of the `asection's whose name
-matches NAME, otherwise `NULL'.  *Note Sections::, for more information.
-
-   This should only be used in special cases; the normal way to process
-all sections of a given name is to use `bfd_map_over_sections' and
-`strcmp' on the name (or better yet, base it on the section flags or
-something else) for each section.
-
-2.6.5.3 `bfd_get_section_by_name_if'
-....................................
-
-*Synopsis*
-     asection *bfd_get_section_by_name_if
-        (bfd *abfd,
-         const char *name,
-         bfd_boolean (*func) (bfd *abfd, asection *sect, void *obj),
-         void *obj);
-   *Description*
-Call the provided function FUNC for each section attached to the BFD
-ABFD whose name matches NAME, passing OBJ as an argument. The function
-will be called as if by
-
-            func (abfd, the_section, obj);
-
-   It returns the first section for which FUNC returns true, otherwise
-`NULL'.
-
-2.6.5.4 `bfd_get_unique_section_name'
-.....................................
-
-*Synopsis*
-     char *bfd_get_unique_section_name
-        (bfd *abfd, const char *templat, int *count);
-   *Description*
-Invent a section name that is unique in ABFD by tacking a dot and a
-digit suffix onto the original TEMPLAT.  If COUNT is non-NULL, then it
-specifies the first number tried as a suffix to generate a unique name.
-The value pointed to by COUNT will be incremented in this case.
-
-2.6.5.5 `bfd_make_section_old_way'
-..................................
-
-*Synopsis*
-     asection *bfd_make_section_old_way (bfd *abfd, const char *name);
-   *Description*
-Create a new empty section called NAME and attach it to the end of the
-chain of sections for the BFD ABFD. An attempt to create a section with
-a name which is already in use returns its pointer without changing the
-section chain.
-
-   It has the funny name since this is the way it used to be before it
-was rewritten....
-
-   Possible errors are:
-   * `bfd_error_invalid_operation' - If output has already started for
-     this BFD.
-
-   * `bfd_error_no_memory' - If memory allocation fails.
-
-2.6.5.6 `bfd_make_section_anyway'
-.................................
-
-*Synopsis*
-     asection *bfd_make_section_anyway (bfd *abfd, const char *name);
-   *Description*
-Create a new empty section called NAME and attach it to the end of the
-chain of sections for ABFD.  Create a new section even if there is
-already a section with that name.
-
-   Return `NULL' and set `bfd_error' on error; possible errors are:
-   * `bfd_error_invalid_operation' - If output has already started for
-     ABFD.
-
-   * `bfd_error_no_memory' - If memory allocation fails.
-
-2.6.5.7 `bfd_make_section'
-..........................
-
-*Synopsis*
-     asection *bfd_make_section (bfd *, const char *name);
-   *Description*
-Like `bfd_make_section_anyway', but return `NULL' (without calling
-bfd_set_error ()) without changing the section chain if there is
-already a section named NAME.  If there is an error, return `NULL' and
-set `bfd_error'.
-
-2.6.5.8 `bfd_set_section_flags'
-...............................
-
-*Synopsis*
-     bfd_boolean bfd_set_section_flags
-        (bfd *abfd, asection *sec, flagword flags);
-   *Description*
-Set the attributes of the section SEC in the BFD ABFD to the value
-FLAGS. Return `TRUE' on success, `FALSE' on error. Possible error
-returns are:
-
-   * `bfd_error_invalid_operation' - The section cannot have one or
-     more of the attributes requested. For example, a .bss section in
-     `a.out' may not have the `SEC_HAS_CONTENTS' field set.
-
-2.6.5.9 `bfd_map_over_sections'
-...............................
-
-*Synopsis*
-     void bfd_map_over_sections
-        (bfd *abfd,
-         void (*func) (bfd *abfd, asection *sect, void *obj),
-         void *obj);
-   *Description*
-Call the provided function FUNC for each section attached to the BFD
-ABFD, passing OBJ as an argument. The function will be called as if by
-
-            func (abfd, the_section, obj);
-
-   This is the preferred method for iterating over sections; an
-alternative would be to use a loop:
-
-               section *p;
-               for (p = abfd->sections; p != NULL; p = p->next)
-                  func (abfd, p, ...)
-
-2.6.5.10 `bfd_sections_find_if'
-...............................
-
-*Synopsis*
-     asection *bfd_sections_find_if
-        (bfd *abfd,
-         bfd_boolean (*operation) (bfd *abfd, asection *sect, void *obj),
-         void *obj);
-   *Description*
-Call the provided function OPERATION for each section attached to the
-BFD ABFD, passing OBJ as an argument. The function will be called as if
-by
-
-            operation (abfd, the_section, obj);
-
-   It returns the first section for which OPERATION returns true.
-
-2.6.5.11 `bfd_set_section_size'
-...............................
-
-*Synopsis*
-     bfd_boolean bfd_set_section_size
-        (bfd *abfd, asection *sec, bfd_size_type val);
-   *Description*
-Set SEC to the size VAL. If the operation is ok, then `TRUE' is
-returned, else `FALSE'.
-
-   Possible error returns:
-   * `bfd_error_invalid_operation' - Writing has started to the BFD, so
-     setting the size is invalid.
-
-2.6.5.12 `bfd_set_section_contents'
-...................................
-
-*Synopsis*
-     bfd_boolean bfd_set_section_contents
-        (bfd *abfd, asection *section, const void *data,
-         file_ptr offset, bfd_size_type count);
-   *Description*
-Sets the contents of the section SECTION in BFD ABFD to the data
-starting in memory at DATA. The data is written to the output section
-starting at offset OFFSET for COUNT octets.
-
-   Normally `TRUE' is returned, else `FALSE'. Possible error returns
-are:
-   * `bfd_error_no_contents' - The output section does not have the
-     `SEC_HAS_CONTENTS' attribute, so nothing can be written to it.
-
-   * and some more too
-   This routine is front end to the back end function
-`_bfd_set_section_contents'.
-
-2.6.5.13 `bfd_get_section_contents'
-...................................
-
-*Synopsis*
-     bfd_boolean bfd_get_section_contents
-        (bfd *abfd, asection *section, void *location, file_ptr offset,
-         bfd_size_type count);
-   *Description*
-Read data from SECTION in BFD ABFD into memory starting at LOCATION.
-The data is read at an offset of OFFSET from the start of the input
-section, and is read for COUNT bytes.
-
-   If the contents of a constructor with the `SEC_CONSTRUCTOR' flag set
-are requested or if the section does not have the `SEC_HAS_CONTENTS'
-flag set, then the LOCATION is filled with zeroes. If no errors occur,
-`TRUE' is returned, else `FALSE'.
-
-2.6.5.14 `bfd_malloc_and_get_section'
-.....................................
-
-*Synopsis*
-     bfd_boolean bfd_malloc_and_get_section
-        (bfd *abfd, asection *section, bfd_byte **buf);
-   *Description*
-Read all data from SECTION in BFD ABFD into a buffer, *BUF, malloc'd by
-this function.
-
-2.6.5.15 `bfd_copy_private_section_data'
-........................................
-
-*Synopsis*
-     bfd_boolean bfd_copy_private_section_data
-        (bfd *ibfd, asection *isec, bfd *obfd, asection *osec);
-   *Description*
-Copy private section information from ISEC in the BFD IBFD to the
-section OSEC in the BFD OBFD.  Return `TRUE' on success, `FALSE' on
-error.  Possible error returns are:
-
-   * `bfd_error_no_memory' - Not enough memory exists to create private
-     data for OSEC.
-
-     #define bfd_copy_private_section_data(ibfd, isection, obfd, osection) \
-          BFD_SEND (obfd, _bfd_copy_private_section_data, \
-                    (ibfd, isection, obfd, osection))
-
-2.6.5.16 `_bfd_strip_section_from_output'
-.........................................
-
-*Synopsis*
-     void _bfd_strip_section_from_output
-        (struct bfd_link_info *info, asection *section);
-   *Description*
-Remove SECTION from the output.  If the output section becomes empty,
-remove it from the output bfd.
-
-   This function won't actually do anything except twiddle flags if
-called too late in the linking process, when it's not safe to remove
-sections.
-
-2.6.5.17 `bfd_generic_is_group_section'
-.......................................
-
-*Synopsis*
-     bfd_boolean bfd_generic_is_group_section (bfd *, const asection *sec);
-   *Description*
-Returns TRUE if SEC is a member of a group.
-
-2.6.5.18 `bfd_generic_discard_group'
-....................................
-
-*Synopsis*
-     bfd_boolean bfd_generic_discard_group (bfd *abfd, asection *group);
-   *Description*
-Remove all members of GROUP from the output.
-
-
-File: bfd.info,  Node: Symbols,  Next: Archives,  Prev: Sections,  Up: BFD front end
-
-2.7 Symbols
-===========
-
-BFD tries to maintain as much symbol information as it can when it
-moves information from file to file. BFD passes information to
-applications though the `asymbol' structure. When the application
-requests the symbol table, BFD reads the table in the native form and
-translates parts of it into the internal format. To maintain more than
-the information passed to applications, some targets keep some
-information "behind the scenes" in a structure only the particular back
-end knows about. For example, the coff back end keeps the original
-symbol table structure as well as the canonical structure when a BFD is
-read in. On output, the coff back end can reconstruct the output symbol
-table so that no information is lost, even information unique to coff
-which BFD doesn't know or understand. If a coff symbol table were read,
-but were written through an a.out back end, all the coff specific
-information would be lost. The symbol table of a BFD is not necessarily
-read in until a canonicalize request is made. Then the BFD back end
-fills in a table provided by the application with pointers to the
-canonical information.  To output symbols, the application provides BFD
-with a table of pointers to pointers to `asymbol's. This allows
-applications like the linker to output a symbol as it was read, since
-the "behind the scenes" information will be still available.
-
-* Menu:
-
-* Reading Symbols::
-* Writing Symbols::
-* Mini Symbols::
-* typedef asymbol::
-* symbol handling functions::
-
-
-File: bfd.info,  Node: Reading Symbols,  Next: Writing Symbols,  Prev: Symbols,  Up: Symbols
-
-2.7.1 Reading symbols
----------------------
-
-There are two stages to reading a symbol table from a BFD: allocating
-storage, and the actual reading process. This is an excerpt from an
-application which reads the symbol table:
-
-              long storage_needed;
-              asymbol **symbol_table;
-              long number_of_symbols;
-              long i;
-
-              storage_needed = bfd_get_symtab_upper_bound (abfd);
-
-              if (storage_needed < 0)
-                FAIL
-
-              if (storage_needed == 0)
-                return;
-
-              symbol_table = xmalloc (storage_needed);
-                ...
-              number_of_symbols =
-                 bfd_canonicalize_symtab (abfd, symbol_table);
-
-              if (number_of_symbols < 0)
-                FAIL
-
-              for (i = 0; i < number_of_symbols; i++)
-                process_symbol (symbol_table[i]);
-
-   All storage for the symbols themselves is in an objalloc connected
-to the BFD; it is freed when the BFD is closed.
-
-
-File: bfd.info,  Node: Writing Symbols,  Next: Mini Symbols,  Prev: Reading Symbols,  Up: Symbols
-
-2.7.2 Writing symbols
----------------------
-
-Writing of a symbol table is automatic when a BFD open for writing is
-closed. The application attaches a vector of pointers to pointers to
-symbols to the BFD being written, and fills in the symbol count. The
-close and cleanup code reads through the table provided and performs
-all the necessary operations. The BFD output code must always be
-provided with an "owned" symbol: one which has come from another BFD,
-or one which has been created using `bfd_make_empty_symbol'.  Here is an
-example showing the creation of a symbol table with only one element:
-
-            #include "bfd.h"
-            int main (void)
-            {
-              bfd *abfd;
-              asymbol *ptrs[2];
-              asymbol *new;
-
-              abfd = bfd_openw ("foo","a.out-sunos-big");
-              bfd_set_format (abfd, bfd_object);
-              new = bfd_make_empty_symbol (abfd);
-              new->name = "dummy_symbol";
-              new->section = bfd_make_section_old_way (abfd, ".text");
-              new->flags = BSF_GLOBAL;
-              new->value = 0x12345;
-
-              ptrs[0] = new;
-              ptrs[1] = 0;
-
-              bfd_set_symtab (abfd, ptrs, 1);
-              bfd_close (abfd);
-              return 0;
-            }
-
-            ./makesym
-            nm foo
-            00012345 A dummy_symbol
-
-   Many formats cannot represent arbitrary symbol information; for
-instance, the `a.out' object format does not allow an arbitrary number
-of sections. A symbol pointing to a section which is not one  of
-`.text', `.data' or `.bss' cannot be described.
-
-
-File: bfd.info,  Node: Mini Symbols,  Next: typedef asymbol,  Prev: Writing Symbols,  Up: Symbols
-
-2.7.3 Mini Symbols
-------------------
-
-Mini symbols provide read-only access to the symbol table.  They use
-less memory space, but require more time to access.  They can be useful
-for tools like nm or objdump, which may have to handle symbol tables of
-extremely large executables.
-
-   The `bfd_read_minisymbols' function will read the symbols into
-memory in an internal form.  It will return a `void *' pointer to a
-block of memory, a symbol count, and the size of each symbol.  The
-pointer is allocated using `malloc', and should be freed by the caller
-when it is no longer needed.
-
-   The function `bfd_minisymbol_to_symbol' will take a pointer to a
-minisymbol, and a pointer to a structure returned by
-`bfd_make_empty_symbol', and return a `asymbol' structure.  The return
-value may or may not be the same as the value from
-`bfd_make_empty_symbol' which was passed in.
-
-
-File: bfd.info,  Node: typedef asymbol,  Next: symbol handling functions,  Prev: Mini Symbols,  Up: Symbols
-
-2.7.4 typedef asymbol
----------------------
-
-An `asymbol' has the form:
-
-
-     typedef struct bfd_symbol
-     {
-       /* A pointer to the BFD which owns the symbol. This information
-          is necessary so that a back end can work out what additional
-          information (invisible to the application writer) is carried
-          with the symbol.
-
-          This field is *almost* redundant, since you can use section->owner
-          instead, except that some symbols point to the global sections
-          bfd_{abs,com,und}_section.  This could be fixed by making
-          these globals be per-bfd (or per-target-flavor).  FIXME.  */
-       struct bfd *the_bfd; /* Use bfd_asymbol_bfd(sym) to access this field.  */
-
-       /* The text of the symbol. The name is left alone, and not copied; the
-          application may not alter it.  */
-       const char *name;
-
-       /* The value of the symbol.  This really should be a union of a
-          numeric value with a pointer, since some flags indicate that
-          a pointer to another symbol is stored here.  */
-       symvalue value;
-
-       /* Attributes of a symbol.  */
-     #define BSF_NO_FLAGS    0x00
-
-       /* The symbol has local scope; `static' in `C'. The value
-          is the offset into the section of the data.  */
-     #define BSF_LOCAL      0x01
-
-       /* The symbol has global scope; initialized data in `C'. The
-          value is the offset into the section of the data.  */
-     #define BSF_GLOBAL     0x02
-
-       /* The symbol has global scope and is exported. The value is
-          the offset into the section of the data.  */
-     #define BSF_EXPORT     BSF_GLOBAL /* No real difference.  */
-
-       /* A normal C symbol would be one of:
-          `BSF_LOCAL', `BSF_FORT_COMM',  `BSF_UNDEFINED' or
-          `BSF_GLOBAL'.  */
-
-       /* The symbol is a debugging record. The value has an arbitrary
-          meaning, unless BSF_DEBUGGING_RELOC is also set.  */
-     #define BSF_DEBUGGING  0x08
-
-       /* The symbol denotes a function entry point.  Used in ELF,
-          perhaps others someday.  */
-     #define BSF_FUNCTION    0x10
-
-       /* Used by the linker.  */
-     #define BSF_KEEP        0x20
-     #define BSF_KEEP_G      0x40
-
-       /* A weak global symbol, overridable without warnings by
-          a regular global symbol of the same name.  */
-     #define BSF_WEAK        0x80
-
-       /* This symbol was created to point to a section, e.g. ELF's
-          STT_SECTION symbols.  */
-     #define BSF_SECTION_SYM 0x100
-
-       /* The symbol used to be a common symbol, but now it is
-          allocated.  */
-     #define BSF_OLD_COMMON  0x200
-
-       /* The default value for common data.  */
-     #define BFD_FORT_COMM_DEFAULT_VALUE 0
-
-       /* In some files the type of a symbol sometimes alters its
-          location in an output file - ie in coff a `ISFCN' symbol
-          which is also `C_EXT' symbol appears where it was
-          declared and not at the end of a section.  This bit is set
-          by the target BFD part to convey this information.  */
-     #define BSF_NOT_AT_END    0x400
-
-       /* Signal that the symbol is the label of constructor section.  */
-     #define BSF_CONSTRUCTOR   0x800
-
-       /* Signal that the symbol is a warning symbol.  The name is a
-          warning.  The name of the next symbol is the one to warn about;
-          if a reference is made to a symbol with the same name as the next
-          symbol, a warning is issued by the linker.  */
-     #define BSF_WARNING       0x1000
-
-       /* Signal that the symbol is indirect.  This symbol is an indirect
-          pointer to the symbol with the same name as the next symbol.  */
-     #define BSF_INDIRECT      0x2000
-
-       /* BSF_FILE marks symbols that contain a file name.  This is used
-          for ELF STT_FILE symbols.  */
-     #define BSF_FILE          0x4000
-
-       /* Symbol is from dynamic linking information.  */
-     #define BSF_DYNAMIC       0x8000
-
-       /* The symbol denotes a data object.  Used in ELF, and perhaps
-          others someday.  */
-     #define BSF_OBJECT        0x10000
-
-       /* This symbol is a debugging symbol.  The value is the offset
-          into the section of the data.  BSF_DEBUGGING should be set
-          as well.  */
-     #define BSF_DEBUGGING_RELOC 0x20000
-
-       /* This symbol is thread local.  Used in ELF.  */
-     #define BSF_THREAD_LOCAL  0x40000
-
-       flagword flags;
-
-       /* A pointer to the section to which this symbol is
-          relative.  This will always be non NULL, there are special
-          sections for undefined and absolute symbols.  */
-       struct bfd_section *section;
-
-       /* Back end special data.  */
-       union
-         {
-           void *p;
-           bfd_vma i;
-         }
-       udata;
-     }
-     asymbol;
-
-
-File: bfd.info,  Node: symbol handling functions,  Prev: typedef asymbol,  Up: Symbols
-
-2.7.5 Symbol handling functions
--------------------------------
-
-2.7.5.1 `bfd_get_symtab_upper_bound'
-....................................
-
-*Description*
-Return the number of bytes required to store a vector of pointers to
-`asymbols' for all the symbols in the BFD ABFD, including a terminal
-NULL pointer. If there are no symbols in the BFD, then return 0.  If an
-error occurs, return -1.
-     #define bfd_get_symtab_upper_bound(abfd) \
-          BFD_SEND (abfd, _bfd_get_symtab_upper_bound, (abfd))
-
-2.7.5.2 `bfd_is_local_label'
-............................
-
-*Synopsis*
-     bfd_boolean bfd_is_local_label (bfd *abfd, asymbol *sym);
-   *Description*
-Return TRUE if the given symbol SYM in the BFD ABFD is a compiler
-generated local label, else return FALSE.
-
-2.7.5.3 `bfd_is_local_label_name'
-.................................
-
-*Synopsis*
-     bfd_boolean bfd_is_local_label_name (bfd *abfd, const char *name);
-   *Description*
-Return TRUE if a symbol with the name NAME in the BFD ABFD is a
-compiler generated local label, else return FALSE.  This just checks
-whether the name has the form of a local label.
-     #define bfd_is_local_label_name(abfd, name) \
-       BFD_SEND (abfd, _bfd_is_local_label_name, (abfd, name))
-
-2.7.5.4 `bfd_is_target_special_symbol'
-......................................
-
-*Synopsis*
-     bfd_boolean bfd_is_target_special_symbol (bfd *abfd, asymbol *sym);
-   *Description*
-Return TRUE iff a symbol SYM in the BFD ABFD is something special to
-the particular target represented by the BFD.  Such symbols should
-normally not be mentioned to the user.
-     #define bfd_is_target_special_symbol(abfd, sym) \
-       BFD_SEND (abfd, _bfd_is_target_special_symbol, (abfd, sym))
-
-2.7.5.5 `bfd_canonicalize_symtab'
-.................................
-
-*Description*
-Read the symbols from the BFD ABFD, and fills in the vector LOCATION
-with pointers to the symbols and a trailing NULL.  Return the actual
-number of symbol pointers, not including the NULL.
-     #define bfd_canonicalize_symtab(abfd, location) \
-       BFD_SEND (abfd, _bfd_canonicalize_symtab, (abfd, location))
-
-2.7.5.6 `bfd_set_symtab'
-........................
-
-*Synopsis*
-     bfd_boolean bfd_set_symtab
-        (bfd *abfd, asymbol **location, unsigned int count);
-   *Description*
-Arrange that when the output BFD ABFD is closed, the table LOCATION of
-COUNT pointers to symbols will be written.
-
-2.7.5.7 `bfd_print_symbol_vandf'
-................................
-
-*Synopsis*
-     void bfd_print_symbol_vandf (bfd *abfd, void *file, asymbol *symbol);
-   *Description*
-Print the value and flags of the SYMBOL supplied to the stream FILE.
-
-2.7.5.8 `bfd_make_empty_symbol'
-...............................
-
-*Description*
-Create a new `asymbol' structure for the BFD ABFD and return a pointer
-to it.
-
-   This routine is necessary because each back end has private
-information surrounding the `asymbol'. Building your own `asymbol' and
-pointing to it will not create the private information, and will cause
-problems later on.
-     #define bfd_make_empty_symbol(abfd) \
-       BFD_SEND (abfd, _bfd_make_empty_symbol, (abfd))
-
-2.7.5.9 `_bfd_generic_make_empty_symbol'
-........................................
-
-*Synopsis*
-     asymbol *_bfd_generic_make_empty_symbol (bfd *);
-   *Description*
-Create a new `asymbol' structure for the BFD ABFD and return a pointer
-to it.  Used by core file routines, binary back-end and anywhere else
-where no private info is needed.
-
-2.7.5.10 `bfd_make_debug_symbol'
-................................
-
-*Description*
-Create a new `asymbol' structure for the BFD ABFD, to be used as a
-debugging symbol.  Further details of its use have yet to be worked out.
-     #define bfd_make_debug_symbol(abfd,ptr,size) \
-       BFD_SEND (abfd, _bfd_make_debug_symbol, (abfd, ptr, size))
-
-2.7.5.11 `bfd_decode_symclass'
-..............................
-
-*Description*
-Return a character corresponding to the symbol class of SYMBOL, or '?'
-for an unknown class.
-
-   *Synopsis*
-     int bfd_decode_symclass (asymbol *symbol);
-   
-2.7.5.12 `bfd_is_undefined_symclass'
-....................................
-
-*Description*
-Returns non-zero if the class symbol returned by bfd_decode_symclass
-represents an undefined symbol.  Returns zero otherwise.
-
-   *Synopsis*
-     bfd_boolean bfd_is_undefined_symclass (int symclass);
-   
-2.7.5.13 `bfd_symbol_info'
-..........................
-
-*Description*
-Fill in the basic info about symbol that nm needs.  Additional info may
-be added by the back-ends after calling this function.
-
-   *Synopsis*
-     void bfd_symbol_info (asymbol *symbol, symbol_info *ret);
-   
-2.7.5.14 `bfd_copy_private_symbol_data'
-.......................................
-
-*Synopsis*
-     bfd_boolean bfd_copy_private_symbol_data
-        (bfd *ibfd, asymbol *isym, bfd *obfd, asymbol *osym);
-   *Description*
-Copy private symbol information from ISYM in the BFD IBFD to the symbol
-OSYM in the BFD OBFD.  Return `TRUE' on success, `FALSE' on error.
-Possible error returns are:
-
-   * `bfd_error_no_memory' - Not enough memory exists to create private
-     data for OSEC.
-
-     #define bfd_copy_private_symbol_data(ibfd, isymbol, obfd, osymbol) \
-       BFD_SEND (obfd, _bfd_copy_private_symbol_data, \
-                 (ibfd, isymbol, obfd, osymbol))
-
-
-File: bfd.info,  Node: Archives,  Next: Formats,  Prev: Symbols,  Up: BFD front end
-
-2.8 Archives
-============
-
-*Description*
-An archive (or library) is just another BFD.  It has a symbol table,
-although there's not much a user program will do with it.
-
-   The big difference between an archive BFD and an ordinary BFD is
-that the archive doesn't have sections.  Instead it has a chain of BFDs
-that are considered its contents.  These BFDs can be manipulated like
-any other.  The BFDs contained in an archive opened for reading will
-all be opened for reading.  You may put either input or output BFDs
-into an archive opened for output; they will be handled correctly when
-the archive is closed.
-
-   Use `bfd_openr_next_archived_file' to step through the contents of
-an archive opened for input.  You don't have to read the entire archive
-if you don't want to!  Read it until you find what you want.
-
-   Archive contents of output BFDs are chained through the `next'
-pointer in a BFD.  The first one is findable through the `archive_head'
-slot of the archive.  Set it with `bfd_set_archive_head' (q.v.).  A
-given BFD may be in only one open output archive at a time.
-
-   As expected, the BFD archive code is more general than the archive
-code of any given environment.  BFD archives may contain files of
-different formats (e.g., a.out and coff) and even different
-architectures.  You may even place archives recursively into archives!
-
-   This can cause unexpected confusion, since some archive formats are
-more expressive than others.  For instance, Intel COFF archives can
-preserve long filenames; SunOS a.out archives cannot.  If you move a
-file from the first to the second format and back again, the filename
-may be truncated.  Likewise, different a.out environments have different
-conventions as to how they truncate filenames, whether they preserve
-directory names in filenames, etc.  When interoperating with native
-tools, be sure your files are homogeneous.
-
-   Beware: most of these formats do not react well to the presence of
-spaces in filenames.  We do the best we can, but can't always handle
-this case due to restrictions in the format of archives.  Many Unix
-utilities are braindead in regards to spaces and such in filenames
-anyway, so this shouldn't be much of a restriction.
-
-   Archives are supported in BFD in `archive.c'.
-
-2.8.0.1 `bfd_get_next_mapent'
-.............................
-
-*Synopsis*
-     symindex bfd_get_next_mapent
-        (bfd *abfd, symindex previous, carsym **sym);
-   *Description*
-Step through archive ABFD's symbol table (if it has one).  Successively
-update SYM with the next symbol's information, returning that symbol's
-(internal) index into the symbol table.
-
-   Supply `BFD_NO_MORE_SYMBOLS' as the PREVIOUS entry to get the first
-one; returns `BFD_NO_MORE_SYMBOLS' when you've already got the last one.
-
-   A `carsym' is a canonical archive symbol.  The only user-visible
-element is its name, a null-terminated string.
-
-2.8.0.2 `bfd_set_archive_head'
-..............................
-
-*Synopsis*
-     bfd_boolean bfd_set_archive_head (bfd *output, bfd *new_head);
-   *Description*
-Set the head of the chain of BFDs contained in the archive OUTPUT to
-NEW_HEAD.
-
-2.8.0.3 `bfd_openr_next_archived_file'
-......................................
-
-*Synopsis*
-     bfd *bfd_openr_next_archived_file (bfd *archive, bfd *previous);
-   *Description*
-Provided a BFD, ARCHIVE, containing an archive and NULL, open an input
-BFD on the first contained element and returns that.  Subsequent calls
-should pass the archive and the previous return value to return a
-created BFD to the next contained element. NULL is returned when there
-are no more.
-
-
-File: bfd.info,  Node: Formats,  Next: Relocations,  Prev: Archives,  Up: BFD front end
-
-2.9 File formats
-================
-
-A format is a BFD concept of high level file contents type. The formats
-supported by BFD are:
-
-   * `bfd_object'
-   The BFD may contain data, symbols, relocations and debug info.
-
-   * `bfd_archive'
-   The BFD contains other BFDs and an optional index.
-
-   * `bfd_core'
-   The BFD contains the result of an executable core dump.
-
-2.9.0.1 `bfd_check_format'
-..........................
-
-*Synopsis*
-     bfd_boolean bfd_check_format (bfd *abfd, bfd_format format);
-   *Description*
-Verify if the file attached to the BFD ABFD is compatible with the
-format FORMAT (i.e., one of `bfd_object', `bfd_archive' or `bfd_core').
-
-   If the BFD has been set to a specific target before the call, only
-the named target and format combination is checked. If the target has
-not been set, or has been set to `default', then all the known target
-backends is interrogated to determine a match.  If the default target
-matches, it is used.  If not, exactly one target must recognize the
-file, or an error results.
-
-   The function returns `TRUE' on success, otherwise `FALSE' with one
-of the following error codes:
-
-   * `bfd_error_invalid_operation' - if `format' is not one of
-     `bfd_object', `bfd_archive' or `bfd_core'.
-
-   * `bfd_error_system_call' - if an error occured during a read - even
-     some file mismatches can cause bfd_error_system_calls.
-
-   * `file_not_recognised' - none of the backends recognised the file
-     format.
-
-   * `bfd_error_file_ambiguously_recognized' - more than one backend
-     recognised the file format.
-
-2.9.0.2 `bfd_check_format_matches'
-..................................
-
-*Synopsis*
-     bfd_boolean bfd_check_format_matches
-        (bfd *abfd, bfd_format format, char ***matching);
-   *Description*
-Like `bfd_check_format', except when it returns FALSE with `bfd_errno'
-set to `bfd_error_file_ambiguously_recognized'.  In that case, if
-MATCHING is not NULL, it will be filled in with a NULL-terminated list
-of the names of the formats that matched, allocated with `malloc'.
-Then the user may choose a format and try again.
-
-   When done with the list that MATCHING points to, the caller should
-free it.
-
-2.9.0.3 `bfd_set_format'
-........................
-
-*Synopsis*
-     bfd_boolean bfd_set_format (bfd *abfd, bfd_format format);
-   *Description*
-This function sets the file format of the BFD ABFD to the format
-FORMAT. If the target set in the BFD does not support the format
-requested, the format is invalid, or the BFD is not open for writing,
-then an error occurs.
-
-2.9.0.4 `bfd_format_string'
-...........................
-
-*Synopsis*
-     const char *bfd_format_string (bfd_format format);
-   *Description*
-Return a pointer to a const string `invalid', `object', `archive',
-`core', or `unknown', depending upon the value of FORMAT.
-
-
-File: bfd.info,  Node: Relocations,  Next: Core Files,  Prev: Formats,  Up: BFD front end
-
-2.10 Relocations
-================
-
-BFD maintains relocations in much the same way it maintains symbols:
-they are left alone until required, then read in en-masse and
-translated into an internal form.  A common routine
-`bfd_perform_relocation' acts upon the canonical form to do the fixup.
-
-   Relocations are maintained on a per section basis, while symbols are
-maintained on a per BFD basis.
-
-   All that a back end has to do to fit the BFD interface is to create
-a `struct reloc_cache_entry' for each relocation in a particular
-section, and fill in the right bits of the structures.
-
-* Menu:
-
-* typedef arelent::
-* howto manager::
-
-
-File: bfd.info,  Node: typedef arelent,  Next: howto manager,  Prev: Relocations,  Up: Relocations
-
-2.10.1 typedef arelent
-----------------------
-
-This is the structure of a relocation entry:
-
-
-     typedef enum bfd_reloc_status
-     {
-       /* No errors detected.  */
-       bfd_reloc_ok,
-
-       /* The relocation was performed, but there was an overflow.  */
-       bfd_reloc_overflow,
-
-       /* The address to relocate was not within the section supplied.  */
-       bfd_reloc_outofrange,
-
-       /* Used by special functions.  */
-       bfd_reloc_continue,
-
-       /* Unsupported relocation size requested.  */
-       bfd_reloc_notsupported,
-
-       /* Unused.  */
-       bfd_reloc_other,
-
-       /* The symbol to relocate against was undefined.  */
-       bfd_reloc_undefined,
-
-       /* The relocation was performed, but may not be ok - presently
-          generated only when linking i960 coff files with i960 b.out
-          symbols.  If this type is returned, the error_message argument
-          to bfd_perform_relocation will be set.  */
-       bfd_reloc_dangerous
-      }
-      bfd_reloc_status_type;
-
-
-     typedef struct reloc_cache_entry
-     {
-       /* A pointer into the canonical table of pointers.  */
-       struct bfd_symbol **sym_ptr_ptr;
-
-       /* offset in section.  */
-       bfd_size_type address;
-
-       /* addend for relocation value.  */
-       bfd_vma addend;
-
-       /* Pointer to how to perform the required relocation.  */
-       reloc_howto_type *howto;
-
-     }
-     arelent;
-   *Description*
-Here is a description of each of the fields within an `arelent':
-
-   * `sym_ptr_ptr'
-   The symbol table pointer points to a pointer to the symbol
-associated with the relocation request.  It is the pointer into the
-table returned by the back end's `canonicalize_symtab' action. *Note
-Symbols::. The symbol is referenced through a pointer to a pointer so
-that tools like the linker can fix up all the symbols of the same name
-by modifying only one pointer. The relocation routine looks in the
-symbol and uses the base of the section the symbol is attached to and
-the value of the symbol as the initial relocation offset. If the symbol
-pointer is zero, then the section provided is looked up.
-
-   * `address'
-   The `address' field gives the offset in bytes from the base of the
-section data which owns the relocation record to the first byte of
-relocatable information. The actual data relocated will be relative to
-this point; for example, a relocation type which modifies the bottom
-two bytes of a four byte word would not touch the first byte pointed to
-in a big endian world.
-
-   * `addend'
-   The `addend' is a value provided by the back end to be added (!)  to
-the relocation offset. Its interpretation is dependent upon the howto.
-For example, on the 68k the code:
-
-             char foo[];
-             main()
-                     {
-                     return foo[0x12345678];
-                     }
-
-   Could be compiled into:
-
-             linkw fp,#-4
-             moveb @#12345678,d0
-             extbl d0
-             unlk fp
-             rts
-
-   This could create a reloc pointing to `foo', but leave the offset in
-the data, something like:
-
-     RELOCATION RECORDS FOR [.text]:
-     offset   type      value
-     00000006 32        _foo
-
-     00000000 4e56 fffc          ; linkw fp,#-4
-     00000004 1039 1234 5678     ; moveb @#12345678,d0
-     0000000a 49c0               ; extbl d0
-     0000000c 4e5e               ; unlk fp
-     0000000e 4e75               ; rts
-
-   Using coff and an 88k, some instructions don't have enough space in
-them to represent the full address range, and pointers have to be
-loaded in two parts. So you'd get something like:
-
-             or.u     r13,r0,hi16(_foo+0x12345678)
-             ld.b     r2,r13,lo16(_foo+0x12345678)
-             jmp      r1
-
-   This should create two relocs, both pointing to `_foo', and with
-0x12340000 in their addend field. The data would consist of:
-
-     RELOCATION RECORDS FOR [.text]:
-     offset   type      value
-     00000002 HVRT16    _foo+0x12340000
-     00000006 LVRT16    _foo+0x12340000
-
-     00000000 5da05678           ; or.u r13,r0,0x5678
-     00000004 1c4d5678           ; ld.b r2,r13,0x5678
-     00000008 f400c001           ; jmp r1
-
-   The relocation routine digs out the value from the data, adds it to
-the addend to get the original offset, and then adds the value of
-`_foo'. Note that all 32 bits have to be kept around somewhere, to cope
-with carry from bit 15 to bit 16.
-
-   One further example is the sparc and the a.out format. The sparc has
-a similar problem to the 88k, in that some instructions don't have room
-for an entire offset, but on the sparc the parts are created in odd
-sized lumps. The designers of the a.out format chose to not use the
-data within the section for storing part of the offset; all the offset
-is kept within the reloc. Anything in the data should be ignored.
-
-             save %sp,-112,%sp
-             sethi %hi(_foo+0x12345678),%g2
-             ldsb [%g2+%lo(_foo+0x12345678)],%i0
-             ret
-             restore
-
-   Both relocs contain a pointer to `foo', and the offsets contain junk.
-
-     RELOCATION RECORDS FOR [.text]:
-     offset   type      value
-     00000004 HI22      _foo+0x12345678
-     00000008 LO10      _foo+0x12345678
-
-     00000000 9de3bf90     ; save %sp,-112,%sp
-     00000004 05000000     ; sethi %hi(_foo+0),%g2
-     00000008 f048a000     ; ldsb [%g2+%lo(_foo+0)],%i0
-     0000000c 81c7e008     ; ret
-     00000010 81e80000     ; restore
-
-   * `howto'
-   The `howto' field can be imagined as a relocation instruction. It is
-a pointer to a structure which contains information on what to do with
-all of the other information in the reloc record and data section. A
-back end would normally have a relocation instruction set and turn
-relocations into pointers to the correct structure on input - but it
-would be possible to create each howto field on demand.
-
-2.10.1.1 `enum complain_overflow'
-.................................
-
-Indicates what sort of overflow checking should be done when performing
-a relocation.
-
-
-     enum complain_overflow
-     {
-       /* Do not complain on overflow.  */
-       complain_overflow_dont,
-
-       /* Complain if the bitfield overflows, whether it is considered
-          as signed or unsigned.  */
-       complain_overflow_bitfield,
-
-       /* Complain if the value overflows when considered as signed
-          number.  */
-       complain_overflow_signed,
-
-       /* Complain if the value overflows when considered as an
-          unsigned number.  */
-       complain_overflow_unsigned
-     };
-
-2.10.1.2 `reloc_howto_type'
-...........................
-
-The `reloc_howto_type' is a structure which contains all the
-information that libbfd needs to know to tie up a back end's data.
-
-     struct bfd_symbol;             /* Forward declaration.  */
-
-     struct reloc_howto_struct
-     {
-       /*  The type field has mainly a documentary use - the back end can
-           do what it wants with it, though normally the back end's
-           external idea of what a reloc number is stored
-           in this field.  For example, a PC relative word relocation
-           in a coff environment has the type 023 - because that's
-           what the outside world calls a R_PCRWORD reloc.  */
-       unsigned int type;
-
-       /*  The value the final relocation is shifted right by.  This drops
-           unwanted data from the relocation.  */
-       unsigned int rightshift;
-
-       /*  The size of the item to be relocated.  This is *not* a
-           power-of-two measure.  To get the number of bytes operated
-           on by a type of relocation, use bfd_get_reloc_size.  */
-       int size;
-
-       /*  The number of bits in the item to be relocated.  This is used
-           when doing overflow checking.  */
-       unsigned int bitsize;
-
-       /*  Notes that the relocation is relative to the location in the
-           data section of the addend.  The relocation function will
-           subtract from the relocation value the address of the location
-           being relocated.  */
-       bfd_boolean pc_relative;
-
-       /*  The bit position of the reloc value in the destination.
-           The relocated value is left shifted by this amount.  */
-       unsigned int bitpos;
-
-       /* What type of overflow error should be checked for when
-          relocating.  */
-       enum complain_overflow complain_on_overflow;
-
-       /* If this field is non null, then the supplied function is
-          called rather than the normal function.  This allows really
-          strange relocation methods to be accommodated (e.g., i960 callj
-          instructions).  */
-       bfd_reloc_status_type (*special_function)
-         (bfd *, arelent *, struct bfd_symbol *, void *, asection *,
-          bfd *, char **);
-
-       /* The textual name of the relocation type.  */
-       char *name;
-
-       /* Some formats record a relocation addend in the section contents
-          rather than with the relocation.  For ELF formats this is the
-          distinction between USE_REL and USE_RELA (though the code checks
-          for USE_REL == 1/0).  The value of this field is TRUE if the
-          addend is recorded with the section contents; when performing a
-          partial link (ld -r) the section contents (the data) will be
-          modified.  The value of this field is FALSE if addends are
-          recorded with the relocation (in arelent.addend); when performing
-          a partial link the relocation will be modified.
-          All relocations for all ELF USE_RELA targets should set this field
-          to FALSE (values of TRUE should be looked on with suspicion).
-          However, the converse is not true: not all relocations of all ELF
-          USE_REL targets set this field to TRUE.  Why this is so is peculiar
-          to each particular target.  For relocs that aren't used in partial
-          links (e.g. GOT stuff) it doesn't matter what this is set to.  */
-       bfd_boolean partial_inplace;
-
-       /* src_mask selects the part of the instruction (or data) to be used
-          in the relocation sum.  If the target relocations don't have an
-          addend in the reloc, eg. ELF USE_REL, src_mask will normally equal
-          dst_mask to extract the addend from the section contents.  If
-          relocations do have an addend in the reloc, eg. ELF USE_RELA, this
-          field should be zero.  Non-zero values for ELF USE_RELA targets are
-          bogus as in those cases the value in the dst_mask part of the
-          section contents should be treated as garbage.  */
-       bfd_vma src_mask;
-
-       /* dst_mask selects which parts of the instruction (or data) are
-          replaced with a relocated value.  */
-       bfd_vma dst_mask;
-
-       /* When some formats create PC relative instructions, they leave
-          the value of the pc of the place being relocated in the offset
-          slot of the instruction, so that a PC relative relocation can
-          be made just by adding in an ordinary offset (e.g., sun3 a.out).
-          Some formats leave the displacement part of an instruction
-          empty (e.g., m88k bcs); this flag signals the fact.  */
-       bfd_boolean pcrel_offset;
-     };
-   
-2.10.1.3 `The HOWTO Macro'
-..........................
-
-*Description*
-The HOWTO define is horrible and will go away.
-     #define HOWTO(C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC) \
-       { (unsigned) C, R, S, B, P, BI, O, SF, NAME, INPLACE, MASKSRC, MASKDST, PC }
-
-   *Description*
-And will be replaced with the totally magic way. But for the moment, we
-are compatible, so do it this way.
-     #define NEWHOWTO(FUNCTION, NAME, SIZE, REL, IN) \
-       HOWTO (0, 0, SIZE, 0, REL, 0, complain_overflow_dont, FUNCTION, \
-              NAME, FALSE, 0, 0, IN)
-
-   *Description*
-This is used to fill in an empty howto entry in an array.
-     #define EMPTY_HOWTO(C) \
-       HOWTO ((C), 0, 0, 0, FALSE, 0, complain_overflow_dont, NULL, \
-              NULL, FALSE, 0, 0, FALSE)
-
-   *Description*
-Helper routine to turn a symbol into a relocation value.
-     #define HOWTO_PREPARE(relocation, symbol)               \
-       {                                                     \
-         if (symbol != NULL)                                 \
-           {                                                 \
-             if (bfd_is_com_section (symbol->section))       \
-               {                                             \
-                 relocation = 0;                             \
-               }                                             \
-             else                                            \
-               {                                             \
-                 relocation = symbol->value;                 \
-               }                                             \
-           }                                                 \
-       }
-
-2.10.1.4 `bfd_get_reloc_size'
-.............................
-
-*Synopsis*
-     unsigned int bfd_get_reloc_size (reloc_howto_type *);
-   *Description*
-For a reloc_howto_type that operates on a fixed number of bytes, this
-returns the number of bytes operated on.
-
-2.10.1.5 `arelent_chain'
-........................
-
-*Description*
-How relocs are tied together in an `asection':
-     typedef struct relent_chain
-     {
-       arelent relent;
-       struct relent_chain *next;
-     }
-     arelent_chain;
-
-2.10.1.6 `bfd_check_overflow'
-.............................
-
-*Synopsis*
-     bfd_reloc_status_type bfd_check_overflow
-        (enum complain_overflow how,
-         unsigned int bitsize,
-         unsigned int rightshift,
-         unsigned int addrsize,
-         bfd_vma relocation);
-   *Description*
-Perform overflow checking on RELOCATION which has BITSIZE significant
-bits and will be shifted right by RIGHTSHIFT bits, on a machine with
-addresses containing ADDRSIZE significant bits.  The result is either of
-`bfd_reloc_ok' or `bfd_reloc_overflow'.
-
-2.10.1.7 `bfd_perform_relocation'
-.................................
-
-*Synopsis*
-     bfd_reloc_status_type bfd_perform_relocation
-        (bfd *abfd,
-         arelent *reloc_entry,
-         void *data,
-         asection *input_section,
-         bfd *output_bfd,
-         char **error_message);
-   *Description*
-If OUTPUT_BFD is supplied to this function, the generated image will be
-relocatable; the relocations are copied to the output file after they
-have been changed to reflect the new state of the world. There are two
-ways of reflecting the results of partial linkage in an output file: by
-modifying the output data in place, and by modifying the relocation
-record.  Some native formats (e.g., basic a.out and basic coff) have no
-way of specifying an addend in the relocation type, so the addend has
-to go in the output data.  This is no big deal since in these formats
-the output data slot will always be big enough for the addend. Complex
-reloc types with addends were invented to solve just this problem.  The
-ERROR_MESSAGE argument is set to an error message if this return
-`bfd_reloc_dangerous'.
-
-2.10.1.8 `bfd_install_relocation'
-.................................
-
-*Synopsis*
-     bfd_reloc_status_type bfd_install_relocation
-        (bfd *abfd,
-         arelent *reloc_entry,
-         void *data, bfd_vma data_start,
-         asection *input_section,
-         char **error_message);
-   *Description*
-This looks remarkably like `bfd_perform_relocation', except it does not
-expect that the section contents have been filled in.  I.e., it's
-suitable for use when creating, rather than applying a relocation.
-
-   For now, this function should be considered reserved for the
-assembler.
-
-
-File: bfd.info,  Node: howto manager,  Prev: typedef arelent,  Up: Relocations
-
-2.11 The howto manager
-======================
-
-When an application wants to create a relocation, but doesn't know what
-the target machine might call it, it can find out by using this bit of
-code.
-
-2.11.0.1 `bfd_reloc_code_type'
-..............................
-
-*Description*
-The insides of a reloc code.  The idea is that, eventually, there will
-be one enumerator for every type of relocation we ever do.  Pass one of
-these values to `bfd_reloc_type_lookup', and it'll return a howto
-pointer.
-
-   This does mean that the application must determine the correct
-enumerator value; you can't get a howto pointer from a random set of
-attributes.
-
-   Here are the possible values for `enum bfd_reloc_code_real':
-
- -- : BFD_RELOC_64
- -- : BFD_RELOC_32
- -- : BFD_RELOC_26
- -- : BFD_RELOC_24
- -- : BFD_RELOC_16
- -- : BFD_RELOC_14
- -- : BFD_RELOC_8
-     Basic absolute relocations of N bits.
-
- -- : BFD_RELOC_64_PCREL
- -- : BFD_RELOC_32_PCREL
- -- : BFD_RELOC_24_PCREL
- -- : BFD_RELOC_16_PCREL
- -- : BFD_RELOC_12_PCREL
- -- : BFD_RELOC_8_PCREL
-     PC-relative relocations.  Sometimes these are relative to the
-     address of the relocation itself; sometimes they are relative to
-     the start of the section containing the relocation.  It depends on
-     the specific target.
-
-     The 24-bit relocation is used in some Intel 960 configurations.
-
- -- : BFD_RELOC_32_SECREL
-     Section relative relocations.  Some targets need this for DWARF2.
-
- -- : BFD_RELOC_32_GOT_PCREL
- -- : BFD_RELOC_16_GOT_PCREL
- -- : BFD_RELOC_8_GOT_PCREL
- -- : BFD_RELOC_32_GOTOFF
- -- : BFD_RELOC_16_GOTOFF
- -- : BFD_RELOC_LO16_GOTOFF
- -- : BFD_RELOC_HI16_GOTOFF
- -- : BFD_RELOC_HI16_S_GOTOFF
- -- : BFD_RELOC_8_GOTOFF
- -- : BFD_RELOC_64_PLT_PCREL
- -- : BFD_RELOC_32_PLT_PCREL
- -- : BFD_RELOC_24_PLT_PCREL
- -- : BFD_RELOC_16_PLT_PCREL
- -- : BFD_RELOC_8_PLT_PCREL
- -- : BFD_RELOC_64_PLTOFF
- -- : BFD_RELOC_32_PLTOFF
- -- : BFD_RELOC_16_PLTOFF
- -- : BFD_RELOC_LO16_PLTOFF
- -- : BFD_RELOC_HI16_PLTOFF
- -- : BFD_RELOC_HI16_S_PLTOFF
- -- : BFD_RELOC_8_PLTOFF
-     For ELF.
-
- -- : BFD_RELOC_68K_GLOB_DAT
- -- : BFD_RELOC_68K_JMP_SLOT
- -- : BFD_RELOC_68K_RELATIVE
-     Relocations used by 68K ELF.
-
- -- : BFD_RELOC_32_BASEREL
- -- : BFD_RELOC_16_BASEREL
- -- : BFD_RELOC_LO16_BASEREL
- -- : BFD_RELOC_HI16_BASEREL
- -- : BFD_RELOC_HI16_S_BASEREL
- -- : BFD_RELOC_8_BASEREL
- -- : BFD_RELOC_RVA
-     Linkage-table relative.
-
- -- : BFD_RELOC_8_FFnn
-     Absolute 8-bit relocation, but used to form an address like 0xFFnn.
-
- -- : BFD_RELOC_32_PCREL_S2
- -- : BFD_RELOC_16_PCREL_S2
- -- : BFD_RELOC_23_PCREL_S2
-     These PC-relative relocations are stored as word displacements -
-     i.e., byte displacements shifted right two bits.  The 30-bit word
-     displacement (<<32_PCREL_S2>> - 32 bits, shifted 2) is used on the
-     SPARC.  (SPARC tools generally refer to this as <<WDISP30>>.)  The
-     signed 16-bit displacement is used on the MIPS, and the 23-bit
-     displacement is used on the Alpha.
-
- -- : BFD_RELOC_HI22
- -- : BFD_RELOC_LO10
-     High 22 bits and low 10 bits of 32-bit value, placed into lower
-     bits of the target word.  These are used on the SPARC.
-
- -- : BFD_RELOC_GPREL16
- -- : BFD_RELOC_GPREL32
-     For systems that allocate a Global Pointer register, these are
-     displacements off that register.  These relocation types are
-     handled specially, because the value the register will have is
-     decided relatively late.
-
- -- : BFD_RELOC_I960_CALLJ
-     Reloc types used for i960/b.out.
-
- -- : BFD_RELOC_NONE
- -- : BFD_RELOC_SPARC_WDISP22
- -- : BFD_RELOC_SPARC22
- -- : BFD_RELOC_SPARC13
- -- : BFD_RELOC_SPARC_GOT10
- -- : BFD_RELOC_SPARC_GOT13
- -- : BFD_RELOC_SPARC_GOT22
- -- : BFD_RELOC_SPARC_PC10
- -- : BFD_RELOC_SPARC_PC22
- -- : BFD_RELOC_SPARC_WPLT30
- -- : BFD_RELOC_SPARC_COPY
- -- : BFD_RELOC_SPARC_GLOB_DAT
- -- : BFD_RELOC_SPARC_JMP_SLOT
- -- : BFD_RELOC_SPARC_RELATIVE
- -- : BFD_RELOC_SPARC_UA16
- -- : BFD_RELOC_SPARC_UA32
- -- : BFD_RELOC_SPARC_UA64
-     SPARC ELF relocations.  There is probably some overlap with other
-     relocation types already defined.
-
- -- : BFD_RELOC_SPARC_BASE13
- -- : BFD_RELOC_SPARC_BASE22
-     I think these are specific to SPARC a.out (e.g., Sun 4).
-
- -- : BFD_RELOC_SPARC_64
- -- : BFD_RELOC_SPARC_10
- -- : BFD_RELOC_SPARC_11
- -- : BFD_RELOC_SPARC_OLO10
- -- : BFD_RELOC_SPARC_HH22
- -- : BFD_RELOC_SPARC_HM10
- -- : BFD_RELOC_SPARC_LM22
- -- : BFD_RELOC_SPARC_PC_HH22
- -- : BFD_RELOC_SPARC_PC_HM10
- -- : BFD_RELOC_SPARC_PC_LM22
- -- : BFD_RELOC_SPARC_WDISP16
- -- : BFD_RELOC_SPARC_WDISP19
- -- : BFD_RELOC_SPARC_7
- -- : BFD_RELOC_SPARC_6
- -- : BFD_RELOC_SPARC_5
- -- : BFD_RELOC_SPARC_DISP64
- -- : BFD_RELOC_SPARC_PLT32
- -- : BFD_RELOC_SPARC_PLT64
- -- : BFD_RELOC_SPARC_HIX22
- -- : BFD_RELOC_SPARC_LOX10
- -- : BFD_RELOC_SPARC_H44
- -- : BFD_RELOC_SPARC_M44
- -- : BFD_RELOC_SPARC_L44
- -- : BFD_RELOC_SPARC_REGISTER
-     SPARC64 relocations
-
- -- : BFD_RELOC_SPARC_REV32
-     SPARC little endian relocation
-
- -- : BFD_RELOC_SPARC_TLS_GD_HI22
- -- : BFD_RELOC_SPARC_TLS_GD_LO10
- -- : BFD_RELOC_SPARC_TLS_GD_ADD
- -- : BFD_RELOC_SPARC_TLS_GD_CALL
- -- : BFD_RELOC_SPARC_TLS_LDM_HI22
- -- : BFD_RELOC_SPARC_TLS_LDM_LO10
- -- : BFD_RELOC_SPARC_TLS_LDM_ADD
- -- : BFD_RELOC_SPARC_TLS_LDM_CALL
- -- : BFD_RELOC_SPARC_TLS_LDO_HIX22
- -- : BFD_RELOC_SPARC_TLS_LDO_LOX10
- -- : BFD_RELOC_SPARC_TLS_LDO_ADD
- -- : BFD_RELOC_SPARC_TLS_IE_HI22
- -- : BFD_RELOC_SPARC_TLS_IE_LO10
- -- : BFD_RELOC_SPARC_TLS_IE_LD
- -- : BFD_RELOC_SPARC_TLS_IE_LDX
- -- : BFD_RELOC_SPARC_TLS_IE_ADD
- -- : BFD_RELOC_SPARC_TLS_LE_HIX22
- -- : BFD_RELOC_SPARC_TLS_LE_LOX10
- -- : BFD_RELOC_SPARC_TLS_DTPMOD32
- -- : BFD_RELOC_SPARC_TLS_DTPMOD64
- -- : BFD_RELOC_SPARC_TLS_DTPOFF32
- -- : BFD_RELOC_SPARC_TLS_DTPOFF64
- -- : BFD_RELOC_SPARC_TLS_TPOFF32
- -- : BFD_RELOC_SPARC_TLS_TPOFF64
-     SPARC TLS relocations
-
- -- : BFD_RELOC_ALPHA_GPDISP_HI16
-     Alpha ECOFF and ELF relocations.  Some of these treat the symbol or
-     "addend" in some special way.  For GPDISP_HI16 ("gpdisp")
-     relocations, the symbol is ignored when writing; when reading, it
-     will be the absolute section symbol.  The addend is the
-     displacement in bytes of the "lda" instruction from the "ldah"
-     instruction (which is at the address of this reloc).
-
- -- : BFD_RELOC_ALPHA_GPDISP_LO16
-     For GPDISP_LO16 ("ignore") relocations, the symbol is handled as
-     with GPDISP_HI16 relocs.  The addend is ignored when writing the
-     relocations out, and is filled in with the file's GP value on
-     reading, for convenience.
-
- -- : BFD_RELOC_ALPHA_GPDISP
-     The ELF GPDISP relocation is exactly the same as the GPDISP_HI16
-     relocation except that there is no accompanying GPDISP_LO16
-     relocation.
-
- -- : BFD_RELOC_ALPHA_LITERAL
- -- : BFD_RELOC_ALPHA_ELF_LITERAL
- -- : BFD_RELOC_ALPHA_LITUSE
-     The Alpha LITERAL/LITUSE relocs are produced by a symbol reference;
-     the assembler turns it into a LDQ instruction to load the address
-     of the symbol, and then fills in a register in the real
-     instruction.
-
-     The LITERAL reloc, at the LDQ instruction, refers to the .lita
-     section symbol.  The addend is ignored when writing, but is filled
-     in with the file's GP value on reading, for convenience, as with
-     the GPDISP_LO16 reloc.
-
-     The ELF_LITERAL reloc is somewhere between 16_GOTOFF and
-     GPDISP_LO16.  It should refer to the symbol to be referenced, as
-     with 16_GOTOFF, but it generates output not based on the position
-     within the .got section, but relative to the GP value chosen for
-     the file during the final link stage.
-
-     The LITUSE reloc, on the instruction using the loaded address,
-     gives information to the linker that it might be able to use to
-     optimize away some literal section references.  The symbol is
-     ignored (read as the absolute section symbol), and the "addend"
-     indicates the type of instruction using the register: 1 - "memory"
-     fmt insn 2 - byte-manipulation (byte offset reg) 3 - jsr (target
-     of branch)
-
- -- : BFD_RELOC_ALPHA_HINT
-     The HINT relocation indicates a value that should be filled into
-     the "hint" field of a jmp/jsr/ret instruction, for possible branch-
-     prediction logic which may be provided on some processors.
-
- -- : BFD_RELOC_ALPHA_LINKAGE
-     The LINKAGE relocation outputs a linkage pair in the object file,
-     which is filled by the linker.
-
- -- : BFD_RELOC_ALPHA_CODEADDR
-     The CODEADDR relocation outputs a STO_CA in the object file, which
-     is filled by the linker.
-
- -- : BFD_RELOC_ALPHA_GPREL_HI16
- -- : BFD_RELOC_ALPHA_GPREL_LO16
-     The GPREL_HI/LO relocations together form a 32-bit offset from the
-     GP register.
-
- -- : BFD_RELOC_ALPHA_BRSGP
-     Like BFD_RELOC_23_PCREL_S2, except that the source and target must
-     share a common GP, and the target address is adjusted for
-     STO_ALPHA_STD_GPLOAD.
-
- -- : BFD_RELOC_ALPHA_TLSGD
- -- : BFD_RELOC_ALPHA_TLSLDM
- -- : BFD_RELOC_ALPHA_DTPMOD64
- -- : BFD_RELOC_ALPHA_GOTDTPREL16
- -- : BFD_RELOC_ALPHA_DTPREL64
- -- : BFD_RELOC_ALPHA_DTPREL_HI16
- -- : BFD_RELOC_ALPHA_DTPREL_LO16
- -- : BFD_RELOC_ALPHA_DTPREL16
- -- : BFD_RELOC_ALPHA_GOTTPREL16
- -- : BFD_RELOC_ALPHA_TPREL64
- -- : BFD_RELOC_ALPHA_TPREL_HI16
- -- : BFD_RELOC_ALPHA_TPREL_LO16
- -- : BFD_RELOC_ALPHA_TPREL16
-     Alpha thread-local storage relocations.
-
- -- : BFD_RELOC_MIPS_JMP
-     Bits 27..2 of the relocation address shifted right 2 bits; simple
-     reloc otherwise.
-
- -- : BFD_RELOC_MIPS16_JMP
-     The MIPS16 jump instruction.
-
- -- : BFD_RELOC_MIPS16_GPREL
-     MIPS16 GP relative reloc.
-
- -- : BFD_RELOC_HI16
-     High 16 bits of 32-bit value; simple reloc.
-
- -- : BFD_RELOC_HI16_S
-     High 16 bits of 32-bit value but the low 16 bits will be sign
-     extended and added to form the final result.  If the low 16 bits
-     form a negative number, we need to add one to the high value to
-     compensate for the borrow when the low bits are added.
-
- -- : BFD_RELOC_LO16
-     Low 16 bits.
-
- -- : BFD_RELOC_MIPS16_HI16
-     MIPS16 high 16 bits of 32-bit value.
-
- -- : BFD_RELOC_MIPS16_HI16_S
-     MIPS16 high 16 bits of 32-bit value but the low 16 bits will be
-     sign extended and added to form the final result.  If the low 16
-     bits form a negative number, we need to add one to the high value
-     to compensate for the borrow when the low bits are added.
-
- -- : BFD_RELOC_MIPS16_LO16
-     MIPS16 low 16 bits.
-
- -- : BFD_RELOC_MIPS_LITERAL
-     Relocation against a MIPS literal section.
-
- -- : BFD_RELOC_MIPS_GOT16
- -- : BFD_RELOC_MIPS_CALL16
- -- : BFD_RELOC_MIPS_GOT_HI16
- -- : BFD_RELOC_MIPS_GOT_LO16
- -- : BFD_RELOC_MIPS_CALL_HI16
- -- : BFD_RELOC_MIPS_CALL_LO16
- -- : BFD_RELOC_MIPS_SUB
- -- : BFD_RELOC_MIPS_GOT_PAGE
- -- : BFD_RELOC_MIPS_GOT_OFST
- -- : BFD_RELOC_MIPS_GOT_DISP
- -- : BFD_RELOC_MIPS_SHIFT5
- -- : BFD_RELOC_MIPS_SHIFT6
- -- : BFD_RELOC_MIPS_INSERT_A
- -- : BFD_RELOC_MIPS_INSERT_B
- -- : BFD_RELOC_MIPS_DELETE
- -- : BFD_RELOC_MIPS_HIGHEST
- -- : BFD_RELOC_MIPS_HIGHER
- -- : BFD_RELOC_MIPS_SCN_DISP
- -- : BFD_RELOC_MIPS_REL16
- -- : BFD_RELOC_MIPS_RELGOT
- -- : BFD_RELOC_MIPS_JALR
- -- : BFD_RELOC_MIPS_TLS_DTPMOD32
- -- : BFD_RELOC_MIPS_TLS_DTPREL32
- -- : BFD_RELOC_MIPS_TLS_DTPMOD64
- -- : BFD_RELOC_MIPS_TLS_DTPREL64
- -- : BFD_RELOC_MIPS_TLS_GD
- -- : BFD_RELOC_MIPS_TLS_LDM
- -- : BFD_RELOC_MIPS_TLS_DTPREL_HI16
- -- : BFD_RELOC_MIPS_TLS_DTPREL_LO16
- -- : BFD_RELOC_MIPS_TLS_GOTTPREL
- -- : BFD_RELOC_MIPS_TLS_TPREL32
- -- : BFD_RELOC_MIPS_TLS_TPREL64
- -- : BFD_RELOC_MIPS_TLS_TPREL_HI16
- -- : BFD_RELOC_MIPS_TLS_TPREL_LO16
-     MIPS ELF relocations.
-
- -- : BFD_RELOC_FRV_LABEL16
- -- : BFD_RELOC_FRV_LABEL24
- -- : BFD_RELOC_FRV_LO16
- -- : BFD_RELOC_FRV_HI16
- -- : BFD_RELOC_FRV_GPREL12
- -- : BFD_RELOC_FRV_GPRELU12
- -- : BFD_RELOC_FRV_GPREL32
- -- : BFD_RELOC_FRV_GPRELHI
- -- : BFD_RELOC_FRV_GPRELLO
- -- : BFD_RELOC_FRV_GOT12
- -- : BFD_RELOC_FRV_GOTHI
- -- : BFD_RELOC_FRV_GOTLO
- -- : BFD_RELOC_FRV_FUNCDESC
- -- : BFD_RELOC_FRV_FUNCDESC_GOT12
- -- : BFD_RELOC_FRV_FUNCDESC_GOTHI
- -- : BFD_RELOC_FRV_FUNCDESC_GOTLO
- -- : BFD_RELOC_FRV_FUNCDESC_VALUE
- -- : BFD_RELOC_FRV_FUNCDESC_GOTOFF12
- -- : BFD_RELOC_FRV_FUNCDESC_GOTOFFHI
- -- : BFD_RELOC_FRV_FUNCDESC_GOTOFFLO
- -- : BFD_RELOC_FRV_GOTOFF12
- -- : BFD_RELOC_FRV_GOTOFFHI
- -- : BFD_RELOC_FRV_GOTOFFLO
- -- : BFD_RELOC_FRV_GETTLSOFF
- -- : BFD_RELOC_FRV_TLSDESC_VALUE
- -- : BFD_RELOC_FRV_GOTTLSDESC12
- -- : BFD_RELOC_FRV_GOTTLSDESCHI
- -- : BFD_RELOC_FRV_GOTTLSDESCLO
- -- : BFD_RELOC_FRV_TLSMOFF12
- -- : BFD_RELOC_FRV_TLSMOFFHI
- -- : BFD_RELOC_FRV_TLSMOFFLO
- -- : BFD_RELOC_FRV_GOTTLSOFF12
- -- : BFD_RELOC_FRV_GOTTLSOFFHI
- -- : BFD_RELOC_FRV_GOTTLSOFFLO
- -- : BFD_RELOC_FRV_TLSOFF
- -- : BFD_RELOC_FRV_TLSDESC_RELAX
- -- : BFD_RELOC_FRV_GETTLSOFF_RELAX
- -- : BFD_RELOC_FRV_TLSOFF_RELAX
- -- : BFD_RELOC_FRV_TLSMOFF
-     Fujitsu Frv Relocations.
-
- -- : BFD_RELOC_MN10300_GOTOFF24
-     This is a 24bit GOT-relative reloc for the mn10300.
-
- -- : BFD_RELOC_MN10300_GOT32
-     This is a 32bit GOT-relative reloc for the mn10300, offset by two
-     bytes in the instruction.
-
- -- : BFD_RELOC_MN10300_GOT24
-     This is a 24bit GOT-relative reloc for the mn10300, offset by two
-     bytes in the instruction.
-
- -- : BFD_RELOC_MN10300_GOT16
-     This is a 16bit GOT-relative reloc for the mn10300, offset by two
-     bytes in the instruction.
-
- -- : BFD_RELOC_MN10300_COPY
-     Copy symbol at runtime.
-
- -- : BFD_RELOC_MN10300_GLOB_DAT
-     Create GOT entry.
-
- -- : BFD_RELOC_MN10300_JMP_SLOT
-     Create PLT entry.
-
- -- : BFD_RELOC_MN10300_RELATIVE
-     Adjust by program base.
-
- -- : BFD_RELOC_386_GOT32
- -- : BFD_RELOC_386_PLT32
- -- : BFD_RELOC_386_COPY
- -- : BFD_RELOC_386_GLOB_DAT
- -- : BFD_RELOC_386_JUMP_SLOT
- -- : BFD_RELOC_386_RELATIVE
- -- : BFD_RELOC_386_GOTOFF
- -- : BFD_RELOC_386_GOTPC
- -- : BFD_RELOC_386_TLS_TPOFF
- -- : BFD_RELOC_386_TLS_IE
- -- : BFD_RELOC_386_TLS_GOTIE
- -- : BFD_RELOC_386_TLS_LE
- -- : BFD_RELOC_386_TLS_GD
- -- : BFD_RELOC_386_TLS_LDM
- -- : BFD_RELOC_386_TLS_LDO_32
- -- : BFD_RELOC_386_TLS_IE_32
- -- : BFD_RELOC_386_TLS_LE_32
- -- : BFD_RELOC_386_TLS_DTPMOD32
- -- : BFD_RELOC_386_TLS_DTPOFF32
- -- : BFD_RELOC_386_TLS_TPOFF32
-     i386/elf relocations
-
- -- : BFD_RELOC_X86_64_GOT32
- -- : BFD_RELOC_X86_64_PLT32
- -- : BFD_RELOC_X86_64_COPY
- -- : BFD_RELOC_X86_64_GLOB_DAT
- -- : BFD_RELOC_X86_64_JUMP_SLOT
- -- : BFD_RELOC_X86_64_RELATIVE
- -- : BFD_RELOC_X86_64_GOTPCREL
- -- : BFD_RELOC_X86_64_32S
- -- : BFD_RELOC_X86_64_DTPMOD64
- -- : BFD_RELOC_X86_64_DTPOFF64
- -- : BFD_RELOC_X86_64_TPOFF64
- -- : BFD_RELOC_X86_64_TLSGD
- -- : BFD_RELOC_X86_64_TLSLD
- -- : BFD_RELOC_X86_64_DTPOFF32
- -- : BFD_RELOC_X86_64_GOTTPOFF
- -- : BFD_RELOC_X86_64_TPOFF32
-     x86-64/elf relocations
-
- -- : BFD_RELOC_NS32K_IMM_8
- -- : BFD_RELOC_NS32K_IMM_16
- -- : BFD_RELOC_NS32K_IMM_32
- -- : BFD_RELOC_NS32K_IMM_8_PCREL
- -- : BFD_RELOC_NS32K_IMM_16_PCREL
- -- : BFD_RELOC_NS32K_IMM_32_PCREL
- -- : BFD_RELOC_NS32K_DISP_8
- -- : BFD_RELOC_NS32K_DISP_16
- -- : BFD_RELOC_NS32K_DISP_32
- -- : BFD_RELOC_NS32K_DISP_8_PCREL
- -- : BFD_RELOC_NS32K_DISP_16_PCREL
- -- : BFD_RELOC_NS32K_DISP_32_PCREL
-     ns32k relocations
-
- -- : BFD_RELOC_PDP11_DISP_8_PCREL
- -- : BFD_RELOC_PDP11_DISP_6_PCREL
-     PDP11 relocations
-
- -- : BFD_RELOC_PJ_CODE_HI16
- -- : BFD_RELOC_PJ_CODE_LO16
- -- : BFD_RELOC_PJ_CODE_DIR16
- -- : BFD_RELOC_PJ_CODE_DIR32
- -- : BFD_RELOC_PJ_CODE_REL16
- -- : BFD_RELOC_PJ_CODE_REL32
-     Picojava relocs.  Not all of these appear in object files.
-
- -- : BFD_RELOC_PPC_B26
- -- : BFD_RELOC_PPC_BA26
- -- : BFD_RELOC_PPC_TOC16
- -- : BFD_RELOC_PPC_B16
- -- : BFD_RELOC_PPC_B16_BRTAKEN
- -- : BFD_RELOC_PPC_B16_BRNTAKEN
- -- : BFD_RELOC_PPC_BA16
- -- : BFD_RELOC_PPC_BA16_BRTAKEN
- -- : BFD_RELOC_PPC_BA16_BRNTAKEN
- -- : BFD_RELOC_PPC_COPY
- -- : BFD_RELOC_PPC_GLOB_DAT
- -- : BFD_RELOC_PPC_JMP_SLOT
- -- : BFD_RELOC_PPC_RELATIVE
- -- : BFD_RELOC_PPC_LOCAL24PC
- -- : BFD_RELOC_PPC_EMB_NADDR32
- -- : BFD_RELOC_PPC_EMB_NADDR16
- -- : BFD_RELOC_PPC_EMB_NADDR16_LO
- -- : BFD_RELOC_PPC_EMB_NADDR16_HI
- -- : BFD_RELOC_PPC_EMB_NADDR16_HA
- -- : BFD_RELOC_PPC_EMB_SDAI16
- -- : BFD_RELOC_PPC_EMB_SDA2I16
- -- : BFD_RELOC_PPC_EMB_SDA2REL
- -- : BFD_RELOC_PPC_EMB_SDA21
- -- : BFD_RELOC_PPC_EMB_MRKREF
- -- : BFD_RELOC_PPC_EMB_RELSEC16
- -- : BFD_RELOC_PPC_EMB_RELST_LO
- -- : BFD_RELOC_PPC_EMB_RELST_HI
- -- : BFD_RELOC_PPC_EMB_RELST_HA
- -- : BFD_RELOC_PPC_EMB_BIT_FLD
- -- : BFD_RELOC_PPC_EMB_RELSDA
- -- : BFD_RELOC_PPC64_HIGHER
- -- : BFD_RELOC_PPC64_HIGHER_S
- -- : BFD_RELOC_PPC64_HIGHEST
- -- : BFD_RELOC_PPC64_HIGHEST_S
- -- : BFD_RELOC_PPC64_TOC16_LO
- -- : BFD_RELOC_PPC64_TOC16_HI
- -- : BFD_RELOC_PPC64_TOC16_HA
- -- : BFD_RELOC_PPC64_TOC
- -- : BFD_RELOC_PPC64_PLTGOT16
- -- : BFD_RELOC_PPC64_PLTGOT16_LO
- -- : BFD_RELOC_PPC64_PLTGOT16_HI
- -- : BFD_RELOC_PPC64_PLTGOT16_HA
- -- : BFD_RELOC_PPC64_ADDR16_DS
- -- : BFD_RELOC_PPC64_ADDR16_LO_DS
- -- : BFD_RELOC_PPC64_GOT16_DS
- -- : BFD_RELOC_PPC64_GOT16_LO_DS
- -- : BFD_RELOC_PPC64_PLT16_LO_DS
- -- : BFD_RELOC_PPC64_SECTOFF_DS
- -- : BFD_RELOC_PPC64_SECTOFF_LO_DS
- -- : BFD_RELOC_PPC64_TOC16_DS
- -- : BFD_RELOC_PPC64_TOC16_LO_DS
- -- : BFD_RELOC_PPC64_PLTGOT16_DS
- -- : BFD_RELOC_PPC64_PLTGOT16_LO_DS
-     Power(rs6000) and PowerPC relocations.
-
- -- : BFD_RELOC_PPC_TLS
- -- : BFD_RELOC_PPC_DTPMOD
- -- : BFD_RELOC_PPC_TPREL16
- -- : BFD_RELOC_PPC_TPREL16_LO
- -- : BFD_RELOC_PPC_TPREL16_HI
- -- : BFD_RELOC_PPC_TPREL16_HA
- -- : BFD_RELOC_PPC_TPREL
- -- : BFD_RELOC_PPC_DTPREL16
- -- : BFD_RELOC_PPC_DTPREL16_LO
- -- : BFD_RELOC_PPC_DTPREL16_HI
- -- : BFD_RELOC_PPC_DTPREL16_HA
- -- : BFD_RELOC_PPC_DTPREL
- -- : BFD_RELOC_PPC_GOT_TLSGD16
- -- : BFD_RELOC_PPC_GOT_TLSGD16_LO
- -- : BFD_RELOC_PPC_GOT_TLSGD16_HI
- -- : BFD_RELOC_PPC_GOT_TLSGD16_HA
- -- : BFD_RELOC_PPC_GOT_TLSLD16
- -- : BFD_RELOC_PPC_GOT_TLSLD16_LO
- -- : BFD_RELOC_PPC_GOT_TLSLD16_HI
- -- : BFD_RELOC_PPC_GOT_TLSLD16_HA
- -- : BFD_RELOC_PPC_GOT_TPREL16
- -- : BFD_RELOC_PPC_GOT_TPREL16_LO
- -- : BFD_RELOC_PPC_GOT_TPREL16_HI
- -- : BFD_RELOC_PPC_GOT_TPREL16_HA
- -- : BFD_RELOC_PPC_GOT_DTPREL16
- -- : BFD_RELOC_PPC_GOT_DTPREL16_LO
- -- : BFD_RELOC_PPC_GOT_DTPREL16_HI
- -- : BFD_RELOC_PPC_GOT_DTPREL16_HA
- -- : BFD_RELOC_PPC64_TPREL16_DS
- -- : BFD_RELOC_PPC64_TPREL16_LO_DS
- -- : BFD_RELOC_PPC64_TPREL16_HIGHER
- -- : BFD_RELOC_PPC64_TPREL16_HIGHERA
- -- : BFD_RELOC_PPC64_TPREL16_HIGHEST
- -- : BFD_RELOC_PPC64_TPREL16_HIGHESTA
- -- : BFD_RELOC_PPC64_DTPREL16_DS
- -- : BFD_RELOC_PPC64_DTPREL16_LO_DS
- -- : BFD_RELOC_PPC64_DTPREL16_HIGHER
- -- : BFD_RELOC_PPC64_DTPREL16_HIGHERA
- -- : BFD_RELOC_PPC64_DTPREL16_HIGHEST
- -- : BFD_RELOC_PPC64_DTPREL16_HIGHESTA
-     PowerPC and PowerPC64 thread-local storage relocations.
-
- -- : BFD_RELOC_I370_D12
-     IBM 370/390 relocations
-
- -- : BFD_RELOC_CTOR
-     The type of reloc used to build a constructor table - at the moment
-     probably a 32 bit wide absolute relocation, but the target can
-     choose.  It generally does map to one of the other relocation
-     types.
-
- -- : BFD_RELOC_ARM_PCREL_BRANCH
-     ARM 26 bit pc-relative branch.  The lowest two bits must be zero
-     and are not stored in the instruction.
-
- -- : BFD_RELOC_ARM_PCREL_BLX
-     ARM 26 bit pc-relative branch.  The lowest bit must be zero and is
-     not stored in the instruction.  The 2nd lowest bit comes from a 1
-     bit field in the instruction.
-
- -- : BFD_RELOC_THUMB_PCREL_BLX
-     Thumb 22 bit pc-relative branch.  The lowest bit must be zero and
-     is not stored in the instruction.  The 2nd lowest bit comes from a
-     1 bit field in the instruction.
-
- -- : BFD_RELOC_ARM_IMMEDIATE
- -- : BFD_RELOC_ARM_ADRL_IMMEDIATE
- -- : BFD_RELOC_ARM_OFFSET_IMM
- -- : BFD_RELOC_ARM_SHIFT_IMM
- -- : BFD_RELOC_ARM_SMI
- -- : BFD_RELOC_ARM_SWI
- -- : BFD_RELOC_ARM_MULTI
- -- : BFD_RELOC_ARM_CP_OFF_IMM
- -- : BFD_RELOC_ARM_CP_OFF_IMM_S2
- -- : BFD_RELOC_ARM_ADR_IMM
- -- : BFD_RELOC_ARM_LDR_IMM
- -- : BFD_RELOC_ARM_LITERAL
- -- : BFD_RELOC_ARM_IN_POOL
- -- : BFD_RELOC_ARM_OFFSET_IMM8
- -- : BFD_RELOC_ARM_HWLITERAL
- -- : BFD_RELOC_ARM_THUMB_ADD
- -- : BFD_RELOC_ARM_THUMB_IMM
- -- : BFD_RELOC_ARM_THUMB_SHIFT
- -- : BFD_RELOC_ARM_THUMB_OFFSET
- -- : BFD_RELOC_ARM_GOT12
- -- : BFD_RELOC_ARM_GOT32
- -- : BFD_RELOC_ARM_JUMP_SLOT
- -- : BFD_RELOC_ARM_COPY
- -- : BFD_RELOC_ARM_GLOB_DAT
- -- : BFD_RELOC_ARM_PLT32
- -- : BFD_RELOC_ARM_RELATIVE
- -- : BFD_RELOC_ARM_GOTOFF
- -- : BFD_RELOC_ARM_GOTPC
-     These relocs are only used within the ARM assembler.  They are not
-     (at present) written to any object files.
-
- -- : BFD_RELOC_ARM_TARGET1
-     Pc-relative or absolute relocation depending on target.  Used for
-     entries in .init_array sections.
-
- -- : BFD_RELOC_ARM_ROSEGREL32
-     Read-only segment base relative address.
-
- -- : BFD_RELOC_ARM_SBREL32
-     Data segment base relative address.
-
- -- : BFD_RELOC_ARM_TARGET2
-     This reloc is used for References to RTTI dta from exception
-     handling tables.  The actual definition depends on the target.  It
-     may be a pc-relative or some form of GOT-indirect relocation.
-
- -- : BFD_RELOC_ARM_PREL31
-     31-bit PC relative address.
-
- -- : BFD_RELOC_SH_PCDISP8BY2
- -- : BFD_RELOC_SH_PCDISP12BY2
- -- : BFD_RELOC_SH_IMM3
- -- : BFD_RELOC_SH_IMM3U
- -- : BFD_RELOC_SH_DISP12
- -- : BFD_RELOC_SH_DISP12BY2
- -- : BFD_RELOC_SH_DISP12BY4
- -- : BFD_RELOC_SH_DISP12BY8
- -- : BFD_RELOC_SH_DISP20
- -- : BFD_RELOC_SH_DISP20BY8
- -- : BFD_RELOC_SH_IMM4
- -- : BFD_RELOC_SH_IMM4BY2
- -- : BFD_RELOC_SH_IMM4BY4
- -- : BFD_RELOC_SH_IMM8
- -- : BFD_RELOC_SH_IMM8BY2
- -- : BFD_RELOC_SH_IMM8BY4
- -- : BFD_RELOC_SH_PCRELIMM8BY2
- -- : BFD_RELOC_SH_PCRELIMM8BY4
- -- : BFD_RELOC_SH_SWITCH16
- -- : BFD_RELOC_SH_SWITCH32
- -- : BFD_RELOC_SH_USES
- -- : BFD_RELOC_SH_COUNT
- -- : BFD_RELOC_SH_ALIGN
- -- : BFD_RELOC_SH_CODE
- -- : BFD_RELOC_SH_DATA
- -- : BFD_RELOC_SH_LABEL
- -- : BFD_RELOC_SH_LOOP_START
- -- : BFD_RELOC_SH_LOOP_END
- -- : BFD_RELOC_SH_COPY
- -- : BFD_RELOC_SH_GLOB_DAT
- -- : BFD_RELOC_SH_JMP_SLOT
- -- : BFD_RELOC_SH_RELATIVE
- -- : BFD_RELOC_SH_GOTPC
- -- : BFD_RELOC_SH_GOT_LOW16
- -- : BFD_RELOC_SH_GOT_MEDLOW16
- -- : BFD_RELOC_SH_GOT_MEDHI16
- -- : BFD_RELOC_SH_GOT_HI16
- -- : BFD_RELOC_SH_GOTPLT_LOW16
- -- : BFD_RELOC_SH_GOTPLT_MEDLOW16
- -- : BFD_RELOC_SH_GOTPLT_MEDHI16
- -- : BFD_RELOC_SH_GOTPLT_HI16
- -- : BFD_RELOC_SH_PLT_LOW16
- -- : BFD_RELOC_SH_PLT_MEDLOW16
- -- : BFD_RELOC_SH_PLT_MEDHI16
- -- : BFD_RELOC_SH_PLT_HI16
- -- : BFD_RELOC_SH_GOTOFF_LOW16
- -- : BFD_RELOC_SH_GOTOFF_MEDLOW16
- -- : BFD_RELOC_SH_GOTOFF_MEDHI16
- -- : BFD_RELOC_SH_GOTOFF_HI16
- -- : BFD_RELOC_SH_GOTPC_LOW16
- -- : BFD_RELOC_SH_GOTPC_MEDLOW16
- -- : BFD_RELOC_SH_GOTPC_MEDHI16
- -- : BFD_RELOC_SH_GOTPC_HI16
- -- : BFD_RELOC_SH_COPY64
- -- : BFD_RELOC_SH_GLOB_DAT64
- -- : BFD_RELOC_SH_JMP_SLOT64
- -- : BFD_RELOC_SH_RELATIVE64
- -- : BFD_RELOC_SH_GOT10BY4
- -- : BFD_RELOC_SH_GOT10BY8
- -- : BFD_RELOC_SH_GOTPLT10BY4
- -- : BFD_RELOC_SH_GOTPLT10BY8
- -- : BFD_RELOC_SH_GOTPLT32
- -- : BFD_RELOC_SH_SHMEDIA_CODE
- -- : BFD_RELOC_SH_IMMU5
- -- : BFD_RELOC_SH_IMMS6
- -- : BFD_RELOC_SH_IMMS6BY32
- -- : BFD_RELOC_SH_IMMU6
- -- : BFD_RELOC_SH_IMMS10
- -- : BFD_RELOC_SH_IMMS10BY2
- -- : BFD_RELOC_SH_IMMS10BY4
- -- : BFD_RELOC_SH_IMMS10BY8
- -- : BFD_RELOC_SH_IMMS16
- -- : BFD_RELOC_SH_IMMU16
- -- : BFD_RELOC_SH_IMM_LOW16
- -- : BFD_RELOC_SH_IMM_LOW16_PCREL
- -- : BFD_RELOC_SH_IMM_MEDLOW16
- -- : BFD_RELOC_SH_IMM_MEDLOW16_PCREL
- -- : BFD_RELOC_SH_IMM_MEDHI16
- -- : BFD_RELOC_SH_IMM_MEDHI16_PCREL
- -- : BFD_RELOC_SH_IMM_HI16
- -- : BFD_RELOC_SH_IMM_HI16_PCREL
- -- : BFD_RELOC_SH_PT_16
- -- : BFD_RELOC_SH_TLS_GD_32
- -- : BFD_RELOC_SH_TLS_LD_32
- -- : BFD_RELOC_SH_TLS_LDO_32
- -- : BFD_RELOC_SH_TLS_IE_32
- -- : BFD_RELOC_SH_TLS_LE_32
- -- : BFD_RELOC_SH_TLS_DTPMOD32
- -- : BFD_RELOC_SH_TLS_DTPOFF32
- -- : BFD_RELOC_SH_TLS_TPOFF32
-     Renesas / SuperH SH relocs.  Not all of these appear in object
-     files.
-
- -- : BFD_RELOC_THUMB_PCREL_BRANCH9
- -- : BFD_RELOC_THUMB_PCREL_BRANCH12
- -- : BFD_RELOC_THUMB_PCREL_BRANCH23
-     Thumb 23-, 12- and 9-bit pc-relative branches.  The lowest bit must
-     be zero and is not stored in the instruction.
-
- -- : BFD_RELOC_ARC_B22_PCREL
-     ARC Cores relocs.  ARC 22 bit pc-relative branch.  The lowest two
-     bits must be zero and are not stored in the instruction.  The high
-     20 bits are installed in bits 26 through 7 of the instruction.
-
- -- : BFD_RELOC_ARC_B26
-     ARC 26 bit absolute branch.  The lowest two bits must be zero and
-     are not stored in the instruction.  The high 24 bits are installed
-     in bits 23 through 0.
-
- -- : BFD_RELOC_D10V_10_PCREL_R
-     Mitsubishi D10V relocs.  This is a 10-bit reloc with the right 2
-     bits assumed to be 0.
-
- -- : BFD_RELOC_D10V_10_PCREL_L
-     Mitsubishi D10V relocs.  This is a 10-bit reloc with the right 2
-     bits assumed to be 0.  This is the same as the previous reloc
-     except it is in the left container, i.e., shifted left 15 bits.
-
- -- : BFD_RELOC_D10V_18
-     This is an 18-bit reloc with the right 2 bits assumed to be 0.
-
- -- : BFD_RELOC_D10V_18_PCREL
-     This is an 18-bit reloc with the right 2 bits assumed to be 0.
-
- -- : BFD_RELOC_D30V_6
-     Mitsubishi D30V relocs.  This is a 6-bit absolute reloc.
-
- -- : BFD_RELOC_D30V_9_PCREL
-     This is a 6-bit pc-relative reloc with the right 3 bits assumed to
-     be 0.
-
- -- : BFD_RELOC_D30V_9_PCREL_R
-     This is a 6-bit pc-relative reloc with the right 3 bits assumed to
-     be 0. Same as the previous reloc but on the right side of the
-     container.
-
- -- : BFD_RELOC_D30V_15
-     This is a 12-bit absolute reloc with the right 3 bitsassumed to be
-     0.
-
- -- : BFD_RELOC_D30V_15_PCREL
-     This is a 12-bit pc-relative reloc with the right 3 bits assumed
-     to be 0.
-
- -- : BFD_RELOC_D30V_15_PCREL_R
-     This is a 12-bit pc-relative reloc with the right 3 bits assumed
-     to be 0. Same as the previous reloc but on the right side of the
-     container.
-
- -- : BFD_RELOC_D30V_21
-     This is an 18-bit absolute reloc with the right 3 bits assumed to
-     be 0.
-
- -- : BFD_RELOC_D30V_21_PCREL
-     This is an 18-bit pc-relative reloc with the right 3 bits assumed
-     to be 0.
-
- -- : BFD_RELOC_D30V_21_PCREL_R
-     This is an 18-bit pc-relative reloc with the right 3 bits assumed
-     to be 0. Same as the previous reloc but on the right side of the
-     container.
-
- -- : BFD_RELOC_D30V_32
-     This is a 32-bit absolute reloc.
-
- -- : BFD_RELOC_D30V_32_PCREL
-     This is a 32-bit pc-relative reloc.
-
- -- : BFD_RELOC_DLX_HI16_S
-     DLX relocs
-
- -- : BFD_RELOC_DLX_LO16
-     DLX relocs
-
- -- : BFD_RELOC_DLX_JMP26
-     DLX relocs
-
- -- : BFD_RELOC_M32R_24
-     Renesas M32R (formerly Mitsubishi M32R) relocs.  This is a 24 bit
-     absolute address.
-
- -- : BFD_RELOC_M32R_10_PCREL
-     This is a 10-bit pc-relative reloc with the right 2 bits assumed
-     to be 0.
-
- -- : BFD_RELOC_M32R_18_PCREL
-     This is an 18-bit reloc with the right 2 bits assumed to be 0.
-
- -- : BFD_RELOC_M32R_26_PCREL
-     This is a 26-bit reloc with the right 2 bits assumed to be 0.
-
- -- : BFD_RELOC_M32R_HI16_ULO
-     This is a 16-bit reloc containing the high 16 bits of an address
-     used when the lower 16 bits are treated as unsigned.
-
- -- : BFD_RELOC_M32R_HI16_SLO
-     This is a 16-bit reloc containing the high 16 bits of an address
-     used when the lower 16 bits are treated as signed.
-
- -- : BFD_RELOC_M32R_LO16
-     This is a 16-bit reloc containing the lower 16 bits of an address.
-
- -- : BFD_RELOC_M32R_SDA16
-     This is a 16-bit reloc containing the small data area offset for
-     use in add3, load, and store instructions.
-
- -- : BFD_RELOC_M32R_GOT24
- -- : BFD_RELOC_M32R_26_PLTREL
- -- : BFD_RELOC_M32R_COPY
- -- : BFD_RELOC_M32R_GLOB_DAT
- -- : BFD_RELOC_M32R_JMP_SLOT
- -- : BFD_RELOC_M32R_RELATIVE
- -- : BFD_RELOC_M32R_GOTOFF
- -- : BFD_RELOC_M32R_GOTOFF_HI_ULO
- -- : BFD_RELOC_M32R_GOTOFF_HI_SLO
- -- : BFD_RELOC_M32R_GOTOFF_LO
- -- : BFD_RELOC_M32R_GOTPC24
- -- : BFD_RELOC_M32R_GOT16_HI_ULO
- -- : BFD_RELOC_M32R_GOT16_HI_SLO
- -- : BFD_RELOC_M32R_GOT16_LO
- -- : BFD_RELOC_M32R_GOTPC_HI_ULO
- -- : BFD_RELOC_M32R_GOTPC_HI_SLO
- -- : BFD_RELOC_M32R_GOTPC_LO
-     For PIC.
-
- -- : BFD_RELOC_V850_9_PCREL
-     This is a 9-bit reloc
-
- -- : BFD_RELOC_V850_22_PCREL
-     This is a 22-bit reloc
-
- -- : BFD_RELOC_V850_SDA_16_16_OFFSET
-     This is a 16 bit offset from the short data area pointer.
-
- -- : BFD_RELOC_V850_SDA_15_16_OFFSET
-     This is a 16 bit offset (of which only 15 bits are used) from the
-     short data area pointer.
-
- -- : BFD_RELOC_V850_ZDA_16_16_OFFSET
-     This is a 16 bit offset from the zero data area pointer.
-
- -- : BFD_RELOC_V850_ZDA_15_16_OFFSET
-     This is a 16 bit offset (of which only 15 bits are used) from the
-     zero data area pointer.
-
- -- : BFD_RELOC_V850_TDA_6_8_OFFSET
-     This is an 8 bit offset (of which only 6 bits are used) from the
-     tiny data area pointer.
-
- -- : BFD_RELOC_V850_TDA_7_8_OFFSET
-     This is an 8bit offset (of which only 7 bits are used) from the
-     tiny data area pointer.
-
- -- : BFD_RELOC_V850_TDA_7_7_OFFSET
-     This is a 7 bit offset from the tiny data area pointer.
-
- -- : BFD_RELOC_V850_TDA_16_16_OFFSET
-     This is a 16 bit offset from the tiny data area pointer.
-
- -- : BFD_RELOC_V850_TDA_4_5_OFFSET
-     This is a 5 bit offset (of which only 4 bits are used) from the
-     tiny data area pointer.
-
- -- : BFD_RELOC_V850_TDA_4_4_OFFSET
-     This is a 4 bit offset from the tiny data area pointer.
-
- -- : BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET
-     This is a 16 bit offset from the short data area pointer, with the
-     bits placed non-contiguously in the instruction.
-
- -- : BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET
-     This is a 16 bit offset from the zero data area pointer, with the
-     bits placed non-contiguously in the instruction.
-
- -- : BFD_RELOC_V850_CALLT_6_7_OFFSET
-     This is a 6 bit offset from the call table base pointer.
-
- -- : BFD_RELOC_V850_CALLT_16_16_OFFSET
-     This is a 16 bit offset from the call table base pointer.
-
- -- : BFD_RELOC_V850_LONGCALL
-     Used for relaxing indirect function calls.
-
- -- : BFD_RELOC_V850_LONGJUMP
-     Used for relaxing indirect jumps.
-
- -- : BFD_RELOC_V850_ALIGN
-     Used to maintain alignment whilst relaxing.
-
- -- : BFD_RELOC_V850_LO16_SPLIT_OFFSET
-     This is a variation of BFD_RELOC_LO16 that can be used in v850e
-     ld.bu instructions.
-
- -- : BFD_RELOC_MN10300_32_PCREL
-     This is a 32bit pcrel reloc for the mn10300, offset by two bytes
-     in the instruction.
-
- -- : BFD_RELOC_MN10300_16_PCREL
-     This is a 16bit pcrel reloc for the mn10300, offset by two bytes
-     in the instruction.
-
- -- : BFD_RELOC_TIC30_LDP
-     This is a 8bit DP reloc for the tms320c30, where the most
-     significant 8 bits of a 24 bit word are placed into the least
-     significant 8 bits of the opcode.
-
- -- : BFD_RELOC_TIC54X_PARTLS7
-     This is a 7bit reloc for the tms320c54x, where the least
-     significant 7 bits of a 16 bit word are placed into the least
-     significant 7 bits of the opcode.
-
- -- : BFD_RELOC_TIC54X_PARTMS9
-     This is a 9bit DP reloc for the tms320c54x, where the most
-     significant 9 bits of a 16 bit word are placed into the least
-     significant 9 bits of the opcode.
-
- -- : BFD_RELOC_TIC54X_23
-     This is an extended address 23-bit reloc for the tms320c54x.
-
- -- : BFD_RELOC_TIC54X_16_OF_23
-     This is a 16-bit reloc for the tms320c54x, where the least
-     significant 16 bits of a 23-bit extended address are placed into
-     the opcode.
-
- -- : BFD_RELOC_TIC54X_MS7_OF_23
-     This is a reloc for the tms320c54x, where the most significant 7
-     bits of a 23-bit extended address are placed into the opcode.
-
- -- : BFD_RELOC_FR30_48
-     This is a 48 bit reloc for the FR30 that stores 32 bits.
-
- -- : BFD_RELOC_FR30_20
-     This is a 32 bit reloc for the FR30 that stores 20 bits split up
-     into two sections.
-
- -- : BFD_RELOC_FR30_6_IN_4
-     This is a 16 bit reloc for the FR30 that stores a 6 bit word
-     offset in 4 bits.
-
- -- : BFD_RELOC_FR30_8_IN_8
-     This is a 16 bit reloc for the FR30 that stores an 8 bit byte
-     offset into 8 bits.
-
- -- : BFD_RELOC_FR30_9_IN_8
-     This is a 16 bit reloc for the FR30 that stores a 9 bit short
-     offset into 8 bits.
-
- -- : BFD_RELOC_FR30_10_IN_8
-     This is a 16 bit reloc for the FR30 that stores a 10 bit word
-     offset into 8 bits.
-
- -- : BFD_RELOC_FR30_9_PCREL
-     This is a 16 bit reloc for the FR30 that stores a 9 bit pc relative
-     short offset into 8 bits.
-
- -- : BFD_RELOC_FR30_12_PCREL
-     This is a 16 bit reloc for the FR30 that stores a 12 bit pc
-     relative short offset into 11 bits.
-
- -- : BFD_RELOC_MCORE_PCREL_IMM8BY4
- -- : BFD_RELOC_MCORE_PCREL_IMM11BY2
- -- : BFD_RELOC_MCORE_PCREL_IMM4BY2
- -- : BFD_RELOC_MCORE_PCREL_32
- -- : BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2
- -- : BFD_RELOC_MCORE_RVA
-     Motorola Mcore relocations.
-
- -- : BFD_RELOC_MMIX_GETA
- -- : BFD_RELOC_MMIX_GETA_1
- -- : BFD_RELOC_MMIX_GETA_2
- -- : BFD_RELOC_MMIX_GETA_3
-     These are relocations for the GETA instruction.
-
- -- : BFD_RELOC_MMIX_CBRANCH
- -- : BFD_RELOC_MMIX_CBRANCH_J
- -- : BFD_RELOC_MMIX_CBRANCH_1
- -- : BFD_RELOC_MMIX_CBRANCH_2
- -- : BFD_RELOC_MMIX_CBRANCH_3
-     These are relocations for a conditional branch instruction.
-
- -- : BFD_RELOC_MMIX_PUSHJ
- -- : BFD_RELOC_MMIX_PUSHJ_1
- -- : BFD_RELOC_MMIX_PUSHJ_2
- -- : BFD_RELOC_MMIX_PUSHJ_3
- -- : BFD_RELOC_MMIX_PUSHJ_STUBBABLE
-     These are relocations for the PUSHJ instruction.
-
- -- : BFD_RELOC_MMIX_JMP
- -- : BFD_RELOC_MMIX_JMP_1
- -- : BFD_RELOC_MMIX_JMP_2
- -- : BFD_RELOC_MMIX_JMP_3
-     These are relocations for the JMP instruction.
-
- -- : BFD_RELOC_MMIX_ADDR19
-     This is a relocation for a relative address as in a GETA
-     instruction or a branch.
-
- -- : BFD_RELOC_MMIX_ADDR27
-     This is a relocation for a relative address as in a JMP
-     instruction.
-
- -- : BFD_RELOC_MMIX_REG_OR_BYTE
-     This is a relocation for an instruction field that may be a general
-     register or a value 0..255.
-
- -- : BFD_RELOC_MMIX_REG
-     This is a relocation for an instruction field that may be a general
-     register.
-
- -- : BFD_RELOC_MMIX_BASE_PLUS_OFFSET
-     This is a relocation for two instruction fields holding a register
-     and an offset, the equivalent of the relocation.
-
- -- : BFD_RELOC_MMIX_LOCAL
-     This relocation is an assertion that the expression is not
-     allocated as a global register.  It does not modify contents.
-
- -- : BFD_RELOC_AVR_7_PCREL
-     This is a 16 bit reloc for the AVR that stores 8 bit pc relative
-     short offset into 7 bits.
-
- -- : BFD_RELOC_AVR_13_PCREL
-     This is a 16 bit reloc for the AVR that stores 13 bit pc relative
-     short offset into 12 bits.
-
- -- : BFD_RELOC_AVR_16_PM
-     This is a 16 bit reloc for the AVR that stores 17 bit value
-     (usually program memory address) into 16 bits.
-
- -- : BFD_RELOC_AVR_LO8_LDI
-     This is a 16 bit reloc for the AVR that stores 8 bit value (usually
-     data memory address) into 8 bit immediate value of LDI insn.
-
- -- : BFD_RELOC_AVR_HI8_LDI
-     This is a 16 bit reloc for the AVR that stores 8 bit value (high 8
-     bit of data memory address) into 8 bit immediate value of LDI insn.
-
- -- : BFD_RELOC_AVR_HH8_LDI
-     This is a 16 bit reloc for the AVR that stores 8 bit value (most
-     high 8 bit of program memory address) into 8 bit immediate value
-     of LDI insn.
-
- -- : BFD_RELOC_AVR_LO8_LDI_NEG
-     This is a 16 bit reloc for the AVR that stores negated 8 bit value
-     (usually data memory address) into 8 bit immediate value of SUBI
-     insn.
-
- -- : BFD_RELOC_AVR_HI8_LDI_NEG
-     This is a 16 bit reloc for the AVR that stores negated 8 bit value
-     (high 8 bit of data memory address) into 8 bit immediate value of
-     SUBI insn.
-
- -- : BFD_RELOC_AVR_HH8_LDI_NEG
-     This is a 16 bit reloc for the AVR that stores negated 8 bit value
-     (most high 8 bit of program memory address) into 8 bit immediate
-     value of LDI or SUBI insn.
-
- -- : BFD_RELOC_AVR_LO8_LDI_PM
-     This is a 16 bit reloc for the AVR that stores 8 bit value (usually
-     command address) into 8 bit immediate value of LDI insn.
-
- -- : BFD_RELOC_AVR_HI8_LDI_PM
-     This is a 16 bit reloc for the AVR that stores 8 bit value (high 8
-     bit of command address) into 8 bit immediate value of LDI insn.
-
- -- : BFD_RELOC_AVR_HH8_LDI_PM
-     This is a 16 bit reloc for the AVR that stores 8 bit value (most
-     high 8 bit of command address) into 8 bit immediate value of LDI
-     insn.
-
- -- : BFD_RELOC_AVR_LO8_LDI_PM_NEG
-     This is a 16 bit reloc for the AVR that stores negated 8 bit value
-     (usually command address) into 8 bit immediate value of SUBI insn.
-
- -- : BFD_RELOC_AVR_HI8_LDI_PM_NEG
-     This is a 16 bit reloc for the AVR that stores negated 8 bit value
-     (high 8 bit of 16 bit command address) into 8 bit immediate value
-     of SUBI insn.
-
- -- : BFD_RELOC_AVR_HH8_LDI_PM_NEG
-     This is a 16 bit reloc for the AVR that stores negated 8 bit value
-     (high 6 bit of 22 bit command address) into 8 bit immediate value
-     of SUBI insn.
-
- -- : BFD_RELOC_AVR_CALL
-     This is a 32 bit reloc for the AVR that stores 23 bit value into
-     22 bits.
-
- -- : BFD_RELOC_AVR_LDI
-     This is a 16 bit reloc for the AVR that stores all needed bits for
-     absolute addressing with ldi with overflow check to linktime
-
- -- : BFD_RELOC_AVR_6
-     This is a 6 bit reloc for the AVR that stores offset for ldd/std
-     instructions
-
- -- : BFD_RELOC_AVR_6_ADIW
-     This is a 6 bit reloc for the AVR that stores offset for adiw/sbiw
-     instructions
-
- -- : BFD_RELOC_390_12
-     Direct 12 bit.
-
- -- : BFD_RELOC_390_GOT12
-     12 bit GOT offset.
-
- -- : BFD_RELOC_390_PLT32
-     32 bit PC relative PLT address.
-
- -- : BFD_RELOC_390_COPY
-     Copy symbol at runtime.
-
- -- : BFD_RELOC_390_GLOB_DAT
-     Create GOT entry.
-
- -- : BFD_RELOC_390_JMP_SLOT
-     Create PLT entry.
-
- -- : BFD_RELOC_390_RELATIVE
-     Adjust by program base.
-
- -- : BFD_RELOC_390_GOTPC
-     32 bit PC relative offset to GOT.
-
- -- : BFD_RELOC_390_GOT16
-     16 bit GOT offset.
-
- -- : BFD_RELOC_390_PC16DBL
-     PC relative 16 bit shifted by 1.
-
- -- : BFD_RELOC_390_PLT16DBL
-     16 bit PC rel. PLT shifted by 1.
-
- -- : BFD_RELOC_390_PC32DBL
-     PC relative 32 bit shifted by 1.
-
- -- : BFD_RELOC_390_PLT32DBL
-     32 bit PC rel. PLT shifted by 1.
-
- -- : BFD_RELOC_390_GOTPCDBL
-     32 bit PC rel. GOT shifted by 1.
-
- -- : BFD_RELOC_390_GOT64
-     64 bit GOT offset.
-
- -- : BFD_RELOC_390_PLT64
-     64 bit PC relative PLT address.
-
- -- : BFD_RELOC_390_GOTENT
-     32 bit rel. offset to GOT entry.
-
- -- : BFD_RELOC_390_GOTOFF64
-     64 bit offset to GOT.
-
- -- : BFD_RELOC_390_GOTPLT12
-     12-bit offset to symbol-entry within GOT, with PLT handling.
-
- -- : BFD_RELOC_390_GOTPLT16
-     16-bit offset to symbol-entry within GOT, with PLT handling.
-
- -- : BFD_RELOC_390_GOTPLT32
-     32-bit offset to symbol-entry within GOT, with PLT handling.
-
- -- : BFD_RELOC_390_GOTPLT64
-     64-bit offset to symbol-entry within GOT, with PLT handling.
-
- -- : BFD_RELOC_390_GOTPLTENT
-     32-bit rel. offset to symbol-entry within GOT, with PLT handling.
-
- -- : BFD_RELOC_390_PLTOFF16
-     16-bit rel. offset from the GOT to a PLT entry.
-
- -- : BFD_RELOC_390_PLTOFF32
-     32-bit rel. offset from the GOT to a PLT entry.
-
- -- : BFD_RELOC_390_PLTOFF64
-     64-bit rel. offset from the GOT to a PLT entry.
-
- -- : BFD_RELOC_390_TLS_LOAD
- -- : BFD_RELOC_390_TLS_GDCALL
- -- : BFD_RELOC_390_TLS_LDCALL
- -- : BFD_RELOC_390_TLS_GD32
- -- : BFD_RELOC_390_TLS_GD64
- -- : BFD_RELOC_390_TLS_GOTIE12
- -- : BFD_RELOC_390_TLS_GOTIE32
- -- : BFD_RELOC_390_TLS_GOTIE64
- -- : BFD_RELOC_390_TLS_LDM32
- -- : BFD_RELOC_390_TLS_LDM64
- -- : BFD_RELOC_390_TLS_IE32
- -- : BFD_RELOC_390_TLS_IE64
- -- : BFD_RELOC_390_TLS_IEENT
- -- : BFD_RELOC_390_TLS_LE32
- -- : BFD_RELOC_390_TLS_LE64
- -- : BFD_RELOC_390_TLS_LDO32
- -- : BFD_RELOC_390_TLS_LDO64
- -- : BFD_RELOC_390_TLS_DTPMOD
- -- : BFD_RELOC_390_TLS_DTPOFF
- -- : BFD_RELOC_390_TLS_TPOFF
-     s390 tls relocations.
-
- -- : BFD_RELOC_390_20
- -- : BFD_RELOC_390_GOT20
- -- : BFD_RELOC_390_GOTPLT20
- -- : BFD_RELOC_390_TLS_GOTIE20
-     Long displacement extension.
-
- -- : BFD_RELOC_IP2K_FR9
-     Scenix IP2K - 9-bit register number / data address
-
- -- : BFD_RELOC_IP2K_BANK
-     Scenix IP2K - 4-bit register/data bank number
-
- -- : BFD_RELOC_IP2K_ADDR16CJP
-     Scenix IP2K - low 13 bits of instruction word address
-
- -- : BFD_RELOC_IP2K_PAGE3
-     Scenix IP2K - high 3 bits of instruction word address
-
- -- : BFD_RELOC_IP2K_LO8DATA
- -- : BFD_RELOC_IP2K_HI8DATA
- -- : BFD_RELOC_IP2K_EX8DATA
-     Scenix IP2K - ext/low/high 8 bits of data address
-
- -- : BFD_RELOC_IP2K_LO8INSN
- -- : BFD_RELOC_IP2K_HI8INSN
-     Scenix IP2K - low/high 8 bits of instruction word address
-
- -- : BFD_RELOC_IP2K_PC_SKIP
-     Scenix IP2K - even/odd PC modifier to modify snb pcl.0
-
- -- : BFD_RELOC_IP2K_TEXT
-     Scenix IP2K - 16 bit word address in text section.
-
- -- : BFD_RELOC_IP2K_FR_OFFSET
-     Scenix IP2K - 7-bit sp or dp offset
-
- -- : BFD_RELOC_VPE4KMATH_DATA
- -- : BFD_RELOC_VPE4KMATH_INSN
-     Scenix VPE4K coprocessor - data/insn-space addressing
-
- -- : BFD_RELOC_VTABLE_INHERIT
- -- : BFD_RELOC_VTABLE_ENTRY
-     These two relocations are used by the linker to determine which of
-     the entries in a C++ virtual function table are actually used.
-     When the -gc-sections option is given, the linker will zero out
-     the entries that are not used, so that the code for those
-     functions need not be included in the output.
-
-     VTABLE_INHERIT is a zero-space relocation used to describe to the
-     linker the inheritance tree of a C++ virtual function table.  The
-     relocation's symbol should be the parent class' vtable, and the
-     relocation should be located at the child vtable.
-
-     VTABLE_ENTRY is a zero-space relocation that describes the use of a
-     virtual function table entry.  The reloc's symbol should refer to
-     the table of the class mentioned in the code.  Off of that base,
-     an offset describes the entry that is being used.  For Rela hosts,
-     this offset is stored in the reloc's addend.  For Rel hosts, we
-     are forced to put this offset in the reloc's section offset.
-
- -- : BFD_RELOC_IA64_IMM14
- -- : BFD_RELOC_IA64_IMM22
- -- : BFD_RELOC_IA64_IMM64
- -- : BFD_RELOC_IA64_DIR32MSB
- -- : BFD_RELOC_IA64_DIR32LSB
- -- : BFD_RELOC_IA64_DIR64MSB
- -- : BFD_RELOC_IA64_DIR64LSB
- -- : BFD_RELOC_IA64_GPREL22
- -- : BFD_RELOC_IA64_GPREL64I
- -- : BFD_RELOC_IA64_GPREL32MSB
- -- : BFD_RELOC_IA64_GPREL32LSB
- -- : BFD_RELOC_IA64_GPREL64MSB
- -- : BFD_RELOC_IA64_GPREL64LSB
- -- : BFD_RELOC_IA64_LTOFF22
- -- : BFD_RELOC_IA64_LTOFF64I
- -- : BFD_RELOC_IA64_PLTOFF22
- -- : BFD_RELOC_IA64_PLTOFF64I
- -- : BFD_RELOC_IA64_PLTOFF64MSB
- -- : BFD_RELOC_IA64_PLTOFF64LSB
- -- : BFD_RELOC_IA64_FPTR64I
- -- : BFD_RELOC_IA64_FPTR32MSB
- -- : BFD_RELOC_IA64_FPTR32LSB
- -- : BFD_RELOC_IA64_FPTR64MSB
- -- : BFD_RELOC_IA64_FPTR64LSB
- -- : BFD_RELOC_IA64_PCREL21B
- -- : BFD_RELOC_IA64_PCREL21BI
- -- : BFD_RELOC_IA64_PCREL21M
- -- : BFD_RELOC_IA64_PCREL21F
- -- : BFD_RELOC_IA64_PCREL22
- -- : BFD_RELOC_IA64_PCREL60B
- -- : BFD_RELOC_IA64_PCREL64I
- -- : BFD_RELOC_IA64_PCREL32MSB
- -- : BFD_RELOC_IA64_PCREL32LSB
- -- : BFD_RELOC_IA64_PCREL64MSB
- -- : BFD_RELOC_IA64_PCREL64LSB
- -- : BFD_RELOC_IA64_LTOFF_FPTR22
- -- : BFD_RELOC_IA64_LTOFF_FPTR64I
- -- : BFD_RELOC_IA64_LTOFF_FPTR32MSB
- -- : BFD_RELOC_IA64_LTOFF_FPTR32LSB
- -- : BFD_RELOC_IA64_LTOFF_FPTR64MSB
- -- : BFD_RELOC_IA64_LTOFF_FPTR64LSB
- -- : BFD_RELOC_IA64_SEGREL32MSB
- -- : BFD_RELOC_IA64_SEGREL32LSB
- -- : BFD_RELOC_IA64_SEGREL64MSB
- -- : BFD_RELOC_IA64_SEGREL64LSB
- -- : BFD_RELOC_IA64_SECREL32MSB
- -- : BFD_RELOC_IA64_SECREL32LSB
- -- : BFD_RELOC_IA64_SECREL64MSB
- -- : BFD_RELOC_IA64_SECREL64LSB
- -- : BFD_RELOC_IA64_REL32MSB
- -- : BFD_RELOC_IA64_REL32LSB
- -- : BFD_RELOC_IA64_REL64MSB
- -- : BFD_RELOC_IA64_REL64LSB
- -- : BFD_RELOC_IA64_LTV32MSB
- -- : BFD_RELOC_IA64_LTV32LSB
- -- : BFD_RELOC_IA64_LTV64MSB
- -- : BFD_RELOC_IA64_LTV64LSB
- -- : BFD_RELOC_IA64_IPLTMSB
- -- : BFD_RELOC_IA64_IPLTLSB
- -- : BFD_RELOC_IA64_COPY
- -- : BFD_RELOC_IA64_LTOFF22X
- -- : BFD_RELOC_IA64_LDXMOV
- -- : BFD_RELOC_IA64_TPREL14
- -- : BFD_RELOC_IA64_TPREL22
- -- : BFD_RELOC_IA64_TPREL64I
- -- : BFD_RELOC_IA64_TPREL64MSB
- -- : BFD_RELOC_IA64_TPREL64LSB
- -- : BFD_RELOC_IA64_LTOFF_TPREL22
- -- : BFD_RELOC_IA64_DTPMOD64MSB
- -- : BFD_RELOC_IA64_DTPMOD64LSB
- -- : BFD_RELOC_IA64_LTOFF_DTPMOD22
- -- : BFD_RELOC_IA64_DTPREL14
- -- : BFD_RELOC_IA64_DTPREL22
- -- : BFD_RELOC_IA64_DTPREL64I
- -- : BFD_RELOC_IA64_DTPREL32MSB
- -- : BFD_RELOC_IA64_DTPREL32LSB
- -- : BFD_RELOC_IA64_DTPREL64MSB
- -- : BFD_RELOC_IA64_DTPREL64LSB
- -- : BFD_RELOC_IA64_LTOFF_DTPREL22
-     Intel IA64 Relocations.
-
- -- : BFD_RELOC_M68HC11_HI8
-     Motorola 68HC11 reloc.  This is the 8 bit high part of an absolute
-     address.
-
- -- : BFD_RELOC_M68HC11_LO8
-     Motorola 68HC11 reloc.  This is the 8 bit low part of an absolute
-     address.
-
- -- : BFD_RELOC_M68HC11_3B
-     Motorola 68HC11 reloc.  This is the 3 bit of a value.
-
- -- : BFD_RELOC_M68HC11_RL_JUMP
-     Motorola 68HC11 reloc.  This reloc marks the beginning of a
-     jump/call instruction.  It is used for linker relaxation to
-     correctly identify beginning of instruction and change some
-     branches to use PC-relative addressing mode.
-
- -- : BFD_RELOC_M68HC11_RL_GROUP
-     Motorola 68HC11 reloc.  This reloc marks a group of several
-     instructions that gcc generates and for which the linker
-     relaxation pass can modify and/or remove some of them.
-
- -- : BFD_RELOC_M68HC11_LO16
-     Motorola 68HC11 reloc.  This is the 16-bit lower part of an
-     address.  It is used for 'call' instruction to specify the symbol
-     address without any special transformation (due to memory bank
-     window).
-
- -- : BFD_RELOC_M68HC11_PAGE
-     Motorola 68HC11 reloc.  This is a 8-bit reloc that specifies the
-     page number of an address.  It is used by 'call' instruction to
-     specify the page number of the symbol.
-
- -- : BFD_RELOC_M68HC11_24
-     Motorola 68HC11 reloc.  This is a 24-bit reloc that represents the
-     address with a 16-bit value and a 8-bit page number.  The symbol
-     address is transformed to follow the 16K memory bank of 68HC12
-     (seen as mapped in the window).
-
- -- : BFD_RELOC_M68HC12_5B
-     Motorola 68HC12 reloc.  This is the 5 bits of a value.
-
- -- : BFD_RELOC_16C_NUM08
- -- : BFD_RELOC_16C_NUM08_C
- -- : BFD_RELOC_16C_NUM16
- -- : BFD_RELOC_16C_NUM16_C
- -- : BFD_RELOC_16C_NUM32
- -- : BFD_RELOC_16C_NUM32_C
- -- : BFD_RELOC_16C_DISP04
- -- : BFD_RELOC_16C_DISP04_C
- -- : BFD_RELOC_16C_DISP08
- -- : BFD_RELOC_16C_DISP08_C
- -- : BFD_RELOC_16C_DISP16
- -- : BFD_RELOC_16C_DISP16_C
- -- : BFD_RELOC_16C_DISP24
- -- : BFD_RELOC_16C_DISP24_C
- -- : BFD_RELOC_16C_DISP24a
- -- : BFD_RELOC_16C_DISP24a_C
- -- : BFD_RELOC_16C_REG04
- -- : BFD_RELOC_16C_REG04_C
- -- : BFD_RELOC_16C_REG04a
- -- : BFD_RELOC_16C_REG04a_C
- -- : BFD_RELOC_16C_REG14
- -- : BFD_RELOC_16C_REG14_C
- -- : BFD_RELOC_16C_REG16
- -- : BFD_RELOC_16C_REG16_C
- -- : BFD_RELOC_16C_REG20
- -- : BFD_RELOC_16C_REG20_C
- -- : BFD_RELOC_16C_ABS20
- -- : BFD_RELOC_16C_ABS20_C
- -- : BFD_RELOC_16C_ABS24
- -- : BFD_RELOC_16C_ABS24_C
- -- : BFD_RELOC_16C_IMM04
- -- : BFD_RELOC_16C_IMM04_C
- -- : BFD_RELOC_16C_IMM16
- -- : BFD_RELOC_16C_IMM16_C
- -- : BFD_RELOC_16C_IMM20
- -- : BFD_RELOC_16C_IMM20_C
- -- : BFD_RELOC_16C_IMM24
- -- : BFD_RELOC_16C_IMM24_C
- -- : BFD_RELOC_16C_IMM32
- -- : BFD_RELOC_16C_IMM32_C
-     NS CR16C Relocations.
-
- -- : BFD_RELOC_CRX_REL4
- -- : BFD_RELOC_CRX_REL8
- -- : BFD_RELOC_CRX_REL8_CMP
- -- : BFD_RELOC_CRX_REL16
- -- : BFD_RELOC_CRX_REL24
- -- : BFD_RELOC_CRX_REL32
- -- : BFD_RELOC_CRX_REGREL12
- -- : BFD_RELOC_CRX_REGREL22
- -- : BFD_RELOC_CRX_REGREL28
- -- : BFD_RELOC_CRX_REGREL32
- -- : BFD_RELOC_CRX_ABS16
- -- : BFD_RELOC_CRX_ABS32
- -- : BFD_RELOC_CRX_NUM8
- -- : BFD_RELOC_CRX_NUM16
- -- : BFD_RELOC_CRX_NUM32
- -- : BFD_RELOC_CRX_IMM16
- -- : BFD_RELOC_CRX_IMM32
- -- : BFD_RELOC_CRX_SWITCH8
- -- : BFD_RELOC_CRX_SWITCH16
- -- : BFD_RELOC_CRX_SWITCH32
-     NS CRX Relocations.
-
- -- : BFD_RELOC_CRIS_BDISP8
- -- : BFD_RELOC_CRIS_UNSIGNED_5
- -- : BFD_RELOC_CRIS_SIGNED_6
- -- : BFD_RELOC_CRIS_UNSIGNED_6
- -- : BFD_RELOC_CRIS_SIGNED_8
- -- : BFD_RELOC_CRIS_UNSIGNED_8
- -- : BFD_RELOC_CRIS_SIGNED_16
- -- : BFD_RELOC_CRIS_UNSIGNED_16
- -- : BFD_RELOC_CRIS_LAPCQ_OFFSET
- -- : BFD_RELOC_CRIS_UNSIGNED_4
-     These relocs are only used within the CRIS assembler.  They are not
-     (at present) written to any object files.
-
- -- : BFD_RELOC_CRIS_COPY
- -- : BFD_RELOC_CRIS_GLOB_DAT
- -- : BFD_RELOC_CRIS_JUMP_SLOT
- -- : BFD_RELOC_CRIS_RELATIVE
-     Relocs used in ELF shared libraries for CRIS.
-
- -- : BFD_RELOC_CRIS_32_GOT
-     32-bit offset to symbol-entry within GOT.
-
- -- : BFD_RELOC_CRIS_16_GOT
-     16-bit offset to symbol-entry within GOT.
-
- -- : BFD_RELOC_CRIS_32_GOTPLT
-     32-bit offset to symbol-entry within GOT, with PLT handling.
-
- -- : BFD_RELOC_CRIS_16_GOTPLT
-     16-bit offset to symbol-entry within GOT, with PLT handling.
-
- -- : BFD_RELOC_CRIS_32_GOTREL
-     32-bit offset to symbol, relative to GOT.
-
- -- : BFD_RELOC_CRIS_32_PLT_GOTREL
-     32-bit offset to symbol with PLT entry, relative to GOT.
-
- -- : BFD_RELOC_CRIS_32_PLT_PCREL
-     32-bit offset to symbol with PLT entry, relative to this
-     relocation.
-
- -- : BFD_RELOC_860_COPY
- -- : BFD_RELOC_860_GLOB_DAT
- -- : BFD_RELOC_860_JUMP_SLOT
- -- : BFD_RELOC_860_RELATIVE
- -- : BFD_RELOC_860_PC26
- -- : BFD_RELOC_860_PLT26
- -- : BFD_RELOC_860_PC16
- -- : BFD_RELOC_860_LOW0
- -- : BFD_RELOC_860_SPLIT0
- -- : BFD_RELOC_860_LOW1
- -- : BFD_RELOC_860_SPLIT1
- -- : BFD_RELOC_860_LOW2
- -- : BFD_RELOC_860_SPLIT2
- -- : BFD_RELOC_860_LOW3
- -- : BFD_RELOC_860_LOGOT0
- -- : BFD_RELOC_860_SPGOT0
- -- : BFD_RELOC_860_LOGOT1
- -- : BFD_RELOC_860_SPGOT1
- -- : BFD_RELOC_860_LOGOTOFF0
- -- : BFD_RELOC_860_SPGOTOFF0
- -- : BFD_RELOC_860_LOGOTOFF1
- -- : BFD_RELOC_860_SPGOTOFF1
- -- : BFD_RELOC_860_LOGOTOFF2
- -- : BFD_RELOC_860_LOGOTOFF3
- -- : BFD_RELOC_860_LOPC
- -- : BFD_RELOC_860_HIGHADJ
- -- : BFD_RELOC_860_HAGOT
- -- : BFD_RELOC_860_HAGOTOFF
- -- : BFD_RELOC_860_HAPC
- -- : BFD_RELOC_860_HIGH
- -- : BFD_RELOC_860_HIGOT
- -- : BFD_RELOC_860_HIGOTOFF
-     Intel i860 Relocations.
-
- -- : BFD_RELOC_OPENRISC_ABS_26
- -- : BFD_RELOC_OPENRISC_REL_26
-     OpenRISC Relocations.
-
- -- : BFD_RELOC_H8_DIR16A8
- -- : BFD_RELOC_H8_DIR16R8
- -- : BFD_RELOC_H8_DIR24A8
- -- : BFD_RELOC_H8_DIR24R8
- -- : BFD_RELOC_H8_DIR32A16
-     H8 elf Relocations.
-
- -- : BFD_RELOC_XSTORMY16_REL_12
- -- : BFD_RELOC_XSTORMY16_12
- -- : BFD_RELOC_XSTORMY16_24
- -- : BFD_RELOC_XSTORMY16_FPTR16
-     Sony Xstormy16 Relocations.
-
- -- : BFD_RELOC_VAX_GLOB_DAT
- -- : BFD_RELOC_VAX_JMP_SLOT
- -- : BFD_RELOC_VAX_RELATIVE
-     Relocations used by VAX ELF.
-
- -- : BFD_RELOC_MSP430_10_PCREL
- -- : BFD_RELOC_MSP430_16_PCREL
- -- : BFD_RELOC_MSP430_16
- -- : BFD_RELOC_MSP430_16_PCREL_BYTE
- -- : BFD_RELOC_MSP430_16_BYTE
- -- : BFD_RELOC_MSP430_2X_PCREL
- -- : BFD_RELOC_MSP430_RL_PCREL
-     msp430 specific relocation codes
-
- -- : BFD_RELOC_IQ2000_OFFSET_16
- -- : BFD_RELOC_IQ2000_OFFSET_21
- -- : BFD_RELOC_IQ2000_UHI16
-     IQ2000 Relocations.
-
- -- : BFD_RELOC_XTENSA_RTLD
-     Special Xtensa relocation used only by PLT entries in ELF shared
-     objects to indicate that the runtime linker should set the value
-     to one of its own internal functions or data structures.
-
- -- : BFD_RELOC_XTENSA_GLOB_DAT
- -- : BFD_RELOC_XTENSA_JMP_SLOT
- -- : BFD_RELOC_XTENSA_RELATIVE
-     Xtensa relocations for ELF shared objects.
-
- -- : BFD_RELOC_XTENSA_PLT
-     Xtensa relocation used in ELF object files for symbols that may
-     require PLT entries.  Otherwise, this is just a generic 32-bit
-     relocation.
-
- -- : BFD_RELOC_XTENSA_DIFF8
- -- : BFD_RELOC_XTENSA_DIFF16
- -- : BFD_RELOC_XTENSA_DIFF32
-     Xtensa relocations to mark the difference of two local symbols.
-     These are only needed to support linker relaxation and can be
-     ignored when not relaxing.  The field is set to the value of the
-     difference assuming no relaxation.  The relocation encodes the
-     position of the first symbol so the linker can determine whether
-     to adjust the field value.
-
- -- : BFD_RELOC_XTENSA_SLOT0_OP
- -- : BFD_RELOC_XTENSA_SLOT1_OP
- -- : BFD_RELOC_XTENSA_SLOT2_OP
- -- : BFD_RELOC_XTENSA_SLOT3_OP
- -- : BFD_RELOC_XTENSA_SLOT4_OP
- -- : BFD_RELOC_XTENSA_SLOT5_OP
- -- : BFD_RELOC_XTENSA_SLOT6_OP
- -- : BFD_RELOC_XTENSA_SLOT7_OP
- -- : BFD_RELOC_XTENSA_SLOT8_OP
- -- : BFD_RELOC_XTENSA_SLOT9_OP
- -- : BFD_RELOC_XTENSA_SLOT10_OP
- -- : BFD_RELOC_XTENSA_SLOT11_OP
- -- : BFD_RELOC_XTENSA_SLOT12_OP
- -- : BFD_RELOC_XTENSA_SLOT13_OP
- -- : BFD_RELOC_XTENSA_SLOT14_OP
-     Generic Xtensa relocations for instruction operands.  Only the slot
-     number is encoded in the relocation.  The relocation applies to the
-     last PC-relative immediate operand, or if there are no PC-relative
-     immediates, to the last immediate operand.
-
- -- : BFD_RELOC_XTENSA_SLOT0_ALT
- -- : BFD_RELOC_XTENSA_SLOT1_ALT
- -- : BFD_RELOC_XTENSA_SLOT2_ALT
- -- : BFD_RELOC_XTENSA_SLOT3_ALT
- -- : BFD_RELOC_XTENSA_SLOT4_ALT
- -- : BFD_RELOC_XTENSA_SLOT5_ALT
- -- : BFD_RELOC_XTENSA_SLOT6_ALT
- -- : BFD_RELOC_XTENSA_SLOT7_ALT
- -- : BFD_RELOC_XTENSA_SLOT8_ALT
- -- : BFD_RELOC_XTENSA_SLOT9_ALT
- -- : BFD_RELOC_XTENSA_SLOT10_ALT
- -- : BFD_RELOC_XTENSA_SLOT11_ALT
- -- : BFD_RELOC_XTENSA_SLOT12_ALT
- -- : BFD_RELOC_XTENSA_SLOT13_ALT
- -- : BFD_RELOC_XTENSA_SLOT14_ALT
-     Alternate Xtensa relocations.  Only the slot is encoded in the
-     relocation.  The meaning of these relocations is opcode-specific.
-
- -- : BFD_RELOC_XTENSA_OP0
- -- : BFD_RELOC_XTENSA_OP1
- -- : BFD_RELOC_XTENSA_OP2
-     Xtensa relocations for backward compatibility.  These have all been
-     replaced by BFD_RELOC_XTENSA_SLOT0_OP.
-
- -- : BFD_RELOC_XTENSA_ASM_EXPAND
-     Xtensa relocation to mark that the assembler expanded the
-     instructions from an original target.  The expansion size is
-     encoded in the reloc size.
-
- -- : BFD_RELOC_XTENSA_ASM_SIMPLIFY
-     Xtensa relocation to mark that the linker should simplify
-     assembler-expanded instructions.  This is commonly used internally
-     by the linker after analysis of a BFD_RELOC_XTENSA_ASM_EXPAND.
-
-
-     typedef enum bfd_reloc_code_real bfd_reloc_code_real_type;
-   
-2.11.0.2 `bfd_reloc_type_lookup'
-................................
-
-*Synopsis*
-     reloc_howto_type *bfd_reloc_type_lookup
-        (bfd *abfd, bfd_reloc_code_real_type code);
-   *Description*
-Return a pointer to a howto structure which, when invoked, will perform
-the relocation CODE on data from the architecture noted.
-
-2.11.0.3 `bfd_default_reloc_type_lookup'
-........................................
-
-*Synopsis*
-     reloc_howto_type *bfd_default_reloc_type_lookup
-        (bfd *abfd, bfd_reloc_code_real_type  code);
-   *Description*
-Provides a default relocation lookup routine for any architecture.
-
-2.11.0.4 `bfd_get_reloc_code_name'
-..................................
-
-*Synopsis*
-     const char *bfd_get_reloc_code_name (bfd_reloc_code_real_type code);
-   *Description*
-Provides a printable name for the supplied relocation code.  Useful
-mainly for printing error messages.
-
-2.11.0.5 `bfd_generic_relax_section'
-....................................
-
-*Synopsis*
-     bfd_boolean bfd_generic_relax_section
-        (bfd *abfd,
-         asection *section,
-         struct bfd_link_info *,
-         bfd_boolean *);
-   *Description*
-Provides default handling for relaxing for back ends which don't do
-relaxing.
-
-2.11.0.6 `bfd_generic_gc_sections'
-..................................
-
-*Synopsis*
-     bfd_boolean bfd_generic_gc_sections
-        (bfd *, struct bfd_link_info *);
-   *Description*
-Provides default handling for relaxing for back ends which don't do
-section gc - i.e., does nothing.
-
-2.11.0.7 `bfd_generic_merge_sections'
-.....................................
-
-*Synopsis*
-     bfd_boolean bfd_generic_merge_sections
-        (bfd *, struct bfd_link_info *);
-   *Description*
-Provides default handling for SEC_MERGE section merging for back ends
-which don't have SEC_MERGE support - i.e., does nothing.
-
-2.11.0.8 `bfd_generic_get_relocated_section_contents'
-.....................................................
-
-*Synopsis*
-     bfd_byte *bfd_generic_get_relocated_section_contents
-        (bfd *abfd,
-         struct bfd_link_info *link_info,
-         struct bfd_link_order *link_order,
-         bfd_byte *data,
-         bfd_boolean relocatable,
-         asymbol **symbols);
-   *Description*
-Provides default handling of relocation effort for back ends which
-can't be bothered to do it efficiently.
-
-
-File: bfd.info,  Node: Core Files,  Next: Targets,  Prev: Relocations,  Up: BFD front end
-
-2.12 Core files
-===============
-
-*Description*
-These are functions pertaining to core files.
-
-2.12.0.1 `bfd_core_file_failing_command'
-........................................
-
-*Synopsis*
-     const char *bfd_core_file_failing_command (bfd *abfd);
-   *Description*
-Return a read-only string explaining which program was running when it
-failed and produced the core file ABFD.
-
-2.12.0.2 `bfd_core_file_failing_signal'
-.......................................
-
-*Synopsis*
-     int bfd_core_file_failing_signal (bfd *abfd);
-   *Description*
-Returns the signal number which caused the core dump which generated
-the file the BFD ABFD is attached to.
-
-2.12.0.3 `core_file_matches_executable_p'
-.........................................
-
-*Synopsis*
-     bfd_boolean core_file_matches_executable_p
-        (bfd *core_bfd, bfd *exec_bfd);
-   *Description*
-Return `TRUE' if the core file attached to CORE_BFD was generated by a
-run of the executable file attached to EXEC_BFD, `FALSE' otherwise.
-
-
-File: bfd.info,  Node: Targets,  Next: Architectures,  Prev: Core Files,  Up: BFD front end
-
-2.13 Targets
-============
-
-*Description*
-Each port of BFD to a different machine requires the creation of a
-target back end. All the back end provides to the root part of BFD is a
-structure containing pointers to functions which perform certain low
-level operations on files. BFD translates the applications's requests
-through a pointer into calls to the back end routines.
-
-   When a file is opened with `bfd_openr', its format and target are
-unknown. BFD uses various mechanisms to determine how to interpret the
-file. The operations performed are:
-
-   * Create a BFD by calling the internal routine `_bfd_new_bfd', then
-     call `bfd_find_target' with the target string supplied to
-     `bfd_openr' and the new BFD pointer.
-
-   * If a null target string was provided to `bfd_find_target', look up
-     the environment variable `GNUTARGET' and use that as the target
-     string.
-
-   * If the target string is still `NULL', or the target string is
-     `default', then use the first item in the target vector as the
-     target type, and set `target_defaulted' in the BFD to cause
-     `bfd_check_format' to loop through all the targets.  *Note
-     bfd_target::.  *Note Formats::.
-
-   * Otherwise, inspect the elements in the target vector one by one,
-     until a match on target name is found. When found, use it.
-
-   * Otherwise return the error `bfd_error_invalid_target' to
-     `bfd_openr'.
-
-   * `bfd_openr' attempts to open the file using `bfd_open_file', and
-     returns the BFD.
-   Once the BFD has been opened and the target selected, the file
-format may be determined. This is done by calling `bfd_check_format' on
-the BFD with a suggested format.  If `target_defaulted' has been set,
-each possible target type is tried to see if it recognizes the
-specified format.  `bfd_check_format' returns `TRUE' when the caller
-guesses right.
-
-* Menu:
-
-* bfd_target::
-
-
-File: bfd.info,  Node: bfd_target,  Prev: Targets,  Up: Targets
-
-2.13.1 bfd_target
------------------
-
-*Description*
-This structure contains everything that BFD knows about a target. It
-includes things like its byte order, name, and which routines to call
-to do various operations.
-
-   Every BFD points to a target structure with its `xvec' member.
-
-   The macros below are used to dispatch to functions through the
-`bfd_target' vector. They are used in a number of macros further down
-in `bfd.h', and are also used when calling various routines by hand
-inside the BFD implementation.  The ARGLIST argument must be
-parenthesized; it contains all the arguments to the called function.
-
-   They make the documentation (more) unpleasant to read, so if someone
-wants to fix this and not break the above, please do.
-     #define BFD_SEND(bfd, message, arglist) \
-       ((*((bfd)->xvec->message)) arglist)
-
-     #ifdef DEBUG_BFD_SEND
-     #undef BFD_SEND
-     #define BFD_SEND(bfd, message, arglist) \
-       (((bfd) && (bfd)->xvec && (bfd)->xvec->message) ? \
-         ((*((bfd)->xvec->message)) arglist) : \
-         (bfd_assert (__FILE__,__LINE__), NULL))
-     #endif
-   For operations which index on the BFD format:
-     #define BFD_SEND_FMT(bfd, message, arglist) \
-       (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist)
-
-     #ifdef DEBUG_BFD_SEND
-     #undef BFD_SEND_FMT
-     #define BFD_SEND_FMT(bfd, message, arglist) \
-       (((bfd) && (bfd)->xvec && (bfd)->xvec->message) ? \
-        (((bfd)->xvec->message[(int) ((bfd)->format)]) arglist) : \
-        (bfd_assert (__FILE__,__LINE__), NULL))
-     #endif
-   This is the structure which defines the type of BFD this is.  The
-`xvec' member of the struct `bfd' itself points here.  Each module that
-implements access to a different target under BFD, defines one of these.
-
-   FIXME, these names should be rationalised with the names of the
-entry points which call them. Too bad we can't have one macro to define
-them both!
-     enum bfd_flavour
-     {
-       bfd_target_unknown_flavour,
-       bfd_target_aout_flavour,
-       bfd_target_coff_flavour,
-       bfd_target_ecoff_flavour,
-       bfd_target_xcoff_flavour,
-       bfd_target_elf_flavour,
-       bfd_target_ieee_flavour,
-       bfd_target_nlm_flavour,
-       bfd_target_oasys_flavour,
-       bfd_target_tekhex_flavour,
-       bfd_target_srec_flavour,
-       bfd_target_ihex_flavour,
-       bfd_target_som_flavour,
-       bfd_target_os9k_flavour,
-       bfd_target_versados_flavour,
-       bfd_target_msdos_flavour,
-       bfd_target_ovax_flavour,
-       bfd_target_evax_flavour,
-       bfd_target_mmo_flavour,
-       bfd_target_mach_o_flavour,
-       bfd_target_pef_flavour,
-       bfd_target_pef_xlib_flavour,
-       bfd_target_sym_flavour
-     };
-
-     enum bfd_endian { BFD_ENDIAN_BIG, BFD_ENDIAN_LITTLE, BFD_ENDIAN_UNKNOWN };
-
-     /* Forward declaration.  */
-     typedef struct bfd_link_info _bfd_link_info;
-
-     typedef struct bfd_target
-     {
-       /* Identifies the kind of target, e.g., SunOS4, Ultrix, etc.  */
-       char *name;
-
-      /* The "flavour" of a back end is a general indication about
-         the contents of a file.  */
-       enum bfd_flavour flavour;
-
-       /* The order of bytes within the data area of a file.  */
-       enum bfd_endian byteorder;
-
-      /* The order of bytes within the header parts of a file.  */
-       enum bfd_endian header_byteorder;
-
-       /* A mask of all the flags which an executable may have set -
-          from the set `BFD_NO_FLAGS', `HAS_RELOC', ...`D_PAGED'.  */
-       flagword object_flags;
-
-      /* A mask of all the flags which a section may have set - from
-         the set `SEC_NO_FLAGS', `SEC_ALLOC', ...`SET_NEVER_LOAD'.  */
-       flagword section_flags;
-
-      /* The character normally found at the front of a symbol.
-         (if any), perhaps `_'.  */
-       char symbol_leading_char;
-
-      /* The pad character for file names within an archive header.  */
-       char ar_pad_char;
-
-       /* The maximum number of characters in an archive header.  */
-       unsigned short ar_max_namelen;
-
-       /* Entries for byte swapping for data. These are different from the
-          other entry points, since they don't take a BFD as the first argument.
-          Certain other handlers could do the same.  */
-       bfd_uint64_t   (*bfd_getx64) (const void *);
-       bfd_int64_t    (*bfd_getx_signed_64) (const void *);
-       void           (*bfd_putx64) (bfd_uint64_t, void *);
-       bfd_vma        (*bfd_getx32) (const void *);
-       bfd_signed_vma (*bfd_getx_signed_32) (const void *);
-       void           (*bfd_putx32) (bfd_vma, void *);
-       bfd_vma        (*bfd_getx16) (const void *);
-       bfd_signed_vma (*bfd_getx_signed_16) (const void *);
-       void           (*bfd_putx16) (bfd_vma, void *);
-
-       /* Byte swapping for the headers.  */
-       bfd_uint64_t   (*bfd_h_getx64) (const void *);
-       bfd_int64_t    (*bfd_h_getx_signed_64) (const void *);
-       void           (*bfd_h_putx64) (bfd_uint64_t, void *);
-       bfd_vma        (*bfd_h_getx32) (const void *);
-       bfd_signed_vma (*bfd_h_getx_signed_32) (const void *);
-       void           (*bfd_h_putx32) (bfd_vma, void *);
-       bfd_vma        (*bfd_h_getx16) (const void *);
-       bfd_signed_vma (*bfd_h_getx_signed_16) (const void *);
-       void           (*bfd_h_putx16) (bfd_vma, void *);
-
-       /* Format dependent routines: these are vectors of entry points
-          within the target vector structure, one for each format to check.  */
-
-       /* Check the format of a file being read.  Return a `bfd_target *' or zero.  */
-       const struct bfd_target *(*_bfd_check_format[bfd_type_end]) (bfd *);
-
-       /* Set the format of a file being written.  */
-       bfd_boolean (*_bfd_set_format[bfd_type_end]) (bfd *);
-
-       /* Write cached information into a file being written, at `bfd_close'.  */
-       bfd_boolean (*_bfd_write_contents[bfd_type_end]) (bfd *);
-   The general target vector.  These vectors are initialized using the
-BFD_JUMP_TABLE macros.
-
-       /* Generic entry points.  */
-     #define BFD_JUMP_TABLE_GENERIC(NAME) \
-       NAME##_close_and_cleanup, \
-       NAME##_bfd_free_cached_info, \
-       NAME##_new_section_hook, \
-       NAME##_get_section_contents, \
-       NAME##_get_section_contents_in_window
-
-       /* Called when the BFD is being closed to do any necessary cleanup.  */
-       bfd_boolean (*_close_and_cleanup) (bfd *);
-       /* Ask the BFD to free all cached information.  */
-       bfd_boolean (*_bfd_free_cached_info) (bfd *);
-       /* Called when a new section is created.  */
-       bfd_boolean (*_new_section_hook) (bfd *, sec_ptr);
-       /* Read the contents of a section.  */
-       bfd_boolean (*_bfd_get_section_contents)
-         (bfd *, sec_ptr, void *, file_ptr, bfd_size_type);
-       bfd_boolean (*_bfd_get_section_contents_in_window)
-         (bfd *, sec_ptr, bfd_window *, file_ptr, bfd_size_type);
-
-       /* Entry points to copy private data.  */
-     #define BFD_JUMP_TABLE_COPY(NAME) \
-       NAME##_bfd_copy_private_bfd_data, \
-       NAME##_bfd_merge_private_bfd_data, \
-       NAME##_bfd_copy_private_section_data, \
-       NAME##_bfd_copy_private_symbol_data, \
-       NAME##_bfd_copy_private_header_data, \
-       NAME##_bfd_set_private_flags, \
-       NAME##_bfd_print_private_bfd_data
-
-       /* Called to copy BFD general private data from one object file
-          to another.  */
-       bfd_boolean (*_bfd_copy_private_bfd_data) (bfd *, bfd *);
-       /* Called to merge BFD general private data from one object file
-          to a common output file when linking.  */
-       bfd_boolean (*_bfd_merge_private_bfd_data) (bfd *, bfd *);
-       /* Called to copy BFD private section data from one object file
-          to another.  */
-       bfd_boolean (*_bfd_copy_private_section_data)
-         (bfd *, sec_ptr, bfd *, sec_ptr);
-       /* Called to copy BFD private symbol data from one symbol
-          to another.  */
-       bfd_boolean (*_bfd_copy_private_symbol_data)
-         (bfd *, asymbol *, bfd *, asymbol *);
-       /* Called to copy BFD private header data from one object file
-          to another.  */
-       bfd_boolean (*_bfd_copy_private_header_data)
-         (bfd *, bfd *);
-       /* Called to set private backend flags.  */
-       bfd_boolean (*_bfd_set_private_flags) (bfd *, flagword);
-
-       /* Called to print private BFD data.  */
-       bfd_boolean (*_bfd_print_private_bfd_data) (bfd *, void *);
-
-       /* Core file entry points.  */
-     #define BFD_JUMP_TABLE_CORE(NAME) \
-       NAME##_core_file_failing_command, \
-       NAME##_core_file_failing_signal, \
-       NAME##_core_file_matches_executable_p
-
-       char *      (*_core_file_failing_command) (bfd *);
-       int         (*_core_file_failing_signal) (bfd *);
-       bfd_boolean (*_core_file_matches_executable_p) (bfd *, bfd *);
-
-       /* Archive entry points.  */
-     #define BFD_JUMP_TABLE_ARCHIVE(NAME) \
-       NAME##_slurp_armap, \
-       NAME##_slurp_extended_name_table, \
-       NAME##_construct_extended_name_table, \
-       NAME##_truncate_arname, \
-       NAME##_write_armap, \
-       NAME##_read_ar_hdr, \
-       NAME##_openr_next_archived_file, \
-       NAME##_get_elt_at_index, \
-       NAME##_generic_stat_arch_elt, \
-       NAME##_update_armap_timestamp
-
-       bfd_boolean (*_bfd_slurp_armap) (bfd *);
-       bfd_boolean (*_bfd_slurp_extended_name_table) (bfd *);
-       bfd_boolean (*_bfd_construct_extended_name_table)
-         (bfd *, char **, bfd_size_type *, const char **);
-       void        (*_bfd_truncate_arname) (bfd *, const char *, char *);
-       bfd_boolean (*write_armap)
-         (bfd *, unsigned int, struct orl *, unsigned int, int);
-       void *      (*_bfd_read_ar_hdr_fn) (bfd *);
-       bfd *       (*openr_next_archived_file) (bfd *, bfd *);
-     #define bfd_get_elt_at_index(b,i) BFD_SEND (b, _bfd_get_elt_at_index, (b,i))
-       bfd *       (*_bfd_get_elt_at_index) (bfd *, symindex);
-       int         (*_bfd_stat_arch_elt) (bfd *, struct stat *);
-       bfd_boolean (*_bfd_update_armap_timestamp) (bfd *);
-
-       /* Entry points used for symbols.  */
-     #define BFD_JUMP_TABLE_SYMBOLS(NAME) \
-       NAME##_get_symtab_upper_bound, \
-       NAME##_canonicalize_symtab, \
-       NAME##_make_empty_symbol, \
-       NAME##_print_symbol, \
-       NAME##_get_symbol_info, \
-       NAME##_bfd_is_local_label_name, \
-       NAME##_bfd_is_target_special_symbol, \
-       NAME##_get_lineno, \
-       NAME##_find_nearest_line, \
-       NAME##_bfd_make_debug_symbol, \
-       NAME##_read_minisymbols, \
-       NAME##_minisymbol_to_symbol
-
-       long        (*_bfd_get_symtab_upper_bound) (bfd *);
-       long        (*_bfd_canonicalize_symtab)
-         (bfd *, struct bfd_symbol **);
-       struct bfd_symbol *
-                   (*_bfd_make_empty_symbol) (bfd *);
-       void        (*_bfd_print_symbol)
-         (bfd *, void *, struct bfd_symbol *, bfd_print_symbol_type);
-     #define bfd_print_symbol(b,p,s,e) BFD_SEND (b, _bfd_print_symbol, (b,p,s,e))
-       void        (*_bfd_get_symbol_info)
-         (bfd *, struct bfd_symbol *, symbol_info *);
-     #define bfd_get_symbol_info(b,p,e) BFD_SEND (b, _bfd_get_symbol_info, (b,p,e))
-       bfd_boolean (*_bfd_is_local_label_name) (bfd *, const char *);
-       bfd_boolean (*_bfd_is_target_special_symbol) (bfd *, asymbol *);
-       alent *     (*_get_lineno) (bfd *, struct bfd_symbol *);
-       bfd_boolean (*_bfd_find_nearest_line)
-         (bfd *, struct bfd_section *, struct bfd_symbol **, bfd_vma,
-          const char **, const char **, unsigned int *);
-      /* Back-door to allow format-aware applications to create debug symbols
-         while using BFD for everything else.  Currently used by the assembler
-         when creating COFF files.  */
-       asymbol *   (*_bfd_make_debug_symbol)
-         (bfd *, void *, unsigned long size);
-     #define bfd_read_minisymbols(b, d, m, s) \
-       BFD_SEND (b, _read_minisymbols, (b, d, m, s))
-       long        (*_read_minisymbols)
-         (bfd *, bfd_boolean, void **, unsigned int *);
-     #define bfd_minisymbol_to_symbol(b, d, m, f) \
-       BFD_SEND (b, _minisymbol_to_symbol, (b, d, m, f))
-       asymbol *   (*_minisymbol_to_symbol)
-         (bfd *, bfd_boolean, const void *, asymbol *);
-
-       /* Routines for relocs.  */
-     #define BFD_JUMP_TABLE_RELOCS(NAME) \
-       NAME##_get_reloc_upper_bound, \
-       NAME##_canonicalize_reloc, \
-       NAME##_bfd_reloc_type_lookup
-
-       long        (*_get_reloc_upper_bound) (bfd *, sec_ptr);
-       long        (*_bfd_canonicalize_reloc)
-         (bfd *, sec_ptr, arelent **, struct bfd_symbol **);
-       /* See documentation on reloc types.  */
-       reloc_howto_type *
-                   (*reloc_type_lookup) (bfd *, bfd_reloc_code_real_type);
-
-       /* Routines used when writing an object file.  */
-     #define BFD_JUMP_TABLE_WRITE(NAME) \
-       NAME##_set_arch_mach, \
-       NAME##_set_section_contents
-
-       bfd_boolean (*_bfd_set_arch_mach)
-         (bfd *, enum bfd_architecture, unsigned long);
-       bfd_boolean (*_bfd_set_section_contents)
-         (bfd *, sec_ptr, const void *, file_ptr, bfd_size_type);
-
-       /* Routines used by the linker.  */
-     #define BFD_JUMP_TABLE_LINK(NAME) \
-       NAME##_sizeof_headers, \
-       NAME##_bfd_get_relocated_section_contents, \
-       NAME##_bfd_relax_section, \
-       NAME##_bfd_link_hash_table_create, \
-       NAME##_bfd_link_hash_table_free, \
-       NAME##_bfd_link_add_symbols, \
-       NAME##_bfd_link_just_syms, \
-       NAME##_bfd_final_link, \
-       NAME##_bfd_link_split_section, \
-       NAME##_bfd_gc_sections, \
-       NAME##_bfd_merge_sections, \
-       NAME##_bfd_is_group_section, \
-       NAME##_bfd_discard_group, \
-       NAME##_section_already_linked \
-
-       int         (*_bfd_sizeof_headers) (bfd *, bfd_boolean);
-       bfd_byte *  (*_bfd_get_relocated_section_contents)
-         (bfd *, struct bfd_link_info *, struct bfd_link_order *,
-          bfd_byte *, bfd_boolean, struct bfd_symbol **);
-
-       bfd_boolean (*_bfd_relax_section)
-         (bfd *, struct bfd_section *, struct bfd_link_info *, bfd_boolean *);
-
-       /* Create a hash table for the linker.  Different backends store
-          different information in this table.  */
-       struct bfd_link_hash_table *
-                   (*_bfd_link_hash_table_create) (bfd *);
-
-       /* Release the memory associated with the linker hash table.  */
-       void        (*_bfd_link_hash_table_free) (struct bfd_link_hash_table *);
-
-       /* Add symbols from this object file into the hash table.  */
-       bfd_boolean (*_bfd_link_add_symbols) (bfd *, struct bfd_link_info *);
-
-       /* Indicate that we are only retrieving symbol values from this section.  */
-       void        (*_bfd_link_just_syms) (asection *, struct bfd_link_info *);
-
-       /* Do a link based on the link_order structures attached to each
-          section of the BFD.  */
-       bfd_boolean (*_bfd_final_link) (bfd *, struct bfd_link_info *);
-
-       /* Should this section be split up into smaller pieces during linking.  */
-       bfd_boolean (*_bfd_link_split_section) (bfd *, struct bfd_section *);
-
-       /* Remove sections that are not referenced from the output.  */
-       bfd_boolean (*_bfd_gc_sections) (bfd *, struct bfd_link_info *);
-
-       /* Attempt to merge SEC_MERGE sections.  */
-       bfd_boolean (*_bfd_merge_sections) (bfd *, struct bfd_link_info *);
-
-       /* Is this section a member of a group?  */
-       bfd_boolean (*_bfd_is_group_section) (bfd *, const struct bfd_section *);
-
-       /* Discard members of a group.  */
-       bfd_boolean (*_bfd_discard_group) (bfd *, struct bfd_section *);
-
-       /* Check if SEC has been already linked during a reloceatable or
-          final link.  */
-       void (*_section_already_linked) (bfd *, struct bfd_section *);
-
-       /* Routines to handle dynamic symbols and relocs.  */
-     #define BFD_JUMP_TABLE_DYNAMIC(NAME) \
-       NAME##_get_dynamic_symtab_upper_bound, \
-       NAME##_canonicalize_dynamic_symtab, \
-       NAME##_get_synthetic_symtab, \
-       NAME##_get_dynamic_reloc_upper_bound, \
-       NAME##_canonicalize_dynamic_reloc
-
-       /* Get the amount of memory required to hold the dynamic symbols.  */
-       long        (*_bfd_get_dynamic_symtab_upper_bound) (bfd *);
-       /* Read in the dynamic symbols.  */
-       long        (*_bfd_canonicalize_dynamic_symtab)
-         (bfd *, struct bfd_symbol **);
-       /* Create synthetized symbols.  */
-       long        (*_bfd_get_synthetic_symtab)
-         (bfd *, long, struct bfd_symbol **, long, struct bfd_symbol **,
-          struct bfd_symbol **);
-       /* Get the amount of memory required to hold the dynamic relocs.  */
-       long        (*_bfd_get_dynamic_reloc_upper_bound) (bfd *);
-       /* Read in the dynamic relocs.  */
-       long        (*_bfd_canonicalize_dynamic_reloc)
-         (bfd *, arelent **, struct bfd_symbol **);
-   A pointer to an alternative bfd_target in case the current one is not
-satisfactory.  This can happen when the target cpu supports both big
-and little endian code, and target chosen by the linker has the wrong
-endianness.  The function open_output() in ld/ldlang.c uses this field
-to find an alternative output format that is suitable.
-       /* Opposite endian version of this target.  */
-       const struct bfd_target * alternative_target;
-
-       /* Data for use by back-end routines, which isn't
-          generic enough to belong in this structure.  */
-       const void *backend_data;
-
-     } bfd_target;
-
-2.13.1.1 `bfd_set_default_target'
-.................................
-
-*Synopsis*
-     bfd_boolean bfd_set_default_target (const char *name);
-   *Description*
-Set the default target vector to use when recognizing a BFD.  This
-takes the name of the target, which may be a BFD target name or a
-configuration triplet.
-
-2.13.1.2 `bfd_find_target'
-..........................
-
-*Synopsis*
-     const bfd_target *bfd_find_target (const char *target_name, bfd *abfd);
-   *Description*
-Return a pointer to the transfer vector for the object target named
-TARGET_NAME.  If TARGET_NAME is `NULL', choose the one in the
-environment variable `GNUTARGET'; if that is null or not defined, then
-choose the first entry in the target list.  Passing in the string
-"default" or setting the environment variable to "default" will cause
-the first entry in the target list to be returned, and
-"target_defaulted" will be set in the BFD.  This causes
-`bfd_check_format' to loop over all the targets to find the one that
-matches the file being read.
-
-2.13.1.3 `bfd_target_list'
-..........................
-
-*Synopsis*
-     const char ** bfd_target_list (void);
-   *Description*
-Return a freshly malloced NULL-terminated vector of the names of all
-the valid BFD targets. Do not modify the names.
-
-2.13.1.4 `bfd_seach_for_target'
-...............................
-
-*Synopsis*
-     const bfd_target *bfd_search_for_target
-        (int (*search_func) (const bfd_target *, void *),
-         void *);
-   *Description*
-Return a pointer to the first transfer vector in the list of transfer
-vectors maintained by BFD that produces a non-zero result when passed
-to the function SEARCH_FUNC.  The parameter DATA is passed, unexamined,
-to the search function.
-
-
-File: bfd.info,  Node: Architectures,  Next: Opening and Closing,  Prev: Targets,  Up: BFD front end
-
-2.14 Architectures
-==================
-
-BFD keeps one atom in a BFD describing the architecture of the data
-attached to the BFD: a pointer to a `bfd_arch_info_type'.
-
-   Pointers to structures can be requested independently of a BFD so
-that an architecture's information can be interrogated without access
-to an open BFD.
-
-   The architecture information is provided by each architecture
-package.  The set of default architectures is selected by the macro
-`SELECT_ARCHITECTURES'.  This is normally set up in the
-`config/TARGET.mt' file of your choice.  If the name is not defined,
-then all the architectures supported are included.
-
-   When BFD starts up, all the architectures are called with an
-initialize method.  It is up to the architecture back end to insert as
-many items into the list of architectures as it wants to; generally
-this would be one for each machine and one for the default case (an
-item with a machine field of 0).
-
-   BFD's idea of an architecture is implemented in `archures.c'.
-
-2.14.1 bfd_architecture
------------------------
-
-*Description*
-This enum gives the object file's CPU architecture, in a global
-sense--i.e., what processor family does it belong to?  Another field
-indicates which processor within the family is in use.  The machine
-gives a number which distinguishes different versions of the
-architecture, containing, for example, 2 and 3 for Intel i960 KA and
-i960 KB, and 68020 and 68030 for Motorola 68020 and 68030.
-     enum bfd_architecture
-     {
-       bfd_arch_unknown,   /* File arch not known.  */
-       bfd_arch_obscure,   /* Arch known, not one of these.  */
-       bfd_arch_m68k,      /* Motorola 68xxx */
-     #define bfd_mach_m68000 1
-     #define bfd_mach_m68008 2
-     #define bfd_mach_m68010 3
-     #define bfd_mach_m68020 4
-     #define bfd_mach_m68030 5
-     #define bfd_mach_m68040 6
-     #define bfd_mach_m68060 7
-     #define bfd_mach_cpu32  8
-     #define bfd_mach_mcf5200  9
-     #define bfd_mach_mcf5206e 10
-     #define bfd_mach_mcf5307  11
-     #define bfd_mach_mcf5407  12
-     #define bfd_mach_mcf528x  13
-     #define bfd_mach_mcfv4e   14
-     #define bfd_mach_mcf521x   15
-     #define bfd_mach_mcf5249   16
-     #define bfd_mach_mcf547x   17
-     #define bfd_mach_mcf548x   18
-       bfd_arch_vax,       /* DEC Vax */
-       bfd_arch_i960,      /* Intel 960 */
-         /* The order of the following is important.
-            lower number indicates a machine type that
-            only accepts a subset of the instructions
-            available to machines with higher numbers.
-            The exception is the "ca", which is
-            incompatible with all other machines except
-            "core".  */
-
-     #define bfd_mach_i960_core      1
-     #define bfd_mach_i960_ka_sa     2
-     #define bfd_mach_i960_kb_sb     3
-     #define bfd_mach_i960_mc        4
-     #define bfd_mach_i960_xa        5
-     #define bfd_mach_i960_ca        6
-     #define bfd_mach_i960_jx        7
-     #define bfd_mach_i960_hx        8
-
-       bfd_arch_or32,      /* OpenRISC 32 */
-
-       bfd_arch_a29k,      /* AMD 29000 */
-       bfd_arch_sparc,     /* SPARC */
-     #define bfd_mach_sparc                 1
-     /* The difference between v8plus and v9 is that v9 is a true 64 bit env.  */
-     #define bfd_mach_sparc_sparclet        2
-     #define bfd_mach_sparc_sparclite       3
-     #define bfd_mach_sparc_v8plus          4
-     #define bfd_mach_sparc_v8plusa         5 /* with ultrasparc add'ns.  */
-     #define bfd_mach_sparc_sparclite_le    6
-     #define bfd_mach_sparc_v9              7
-     #define bfd_mach_sparc_v9a             8 /* with ultrasparc add'ns.  */
-     #define bfd_mach_sparc_v8plusb         9 /* with cheetah add'ns.  */
-     #define bfd_mach_sparc_v9b             10 /* with cheetah add'ns.  */
-     /* Nonzero if MACH has the v9 instruction set.  */
-     #define bfd_mach_sparc_v9_p(mach) \
-       ((mach) >= bfd_mach_sparc_v8plus && (mach) <= bfd_mach_sparc_v9b \
-        && (mach) != bfd_mach_sparc_sparclite_le)
-     /* Nonzero if MACH is a 64 bit sparc architecture.  */
-     #define bfd_mach_sparc_64bit_p(mach) \
-       ((mach) >= bfd_mach_sparc_v9 && (mach) != bfd_mach_sparc_v8plusb)
-       bfd_arch_mips,      /* MIPS Rxxxx */
-     #define bfd_mach_mips3000              3000
-     #define bfd_mach_mips3900              3900
-     #define bfd_mach_mips4000              4000
-     #define bfd_mach_mips4010              4010
-     #define bfd_mach_mips4100              4100
-     #define bfd_mach_mips4111              4111
-     #define bfd_mach_mips4120              4120
-     #define bfd_mach_mips4300              4300
-     #define bfd_mach_mips4400              4400
-     #define bfd_mach_mips4600              4600
-     #define bfd_mach_mips4650              4650
-     #define bfd_mach_mips5000              5000
-     #define bfd_mach_mips5400              5400
-     #define bfd_mach_mips5500              5500
-     #define bfd_mach_mips6000              6000
-     #define bfd_mach_mips7000              7000
-     #define bfd_mach_mips8000              8000
-     #define bfd_mach_mips9000              9000
-     #define bfd_mach_mips10000             10000
-     #define bfd_mach_mips12000             12000
-     #define bfd_mach_mips16                16
-     #define bfd_mach_mips5                 5
-     #define bfd_mach_mips_sb1              12310201 /* octal 'SB', 01 */
-     #define bfd_mach_mipsisa32             32
-     #define bfd_mach_mipsisa32r2           33
-     #define bfd_mach_mipsisa64             64
-     #define bfd_mach_mipsisa64r2           65
-       bfd_arch_i386,      /* Intel 386 */
-     #define bfd_mach_i386_i386 1
-     #define bfd_mach_i386_i8086 2
-     #define bfd_mach_i386_i386_intel_syntax 3
-     #define bfd_mach_x86_64 64
-     #define bfd_mach_x86_64_intel_syntax 65
-       bfd_arch_we32k,     /* AT&T WE32xxx */
-       bfd_arch_tahoe,     /* CCI/Harris Tahoe */
-       bfd_arch_i860,      /* Intel 860 */
-       bfd_arch_i370,      /* IBM 360/370 Mainframes */
-       bfd_arch_romp,      /* IBM ROMP PC/RT */
-       bfd_arch_alliant,   /* Alliant */
-       bfd_arch_convex,    /* Convex */
-       bfd_arch_m88k,      /* Motorola 88xxx */
-       bfd_arch_m98k,      /* Motorola 98xxx */
-       bfd_arch_pyramid,   /* Pyramid Technology */
-       bfd_arch_h8300,     /* Renesas H8/300 (formerly Hitachi H8/300) */
-     #define bfd_mach_h8300    1
-     #define bfd_mach_h8300h   2
-     #define bfd_mach_h8300s   3
-     #define bfd_mach_h8300hn  4
-     #define bfd_mach_h8300sn  5
-     #define bfd_mach_h8300sx  6
-     #define bfd_mach_h8300sxn 7
-       bfd_arch_pdp11,     /* DEC PDP-11 */
-       bfd_arch_powerpc,   /* PowerPC */
-     #define bfd_mach_ppc           32
-     #define bfd_mach_ppc64         64
-     #define bfd_mach_ppc_403       403
-     #define bfd_mach_ppc_403gc     4030
-     #define bfd_mach_ppc_505       505
-     #define bfd_mach_ppc_601       601
-     #define bfd_mach_ppc_602       602
-     #define bfd_mach_ppc_603       603
-     #define bfd_mach_ppc_ec603e    6031
-     #define bfd_mach_ppc_604       604
-     #define bfd_mach_ppc_620       620
-     #define bfd_mach_ppc_630       630
-     #define bfd_mach_ppc_750       750
-     #define bfd_mach_ppc_860       860
-     #define bfd_mach_ppc_a35       35
-     #define bfd_mach_ppc_rs64ii    642
-     #define bfd_mach_ppc_rs64iii   643
-     #define bfd_mach_ppc_7400      7400
-     #define bfd_mach_ppc_e500      500
-       bfd_arch_rs6000,    /* IBM RS/6000 */
-     #define bfd_mach_rs6k          6000
-     #define bfd_mach_rs6k_rs1      6001
-     #define bfd_mach_rs6k_rsc      6003
-     #define bfd_mach_rs6k_rs2      6002
-       bfd_arch_hppa,      /* HP PA RISC */
-     #define bfd_mach_hppa10        10
-     #define bfd_mach_hppa11        11
-     #define bfd_mach_hppa20        20
-     #define bfd_mach_hppa20w       25
-       bfd_arch_d10v,      /* Mitsubishi D10V */
-     #define bfd_mach_d10v          1
-     #define bfd_mach_d10v_ts2      2
-     #define bfd_mach_d10v_ts3      3
-       bfd_arch_d30v,      /* Mitsubishi D30V */
-       bfd_arch_dlx,       /* DLX */
-       bfd_arch_m68hc11,   /* Motorola 68HC11 */
-       bfd_arch_m68hc12,   /* Motorola 68HC12 */
-     #define bfd_mach_m6812_default 0
-     #define bfd_mach_m6812         1
-     #define bfd_mach_m6812s        2
-       bfd_arch_z8k,       /* Zilog Z8000 */
-     #define bfd_mach_z8001         1
-     #define bfd_mach_z8002         2
-       bfd_arch_h8500,     /* Renesas H8/500 (formerly Hitachi H8/500) */
-       bfd_arch_sh,        /* Renesas / SuperH SH (formerly Hitachi SH) */
-     #define bfd_mach_sh            1
-     #define bfd_mach_sh2        0x20
-     #define bfd_mach_sh_dsp     0x2d
-     #define bfd_mach_sh2a       0x2a
-     #define bfd_mach_sh2a_nofpu 0x2b
-     #define bfd_mach_sh2a_nofpu_or_sh4_nommu_nofpu 0x2a1
-     #define bfd_mach_sh2a_nofpu_or_sh3_nommu 0x2a2
-     #define bfd_mach_sh2a_or_sh4  0x2a3
-     #define bfd_mach_sh2a_or_sh3e 0x2a4
-     #define bfd_mach_sh2e       0x2e
-     #define bfd_mach_sh3        0x30
-     #define bfd_mach_sh3_nommu  0x31
-     #define bfd_mach_sh3_dsp    0x3d
-     #define bfd_mach_sh3e       0x3e
-     #define bfd_mach_sh4        0x40
-     #define bfd_mach_sh4_nofpu  0x41
-     #define bfd_mach_sh4_nommu_nofpu  0x42
-     #define bfd_mach_sh4a       0x4a
-     #define bfd_mach_sh4a_nofpu 0x4b
-     #define bfd_mach_sh4al_dsp  0x4d
-     #define bfd_mach_sh5        0x50
-       bfd_arch_alpha,     /* Dec Alpha */
-     #define bfd_mach_alpha_ev4  0x10
-     #define bfd_mach_alpha_ev5  0x20
-     #define bfd_mach_alpha_ev6  0x30
-       bfd_arch_arm,       /* Advanced Risc Machines ARM.  */
-     #define bfd_mach_arm_unknown   0
-     #define bfd_mach_arm_2         1
-     #define bfd_mach_arm_2a        2
-     #define bfd_mach_arm_3         3
-     #define bfd_mach_arm_3M        4
-     #define bfd_mach_arm_4         5
-     #define bfd_mach_arm_4T        6
-     #define bfd_mach_arm_5         7
-     #define bfd_mach_arm_5T        8
-     #define bfd_mach_arm_5TE       9
-     #define bfd_mach_arm_XScale    10
-     #define bfd_mach_arm_ep9312    11
-     #define bfd_mach_arm_iWMMXt    12
-       bfd_arch_ns32k,     /* National Semiconductors ns32000 */
-       bfd_arch_w65,       /* WDC 65816 */
-       bfd_arch_tic30,     /* Texas Instruments TMS320C30 */
-       bfd_arch_tic4x,     /* Texas Instruments TMS320C3X/4X */
-     #define bfd_mach_tic3x         30
-     #define bfd_mach_tic4x         40
-       bfd_arch_tic54x,    /* Texas Instruments TMS320C54X */
-       bfd_arch_tic80,     /* TI TMS320c80 (MVP) */
-       bfd_arch_v850,      /* NEC V850 */
-     #define bfd_mach_v850          1
-     #define bfd_mach_v850e         'E'
-     #define bfd_mach_v850e1        '1'
-       bfd_arch_arc,       /* ARC Cores */
-     #define bfd_mach_arc_5         5
-     #define bfd_mach_arc_6         6
-     #define bfd_mach_arc_7         7
-     #define bfd_mach_arc_8         8
-       bfd_arch_m32r,      /* Renesas M32R (formerly Mitsubishi M32R/D) */
-     #define bfd_mach_m32r          1 /* For backwards compatibility.  */
-     #define bfd_mach_m32rx         'x'
-     #define bfd_mach_m32r2         '2'
-       bfd_arch_mn10200,   /* Matsushita MN10200 */
-       bfd_arch_mn10300,   /* Matsushita MN10300 */
-     #define bfd_mach_mn10300               300
-     #define bfd_mach_am33          330
-     #define bfd_mach_am33_2        332
-       bfd_arch_fr30,
-     #define bfd_mach_fr30          0x46523330
-       bfd_arch_frv,
-     #define bfd_mach_frv           1
-     #define bfd_mach_frvsimple     2
-     #define bfd_mach_fr300         300
-     #define bfd_mach_fr400         400
-     #define bfd_mach_fr450         450
-     #define bfd_mach_frvtomcat     499     /* fr500 prototype */
-     #define bfd_mach_fr500         500
-     #define bfd_mach_fr550         550
-       bfd_arch_mcore,
-       bfd_arch_ia64,      /* HP/Intel ia64 */
-     #define bfd_mach_ia64_elf64    64
-     #define bfd_mach_ia64_elf32    32
-       bfd_arch_ip2k,      /* Ubicom IP2K microcontrollers. */
-     #define bfd_mach_ip2022        1
-     #define bfd_mach_ip2022ext     2
-      bfd_arch_iq2000,     /* Vitesse IQ2000.  */
-     #define bfd_mach_iq2000        1
-     #define bfd_mach_iq10          2
-       bfd_arch_pj,
-       bfd_arch_avr,       /* Atmel AVR microcontrollers.  */
-     #define bfd_mach_avr1          1
-     #define bfd_mach_avr2          2
-     #define bfd_mach_avr3          3
-     #define bfd_mach_avr4          4
-     #define bfd_mach_avr5          5
-       bfd_arch_cr16c,       /* National Semiconductor CompactRISC. */
-     #define bfd_mach_cr16c         1
-       bfd_arch_crx,       /*  National Semiconductor CRX.  */
-     #define bfd_mach_crx           1
-       bfd_arch_cris,      /* Axis CRIS */
-     #define bfd_mach_cris_v0_v10   255
-     #define bfd_mach_cris_v32      32
-     #define bfd_mach_cris_v10_v32  1032
-       bfd_arch_s390,      /* IBM s390 */
-     #define bfd_mach_s390_31       31
-     #define bfd_mach_s390_64       64
-       bfd_arch_openrisc,  /* OpenRISC */
-       bfd_arch_mmix,      /* Donald Knuth's educational processor.  */
-       bfd_arch_xstormy16,
-     #define bfd_mach_xstormy16     1
-       bfd_arch_msp430,    /* Texas Instruments MSP430 architecture.  */
-     #define bfd_mach_msp11          11
-     #define bfd_mach_msp110         110
-     #define bfd_mach_msp12          12
-     #define bfd_mach_msp13          13
-     #define bfd_mach_msp14          14
-     #define bfd_mach_msp15          15
-     #define bfd_mach_msp16          16
-     #define bfd_mach_msp31          31
-     #define bfd_mach_msp32          32
-     #define bfd_mach_msp33          33
-     #define bfd_mach_msp41          41
-     #define bfd_mach_msp42          42
-     #define bfd_mach_msp43          43
-     #define bfd_mach_msp44          44
-       bfd_arch_xtensa,    /* Tensilica's Xtensa cores.  */
-     #define bfd_mach_xtensa        1
-        bfd_arch_maxq,     /* Dallas MAXQ 10/20 */
-     #define bfd_mach_maxq10    10
-     #define bfd_mach_maxq20    20
-       bfd_arch_last
-       };
-
-2.14.2 bfd_arch_info
---------------------
-
-*Description*
-This structure contains information on architectures for use within BFD.
-
-     typedef struct bfd_arch_info
-     {
-       int bits_per_word;
-       int bits_per_address;
-       int bits_per_byte;
-       enum bfd_architecture arch;
-       unsigned long mach;
-       const char *arch_name;
-       const char *printable_name;
-       unsigned int section_align_power;
-       /* TRUE if this is the default machine for the architecture.
-          The default arch should be the first entry for an arch so that
-          all the entries for that arch can be accessed via `next'.  */
-       bfd_boolean the_default;
-       const struct bfd_arch_info * (*compatible)
-         (const struct bfd_arch_info *a, const struct bfd_arch_info *b);
-
-       bfd_boolean (*scan) (const struct bfd_arch_info *, const char *);
-
-       const struct bfd_arch_info *next;
-     }
-     bfd_arch_info_type;
-
-2.14.2.1 `bfd_printable_name'
-.............................
-
-*Synopsis*
-     const char *bfd_printable_name (bfd *abfd);
-   *Description*
-Return a printable string representing the architecture and machine
-from the pointer to the architecture info structure.
-
-2.14.2.2 `bfd_scan_arch'
-........................
-
-*Synopsis*
-     const bfd_arch_info_type *bfd_scan_arch (const char *string);
-   *Description*
-Figure out if BFD supports any cpu which could be described with the
-name STRING.  Return a pointer to an `arch_info' structure if a machine
-is found, otherwise NULL.
-
-2.14.2.3 `bfd_arch_list'
-........................
-
-*Synopsis*
-     const char **bfd_arch_list (void);
-   *Description*
-Return a freshly malloced NULL-terminated vector of the names of all
-the valid BFD architectures.  Do not modify the names.
-
-2.14.2.4 `bfd_arch_get_compatible'
-..................................
-
-*Synopsis*
-     const bfd_arch_info_type *bfd_arch_get_compatible
-        (const bfd *abfd, const bfd *bbfd, bfd_boolean accept_unknowns);
-   *Description*
-Determine whether two BFDs' architectures and machine types are
-compatible.  Calculates the lowest common denominator between the two
-architectures and machine types implied by the BFDs and returns a
-pointer to an `arch_info' structure describing the compatible machine.
-
-2.14.2.5 `bfd_default_arch_struct'
-..................................
-
-*Description*
-The `bfd_default_arch_struct' is an item of `bfd_arch_info_type' which
-has been initialized to a fairly generic state.  A BFD starts life by
-pointing to this structure, until the correct back end has determined
-the real architecture of the file.
-     extern const bfd_arch_info_type bfd_default_arch_struct;
-
-2.14.2.6 `bfd_set_arch_info'
-............................
-
-*Synopsis*
-     void bfd_set_arch_info (bfd *abfd, const bfd_arch_info_type *arg);
-   *Description*
-Set the architecture info of ABFD to ARG.
-
-2.14.2.7 `bfd_default_set_arch_mach'
-....................................
-
-*Synopsis*
-     bfd_boolean bfd_default_set_arch_mach
-        (bfd *abfd, enum bfd_architecture arch, unsigned long mach);
-   *Description*
-Set the architecture and machine type in BFD ABFD to ARCH and MACH.
-Find the correct pointer to a structure and insert it into the
-`arch_info' pointer.
-
-2.14.2.8 `bfd_get_arch'
-.......................
-
-*Synopsis*
-     enum bfd_architecture bfd_get_arch (bfd *abfd);
-   *Description*
-Return the enumerated type which describes the BFD ABFD's architecture.
-
-2.14.2.9 `bfd_get_mach'
-.......................
-
-*Synopsis*
-     unsigned long bfd_get_mach (bfd *abfd);
-   *Description*
-Return the long type which describes the BFD ABFD's machine.
-
-2.14.2.10 `bfd_arch_bits_per_byte'
-..................................
-
-*Synopsis*
-     unsigned int bfd_arch_bits_per_byte (bfd *abfd);
-   *Description*
-Return the number of bits in one of the BFD ABFD's architecture's bytes.
-
-2.14.2.11 `bfd_arch_bits_per_address'
-.....................................
-
-*Synopsis*
-     unsigned int bfd_arch_bits_per_address (bfd *abfd);
-   *Description*
-Return the number of bits in one of the BFD ABFD's architecture's
-addresses.
-
-2.14.2.12 `bfd_default_compatible'
-..................................
-
-*Synopsis*
-     const bfd_arch_info_type *bfd_default_compatible
-        (const bfd_arch_info_type *a, const bfd_arch_info_type *b);
-   *Description*
-The default function for testing for compatibility.
-
-2.14.2.13 `bfd_default_scan'
-............................
-
-*Synopsis*
-     bfd_boolean bfd_default_scan
-        (const struct bfd_arch_info *info, const char *string);
-   *Description*
-The default function for working out whether this is an architecture
-hit and a machine hit.
-
-2.14.2.14 `bfd_get_arch_info'
-.............................
-
-*Synopsis*
-     const bfd_arch_info_type *bfd_get_arch_info (bfd *abfd);
-   *Description*
-Return the architecture info struct in ABFD.
-
-2.14.2.15 `bfd_lookup_arch'
-...........................
-
-*Synopsis*
-     const bfd_arch_info_type *bfd_lookup_arch
-        (enum bfd_architecture arch, unsigned long machine);
-   *Description*
-Look for the architecture info structure which matches the arguments
-ARCH and MACHINE. A machine of 0 matches the machine/architecture
-structure which marks itself as the default.
-
-2.14.2.16 `bfd_printable_arch_mach'
-...................................
-
-*Synopsis*
-     const char *bfd_printable_arch_mach
-        (enum bfd_architecture arch, unsigned long machine);
-   *Description*
-Return a printable string representing the architecture and machine
-type.
-
-   This routine is depreciated.
-
-2.14.2.17 `bfd_octets_per_byte'
-...............................
-
-*Synopsis*
-     unsigned int bfd_octets_per_byte (bfd *abfd);
-   *Description*
-Return the number of octets (8-bit quantities) per target byte (minimum
-addressable unit).  In most cases, this will be one, but some DSP
-targets have 16, 32, or even 48 bits per byte.
-
-2.14.2.18 `bfd_arch_mach_octets_per_byte'
-.........................................
-
-*Synopsis*
-     unsigned int bfd_arch_mach_octets_per_byte
-        (enum bfd_architecture arch, unsigned long machine);
-   *Description*
-See bfd_octets_per_byte.
-
-   This routine is provided for those cases where a bfd * is not
-available
-
-
-File: bfd.info,  Node: Opening and Closing,  Next: Internal,  Prev: Architectures,  Up: BFD front end
-
-2.15 Opening and closing BFDs
-=============================
-
-2.15.0.1 `bfd_openr'
-....................
-
-*Synopsis*
-     bfd *bfd_openr (const char *filename, const char *target);
-   *Description*
-Open the file FILENAME (using `fopen') with the target TARGET.  Return
-a pointer to the created BFD.
-
-   Calls `bfd_find_target', so TARGET is interpreted as by that
-function.
-
-   If `NULL' is returned then an error has occured.   Possible errors
-are `bfd_error_no_memory', `bfd_error_invalid_target' or `system_call'
-error.
-
-2.15.0.2 `bfd_fdopenr'
-......................
-
-*Synopsis*
-     bfd *bfd_fdopenr (const char *filename, const char *target, int fd);
-   *Description*
-`bfd_fdopenr' is to `bfd_fopenr' much like `fdopen' is to `fopen'.  It
-opens a BFD on a file already described by the FD supplied.
-
-   When the file is later `bfd_close'd, the file descriptor will be
-closed.  If the caller desires that this file descriptor be cached by
-BFD (opened as needed, closed as needed to free descriptors for other
-opens), with the supplied FD used as an initial file descriptor (but
-subject to closure at any time), call bfd_set_cacheable(bfd, 1) on the
-returned BFD.  The default is to assume no caching; the file descriptor
-will remain open until `bfd_close', and will not be affected by BFD
-operations on other files.
-
-   Possible errors are `bfd_error_no_memory',
-`bfd_error_invalid_target' and `bfd_error_system_call'.
-
-2.15.0.3 `bfd_openstreamr'
-..........................
-
-*Synopsis*
-     bfd *bfd_openstreamr (const char *, const char *, void *);
-   *Description*
-Open a BFD for read access on an existing stdio stream.  When the BFD
-is passed to `bfd_close', the stream will be closed.
-
-2.15.0.4 `bfd_openr_iovec'
-..........................
-
-*Synopsis*
-     bfd *bfd_openr_iovec (const char *filename, const char *target,
-         void *(*open) (struct bfd *nbfd,
-         void *open_closure),
-         void *open_closure,
-         file_ptr (*pread) (struct bfd *nbfd,
-         void *stream,
-         void *buf,
-         file_ptr nbytes,
-         file_ptr offset),
-         int (*close) (struct bfd *nbfd,
-         void *stream));
-   *Description*
-Create and return a BFD backed by a read-only STREAM.  The STREAM is
-created using OPEN, accessed using PREAD and destroyed using CLOSE.
-
-   Calls `bfd_find_target', so TARGET is interpreted as by that
-function.
-
-   Calls OPEN (which can call `bfd_zalloc' and `bfd_get_filename') to
-obtain the read-only stream backing the BFD.  OPEN either succeeds
-returning the non-`NULL' STREAM, or fails returning `NULL' (setting
-`bfd_error').
-
-   Calls PREAD to request NBYTES of data from STREAM starting at OFFSET
-(e.g., via a call to `bfd_read').  PREAD either succeeds returning the
-number of bytes read (which can be less than NBYTES when end-of-file),
-or fails returning -1 (setting `bfd_error').
-
-   Calls CLOSE when the BFD is later closed using `bfd_close'.  CLOSE
-either succeeds returning 0, or fails returning -1 (setting
-`bfd_error').
-
-   If `bfd_openr_iovec' returns `NULL' then an error has occurred.
-Possible errors are `bfd_error_no_memory', `bfd_error_invalid_target'
-and `bfd_error_system_call'.
-
-2.15.0.5 `bfd_openw'
-....................
-
-*Synopsis*
-     bfd *bfd_openw (const char *filename, const char *target);
-   *Description*
-Create a BFD, associated with file FILENAME, using the file format
-TARGET, and return a pointer to it.
-
-   Possible errors are `bfd_error_system_call', `bfd_error_no_memory',
-`bfd_error_invalid_target'.
-
-2.15.0.6 `bfd_close'
-....................
-
-*Synopsis*
-     bfd_boolean bfd_close (bfd *abfd);
-   *Description*
-Close a BFD. If the BFD was open for writing, then pending operations
-are completed and the file written out and closed.  If the created file
-is executable, then `chmod' is called to mark it as such.
-
-   All memory attached to the BFD is released.
-
-   The file descriptor associated with the BFD is closed (even if it
-was passed in to BFD by `bfd_fdopenr').
-
-   *Returns*
-`TRUE' is returned if all is ok, otherwise `FALSE'.
-
-2.15.0.7 `bfd_close_all_done'
-.............................
-
-*Synopsis*
-     bfd_boolean bfd_close_all_done (bfd *);
-   *Description*
-Close a BFD.  Differs from `bfd_close' since it does not complete any
-pending operations.  This routine would be used if the application had
-just used BFD for swapping and didn't want to use any of the writing
-code.
-
-   If the created file is executable, then `chmod' is called to mark it
-as such.
-
-   All memory attached to the BFD is released.
-
-   *Returns*
-`TRUE' is returned if all is ok, otherwise `FALSE'.
-
-2.15.0.8 `bfd_create'
-.....................
-
-*Synopsis*
-     bfd *bfd_create (const char *filename, bfd *templ);
-   *Description*
-Create a new BFD in the manner of `bfd_openw', but without opening a
-file. The new BFD takes the target from the target used by TEMPLATE.
-The format is always set to `bfd_object'.
-
-2.15.0.9 `bfd_make_writable'
-............................
-
-*Synopsis*
-     bfd_boolean bfd_make_writable (bfd *abfd);
-   *Description*
-Takes a BFD as created by `bfd_create' and converts it into one like as
-returned by `bfd_openw'.  It does this by converting the BFD to
-BFD_IN_MEMORY.  It's assumed that you will call `bfd_make_readable' on
-this bfd later.
-
-   *Returns*
-`TRUE' is returned if all is ok, otherwise `FALSE'.
-
-2.15.0.10 `bfd_make_readable'
-.............................
-
-*Synopsis*
-     bfd_boolean bfd_make_readable (bfd *abfd);
-   *Description*
-Takes a BFD as created by `bfd_create' and `bfd_make_writable' and
-converts it into one like as returned by `bfd_openr'.  It does this by
-writing the contents out to the memory buffer, then reversing the
-direction.
-
-   *Returns*
-`TRUE' is returned if all is ok, otherwise `FALSE'.
-
-2.15.0.11 `bfd_alloc'
-.....................
-
-*Synopsis*
-     void *bfd_alloc (bfd *abfd, bfd_size_type wanted);
-   *Description*
-Allocate a block of WANTED bytes of memory attached to `abfd' and
-return a pointer to it.
-
-2.15.0.12 `bfd_zalloc'
-......................
-
-*Synopsis*
-     void *bfd_zalloc (bfd *abfd, bfd_size_type wanted);
-   *Description*
-Allocate a block of WANTED bytes of zeroed memory attached to `abfd'
-and return a pointer to it.
-
-2.15.0.13 `bfd_calc_gnu_debuglink_crc32'
-........................................
-
-*Synopsis*
-     unsigned long bfd_calc_gnu_debuglink_crc32
-        (unsigned long crc, const unsigned char *buf, bfd_size_type len);
-   *Description*
-Computes a CRC value as used in the .gnu_debuglink section.  Advances
-the previously computed CRC value by computing and adding in the crc32
-for LEN bytes of BUF.
-
-   *Returns*
-Return the updated CRC32 value.
-
-2.15.0.14 `get_debug_link_info'
-...............................
-
-*Synopsis*
-     char *get_debug_link_info (bfd *abfd, unsigned long *crc32_out);
-   *Description*
-fetch the filename and CRC32 value for any separate debuginfo
-associated with ABFD. Return NULL if no such info found, otherwise
-return filename and update CRC32_OUT.
-
-2.15.0.15 `separate_debug_file_exists'
-......................................
-
-*Synopsis*
-     bfd_boolean separate_debug_file_exists
-        (char *name, unsigned long crc32);
-   *Description*
-Checks to see if NAME is a file and if its contents match CRC32.
-
-2.15.0.16 `find_separate_debug_file'
-....................................
-
-*Synopsis*
-     char *find_separate_debug_file (bfd *abfd);
-   *Description*
-Searches ABFD for a reference to separate debugging information, scans
-various locations in the filesystem, including the file tree rooted at
-DEBUG_FILE_DIRECTORY, and returns a filename of such debugging
-information if the file is found and has matching CRC32.  Returns NULL
-if no reference to debugging file exists, or file cannot be found.
-
-2.15.0.17 `bfd_follow_gnu_debuglink'
-....................................
-
-*Synopsis*
-     char *bfd_follow_gnu_debuglink (bfd *abfd, const char *dir);
-   *Description*
-Takes a BFD and searches it for a .gnu_debuglink section.  If this
-section is found, it examines the section for the name and checksum of
-a '.debug' file containing auxiliary debugging information.  It then
-searches the filesystem for this .debug file in some standard
-locations, including the directory tree rooted at DIR, and if found
-returns the full filename.
-
-   If DIR is NULL, it will search a default path configured into libbfd
-at build time.  [XXX this feature is not currently implemented].
-
-   *Returns*
-`NULL' on any errors or failure to locate the .debug file, otherwise a
-pointer to a heap-allocated string containing the filename.  The caller
-is responsible for freeing this string.
-
-2.15.0.18 `bfd_create_gnu_debuglink_section'
-............................................
-
-*Synopsis*
-     struct bfd_section *bfd_create_gnu_debuglink_section
-        (bfd *abfd, const char *filename);
-   *Description*
-Takes a BFD and adds a .gnu_debuglink section to it.  The section is
-sized to be big enough to contain a link to the specified FILENAME.
-
-   *Returns*
-A pointer to the new section is returned if all is ok.  Otherwise
-`NULL' is returned and bfd_error is set.
-
-2.15.0.19 `bfd_fill_in_gnu_debuglink_section'
-.............................................
-
-*Synopsis*
-     bfd_boolean bfd_fill_in_gnu_debuglink_section
-        (bfd *abfd, struct bfd_section *sect, const char *filename);
-   *Description*
-Takes a BFD and containing a .gnu_debuglink section SECT and fills in
-the contents of the section to contain a link to the specified
-FILENAME.  The filename should be relative to the current directory.
-
-   *Returns*
-`TRUE' is returned if all is ok.  Otherwise `FALSE' is returned and
-bfd_error is set.
-
-
-File: bfd.info,  Node: Internal,  Next: File Caching,  Prev: Opening and Closing,  Up: BFD front end
-
-2.16 Internal functions
-=======================
-
-*Description*
-These routines are used within BFD.  They are not intended for export,
-but are documented here for completeness.
-
-2.16.0.1 `bfd_write_bigendian_4byte_int'
-........................................
-
-*Synopsis*
-     bfd_boolean bfd_write_bigendian_4byte_int (bfd *, unsigned int);
-   *Description*
-Write a 4 byte integer I to the output BFD ABFD, in big endian order
-regardless of what else is going on.  This is useful in archives.
-
-2.16.0.2 `bfd_put_size'
-.......................
-
-2.16.0.3 `bfd_get_size'
-.......................
-
-*Description*
-These macros as used for reading and writing raw data in sections; each
-access (except for bytes) is vectored through the target format of the
-BFD and mangled accordingly. The mangling performs any necessary endian
-translations and removes alignment restrictions.  Note that types
-accepted and returned by these macros are identical so they can be
-swapped around in macros--for example, `libaout.h' defines `GET_WORD'
-to either `bfd_get_32' or `bfd_get_64'.
-
-   In the put routines, VAL must be a `bfd_vma'.  If we are on a system
-without prototypes, the caller is responsible for making sure that is
-true, with a cast if necessary.  We don't cast them in the macro
-definitions because that would prevent `lint' or `gcc -Wall' from
-detecting sins such as passing a pointer.  To detect calling these with
-less than a `bfd_vma', use `gcc -Wconversion' on a host with 64 bit
-`bfd_vma''s.
-
-     /* Byte swapping macros for user section data.  */
-
-     #define bfd_put_8(abfd, val, ptr) \
-       ((void) (*((unsigned char *) (ptr)) = (val) & 0xff))
-     #define bfd_put_signed_8 \
-       bfd_put_8
-     #define bfd_get_8(abfd, ptr) \
-       (*(unsigned char *) (ptr) & 0xff)
-     #define bfd_get_signed_8(abfd, ptr) \
-       (((*(unsigned char *) (ptr) & 0xff) ^ 0x80) - 0x80)
-
-     #define bfd_put_16(abfd, val, ptr) \
-       BFD_SEND (abfd, bfd_putx16, ((val),(ptr)))
-     #define bfd_put_signed_16 \
-       bfd_put_16
-     #define bfd_get_16(abfd, ptr) \
-       BFD_SEND (abfd, bfd_getx16, (ptr))
-     #define bfd_get_signed_16(abfd, ptr) \
-       BFD_SEND (abfd, bfd_getx_signed_16, (ptr))
-
-     #define bfd_put_32(abfd, val, ptr) \
-       BFD_SEND (abfd, bfd_putx32, ((val),(ptr)))
-     #define bfd_put_signed_32 \
-       bfd_put_32
-     #define bfd_get_32(abfd, ptr) \
-       BFD_SEND (abfd, bfd_getx32, (ptr))
-     #define bfd_get_signed_32(abfd, ptr) \
-       BFD_SEND (abfd, bfd_getx_signed_32, (ptr))
-
-     #define bfd_put_64(abfd, val, ptr) \
-       BFD_SEND (abfd, bfd_putx64, ((val), (ptr)))
-     #define bfd_put_signed_64 \
-       bfd_put_64
-     #define bfd_get_64(abfd, ptr) \
-       BFD_SEND (abfd, bfd_getx64, (ptr))
-     #define bfd_get_signed_64(abfd, ptr) \
-       BFD_SEND (abfd, bfd_getx_signed_64, (ptr))
-
-     #define bfd_get(bits, abfd, ptr)                       \
-       ((bits) == 8 ? (bfd_vma) bfd_get_8 (abfd, ptr)       \
-        : (bits) == 16 ? bfd_get_16 (abfd, ptr)             \
-        : (bits) == 32 ? bfd_get_32 (abfd, ptr)             \
-        : (bits) == 64 ? bfd_get_64 (abfd, ptr)             \
-        : (abort (), (bfd_vma) - 1))
-
-     #define bfd_put(bits, abfd, val, ptr)                  \
-       ((bits) == 8 ? bfd_put_8  (abfd, val, ptr)           \
-        : (bits) == 16 ? bfd_put_16 (abfd, val, ptr)                \
-        : (bits) == 32 ? bfd_put_32 (abfd, val, ptr)                \
-        : (bits) == 64 ? bfd_put_64 (abfd, val, ptr)                \
-        : (abort (), (void) 0))
-
-2.16.0.4 `bfd_h_put_size'
-.........................
-
-*Description*
-These macros have the same function as their `bfd_get_x' brethren,
-except that they are used for removing information for the header
-records of object files. Believe it or not, some object files keep
-their header records in big endian order and their data in little
-endian order.
-
-     /* Byte swapping macros for file header data.  */
-
-     #define bfd_h_put_8(abfd, val, ptr) \
-       bfd_put_8 (abfd, val, ptr)
-     #define bfd_h_put_signed_8(abfd, val, ptr) \
-       bfd_put_8 (abfd, val, ptr)
-     #define bfd_h_get_8(abfd, ptr) \
-       bfd_get_8 (abfd, ptr)
-     #define bfd_h_get_signed_8(abfd, ptr) \
-       bfd_get_signed_8 (abfd, ptr)
-
-     #define bfd_h_put_16(abfd, val, ptr) \
-       BFD_SEND (abfd, bfd_h_putx16, (val, ptr))
-     #define bfd_h_put_signed_16 \
-       bfd_h_put_16
-     #define bfd_h_get_16(abfd, ptr) \
-       BFD_SEND (abfd, bfd_h_getx16, (ptr))
-     #define bfd_h_get_signed_16(abfd, ptr) \
-       BFD_SEND (abfd, bfd_h_getx_signed_16, (ptr))
-
-     #define bfd_h_put_32(abfd, val, ptr) \
-       BFD_SEND (abfd, bfd_h_putx32, (val, ptr))
-     #define bfd_h_put_signed_32 \
-       bfd_h_put_32
-     #define bfd_h_get_32(abfd, ptr) \
-       BFD_SEND (abfd, bfd_h_getx32, (ptr))
-     #define bfd_h_get_signed_32(abfd, ptr) \
-       BFD_SEND (abfd, bfd_h_getx_signed_32, (ptr))
-
-     #define bfd_h_put_64(abfd, val, ptr) \
-       BFD_SEND (abfd, bfd_h_putx64, (val, ptr))
-     #define bfd_h_put_signed_64 \
-       bfd_h_put_64
-     #define bfd_h_get_64(abfd, ptr) \
-       BFD_SEND (abfd, bfd_h_getx64, (ptr))
-     #define bfd_h_get_signed_64(abfd, ptr) \
-       BFD_SEND (abfd, bfd_h_getx_signed_64, (ptr))
-
-     /* Aliases for the above, which should eventually go away.  */
-
-     #define H_PUT_64  bfd_h_put_64
-     #define H_PUT_32  bfd_h_put_32
-     #define H_PUT_16  bfd_h_put_16
-     #define H_PUT_8   bfd_h_put_8
-     #define H_PUT_S64 bfd_h_put_signed_64
-     #define H_PUT_S32 bfd_h_put_signed_32
-     #define H_PUT_S16 bfd_h_put_signed_16
-     #define H_PUT_S8  bfd_h_put_signed_8
-     #define H_GET_64  bfd_h_get_64
-     #define H_GET_32  bfd_h_get_32
-     #define H_GET_16  bfd_h_get_16
-     #define H_GET_8   bfd_h_get_8
-     #define H_GET_S64 bfd_h_get_signed_64
-     #define H_GET_S32 bfd_h_get_signed_32
-     #define H_GET_S16 bfd_h_get_signed_16
-     #define H_GET_S8  bfd_h_get_signed_8
-
-2.16.0.5 `bfd_log2'
-...................
-
-*Synopsis*
-     unsigned int bfd_log2 (bfd_vma x);
-   *Description*
-Return the log base 2 of the value supplied, rounded up.  E.g., an X of
-1025 returns 11.  A X of 0 returns 0.
-
-
-File: bfd.info,  Node: File Caching,  Next: Linker Functions,  Prev: Internal,  Up: BFD front end
-
-2.17 File caching
-=================
-
-The file caching mechanism is embedded within BFD and allows the
-application to open as many BFDs as it wants without regard to the
-underlying operating system's file descriptor limit (often as low as 20
-open files).  The module in `cache.c' maintains a least recently used
-list of `BFD_CACHE_MAX_OPEN' files, and exports the name
-`bfd_cache_lookup', which runs around and makes sure that the required
-BFD is open. If not, then it chooses a file to close, closes it and
-opens the one wanted, returning its file handle.
-
-2.17.0.1 `BFD_CACHE_MAX_OPEN macro'
-...................................
-
-*Description*
-The maximum number of files which the cache will keep open at one time.
-     #define BFD_CACHE_MAX_OPEN 10
-
-2.17.0.2 `bfd_last_cache'
-.........................
-
-*Synopsis*
-     extern bfd *bfd_last_cache;
-   *Description*
-Zero, or a pointer to the topmost BFD on the chain.  This is used by
-the `bfd_cache_lookup' macro in `libbfd.h' to determine when it can
-avoid a function call.
-
-2.17.0.3 `bfd_cache_lookup'
-...........................
-
-*Description*
-Check to see if the required BFD is the same as the last one looked up.
-If so, then it can use the stream in the BFD with impunity, since it
-can't have changed since the last lookup; otherwise, it has to perform
-the complicated lookup function.
-     #define bfd_cache_lookup(x) \
-         ((x) == bfd_last_cache ? \
-           (FILE *) (bfd_last_cache->iostream): \
-            bfd_cache_lookup_worker (x))
-
-2.17.0.4 `bfd_cache_init'
-.........................
-
-*Synopsis*
-     bfd_boolean bfd_cache_init (bfd *abfd);
-   *Description*
-Add a newly opened BFD to the cache.
-
-2.17.0.5 `bfd_cache_close'
-..........................
-
-*Synopsis*
-     bfd_boolean bfd_cache_close (bfd *abfd);
-   *Description*
-Remove the BFD ABFD from the cache. If the attached file is open, then
-close it too.
-
-   *Returns*
-`FALSE' is returned if closing the file fails, `TRUE' is returned if
-all is well.
-
-2.17.0.6 `bfd_cache_close_all'
-..............................
-
-*Synopsis*
-     bfd_boolean bfd_cache_close_all (void);
-   *Description*
-Remove all BFDs from the cache. If the attached file is open, then
-close it too.
-
-   *Returns*
-`FALSE' is returned if closing one of the file fails, `TRUE' is
-returned if all is well.
-
-2.17.0.7 `bfd_open_file'
-........................
-
-*Synopsis*
-     FILE* bfd_open_file (bfd *abfd);
-   *Description*
-Call the OS to open a file for ABFD.  Return the `FILE *' (possibly
-`NULL') that results from this operation.  Set up the BFD so that
-future accesses know the file is open. If the `FILE *' returned is
-`NULL', then it won't have been put in the cache, so it won't have to
-be removed from it.
-
-2.17.0.8 `bfd_cache_lookup_worker'
-..................................
-
-*Synopsis*
-     FILE *bfd_cache_lookup_worker (bfd *abfd);
-   *Description*
-Called when the macro `bfd_cache_lookup' fails to find a quick answer.
-Find a file descriptor for ABFD.  If necessary, it open it.  If there
-are already more than `BFD_CACHE_MAX_OPEN' files open, it tries to
-close one first, to avoid running out of file descriptors.  It will
-abort rather than returning NULL if it is unable to (re)open the ABFD.
-
-
-File: bfd.info,  Node: Linker Functions,  Next: Hash Tables,  Prev: File Caching,  Up: BFD front end
-
-2.18 Linker Functions
-=====================
-
-The linker uses three special entry points in the BFD target vector.
-It is not necessary to write special routines for these entry points
-when creating a new BFD back end, since generic versions are provided.
-However, writing them can speed up linking and make it use
-significantly less runtime memory.
-
-   The first routine creates a hash table used by the other routines.
-The second routine adds the symbols from an object file to the hash
-table.  The third routine takes all the object files and links them
-together to create the output file.  These routines are designed so
-that the linker proper does not need to know anything about the symbols
-in the object files that it is linking.  The linker merely arranges the
-sections as directed by the linker script and lets BFD handle the
-details of symbols and relocs.
-
-   The second routine and third routines are passed a pointer to a
-`struct bfd_link_info' structure (defined in `bfdlink.h') which holds
-information relevant to the link, including the linker hash table
-(which was created by the first routine) and a set of callback
-functions to the linker proper.
-
-   The generic linker routines are in `linker.c', and use the header
-file `genlink.h'.  As of this writing, the only back ends which have
-implemented versions of these routines are a.out (in `aoutx.h') and
-ECOFF (in `ecoff.c').  The a.out routines are used as examples
-throughout this section.
-
-* Menu:
-
-* Creating a Linker Hash Table::
-* Adding Symbols to the Hash Table::
-* Performing the Final Link::
-
-
-File: bfd.info,  Node: Creating a Linker Hash Table,  Next: Adding Symbols to the Hash Table,  Prev: Linker Functions,  Up: Linker Functions
-
-2.18.1 Creating a linker hash table
------------------------------------
-
-The linker routines must create a hash table, which must be derived
-from `struct bfd_link_hash_table' described in `bfdlink.c'.  *Note Hash
-Tables::, for information on how to create a derived hash table.  This
-entry point is called using the target vector of the linker output file.
-
-   The `_bfd_link_hash_table_create' entry point must allocate and
-initialize an instance of the desired hash table.  If the back end does
-not require any additional information to be stored with the entries in
-the hash table, the entry point may simply create a `struct
-bfd_link_hash_table'.  Most likely, however, some additional
-information will be needed.
-
-   For example, with each entry in the hash table the a.out linker
-keeps the index the symbol has in the final output file (this index
-number is used so that when doing a relocatable link the symbol index
-used in the output file can be quickly filled in when copying over a
-reloc).  The a.out linker code defines the required structures and
-functions for a hash table derived from `struct bfd_link_hash_table'.
-The a.out linker hash table is created by the function
-`NAME(aout,link_hash_table_create)'; it simply allocates space for the
-hash table, initializes it, and returns a pointer to it.
-
-   When writing the linker routines for a new back end, you will
-generally not know exactly which fields will be required until you have
-finished.  You should simply create a new hash table which defines no
-additional fields, and then simply add fields as they become necessary.
-
-
-File: bfd.info,  Node: Adding Symbols to the Hash Table,  Next: Performing the Final Link,  Prev: Creating a Linker Hash Table,  Up: Linker Functions
-
-2.18.2 Adding symbols to the hash table
----------------------------------------
-
-The linker proper will call the `_bfd_link_add_symbols' entry point for
-each object file or archive which is to be linked (typically these are
-the files named on the command line, but some may also come from the
-linker script).  The entry point is responsible for examining the file.
-For an object file, BFD must add any relevant symbol information to
-the hash table.  For an archive, BFD must determine which elements of
-the archive should be used and adding them to the link.
-
-   The a.out version of this entry point is
-`NAME(aout,link_add_symbols)'.
-
-* Menu:
-
-* Differing file formats::
-* Adding symbols from an object file::
-* Adding symbols from an archive::
-
-
-File: bfd.info,  Node: Differing file formats,  Next: Adding symbols from an object file,  Prev: Adding Symbols to the Hash Table,  Up: Adding Symbols to the Hash Table
-
-2.18.2.1 Differing file formats
-...............................
-
-Normally all the files involved in a link will be of the same format,
-but it is also possible to link together different format object files,
-and the back end must support that.  The `_bfd_link_add_symbols' entry
-point is called via the target vector of the file to be added.  This
-has an important consequence: the function may not assume that the hash
-table is the type created by the corresponding
-`_bfd_link_hash_table_create' vector.  All the `_bfd_link_add_symbols'
-function can assume about the hash table is that it is derived from
-`struct bfd_link_hash_table'.
-
-   Sometimes the `_bfd_link_add_symbols' function must store some
-information in the hash table entry to be used by the `_bfd_final_link'
-function.  In such a case the `creator' field of the hash table must be
-checked to make sure that the hash table was created by an object file
-of the same format.
-
-   The `_bfd_final_link' routine must be prepared to handle a hash
-entry without any extra information added by the
-`_bfd_link_add_symbols' function.  A hash entry without extra
-information will also occur when the linker script directs the linker
-to create a symbol.  Note that, regardless of how a hash table entry is
-added, all the fields will be initialized to some sort of null value by
-the hash table entry initialization function.
-
-   See `ecoff_link_add_externals' for an example of how to check the
-`creator' field before saving information (in this case, the ECOFF
-external symbol debugging information) in a hash table entry.
-
-
-File: bfd.info,  Node: Adding symbols from an object file,  Next: Adding symbols from an archive,  Prev: Differing file formats,  Up: Adding Symbols to the Hash Table
-
-2.18.2.2 Adding symbols from an object file
-...........................................
-
-When the `_bfd_link_add_symbols' routine is passed an object file, it
-must add all externally visible symbols in that object file to the hash
-table.  The actual work of adding the symbol to the hash table is
-normally handled by the function `_bfd_generic_link_add_one_symbol'.
-The `_bfd_link_add_symbols' routine is responsible for reading all the
-symbols from the object file and passing the correct information to
-`_bfd_generic_link_add_one_symbol'.
-
-   The `_bfd_link_add_symbols' routine should not use
-`bfd_canonicalize_symtab' to read the symbols.  The point of providing
-this routine is to avoid the overhead of converting the symbols into
-generic `asymbol' structures.
-
-   `_bfd_generic_link_add_one_symbol' handles the details of combining
-common symbols, warning about multiple definitions, and so forth.  It
-takes arguments which describe the symbol to add, notably symbol flags,
-a section, and an offset.  The symbol flags include such things as
-`BSF_WEAK' or `BSF_INDIRECT'.  The section is a section in the object
-file, or something like `bfd_und_section_ptr' for an undefined symbol
-or `bfd_com_section_ptr' for a common symbol.
-
-   If the `_bfd_final_link' routine is also going to need to read the
-symbol information, the `_bfd_link_add_symbols' routine should save it
-somewhere attached to the object file BFD.  However, the information
-should only be saved if the `keep_memory' field of the `info' argument
-is TRUE, so that the `-no-keep-memory' linker switch is effective.
-
-   The a.out function which adds symbols from an object file is
-`aout_link_add_object_symbols', and most of the interesting work is in
-`aout_link_add_symbols'.  The latter saves pointers to the hash tables
-entries created by `_bfd_generic_link_add_one_symbol' indexed by symbol
-number, so that the `_bfd_final_link' routine does not have to call the
-hash table lookup routine to locate the entry.
-
-
-File: bfd.info,  Node: Adding symbols from an archive,  Prev: Adding symbols from an object file,  Up: Adding Symbols to the Hash Table
-
-2.18.2.3 Adding symbols from an archive
-.......................................
-
-When the `_bfd_link_add_symbols' routine is passed an archive, it must
-look through the symbols defined by the archive and decide which
-elements of the archive should be included in the link.  For each such
-element it must call the `add_archive_element' linker callback, and it
-must add the symbols from the object file to the linker hash table.
-
-   In most cases the work of looking through the symbols in the archive
-should be done by the `_bfd_generic_link_add_archive_symbols' function.
-This function builds a hash table from the archive symbol table and
-looks through the list of undefined symbols to see which elements
-should be included.  `_bfd_generic_link_add_archive_symbols' is passed
-a function to call to make the final decision about adding an archive
-element to the link and to do the actual work of adding the symbols to
-the linker hash table.
-
-   The function passed to `_bfd_generic_link_add_archive_symbols' must
-read the symbols of the archive element and decide whether the archive
-element should be included in the link.  If the element is to be
-included, the `add_archive_element' linker callback routine must be
-called with the element as an argument, and the elements symbols must
-be added to the linker hash table just as though the element had itself
-been passed to the `_bfd_link_add_symbols' function.
-
-   When the a.out `_bfd_link_add_symbols' function receives an archive,
-it calls `_bfd_generic_link_add_archive_symbols' passing
-`aout_link_check_archive_element' as the function argument.
-`aout_link_check_archive_element' calls `aout_link_check_ar_symbols'.
-If the latter decides to add the element (an element is only added if
-it provides a real, non-common, definition for a previously undefined
-or common symbol) it calls the `add_archive_element' callback and then
-`aout_link_check_archive_element' calls `aout_link_add_symbols' to
-actually add the symbols to the linker hash table.
-
-   The ECOFF back end is unusual in that it does not normally call
-`_bfd_generic_link_add_archive_symbols', because ECOFF archives already
-contain a hash table of symbols.  The ECOFF back end searches the
-archive itself to avoid the overhead of creating a new hash table.
-
-
-File: bfd.info,  Node: Performing the Final Link,  Prev: Adding Symbols to the Hash Table,  Up: Linker Functions
-
-2.18.3 Performing the final link
---------------------------------
-
-When all the input files have been processed, the linker calls the
-`_bfd_final_link' entry point of the output BFD.  This routine is
-responsible for producing the final output file, which has several
-aspects.  It must relocate the contents of the input sections and copy
-the data into the output sections.  It must build an output symbol
-table including any local symbols from the input files and the global
-symbols from the hash table.  When producing relocatable output, it must
-modify the input relocs and write them into the output file.  There may
-also be object format dependent work to be done.
-
-   The linker will also call the `write_object_contents' entry point
-when the BFD is closed.  The two entry points must work together in
-order to produce the correct output file.
-
-   The details of how this works are inevitably dependent upon the
-specific object file format.  The a.out `_bfd_final_link' routine is
-`NAME(aout,final_link)'.
-
-* Menu:
-
-* Information provided by the linker::
-* Relocating the section contents::
-* Writing the symbol table::
-
-
-File: bfd.info,  Node: Information provided by the linker,  Next: Relocating the section contents,  Prev: Performing the Final Link,  Up: Performing the Final Link
-
-2.18.3.1 Information provided by the linker
-...........................................
-
-Before the linker calls the `_bfd_final_link' entry point, it sets up
-some data structures for the function to use.
-
-   The `input_bfds' field of the `bfd_link_info' structure will point
-to a list of all the input files included in the link.  These files are
-linked through the `link_next' field of the `bfd' structure.
-
-   Each section in the output file will have a list of `link_order'
-structures attached to the `link_order_head' field (the `link_order'
-structure is defined in `bfdlink.h').  These structures describe how to
-create the contents of the output section in terms of the contents of
-various input sections, fill constants, and, eventually, other types of
-information.  They also describe relocs that must be created by the BFD
-backend, but do not correspond to any input file; this is used to
-support -Ur, which builds constructors while generating a relocatable
-object file.
-
-
-File: bfd.info,  Node: Relocating the section contents,  Next: Writing the symbol table,  Prev: Information provided by the linker,  Up: Performing the Final Link
-
-2.18.3.2 Relocating the section contents
-........................................
-
-The `_bfd_final_link' function should look through the `link_order'
-structures attached to each section of the output file.  Each
-`link_order' structure should either be handled specially, or it should
-be passed to the function `_bfd_default_link_order' which will do the
-right thing (`_bfd_default_link_order' is defined in `linker.c').
-
-   For efficiency, a `link_order' of type `bfd_indirect_link_order'
-whose associated section belongs to a BFD of the same format as the
-output BFD must be handled specially.  This type of `link_order'
-describes part of an output section in terms of a section belonging to
-one of the input files.  The `_bfd_final_link' function should read the
-contents of the section and any associated relocs, apply the relocs to
-the section contents, and write out the modified section contents.  If
-performing a relocatable link, the relocs themselves must also be
-modified and written out.
-
-   The functions `_bfd_relocate_contents' and
-`_bfd_final_link_relocate' provide some general support for performing
-the actual relocations, notably overflow checking.  Their arguments
-include information about the symbol the relocation is against and a
-`reloc_howto_type' argument which describes the relocation to perform.
-These functions are defined in `reloc.c'.
-
-   The a.out function which handles reading, relocating, and writing
-section contents is `aout_link_input_section'.  The actual relocation
-is done in `aout_link_input_section_std' and
-`aout_link_input_section_ext'.
-
-
-File: bfd.info,  Node: Writing the symbol table,  Prev: Relocating the section contents,  Up: Performing the Final Link
-
-2.18.3.3 Writing the symbol table
-.................................
-
-The `_bfd_final_link' function must gather all the symbols in the input
-files and write them out.  It must also write out all the symbols in
-the global hash table.  This must be controlled by the `strip' and
-`discard' fields of the `bfd_link_info' structure.
-
-   The local symbols of the input files will not have been entered into
-the linker hash table.  The `_bfd_final_link' routine must consider
-each input file and include the symbols in the output file.  It may be
-convenient to do this when looking through the `link_order' structures,
-or it may be done by stepping through the `input_bfds' list.
-
-   The `_bfd_final_link' routine must also traverse the global hash
-table to gather all the externally visible symbols.  It is possible
-that most of the externally visible symbols may be written out when
-considering the symbols of each input file, but it is still necessary
-to traverse the hash table since the linker script may have defined
-some symbols that are not in any of the input files.
-
-   The `strip' field of the `bfd_link_info' structure controls which
-symbols are written out.  The possible values are listed in
-`bfdlink.h'.  If the value is `strip_some', then the `keep_hash' field
-of the `bfd_link_info' structure is a hash table of symbols to keep;
-each symbol should be looked up in this hash table, and only symbols
-which are present should be included in the output file.
-
-   If the `strip' field of the `bfd_link_info' structure permits local
-symbols to be written out, the `discard' field is used to further
-controls which local symbols are included in the output file.  If the
-value is `discard_l', then all local symbols which begin with a certain
-prefix are discarded; this is controlled by the
-`bfd_is_local_label_name' entry point.
-
-   The a.out backend handles symbols by calling
-`aout_link_write_symbols' on each input BFD and then traversing the
-global hash table with the function `aout_link_write_other_symbol'.  It
-builds a string table while writing out the symbols, which is written
-to the output file at the end of `NAME(aout,final_link)'.
-
-2.18.3.4 `bfd_link_split_section'
-.................................
-
-*Synopsis*
-     bfd_boolean bfd_link_split_section (bfd *abfd, asection *sec);
-   *Description*
-Return nonzero if SEC should be split during a reloceatable or final
-link.
-     #define bfd_link_split_section(abfd, sec) \
-            BFD_SEND (abfd, _bfd_link_split_section, (abfd, sec))
-
-2.18.3.5 `bfd_section_already_linked'
-.....................................
-
-*Synopsis*
-     void bfd_section_already_linked (bfd *abfd, asection *sec);
-   *Description*
-Check if SEC has been already linked during a reloceatable or final
-link.
-     #define bfd_section_already_linked(abfd, sec) \
-            BFD_SEND (abfd, _section_already_linked, (abfd, sec))
-
-
-File: bfd.info,  Node: Hash Tables,  Prev: Linker Functions,  Up: BFD front end
-
-2.19 Hash Tables
-================
-
-BFD provides a simple set of hash table functions.  Routines are
-provided to initialize a hash table, to free a hash table, to look up a
-string in a hash table and optionally create an entry for it, and to
-traverse a hash table.  There is currently no routine to delete an
-string from a hash table.
-
-   The basic hash table does not permit any data to be stored with a
-string.  However, a hash table is designed to present a base class from
-which other types of hash tables may be derived.  These derived types
-may store additional information with the string.  Hash tables were
-implemented in this way, rather than simply providing a data pointer in
-a hash table entry, because they were designed for use by the linker
-back ends.  The linker may create thousands of hash table entries, and
-the overhead of allocating private data and storing and following
-pointers becomes noticeable.
-
-   The basic hash table code is in `hash.c'.
-
-* Menu:
-
-* Creating and Freeing a Hash Table::
-* Looking Up or Entering a String::
-* Traversing a Hash Table::
-* Deriving a New Hash Table Type::
-
-
-File: bfd.info,  Node: Creating and Freeing a Hash Table,  Next: Looking Up or Entering a String,  Prev: Hash Tables,  Up: Hash Tables
-
-2.19.1 Creating and freeing a hash table
-----------------------------------------
-
-To create a hash table, create an instance of a `struct bfd_hash_table'
-(defined in `bfd.h') and call `bfd_hash_table_init' (if you know
-approximately how many entries you will need, the function
-`bfd_hash_table_init_n', which takes a SIZE argument, may be used).
-`bfd_hash_table_init' returns `FALSE' if some sort of error occurs.
-
-   The function `bfd_hash_table_init' take as an argument a function to
-use to create new entries.  For a basic hash table, use the function
-`bfd_hash_newfunc'.  *Note Deriving a New Hash Table Type::, for why
-you would want to use a different value for this argument.
-
-   `bfd_hash_table_init' will create an objalloc which will be used to
-allocate new entries.  You may allocate memory on this objalloc using
-`bfd_hash_allocate'.
-
-   Use `bfd_hash_table_free' to free up all the memory that has been
-allocated for a hash table.  This will not free up the `struct
-bfd_hash_table' itself, which you must provide.
-
-   Use `bfd_hash_set_default_size' to set the default size of hash
-table to use.
-
-
-File: bfd.info,  Node: Looking Up or Entering a String,  Next: Traversing a Hash Table,  Prev: Creating and Freeing a Hash Table,  Up: Hash Tables
-
-2.19.2 Looking up or entering a string
---------------------------------------
-
-The function `bfd_hash_lookup' is used both to look up a string in the
-hash table and to create a new entry.
-
-   If the CREATE argument is `FALSE', `bfd_hash_lookup' will look up a
-string.  If the string is found, it will returns a pointer to a `struct
-bfd_hash_entry'.  If the string is not found in the table
-`bfd_hash_lookup' will return `NULL'.  You should not modify any of the
-fields in the returns `struct bfd_hash_entry'.
-
-   If the CREATE argument is `TRUE', the string will be entered into
-the hash table if it is not already there.  Either way a pointer to a
-`struct bfd_hash_entry' will be returned, either to the existing
-structure or to a newly created one.  In this case, a `NULL' return
-means that an error occurred.
-
-   If the CREATE argument is `TRUE', and a new entry is created, the
-COPY argument is used to decide whether to copy the string onto the
-hash table objalloc or not.  If COPY is passed as `FALSE', you must be
-careful not to deallocate or modify the string as long as the hash table
-exists.
-
-
-File: bfd.info,  Node: Traversing a Hash Table,  Next: Deriving a New Hash Table Type,  Prev: Looking Up or Entering a String,  Up: Hash Tables
-
-2.19.3 Traversing a hash table
-------------------------------
-
-The function `bfd_hash_traverse' may be used to traverse a hash table,
-calling a function on each element.  The traversal is done in a random
-order.
-
-   `bfd_hash_traverse' takes as arguments a function and a generic
-`void *' pointer.  The function is called with a hash table entry (a
-`struct bfd_hash_entry *') and the generic pointer passed to
-`bfd_hash_traverse'.  The function must return a `boolean' value, which
-indicates whether to continue traversing the hash table.  If the
-function returns `FALSE', `bfd_hash_traverse' will stop the traversal
-and return immediately.
-
-
-File: bfd.info,  Node: Deriving a New Hash Table Type,  Prev: Traversing a Hash Table,  Up: Hash Tables
-
-2.19.4 Deriving a new hash table type
--------------------------------------
-
-Many uses of hash tables want to store additional information which
-each entry in the hash table.  Some also find it convenient to store
-additional information with the hash table itself.  This may be done
-using a derived hash table.
-
-   Since C is not an object oriented language, creating a derived hash
-table requires sticking together some boilerplate routines with a few
-differences specific to the type of hash table you want to create.
-
-   An example of a derived hash table is the linker hash table.  The
-structures for this are defined in `bfdlink.h'.  The functions are in
-`linker.c'.
-
-   You may also derive a hash table from an already derived hash table.
-For example, the a.out linker backend code uses a hash table derived
-from the linker hash table.
-
-* Menu:
-
-* Define the Derived Structures::
-* Write the Derived Creation Routine::
-* Write Other Derived Routines::
-
-
-File: bfd.info,  Node: Define the Derived Structures,  Next: Write the Derived Creation Routine,  Prev: Deriving a New Hash Table Type,  Up: Deriving a New Hash Table Type
-
-2.19.4.1 Define the derived structures
-......................................
-
-You must define a structure for an entry in the hash table, and a
-structure for the hash table itself.
-
-   The first field in the structure for an entry in the hash table must
-be of the type used for an entry in the hash table you are deriving
-from.  If you are deriving from a basic hash table this is `struct
-bfd_hash_entry', which is defined in `bfd.h'.  The first field in the
-structure for the hash table itself must be of the type of the hash
-table you are deriving from itself.  If you are deriving from a basic
-hash table, this is `struct bfd_hash_table'.
-
-   For example, the linker hash table defines `struct
-bfd_link_hash_entry' (in `bfdlink.h').  The first field, `root', is of
-type `struct bfd_hash_entry'.  Similarly, the first field in `struct
-bfd_link_hash_table', `table', is of type `struct bfd_hash_table'.
-
-
-File: bfd.info,  Node: Write the Derived Creation Routine,  Next: Write Other Derived Routines,  Prev: Define the Derived Structures,  Up: Deriving a New Hash Table Type
-
-2.19.4.2 Write the derived creation routine
-...........................................
-
-You must write a routine which will create and initialize an entry in
-the hash table.  This routine is passed as the function argument to
-`bfd_hash_table_init'.
-
-   In order to permit other hash tables to be derived from the hash
-table you are creating, this routine must be written in a standard way.
-
-   The first argument to the creation routine is a pointer to a hash
-table entry.  This may be `NULL', in which case the routine should
-allocate the right amount of space.  Otherwise the space has already
-been allocated by a hash table type derived from this one.
-
-   After allocating space, the creation routine must call the creation
-routine of the hash table type it is derived from, passing in a pointer
-to the space it just allocated.  This will initialize any fields used
-by the base hash table.
-
-   Finally the creation routine must initialize any local fields for
-the new hash table type.
-
-   Here is a boilerplate example of a creation routine.  FUNCTION_NAME
-is the name of the routine.  ENTRY_TYPE is the type of an entry in the
-hash table you are creating.  BASE_NEWFUNC is the name of the creation
-routine of the hash table type your hash table is derived from.
-
-     struct bfd_hash_entry *
-     FUNCTION_NAME (entry, table, string)
-          struct bfd_hash_entry *entry;
-          struct bfd_hash_table *table;
-          const char *string;
-     {
-       struct ENTRY_TYPE *ret = (ENTRY_TYPE *) entry;
-
-      /* Allocate the structure if it has not already been allocated by a
-         derived class.  */
-       if (ret == (ENTRY_TYPE *) NULL)
-         {
-           ret = ((ENTRY_TYPE *)
-                  bfd_hash_allocate (table, sizeof (ENTRY_TYPE)));
-           if (ret == (ENTRY_TYPE *) NULL)
-             return NULL;
-         }
-
-      /* Call the allocation method of the base class.  */
-       ret = ((ENTRY_TYPE *)
-             BASE_NEWFUNC ((struct bfd_hash_entry *) ret, table, string));
-
-      /* Initialize the local fields here.  */
-
-       return (struct bfd_hash_entry *) ret;
-     }
-   *Description*
-The creation routine for the linker hash table, which is in `linker.c',
-looks just like this example.  FUNCTION_NAME is
-`_bfd_link_hash_newfunc'.  ENTRY_TYPE is `struct bfd_link_hash_entry'.
-BASE_NEWFUNC is `bfd_hash_newfunc', the creation routine for a basic
-hash table.
-
-   `_bfd_link_hash_newfunc' also initializes the local fields in a
-linker hash table entry: `type', `written' and `next'.
-
-
-File: bfd.info,  Node: Write Other Derived Routines,  Prev: Write the Derived Creation Routine,  Up: Deriving a New Hash Table Type
-
-2.19.4.3 Write other derived routines
-.....................................
-
-You will want to write other routines for your new hash table, as well.
-
-   You will want an initialization routine which calls the
-initialization routine of the hash table you are deriving from and
-initializes any other local fields.  For the linker hash table, this is
-`_bfd_link_hash_table_init' in `linker.c'.
-
-   You will want a lookup routine which calls the lookup routine of the
-hash table you are deriving from and casts the result.  The linker hash
-table uses `bfd_link_hash_lookup' in `linker.c' (this actually takes an
-additional argument which it uses to decide how to return the looked up
-value).
-
-   You may want a traversal routine.  This should just call the
-traversal routine of the hash table you are deriving from with
-appropriate casts.  The linker hash table uses `bfd_link_hash_traverse'
-in `linker.c'.
-
-   These routines may simply be defined as macros.  For example, the
-a.out backend linker hash table, which is derived from the linker hash
-table, uses macros for the lookup and traversal routines.  These are
-`aout_link_hash_lookup' and `aout_link_hash_traverse' in aoutx.h.
-
-
-File: bfd.info,  Node: BFD back ends,  Next: GNU Free Documentation License,  Prev: BFD front end,  Up: Top
-
-3 BFD back ends
-***************
-
-* Menu:
-
-* What to Put Where::
-* aout ::	a.out backends
-* coff ::	coff backends
-* elf  ::	elf backends
-* mmo  ::	mmo backend
-
-
-File: bfd.info,  Node: What to Put Where,  Next: aout,  Prev: BFD back ends,  Up: BFD back ends
-
-   All of BFD lives in one directory.
-
-
-File: bfd.info,  Node: aout,  Next: coff,  Prev: What to Put Where,  Up: BFD back ends
-
-3.1 a.out backends
-==================
-
-*Description*
-BFD supports a number of different flavours of a.out format, though the
-major differences are only the sizes of the structures on disk, and the
-shape of the relocation information.
-
-   The support is split into a basic support file `aoutx.h' and other
-files which derive functions from the base. One derivation file is
-`aoutf1.h' (for a.out flavour 1), and adds to the basic a.out functions
-support for sun3, sun4, 386 and 29k a.out files, to create a target
-jump vector for a specific target.
-
-   This information is further split out into more specific files for
-each machine, including `sunos.c' for sun3 and sun4, `newsos3.c' for
-the Sony NEWS, and `demo64.c' for a demonstration of a 64 bit a.out
-format.
-
-   The base file `aoutx.h' defines general mechanisms for reading and
-writing records to and from disk and various other methods which BFD
-requires. It is included by `aout32.c' and `aout64.c' to form the names
-`aout_32_swap_exec_header_in', `aout_64_swap_exec_header_in', etc.
-
-   As an example, this is what goes on to make the back end for a sun4,
-from `aout32.c':
-
-            #define ARCH_SIZE 32
-            #include "aoutx.h"
-
-   Which exports names:
-
-            ...
-            aout_32_canonicalize_reloc
-            aout_32_find_nearest_line
-            aout_32_get_lineno
-            aout_32_get_reloc_upper_bound
-            ...
-
-   from `sunos.c':
-
-            #define TARGET_NAME "a.out-sunos-big"
-            #define VECNAME    sunos_big_vec
-            #include "aoutf1.h"
-
-   requires all the names from `aout32.c', and produces the jump vector
-
-            sunos_big_vec
-
-   The file `host-aout.c' is a special case.  It is for a large set of
-hosts that use "more or less standard" a.out files, and for which
-cross-debugging is not interesting.  It uses the standard 32-bit a.out
-support routines, but determines the file offsets and addresses of the
-text, data, and BSS sections, the machine architecture and machine
-type, and the entry point address, in a host-dependent manner.  Once
-these values have been determined, generic code is used to handle the
-object file.
-
-   When porting it to run on a new system, you must supply:
-
-             HOST_PAGE_SIZE
-             HOST_SEGMENT_SIZE
-             HOST_MACHINE_ARCH       (optional)
-             HOST_MACHINE_MACHINE    (optional)
-             HOST_TEXT_START_ADDR
-             HOST_STACK_END_ADDR
-
-   in the file `../include/sys/h-XXX.h' (for your host).  These values,
-plus the structures and macros defined in `a.out.h' on your host
-system, will produce a BFD target that will access ordinary a.out files
-on your host. To configure a new machine to use `host-aout.c', specify:
-
-            TDEFAULTS = -DDEFAULT_VECTOR=host_aout_big_vec
-            TDEPFILES= host-aout.o trad-core.o
-
-   in the `config/XXX.mt' file, and modify `configure.in' to use the
-`XXX.mt' file (by setting "`bfd_target=XXX'") when your configuration
-is selected.
-
-3.1.1 Relocations
------------------
-
-*Description*
-The file `aoutx.h' provides for both the _standard_ and _extended_
-forms of a.out relocation records.
-
-   The standard records contain only an address, a symbol index, and a
-type field. The extended records (used on 29ks and sparcs) also have a
-full integer for an addend.
-
-3.1.2 Internal entry points
----------------------------
-
-*Description*
-`aoutx.h' exports several routines for accessing the contents of an
-a.out file, which are gathered and exported in turn by various format
-specific files (eg sunos.c).
-
-3.1.2.1 `aout_SIZE_swap_exec_header_in'
-.......................................
-
-*Synopsis*
-     void aout_SIZE_swap_exec_header_in,
-        (bfd *abfd,
-         struct external_exec *raw_bytes,
-         struct internal_exec *execp);
-   *Description*
-Swap the information in an executable header RAW_BYTES taken from a raw
-byte stream memory image into the internal exec header structure EXECP.
-
-3.1.2.2 `aout_SIZE_swap_exec_header_out'
-........................................
-
-*Synopsis*
-     void aout_SIZE_swap_exec_header_out
-        (bfd *abfd,
-         struct internal_exec *execp,
-         struct external_exec *raw_bytes);
-   *Description*
-Swap the information in an internal exec header structure EXECP into
-the buffer RAW_BYTES ready for writing to disk.
-
-3.1.2.3 `aout_SIZE_some_aout_object_p'
-......................................
-
-*Synopsis*
-     const bfd_target *aout_SIZE_some_aout_object_p
-        (bfd *abfd,
-         const bfd_target *(*callback_to_real_object_p) ());
-   *Description*
-Some a.out variant thinks that the file open in ABFD checking is an
-a.out file.  Do some more checking, and set up for access if it really
-is.  Call back to the calling environment's "finish up" function just
-before returning, to handle any last-minute setup.
-
-3.1.2.4 `aout_SIZE_mkobject'
-............................
-
-*Synopsis*
-     bfd_boolean aout_SIZE_mkobject, (bfd *abfd);
-   *Description*
-Initialize BFD ABFD for use with a.out files.
-
-3.1.2.5 `aout_SIZE_machine_type'
-................................
-
-*Synopsis*
-     enum machine_type  aout_SIZE_machine_type
-        (enum bfd_architecture arch,
-         unsigned long machine));
-   *Description*
-Keep track of machine architecture and machine type for a.out's. Return
-the `machine_type' for a particular architecture and machine, or
-`M_UNKNOWN' if that exact architecture and machine can't be represented
-in a.out format.
-
-   If the architecture is understood, machine type 0 (default) is
-always understood.
-
-3.1.2.6 `aout_SIZE_set_arch_mach'
-.................................
-
-*Synopsis*
-     bfd_boolean aout_SIZE_set_arch_mach,
-        (bfd *,
-         enum bfd_architecture arch,
-         unsigned long machine));
-   *Description*
-Set the architecture and the machine of the BFD ABFD to the values ARCH
-and MACHINE.  Verify that ABFD's format can support the architecture
-required.
-
-3.1.2.7 `aout_SIZE_new_section_hook'
-....................................
-
-*Synopsis*
-     bfd_boolean aout_SIZE_new_section_hook,
-        (bfd *abfd,
-         asection *newsect));
-   *Description*
-Called by the BFD in response to a `bfd_make_section' request.
-
-
-File: bfd.info,  Node: coff,  Next: elf,  Prev: aout,  Up: BFD back ends
-
-3.2 coff backends
-=================
-
-BFD supports a number of different flavours of coff format.  The major
-differences between formats are the sizes and alignments of fields in
-structures on disk, and the occasional extra field.
-
-   Coff in all its varieties is implemented with a few common files and
-a number of implementation specific files. For example, The 88k bcs
-coff format is implemented in the file `coff-m88k.c'. This file
-`#include's `coff/m88k.h' which defines the external structure of the
-coff format for the 88k, and `coff/internal.h' which defines the
-internal structure. `coff-m88k.c' also defines the relocations used by
-the 88k format *Note Relocations::.
-
-   The Intel i960 processor version of coff is implemented in
-`coff-i960.c'. This file has the same structure as `coff-m88k.c',
-except that it includes `coff/i960.h' rather than `coff-m88k.h'.
-
-3.2.1 Porting to a new version of coff
---------------------------------------
-
-The recommended method is to select from the existing implementations
-the version of coff which is most like the one you want to use.  For
-example, we'll say that i386 coff is the one you select, and that your
-coff flavour is called foo.  Copy `i386coff.c' to `foocoff.c', copy
-`../include/coff/i386.h' to `../include/coff/foo.h', and add the lines
-to `targets.c' and `Makefile.in' so that your new back end is used.
-Alter the shapes of the structures in `../include/coff/foo.h' so that
-they match what you need. You will probably also have to add `#ifdef's
-to the code in `coff/internal.h' and `coffcode.h' if your version of
-coff is too wild.
-
-   You can verify that your new BFD backend works quite simply by
-building `objdump' from the `binutils' directory, and making sure that
-its version of what's going on and your host system's idea (assuming it
-has the pretty standard coff dump utility, usually called `att-dump' or
-just `dump') are the same.  Then clean up your code, and send what
-you've done to Cygnus. Then your stuff will be in the next release, and
-you won't have to keep integrating it.
-
-3.2.2 How the coff backend works
---------------------------------
-
-3.2.2.1 File layout
-...................
-
-The Coff backend is split into generic routines that are applicable to
-any Coff target and routines that are specific to a particular target.
-The target-specific routines are further split into ones which are
-basically the same for all Coff targets except that they use the
-external symbol format or use different values for certain constants.
-
-   The generic routines are in `coffgen.c'.  These routines work for
-any Coff target.  They use some hooks into the target specific code;
-the hooks are in a `bfd_coff_backend_data' structure, one of which
-exists for each target.
-
-   The essentially similar target-specific routines are in
-`coffcode.h'.  This header file includes executable C code.  The
-various Coff targets first include the appropriate Coff header file,
-make any special defines that are needed, and then include `coffcode.h'.
-
-   Some of the Coff targets then also have additional routines in the
-target source file itself.
-
-   For example, `coff-i960.c' includes `coff/internal.h' and
-`coff/i960.h'.  It then defines a few constants, such as `I960', and
-includes `coffcode.h'.  Since the i960 has complex relocation types,
-`coff-i960.c' also includes some code to manipulate the i960 relocs.
-This code is not in `coffcode.h' because it would not be used by any
-other target.
-
-3.2.2.2 Bit twiddling
-.....................
-
-Each flavour of coff supported in BFD has its own header file
-describing the external layout of the structures. There is also an
-internal description of the coff layout, in `coff/internal.h'. A major
-function of the coff backend is swapping the bytes and twiddling the
-bits to translate the external form of the structures into the normal
-internal form. This is all performed in the `bfd_swap'_thing_direction
-routines. Some elements are different sizes between different versions
-of coff; it is the duty of the coff version specific include file to
-override the definitions of various packing routines in `coffcode.h'.
-E.g., the size of line number entry in coff is sometimes 16 bits, and
-sometimes 32 bits. `#define'ing `PUT_LNSZ_LNNO' and `GET_LNSZ_LNNO'
-will select the correct one. No doubt, some day someone will find a
-version of coff which has a varying field size not catered to at the
-moment. To port BFD, that person will have to add more `#defines'.
-Three of the bit twiddling routines are exported to `gdb';
-`coff_swap_aux_in', `coff_swap_sym_in' and `coff_swap_lineno_in'. `GDB'
-reads the symbol table on its own, but uses BFD to fix things up.  More
-of the bit twiddlers are exported for `gas'; `coff_swap_aux_out',
-`coff_swap_sym_out', `coff_swap_lineno_out', `coff_swap_reloc_out',
-`coff_swap_filehdr_out', `coff_swap_aouthdr_out',
-`coff_swap_scnhdr_out'. `Gas' currently keeps track of all the symbol
-table and reloc drudgery itself, thereby saving the internal BFD
-overhead, but uses BFD to swap things on the way out, making cross
-ports much safer.  Doing so also allows BFD (and thus the linker) to
-use the same header files as `gas', which makes one avenue to disaster
-disappear.
-
-3.2.2.3 Symbol reading
-......................
-
-The simple canonical form for symbols used by BFD is not rich enough to
-keep all the information available in a coff symbol table. The back end
-gets around this problem by keeping the original symbol table around,
-"behind the scenes".
-
-   When a symbol table is requested (through a call to
-`bfd_canonicalize_symtab'), a request gets through to
-`coff_get_normalized_symtab'. This reads the symbol table from the coff
-file and swaps all the structures inside into the internal form. It
-also fixes up all the pointers in the table (represented in the file by
-offsets from the first symbol in the table) into physical pointers to
-elements in the new internal table. This involves some work since the
-meanings of fields change depending upon context: a field that is a
-pointer to another structure in the symbol table at one moment may be
-the size in bytes of a structure at the next.  Another pass is made
-over the table. All symbols which mark file names (`C_FILE' symbols)
-are modified so that the internal string points to the value in the
-auxent (the real filename) rather than the normal text associated with
-the symbol (`".file"').
-
-   At this time the symbol names are moved around. Coff stores all
-symbols less than nine characters long physically within the symbol
-table; longer strings are kept at the end of the file in the string
-table. This pass moves all strings into memory and replaces them with
-pointers to the strings.
-
-   The symbol table is massaged once again, this time to create the
-canonical table used by the BFD application. Each symbol is inspected
-in turn, and a decision made (using the `sclass' field) about the
-various flags to set in the `asymbol'.  *Note Symbols::. The generated
-canonical table shares strings with the hidden internal symbol table.
-
-   Any linenumbers are read from the coff file too, and attached to the
-symbols which own the functions the linenumbers belong to.
-
-3.2.2.4 Symbol writing
-......................
-
-Writing a symbol to a coff file which didn't come from a coff file will
-lose any debugging information. The `asymbol' structure remembers the
-BFD from which the symbol was taken, and on output the back end makes
-sure that the same destination target as source target is present.
-
-   When the symbols have come from a coff file then all the debugging
-information is preserved.
-
-   Symbol tables are provided for writing to the back end in a vector
-of pointers to pointers. This allows applications like the linker to
-accumulate and output large symbol tables without having to do too much
-byte copying.
-
-   This function runs through the provided symbol table and patches
-each symbol marked as a file place holder (`C_FILE') to point to the
-next file place holder in the list. It also marks each `offset' field
-in the list with the offset from the first symbol of the current symbol.
-
-   Another function of this procedure is to turn the canonical value
-form of BFD into the form used by coff. Internally, BFD expects symbol
-values to be offsets from a section base; so a symbol physically at
-0x120, but in a section starting at 0x100, would have the value 0x20.
-Coff expects symbols to contain their final value, so symbols have
-their values changed at this point to reflect their sum with their
-owning section.  This transformation uses the `output_section' field of
-the `asymbol''s `asection' *Note Sections::.
-
-   * `coff_mangle_symbols'
-   This routine runs though the provided symbol table and uses the
-offsets generated by the previous pass and the pointers generated when
-the symbol table was read in to create the structured hierarchy
-required by coff. It changes each pointer to a symbol into the index
-into the symbol table of the asymbol.
-
-   * `coff_write_symbols'
-   This routine runs through the symbol table and patches up the
-symbols from their internal form into the coff way, calls the bit
-twiddlers, and writes out the table to the file.
-
-3.2.2.5 `coff_symbol_type'
-..........................
-
-*Description*
-The hidden information for an `asymbol' is described in a
-`combined_entry_type':
-
-
-     typedef struct coff_ptr_struct
-     {
-       /* Remembers the offset from the first symbol in the file for
-          this symbol. Generated by coff_renumber_symbols. */
-       unsigned int offset;
-
-       /* Should the value of this symbol be renumbered.  Used for
-          XCOFF C_BSTAT symbols.  Set by coff_slurp_symbol_table.  */
-       unsigned int fix_value : 1;
-
-       /* Should the tag field of this symbol be renumbered.
-          Created by coff_pointerize_aux. */
-       unsigned int fix_tag : 1;
-
-       /* Should the endidx field of this symbol be renumbered.
-          Created by coff_pointerize_aux. */
-       unsigned int fix_end : 1;
-
-       /* Should the x_csect.x_scnlen field be renumbered.
-          Created by coff_pointerize_aux. */
-       unsigned int fix_scnlen : 1;
-
-       /* Fix up an XCOFF C_BINCL/C_EINCL symbol.  The value is the
-          index into the line number entries.  Set by coff_slurp_symbol_table.  */
-       unsigned int fix_line : 1;
-
-       /* The container for the symbol structure as read and translated
-          from the file. */
-       union
-       {
-         union internal_auxent auxent;
-         struct internal_syment syment;
-       } u;
-     } combined_entry_type;
-
-
-     /* Each canonical asymbol really looks like this: */
-
-     typedef struct coff_symbol_struct
-     {
-       /* The actual symbol which the rest of BFD works with */
-       asymbol symbol;
-
-       /* A pointer to the hidden information for this symbol */
-       combined_entry_type *native;
-
-       /* A pointer to the linenumber information for this symbol */
-       struct lineno_cache_entry *lineno;
-
-       /* Have the line numbers been relocated yet ? */
-       bfd_boolean done_lineno;
-     } coff_symbol_type;
-   
-3.2.2.6 `bfd_coff_backend_data'
-...............................
-
-     /* COFF symbol classifications.  */
-
-     enum coff_symbol_classification
-     {
-       /* Global symbol.  */
-       COFF_SYMBOL_GLOBAL,
-       /* Common symbol.  */
-       COFF_SYMBOL_COMMON,
-       /* Undefined symbol.  */
-       COFF_SYMBOL_UNDEFINED,
-       /* Local symbol.  */
-       COFF_SYMBOL_LOCAL,
-       /* PE section symbol.  */
-       COFF_SYMBOL_PE_SECTION
-     };
-Special entry points for gdb to swap in coff symbol table parts:
-     typedef struct
-     {
-       void (*_bfd_coff_swap_aux_in)
-         PARAMS ((bfd *, PTR, int, int, int, int, PTR));
-
-       void (*_bfd_coff_swap_sym_in)
-         PARAMS ((bfd *, PTR, PTR));
-
-       void (*_bfd_coff_swap_lineno_in)
-         PARAMS ((bfd *, PTR, PTR));
-
-       unsigned int (*_bfd_coff_swap_aux_out)
-         PARAMS ((bfd *, PTR, int, int, int, int, PTR));
-
-       unsigned int (*_bfd_coff_swap_sym_out)
-         PARAMS ((bfd *, PTR, PTR));
-
-       unsigned int (*_bfd_coff_swap_lineno_out)
-         PARAMS ((bfd *, PTR, PTR));
-
-       unsigned int (*_bfd_coff_swap_reloc_out)
-         PARAMS ((bfd *, PTR, PTR));
-
-       unsigned int (*_bfd_coff_swap_filehdr_out)
-         PARAMS ((bfd *, PTR, PTR));
-
-       unsigned int (*_bfd_coff_swap_aouthdr_out)
-         PARAMS ((bfd *, PTR, PTR));
-
-       unsigned int (*_bfd_coff_swap_scnhdr_out)
-         PARAMS ((bfd *, PTR, PTR));
-
-       unsigned int _bfd_filhsz;
-       unsigned int _bfd_aoutsz;
-       unsigned int _bfd_scnhsz;
-       unsigned int _bfd_symesz;
-       unsigned int _bfd_auxesz;
-       unsigned int _bfd_relsz;
-       unsigned int _bfd_linesz;
-       unsigned int _bfd_filnmlen;
-       bfd_boolean _bfd_coff_long_filenames;
-       bfd_boolean _bfd_coff_long_section_names;
-       unsigned int _bfd_coff_default_section_alignment_power;
-       bfd_boolean _bfd_coff_force_symnames_in_strings;
-       unsigned int _bfd_coff_debug_string_prefix_length;
-
-       void (*_bfd_coff_swap_filehdr_in)
-         PARAMS ((bfd *, PTR, PTR));
-
-       void (*_bfd_coff_swap_aouthdr_in)
-         PARAMS ((bfd *, PTR, PTR));
-
-       void (*_bfd_coff_swap_scnhdr_in)
-         PARAMS ((bfd *, PTR, PTR));
-
-       void (*_bfd_coff_swap_reloc_in)
-         PARAMS ((bfd *abfd, PTR, PTR));
-
-       bfd_boolean (*_bfd_coff_bad_format_hook)
-         PARAMS ((bfd *, PTR));
-
-       bfd_boolean (*_bfd_coff_set_arch_mach_hook)
-         PARAMS ((bfd *, PTR));
-
-       PTR (*_bfd_coff_mkobject_hook)
-         PARAMS ((bfd *, PTR, PTR));
-
-       bfd_boolean (*_bfd_styp_to_sec_flags_hook)
-         PARAMS ((bfd *, PTR, const char *, asection *, flagword *));
-
-       void (*_bfd_set_alignment_hook)
-         PARAMS ((bfd *, asection *, PTR));
-
-       bfd_boolean (*_bfd_coff_slurp_symbol_table)
-         PARAMS ((bfd *));
-
-       bfd_boolean (*_bfd_coff_symname_in_debug)
-         PARAMS ((bfd *, struct internal_syment *));
-
-       bfd_boolean (*_bfd_coff_pointerize_aux_hook)
-         PARAMS ((bfd *, combined_entry_type *, combined_entry_type *,
-                 unsigned int, combined_entry_type *));
-
-       bfd_boolean (*_bfd_coff_print_aux)
-         PARAMS ((bfd *, FILE *, combined_entry_type *, combined_entry_type *,
-                 combined_entry_type *, unsigned int));
-
-       void (*_bfd_coff_reloc16_extra_cases)
-         PARAMS ((bfd *, struct bfd_link_info *, struct bfd_link_order *, arelent *,
-                bfd_byte *, unsigned int *, unsigned int *));
-
-       int (*_bfd_coff_reloc16_estimate)
-         PARAMS ((bfd *, asection *, arelent *, unsigned int,
-                 struct bfd_link_info *));
-
-       enum coff_symbol_classification (*_bfd_coff_classify_symbol)
-         PARAMS ((bfd *, struct internal_syment *));
-
-       bfd_boolean (*_bfd_coff_compute_section_file_positions)
-         PARAMS ((bfd *));
-
-       bfd_boolean (*_bfd_coff_start_final_link)
-         PARAMS ((bfd *, struct bfd_link_info *));
-
-       bfd_boolean (*_bfd_coff_relocate_section)
-         PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *, bfd_byte *,
-                 struct internal_reloc *, struct internal_syment *, asection **));
-
-       reloc_howto_type *(*_bfd_coff_rtype_to_howto)
-         PARAMS ((bfd *, asection *, struct internal_reloc *,
-                 struct coff_link_hash_entry *, struct internal_syment *,
-                 bfd_vma *));
-
-       bfd_boolean (*_bfd_coff_adjust_symndx)
-         PARAMS ((bfd *, struct bfd_link_info *, bfd *, asection *,
-                 struct internal_reloc *, bfd_boolean *));
-
-       bfd_boolean (*_bfd_coff_link_add_one_symbol)
-         PARAMS ((struct bfd_link_info *, bfd *, const char *, flagword,
-                 asection *, bfd_vma, const char *, bfd_boolean, bfd_boolean,
-                 struct bfd_link_hash_entry **));
-
-       bfd_boolean (*_bfd_coff_link_output_has_begun)
-         PARAMS ((bfd *, struct coff_final_link_info *));
-
-       bfd_boolean (*_bfd_coff_final_link_postscript)
-         PARAMS ((bfd *, struct coff_final_link_info *));
-
-     } bfd_coff_backend_data;
-
-     #define coff_backend_info(abfd) \
-       ((bfd_coff_backend_data *) (abfd)->xvec->backend_data)
-
-     #define bfd_coff_swap_aux_in(a,e,t,c,ind,num,i) \
-       ((coff_backend_info (a)->_bfd_coff_swap_aux_in) (a,e,t,c,ind,num,i))
-
-     #define bfd_coff_swap_sym_in(a,e,i) \
-       ((coff_backend_info (a)->_bfd_coff_swap_sym_in) (a,e,i))
-
-     #define bfd_coff_swap_lineno_in(a,e,i) \
-       ((coff_backend_info ( a)->_bfd_coff_swap_lineno_in) (a,e,i))
-
-     #define bfd_coff_swap_reloc_out(abfd, i, o) \
-       ((coff_backend_info (abfd)->_bfd_coff_swap_reloc_out) (abfd, i, o))
-
-     #define bfd_coff_swap_lineno_out(abfd, i, o) \
-       ((coff_backend_info (abfd)->_bfd_coff_swap_lineno_out) (abfd, i, o))
-
-     #define bfd_coff_swap_aux_out(a,i,t,c,ind,num,o) \
-       ((coff_backend_info (a)->_bfd_coff_swap_aux_out) (a,i,t,c,ind,num,o))
-
-     #define bfd_coff_swap_sym_out(abfd, i,o) \
-       ((coff_backend_info (abfd)->_bfd_coff_swap_sym_out) (abfd, i, o))
-
-     #define bfd_coff_swap_scnhdr_out(abfd, i,o) \
-       ((coff_backend_info (abfd)->_bfd_coff_swap_scnhdr_out) (abfd, i, o))
-
-     #define bfd_coff_swap_filehdr_out(abfd, i,o) \
-       ((coff_backend_info (abfd)->_bfd_coff_swap_filehdr_out) (abfd, i, o))
-
-     #define bfd_coff_swap_aouthdr_out(abfd, i,o) \
-       ((coff_backend_info (abfd)->_bfd_coff_swap_aouthdr_out) (abfd, i, o))
-
-     #define bfd_coff_filhsz(abfd) (coff_backend_info (abfd)->_bfd_filhsz)
-     #define bfd_coff_aoutsz(abfd) (coff_backend_info (abfd)->_bfd_aoutsz)
-     #define bfd_coff_scnhsz(abfd) (coff_backend_info (abfd)->_bfd_scnhsz)
-     #define bfd_coff_symesz(abfd) (coff_backend_info (abfd)->_bfd_symesz)
-     #define bfd_coff_auxesz(abfd) (coff_backend_info (abfd)->_bfd_auxesz)
-     #define bfd_coff_relsz(abfd)  (coff_backend_info (abfd)->_bfd_relsz)
-     #define bfd_coff_linesz(abfd) (coff_backend_info (abfd)->_bfd_linesz)
-     #define bfd_coff_filnmlen(abfd) (coff_backend_info (abfd)->_bfd_filnmlen)
-     #define bfd_coff_long_filenames(abfd) \
-       (coff_backend_info (abfd)->_bfd_coff_long_filenames)
-     #define bfd_coff_long_section_names(abfd) \
-       (coff_backend_info (abfd)->_bfd_coff_long_section_names)
-     #define bfd_coff_default_section_alignment_power(abfd) \
-       (coff_backend_info (abfd)->_bfd_coff_default_section_alignment_power)
-     #define bfd_coff_swap_filehdr_in(abfd, i,o) \
-       ((coff_backend_info (abfd)->_bfd_coff_swap_filehdr_in) (abfd, i, o))
-
-     #define bfd_coff_swap_aouthdr_in(abfd, i,o) \
-       ((coff_backend_info (abfd)->_bfd_coff_swap_aouthdr_in) (abfd, i, o))
-
-     #define bfd_coff_swap_scnhdr_in(abfd, i,o) \
-       ((coff_backend_info (abfd)->_bfd_coff_swap_scnhdr_in) (abfd, i, o))
-
-     #define bfd_coff_swap_reloc_in(abfd, i, o) \
-       ((coff_backend_info (abfd)->_bfd_coff_swap_reloc_in) (abfd, i, o))
-
-     #define bfd_coff_bad_format_hook(abfd, filehdr) \
-       ((coff_backend_info (abfd)->_bfd_coff_bad_format_hook) (abfd, filehdr))
-
-     #define bfd_coff_set_arch_mach_hook(abfd, filehdr)\
-       ((coff_backend_info (abfd)->_bfd_coff_set_arch_mach_hook) (abfd, filehdr))
-     #define bfd_coff_mkobject_hook(abfd, filehdr, aouthdr)\
-       ((coff_backend_info (abfd)->_bfd_coff_mkobject_hook)\
-        (abfd, filehdr, aouthdr))
-
-     #define bfd_coff_styp_to_sec_flags_hook(abfd, scnhdr, name, section, flags_ptr)\
-       ((coff_backend_info (abfd)->_bfd_styp_to_sec_flags_hook)\
-        (abfd, scnhdr, name, section, flags_ptr))
-
-     #define bfd_coff_set_alignment_hook(abfd, sec, scnhdr)\
-       ((coff_backend_info (abfd)->_bfd_set_alignment_hook) (abfd, sec, scnhdr))
-
-     #define bfd_coff_slurp_symbol_table(abfd)\
-       ((coff_backend_info (abfd)->_bfd_coff_slurp_symbol_table) (abfd))
-
-     #define bfd_coff_symname_in_debug(abfd, sym)\
-       ((coff_backend_info (abfd)->_bfd_coff_symname_in_debug) (abfd, sym))
-
-     #define bfd_coff_force_symnames_in_strings(abfd)\
-       (coff_backend_info (abfd)->_bfd_coff_force_symnames_in_strings)
-
-     #define bfd_coff_debug_string_prefix_length(abfd)\
-       (coff_backend_info (abfd)->_bfd_coff_debug_string_prefix_length)
-
-     #define bfd_coff_print_aux(abfd, file, base, symbol, aux, indaux)\
-       ((coff_backend_info (abfd)->_bfd_coff_print_aux)\
-        (abfd, file, base, symbol, aux, indaux))
-
-     #define bfd_coff_reloc16_extra_cases(abfd, link_info, link_order,\
-                                          reloc, data, src_ptr, dst_ptr)\
-       ((coff_backend_info (abfd)->_bfd_coff_reloc16_extra_cases)\
-        (abfd, link_info, link_order, reloc, data, src_ptr, dst_ptr))
-
-     #define bfd_coff_reloc16_estimate(abfd, section, reloc, shrink, link_info)\
-       ((coff_backend_info (abfd)->_bfd_coff_reloc16_estimate)\
-        (abfd, section, reloc, shrink, link_info))
-
-     #define bfd_coff_classify_symbol(abfd, sym)\
-       ((coff_backend_info (abfd)->_bfd_coff_classify_symbol)\
-        (abfd, sym))
-
-     #define bfd_coff_compute_section_file_positions(abfd)\
-       ((coff_backend_info (abfd)->_bfd_coff_compute_section_file_positions)\
-        (abfd))
-
-     #define bfd_coff_start_final_link(obfd, info)\
-       ((coff_backend_info (obfd)->_bfd_coff_start_final_link)\
-        (obfd, info))
-     #define bfd_coff_relocate_section(obfd,info,ibfd,o,con,rel,isyms,secs)\
-       ((coff_backend_info (ibfd)->_bfd_coff_relocate_section)\
-        (obfd, info, ibfd, o, con, rel, isyms, secs))
-     #define bfd_coff_rtype_to_howto(abfd, sec, rel, h, sym, addendp)\
-       ((coff_backend_info (abfd)->_bfd_coff_rtype_to_howto)\
-        (abfd, sec, rel, h, sym, addendp))
-     #define bfd_coff_adjust_symndx(obfd, info, ibfd, sec, rel, adjustedp)\
-       ((coff_backend_info (abfd)->_bfd_coff_adjust_symndx)\
-        (obfd, info, ibfd, sec, rel, adjustedp))
-     #define bfd_coff_link_add_one_symbol(info, abfd, name, flags, section,\
-                                          value, string, cp, coll, hashp)\
-       ((coff_backend_info (abfd)->_bfd_coff_link_add_one_symbol)\
-        (info, abfd, name, flags, section, value, string, cp, coll, hashp))
-
-     #define bfd_coff_link_output_has_begun(a,p) \
-       ((coff_backend_info (a)->_bfd_coff_link_output_has_begun) (a,p))
-     #define bfd_coff_final_link_postscript(a,p) \
-       ((coff_backend_info (a)->_bfd_coff_final_link_postscript) (a,p))
-
-3.2.2.7 Writing relocations
-...........................
-
-To write relocations, the back end steps though the canonical
-relocation table and create an `internal_reloc'. The symbol index to
-use is removed from the `offset' field in the symbol table supplied.
-The address comes directly from the sum of the section base address and
-the relocation offset; the type is dug directly from the howto field.
-Then the `internal_reloc' is swapped into the shape of an
-`external_reloc' and written out to disk.
-
-3.2.2.8 Reading linenumbers
-...........................
-
-Creating the linenumber table is done by reading in the entire coff
-linenumber table, and creating another table for internal use.
-
-   A coff linenumber table is structured so that each function is
-marked as having a line number of 0. Each line within the function is
-an offset from the first line in the function. The base of the line
-number information for the table is stored in the symbol associated
-with the function.
-
-   Note: The PE format uses line number 0 for a flag indicating a new
-source file.
-
-   The information is copied from the external to the internal table,
-and each symbol which marks a function is marked by pointing its...
-
-   How does this work ?
-
-3.2.2.9 Reading relocations
-...........................
-
-Coff relocations are easily transformed into the internal BFD form
-(`arelent').
-
-   Reading a coff relocation table is done in the following stages:
-
-   * Read the entire coff relocation table into memory.
-
-   * Process each relocation in turn; first swap it from the external
-     to the internal form.
-
-   * Turn the symbol referenced in the relocation's symbol index into a
-     pointer into the canonical symbol table.  This table is the same
-     as the one returned by a call to `bfd_canonicalize_symtab'. The
-     back end will call that routine and save the result if a
-     canonicalization hasn't been done.
-
-   * The reloc index is turned into a pointer to a howto structure, in
-     a back end specific way. For instance, the 386 and 960 use the
-     `r_type' to directly produce an index into a howto table vector;
-     the 88k subtracts a number from the `r_type' field and creates an
-     addend field.
-
-
-File: bfd.info,  Node: elf,  Next: mmo,  Prev: coff,  Up: BFD back ends
-
-3.3
-===
-
-ELF backends
-
-   BFD support for ELF formats is being worked on.  Currently, the best
-supported back ends are for sparc and i386 (running svr4 or Solaris 2).
-
-   Documentation of the internals of the support code still needs to be
-written.  The code is changing quickly enough that we haven't bothered
-yet.
-
-3.3.0.1 `bfd_elf_find_section'
-..............................
-
-*Synopsis*
-     struct elf_internal_shdr *bfd_elf_find_section (bfd *abfd, char *name);
-   *Description*
-Helper functions for GDB to locate the string tables.  Since BFD hides
-string tables from callers, GDB needs to use an internal hook to find
-them.  Sun's .stabstr, in particular, isn't even pointed to by the
-.stab section, so ordinary mechanisms wouldn't work to find it, even if
-we had some.
-
-
-File: bfd.info,  Node: mmo,  Prev: elf,  Up: BFD back ends
-
-3.4 mmo backend
-===============
-
-The mmo object format is used exclusively together with Professor
-Donald E. Knuth's educational 64-bit processor MMIX.  The simulator
-`mmix' which is available at
-`http://www-cs-faculty.stanford.edu/~knuth/programs/mmix.tar.gz'
-understands this format.  That package also includes a combined
-assembler and linker called `mmixal'.  The mmo format has no advantages
-feature-wise compared to e.g. ELF.  It is a simple non-relocatable
-object format with no support for archives or debugging information,
-except for symbol value information and line numbers (which is not yet
-implemented in BFD).  See
-`http://www-cs-faculty.stanford.edu/~knuth/mmix.html' for more
-information about MMIX.  The ELF format is used for intermediate object
-files in the BFD implementation.
-
-* Menu:
-
-* File layout::
-* Symbol-table::
-* mmo section mapping::
-
-
-File: bfd.info,  Node: File layout,  Next: Symbol-table,  Prev: mmo,  Up: mmo
-
-3.4.1 File layout
------------------
-
-The mmo file contents is not partitioned into named sections as with
-e.g. ELF.  Memory areas is formed by specifying the location of the
-data that follows.  Only the memory area `0x0000...00' to `0x01ff...ff'
-is executable, so it is used for code (and constants) and the area
-`0x2000...00' to `0x20ff...ff' is used for writable data.  *Note mmo
-section mapping::.
-
-   There is provision for specifying "special data" of 65536 different
-types.  We use type 80 (decimal), arbitrarily chosen the same as the
-ELF `e_machine' number for MMIX, filling it with section information
-normally found in ELF objects. *Note mmo section mapping::.
-
-   Contents is entered as 32-bit words, xor:ed over previous contents,
-always zero-initialized.  A word that starts with the byte `0x98' forms
-a command called a `lopcode', where the next byte distinguished between
-the thirteen lopcodes.  The two remaining bytes, called the `Y' and `Z'
-fields, or the `YZ' field (a 16-bit big-endian number), are used for
-various purposes different for each lopcode.  As documented in
-`http://www-cs-faculty.stanford.edu/~knuth/mmixal-intro.ps.gz', the
-lopcodes are:
-
-`lop_quote'
-     0x98000001.  The next word is contents, regardless of whether it
-     starts with 0x98 or not.
-
-`lop_loc'
-     0x9801YYZZ, where `Z' is 1 or 2.  This is a location directive,
-     setting the location for the next data to the next 32-bit word
-     (for Z = 1) or 64-bit word (for Z = 2), plus Y * 2^56.  Normally
-     `Y' is 0 for the text segment and 2 for the data segment.
-
-`lop_skip'
-     0x9802YYZZ.  Increase the current location by `YZ' bytes.
-
-`lop_fixo'
-     0x9803YYZZ, where `Z' is 1 or 2.  Store the current location as 64
-     bits into the location pointed to by the next 32-bit (Z = 1) or
-     64-bit (Z = 2) word, plus Y * 2^56.
-
-`lop_fixr'
-     0x9804YYZZ.  `YZ' is stored into the current location plus 2 - 4 *
-     YZ.
-
-`lop_fixrx'
-     0x980500ZZ.  `Z' is 16 or 24.  A value `L' derived from the
-     following 32-bit word are used in a manner similar to `YZ' in
-     lop_fixr: it is xor:ed into the current location minus 4 * L.  The
-     first byte of the word is 0 or 1.  If it is 1, then L = (LOWEST 24
-     BITS OF WORD) - 2^Z, if 0, then L = (LOWEST 24 BITS OF WORD).
-
-`lop_file'
-     0x9806YYZZ.  `Y' is the file number, `Z' is count of 32-bit words.
-     Set the file number to `Y' and the line counter to 0.  The next Z
-     * 4 bytes contain the file name, padded with zeros if the count is
-     not a multiple of four.  The same `Y' may occur multiple times,
-     but `Z' must be 0 for all but the first occurrence.
-
-`lop_line'
-     0x9807YYZZ.  `YZ' is the line number.  Together with lop_file, it
-     forms the source location for the next 32-bit word.  Note that for
-     each non-lopcode 32-bit word, line numbers are assumed incremented
-     by one.
-
-`lop_spec'
-     0x9808YYZZ.  `YZ' is the type number.  Data until the next lopcode
-     other than lop_quote forms special data of type `YZ'.  *Note mmo
-     section mapping::.
-
-     Other types than 80, (or type 80 with a content that does not
-     parse) is stored in sections named `.MMIX.spec_data.N' where N is
-     the `YZ'-type.  The flags for such a sections say not to allocate
-     or load the data.  The vma is 0.  Contents of multiple occurrences
-     of special data N is concatenated to the data of the previous
-     lop_spec Ns.  The location in data or code at which the lop_spec
-     occurred is lost.
-
-`lop_pre'
-     0x980901ZZ.  The first lopcode in a file.  The `Z' field forms the
-     length of header information in 32-bit words, where the first word
-     tells the time in seconds since `00:00:00 GMT Jan 1 1970'.
-
-`lop_post'
-     0x980a00ZZ.  Z > 32.  This lopcode follows after all
-     content-generating lopcodes in a program.  The `Z' field denotes
-     the value of `rG' at the beginning of the program.  The following
-     256 - Z big-endian 64-bit words are loaded into global registers
-     `$G' ... `$255'.
-
-`lop_stab'
-     0x980b0000.  The next-to-last lopcode in a program.  Must follow
-     immediately after the lop_post lopcode and its data.  After this
-     lopcode follows all symbols in a compressed format (*note
-     Symbol-table::).
-
-`lop_end'
-     0x980cYYZZ.  The last lopcode in a program.  It must follow the
-     lop_stab lopcode and its data.  The `YZ' field contains the number
-     of 32-bit words of symbol table information after the preceding
-     lop_stab lopcode.
-
-   Note that the lopcode "fixups"; `lop_fixr', `lop_fixrx' and
-`lop_fixo' are not generated by BFD, but are handled.  They are
-generated by `mmixal'.
-
-   This trivial one-label, one-instruction file:
-
-      :Main TRAP 1,2,3
-
-   can be represented this way in mmo:
-
-      0x98090101 - lop_pre, one 32-bit word with timestamp.
-      <timestamp>
-      0x98010002 - lop_loc, text segment, using a 64-bit address.
-                   Note that mmixal does not emit this for the file above.
-      0x00000000 - Address, high 32 bits.
-      0x00000000 - Address, low 32 bits.
-      0x98060002 - lop_file, 2 32-bit words for file-name.
-      0x74657374 - "test"
-      0x2e730000 - ".s\0\0"
-      0x98070001 - lop_line, line 1.
-      0x00010203 - TRAP 1,2,3
-      0x980a00ff - lop_post, setting $255 to 0.
-      0x00000000
-      0x00000000
-      0x980b0000 - lop_stab for ":Main" = 0, serial 1.
-      0x203a4040   *Note Symbol-table::.
-      0x10404020
-      0x4d206120
-      0x69016e00
-      0x81000000
-      0x980c0005 - lop_end; symbol table contained five 32-bit words.
-
-
-File: bfd.info,  Node: Symbol-table,  Next: mmo section mapping,  Prev: File layout,  Up: mmo
-
-3.4.2 Symbol table format
--------------------------
-
-From mmixal.w (or really, the generated mmixal.tex) in
-`http://www-cs-faculty.stanford.edu/~knuth/programs/mmix.tar.gz'):
-"Symbols are stored and retrieved by means of a `ternary search trie',
-following ideas of Bentley and Sedgewick. (See ACM-SIAM Symp. on
-Discrete Algorithms `8' (1997), 360-369; R.Sedgewick, `Algorithms in C'
-(Reading, Mass.  Addison-Wesley, 1998), `15.4'.)  Each trie node stores
-a character, and there are branches to subtries for the cases where a
-given character is less than, equal to, or greater than the character
-in the trie.  There also is a pointer to a symbol table entry if a
-symbol ends at the current node."
-
-   So it's a tree encoded as a stream of bytes.  The stream of bytes
-acts on a single virtual global symbol, adding and removing characters
-and signalling complete symbol points.  Here, we read the stream and
-create symbols at the completion points.
-
-   First, there's a control byte `m'.  If any of the listed bits in `m'
-is nonzero, we execute what stands at the right, in the listed order:
-
-      (MMO3_LEFT)
-      0x40 - Traverse left trie.
-             (Read a new command byte and recurse.)
-
-      (MMO3_SYMBITS)
-      0x2f - Read the next byte as a character and store it in the
-             current character position; increment character position.
-             Test the bits of `m':
-
-             (MMO3_WCHAR)
-             0x80 - The character is 16-bit (so read another byte,
-                    merge into current character.
-
-             (MMO3_TYPEBITS)
-             0xf  - We have a complete symbol; parse the type, value
-                    and serial number and do what should be done
-                    with a symbol.  The type and length information
-                    is in j = (m & 0xf).
-
-                    (MMO3_REGQUAL_BITS)
-                    j == 0xf: A register variable.  The following
-                              byte tells which register.
-                    j <= 8:   An absolute symbol.  Read j bytes as the
-                              big-endian number the symbol equals.
-                              A j = 2 with two zero bytes denotes an
-                              unknown symbol.
-                    j > 8:    As with j <= 8, but add (0x20 << 56)
-                              to the value in the following j - 8
-                              bytes.
-
-                    Then comes the serial number, as a variant of
-                    uleb128, but better named ubeb128:
-                    Read bytes and shift the previous value left 7
-                    (multiply by 128).  Add in the new byte, repeat
-                    until a byte has bit 7 set.  The serial number
-                    is the computed value minus 128.
-
-             (MMO3_MIDDLE)
-             0x20 - Traverse middle trie.  (Read a new command byte
-                    and recurse.)  Decrement character position.
-
-      (MMO3_RIGHT)
-      0x10 - Traverse right trie.  (Read a new command byte and
-             recurse.)
-
-   Let's look again at the `lop_stab' for the trivial file (*note File
-layout::).
-
-      0x980b0000 - lop_stab for ":Main" = 0, serial 1.
-      0x203a4040
-      0x10404020
-      0x4d206120
-      0x69016e00
-      0x81000000
-
-   This forms the trivial trie (note that the path between ":" and "M"
-is redundant):
-
-      203a     ":"
-      40       /
-      40      /
-      10      \
-      40      /
-      40     /
-      204d  "M"
-      2061  "a"
-      2069  "i"
-      016e  "n" is the last character in a full symbol, and
-            with a value represented in one byte.
-      00    The value is 0.
-      81    The serial number is 1.
-
Index: b/binutils-2.16.1/bfd/doc/bfd.info-2
===================================================================
--- a/binutils-2.16.1/bfd/doc/bfd.info-2
+++ /dev/null
@@ -1,1702 +0,0 @@
-This is ../.././bfd/doc/bfd.info, produced by makeinfo version 4.7 from
-../.././bfd/doc/bfd.texinfo.
-
-START-INFO-DIR-ENTRY
-* Bfd: (bfd).                   The Binary File Descriptor library.
-END-INFO-DIR-ENTRY
-
-   This file documents the BFD library.
-
-   Copyright (C) 1991, 2000, 2001, 2003 Free Software Foundation, Inc.
-
-   Permission is granted to copy, distribute and/or modify this document
-     under the terms of the GNU Free Documentation License, Version 1.1
-     or any later version published by the Free Software Foundation;
-   with no Invariant Sections, with no Front-Cover Texts, and with no
-    Back-Cover Texts.  A copy of the license is included in the
-section entitled "GNU Free Documentation License".
-
-
-File: bfd.info,  Node: mmo section mapping,  Prev: Symbol-table,  Up: mmo
-
-3.4.3 mmo section mapping
--------------------------
-
-The implementation in BFD uses special data type 80 (decimal) to
-encapsulate and describe named sections, containing e.g. debug
-information.  If needed, any datum in the encapsulation will be quoted
-using lop_quote.  First comes a 32-bit word holding the number of
-32-bit words containing the zero-terminated zero-padded segment name.
-After the name there's a 32-bit word holding flags describing the
-section type.  Then comes a 64-bit big-endian word with the section
-length (in bytes), then another with the section start address.
-Depending on the type of section, the contents might follow,
-zero-padded to 32-bit boundary.  For a loadable section (such as data
-or code), the contents might follow at some later point, not
-necessarily immediately, as a lop_loc with the same start address as in
-the section description, followed by the contents.  This in effect
-forms a descriptor that must be emitted before the actual contents.
-Sections described this way must not overlap.
-
-   For areas that don't have such descriptors, synthetic sections are
-formed by BFD.  Consecutive contents in the two memory areas
-`0x0000...00' to `0x01ff...ff' and `0x2000...00' to `0x20ff...ff' are
-entered in sections named `.text' and `.data' respectively.  If an area
-is not otherwise described, but would together with a neighboring lower
-area be less than `0x40000000' bytes long, it is joined with the lower
-area and the gap is zero-filled.  For other cases, a new section is
-formed, named `.MMIX.sec.N'.  Here, N is a number, a running count
-through the mmo file, starting at 0.
-
-   A loadable section specified as:
-
-      .section secname,"ax"
-      TETRA 1,2,3,4,-1,-2009
-      BYTE 80
-
-   and linked to address `0x4', is represented by the sequence:
-
-      0x98080050 - lop_spec 80
-      0x00000002 - two 32-bit words for the section name
-      0x7365636e - "secn"
-      0x616d6500 - "ame\0"
-      0x00000033 - flags CODE, READONLY, LOAD, ALLOC
-      0x00000000 - high 32 bits of section length
-      0x0000001c - section length is 28 bytes; 6 * 4 + 1 + alignment to 32 bits
-      0x00000000 - high 32 bits of section address
-      0x00000004 - section address is 4
-      0x98010002 - 64 bits with address of following data
-      0x00000000 - high 32 bits of address
-      0x00000004 - low 32 bits: data starts at address 4
-      0x00000001 - 1
-      0x00000002 - 2
-      0x00000003 - 3
-      0x00000004 - 4
-      0xffffffff - -1
-      0xfffff827 - -2009
-      0x50000000 - 80 as a byte, padded with zeros.
-
-   Note that the lop_spec wrapping does not include the section
-contents.  Compare this to a non-loaded section specified as:
-
-      .section thirdsec
-      TETRA 200001,100002
-      BYTE 38,40
-
-   This, when linked to address `0x200000000000001c', is represented by:
-
-      0x98080050 - lop_spec 80
-      0x00000002 - two 32-bit words for the section name
-      0x7365636e - "thir"
-      0x616d6500 - "dsec"
-      0x00000010 - flag READONLY
-      0x00000000 - high 32 bits of section length
-      0x0000000c - section length is 12 bytes; 2 * 4 + 2 + alignment to 32 bits
-      0x20000000 - high 32 bits of address
-      0x0000001c - low 32 bits of address 0x200000000000001c
-      0x00030d41 - 200001
-      0x000186a2 - 100002
-      0x26280000 - 38, 40 as bytes, padded with zeros
-
-   For the latter example, the section contents must not be loaded in
-memory, and is therefore specified as part of the special data.  The
-address is usually unimportant but might provide information for e.g.
-the DWARF 2 debugging format.
-
-
-File: bfd.info,  Node: GNU Free Documentation License,  Next: Index,  Prev: BFD back ends,  Up: Top
-
-Appendix A GNU Free Documentation License
-*****************************************
-
-                        Version 1.1, March 2000
-
-     Copyright (C) 2000, 2003 Free Software Foundation, Inc.
-     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
-     Everyone is permitted to copy and distribute verbatim copies
-     of this license document, but changing it is not allowed.
-
-
-  0. PREAMBLE
-
-     The purpose of this License is to make a manual, textbook, or other
-     written document "free" in the sense of freedom: to assure everyone
-     the effective freedom to copy and redistribute it, with or without
-     modifying it, either commercially or noncommercially.  Secondarily,
-     this License preserves for the author and publisher a way to get
-     credit for their work, while not being considered responsible for
-     modifications made by others.
-
-     This License is a kind of "copyleft", which means that derivative
-     works of the document must themselves be free in the same sense.
-     It complements the GNU General Public License, which is a copyleft
-     license designed for free software.
-
-     We have designed this License in order to use it for manuals for
-     free software, because free software needs free documentation: a
-     free program should come with manuals providing the same freedoms
-     that the software does.  But this License is not limited to
-     software manuals; it can be used for any textual work, regardless
-     of subject matter or whether it is published as a printed book.
-     We recommend this License principally for works whose purpose is
-     instruction or reference.
-
-
-  1. APPLICABILITY AND DEFINITIONS
-
-     This License applies to any manual or other work that contains a
-     notice placed by the copyright holder saying it can be distributed
-     under the terms of this License.  The "Document", below, refers to
-     any such manual or work.  Any member of the public is a licensee,
-     and is addressed as "you."
-
-     A "Modified Version" of the Document means any work containing the
-     Document or a portion of it, either copied verbatim, or with
-     modifications and/or translated into another language.
-
-     A "Secondary Section" is a named appendix or a front-matter
-     section of the Document that deals exclusively with the
-     relationship of the publishers or authors of the Document to the
-     Document's overall subject (or to related matters) and contains
-     nothing that could fall directly within that overall subject.
-     (For example, if the Document is in part a textbook of
-     mathematics, a Secondary Section may not explain any mathematics.)
-     The relationship could be a matter of historical connection with
-     the subject or with related matters, or of legal, commercial,
-     philosophical, ethical or political position regarding them.
-
-     The "Invariant Sections" are certain Secondary Sections whose
-     titles are designated, as being those of Invariant Sections, in
-     the notice that says that the Document is released under this
-     License.
-
-     The "Cover Texts" are certain short passages of text that are
-     listed, as Front-Cover Texts or Back-Cover Texts, in the notice
-     that says that the Document is released under this License.
-
-     A "Transparent" copy of the Document means a machine-readable copy,
-     represented in a format whose specification is available to the
-     general public, whose contents can be viewed and edited directly
-     and straightforwardly with generic text editors or (for images
-     composed of pixels) generic paint programs or (for drawings) some
-     widely available drawing editor, and that is suitable for input to
-     text formatters or for automatic translation to a variety of
-     formats suitable for input to text formatters.  A copy made in an
-     otherwise Transparent file format whose markup has been designed
-     to thwart or discourage subsequent modification by readers is not
-     Transparent.  A copy that is not "Transparent" is called "Opaque."
-
-     Examples of suitable formats for Transparent copies include plain
-     ASCII without markup, Texinfo input format, LaTeX input format,
-     SGML or XML using a publicly available DTD, and
-     standard-conforming simple HTML designed for human modification.
-     Opaque formats include PostScript, PDF, proprietary formats that
-     can be read and edited only by proprietary word processors, SGML
-     or XML for which the DTD and/or processing tools are not generally
-     available, and the machine-generated HTML produced by some word
-     processors for output purposes only.
-
-     The "Title Page" means, for a printed book, the title page itself,
-     plus such following pages as are needed to hold, legibly, the
-     material this License requires to appear in the title page.  For
-     works in formats which do not have any title page as such, "Title
-     Page" means the text near the most prominent appearance of the
-     work's title, preceding the beginning of the body of the text.
-
-  2. VERBATIM COPYING
-
-     You may copy and distribute the Document in any medium, either
-     commercially or noncommercially, provided that this License, the
-     copyright notices, and the license notice saying this License
-     applies to the Document are reproduced in all copies, and that you
-     add no other conditions whatsoever to those of this License.  You
-     may not use technical measures to obstruct or control the reading
-     or further copying of the copies you make or distribute.  However,
-     you may accept compensation in exchange for copies.  If you
-     distribute a large enough number of copies you must also follow
-     the conditions in section 3.
-
-     You may also lend copies, under the same conditions stated above,
-     and you may publicly display copies.
-
-  3. COPYING IN QUANTITY
-
-     If you publish printed copies of the Document numbering more than
-     100, and the Document's license notice requires Cover Texts, you
-     must enclose the copies in covers that carry, clearly and legibly,
-     all these Cover Texts: Front-Cover Texts on the front cover, and
-     Back-Cover Texts on the back cover.  Both covers must also clearly
-     and legibly identify you as the publisher of these copies.  The
-     front cover must present the full title with all words of the
-     title equally prominent and visible.  You may add other material
-     on the covers in addition.  Copying with changes limited to the
-     covers, as long as they preserve the title of the Document and
-     satisfy these conditions, can be treated as verbatim copying in
-     other respects.
-
-     If the required texts for either cover are too voluminous to fit
-     legibly, you should put the first ones listed (as many as fit
-     reasonably) on the actual cover, and continue the rest onto
-     adjacent pages.
-
-     If you publish or distribute Opaque copies of the Document
-     numbering more than 100, you must either include a
-     machine-readable Transparent copy along with each Opaque copy, or
-     state in or with each Opaque copy a publicly-accessible
-     computer-network location containing a complete Transparent copy
-     of the Document, free of added material, which the general
-     network-using public has access to download anonymously at no
-     charge using public-standard network protocols.  If you use the
-     latter option, you must take reasonably prudent steps, when you
-     begin distribution of Opaque copies in quantity, to ensure that
-     this Transparent copy will remain thus accessible at the stated
-     location until at least one year after the last time you
-     distribute an Opaque copy (directly or through your agents or
-     retailers) of that edition to the public.
-
-     It is requested, but not required, that you contact the authors of
-     the Document well before redistributing any large number of
-     copies, to give them a chance to provide you with an updated
-     version of the Document.
-
-  4. MODIFICATIONS
-
-     You may copy and distribute a Modified Version of the Document
-     under the conditions of sections 2 and 3 above, provided that you
-     release the Modified Version under precisely this License, with
-     the Modified Version filling the role of the Document, thus
-     licensing distribution and modification of the Modified Version to
-     whoever possesses a copy of it.  In addition, you must do these
-     things in the Modified Version:
-
-     A. Use in the Title Page (and on the covers, if any) a title
-     distinct    from that of the Document, and from those of previous
-     versions    (which should, if there were any, be listed in the
-     History section    of the Document).  You may use the same title
-     as a previous version    if the original publisher of that version
-     gives permission.
-     B. List on the Title Page, as authors, one or more persons or
-     entities    responsible for authorship of the modifications in the
-     Modified    Version, together with at least five of the principal
-     authors of the    Document (all of its principal authors, if it
-     has less than five).
-     C. State on the Title page the name of the publisher of the
-     Modified Version, as the publisher.
-     D. Preserve all the copyright notices of the Document.
-     E. Add an appropriate copyright notice for your modifications
-     adjacent to the other copyright notices.
-     F. Include, immediately after the copyright notices, a license
-     notice    giving the public permission to use the Modified Version
-     under the    terms of this License, in the form shown in the
-     Addendum below.
-     G. Preserve in that license notice the full lists of Invariant
-     Sections    and required Cover Texts given in the Document's
-     license notice.
-     H. Include an unaltered copy of this License.
-     I. Preserve the section entitled "History", and its title, and add
-     to    it an item stating at least the title, year, new authors, and
-       publisher of the Modified Version as given on the Title Page.
-     If    there is no section entitled "History" in the Document,
-     create one    stating the title, year, authors, and publisher of
-     the Document as    given on its Title Page, then add an item
-     describing the Modified    Version as stated in the previous
-     sentence.
-     J. Preserve the network location, if any, given in the Document for
-       public access to a Transparent copy of the Document, and
-     likewise    the network locations given in the Document for
-     previous versions    it was based on.  These may be placed in the
-     "History" section.     You may omit a network location for a work
-     that was published at    least four years before the Document
-     itself, or if the original    publisher of the version it refers
-     to gives permission.
-     K. In any section entitled "Acknowledgements" or "Dedications",
-     preserve the section's title, and preserve in the section all the
-      substance and tone of each of the contributor acknowledgements
-     and/or dedications given therein.
-     L. Preserve all the Invariant Sections of the Document,
-     unaltered in their text and in their titles.  Section numbers
-     or the equivalent are not considered part of the section titles.
-     M. Delete any section entitled "Endorsements."  Such a section
-     may not be included in the Modified Version.
-     N. Do not retitle any existing section as "Endorsements"    or to
-     conflict in title with any Invariant Section.
-
-     If the Modified Version includes new front-matter sections or
-     appendices that qualify as Secondary Sections and contain no
-     material copied from the Document, you may at your option
-     designate some or all of these sections as invariant.  To do this,
-     add their titles to the list of Invariant Sections in the Modified
-     Version's license notice.  These titles must be distinct from any
-     other section titles.
-
-     You may add a section entitled "Endorsements", provided it contains
-     nothing but endorsements of your Modified Version by various
-     parties-for example, statements of peer review or that the text has
-     been approved by an organization as the authoritative definition
-     of a standard.
-
-     You may add a passage of up to five words as a Front-Cover Text,
-     and a passage of up to 25 words as a Back-Cover Text, to the end
-     of the list of Cover Texts in the Modified Version.  Only one
-     passage of Front-Cover Text and one of Back-Cover Text may be
-     added by (or through arrangements made by) any one entity.  If the
-     Document already includes a cover text for the same cover,
-     previously added by you or by arrangement made by the same entity
-     you are acting on behalf of, you may not add another; but you may
-     replace the old one, on explicit permission from the previous
-     publisher that added the old one.
-
-     The author(s) and publisher(s) of the Document do not by this
-     License give permission to use their names for publicity for or to
-     assert or imply endorsement of any Modified Version.
-
-  5. COMBINING DOCUMENTS
-
-     You may combine the Document with other documents released under
-     this License, under the terms defined in section 4 above for
-     modified versions, provided that you include in the combination
-     all of the Invariant Sections of all of the original documents,
-     unmodified, and list them all as Invariant Sections of your
-     combined work in its license notice.
-
-     The combined work need only contain one copy of this License, and
-     multiple identical Invariant Sections may be replaced with a single
-     copy.  If there are multiple Invariant Sections with the same name
-     but different contents, make the title of each such section unique
-     by adding at the end of it, in parentheses, the name of the
-     original author or publisher of that section if known, or else a
-     unique number.  Make the same adjustment to the section titles in
-     the list of Invariant Sections in the license notice of the
-     combined work.
-
-     In the combination, you must combine any sections entitled
-     "History" in the various original documents, forming one section
-     entitled "History"; likewise combine any sections entitled
-     "Acknowledgements", and any sections entitled "Dedications."  You
-     must delete all sections entitled "Endorsements."
-
-  6. COLLECTIONS OF DOCUMENTS
-
-     You may make a collection consisting of the Document and other
-     documents released under this License, and replace the individual
-     copies of this License in the various documents with a single copy
-     that is included in the collection, provided that you follow the
-     rules of this License for verbatim copying of each of the
-     documents in all other respects.
-
-     You may extract a single document from such a collection, and
-     distribute it individually under this License, provided you insert
-     a copy of this License into the extracted document, and follow
-     this License in all other respects regarding verbatim copying of
-     that document.
-
-  7. AGGREGATION WITH INDEPENDENT WORKS
-
-     A compilation of the Document or its derivatives with other
-     separate and independent documents or works, in or on a volume of
-     a storage or distribution medium, does not as a whole count as a
-     Modified Version of the Document, provided no compilation
-     copyright is claimed for the compilation.  Such a compilation is
-     called an "aggregate", and this License does not apply to the
-     other self-contained works thus compiled with the Document, on
-     account of their being thus compiled, if they are not themselves
-     derivative works of the Document.
-
-     If the Cover Text requirement of section 3 is applicable to these
-     copies of the Document, then if the Document is less than one
-     quarter of the entire aggregate, the Document's Cover Texts may be
-     placed on covers that surround only the Document within the
-     aggregate.  Otherwise they must appear on covers around the whole
-     aggregate.
-
-  8. TRANSLATION
-
-     Translation is considered a kind of modification, so you may
-     distribute translations of the Document under the terms of section
-     4.  Replacing Invariant Sections with translations requires special
-     permission from their copyright holders, but you may include
-     translations of some or all Invariant Sections in addition to the
-     original versions of these Invariant Sections.  You may include a
-     translation of this License provided that you also include the
-     original English version of this License.  In case of a
-     disagreement between the translation and the original English
-     version of this License, the original English version will prevail.
-
-  9. TERMINATION
-
-     You may not copy, modify, sublicense, or distribute the Document
-     except as expressly provided for under this License.  Any other
-     attempt to copy, modify, sublicense or distribute the Document is
-     void, and will automatically terminate your rights under this
-     License.  However, parties who have received copies, or rights,
-     from you under this License will not have their licenses
-     terminated so long as such parties remain in full compliance.
-
- 10. FUTURE REVISIONS OF THIS LICENSE
-
-     The Free Software Foundation may publish new, revised versions of
-     the GNU Free Documentation License from time to time.  Such new
-     versions will be similar in spirit to the present version, but may
-     differ in detail to address new problems or concerns.  See
-     http://www.gnu.org/copyleft/.
-
-     Each version of the License is given a distinguishing version
-     number.  If the Document specifies that a particular numbered
-     version of this License "or any later version" applies to it, you
-     have the option of following the terms and conditions either of
-     that specified version or of any later version that has been
-     published (not as a draft) by the Free Software Foundation.  If
-     the Document does not specify a version number of this License,
-     you may choose any version ever published (not as a draft) by the
-     Free Software Foundation.
-
-
-ADDENDUM: How to use this License for your documents
-====================================================
-
-To use this License in a document you have written, include a copy of
-the License in the document and put the following copyright and license
-notices just after the title page:
-
-     Copyright (C)  YEAR  YOUR NAME.
-     Permission is granted to copy, distribute and/or modify this document
-     under the terms of the GNU Free Documentation License, Version 1.1
-     or any later version published by the Free Software Foundation;
-     with the Invariant Sections being LIST THEIR TITLES, with the
-     Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
-     A copy of the license is included in the section entitled "GNU
-     Free Documentation License."
-
-   If you have no Invariant Sections, write "with no Invariant Sections"
-instead of saying which ones are invariant.  If you have no Front-Cover
-Texts, write "no Front-Cover Texts" instead of "Front-Cover Texts being
-LIST"; likewise for Back-Cover Texts.
-
-   If your document contains nontrivial examples of program code, we
-recommend releasing these examples in parallel under your choice of
-free software license, such as the GNU General Public License, to
-permit their use in free software.
-
-
-File: bfd.info,  Node: Index,  Prev: GNU Free Documentation License,  Up: Top
-
-Index
-*****
-
- [index ]
-* Menu:
-
-* _bfd_final_link_relocate:              Relocating the section contents.
-                                                             (line   22)
-* _bfd_generic_link_add_archive_symbols: Adding symbols from an archive.
-                                                             (line   12)
-* _bfd_generic_link_add_one_symbol:      Adding symbols from an object file.
-                                                             (line   19)
-* _bfd_generic_make_empty_symbol:        symbol handling functions.
-                                                             (line   92)
-* _bfd_link_add_symbols in target vector: Adding Symbols to the Hash Table.
-                                                             (line    6)
-* _bfd_link_final_link in target vector: Performing the Final Link.
-                                                             (line    6)
-* _bfd_link_hash_table_create in target vector: Creating a Linker Hash Table.
-                                                             (line    6)
-* _bfd_relocate_contents:                Relocating the section contents.
-                                                             (line   22)
-* _bfd_strip_section_from_output:        section prototypes. (line  242)
-* aout_SIZE_machine_type:                aout.               (line  146)
-* aout_SIZE_mkobject:                    aout.               (line  138)
-* aout_SIZE_new_section_hook:            aout.               (line  175)
-* aout_SIZE_set_arch_mach:               aout.               (line  162)
-* aout_SIZE_some_aout_object_p:          aout.               (line  125)
-* aout_SIZE_swap_exec_header_in:         aout.               (line  101)
-* aout_SIZE_swap_exec_header_out:        aout.               (line  113)
-* arelent_chain:                         typedef arelent.    (line  338)
-* BFD:                                   Overview.           (line    6)
-* BFD canonical format:                  Canonical format.   (line   11)
-* bfd_alloc:                             Opening and Closing.
-                                                             (line  179)
-* bfd_alt_mach_code:                     BFD front end.      (line  588)
-* bfd_arch_bits_per_address:             Architectures.      (line  453)
-* bfd_arch_bits_per_byte:                Architectures.      (line  445)
-* bfd_arch_get_compatible:               Architectures.      (line  388)
-* bfd_arch_list:                         Architectures.      (line  379)
-* bfd_arch_mach_octets_per_byte:         Architectures.      (line  522)
-* bfd_cache_close:                       File Caching.       (line   53)
-* bfd_cache_close_all:                   File Caching.       (line   66)
-* bfd_cache_init:                        File Caching.       (line   45)
-* bfd_cache_lookup:                      File Caching.       (line   32)
-* bfd_cache_lookup_worker:               File Caching.       (line   91)
-* BFD_CACHE_MAX_OPEN macro:              File Caching.       (line   15)
-* bfd_calc_gnu_debuglink_crc32:          Opening and Closing.
-                                                             (line  197)
-* bfd_canonicalize_reloc:                BFD front end.      (line  315)
-* bfd_canonicalize_symtab:               symbol handling functions.
-                                                             (line   50)
-* bfd_check_format:                      Formats.            (line   18)
-* bfd_check_format_matches:              Formats.            (line   49)
-* bfd_check_overflow:                    typedef arelent.    (line  350)
-* bfd_close:                             Opening and Closing.
-                                                             (line  104)
-* bfd_close_all_done:                    Opening and Closing.
-                                                             (line  122)
-* bfd_coff_backend_data:                 coff.               (line  246)
-* bfd_copy_private_bfd_data:             BFD front end.      (line  454)
-* bfd_copy_private_header_data:          BFD front end.      (line  436)
-* bfd_copy_private_section_data:         section prototypes. (line  224)
-* bfd_copy_private_symbol_data:          symbol handling functions.
-                                                             (line  140)
-* bfd_core_file_failing_command:         Core Files.         (line    9)
-* bfd_core_file_failing_signal:          Core Files.         (line   18)
-* bfd_create:                            Opening and Closing.
-                                                             (line  141)
-* bfd_create_gnu_debuglink_section:      Opening and Closing.
-                                                             (line  263)
-* bfd_decode_symclass:                   symbol handling functions.
-                                                             (line  111)
-* bfd_default_arch_struct:               Architectures.      (line  400)
-* bfd_default_compatible:                Architectures.      (line  462)
-* bfd_default_reloc_type_lookup:         howto manager.      (line 1704)
-* bfd_default_scan:                      Architectures.      (line  471)
-* bfd_default_set_arch_mach:             Architectures.      (line  418)
-* bfd_elf_find_section:                  elf.                (line   15)
-* bfd_errmsg:                            BFD front end.      (line  243)
-* bfd_fdopenr:                           Opening and Closing.
-                                                             (line   22)
-* bfd_fill_in_gnu_debuglink_section:     Opening and Closing.
-                                                             (line  277)
-* bfd_find_target:                       bfd_target.         (line  420)
-* bfd_follow_gnu_debuglink:              Opening and Closing.
-                                                             (line  242)
-* bfd_format_string:                     Formats.            (line   76)
-* bfd_generic_discard_group:             section prototypes. (line  264)
-* bfd_generic_gc_sections:               howto manager.      (line 1735)
-* bfd_generic_get_relocated_section_contents: howto manager. (line 1755)
-* bfd_generic_is_group_section:          section prototypes. (line  256)
-* bfd_generic_merge_sections:            howto manager.      (line 1745)
-* bfd_generic_relax_section:             howto manager.      (line 1722)
-* bfd_get_arch:                          Architectures.      (line  429)
-* bfd_get_arch_info:                     Architectures.      (line  481)
-* bfd_get_arch_size:                     BFD front end.      (line  359)
-* bfd_get_error:                         BFD front end.      (line  226)
-* bfd_get_error_handler:                 BFD front end.      (line  294)
-* bfd_get_gp_size:                       BFD front end.      (line  400)
-* bfd_get_mach:                          Architectures.      (line  437)
-* bfd_get_mtime:                         BFD front end.      (line  676)
-* bfd_get_next_mapent:                   Archives.           (line   49)
-* bfd_get_reloc_code_name:               howto manager.      (line 1713)
-* bfd_get_reloc_size:                    typedef arelent.    (line  329)
-* bfd_get_reloc_upper_bound:             BFD front end.      (line  305)
-* bfd_get_section_by_name:               section prototypes. (line   17)
-* bfd_get_section_by_name_if:            section prototypes. (line   31)
-* bfd_get_section_contents:              section prototypes. (line  197)
-* bfd_get_sign_extend_vma:               BFD front end.      (line  372)
-* bfd_get_size <1>:                      Internal.           (line   22)
-* bfd_get_size:                          BFD front end.      (line  685)
-* bfd_get_symtab_upper_bound:            symbol handling functions.
-                                                             (line    6)
-* bfd_get_unique_section_name:           section prototypes. (line   50)
-* bfd_h_put_size:                        Internal.           (line   94)
-* bfd_hash_allocate:                     Creating and Freeing a Hash Table.
-                                                             (line   17)
-* bfd_hash_lookup:                       Looking Up or Entering a String.
-                                                             (line    6)
-* bfd_hash_newfunc:                      Creating and Freeing a Hash Table.
-                                                             (line   12)
-* bfd_hash_set_default_size:             Creating and Freeing a Hash Table.
-                                                             (line   25)
-* bfd_hash_table_free:                   Creating and Freeing a Hash Table.
-                                                             (line   21)
-* bfd_hash_table_init:                   Creating and Freeing a Hash Table.
-                                                             (line    6)
-* bfd_hash_table_init_n:                 Creating and Freeing a Hash Table.
-                                                             (line    6)
-* bfd_hash_traverse:                     Traversing a Hash Table.
-                                                             (line    6)
-* bfd_init:                              Initialization.     (line    8)
-* bfd_install_relocation:                typedef arelent.    (line  391)
-* bfd_is_local_label:                    symbol handling functions.
-                                                             (line   17)
-* bfd_is_local_label_name:               symbol handling functions.
-                                                             (line   26)
-* bfd_is_target_special_symbol:          symbol handling functions.
-                                                             (line   38)
-* bfd_is_undefined_symclass:             symbol handling functions.
-                                                             (line  120)
-* bfd_last_cache:                        File Caching.       (line   22)
-* bfd_link_split_section:                Writing the symbol table.
-                                                             (line   44)
-* bfd_log2:                              Internal.           (line  161)
-* bfd_lookup_arch:                       Architectures.      (line  489)
-* bfd_make_debug_symbol:                 symbol handling functions.
-                                                             (line  102)
-* bfd_make_empty_symbol:                 symbol handling functions.
-                                                             (line   78)
-* bfd_make_readable:                     Opening and Closing.
-                                                             (line  165)
-* bfd_make_section:                      section prototypes. (line   98)
-* bfd_make_section_anyway:               section prototypes. (line   82)
-* bfd_make_section_old_way:              section prototypes. (line   62)
-* bfd_make_writable:                     Opening and Closing.
-                                                             (line  151)
-* bfd_malloc_and_get_section:            section prototypes. (line  214)
-* bfd_map_over_sections:                 section prototypes. (line  124)
-* bfd_merge_private_bfd_data:            BFD front end.      (line  470)
-* bfd_octets_per_byte:                   Architectures.      (line  512)
-* bfd_open_file:                         File Caching.       (line   79)
-* bfd_openr:                             Opening and Closing.
-                                                             (line    6)
-* bfd_openr_iovec:                       Opening and Closing.
-                                                             (line   52)
-* bfd_openr_next_archived_file:          Archives.           (line   75)
-* bfd_openstreamr:                       Opening and Closing.
-                                                             (line   43)
-* bfd_openw:                             Opening and Closing.
-                                                             (line   92)
-* bfd_perform_relocation:                typedef arelent.    (line  366)
-* bfd_perror:                            BFD front end.      (line  252)
-* bfd_preserve_finish:                   BFD front end.      (line  636)
-* bfd_preserve_restore:                  BFD front end.      (line  626)
-* bfd_preserve_save:                     BFD front end.      (line  610)
-* bfd_print_symbol_vandf:                symbol handling functions.
-                                                             (line   70)
-* bfd_printable_arch_mach:               Architectures.      (line  500)
-* bfd_printable_name:                    Architectures.      (line  360)
-* bfd_put_size:                          Internal.           (line   19)
-* BFD_RELOC_12_PCREL:                    howto manager.      (line   39)
-* BFD_RELOC_14:                          howto manager.      (line   31)
-* BFD_RELOC_16:                          howto manager.      (line   30)
-* BFD_RELOC_16_BASEREL:                  howto manager.      (line   80)
-* BFD_RELOC_16_GOT_PCREL:                howto manager.      (line   52)
-* BFD_RELOC_16_GOTOFF:                   howto manager.      (line   55)
-* BFD_RELOC_16_PCREL:                    howto manager.      (line   38)
-* BFD_RELOC_16_PCREL_S2:                 howto manager.      (line   92)
-* BFD_RELOC_16_PLT_PCREL:                howto manager.      (line   63)
-* BFD_RELOC_16_PLTOFF:                   howto manager.      (line   67)
-* BFD_RELOC_16C_ABS20:                   howto manager.      (line 1464)
-* BFD_RELOC_16C_ABS20_C:                 howto manager.      (line 1465)
-* BFD_RELOC_16C_ABS24:                   howto manager.      (line 1466)
-* BFD_RELOC_16C_ABS24_C:                 howto manager.      (line 1467)
-* BFD_RELOC_16C_DISP04:                  howto manager.      (line 1444)
-* BFD_RELOC_16C_DISP04_C:                howto manager.      (line 1445)
-* BFD_RELOC_16C_DISP08:                  howto manager.      (line 1446)
-* BFD_RELOC_16C_DISP08_C:                howto manager.      (line 1447)
-* BFD_RELOC_16C_DISP16:                  howto manager.      (line 1448)
-* BFD_RELOC_16C_DISP16_C:                howto manager.      (line 1449)
-* BFD_RELOC_16C_DISP24:                  howto manager.      (line 1450)
-* BFD_RELOC_16C_DISP24_C:                howto manager.      (line 1451)
-* BFD_RELOC_16C_DISP24a:                 howto manager.      (line 1452)
-* BFD_RELOC_16C_DISP24a_C:               howto manager.      (line 1453)
-* BFD_RELOC_16C_IMM04:                   howto manager.      (line 1468)
-* BFD_RELOC_16C_IMM04_C:                 howto manager.      (line 1469)
-* BFD_RELOC_16C_IMM16:                   howto manager.      (line 1470)
-* BFD_RELOC_16C_IMM16_C:                 howto manager.      (line 1471)
-* BFD_RELOC_16C_IMM20:                   howto manager.      (line 1472)
-* BFD_RELOC_16C_IMM20_C:                 howto manager.      (line 1473)
-* BFD_RELOC_16C_IMM24:                   howto manager.      (line 1474)
-* BFD_RELOC_16C_IMM24_C:                 howto manager.      (line 1475)
-* BFD_RELOC_16C_IMM32:                   howto manager.      (line 1476)
-* BFD_RELOC_16C_IMM32_C:                 howto manager.      (line 1477)
-* BFD_RELOC_16C_NUM08:                   howto manager.      (line 1438)
-* BFD_RELOC_16C_NUM08_C:                 howto manager.      (line 1439)
-* BFD_RELOC_16C_NUM16:                   howto manager.      (line 1440)
-* BFD_RELOC_16C_NUM16_C:                 howto manager.      (line 1441)
-* BFD_RELOC_16C_NUM32:                   howto manager.      (line 1442)
-* BFD_RELOC_16C_NUM32_C:                 howto manager.      (line 1443)
-* BFD_RELOC_16C_REG04:                   howto manager.      (line 1454)
-* BFD_RELOC_16C_REG04_C:                 howto manager.      (line 1455)
-* BFD_RELOC_16C_REG04a:                  howto manager.      (line 1456)
-* BFD_RELOC_16C_REG04a_C:                howto manager.      (line 1457)
-* BFD_RELOC_16C_REG14:                   howto manager.      (line 1458)
-* BFD_RELOC_16C_REG14_C:                 howto manager.      (line 1459)
-* BFD_RELOC_16C_REG16:                   howto manager.      (line 1460)
-* BFD_RELOC_16C_REG16_C:                 howto manager.      (line 1461)
-* BFD_RELOC_16C_REG20:                   howto manager.      (line 1462)
-* BFD_RELOC_16C_REG20_C:                 howto manager.      (line 1463)
-* BFD_RELOC_23_PCREL_S2:                 howto manager.      (line   93)
-* BFD_RELOC_24:                          howto manager.      (line   29)
-* BFD_RELOC_24_PCREL:                    howto manager.      (line   37)
-* BFD_RELOC_24_PLT_PCREL:                howto manager.      (line   62)
-* BFD_RELOC_26:                          howto manager.      (line   28)
-* BFD_RELOC_32:                          howto manager.      (line   27)
-* BFD_RELOC_32_BASEREL:                  howto manager.      (line   79)
-* BFD_RELOC_32_GOT_PCREL:                howto manager.      (line   51)
-* BFD_RELOC_32_GOTOFF:                   howto manager.      (line   54)
-* BFD_RELOC_32_PCREL:                    howto manager.      (line   36)
-* BFD_RELOC_32_PCREL_S2:                 howto manager.      (line   91)
-* BFD_RELOC_32_PLT_PCREL:                howto manager.      (line   61)
-* BFD_RELOC_32_PLTOFF:                   howto manager.      (line   66)
-* BFD_RELOC_32_SECREL:                   howto manager.      (line   48)
-* BFD_RELOC_386_COPY:                    howto manager.      (line  422)
-* BFD_RELOC_386_GLOB_DAT:                howto manager.      (line  423)
-* BFD_RELOC_386_GOT32:                   howto manager.      (line  420)
-* BFD_RELOC_386_GOTOFF:                  howto manager.      (line  426)
-* BFD_RELOC_386_GOTPC:                   howto manager.      (line  427)
-* BFD_RELOC_386_JUMP_SLOT:               howto manager.      (line  424)
-* BFD_RELOC_386_PLT32:                   howto manager.      (line  421)
-* BFD_RELOC_386_RELATIVE:                howto manager.      (line  425)
-* BFD_RELOC_386_TLS_DTPMOD32:            howto manager.      (line  437)
-* BFD_RELOC_386_TLS_DTPOFF32:            howto manager.      (line  438)
-* BFD_RELOC_386_TLS_GD:                  howto manager.      (line  432)
-* BFD_RELOC_386_TLS_GOTIE:               howto manager.      (line  430)
-* BFD_RELOC_386_TLS_IE:                  howto manager.      (line  429)
-* BFD_RELOC_386_TLS_IE_32:               howto manager.      (line  435)
-* BFD_RELOC_386_TLS_LDM:                 howto manager.      (line  433)
-* BFD_RELOC_386_TLS_LDO_32:              howto manager.      (line  434)
-* BFD_RELOC_386_TLS_LE:                  howto manager.      (line  431)
-* BFD_RELOC_386_TLS_LE_32:               howto manager.      (line  436)
-* BFD_RELOC_386_TLS_TPOFF:               howto manager.      (line  428)
-* BFD_RELOC_386_TLS_TPOFF32:             howto manager.      (line  439)
-* BFD_RELOC_390_12:                      howto manager.      (line 1155)
-* BFD_RELOC_390_20:                      howto manager.      (line 1255)
-* BFD_RELOC_390_COPY:                    howto manager.      (line 1164)
-* BFD_RELOC_390_GLOB_DAT:                howto manager.      (line 1167)
-* BFD_RELOC_390_GOT12:                   howto manager.      (line 1158)
-* BFD_RELOC_390_GOT16:                   howto manager.      (line 1179)
-* BFD_RELOC_390_GOT20:                   howto manager.      (line 1256)
-* BFD_RELOC_390_GOT64:                   howto manager.      (line 1197)
-* BFD_RELOC_390_GOTENT:                  howto manager.      (line 1203)
-* BFD_RELOC_390_GOTOFF64:                howto manager.      (line 1206)
-* BFD_RELOC_390_GOTPC:                   howto manager.      (line 1176)
-* BFD_RELOC_390_GOTPCDBL:                howto manager.      (line 1194)
-* BFD_RELOC_390_GOTPLT12:                howto manager.      (line 1209)
-* BFD_RELOC_390_GOTPLT16:                howto manager.      (line 1212)
-* BFD_RELOC_390_GOTPLT20:                howto manager.      (line 1257)
-* BFD_RELOC_390_GOTPLT32:                howto manager.      (line 1215)
-* BFD_RELOC_390_GOTPLT64:                howto manager.      (line 1218)
-* BFD_RELOC_390_GOTPLTENT:               howto manager.      (line 1221)
-* BFD_RELOC_390_JMP_SLOT:                howto manager.      (line 1170)
-* BFD_RELOC_390_PC16DBL:                 howto manager.      (line 1182)
-* BFD_RELOC_390_PC32DBL:                 howto manager.      (line 1188)
-* BFD_RELOC_390_PLT16DBL:                howto manager.      (line 1185)
-* BFD_RELOC_390_PLT32:                   howto manager.      (line 1161)
-* BFD_RELOC_390_PLT32DBL:                howto manager.      (line 1191)
-* BFD_RELOC_390_PLT64:                   howto manager.      (line 1200)
-* BFD_RELOC_390_PLTOFF16:                howto manager.      (line 1224)
-* BFD_RELOC_390_PLTOFF32:                howto manager.      (line 1227)
-* BFD_RELOC_390_PLTOFF64:                howto manager.      (line 1230)
-* BFD_RELOC_390_RELATIVE:                howto manager.      (line 1173)
-* BFD_RELOC_390_TLS_DTPMOD:              howto manager.      (line 1250)
-* BFD_RELOC_390_TLS_DTPOFF:              howto manager.      (line 1251)
-* BFD_RELOC_390_TLS_GD32:                howto manager.      (line 1236)
-* BFD_RELOC_390_TLS_GD64:                howto manager.      (line 1237)
-* BFD_RELOC_390_TLS_GDCALL:              howto manager.      (line 1234)
-* BFD_RELOC_390_TLS_GOTIE12:             howto manager.      (line 1238)
-* BFD_RELOC_390_TLS_GOTIE20:             howto manager.      (line 1258)
-* BFD_RELOC_390_TLS_GOTIE32:             howto manager.      (line 1239)
-* BFD_RELOC_390_TLS_GOTIE64:             howto manager.      (line 1240)
-* BFD_RELOC_390_TLS_IE32:                howto manager.      (line 1243)
-* BFD_RELOC_390_TLS_IE64:                howto manager.      (line 1244)
-* BFD_RELOC_390_TLS_IEENT:               howto manager.      (line 1245)
-* BFD_RELOC_390_TLS_LDCALL:              howto manager.      (line 1235)
-* BFD_RELOC_390_TLS_LDM32:               howto manager.      (line 1241)
-* BFD_RELOC_390_TLS_LDM64:               howto manager.      (line 1242)
-* BFD_RELOC_390_TLS_LDO32:               howto manager.      (line 1248)
-* BFD_RELOC_390_TLS_LDO64:               howto manager.      (line 1249)
-* BFD_RELOC_390_TLS_LE32:                howto manager.      (line 1246)
-* BFD_RELOC_390_TLS_LE64:                howto manager.      (line 1247)
-* BFD_RELOC_390_TLS_LOAD:                howto manager.      (line 1233)
-* BFD_RELOC_390_TLS_TPOFF:               howto manager.      (line 1252)
-* BFD_RELOC_64:                          howto manager.      (line   26)
-* BFD_RELOC_64_PCREL:                    howto manager.      (line   35)
-* BFD_RELOC_64_PLT_PCREL:                howto manager.      (line   60)
-* BFD_RELOC_64_PLTOFF:                   howto manager.      (line   65)
-* BFD_RELOC_68K_GLOB_DAT:                howto manager.      (line   74)
-* BFD_RELOC_68K_JMP_SLOT:                howto manager.      (line   75)
-* BFD_RELOC_68K_RELATIVE:                howto manager.      (line   76)
-* BFD_RELOC_8:                           howto manager.      (line   32)
-* BFD_RELOC_860_COPY:                    howto manager.      (line 1543)
-* BFD_RELOC_860_GLOB_DAT:                howto manager.      (line 1544)
-* BFD_RELOC_860_HAGOT:                   howto manager.      (line 1569)
-* BFD_RELOC_860_HAGOTOFF:                howto manager.      (line 1570)
-* BFD_RELOC_860_HAPC:                    howto manager.      (line 1571)
-* BFD_RELOC_860_HIGH:                    howto manager.      (line 1572)
-* BFD_RELOC_860_HIGHADJ:                 howto manager.      (line 1568)
-* BFD_RELOC_860_HIGOT:                   howto manager.      (line 1573)
-* BFD_RELOC_860_HIGOTOFF:                howto manager.      (line 1574)
-* BFD_RELOC_860_JUMP_SLOT:               howto manager.      (line 1545)
-* BFD_RELOC_860_LOGOT0:                  howto manager.      (line 1557)
-* BFD_RELOC_860_LOGOT1:                  howto manager.      (line 1559)
-* BFD_RELOC_860_LOGOTOFF0:               howto manager.      (line 1561)
-* BFD_RELOC_860_LOGOTOFF1:               howto manager.      (line 1563)
-* BFD_RELOC_860_LOGOTOFF2:               howto manager.      (line 1565)
-* BFD_RELOC_860_LOGOTOFF3:               howto manager.      (line 1566)
-* BFD_RELOC_860_LOPC:                    howto manager.      (line 1567)
-* BFD_RELOC_860_LOW0:                    howto manager.      (line 1550)
-* BFD_RELOC_860_LOW1:                    howto manager.      (line 1552)
-* BFD_RELOC_860_LOW2:                    howto manager.      (line 1554)
-* BFD_RELOC_860_LOW3:                    howto manager.      (line 1556)
-* BFD_RELOC_860_PC16:                    howto manager.      (line 1549)
-* BFD_RELOC_860_PC26:                    howto manager.      (line 1547)
-* BFD_RELOC_860_PLT26:                   howto manager.      (line 1548)
-* BFD_RELOC_860_RELATIVE:                howto manager.      (line 1546)
-* BFD_RELOC_860_SPGOT0:                  howto manager.      (line 1558)
-* BFD_RELOC_860_SPGOT1:                  howto manager.      (line 1560)
-* BFD_RELOC_860_SPGOTOFF0:               howto manager.      (line 1562)
-* BFD_RELOC_860_SPGOTOFF1:               howto manager.      (line 1564)
-* BFD_RELOC_860_SPLIT0:                  howto manager.      (line 1551)
-* BFD_RELOC_860_SPLIT1:                  howto manager.      (line 1553)
-* BFD_RELOC_860_SPLIT2:                  howto manager.      (line 1555)
-* BFD_RELOC_8_BASEREL:                   howto manager.      (line   84)
-* BFD_RELOC_8_FFnn:                      howto manager.      (line   88)
-* BFD_RELOC_8_GOT_PCREL:                 howto manager.      (line   53)
-* BFD_RELOC_8_GOTOFF:                    howto manager.      (line   59)
-* BFD_RELOC_8_PCREL:                     howto manager.      (line   40)
-* BFD_RELOC_8_PLT_PCREL:                 howto manager.      (line   64)
-* BFD_RELOC_8_PLTOFF:                    howto manager.      (line   71)
-* BFD_RELOC_ALPHA_BRSGP:                 howto manager.      (line  259)
-* BFD_RELOC_ALPHA_CODEADDR:              howto manager.      (line  250)
-* BFD_RELOC_ALPHA_DTPMOD64:              howto manager.      (line  266)
-* BFD_RELOC_ALPHA_DTPREL16:              howto manager.      (line  271)
-* BFD_RELOC_ALPHA_DTPREL64:              howto manager.      (line  268)
-* BFD_RELOC_ALPHA_DTPREL_HI16:           howto manager.      (line  269)
-* BFD_RELOC_ALPHA_DTPREL_LO16:           howto manager.      (line  270)
-* BFD_RELOC_ALPHA_ELF_LITERAL:           howto manager.      (line  215)
-* BFD_RELOC_ALPHA_GOTDTPREL16:           howto manager.      (line  267)
-* BFD_RELOC_ALPHA_GOTTPREL16:            howto manager.      (line  272)
-* BFD_RELOC_ALPHA_GPDISP:                howto manager.      (line  209)
-* BFD_RELOC_ALPHA_GPDISP_HI16:           howto manager.      (line  195)
-* BFD_RELOC_ALPHA_GPDISP_LO16:           howto manager.      (line  203)
-* BFD_RELOC_ALPHA_GPREL_HI16:            howto manager.      (line  254)
-* BFD_RELOC_ALPHA_GPREL_LO16:            howto manager.      (line  255)
-* BFD_RELOC_ALPHA_HINT:                  howto manager.      (line  241)
-* BFD_RELOC_ALPHA_LINKAGE:               howto manager.      (line  246)
-* BFD_RELOC_ALPHA_LITERAL:               howto manager.      (line  214)
-* BFD_RELOC_ALPHA_LITUSE:                howto manager.      (line  216)
-* BFD_RELOC_ALPHA_TLSGD:                 howto manager.      (line  264)
-* BFD_RELOC_ALPHA_TLSLDM:                howto manager.      (line  265)
-* BFD_RELOC_ALPHA_TPREL16:               howto manager.      (line  276)
-* BFD_RELOC_ALPHA_TPREL64:               howto manager.      (line  273)
-* BFD_RELOC_ALPHA_TPREL_HI16:            howto manager.      (line  274)
-* BFD_RELOC_ALPHA_TPREL_LO16:            howto manager.      (line  275)
-* BFD_RELOC_ARC_B22_PCREL:               howto manager.      (line  754)
-* BFD_RELOC_ARC_B26:                     howto manager.      (line  759)
-* BFD_RELOC_ARM_ADR_IMM:                 howto manager.      (line  615)
-* BFD_RELOC_ARM_ADRL_IMMEDIATE:          howto manager.      (line  607)
-* BFD_RELOC_ARM_COPY:                    howto manager.      (line  628)
-* BFD_RELOC_ARM_CP_OFF_IMM:              howto manager.      (line  613)
-* BFD_RELOC_ARM_CP_OFF_IMM_S2:           howto manager.      (line  614)
-* BFD_RELOC_ARM_GLOB_DAT:                howto manager.      (line  629)
-* BFD_RELOC_ARM_GOT12:                   howto manager.      (line  625)
-* BFD_RELOC_ARM_GOT32:                   howto manager.      (line  626)
-* BFD_RELOC_ARM_GOTOFF:                  howto manager.      (line  632)
-* BFD_RELOC_ARM_GOTPC:                   howto manager.      (line  633)
-* BFD_RELOC_ARM_HWLITERAL:               howto manager.      (line  620)
-* BFD_RELOC_ARM_IMMEDIATE:               howto manager.      (line  606)
-* BFD_RELOC_ARM_IN_POOL:                 howto manager.      (line  618)
-* BFD_RELOC_ARM_JUMP_SLOT:               howto manager.      (line  627)
-* BFD_RELOC_ARM_LDR_IMM:                 howto manager.      (line  616)
-* BFD_RELOC_ARM_LITERAL:                 howto manager.      (line  617)
-* BFD_RELOC_ARM_MULTI:                   howto manager.      (line  612)
-* BFD_RELOC_ARM_OFFSET_IMM:              howto manager.      (line  608)
-* BFD_RELOC_ARM_OFFSET_IMM8:             howto manager.      (line  619)
-* BFD_RELOC_ARM_PCREL_BLX:               howto manager.      (line  596)
-* BFD_RELOC_ARM_PCREL_BRANCH:            howto manager.      (line  592)
-* BFD_RELOC_ARM_PLT32:                   howto manager.      (line  630)
-* BFD_RELOC_ARM_PREL31:                  howto manager.      (line  652)
-* BFD_RELOC_ARM_RELATIVE:                howto manager.      (line  631)
-* BFD_RELOC_ARM_ROSEGREL32:              howto manager.      (line  641)
-* BFD_RELOC_ARM_SBREL32:                 howto manager.      (line  644)
-* BFD_RELOC_ARM_SHIFT_IMM:               howto manager.      (line  609)
-* BFD_RELOC_ARM_SMI:                     howto manager.      (line  610)
-* BFD_RELOC_ARM_SWI:                     howto manager.      (line  611)
-* BFD_RELOC_ARM_TARGET1:                 howto manager.      (line  637)
-* BFD_RELOC_ARM_TARGET2:                 howto manager.      (line  647)
-* BFD_RELOC_ARM_THUMB_ADD:               howto manager.      (line  621)
-* BFD_RELOC_ARM_THUMB_IMM:               howto manager.      (line  622)
-* BFD_RELOC_ARM_THUMB_OFFSET:            howto manager.      (line  624)
-* BFD_RELOC_ARM_THUMB_SHIFT:             howto manager.      (line  623)
-* BFD_RELOC_AVR_13_PCREL:                howto manager.      (line 1076)
-* BFD_RELOC_AVR_16_PM:                   howto manager.      (line 1080)
-* BFD_RELOC_AVR_6:                       howto manager.      (line 1147)
-* BFD_RELOC_AVR_6_ADIW:                  howto manager.      (line 1151)
-* BFD_RELOC_AVR_7_PCREL:                 howto manager.      (line 1072)
-* BFD_RELOC_AVR_CALL:                    howto manager.      (line 1139)
-* BFD_RELOC_AVR_HH8_LDI:                 howto manager.      (line 1092)
-* BFD_RELOC_AVR_HH8_LDI_NEG:             howto manager.      (line 1107)
-* BFD_RELOC_AVR_HH8_LDI_PM:              howto manager.      (line 1120)
-* BFD_RELOC_AVR_HH8_LDI_PM_NEG:          howto manager.      (line 1134)
-* BFD_RELOC_AVR_HI8_LDI:                 howto manager.      (line 1088)
-* BFD_RELOC_AVR_HI8_LDI_NEG:             howto manager.      (line 1102)
-* BFD_RELOC_AVR_HI8_LDI_PM:              howto manager.      (line 1116)
-* BFD_RELOC_AVR_HI8_LDI_PM_NEG:          howto manager.      (line 1129)
-* BFD_RELOC_AVR_LDI:                     howto manager.      (line 1143)
-* BFD_RELOC_AVR_LO8_LDI:                 howto manager.      (line 1084)
-* BFD_RELOC_AVR_LO8_LDI_NEG:             howto manager.      (line 1097)
-* BFD_RELOC_AVR_LO8_LDI_PM:              howto manager.      (line 1112)
-* BFD_RELOC_AVR_LO8_LDI_PM_NEG:          howto manager.      (line 1125)
-* bfd_reloc_code_type:                   howto manager.      (line   10)
-* BFD_RELOC_CRIS_16_GOT:                 howto manager.      (line 1524)
-* BFD_RELOC_CRIS_16_GOTPLT:              howto manager.      (line 1530)
-* BFD_RELOC_CRIS_32_GOT:                 howto manager.      (line 1521)
-* BFD_RELOC_CRIS_32_GOTPLT:              howto manager.      (line 1527)
-* BFD_RELOC_CRIS_32_GOTREL:              howto manager.      (line 1533)
-* BFD_RELOC_CRIS_32_PLT_GOTREL:          howto manager.      (line 1536)
-* BFD_RELOC_CRIS_32_PLT_PCREL:           howto manager.      (line 1539)
-* BFD_RELOC_CRIS_BDISP8:                 howto manager.      (line 1502)
-* BFD_RELOC_CRIS_COPY:                   howto manager.      (line 1515)
-* BFD_RELOC_CRIS_GLOB_DAT:               howto manager.      (line 1516)
-* BFD_RELOC_CRIS_JUMP_SLOT:              howto manager.      (line 1517)
-* BFD_RELOC_CRIS_LAPCQ_OFFSET:           howto manager.      (line 1510)
-* BFD_RELOC_CRIS_RELATIVE:               howto manager.      (line 1518)
-* BFD_RELOC_CRIS_SIGNED_16:              howto manager.      (line 1508)
-* BFD_RELOC_CRIS_SIGNED_6:               howto manager.      (line 1504)
-* BFD_RELOC_CRIS_SIGNED_8:               howto manager.      (line 1506)
-* BFD_RELOC_CRIS_UNSIGNED_16:            howto manager.      (line 1509)
-* BFD_RELOC_CRIS_UNSIGNED_4:             howto manager.      (line 1511)
-* BFD_RELOC_CRIS_UNSIGNED_5:             howto manager.      (line 1503)
-* BFD_RELOC_CRIS_UNSIGNED_6:             howto manager.      (line 1505)
-* BFD_RELOC_CRIS_UNSIGNED_8:             howto manager.      (line 1507)
-* BFD_RELOC_CRX_ABS16:                   howto manager.      (line 1490)
-* BFD_RELOC_CRX_ABS32:                   howto manager.      (line 1491)
-* BFD_RELOC_CRX_IMM16:                   howto manager.      (line 1495)
-* BFD_RELOC_CRX_IMM32:                   howto manager.      (line 1496)
-* BFD_RELOC_CRX_NUM16:                   howto manager.      (line 1493)
-* BFD_RELOC_CRX_NUM32:                   howto manager.      (line 1494)
-* BFD_RELOC_CRX_NUM8:                    howto manager.      (line 1492)
-* BFD_RELOC_CRX_REGREL12:                howto manager.      (line 1486)
-* BFD_RELOC_CRX_REGREL22:                howto manager.      (line 1487)
-* BFD_RELOC_CRX_REGREL28:                howto manager.      (line 1488)
-* BFD_RELOC_CRX_REGREL32:                howto manager.      (line 1489)
-* BFD_RELOC_CRX_REL16:                   howto manager.      (line 1483)
-* BFD_RELOC_CRX_REL24:                   howto manager.      (line 1484)
-* BFD_RELOC_CRX_REL32:                   howto manager.      (line 1485)
-* BFD_RELOC_CRX_REL4:                    howto manager.      (line 1480)
-* BFD_RELOC_CRX_REL8:                    howto manager.      (line 1481)
-* BFD_RELOC_CRX_REL8_CMP:                howto manager.      (line 1482)
-* BFD_RELOC_CRX_SWITCH16:                howto manager.      (line 1498)
-* BFD_RELOC_CRX_SWITCH32:                howto manager.      (line 1499)
-* BFD_RELOC_CRX_SWITCH8:                 howto manager.      (line 1497)
-* BFD_RELOC_CTOR:                        howto manager.      (line  586)
-* BFD_RELOC_D10V_10_PCREL_L:             howto manager.      (line  768)
-* BFD_RELOC_D10V_10_PCREL_R:             howto manager.      (line  764)
-* BFD_RELOC_D10V_18:                     howto manager.      (line  773)
-* BFD_RELOC_D10V_18_PCREL:               howto manager.      (line  776)
-* BFD_RELOC_D30V_15:                     howto manager.      (line  791)
-* BFD_RELOC_D30V_15_PCREL:               howto manager.      (line  795)
-* BFD_RELOC_D30V_15_PCREL_R:             howto manager.      (line  799)
-* BFD_RELOC_D30V_21:                     howto manager.      (line  804)
-* BFD_RELOC_D30V_21_PCREL:               howto manager.      (line  808)
-* BFD_RELOC_D30V_21_PCREL_R:             howto manager.      (line  812)
-* BFD_RELOC_D30V_32:                     howto manager.      (line  817)
-* BFD_RELOC_D30V_32_PCREL:               howto manager.      (line  820)
-* BFD_RELOC_D30V_6:                      howto manager.      (line  779)
-* BFD_RELOC_D30V_9_PCREL:                howto manager.      (line  782)
-* BFD_RELOC_D30V_9_PCREL_R:              howto manager.      (line  786)
-* BFD_RELOC_DLX_HI16_S:                  howto manager.      (line  823)
-* BFD_RELOC_DLX_JMP26:                   howto manager.      (line  829)
-* BFD_RELOC_DLX_LO16:                    howto manager.      (line  826)
-* BFD_RELOC_FR30_10_IN_8:                howto manager.      (line 1002)
-* BFD_RELOC_FR30_12_PCREL:               howto manager.      (line 1010)
-* BFD_RELOC_FR30_20:                     howto manager.      (line  986)
-* BFD_RELOC_FR30_48:                     howto manager.      (line  983)
-* BFD_RELOC_FR30_6_IN_4:                 howto manager.      (line  990)
-* BFD_RELOC_FR30_8_IN_8:                 howto manager.      (line  994)
-* BFD_RELOC_FR30_9_IN_8:                 howto manager.      (line  998)
-* BFD_RELOC_FR30_9_PCREL:                howto manager.      (line 1006)
-* BFD_RELOC_FRV_FUNCDESC:                howto manager.      (line  364)
-* BFD_RELOC_FRV_FUNCDESC_GOT12:          howto manager.      (line  365)
-* BFD_RELOC_FRV_FUNCDESC_GOTHI:          howto manager.      (line  366)
-* BFD_RELOC_FRV_FUNCDESC_GOTLO:          howto manager.      (line  367)
-* BFD_RELOC_FRV_FUNCDESC_GOTOFF12:       howto manager.      (line  369)
-* BFD_RELOC_FRV_FUNCDESC_GOTOFFHI:       howto manager.      (line  370)
-* BFD_RELOC_FRV_FUNCDESC_GOTOFFLO:       howto manager.      (line  371)
-* BFD_RELOC_FRV_FUNCDESC_VALUE:          howto manager.      (line  368)
-* BFD_RELOC_FRV_GETTLSOFF:               howto manager.      (line  375)
-* BFD_RELOC_FRV_GETTLSOFF_RELAX:         howto manager.      (line  388)
-* BFD_RELOC_FRV_GOT12:                   howto manager.      (line  361)
-* BFD_RELOC_FRV_GOTHI:                   howto manager.      (line  362)
-* BFD_RELOC_FRV_GOTLO:                   howto manager.      (line  363)
-* BFD_RELOC_FRV_GOTOFF12:                howto manager.      (line  372)
-* BFD_RELOC_FRV_GOTOFFHI:                howto manager.      (line  373)
-* BFD_RELOC_FRV_GOTOFFLO:                howto manager.      (line  374)
-* BFD_RELOC_FRV_GOTTLSDESC12:            howto manager.      (line  377)
-* BFD_RELOC_FRV_GOTTLSDESCHI:            howto manager.      (line  378)
-* BFD_RELOC_FRV_GOTTLSDESCLO:            howto manager.      (line  379)
-* BFD_RELOC_FRV_GOTTLSOFF12:             howto manager.      (line  383)
-* BFD_RELOC_FRV_GOTTLSOFFHI:             howto manager.      (line  384)
-* BFD_RELOC_FRV_GOTTLSOFFLO:             howto manager.      (line  385)
-* BFD_RELOC_FRV_GPREL12:                 howto manager.      (line  356)
-* BFD_RELOC_FRV_GPREL32:                 howto manager.      (line  358)
-* BFD_RELOC_FRV_GPRELHI:                 howto manager.      (line  359)
-* BFD_RELOC_FRV_GPRELLO:                 howto manager.      (line  360)
-* BFD_RELOC_FRV_GPRELU12:                howto manager.      (line  357)
-* BFD_RELOC_FRV_HI16:                    howto manager.      (line  355)
-* BFD_RELOC_FRV_LABEL16:                 howto manager.      (line  352)
-* BFD_RELOC_FRV_LABEL24:                 howto manager.      (line  353)
-* BFD_RELOC_FRV_LO16:                    howto manager.      (line  354)
-* BFD_RELOC_FRV_TLSDESC_RELAX:           howto manager.      (line  387)
-* BFD_RELOC_FRV_TLSDESC_VALUE:           howto manager.      (line  376)
-* BFD_RELOC_FRV_TLSMOFF:                 howto manager.      (line  390)
-* BFD_RELOC_FRV_TLSMOFF12:               howto manager.      (line  380)
-* BFD_RELOC_FRV_TLSMOFFHI:               howto manager.      (line  381)
-* BFD_RELOC_FRV_TLSMOFFLO:               howto manager.      (line  382)
-* BFD_RELOC_FRV_TLSOFF:                  howto manager.      (line  386)
-* BFD_RELOC_FRV_TLSOFF_RELAX:            howto manager.      (line  389)
-* BFD_RELOC_GPREL16:                     howto manager.      (line  106)
-* BFD_RELOC_GPREL32:                     howto manager.      (line  107)
-* BFD_RELOC_H8_DIR16A8:                  howto manager.      (line 1581)
-* BFD_RELOC_H8_DIR16R8:                  howto manager.      (line 1582)
-* BFD_RELOC_H8_DIR24A8:                  howto manager.      (line 1583)
-* BFD_RELOC_H8_DIR24R8:                  howto manager.      (line 1584)
-* BFD_RELOC_H8_DIR32A16:                 howto manager.      (line 1585)
-* BFD_RELOC_HI16:                        howto manager.      (line  289)
-* BFD_RELOC_HI16_BASEREL:                howto manager.      (line   82)
-* BFD_RELOC_HI16_GOTOFF:                 howto manager.      (line   57)
-* BFD_RELOC_HI16_PLTOFF:                 howto manager.      (line   69)
-* BFD_RELOC_HI16_S:                      howto manager.      (line  292)
-* BFD_RELOC_HI16_S_BASEREL:              howto manager.      (line   83)
-* BFD_RELOC_HI16_S_GOTOFF:               howto manager.      (line   58)
-* BFD_RELOC_HI16_S_PLTOFF:               howto manager.      (line   70)
-* BFD_RELOC_HI22:                        howto manager.      (line  101)
-* BFD_RELOC_I370_D12:                    howto manager.      (line  583)
-* BFD_RELOC_I960_CALLJ:                  howto manager.      (line  113)
-* BFD_RELOC_IA64_COPY:                   howto manager.      (line 1374)
-* BFD_RELOC_IA64_DIR32LSB:               howto manager.      (line 1319)
-* BFD_RELOC_IA64_DIR32MSB:               howto manager.      (line 1318)
-* BFD_RELOC_IA64_DIR64LSB:               howto manager.      (line 1321)
-* BFD_RELOC_IA64_DIR64MSB:               howto manager.      (line 1320)
-* BFD_RELOC_IA64_DTPMOD64LSB:            howto manager.      (line 1384)
-* BFD_RELOC_IA64_DTPMOD64MSB:            howto manager.      (line 1383)
-* BFD_RELOC_IA64_DTPREL14:               howto manager.      (line 1386)
-* BFD_RELOC_IA64_DTPREL22:               howto manager.      (line 1387)
-* BFD_RELOC_IA64_DTPREL32LSB:            howto manager.      (line 1390)
-* BFD_RELOC_IA64_DTPREL32MSB:            howto manager.      (line 1389)
-* BFD_RELOC_IA64_DTPREL64I:              howto manager.      (line 1388)
-* BFD_RELOC_IA64_DTPREL64LSB:            howto manager.      (line 1392)
-* BFD_RELOC_IA64_DTPREL64MSB:            howto manager.      (line 1391)
-* BFD_RELOC_IA64_FPTR32LSB:              howto manager.      (line 1336)
-* BFD_RELOC_IA64_FPTR32MSB:              howto manager.      (line 1335)
-* BFD_RELOC_IA64_FPTR64I:                howto manager.      (line 1334)
-* BFD_RELOC_IA64_FPTR64LSB:              howto manager.      (line 1338)
-* BFD_RELOC_IA64_FPTR64MSB:              howto manager.      (line 1337)
-* BFD_RELOC_IA64_GPREL22:                howto manager.      (line 1322)
-* BFD_RELOC_IA64_GPREL32LSB:             howto manager.      (line 1325)
-* BFD_RELOC_IA64_GPREL32MSB:             howto manager.      (line 1324)
-* BFD_RELOC_IA64_GPREL64I:               howto manager.      (line 1323)
-* BFD_RELOC_IA64_GPREL64LSB:             howto manager.      (line 1327)
-* BFD_RELOC_IA64_GPREL64MSB:             howto manager.      (line 1326)
-* BFD_RELOC_IA64_IMM14:                  howto manager.      (line 1315)
-* BFD_RELOC_IA64_IMM22:                  howto manager.      (line 1316)
-* BFD_RELOC_IA64_IMM64:                  howto manager.      (line 1317)
-* BFD_RELOC_IA64_IPLTLSB:                howto manager.      (line 1373)
-* BFD_RELOC_IA64_IPLTMSB:                howto manager.      (line 1372)
-* BFD_RELOC_IA64_LDXMOV:                 howto manager.      (line 1376)
-* BFD_RELOC_IA64_LTOFF22:                howto manager.      (line 1328)
-* BFD_RELOC_IA64_LTOFF22X:               howto manager.      (line 1375)
-* BFD_RELOC_IA64_LTOFF64I:               howto manager.      (line 1329)
-* BFD_RELOC_IA64_LTOFF_DTPMOD22:         howto manager.      (line 1385)
-* BFD_RELOC_IA64_LTOFF_DTPREL22:         howto manager.      (line 1393)
-* BFD_RELOC_IA64_LTOFF_FPTR22:           howto manager.      (line 1350)
-* BFD_RELOC_IA64_LTOFF_FPTR32LSB:        howto manager.      (line 1353)
-* BFD_RELOC_IA64_LTOFF_FPTR32MSB:        howto manager.      (line 1352)
-* BFD_RELOC_IA64_LTOFF_FPTR64I:          howto manager.      (line 1351)
-* BFD_RELOC_IA64_LTOFF_FPTR64LSB:        howto manager.      (line 1355)
-* BFD_RELOC_IA64_LTOFF_FPTR64MSB:        howto manager.      (line 1354)
-* BFD_RELOC_IA64_LTOFF_TPREL22:          howto manager.      (line 1382)
-* BFD_RELOC_IA64_LTV32LSB:               howto manager.      (line 1369)
-* BFD_RELOC_IA64_LTV32MSB:               howto manager.      (line 1368)
-* BFD_RELOC_IA64_LTV64LSB:               howto manager.      (line 1371)
-* BFD_RELOC_IA64_LTV64MSB:               howto manager.      (line 1370)
-* BFD_RELOC_IA64_PCREL21B:               howto manager.      (line 1339)
-* BFD_RELOC_IA64_PCREL21BI:              howto manager.      (line 1340)
-* BFD_RELOC_IA64_PCREL21F:               howto manager.      (line 1342)
-* BFD_RELOC_IA64_PCREL21M:               howto manager.      (line 1341)
-* BFD_RELOC_IA64_PCREL22:                howto manager.      (line 1343)
-* BFD_RELOC_IA64_PCREL32LSB:             howto manager.      (line 1347)
-* BFD_RELOC_IA64_PCREL32MSB:             howto manager.      (line 1346)
-* BFD_RELOC_IA64_PCREL60B:               howto manager.      (line 1344)
-* BFD_RELOC_IA64_PCREL64I:               howto manager.      (line 1345)
-* BFD_RELOC_IA64_PCREL64LSB:             howto manager.      (line 1349)
-* BFD_RELOC_IA64_PCREL64MSB:             howto manager.      (line 1348)
-* BFD_RELOC_IA64_PLTOFF22:               howto manager.      (line 1330)
-* BFD_RELOC_IA64_PLTOFF64I:              howto manager.      (line 1331)
-* BFD_RELOC_IA64_PLTOFF64LSB:            howto manager.      (line 1333)
-* BFD_RELOC_IA64_PLTOFF64MSB:            howto manager.      (line 1332)
-* BFD_RELOC_IA64_REL32LSB:               howto manager.      (line 1365)
-* BFD_RELOC_IA64_REL32MSB:               howto manager.      (line 1364)
-* BFD_RELOC_IA64_REL64LSB:               howto manager.      (line 1367)
-* BFD_RELOC_IA64_REL64MSB:               howto manager.      (line 1366)
-* BFD_RELOC_IA64_SECREL32LSB:            howto manager.      (line 1361)
-* BFD_RELOC_IA64_SECREL32MSB:            howto manager.      (line 1360)
-* BFD_RELOC_IA64_SECREL64LSB:            howto manager.      (line 1363)
-* BFD_RELOC_IA64_SECREL64MSB:            howto manager.      (line 1362)
-* BFD_RELOC_IA64_SEGREL32LSB:            howto manager.      (line 1357)
-* BFD_RELOC_IA64_SEGREL32MSB:            howto manager.      (line 1356)
-* BFD_RELOC_IA64_SEGREL64LSB:            howto manager.      (line 1359)
-* BFD_RELOC_IA64_SEGREL64MSB:            howto manager.      (line 1358)
-* BFD_RELOC_IA64_TPREL14:                howto manager.      (line 1377)
-* BFD_RELOC_IA64_TPREL22:                howto manager.      (line 1378)
-* BFD_RELOC_IA64_TPREL64I:               howto manager.      (line 1379)
-* BFD_RELOC_IA64_TPREL64LSB:             howto manager.      (line 1381)
-* BFD_RELOC_IA64_TPREL64MSB:             howto manager.      (line 1380)
-* BFD_RELOC_IP2K_ADDR16CJP:              howto manager.      (line 1267)
-* BFD_RELOC_IP2K_BANK:                   howto manager.      (line 1264)
-* BFD_RELOC_IP2K_EX8DATA:                howto manager.      (line 1275)
-* BFD_RELOC_IP2K_FR9:                    howto manager.      (line 1261)
-* BFD_RELOC_IP2K_FR_OFFSET:              howto manager.      (line 1288)
-* BFD_RELOC_IP2K_HI8DATA:                howto manager.      (line 1274)
-* BFD_RELOC_IP2K_HI8INSN:                howto manager.      (line 1279)
-* BFD_RELOC_IP2K_LO8DATA:                howto manager.      (line 1273)
-* BFD_RELOC_IP2K_LO8INSN:                howto manager.      (line 1278)
-* BFD_RELOC_IP2K_PAGE3:                  howto manager.      (line 1270)
-* BFD_RELOC_IP2K_PC_SKIP:                howto manager.      (line 1282)
-* BFD_RELOC_IP2K_TEXT:                   howto manager.      (line 1285)
-* BFD_RELOC_IQ2000_OFFSET_16:            howto manager.      (line 1608)
-* BFD_RELOC_IQ2000_OFFSET_21:            howto manager.      (line 1609)
-* BFD_RELOC_IQ2000_UHI16:                howto manager.      (line 1610)
-* BFD_RELOC_LO10:                        howto manager.      (line  102)
-* BFD_RELOC_LO16:                        howto manager.      (line  298)
-* BFD_RELOC_LO16_BASEREL:                howto manager.      (line   81)
-* BFD_RELOC_LO16_GOTOFF:                 howto manager.      (line   56)
-* BFD_RELOC_LO16_PLTOFF:                 howto manager.      (line   68)
-* BFD_RELOC_M32R_10_PCREL:               howto manager.      (line  836)
-* BFD_RELOC_M32R_18_PCREL:               howto manager.      (line  840)
-* BFD_RELOC_M32R_24:                     howto manager.      (line  832)
-* BFD_RELOC_M32R_26_PCREL:               howto manager.      (line  843)
-* BFD_RELOC_M32R_26_PLTREL:              howto manager.      (line  862)
-* BFD_RELOC_M32R_COPY:                   howto manager.      (line  863)
-* BFD_RELOC_M32R_GLOB_DAT:               howto manager.      (line  864)
-* BFD_RELOC_M32R_GOT16_HI_SLO:           howto manager.      (line  873)
-* BFD_RELOC_M32R_GOT16_HI_ULO:           howto manager.      (line  872)
-* BFD_RELOC_M32R_GOT16_LO:               howto manager.      (line  874)
-* BFD_RELOC_M32R_GOT24:                  howto manager.      (line  861)
-* BFD_RELOC_M32R_GOTOFF:                 howto manager.      (line  867)
-* BFD_RELOC_M32R_GOTOFF_HI_SLO:          howto manager.      (line  869)
-* BFD_RELOC_M32R_GOTOFF_HI_ULO:          howto manager.      (line  868)
-* BFD_RELOC_M32R_GOTOFF_LO:              howto manager.      (line  870)
-* BFD_RELOC_M32R_GOTPC24:                howto manager.      (line  871)
-* BFD_RELOC_M32R_GOTPC_HI_SLO:           howto manager.      (line  876)
-* BFD_RELOC_M32R_GOTPC_HI_ULO:           howto manager.      (line  875)
-* BFD_RELOC_M32R_GOTPC_LO:               howto manager.      (line  877)
-* BFD_RELOC_M32R_HI16_SLO:               howto manager.      (line  850)
-* BFD_RELOC_M32R_HI16_ULO:               howto manager.      (line  846)
-* BFD_RELOC_M32R_JMP_SLOT:               howto manager.      (line  865)
-* BFD_RELOC_M32R_LO16:                   howto manager.      (line  854)
-* BFD_RELOC_M32R_RELATIVE:               howto manager.      (line  866)
-* BFD_RELOC_M32R_SDA16:                  howto manager.      (line  857)
-* BFD_RELOC_M68HC11_24:                  howto manager.      (line 1429)
-* BFD_RELOC_M68HC11_3B:                  howto manager.      (line 1404)
-* BFD_RELOC_M68HC11_HI8:                 howto manager.      (line 1396)
-* BFD_RELOC_M68HC11_LO16:                howto manager.      (line 1418)
-* BFD_RELOC_M68HC11_LO8:                 howto manager.      (line 1400)
-* BFD_RELOC_M68HC11_PAGE:                howto manager.      (line 1424)
-* BFD_RELOC_M68HC11_RL_GROUP:            howto manager.      (line 1413)
-* BFD_RELOC_M68HC11_RL_JUMP:             howto manager.      (line 1407)
-* BFD_RELOC_M68HC12_5B:                  howto manager.      (line 1435)
-* BFD_RELOC_MCORE_PCREL_32:              howto manager.      (line 1017)
-* BFD_RELOC_MCORE_PCREL_IMM11BY2:        howto manager.      (line 1015)
-* BFD_RELOC_MCORE_PCREL_IMM4BY2:         howto manager.      (line 1016)
-* BFD_RELOC_MCORE_PCREL_IMM8BY4:         howto manager.      (line 1014)
-* BFD_RELOC_MCORE_PCREL_JSR_IMM11BY2:    howto manager.      (line 1018)
-* BFD_RELOC_MCORE_RVA:                   howto manager.      (line 1019)
-* BFD_RELOC_MIPS16_GPREL:                howto manager.      (line  286)
-* BFD_RELOC_MIPS16_HI16:                 howto manager.      (line  301)
-* BFD_RELOC_MIPS16_HI16_S:               howto manager.      (line  304)
-* BFD_RELOC_MIPS16_JMP:                  howto manager.      (line  283)
-* BFD_RELOC_MIPS16_LO16:                 howto manager.      (line  310)
-* BFD_RELOC_MIPS_CALL16:                 howto manager.      (line  317)
-* BFD_RELOC_MIPS_CALL_HI16:              howto manager.      (line  320)
-* BFD_RELOC_MIPS_CALL_LO16:              howto manager.      (line  321)
-* BFD_RELOC_MIPS_DELETE:                 howto manager.      (line  330)
-* BFD_RELOC_MIPS_GOT16:                  howto manager.      (line  316)
-* BFD_RELOC_MIPS_GOT_DISP:               howto manager.      (line  325)
-* BFD_RELOC_MIPS_GOT_HI16:               howto manager.      (line  318)
-* BFD_RELOC_MIPS_GOT_LO16:               howto manager.      (line  319)
-* BFD_RELOC_MIPS_GOT_OFST:               howto manager.      (line  324)
-* BFD_RELOC_MIPS_GOT_PAGE:               howto manager.      (line  323)
-* BFD_RELOC_MIPS_HIGHER:                 howto manager.      (line  332)
-* BFD_RELOC_MIPS_HIGHEST:                howto manager.      (line  331)
-* BFD_RELOC_MIPS_INSERT_A:               howto manager.      (line  328)
-* BFD_RELOC_MIPS_INSERT_B:               howto manager.      (line  329)
-* BFD_RELOC_MIPS_JALR:                   howto manager.      (line  336)
-* BFD_RELOC_MIPS_JMP:                    howto manager.      (line  279)
-* BFD_RELOC_MIPS_LITERAL:                howto manager.      (line  313)
-* BFD_RELOC_MIPS_REL16:                  howto manager.      (line  334)
-* BFD_RELOC_MIPS_RELGOT:                 howto manager.      (line  335)
-* BFD_RELOC_MIPS_SCN_DISP:               howto manager.      (line  333)
-* BFD_RELOC_MIPS_SHIFT5:                 howto manager.      (line  326)
-* BFD_RELOC_MIPS_SHIFT6:                 howto manager.      (line  327)
-* BFD_RELOC_MIPS_SUB:                    howto manager.      (line  322)
-* BFD_RELOC_MIPS_TLS_DTPMOD32:           howto manager.      (line  337)
-* BFD_RELOC_MIPS_TLS_DTPMOD64:           howto manager.      (line  339)
-* BFD_RELOC_MIPS_TLS_DTPREL32:           howto manager.      (line  338)
-* BFD_RELOC_MIPS_TLS_DTPREL64:           howto manager.      (line  340)
-* BFD_RELOC_MIPS_TLS_DTPREL_HI16:        howto manager.      (line  343)
-* BFD_RELOC_MIPS_TLS_DTPREL_LO16:        howto manager.      (line  344)
-* BFD_RELOC_MIPS_TLS_GD:                 howto manager.      (line  341)
-* BFD_RELOC_MIPS_TLS_GOTTPREL:           howto manager.      (line  345)
-* BFD_RELOC_MIPS_TLS_LDM:                howto manager.      (line  342)
-* BFD_RELOC_MIPS_TLS_TPREL32:            howto manager.      (line  346)
-* BFD_RELOC_MIPS_TLS_TPREL64:            howto manager.      (line  347)
-* BFD_RELOC_MIPS_TLS_TPREL_HI16:         howto manager.      (line  348)
-* BFD_RELOC_MIPS_TLS_TPREL_LO16:         howto manager.      (line  349)
-* BFD_RELOC_MMIX_ADDR19:                 howto manager.      (line 1048)
-* BFD_RELOC_MMIX_ADDR27:                 howto manager.      (line 1052)
-* BFD_RELOC_MMIX_BASE_PLUS_OFFSET:       howto manager.      (line 1064)
-* BFD_RELOC_MMIX_CBRANCH:                howto manager.      (line 1028)
-* BFD_RELOC_MMIX_CBRANCH_1:              howto manager.      (line 1030)
-* BFD_RELOC_MMIX_CBRANCH_2:              howto manager.      (line 1031)
-* BFD_RELOC_MMIX_CBRANCH_3:              howto manager.      (line 1032)
-* BFD_RELOC_MMIX_CBRANCH_J:              howto manager.      (line 1029)
-* BFD_RELOC_MMIX_GETA:                   howto manager.      (line 1022)
-* BFD_RELOC_MMIX_GETA_1:                 howto manager.      (line 1023)
-* BFD_RELOC_MMIX_GETA_2:                 howto manager.      (line 1024)
-* BFD_RELOC_MMIX_GETA_3:                 howto manager.      (line 1025)
-* BFD_RELOC_MMIX_JMP:                    howto manager.      (line 1042)
-* BFD_RELOC_MMIX_JMP_1:                  howto manager.      (line 1043)
-* BFD_RELOC_MMIX_JMP_2:                  howto manager.      (line 1044)
-* BFD_RELOC_MMIX_JMP_3:                  howto manager.      (line 1045)
-* BFD_RELOC_MMIX_LOCAL:                  howto manager.      (line 1068)
-* BFD_RELOC_MMIX_PUSHJ:                  howto manager.      (line 1035)
-* BFD_RELOC_MMIX_PUSHJ_1:                howto manager.      (line 1036)
-* BFD_RELOC_MMIX_PUSHJ_2:                howto manager.      (line 1037)
-* BFD_RELOC_MMIX_PUSHJ_3:                howto manager.      (line 1038)
-* BFD_RELOC_MMIX_PUSHJ_STUBBABLE:        howto manager.      (line 1039)
-* BFD_RELOC_MMIX_REG:                    howto manager.      (line 1060)
-* BFD_RELOC_MMIX_REG_OR_BYTE:            howto manager.      (line 1056)
-* BFD_RELOC_MN10300_16_PCREL:            howto manager.      (line  952)
-* BFD_RELOC_MN10300_32_PCREL:            howto manager.      (line  948)
-* BFD_RELOC_MN10300_COPY:                howto manager.      (line  408)
-* BFD_RELOC_MN10300_GLOB_DAT:            howto manager.      (line  411)
-* BFD_RELOC_MN10300_GOT16:               howto manager.      (line  404)
-* BFD_RELOC_MN10300_GOT24:               howto manager.      (line  400)
-* BFD_RELOC_MN10300_GOT32:               howto manager.      (line  396)
-* BFD_RELOC_MN10300_GOTOFF24:            howto manager.      (line  393)
-* BFD_RELOC_MN10300_JMP_SLOT:            howto manager.      (line  414)
-* BFD_RELOC_MN10300_RELATIVE:            howto manager.      (line  417)
-* BFD_RELOC_MSP430_10_PCREL:             howto manager.      (line 1599)
-* BFD_RELOC_MSP430_16:                   howto manager.      (line 1601)
-* BFD_RELOC_MSP430_16_BYTE:              howto manager.      (line 1603)
-* BFD_RELOC_MSP430_16_PCREL:             howto manager.      (line 1600)
-* BFD_RELOC_MSP430_16_PCREL_BYTE:        howto manager.      (line 1602)
-* BFD_RELOC_MSP430_2X_PCREL:             howto manager.      (line 1604)
-* BFD_RELOC_MSP430_RL_PCREL:             howto manager.      (line 1605)
-* BFD_RELOC_NONE:                        howto manager.      (line  116)
-* BFD_RELOC_NS32K_DISP_16:               howto manager.      (line  467)
-* BFD_RELOC_NS32K_DISP_16_PCREL:         howto manager.      (line  470)
-* BFD_RELOC_NS32K_DISP_32:               howto manager.      (line  468)
-* BFD_RELOC_NS32K_DISP_32_PCREL:         howto manager.      (line  471)
-* BFD_RELOC_NS32K_DISP_8:                howto manager.      (line  466)
-* BFD_RELOC_NS32K_DISP_8_PCREL:          howto manager.      (line  469)
-* BFD_RELOC_NS32K_IMM_16:                howto manager.      (line  461)
-* BFD_RELOC_NS32K_IMM_16_PCREL:          howto manager.      (line  464)
-* BFD_RELOC_NS32K_IMM_32:                howto manager.      (line  462)
-* BFD_RELOC_NS32K_IMM_32_PCREL:          howto manager.      (line  465)
-* BFD_RELOC_NS32K_IMM_8:                 howto manager.      (line  460)
-* BFD_RELOC_NS32K_IMM_8_PCREL:           howto manager.      (line  463)
-* BFD_RELOC_OPENRISC_ABS_26:             howto manager.      (line 1577)
-* BFD_RELOC_OPENRISC_REL_26:             howto manager.      (line 1578)
-* BFD_RELOC_PDP11_DISP_6_PCREL:          howto manager.      (line  475)
-* BFD_RELOC_PDP11_DISP_8_PCREL:          howto manager.      (line  474)
-* BFD_RELOC_PJ_CODE_DIR16:               howto manager.      (line  480)
-* BFD_RELOC_PJ_CODE_DIR32:               howto manager.      (line  481)
-* BFD_RELOC_PJ_CODE_HI16:                howto manager.      (line  478)
-* BFD_RELOC_PJ_CODE_LO16:                howto manager.      (line  479)
-* BFD_RELOC_PJ_CODE_REL16:               howto manager.      (line  482)
-* BFD_RELOC_PJ_CODE_REL32:               howto manager.      (line  483)
-* BFD_RELOC_PPC64_ADDR16_DS:             howto manager.      (line  528)
-* BFD_RELOC_PPC64_ADDR16_LO_DS:          howto manager.      (line  529)
-* BFD_RELOC_PPC64_DTPREL16_DS:           howto manager.      (line  575)
-* BFD_RELOC_PPC64_DTPREL16_HIGHER:       howto manager.      (line  577)
-* BFD_RELOC_PPC64_DTPREL16_HIGHERA:      howto manager.      (line  578)
-* BFD_RELOC_PPC64_DTPREL16_HIGHEST:      howto manager.      (line  579)
-* BFD_RELOC_PPC64_DTPREL16_HIGHESTA:     howto manager.      (line  580)
-* BFD_RELOC_PPC64_DTPREL16_LO_DS:        howto manager.      (line  576)
-* BFD_RELOC_PPC64_GOT16_DS:              howto manager.      (line  530)
-* BFD_RELOC_PPC64_GOT16_LO_DS:           howto manager.      (line  531)
-* BFD_RELOC_PPC64_HIGHER:                howto manager.      (line  516)
-* BFD_RELOC_PPC64_HIGHER_S:              howto manager.      (line  517)
-* BFD_RELOC_PPC64_HIGHEST:               howto manager.      (line  518)
-* BFD_RELOC_PPC64_HIGHEST_S:             howto manager.      (line  519)
-* BFD_RELOC_PPC64_PLT16_LO_DS:           howto manager.      (line  532)
-* BFD_RELOC_PPC64_PLTGOT16:              howto manager.      (line  524)
-* BFD_RELOC_PPC64_PLTGOT16_DS:           howto manager.      (line  537)
-* BFD_RELOC_PPC64_PLTGOT16_HA:           howto manager.      (line  527)
-* BFD_RELOC_PPC64_PLTGOT16_HI:           howto manager.      (line  526)
-* BFD_RELOC_PPC64_PLTGOT16_LO:           howto manager.      (line  525)
-* BFD_RELOC_PPC64_PLTGOT16_LO_DS:        howto manager.      (line  538)
-* BFD_RELOC_PPC64_SECTOFF_DS:            howto manager.      (line  533)
-* BFD_RELOC_PPC64_SECTOFF_LO_DS:         howto manager.      (line  534)
-* BFD_RELOC_PPC64_TOC:                   howto manager.      (line  523)
-* BFD_RELOC_PPC64_TOC16_DS:              howto manager.      (line  535)
-* BFD_RELOC_PPC64_TOC16_HA:              howto manager.      (line  522)
-* BFD_RELOC_PPC64_TOC16_HI:              howto manager.      (line  521)
-* BFD_RELOC_PPC64_TOC16_LO:              howto manager.      (line  520)
-* BFD_RELOC_PPC64_TOC16_LO_DS:           howto manager.      (line  536)
-* BFD_RELOC_PPC64_TPREL16_DS:            howto manager.      (line  569)
-* BFD_RELOC_PPC64_TPREL16_HIGHER:        howto manager.      (line  571)
-* BFD_RELOC_PPC64_TPREL16_HIGHERA:       howto manager.      (line  572)
-* BFD_RELOC_PPC64_TPREL16_HIGHEST:       howto manager.      (line  573)
-* BFD_RELOC_PPC64_TPREL16_HIGHESTA:      howto manager.      (line  574)
-* BFD_RELOC_PPC64_TPREL16_LO_DS:         howto manager.      (line  570)
-* BFD_RELOC_PPC_B16:                     howto manager.      (line  489)
-* BFD_RELOC_PPC_B16_BRNTAKEN:            howto manager.      (line  491)
-* BFD_RELOC_PPC_B16_BRTAKEN:             howto manager.      (line  490)
-* BFD_RELOC_PPC_B26:                     howto manager.      (line  486)
-* BFD_RELOC_PPC_BA16:                    howto manager.      (line  492)
-* BFD_RELOC_PPC_BA16_BRNTAKEN:           howto manager.      (line  494)
-* BFD_RELOC_PPC_BA16_BRTAKEN:            howto manager.      (line  493)
-* BFD_RELOC_PPC_BA26:                    howto manager.      (line  487)
-* BFD_RELOC_PPC_COPY:                    howto manager.      (line  495)
-* BFD_RELOC_PPC_DTPMOD:                  howto manager.      (line  542)
-* BFD_RELOC_PPC_DTPREL:                  howto manager.      (line  552)
-* BFD_RELOC_PPC_DTPREL16:                howto manager.      (line  548)
-* BFD_RELOC_PPC_DTPREL16_HA:             howto manager.      (line  551)
-* BFD_RELOC_PPC_DTPREL16_HI:             howto manager.      (line  550)
-* BFD_RELOC_PPC_DTPREL16_LO:             howto manager.      (line  549)
-* BFD_RELOC_PPC_EMB_BIT_FLD:             howto manager.      (line  514)
-* BFD_RELOC_PPC_EMB_MRKREF:              howto manager.      (line  509)
-* BFD_RELOC_PPC_EMB_NADDR16:             howto manager.      (line  501)
-* BFD_RELOC_PPC_EMB_NADDR16_HA:          howto manager.      (line  504)
-* BFD_RELOC_PPC_EMB_NADDR16_HI:          howto manager.      (line  503)
-* BFD_RELOC_PPC_EMB_NADDR16_LO:          howto manager.      (line  502)
-* BFD_RELOC_PPC_EMB_NADDR32:             howto manager.      (line  500)
-* BFD_RELOC_PPC_EMB_RELSDA:              howto manager.      (line  515)
-* BFD_RELOC_PPC_EMB_RELSEC16:            howto manager.      (line  510)
-* BFD_RELOC_PPC_EMB_RELST_HA:            howto manager.      (line  513)
-* BFD_RELOC_PPC_EMB_RELST_HI:            howto manager.      (line  512)
-* BFD_RELOC_PPC_EMB_RELST_LO:            howto manager.      (line  511)
-* BFD_RELOC_PPC_EMB_SDA21:               howto manager.      (line  508)
-* BFD_RELOC_PPC_EMB_SDA2I16:             howto manager.      (line  506)
-* BFD_RELOC_PPC_EMB_SDA2REL:             howto manager.      (line  507)
-* BFD_RELOC_PPC_EMB_SDAI16:              howto manager.      (line  505)
-* BFD_RELOC_PPC_GLOB_DAT:                howto manager.      (line  496)
-* BFD_RELOC_PPC_GOT_DTPREL16:            howto manager.      (line  565)
-* BFD_RELOC_PPC_GOT_DTPREL16_HA:         howto manager.      (line  568)
-* BFD_RELOC_PPC_GOT_DTPREL16_HI:         howto manager.      (line  567)
-* BFD_RELOC_PPC_GOT_DTPREL16_LO:         howto manager.      (line  566)
-* BFD_RELOC_PPC_GOT_TLSGD16:             howto manager.      (line  553)
-* BFD_RELOC_PPC_GOT_TLSGD16_HA:          howto manager.      (line  556)
-* BFD_RELOC_PPC_GOT_TLSGD16_HI:          howto manager.      (line  555)
-* BFD_RELOC_PPC_GOT_TLSGD16_LO:          howto manager.      (line  554)
-* BFD_RELOC_PPC_GOT_TLSLD16:             howto manager.      (line  557)
-* BFD_RELOC_PPC_GOT_TLSLD16_HA:          howto manager.      (line  560)
-* BFD_RELOC_PPC_GOT_TLSLD16_HI:          howto manager.      (line  559)
-* BFD_RELOC_PPC_GOT_TLSLD16_LO:          howto manager.      (line  558)
-* BFD_RELOC_PPC_GOT_TPREL16:             howto manager.      (line  561)
-* BFD_RELOC_PPC_GOT_TPREL16_HA:          howto manager.      (line  564)
-* BFD_RELOC_PPC_GOT_TPREL16_HI:          howto manager.      (line  563)
-* BFD_RELOC_PPC_GOT_TPREL16_LO:          howto manager.      (line  562)
-* BFD_RELOC_PPC_JMP_SLOT:                howto manager.      (line  497)
-* BFD_RELOC_PPC_LOCAL24PC:               howto manager.      (line  499)
-* BFD_RELOC_PPC_RELATIVE:                howto manager.      (line  498)
-* BFD_RELOC_PPC_TLS:                     howto manager.      (line  541)
-* BFD_RELOC_PPC_TOC16:                   howto manager.      (line  488)
-* BFD_RELOC_PPC_TPREL:                   howto manager.      (line  547)
-* BFD_RELOC_PPC_TPREL16:                 howto manager.      (line  543)
-* BFD_RELOC_PPC_TPREL16_HA:              howto manager.      (line  546)
-* BFD_RELOC_PPC_TPREL16_HI:              howto manager.      (line  545)
-* BFD_RELOC_PPC_TPREL16_LO:              howto manager.      (line  544)
-* BFD_RELOC_RVA:                         howto manager.      (line   85)
-* BFD_RELOC_SH_ALIGN:                    howto manager.      (line  677)
-* BFD_RELOC_SH_CODE:                     howto manager.      (line  678)
-* BFD_RELOC_SH_COPY:                     howto manager.      (line  683)
-* BFD_RELOC_SH_COPY64:                   howto manager.      (line  708)
-* BFD_RELOC_SH_COUNT:                    howto manager.      (line  676)
-* BFD_RELOC_SH_DATA:                     howto manager.      (line  679)
-* BFD_RELOC_SH_DISP12:                   howto manager.      (line  659)
-* BFD_RELOC_SH_DISP12BY2:                howto manager.      (line  660)
-* BFD_RELOC_SH_DISP12BY4:                howto manager.      (line  661)
-* BFD_RELOC_SH_DISP12BY8:                howto manager.      (line  662)
-* BFD_RELOC_SH_DISP20:                   howto manager.      (line  663)
-* BFD_RELOC_SH_DISP20BY8:                howto manager.      (line  664)
-* BFD_RELOC_SH_GLOB_DAT:                 howto manager.      (line  684)
-* BFD_RELOC_SH_GLOB_DAT64:               howto manager.      (line  709)
-* BFD_RELOC_SH_GOT10BY4:                 howto manager.      (line  712)
-* BFD_RELOC_SH_GOT10BY8:                 howto manager.      (line  713)
-* BFD_RELOC_SH_GOT_HI16:                 howto manager.      (line  691)
-* BFD_RELOC_SH_GOT_LOW16:                howto manager.      (line  688)
-* BFD_RELOC_SH_GOT_MEDHI16:              howto manager.      (line  690)
-* BFD_RELOC_SH_GOT_MEDLOW16:             howto manager.      (line  689)
-* BFD_RELOC_SH_GOTOFF_HI16:              howto manager.      (line  703)
-* BFD_RELOC_SH_GOTOFF_LOW16:             howto manager.      (line  700)
-* BFD_RELOC_SH_GOTOFF_MEDHI16:           howto manager.      (line  702)
-* BFD_RELOC_SH_GOTOFF_MEDLOW16:          howto manager.      (line  701)
-* BFD_RELOC_SH_GOTPC:                    howto manager.      (line  687)
-* BFD_RELOC_SH_GOTPC_HI16:               howto manager.      (line  707)
-* BFD_RELOC_SH_GOTPC_LOW16:              howto manager.      (line  704)
-* BFD_RELOC_SH_GOTPC_MEDHI16:            howto manager.      (line  706)
-* BFD_RELOC_SH_GOTPC_MEDLOW16:           howto manager.      (line  705)
-* BFD_RELOC_SH_GOTPLT10BY4:              howto manager.      (line  714)
-* BFD_RELOC_SH_GOTPLT10BY8:              howto manager.      (line  715)
-* BFD_RELOC_SH_GOTPLT32:                 howto manager.      (line  716)
-* BFD_RELOC_SH_GOTPLT_HI16:              howto manager.      (line  695)
-* BFD_RELOC_SH_GOTPLT_LOW16:             howto manager.      (line  692)
-* BFD_RELOC_SH_GOTPLT_MEDHI16:           howto manager.      (line  694)
-* BFD_RELOC_SH_GOTPLT_MEDLOW16:          howto manager.      (line  693)
-* BFD_RELOC_SH_IMM3:                     howto manager.      (line  657)
-* BFD_RELOC_SH_IMM3U:                    howto manager.      (line  658)
-* BFD_RELOC_SH_IMM4:                     howto manager.      (line  665)
-* BFD_RELOC_SH_IMM4BY2:                  howto manager.      (line  666)
-* BFD_RELOC_SH_IMM4BY4:                  howto manager.      (line  667)
-* BFD_RELOC_SH_IMM8:                     howto manager.      (line  668)
-* BFD_RELOC_SH_IMM8BY2:                  howto manager.      (line  669)
-* BFD_RELOC_SH_IMM8BY4:                  howto manager.      (line  670)
-* BFD_RELOC_SH_IMM_HI16:                 howto manager.      (line  734)
-* BFD_RELOC_SH_IMM_HI16_PCREL:           howto manager.      (line  735)
-* BFD_RELOC_SH_IMM_LOW16:                howto manager.      (line  728)
-* BFD_RELOC_SH_IMM_LOW16_PCREL:          howto manager.      (line  729)
-* BFD_RELOC_SH_IMM_MEDHI16:              howto manager.      (line  732)
-* BFD_RELOC_SH_IMM_MEDHI16_PCREL:        howto manager.      (line  733)
-* BFD_RELOC_SH_IMM_MEDLOW16:             howto manager.      (line  730)
-* BFD_RELOC_SH_IMM_MEDLOW16_PCREL:       howto manager.      (line  731)
-* BFD_RELOC_SH_IMMS10:                   howto manager.      (line  722)
-* BFD_RELOC_SH_IMMS10BY2:                howto manager.      (line  723)
-* BFD_RELOC_SH_IMMS10BY4:                howto manager.      (line  724)
-* BFD_RELOC_SH_IMMS10BY8:                howto manager.      (line  725)
-* BFD_RELOC_SH_IMMS16:                   howto manager.      (line  726)
-* BFD_RELOC_SH_IMMS6:                    howto manager.      (line  719)
-* BFD_RELOC_SH_IMMS6BY32:                howto manager.      (line  720)
-* BFD_RELOC_SH_IMMU16:                   howto manager.      (line  727)
-* BFD_RELOC_SH_IMMU5:                    howto manager.      (line  718)
-* BFD_RELOC_SH_IMMU6:                    howto manager.      (line  721)
-* BFD_RELOC_SH_JMP_SLOT:                 howto manager.      (line  685)
-* BFD_RELOC_SH_JMP_SLOT64:               howto manager.      (line  710)
-* BFD_RELOC_SH_LABEL:                    howto manager.      (line  680)
-* BFD_RELOC_SH_LOOP_END:                 howto manager.      (line  682)
-* BFD_RELOC_SH_LOOP_START:               howto manager.      (line  681)
-* BFD_RELOC_SH_PCDISP12BY2:              howto manager.      (line  656)
-* BFD_RELOC_SH_PCDISP8BY2:               howto manager.      (line  655)
-* BFD_RELOC_SH_PCRELIMM8BY2:             howto manager.      (line  671)
-* BFD_RELOC_SH_PCRELIMM8BY4:             howto manager.      (line  672)
-* BFD_RELOC_SH_PLT_HI16:                 howto manager.      (line  699)
-* BFD_RELOC_SH_PLT_LOW16:                howto manager.      (line  696)
-* BFD_RELOC_SH_PLT_MEDHI16:              howto manager.      (line  698)
-* BFD_RELOC_SH_PLT_MEDLOW16:             howto manager.      (line  697)
-* BFD_RELOC_SH_PT_16:                    howto manager.      (line  736)
-* BFD_RELOC_SH_RELATIVE:                 howto manager.      (line  686)
-* BFD_RELOC_SH_RELATIVE64:               howto manager.      (line  711)
-* BFD_RELOC_SH_SHMEDIA_CODE:             howto manager.      (line  717)
-* BFD_RELOC_SH_SWITCH16:                 howto manager.      (line  673)
-* BFD_RELOC_SH_SWITCH32:                 howto manager.      (line  674)
-* BFD_RELOC_SH_TLS_DTPMOD32:             howto manager.      (line  742)
-* BFD_RELOC_SH_TLS_DTPOFF32:             howto manager.      (line  743)
-* BFD_RELOC_SH_TLS_GD_32:                howto manager.      (line  737)
-* BFD_RELOC_SH_TLS_IE_32:                howto manager.      (line  740)
-* BFD_RELOC_SH_TLS_LD_32:                howto manager.      (line  738)
-* BFD_RELOC_SH_TLS_LDO_32:               howto manager.      (line  739)
-* BFD_RELOC_SH_TLS_LE_32:                howto manager.      (line  741)
-* BFD_RELOC_SH_TLS_TPOFF32:              howto manager.      (line  744)
-* BFD_RELOC_SH_USES:                     howto manager.      (line  675)
-* BFD_RELOC_SPARC13:                     howto manager.      (line  119)
-* BFD_RELOC_SPARC22:                     howto manager.      (line  118)
-* BFD_RELOC_SPARC_10:                    howto manager.      (line  141)
-* BFD_RELOC_SPARC_11:                    howto manager.      (line  142)
-* BFD_RELOC_SPARC_5:                     howto manager.      (line  154)
-* BFD_RELOC_SPARC_6:                     howto manager.      (line  153)
-* BFD_RELOC_SPARC_64:                    howto manager.      (line  140)
-* BFD_RELOC_SPARC_7:                     howto manager.      (line  152)
-* BFD_RELOC_SPARC_BASE13:                howto manager.      (line  136)
-* BFD_RELOC_SPARC_BASE22:                howto manager.      (line  137)
-* BFD_RELOC_SPARC_COPY:                  howto manager.      (line  126)
-* BFD_RELOC_SPARC_DISP64:                howto manager.      (line  155)
-* BFD_RELOC_SPARC_GLOB_DAT:              howto manager.      (line  127)
-* BFD_RELOC_SPARC_GOT10:                 howto manager.      (line  120)
-* BFD_RELOC_SPARC_GOT13:                 howto manager.      (line  121)
-* BFD_RELOC_SPARC_GOT22:                 howto manager.      (line  122)
-* BFD_RELOC_SPARC_H44:                   howto manager.      (line  160)
-* BFD_RELOC_SPARC_HH22:                  howto manager.      (line  144)
-* BFD_RELOC_SPARC_HIX22:                 howto manager.      (line  158)
-* BFD_RELOC_SPARC_HM10:                  howto manager.      (line  145)
-* BFD_RELOC_SPARC_JMP_SLOT:              howto manager.      (line  128)
-* BFD_RELOC_SPARC_L44:                   howto manager.      (line  162)
-* BFD_RELOC_SPARC_LM22:                  howto manager.      (line  146)
-* BFD_RELOC_SPARC_LOX10:                 howto manager.      (line  159)
-* BFD_RELOC_SPARC_M44:                   howto manager.      (line  161)
-* BFD_RELOC_SPARC_OLO10:                 howto manager.      (line  143)
-* BFD_RELOC_SPARC_PC10:                  howto manager.      (line  123)
-* BFD_RELOC_SPARC_PC22:                  howto manager.      (line  124)
-* BFD_RELOC_SPARC_PC_HH22:               howto manager.      (line  147)
-* BFD_RELOC_SPARC_PC_HM10:               howto manager.      (line  148)
-* BFD_RELOC_SPARC_PC_LM22:               howto manager.      (line  149)
-* BFD_RELOC_SPARC_PLT32:                 howto manager.      (line  156)
-* BFD_RELOC_SPARC_PLT64:                 howto manager.      (line  157)
-* BFD_RELOC_SPARC_REGISTER:              howto manager.      (line  163)
-* BFD_RELOC_SPARC_RELATIVE:              howto manager.      (line  129)
-* BFD_RELOC_SPARC_REV32:                 howto manager.      (line  166)
-* BFD_RELOC_SPARC_TLS_DTPMOD32:          howto manager.      (line  187)
-* BFD_RELOC_SPARC_TLS_DTPMOD64:          howto manager.      (line  188)
-* BFD_RELOC_SPARC_TLS_DTPOFF32:          howto manager.      (line  189)
-* BFD_RELOC_SPARC_TLS_DTPOFF64:          howto manager.      (line  190)
-* BFD_RELOC_SPARC_TLS_GD_ADD:            howto manager.      (line  171)
-* BFD_RELOC_SPARC_TLS_GD_CALL:           howto manager.      (line  172)
-* BFD_RELOC_SPARC_TLS_GD_HI22:           howto manager.      (line  169)
-* BFD_RELOC_SPARC_TLS_GD_LO10:           howto manager.      (line  170)
-* BFD_RELOC_SPARC_TLS_IE_ADD:            howto manager.      (line  184)
-* BFD_RELOC_SPARC_TLS_IE_HI22:           howto manager.      (line  180)
-* BFD_RELOC_SPARC_TLS_IE_LD:             howto manager.      (line  182)
-* BFD_RELOC_SPARC_TLS_IE_LDX:            howto manager.      (line  183)
-* BFD_RELOC_SPARC_TLS_IE_LO10:           howto manager.      (line  181)
-* BFD_RELOC_SPARC_TLS_LDM_ADD:           howto manager.      (line  175)
-* BFD_RELOC_SPARC_TLS_LDM_CALL:          howto manager.      (line  176)
-* BFD_RELOC_SPARC_TLS_LDM_HI22:          howto manager.      (line  173)
-* BFD_RELOC_SPARC_TLS_LDM_LO10:          howto manager.      (line  174)
-* BFD_RELOC_SPARC_TLS_LDO_ADD:           howto manager.      (line  179)
-* BFD_RELOC_SPARC_TLS_LDO_HIX22:         howto manager.      (line  177)
-* BFD_RELOC_SPARC_TLS_LDO_LOX10:         howto manager.      (line  178)
-* BFD_RELOC_SPARC_TLS_LE_HIX22:          howto manager.      (line  185)
-* BFD_RELOC_SPARC_TLS_LE_LOX10:          howto manager.      (line  186)
-* BFD_RELOC_SPARC_TLS_TPOFF32:           howto manager.      (line  191)
-* BFD_RELOC_SPARC_TLS_TPOFF64:           howto manager.      (line  192)
-* BFD_RELOC_SPARC_UA16:                  howto manager.      (line  130)
-* BFD_RELOC_SPARC_UA32:                  howto manager.      (line  131)
-* BFD_RELOC_SPARC_UA64:                  howto manager.      (line  132)
-* BFD_RELOC_SPARC_WDISP16:               howto manager.      (line  150)
-* BFD_RELOC_SPARC_WDISP19:               howto manager.      (line  151)
-* BFD_RELOC_SPARC_WDISP22:               howto manager.      (line  117)
-* BFD_RELOC_SPARC_WPLT30:                howto manager.      (line  125)
-* BFD_RELOC_THUMB_PCREL_BLX:             howto manager.      (line  601)
-* BFD_RELOC_THUMB_PCREL_BRANCH12:        howto manager.      (line  749)
-* BFD_RELOC_THUMB_PCREL_BRANCH23:        howto manager.      (line  750)
-* BFD_RELOC_THUMB_PCREL_BRANCH9:         howto manager.      (line  748)
-* BFD_RELOC_TIC30_LDP:                   howto manager.      (line  956)
-* BFD_RELOC_TIC54X_16_OF_23:             howto manager.      (line  974)
-* BFD_RELOC_TIC54X_23:                   howto manager.      (line  971)
-* BFD_RELOC_TIC54X_MS7_OF_23:            howto manager.      (line  979)
-* BFD_RELOC_TIC54X_PARTLS7:              howto manager.      (line  961)
-* BFD_RELOC_TIC54X_PARTMS9:              howto manager.      (line  966)
-* bfd_reloc_type_lookup:                 howto manager.      (line 1693)
-* BFD_RELOC_V850_22_PCREL:               howto manager.      (line  883)
-* BFD_RELOC_V850_9_PCREL:                howto manager.      (line  880)
-* BFD_RELOC_V850_ALIGN:                  howto manager.      (line  941)
-* BFD_RELOC_V850_CALLT_16_16_OFFSET:     howto manager.      (line  932)
-* BFD_RELOC_V850_CALLT_6_7_OFFSET:       howto manager.      (line  929)
-* BFD_RELOC_V850_LO16_SPLIT_OFFSET:      howto manager.      (line  944)
-* BFD_RELOC_V850_LONGCALL:               howto manager.      (line  935)
-* BFD_RELOC_V850_LONGJUMP:               howto manager.      (line  938)
-* BFD_RELOC_V850_SDA_15_16_OFFSET:       howto manager.      (line  889)
-* BFD_RELOC_V850_SDA_16_16_OFFSET:       howto manager.      (line  886)
-* BFD_RELOC_V850_SDA_16_16_SPLIT_OFFSET: howto manager.      (line  921)
-* BFD_RELOC_V850_TDA_16_16_OFFSET:       howto manager.      (line  911)
-* BFD_RELOC_V850_TDA_4_4_OFFSET:         howto manager.      (line  918)
-* BFD_RELOC_V850_TDA_4_5_OFFSET:         howto manager.      (line  914)
-* BFD_RELOC_V850_TDA_6_8_OFFSET:         howto manager.      (line  900)
-* BFD_RELOC_V850_TDA_7_7_OFFSET:         howto manager.      (line  908)
-* BFD_RELOC_V850_TDA_7_8_OFFSET:         howto manager.      (line  904)
-* BFD_RELOC_V850_ZDA_15_16_OFFSET:       howto manager.      (line  896)
-* BFD_RELOC_V850_ZDA_16_16_OFFSET:       howto manager.      (line  893)
-* BFD_RELOC_V850_ZDA_16_16_SPLIT_OFFSET: howto manager.      (line  925)
-* BFD_RELOC_VAX_GLOB_DAT:                howto manager.      (line 1594)
-* BFD_RELOC_VAX_JMP_SLOT:                howto manager.      (line 1595)
-* BFD_RELOC_VAX_RELATIVE:                howto manager.      (line 1596)
-* BFD_RELOC_VPE4KMATH_DATA:              howto manager.      (line 1291)
-* BFD_RELOC_VPE4KMATH_INSN:              howto manager.      (line 1292)
-* BFD_RELOC_VTABLE_ENTRY:                howto manager.      (line 1296)
-* BFD_RELOC_VTABLE_INHERIT:              howto manager.      (line 1295)
-* BFD_RELOC_X86_64_32S:                  howto manager.      (line  449)
-* BFD_RELOC_X86_64_COPY:                 howto manager.      (line  444)
-* BFD_RELOC_X86_64_DTPMOD64:             howto manager.      (line  450)
-* BFD_RELOC_X86_64_DTPOFF32:             howto manager.      (line  455)
-* BFD_RELOC_X86_64_DTPOFF64:             howto manager.      (line  451)
-* BFD_RELOC_X86_64_GLOB_DAT:             howto manager.      (line  445)
-* BFD_RELOC_X86_64_GOT32:                howto manager.      (line  442)
-* BFD_RELOC_X86_64_GOTPCREL:             howto manager.      (line  448)
-* BFD_RELOC_X86_64_GOTTPOFF:             howto manager.      (line  456)
-* BFD_RELOC_X86_64_JUMP_SLOT:            howto manager.      (line  446)
-* BFD_RELOC_X86_64_PLT32:                howto manager.      (line  443)
-* BFD_RELOC_X86_64_RELATIVE:             howto manager.      (line  447)
-* BFD_RELOC_X86_64_TLSGD:                howto manager.      (line  453)
-* BFD_RELOC_X86_64_TLSLD:                howto manager.      (line  454)
-* BFD_RELOC_X86_64_TPOFF32:              howto manager.      (line  457)
-* BFD_RELOC_X86_64_TPOFF64:              howto manager.      (line  452)
-* BFD_RELOC_XSTORMY16_12:                howto manager.      (line 1589)
-* BFD_RELOC_XSTORMY16_24:                howto manager.      (line 1590)
-* BFD_RELOC_XSTORMY16_FPTR16:            howto manager.      (line 1591)
-* BFD_RELOC_XSTORMY16_REL_12:            howto manager.      (line 1588)
-* BFD_RELOC_XTENSA_ASM_EXPAND:           howto manager.      (line 1682)
-* BFD_RELOC_XTENSA_ASM_SIMPLIFY:         howto manager.      (line 1687)
-* BFD_RELOC_XTENSA_DIFF16:               howto manager.      (line 1629)
-* BFD_RELOC_XTENSA_DIFF32:               howto manager.      (line 1630)
-* BFD_RELOC_XTENSA_DIFF8:                howto manager.      (line 1628)
-* BFD_RELOC_XTENSA_GLOB_DAT:             howto manager.      (line 1618)
-* BFD_RELOC_XTENSA_JMP_SLOT:             howto manager.      (line 1619)
-* BFD_RELOC_XTENSA_OP0:                  howto manager.      (line 1676)
-* BFD_RELOC_XTENSA_OP1:                  howto manager.      (line 1677)
-* BFD_RELOC_XTENSA_OP2:                  howto manager.      (line 1678)
-* BFD_RELOC_XTENSA_PLT:                  howto manager.      (line 1623)
-* BFD_RELOC_XTENSA_RELATIVE:             howto manager.      (line 1620)
-* BFD_RELOC_XTENSA_RTLD:                 howto manager.      (line 1613)
-* BFD_RELOC_XTENSA_SLOT0_ALT:            howto manager.      (line 1658)
-* BFD_RELOC_XTENSA_SLOT0_OP:             howto manager.      (line 1638)
-* BFD_RELOC_XTENSA_SLOT10_ALT:           howto manager.      (line 1668)
-* BFD_RELOC_XTENSA_SLOT10_OP:            howto manager.      (line 1648)
-* BFD_RELOC_XTENSA_SLOT11_ALT:           howto manager.      (line 1669)
-* BFD_RELOC_XTENSA_SLOT11_OP:            howto manager.      (line 1649)
-* BFD_RELOC_XTENSA_SLOT12_ALT:           howto manager.      (line 1670)
-* BFD_RELOC_XTENSA_SLOT12_OP:            howto manager.      (line 1650)
-* BFD_RELOC_XTENSA_SLOT13_ALT:           howto manager.      (line 1671)
-* BFD_RELOC_XTENSA_SLOT13_OP:            howto manager.      (line 1651)
-* BFD_RELOC_XTENSA_SLOT14_ALT:           howto manager.      (line 1672)
-* BFD_RELOC_XTENSA_SLOT14_OP:            howto manager.      (line 1652)
-* BFD_RELOC_XTENSA_SLOT1_ALT:            howto manager.      (line 1659)
-* BFD_RELOC_XTENSA_SLOT1_OP:             howto manager.      (line 1639)
-* BFD_RELOC_XTENSA_SLOT2_ALT:            howto manager.      (line 1660)
-* BFD_RELOC_XTENSA_SLOT2_OP:             howto manager.      (line 1640)
-* BFD_RELOC_XTENSA_SLOT3_ALT:            howto manager.      (line 1661)
-* BFD_RELOC_XTENSA_SLOT3_OP:             howto manager.      (line 1641)
-* BFD_RELOC_XTENSA_SLOT4_ALT:            howto manager.      (line 1662)
-* BFD_RELOC_XTENSA_SLOT4_OP:             howto manager.      (line 1642)
-* BFD_RELOC_XTENSA_SLOT5_ALT:            howto manager.      (line 1663)
-* BFD_RELOC_XTENSA_SLOT5_OP:             howto manager.      (line 1643)
-* BFD_RELOC_XTENSA_SLOT6_ALT:            howto manager.      (line 1664)
-* BFD_RELOC_XTENSA_SLOT6_OP:             howto manager.      (line 1644)
-* BFD_RELOC_XTENSA_SLOT7_ALT:            howto manager.      (line 1665)
-* BFD_RELOC_XTENSA_SLOT7_OP:             howto manager.      (line 1645)
-* BFD_RELOC_XTENSA_SLOT8_ALT:            howto manager.      (line 1666)
-* BFD_RELOC_XTENSA_SLOT8_OP:             howto manager.      (line 1646)
-* BFD_RELOC_XTENSA_SLOT9_ALT:            howto manager.      (line 1667)
-* BFD_RELOC_XTENSA_SLOT9_OP:             howto manager.      (line 1647)
-* bfd_scan_arch:                         Architectures.      (line  369)
-* bfd_scan_vma:                          BFD front end.      (line  420)
-* bfd_seach_for_target:                  bfd_target.         (line  445)
-* bfd_section_already_linked:            Writing the symbol table.
-                                                             (line   55)
-* bfd_section_list_clear:                section prototypes. (line    8)
-* bfd_sections_find_if:                  section prototypes. (line  145)
-* bfd_set_arch_info:                     Architectures.      (line  410)
-* bfd_set_archive_head:                  Archives.           (line   66)
-* bfd_set_default_target:                bfd_target.         (line  410)
-* bfd_set_error:                         BFD front end.      (line  235)
-* bfd_set_error_handler:                 BFD front end.      (line  275)
-* bfd_set_error_program_name:            BFD front end.      (line  284)
-* bfd_set_file_flags:                    BFD front end.      (line  340)
-* bfd_set_format:                        Formats.            (line   65)
-* bfd_set_gp_size:                       BFD front end.      (line  410)
-* bfd_set_private_flags:                 BFD front end.      (line  487)
-* bfd_set_reloc:                         BFD front end.      (line  330)
-* bfd_set_section_contents:              section prototypes. (line  176)
-* bfd_set_section_flags:                 section prototypes. (line  109)
-* bfd_set_section_size:                  section prototypes. (line  162)
-* bfd_set_start_address:                 BFD front end.      (line  389)
-* bfd_set_symtab:                        symbol handling functions.
-                                                             (line   60)
-* bfd_symbol_info:                       symbol handling functions.
-                                                             (line  130)
-* bfd_target_list:                       bfd_target.         (line  436)
-* bfd_write_bigendian_4byte_int:         Internal.           (line   10)
-* bfd_zalloc:                            Opening and Closing.
-                                                             (line  188)
-* coff_symbol_type:                      coff.               (line  186)
-* core_file_matches_executable_p:        Core Files.         (line   27)
-* find_separate_debug_file:              Opening and Closing.
-                                                             (line  230)
-* get_debug_link_info:                   Opening and Closing.
-                                                             (line  211)
-* Hash tables:                           Hash Tables.        (line    6)
-* internal object-file format:           Canonical format.   (line   11)
-* Linker:                                Linker Functions.   (line    6)
-* Other functions:                       BFD front end.      (line  502)
-* separate_debug_file_exists:            Opening and Closing.
-                                                             (line  221)
-* struct bfd_iovec:                      BFD front end.      (line  646)
-* target vector (_bfd_final_link):       Performing the Final Link.
-                                                             (line    6)
-* target vector (_bfd_link_add_symbols): Adding Symbols to the Hash Table.
-                                                             (line    6)
-* target vector (_bfd_link_hash_table_create): Creating a Linker Hash Table.
-                                                             (line    6)
-* The HOWTO Macro:                       typedef arelent.    (line  290)
-* what is it?:                           Overview.           (line    6)
-
-
Index: b/binutils-2.16.1/bfd/doc/ChangeLog
===================================================================
--- a/binutils-2.16.1/bfd/doc/ChangeLog
+++ b/binutils-2.16.1/bfd/doc/ChangeLog
@@ -1,26 +1,3 @@
-2005-06-12  Daniel Jacobowitz  <dan@codesourcery.com>
-
-	Backport from mainline:
-	2005-05-05  H.J. Lu  <hongjiu.lu@intel.com>
-	* Makefile.am (INCLUDES): Remove -D_GNU_SOURCE.
-	* Makefile.in: Regenerate.
-
-	2005-04-21  H.J. Lu  <hongjiu.lu@intel.com>
-	* Makefile.am (INCLUDES): New. Add -D_GNU_SOURCE.
-	(chew.o): Use it.
-	* Makefile.in: Regenerate.
-
-2005-05-09  Daniel Jacobowitz  <dan@codesourcery.com>
-
-	* Makefile.am: Use a temporary file to build chew.
-	* Makefile.in: Regenerated.
-
-2005-04-29  Daniel Jacobowitz  <dan@codesourcery.com>
-
-	* Makefile.am: Remove stamp rules.  Depend on chew.c
-	instead of $(MKDOC).
-	* Makefile.in: Regnerated.
-
 2005-02-21  Alan Modra  <amodra@bigpond.net.au>
 
 	* Makefile.in: Regenerate.
Index: b/binutils-2.16.1/bfd/doc/Makefile.am
===================================================================
--- a/binutils-2.16.1/bfd/doc/Makefile.am
+++ b/binutils-2.16.1/bfd/doc/Makefile.am
@@ -54,17 +54,11 @@ info_TEXINFOS = bfd.texinfo
 
 MKDOC = chew$(EXEEXT_FOR_BUILD)
 
-INCLUDES = -I.. -I$(srcdir)/.. -I$(srcdir)/../../include \
-	-I$(srcdir)/../../intl -I../../intl
-
-$(MKDOC): $(srcdir)/chew.c
-	$(CC_FOR_BUILD) -o chew.$$$$ $(srcdir)/chew.c \
-	  $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) $(H_CFLAGS) \
-	  $(INCLUDES); \
-	$(SHELL) $(srcdir)/../../move-if-change chew.$$$$ $(MKDOC)
+$(MKDOC): chew.o
+	$(CC_FOR_BUILD) -o $(MKDOC) chew.o $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD)
 
 chew.o: chew.c
-	$(CC_FOR_BUILD) -c $(INCLUDES) $(H_CFLAGS) $(CFLAGS_FOR_BUILD) $(srcdir)/chew.c
+	$(CC_FOR_BUILD) -c -I.. -I$(srcdir)/.. -I$(srcdir)/../../include -I$(srcdir)/../../intl -I../../intl $(H_CFLAGS) $(CFLAGS_FOR_BUILD) $(srcdir)/chew.c
 
 protos: libbfd.h libcoff.h bfd.h
 
@@ -73,122 +67,146 @@ $(srcdir)/bfd.info bfd.dvi: $(DOCFILES) 
 # We can't replace these rules with an implicit rule, because
 # makes without VPATH support couldn't find the .h files in `..'.
 
-# We do not depend on chew directly so that we can distribute the info
-# files, and permit people to rebuild them, without requiring the makeinfo
-# program.  If somebody tries to rebuild info, but none of the .texi files
-# have changed, then nothing will be rebuilt.
+# We use s-XXX targets so that we can distribute the info files,
+# and permit people to rebuild them, without requiring the makeinfo
+# program.  If somebody tries to rebuild info, but none of the .texi
+# files have changed, then this Makefile will build chew, and will
+# build all of the stamp files, but will not actually have to rebuild
+# bfd.info.
 
-aoutx.texi: chew.c $(srcdir)/../aoutx.h $(srcdir)/doc.str
-	$(MAKE) $(MKDOC)
+s-aoutx: $(MKDOC) $(srcdir)/../aoutx.h $(srcdir)/doc.str
 	./$(MKDOC) -f $(srcdir)/doc.str <$(srcdir)/../aoutx.h >aoutx.tmp
 	$(SHELL) $(srcdir)/../../move-if-change aoutx.tmp aoutx.texi
+	touch s-aoutx
+aoutx.texi: s-aoutx
 
-archive.texi: chew.c $(srcdir)/../archive.c $(srcdir)/doc.str
-	$(MAKE) $(MKDOC)
+s-archive: $(MKDOC) $(srcdir)/../archive.c $(srcdir)/doc.str
 	./$(MKDOC) -f $(srcdir)/doc.str <$(srcdir)/../archive.c >archive.tmp
 	$(SHELL) $(srcdir)/../../move-if-change archive.tmp archive.texi
+	touch s-archive
+archive.texi: s-archive
 
-archures.texi: chew.c $(srcdir)/../archures.c $(srcdir)/doc.str
-	$(MAKE) $(MKDOC)
+s-archures: $(MKDOC) $(srcdir)/../archures.c $(srcdir)/doc.str
 	./$(MKDOC) -f $(srcdir)/doc.str < $(srcdir)/../archures.c >archures.tmp
 	$(SHELL) $(srcdir)/../../move-if-change archures.tmp archures.texi
+	touch s-archures
+archures.texi: s-archures
 
 # We use bfdt.texi, rather than bfd.texi, to avoid conflicting with
 # bfd.texinfo on an 8.3 filesystem.
-bfdt.texi: chew.c $(srcdir)/../bfd.c $(srcdir)/doc.str
-	$(MAKE) $(MKDOC)
+s-bfd: $(MKDOC) $(srcdir)/../bfd.c $(srcdir)/doc.str
 	./$(MKDOC) -f $(srcdir)/doc.str < $(srcdir)/../bfd.c >bfd.tmp
 	$(SHELL) $(srcdir)/../../move-if-change bfd.tmp bfdt.texi
+	touch s-bfd
+bfdt.texi: s-bfd
 
-cache.texi: chew.c $(srcdir)/../cache.c $(srcdir)/doc.str
-	$(MAKE) $(MKDOC)
+s-cache: $(MKDOC) $(srcdir)/../cache.c $(srcdir)/doc.str
 	./$(MKDOC) -f $(srcdir)/doc.str < $(srcdir)/../cache.c >cache.tmp
 	$(SHELL) $(srcdir)/../../move-if-change cache.tmp cache.texi
+	touch s-cache
+cache.texi: s-cache
 
-coffcode.texi: chew.c $(srcdir)/../coffcode.h $(srcdir)/doc.str
-	$(MAKE) $(MKDOC)
+s-coffcode: $(MKDOC) $(srcdir)/../coffcode.h $(srcdir)/doc.str
 	./$(MKDOC) -f $(srcdir)/doc.str <$(srcdir)/../coffcode.h >coffcode.tmp
 	$(SHELL) $(srcdir)/../../move-if-change coffcode.tmp coffcode.texi
+	touch s-coffcode
+coffcode.texi: s-coffcode
 
-core.texi: chew.c $(srcdir)/../corefile.c $(srcdir)/doc.str
-	$(MAKE) $(MKDOC)
+s-core: $(MKDOC) $(srcdir)/../corefile.c $(srcdir)/doc.str
 	./$(MKDOC) -f $(srcdir)/doc.str <$(srcdir)/../corefile.c >core.tmp
 	$(SHELL) $(srcdir)/../../move-if-change core.tmp core.texi
+	touch s-core
+core.texi: s-core
 
-elf.texi: chew.c $(srcdir)/../elf.c $(srcdir)/doc.str
-	$(MAKE) $(MKDOC)
+s-elf: $(MKDOC) $(srcdir)/../elf.c $(srcdir)/doc.str
 	./$(MKDOC) -f $(srcdir)/doc.str <$(srcdir)/../elf.c >elf.tmp
 	$(SHELL) $(srcdir)/../../move-if-change elf.tmp elf.texi
+	touch s-elf
+elf.texi: s-elf
 
-elfcode.texi: chew.c $(srcdir)/../elfcode.h $(srcdir)/doc.str
-	$(MAKE) $(MKDOC)
+s-elfcode: $(MKDOC) $(srcdir)/../elfcode.h $(srcdir)/doc.str
 	./$(MKDOC) -f $(srcdir)/doc.str <$(srcdir)/../elfcode.h >elfcode.tmp
 	$(SHELL) $(srcdir)/../../move-if-change elfcode.tmp elfcode.texi
+	touch s-elfcode
+elfcode.texi: s-elfcode
 
-mmo.texi: chew.c $(srcdir)/../mmo.c $(srcdir)/doc.str
-	$(MAKE) $(MKDOC)
+s-mmo: $(MKDOC) $(srcdir)/../mmo.c $(srcdir)/doc.str
 	./$(MKDOC) -f $(srcdir)/doc.str <$(srcdir)/../mmo.c >mmo.tmp
 	$(SHELL) $(srcdir)/../../move-if-change mmo.tmp mmo.texi
+	touch s-mmo
+mmo.texi: s-mmo
 
-format.texi: chew.c $(srcdir)/../format.c $(srcdir)/doc.str
-	$(MAKE) $(MKDOC)
+s-format: $(MKDOC) $(srcdir)/../format.c $(srcdir)/doc.str
 	./$(MKDOC) -f $(srcdir)/doc.str <$(srcdir)/../format.c >format.tmp
 	$(SHELL) $(srcdir)/../../move-if-change format.tmp format.texi
+	touch s-format
+format.texi: s-format
 
-libbfd.texi: chew.c $(srcdir)/../libbfd.c $(srcdir)/doc.str
-	$(MAKE) $(MKDOC)
+s-libbfd: $(MKDOC) $(srcdir)/../libbfd.c $(srcdir)/doc.str
 	./$(MKDOC) -f $(srcdir)/doc.str < $(srcdir)/../libbfd.c >libbfd.tmp
 	$(SHELL) $(srcdir)/../../move-if-change libbfd.tmp libbfd.texi
+	touch s-libbfd
+libbfd.texi: s-libbfd
 
-bfdio.texi: chew.c $(srcdir)/../bfdio.c $(srcdir)/doc.str
-	$(MAKE) $(MKDOC)
+s-bfdio: $(MKDOC) $(srcdir)/../bfdio.c $(srcdir)/doc.str
 	./$(MKDOC) -f $(srcdir)/doc.str < $(srcdir)/../bfdio.c >bfdio.tmp
 	$(SHELL) $(srcdir)/../../move-if-change bfdio.tmp bfdio.texi
+	touch s-bfdio
+bfdio.texi: s-bfdio
 
-bfdwin.texi: chew.c $(srcdir)/../bfdwin.c $(srcdir)/doc.str
-	$(MAKE) $(MKDOC)
+s-bfdwin: $(MKDOC) $(srcdir)/../bfdwin.c $(srcdir)/doc.str
 	./$(MKDOC) -f $(srcdir)/doc.str < $(srcdir)/../bfdwin.c >bfdwin.tmp
 	$(SHELL) $(srcdir)/../../move-if-change bfdwin.tmp bfdwin.texi
+	touch s-bfdwin
+bfdwin.texi: s-bfdwin
 
-opncls.texi: chew.c $(srcdir)/../opncls.c $(srcdir)/doc.str
-	$(MAKE) $(MKDOC)
+s-opncls: $(MKDOC) $(srcdir)/../opncls.c $(srcdir)/doc.str
 	./$(MKDOC) -f $(srcdir)/doc.str  <$(srcdir)/../opncls.c >opncls.tmp
 	$(SHELL) $(srcdir)/../../move-if-change opncls.tmp opncls.texi
+	touch s-opncls
+opncls.texi: s-opncls
 
-reloc.texi: chew.c $(srcdir)/../reloc.c $(srcdir)/doc.str
-	$(MAKE) $(MKDOC)
+s-reloc: $(MKDOC) $(srcdir)/../reloc.c $(srcdir)/doc.str
 	./$(MKDOC) -f $(srcdir)/doc.str <$(srcdir)/../reloc.c >reloc.tmp
 	$(SHELL) $(srcdir)/../../move-if-change reloc.tmp reloc.texi
+	touch s-reloc
+reloc.texi: s-reloc
 
-section.texi: chew.c $(srcdir)/../section.c $(srcdir)/doc.str
-	$(MAKE) $(MKDOC)
+s-section: $(MKDOC) $(srcdir)/../section.c $(srcdir)/doc.str
 	./$(MKDOC) -f $(srcdir)/doc.str <$(srcdir)/../section.c >section.tmp
 	$(SHELL) $(srcdir)/../../move-if-change section.tmp section.texi
+	touch s-section
+section.texi: s-section
 
-syms.texi: chew.c $(srcdir)/../syms.c $(srcdir)/doc.str
-	$(MAKE) $(MKDOC)
+s-syms: $(MKDOC) $(srcdir)/../syms.c $(srcdir)/doc.str
 	./$(MKDOC) -f $(srcdir)/doc.str <$(srcdir)/../syms.c >syms.tmp
 	$(SHELL) $(srcdir)/../../move-if-change syms.tmp syms.texi
+	touch s-syms
+syms.texi: s-syms
 
-targets.texi: chew.c $(srcdir)/../targets.c $(srcdir)/doc.str
-	$(MAKE) $(MKDOC)
+s-targets: $(MKDOC) $(srcdir)/../targets.c $(srcdir)/doc.str
 	./$(MKDOC) -f $(srcdir)/doc.str <$(srcdir)/../targets.c >targets.tmp
 	$(SHELL) $(srcdir)/../../move-if-change targets.tmp targets.texi
+	touch s-targets
+targets.texi: s-targets
 
-init.texi: chew.c $(srcdir)/../init.c $(srcdir)/doc.str
-	$(MAKE) $(MKDOC)
+s-init: $(MKDOC) $(srcdir)/../init.c $(srcdir)/doc.str
 	./$(MKDOC) -f $(srcdir)/doc.str <$(srcdir)/../init.c >init.tmp
 	$(SHELL) $(srcdir)/../../move-if-change init.tmp init.texi
+	touch s-init
+init.texi: s-init
 
-hash.texi: chew.c $(srcdir)/../hash.c $(srcdir)/doc.str
-	$(MAKE) $(MKDOC)
+s-hash: $(MKDOC) $(srcdir)/../hash.c $(srcdir)/doc.str
 	./$(MKDOC) -f $(srcdir)/doc.str <$(srcdir)/../hash.c >hash.tmp
 	$(SHELL) $(srcdir)/../../move-if-change hash.tmp hash.texi
+	touch s-hash
+hash.texi: s-hash
 
-linker.texi: chew.c $(srcdir)/../linker.c $(srcdir)/doc.str
-	$(MAKE) $(MKDOC)
+s-linker: $(MKDOC) $(srcdir)/../linker.c $(srcdir)/doc.str
 	./$(MKDOC) -f $(srcdir)/doc.str <$(srcdir)/../linker.c >linker.tmp
 	$(SHELL) $(srcdir)/../../move-if-change linker.tmp linker.texi
+	touch s-linker
+linker.texi: s-linker
 
 LIBBFD_H_DEP = \
 	$(srcdir)/../libbfd-in.h	\
@@ -278,7 +296,7 @@ noinst_TEXINFOS = bfdint.texi
 
 MOSTLYCLEANFILES = $(MKDOC) *.o
 
-CLEANFILES = *.p *.ip
+CLEANFILES = s-* *.p *.ip
 
 DISTCLEANFILES = bfd.?? bfd.??? bfd.h libbfd.h libcoff.h texput.log
 
Index: b/binutils-2.16.1/bfd/doc/Makefile.in
===================================================================
--- a/binutils-2.16.1/bfd/doc/Makefile.in
+++ b/binutils-2.16.1/bfd/doc/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.2 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005  Free Software Foundation, Inc.
+# 2003, 2004  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -261,9 +261,6 @@ SRCIPROT = $(srcdir)/../cache.c $(srcdir
 TEXIDIR = $(srcdir)/../../texinfo/fsf
 info_TEXINFOS = bfd.texinfo
 MKDOC = chew$(EXEEXT_FOR_BUILD)
-INCLUDES = -I.. -I$(srcdir)/.. -I$(srcdir)/../../include \
-	-I$(srcdir)/../../intl -I../../intl
-
 LIBBFD_H_DEP = \
 	$(srcdir)/../libbfd-in.h	\
 	$(srcdir)/../init.c		\
@@ -310,7 +307,7 @@ BFD_H_DEP = \
 
 noinst_TEXINFOS = bfdint.texi
 MOSTLYCLEANFILES = $(MKDOC) *.o
-CLEANFILES = *.p *.ip
+CLEANFILES = s-* *.p *.ip
 DISTCLEANFILES = bfd.?? bfd.??? bfd.h libbfd.h libcoff.h texput.log
 MAINTAINERCLEANFILES = $(DOCFILES)
 all: all-am
@@ -407,7 +404,7 @@ bfd.html: bfd.texinfo 
 	$(DVIPS) -o $@ $<
 
 uninstall-info-am:
-	@$(PRE_UNINSTALL)
+	$(PRE_UNINSTALL)
 	@if (install-info --version && \
 	     install-info --version 2>&1 | sed 1q | grep -i -v debian) >/dev/null 2>&1; then \
 	  list='$(INFO_DEPS)'; \
@@ -423,7 +420,7 @@ uninstall-info-am:
 	  relfile=`echo "$$file" | sed 's|^.*/||'`; \
 	  relfile_i=`echo "$$relfile" | sed 's|\.info$$||;s|$$|.i|'`; \
 	  (if cd "$(DESTDIR)$(infodir)"; then \
-	     echo " cd '$(DESTDIR)$(infodir)' && rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]"; \
+	     echo " rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9])"; \
 	     rm -f $$relfile $$relfile-[0-9] $$relfile-[0-9][0-9] $$relfile_i[0-9] $$relfile_i[0-9][0-9]; \
 	   else :; fi); \
 	done
@@ -585,14 +582,11 @@ uninstall-am:
 	uninstall uninstall-am uninstall-info-am
 
 
-$(MKDOC): $(srcdir)/chew.c
-	$(CC_FOR_BUILD) -o chew.$$$$ $(srcdir)/chew.c \
-	  $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD) $(H_CFLAGS) \
-	  $(INCLUDES); \
-	$(SHELL) $(srcdir)/../../move-if-change chew.$$$$ $(MKDOC)
+$(MKDOC): chew.o
+	$(CC_FOR_BUILD) -o $(MKDOC) chew.o $(CFLAGS_FOR_BUILD) $(LDFLAGS_FOR_BUILD)
 
 chew.o: chew.c
-	$(CC_FOR_BUILD) -c $(INCLUDES) $(H_CFLAGS) $(CFLAGS_FOR_BUILD) $(srcdir)/chew.c
+	$(CC_FOR_BUILD) -c -I.. -I$(srcdir)/.. -I$(srcdir)/../../include -I$(srcdir)/../../intl -I../../intl $(H_CFLAGS) $(CFLAGS_FOR_BUILD) $(srcdir)/chew.c
 
 protos: libbfd.h libcoff.h bfd.h
 
@@ -601,122 +595,146 @@ $(srcdir)/bfd.info bfd.dvi: $(DOCFILES) 
 # We can't replace these rules with an implicit rule, because
 # makes without VPATH support couldn't find the .h files in `..'.
 
-# We do not depend on chew directly so that we can distribute the info
-# files, and permit people to rebuild them, without requiring the makeinfo
-# program.  If somebody tries to rebuild info, but none of the .texi files
-# have changed, then nothing will be rebuilt.
+# We use s-XXX targets so that we can distribute the info files,
+# and permit people to rebuild them, without requiring the makeinfo
+# program.  If somebody tries to rebuild info, but none of the .texi
+# files have changed, then this Makefile will build chew, and will
+# build all of the stamp files, but will not actually have to rebuild
+# bfd.info.
 
-aoutx.texi: chew.c $(srcdir)/../aoutx.h $(srcdir)/doc.str
-	$(MAKE) $(MKDOC)
+s-aoutx: $(MKDOC) $(srcdir)/../aoutx.h $(srcdir)/doc.str
 	./$(MKDOC) -f $(srcdir)/doc.str <$(srcdir)/../aoutx.h >aoutx.tmp
 	$(SHELL) $(srcdir)/../../move-if-change aoutx.tmp aoutx.texi
+	touch s-aoutx
+aoutx.texi: s-aoutx
 
-archive.texi: chew.c $(srcdir)/../archive.c $(srcdir)/doc.str
-	$(MAKE) $(MKDOC)
+s-archive: $(MKDOC) $(srcdir)/../archive.c $(srcdir)/doc.str
 	./$(MKDOC) -f $(srcdir)/doc.str <$(srcdir)/../archive.c >archive.tmp
 	$(SHELL) $(srcdir)/../../move-if-change archive.tmp archive.texi
+	touch s-archive
+archive.texi: s-archive
 
-archures.texi: chew.c $(srcdir)/../archures.c $(srcdir)/doc.str
-	$(MAKE) $(MKDOC)
+s-archures: $(MKDOC) $(srcdir)/../archures.c $(srcdir)/doc.str
 	./$(MKDOC) -f $(srcdir)/doc.str < $(srcdir)/../archures.c >archures.tmp
 	$(SHELL) $(srcdir)/../../move-if-change archures.tmp archures.texi
+	touch s-archures
+archures.texi: s-archures
 
 # We use bfdt.texi, rather than bfd.texi, to avoid conflicting with
 # bfd.texinfo on an 8.3 filesystem.
-bfdt.texi: chew.c $(srcdir)/../bfd.c $(srcdir)/doc.str
-	$(MAKE) $(MKDOC)
+s-bfd: $(MKDOC) $(srcdir)/../bfd.c $(srcdir)/doc.str
 	./$(MKDOC) -f $(srcdir)/doc.str < $(srcdir)/../bfd.c >bfd.tmp
 	$(SHELL) $(srcdir)/../../move-if-change bfd.tmp bfdt.texi
+	touch s-bfd
+bfdt.texi: s-bfd
 
-cache.texi: chew.c $(srcdir)/../cache.c $(srcdir)/doc.str
-	$(MAKE) $(MKDOC)
+s-cache: $(MKDOC) $(srcdir)/../cache.c $(srcdir)/doc.str
 	./$(MKDOC) -f $(srcdir)/doc.str < $(srcdir)/../cache.c >cache.tmp
 	$(SHELL) $(srcdir)/../../move-if-change cache.tmp cache.texi
+	touch s-cache
+cache.texi: s-cache
 
-coffcode.texi: chew.c $(srcdir)/../coffcode.h $(srcdir)/doc.str
-	$(MAKE) $(MKDOC)
+s-coffcode: $(MKDOC) $(srcdir)/../coffcode.h $(srcdir)/doc.str
 	./$(MKDOC) -f $(srcdir)/doc.str <$(srcdir)/../coffcode.h >coffcode.tmp
 	$(SHELL) $(srcdir)/../../move-if-change coffcode.tmp coffcode.texi
+	touch s-coffcode
+coffcode.texi: s-coffcode
 
-core.texi: chew.c $(srcdir)/../corefile.c $(srcdir)/doc.str
-	$(MAKE) $(MKDOC)
+s-core: $(MKDOC) $(srcdir)/../corefile.c $(srcdir)/doc.str
 	./$(MKDOC) -f $(srcdir)/doc.str <$(srcdir)/../corefile.c >core.tmp
 	$(SHELL) $(srcdir)/../../move-if-change core.tmp core.texi
+	touch s-core
+core.texi: s-core
 
-elf.texi: chew.c $(srcdir)/../elf.c $(srcdir)/doc.str
-	$(MAKE) $(MKDOC)
+s-elf: $(MKDOC) $(srcdir)/../elf.c $(srcdir)/doc.str
 	./$(MKDOC) -f $(srcdir)/doc.str <$(srcdir)/../elf.c >elf.tmp
 	$(SHELL) $(srcdir)/../../move-if-change elf.tmp elf.texi
+	touch s-elf
+elf.texi: s-elf
 
-elfcode.texi: chew.c $(srcdir)/../elfcode.h $(srcdir)/doc.str
-	$(MAKE) $(MKDOC)
+s-elfcode: $(MKDOC) $(srcdir)/../elfcode.h $(srcdir)/doc.str
 	./$(MKDOC) -f $(srcdir)/doc.str <$(srcdir)/../elfcode.h >elfcode.tmp
 	$(SHELL) $(srcdir)/../../move-if-change elfcode.tmp elfcode.texi
+	touch s-elfcode
+elfcode.texi: s-elfcode
 
-mmo.texi: chew.c $(srcdir)/../mmo.c $(srcdir)/doc.str
-	$(MAKE) $(MKDOC)
+s-mmo: $(MKDOC) $(srcdir)/../mmo.c $(srcdir)/doc.str
 	./$(MKDOC) -f $(srcdir)/doc.str <$(srcdir)/../mmo.c >mmo.tmp
 	$(SHELL) $(srcdir)/../../move-if-change mmo.tmp mmo.texi
+	touch s-mmo
+mmo.texi: s-mmo
 
-format.texi: chew.c $(srcdir)/../format.c $(srcdir)/doc.str
-	$(MAKE) $(MKDOC)
+s-format: $(MKDOC) $(srcdir)/../format.c $(srcdir)/doc.str
 	./$(MKDOC) -f $(srcdir)/doc.str <$(srcdir)/../format.c >format.tmp
 	$(SHELL) $(srcdir)/../../move-if-change format.tmp format.texi
+	touch s-format
+format.texi: s-format
 
-libbfd.texi: chew.c $(srcdir)/../libbfd.c $(srcdir)/doc.str
-	$(MAKE) $(MKDOC)
+s-libbfd: $(MKDOC) $(srcdir)/../libbfd.c $(srcdir)/doc.str
 	./$(MKDOC) -f $(srcdir)/doc.str < $(srcdir)/../libbfd.c >libbfd.tmp
 	$(SHELL) $(srcdir)/../../move-if-change libbfd.tmp libbfd.texi
+	touch s-libbfd
+libbfd.texi: s-libbfd
 
-bfdio.texi: chew.c $(srcdir)/../bfdio.c $(srcdir)/doc.str
-	$(MAKE) $(MKDOC)
+s-bfdio: $(MKDOC) $(srcdir)/../bfdio.c $(srcdir)/doc.str
 	./$(MKDOC) -f $(srcdir)/doc.str < $(srcdir)/../bfdio.c >bfdio.tmp
 	$(SHELL) $(srcdir)/../../move-if-change bfdio.tmp bfdio.texi
+	touch s-bfdio
+bfdio.texi: s-bfdio
 
-bfdwin.texi: chew.c $(srcdir)/../bfdwin.c $(srcdir)/doc.str
-	$(MAKE) $(MKDOC)
+s-bfdwin: $(MKDOC) $(srcdir)/../bfdwin.c $(srcdir)/doc.str
 	./$(MKDOC) -f $(srcdir)/doc.str < $(srcdir)/../bfdwin.c >bfdwin.tmp
 	$(SHELL) $(srcdir)/../../move-if-change bfdwin.tmp bfdwin.texi
+	touch s-bfdwin
+bfdwin.texi: s-bfdwin
 
-opncls.texi: chew.c $(srcdir)/../opncls.c $(srcdir)/doc.str
-	$(MAKE) $(MKDOC)
+s-opncls: $(MKDOC) $(srcdir)/../opncls.c $(srcdir)/doc.str
 	./$(MKDOC) -f $(srcdir)/doc.str  <$(srcdir)/../opncls.c >opncls.tmp
 	$(SHELL) $(srcdir)/../../move-if-change opncls.tmp opncls.texi
+	touch s-opncls
+opncls.texi: s-opncls
 
-reloc.texi: chew.c $(srcdir)/../reloc.c $(srcdir)/doc.str
-	$(MAKE) $(MKDOC)
+s-reloc: $(MKDOC) $(srcdir)/../reloc.c $(srcdir)/doc.str
 	./$(MKDOC) -f $(srcdir)/doc.str <$(srcdir)/../reloc.c >reloc.tmp
 	$(SHELL) $(srcdir)/../../move-if-change reloc.tmp reloc.texi
+	touch s-reloc
+reloc.texi: s-reloc
 
-section.texi: chew.c $(srcdir)/../section.c $(srcdir)/doc.str
-	$(MAKE) $(MKDOC)
+s-section: $(MKDOC) $(srcdir)/../section.c $(srcdir)/doc.str
 	./$(MKDOC) -f $(srcdir)/doc.str <$(srcdir)/../section.c >section.tmp
 	$(SHELL) $(srcdir)/../../move-if-change section.tmp section.texi
+	touch s-section
+section.texi: s-section
 
-syms.texi: chew.c $(srcdir)/../syms.c $(srcdir)/doc.str
-	$(MAKE) $(MKDOC)
+s-syms: $(MKDOC) $(srcdir)/../syms.c $(srcdir)/doc.str
 	./$(MKDOC) -f $(srcdir)/doc.str <$(srcdir)/../syms.c >syms.tmp
 	$(SHELL) $(srcdir)/../../move-if-change syms.tmp syms.texi
+	touch s-syms
+syms.texi: s-syms
 
-targets.texi: chew.c $(srcdir)/../targets.c $(srcdir)/doc.str
-	$(MAKE) $(MKDOC)
+s-targets: $(MKDOC) $(srcdir)/../targets.c $(srcdir)/doc.str
 	./$(MKDOC) -f $(srcdir)/doc.str <$(srcdir)/../targets.c >targets.tmp
 	$(SHELL) $(srcdir)/../../move-if-change targets.tmp targets.texi
+	touch s-targets
+targets.texi: s-targets
 
-init.texi: chew.c $(srcdir)/../init.c $(srcdir)/doc.str
-	$(MAKE) $(MKDOC)
+s-init: $(MKDOC) $(srcdir)/../init.c $(srcdir)/doc.str
 	./$(MKDOC) -f $(srcdir)/doc.str <$(srcdir)/../init.c >init.tmp
 	$(SHELL) $(srcdir)/../../move-if-change init.tmp init.texi
+	touch s-init
+init.texi: s-init
 
-hash.texi: chew.c $(srcdir)/../hash.c $(srcdir)/doc.str
-	$(MAKE) $(MKDOC)
+s-hash: $(MKDOC) $(srcdir)/../hash.c $(srcdir)/doc.str
 	./$(MKDOC) -f $(srcdir)/doc.str <$(srcdir)/../hash.c >hash.tmp
 	$(SHELL) $(srcdir)/../../move-if-change hash.tmp hash.texi
+	touch s-hash
+hash.texi: s-hash
 
-linker.texi: chew.c $(srcdir)/../linker.c $(srcdir)/doc.str
-	$(MAKE) $(MKDOC)
+s-linker: $(MKDOC) $(srcdir)/../linker.c $(srcdir)/doc.str
 	./$(MKDOC) -f $(srcdir)/doc.str <$(srcdir)/../linker.c >linker.tmp
 	$(SHELL) $(srcdir)/../../move-if-change linker.tmp linker.texi
+	touch s-linker
+linker.texi: s-linker
 
 libbfd.h: $(LIBBFD_H_DEP)
 	echo "$(LIBBFD_H_DEP)" | sed -f $(srcdir)/header.sed > $@
Index: b/binutils-2.16.1/bfd/elf32-arm.c
===================================================================
--- a/binutils-2.16.1/bfd/elf32-arm.c
+++ b/binutils-2.16.1/bfd/elf32-arm.c
@@ -45,7 +45,7 @@ static bfd_boolean elf32_arm_nabi_grok_p
    R_ARM_PC24 as an index into this, and find the R_ARM_PC24 HOWTO
    in that slot.  */
 
-static reloc_howto_type elf32_arm_howto_table[] =
+static reloc_howto_type elf32_arm_howto_table_1[] =
 {
   /* No relocation */
   HOWTO (R_ARM_NONE,		/* type */
@@ -106,7 +106,7 @@ static reloc_howto_type elf32_arm_howto_
 	 0xffffffff,		/* dst_mask */
 	 TRUE),			/* pcrel_offset */
 
-  /* 8 bit absolute */
+  /* 8 bit absolute - R_ARM_LDR_PC_G0 in AAELF */
   HOWTO (R_ARM_PC13,		/* type */
 	 0,			/* rightshift */
 	 0,			/* size (0 = byte, 1 = short, 2 = long) */
@@ -194,7 +194,8 @@ static reloc_howto_type elf32_arm_howto_
 	 0xffffffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
-  HOWTO (R_ARM_THM_PC22,	/* type */
+  /* FIXME: Has two more bits of offset in Thumb32.  */
+  HOWTO (R_ARM_THM_CALL,	/* type */
 	 1,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
 	 23,			/* bitsize */
@@ -202,7 +203,7 @@ static reloc_howto_type elf32_arm_howto_
 	 0,			/* bitpos */
 	 complain_overflow_signed,/* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
-	 "R_ARM_THM_PC22",	/* name */
+	 "R_ARM_THM_CALL",	/* name */
 	 FALSE,			/* partial_inplace */
 	 0x07ff07ff,		/* src_mask */
 	 0x07ff07ff,		/* dst_mask */
@@ -222,19 +223,19 @@ static reloc_howto_type elf32_arm_howto_
 	 0x000000ff,		/* dst_mask */
 	 TRUE),			/* pcrel_offset */
 
-  HOWTO (R_ARM_AMP_VCALL9,	/* type */
+  HOWTO (R_ARM_BREL_ADJ,	/* type */
 	 1,			/* rightshift */
 	 1,			/* size (0 = byte, 1 = short, 2 = long) */
-	 8,			/* bitsize */
-	 TRUE,			/* pc_relative */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
 	 complain_overflow_signed,/* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
-	 "R_ARM_AMP_VCALL9",	/* name */
+	 "R_ARM_BREL_ADJ",	/* name */
 	 FALSE,			/* partial_inplace */
-	 0x000000ff,		/* src_mask */
-	 0x000000ff,		/* dst_mask */
-	 TRUE),			/* pcrel_offset */
+	 0xffffffff,		/* src_mask */
+	 0xffffffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
   HOWTO (R_ARM_SWI24,		/* type */
 	 0,			/* rightshift */
@@ -294,49 +295,49 @@ static reloc_howto_type elf32_arm_howto_
 	 0x07ff07ff,		/* dst_mask */
 	 TRUE),			/* pcrel_offset */
 
-  /* These next three relocs are not defined, but we need to fill the space.  */
+  /* Dynamic TLS relocations.  */
 
-  HOWTO (R_ARM_NONE,		/* type */
-	 0,			/* rightshift */
-	 0,			/* size (0 = byte, 1 = short, 2 = long) */
-	 0,			/* bitsize */
-	 FALSE,			/* pc_relative */
-	 0,			/* bitpos */
-	 complain_overflow_dont,/* complain_on_overflow */
-	 bfd_elf_generic_reloc,	/* special_function */
-	 "R_ARM_unknown_17",	/* name */
-	 FALSE,			/* partial_inplace */
-	 0,			/* src_mask */
-	 0,			/* dst_mask */
-	 FALSE),		/* pcrel_offset */
+  HOWTO (R_ARM_TLS_DTPMOD32,	/* type */
+         0,                     /* rightshift */
+         2,                     /* size (0 = byte, 1 = short, 2 = long) */
+         32,                    /* bitsize */
+         FALSE,                 /* pc_relative */
+         0,                     /* bitpos */
+         complain_overflow_bitfield,/* complain_on_overflow */
+         bfd_elf_generic_reloc, /* special_function */
+         "R_ARM_TLS_DTPMOD32",	/* name */
+         TRUE,			/* partial_inplace */
+         0xffffffff,		/* src_mask */
+         0xffffffff,		/* dst_mask */
+         FALSE),                /* pcrel_offset */
 
-  HOWTO (R_ARM_NONE,		/* type */
-	 0,			/* rightshift */
-	 0,			/* size (0 = byte, 1 = short, 2 = long) */
-	 0,			/* bitsize */
-	 FALSE,			/* pc_relative */
-	 0,			/* bitpos */
-	 complain_overflow_dont,/* complain_on_overflow */
-	 bfd_elf_generic_reloc,	/* special_function */
-	 "R_ARM_unknown_18",	/* name */
-	 FALSE,			/* partial_inplace */
-	 0,			/* src_mask */
-	 0,			/* dst_mask */
-	 FALSE),		/* pcrel_offset */
+  HOWTO (R_ARM_TLS_DTPOFF32,	/* type */
+         0,                     /* rightshift */
+         2,                     /* size (0 = byte, 1 = short, 2 = long) */
+         32,                    /* bitsize */
+         FALSE,                 /* pc_relative */
+         0,                     /* bitpos */
+         complain_overflow_bitfield,/* complain_on_overflow */
+         bfd_elf_generic_reloc, /* special_function */
+         "R_ARM_TLS_DTPOFF32",	/* name */
+         TRUE,			/* partial_inplace */
+         0xffffffff,		/* src_mask */
+         0xffffffff,		/* dst_mask */
+         FALSE),                /* pcrel_offset */
 
-  HOWTO (R_ARM_NONE,		/* type */
-	 0,			/* rightshift */
-	 0,			/* size (0 = byte, 1 = short, 2 = long) */
-	 0,			/* bitsize */
-	 FALSE,			/* pc_relative */
-	 0,			/* bitpos */
-	 complain_overflow_dont,/* complain_on_overflow */
-	 bfd_elf_generic_reloc,	/* special_function */
-	 "R_ARM_unknown_19",	/* name */
-	 FALSE,			/* partial_inplace */
-	 0,			/* src_mask */
-	 0,			/* dst_mask */
-	 FALSE),		/* pcrel_offset */
+  HOWTO (R_ARM_TLS_TPOFF32,	/* type */
+         0,                     /* rightshift */
+         2,                     /* size (0 = byte, 1 = short, 2 = long) */
+         32,                    /* bitsize */
+         FALSE,                 /* pc_relative */
+         0,                     /* bitpos */
+         complain_overflow_bitfield,/* complain_on_overflow */
+         bfd_elf_generic_reloc, /* special_function */
+         "R_ARM_TLS_TPOFF32",	/* name */
+         TRUE,			/* partial_inplace */
+         0xffffffff,		/* src_mask */
+         0xffffffff,		/* dst_mask */
+         FALSE),                /* pcrel_offset */
 
   /* Relocs used in ARM Linux */
 
@@ -396,7 +397,7 @@ static reloc_howto_type elf32_arm_howto_
          0xffffffff,		/* dst_mask */
          FALSE),                /* pcrel_offset */
 
-  HOWTO (R_ARM_GOTOFF,		/* type */
+  HOWTO (R_ARM_GOTOFF32,	/* type */
          0,                     /* rightshift */
          2,                     /* size (0 = byte, 1 = short, 2 = long) */
          32,                    /* bitsize */
@@ -404,7 +405,7 @@ static reloc_howto_type elf32_arm_howto_
          0,                     /* bitpos */
          complain_overflow_bitfield,/* complain_on_overflow */
          bfd_elf_generic_reloc, /* special_function */
-         "R_ARM_GOTOFF",	/* name */
+         "R_ARM_GOTOFF32",	/* name */
          TRUE,			/* partial_inplace */
          0xffffffff,		/* src_mask */
          0xffffffff,		/* dst_mask */
@@ -480,32 +481,32 @@ static reloc_howto_type elf32_arm_howto_
 	 0x00ffffff,		/* dst_mask */
 	 TRUE),			/* pcrel_offset */
 
-  HOWTO (R_ARM_NONE,		/* type */
-	 0,			/* rightshift */
-	 0,			/* size (0 = byte, 1 = short, 2 = long) */
-	 0,			/* bitsize */
-	 FALSE,			/* pc_relative */
+  HOWTO (R_ARM_THM_JUMP24,	/* type */
+	 1,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 24,			/* bitsize */
+	 TRUE,			/* pc_relative */
 	 0,			/* bitpos */
-	 complain_overflow_dont,/* complain_on_overflow */
+	 complain_overflow_signed,/* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
-	 "R_ARM_unknown_30",	/* name */
+	 "R_ARM_THM_JUMP24",	/* name */
 	 FALSE,			/* partial_inplace */
-	 0,			/* src_mask */
-	 0,			/* dst_mask */
-	 FALSE),		/* pcrel_offset */
+	 0x07ff2fff,		/* src_mask */
+	 0x07ff2fff,		/* dst_mask */
+	 TRUE),			/* pcrel_offset */
 
-  HOWTO (R_ARM_NONE,		/* type */
+  HOWTO (R_ARM_BASE_ABS,	/* type */
 	 0,			/* rightshift */
-	 0,			/* size (0 = byte, 1 = short, 2 = long) */
-	 0,			/* bitsize */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
 	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
 	 complain_overflow_dont,/* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
-	 "R_ARM_unknown_31",	/* name */
+	 "R_ARM_BASE_ABS",	/* name */
 	 FALSE,			/* partial_inplace */
-	 0,			/* src_mask */
-	 0,			/* dst_mask */
+	 0xffffffff,		/* src_mask */
+	 0xffffffff,		/* dst_mask */
 	 FALSE),		/* pcrel_offset */
 
   HOWTO (R_ARM_ALU_PCREL7_0,	/* type */
@@ -661,43 +662,404 @@ static reloc_howto_type elf32_arm_howto_
 	 0x7fffffff,		/* src_mask */
 	 0x7fffffff,		/* dst_mask */
 	 TRUE),			/* pcrel_offset */
+
+  HOWTO (R_ARM_MOVW_ABS_NC,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	/* special_function */
+	 "R_ARM_MOVW_ABS_NC",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0x0000ffff,		/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  HOWTO (R_ARM_MOVT_ABS,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_bitfield,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	/* special_function */
+	 "R_ARM_MOVT_ABS",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0x0000ffff,		/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  HOWTO (R_ARM_MOVW_PREL_NC,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 TRUE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	/* special_function */
+	 "R_ARM_MOVW_PREL_NC",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0x0000ffff,		/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 TRUE),			/* pcrel_offset */
+
+  HOWTO (R_ARM_MOVT_PREL,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 TRUE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_bitfield,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	/* special_function */
+	 "R_ARM_MOVT_PREL",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0x0000ffff,		/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 TRUE),			/* pcrel_offset */
+
+  HOWTO (R_ARM_THM_MOVW_ABS_NC,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	/* special_function */
+	 "R_ARM_THM_MOVW_ABS_NC",/* name */
+	 FALSE,			/* partial_inplace */
+	 0x040f70ff,		/* src_mask */
+	 0x040f70ff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  HOWTO (R_ARM_THM_MOVT_ABS,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_bitfield,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	/* special_function */
+	 "R_ARM_THM_MOVT_ABS",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0x040f70ff,		/* src_mask */
+	 0x040f70ff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  HOWTO (R_ARM_THM_MOVW_PREL_NC,/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 TRUE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	/* special_function */
+	 "R_ARM_THM_MOVW_PREL_NC",/* name */
+	 FALSE,			/* partial_inplace */
+	 0x040f70ff,		/* src_mask */
+	 0x040f70ff,		/* dst_mask */
+	 TRUE),			/* pcrel_offset */
+
+  HOWTO (R_ARM_THM_MOVT_PREL,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 TRUE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_bitfield,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	/* special_function */
+	 "R_ARM_THM_MOVT_PREL",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0x040f70ff,		/* src_mask */
+	 0x040f70ff,		/* dst_mask */
+	 TRUE),			/* pcrel_offset */
+
+  HOWTO (R_ARM_THM_JUMP19,	/* type */
+	 1,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 19,			/* bitsize */
+	 TRUE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed,/* complain_on_overflow */
+	 bfd_elf_generic_reloc, /* special_function */
+	 "R_ARM_THM_JUMP19",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0x043f2fff,		/* src_mask */
+	 0x043f2fff,		/* dst_mask */
+	 TRUE),			/* pcrel_offset */
+
+  HOWTO (R_ARM_THM_JUMP6,	/* type */
+	 1,			/* rightshift */
+	 1,			/* size (0 = byte, 1 = short, 2 = long) */
+	 6,			/* bitsize */
+	 TRUE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_unsigned,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	/* special_function */
+	 "R_ARM_THM_JUMP6",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0x02f8,		/* src_mask */
+	 0x02f8,		/* dst_mask */
+	 TRUE),			/* pcrel_offset */
+
+  /* These are declared as 13-bit signed relocations because we can
+     address -4095 .. 4095(base) by altering ADDW to SUBW or vice
+     versa.  */
+  HOWTO (R_ARM_THM_ALU_PREL_11_0,/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 13,			/* bitsize */
+	 TRUE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	/* special_function */
+	 "R_ARM_THM_ALU_PREL_11_0",/* name */
+	 FALSE,			/* partial_inplace */
+	 0x040070ff,		/* src_mask */
+	 0x040070ff,		/* dst_mask */
+	 TRUE),			/* pcrel_offset */
+
+  HOWTO (R_ARM_THM_PC12,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 13,			/* bitsize */
+	 TRUE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	/* special_function */
+	 "R_ARM_THM_PC12",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0x040070ff,		/* src_mask */
+	 0x040070ff,		/* dst_mask */
+	 TRUE),			/* pcrel_offset */
+
+  HOWTO (R_ARM_ABS32_NOI,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	/* special_function */
+	 "R_ARM_ABS32_NOI",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0xffffffff,		/* src_mask */
+	 0xffffffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  HOWTO (R_ARM_REL32_NOI,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 TRUE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	/* special_function */
+	 "R_ARM_REL32_NOI",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0xffffffff,		/* src_mask */
+	 0xffffffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 };
 
-  /* GNU extension to record C++ vtable hierarchy */
-static reloc_howto_type elf32_arm_vtinherit_howto =
-  HOWTO (R_ARM_GNU_VTINHERIT, /* type */
+/* Relocations 57 .. 83 are the "group relocations" which we do not
+   support.  */
+
+static reloc_howto_type elf32_arm_howto_table_2[] =
+{
+  HOWTO (R_ARM_MOVW_BREL_NC,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	/* special_function */
+	 "R_ARM_MOVW_BREL_NC",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0x0000ffff,		/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  HOWTO (R_ARM_MOVT_BREL,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_bitfield,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	/* special_function */
+	 "R_ARM_MOVT_BREL",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0x0000ffff,		/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  HOWTO (R_ARM_MOVW_BREL,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	/* special_function */
+	 "R_ARM_MOVW_BREL",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0x0000ffff,		/* src_mask */
+	 0x0000ffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  HOWTO (R_ARM_THM_MOVW_BREL_NC,/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	/* special_function */
+	 "R_ARM_THM_MOVW_BREL_NC",/* name */
+	 FALSE,			/* partial_inplace */
+	 0x040f70ff,		/* src_mask */
+	 0x040f70ff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  HOWTO (R_ARM_THM_MOVT_BREL,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_bitfield,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	/* special_function */
+	 "R_ARM_THM_MOVT_BREL",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0x040f70ff,		/* src_mask */
+	 0x040f70ff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  HOWTO (R_ARM_THM_MOVW_BREL,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 16,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	/* special_function */
+	 "R_ARM_THM_MOVW_BREL",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0x040f70ff,		/* src_mask */
+	 0x040f70ff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  EMPTY_HOWTO (90),   /* unallocated */
+  EMPTY_HOWTO (91),
+  EMPTY_HOWTO (92),
+  EMPTY_HOWTO (93),
+
+  HOWTO (R_ARM_PLT32_ABS,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	/* special_function */
+	 "R_ARM_PLT32_ABS",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0xffffffff,		/* src_mask */
+	 0xffffffff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  HOWTO (R_ARM_GOT_ABS,		/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	/* special_function */
+	 "R_ARM_GOT_ABS",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0xffffffff,		/* src_mask */
+	 0xffffffff,		/* dst_mask */
+	 FALSE),			/* pcrel_offset */
+
+  HOWTO (R_ARM_GOT_PREL,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 32,			/* bitsize */
+	 TRUE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_dont,	/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	/* special_function */
+	 "R_ARM_GOT_PREL",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0xffffffff,		/* src_mask */
+	 0xffffffff,		/* dst_mask */
+	 TRUE),			/* pcrel_offset */
+
+  HOWTO (R_ARM_GOT_BREL12,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 12,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_bitfield,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	/* special_function */
+	 "R_ARM_GOT_BREL12",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0x00000fff,		/* src_mask */
+	 0x00000fff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  HOWTO (R_ARM_GOTOFF12,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 12,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_bitfield,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	/* special_function */
+	 "R_ARM_GOTOFF12",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0x00000fff,		/* src_mask */
+	 0x00000fff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+
+  EMPTY_HOWTO (R_ARM_GOTRELAX),  /* reserved for future GOT-load optimizations */
+
+  /* GNU extension to record C++ vtable member usage */
+  HOWTO (R_ARM_GNU_VTENTRY,     /* type */
          0,                     /* rightshift */
          2,                     /* size (0 = byte, 1 = short, 2 = long) */
          0,                     /* bitsize */
          FALSE,                 /* pc_relative */
          0,                     /* bitpos */
          complain_overflow_dont, /* complain_on_overflow */
-         NULL,                  /* special_function */
-         "R_ARM_GNU_VTINHERIT", /* name */
+         _bfd_elf_rel_vtable_reloc_fn,  /* special_function */
+         "R_ARM_GNU_VTENTRY",   /* name */
          FALSE,                 /* partial_inplace */
          0,                     /* src_mask */
          0,                     /* dst_mask */
-         FALSE);                /* pcrel_offset */
+         FALSE),                /* pcrel_offset */
 
-  /* GNU extension to record C++ vtable member usage */
-static reloc_howto_type elf32_arm_vtentry_howto =
-  HOWTO (R_ARM_GNU_VTENTRY,     /* type */
+  /* GNU extension to record C++ vtable hierarchy */
+  HOWTO (R_ARM_GNU_VTINHERIT, /* type */
          0,                     /* rightshift */
          2,                     /* size (0 = byte, 1 = short, 2 = long) */
          0,                     /* bitsize */
          FALSE,                 /* pc_relative */
          0,                     /* bitpos */
          complain_overflow_dont, /* complain_on_overflow */
-         _bfd_elf_rel_vtable_reloc_fn,  /* special_function */
-         "R_ARM_GNU_VTENTRY",   /* name */
+         NULL,                  /* special_function */
+         "R_ARM_GNU_VTINHERIT", /* name */
          FALSE,                 /* partial_inplace */
          0,                     /* src_mask */
          0,                     /* dst_mask */
-         FALSE);                /* pcrel_offset */
+         FALSE),                /* pcrel_offset */
 
-  /* 12 bit pc relative */
-static reloc_howto_type elf32_arm_thm_pc11_howto =
-  HOWTO (R_ARM_THM_PC11,	/* type */
+  HOWTO (R_ARM_THM_JUMP11,	/* type */
 	 1,			/* rightshift */
 	 1,			/* size (0 = byte, 1 = short, 2 = long) */
 	 11,			/* bitsize */
@@ -705,46 +1067,147 @@ static reloc_howto_type elf32_arm_thm_pc
 	 0,			/* bitpos */
 	 complain_overflow_signed,	/* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
-	 "R_ARM_THM_PC11",	/* name */
+	 "R_ARM_THM_JUMP11",	/* name */
 	 FALSE,			/* partial_inplace */
 	 0x000007ff,		/* src_mask */
 	 0x000007ff,		/* dst_mask */
-	 TRUE);			/* pcrel_offset */
+	 TRUE),			/* pcrel_offset */
+
+  HOWTO (R_ARM_THM_JUMP8,	/* type */
+	 1,			/* rightshift */
+	 1,			/* size (0 = byte, 1 = short, 2 = long) */
+	 8,			/* bitsize */
+	 TRUE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_signed,	/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	/* special_function */
+	 "R_ARM_THM_JUMP8",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0x000000ff,		/* src_mask */
+	 0x000000ff,		/* dst_mask */
+	 TRUE),			/* pcrel_offset */
+
+  /* TLS relocations */
+  HOWTO (R_ARM_TLS_GD32,	/* type */
+         0,                     /* rightshift */
+         2,                     /* size (0 = byte, 1 = short, 2 = long) */
+         32,                    /* bitsize */
+         FALSE,                 /* pc_relative */
+         0,                     /* bitpos */
+         complain_overflow_bitfield,/* complain_on_overflow */
+         NULL,			/* special_function */
+         "R_ARM_TLS_GD32",	/* name */
+         TRUE,			/* partial_inplace */
+         0xffffffff,		/* src_mask */
+         0xffffffff,		/* dst_mask */
+         FALSE),                /* pcrel_offset */
+
+  HOWTO (R_ARM_TLS_LDM32,	/* type */
+         0,                     /* rightshift */
+         2,                     /* size (0 = byte, 1 = short, 2 = long) */
+         32,                    /* bitsize */
+         FALSE,                 /* pc_relative */
+         0,                     /* bitpos */
+         complain_overflow_bitfield,/* complain_on_overflow */
+         bfd_elf_generic_reloc, /* special_function */
+         "R_ARM_TLS_LDM32",	/* name */
+         TRUE,			/* partial_inplace */
+         0xffffffff,		/* src_mask */
+         0xffffffff,		/* dst_mask */
+         FALSE),                /* pcrel_offset */
+
+  HOWTO (R_ARM_TLS_LDO32,	/* type */
+         0,                     /* rightshift */
+         2,                     /* size (0 = byte, 1 = short, 2 = long) */
+         32,                    /* bitsize */
+         FALSE,                 /* pc_relative */
+         0,                     /* bitpos */
+         complain_overflow_bitfield,/* complain_on_overflow */
+         bfd_elf_generic_reloc, /* special_function */
+         "R_ARM_TLS_LDO32",	/* name */
+         TRUE,			/* partial_inplace */
+         0xffffffff,		/* src_mask */
+         0xffffffff,		/* dst_mask */
+         FALSE),                /* pcrel_offset */
+
+  HOWTO (R_ARM_TLS_IE32,	/* type */
+         0,                     /* rightshift */
+         2,                     /* size (0 = byte, 1 = short, 2 = long) */
+         32,                    /* bitsize */
+         FALSE,                  /* pc_relative */
+         0,                     /* bitpos */
+         complain_overflow_bitfield,/* complain_on_overflow */
+         NULL,			/* special_function */
+         "R_ARM_TLS_IE32",	/* name */
+         TRUE,			/* partial_inplace */
+         0xffffffff,		/* src_mask */
+         0xffffffff,		/* dst_mask */
+         FALSE),                /* pcrel_offset */
+
+  HOWTO (R_ARM_TLS_LE32,	/* type */
+         0,                     /* rightshift */
+         2,                     /* size (0 = byte, 1 = short, 2 = long) */
+         32,                    /* bitsize */
+         FALSE,                 /* pc_relative */
+         0,                     /* bitpos */
+         complain_overflow_bitfield,/* complain_on_overflow */
+         bfd_elf_generic_reloc, /* special_function */
+         "R_ARM_TLS_LE32",	/* name */
+         TRUE,			/* partial_inplace */
+         0xffffffff,		/* src_mask */
+         0xffffffff,		/* dst_mask */
+         FALSE),                /* pcrel_offset */
+
+  HOWTO (R_ARM_TLS_LDO12,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 12,			/* bitsize */
+	 FALSE,			/* pc_relative */
+	 0,			/* bitpos */
+	 complain_overflow_bitfield,/* complain_on_overflow */
+	 bfd_elf_generic_reloc,	/* special_function */
+	 "R_ARM_TLS_LDO12",	/* name */
+	 FALSE,			/* partial_inplace */
+	 0x00000fff,		/* src_mask */
+	 0x00000fff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
-  /* 12 bit pc relative */
-static reloc_howto_type elf32_arm_thm_pc9_howto =
-  HOWTO (R_ARM_THM_PC9,		/* type */
-	 1,			/* rightshift */
-	 1,			/* size (0 = byte, 1 = short, 2 = long) */
-	 8,			/* bitsize */
-	 TRUE,			/* pc_relative */
+  HOWTO (R_ARM_TLS_LE12,	/* type */
+	 0,			/* rightshift */
+	 2,			/* size (0 = byte, 1 = short, 2 = long) */
+	 12,			/* bitsize */
+	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
-	 complain_overflow_signed,	/* complain_on_overflow */
+	 complain_overflow_bitfield,/* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
-	 "R_ARM_THM_PC9",	/* name */
+	 "R_ARM_TLS_LE12",	/* name */
 	 FALSE,			/* partial_inplace */
-	 0x000000ff,		/* src_mask */
-	 0x000000ff,		/* dst_mask */
-	 TRUE);			/* pcrel_offset */
+	 0x00000fff,		/* src_mask */
+	 0x00000fff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
 
-/* Place relative GOT-indirect.  */
-static reloc_howto_type elf32_arm_got_prel =
-  HOWTO (R_ARM_GOT_PREL,	/* type */
+  HOWTO (R_ARM_TLS_IE12GP,	/* type */
 	 0,			/* rightshift */
 	 2,			/* size (0 = byte, 1 = short, 2 = long) */
-	 32,			/* bitsize */
-	 TRUE,			/* pc_relative */
+	 12,			/* bitsize */
+	 FALSE,			/* pc_relative */
 	 0,			/* bitpos */
-	 complain_overflow_dont,	/* complain_on_overflow */
+	 complain_overflow_bitfield,/* complain_on_overflow */
 	 bfd_elf_generic_reloc,	/* special_function */
-	 "R_ARM_GOT_PREL",	/* name */
+	 "R_ARM_TLS_IE12GP",	/* name */
 	 FALSE,			/* partial_inplace */
-	 0xffffffff,		/* src_mask */
-	 0xffffffff,		/* dst_mask */
-	 TRUE);			/* pcrel_offset */
+	 0x00000fff,		/* src_mask */
+	 0x00000fff,		/* dst_mask */
+	 FALSE),		/* pcrel_offset */
+};
+
+/* 112-127 private relocations
+   128 R_ARM_ME_TOO, obsolete
+   129-255 unallocated in AAELF.
 
-/* Currently unused relocations.  */
-static reloc_howto_type elf32_arm_r_howto[4] =
+   249-255 extended, currently unused, relocations:  */
+
+static reloc_howto_type elf32_arm_howto_table_3[4] =
 {
   HOWTO (R_ARM_RREL32,		/* type */
 	 0,			/* rightshift */
@@ -806,35 +1269,18 @@ static reloc_howto_type elf32_arm_r_howt
 static reloc_howto_type *
 elf32_arm_howto_from_type (unsigned int r_type)
 {
-  if (r_type < NUM_ELEM (elf32_arm_howto_table))
-    return &elf32_arm_howto_table[r_type];
-    
-  switch (r_type)
-    {
-    case R_ARM_GOT_PREL:
-      return &elf32_arm_got_prel;
-
-    case R_ARM_GNU_VTINHERIT:
-      return &elf32_arm_vtinherit_howto;
-
-    case R_ARM_GNU_VTENTRY:
-      return &elf32_arm_vtentry_howto;
-
-    case R_ARM_THM_PC11:
-      return &elf32_arm_thm_pc11_howto;
+  if (r_type < NUM_ELEM (elf32_arm_howto_table_1))
+    return &elf32_arm_howto_table_1[r_type];
 
-    case R_ARM_THM_PC9:
-      return &elf32_arm_thm_pc9_howto;
+  if (r_type >= R_ARM_MOVW_BREL_NC
+      && r_type < R_ARM_MOVW_BREL_NC + NUM_ELEM (elf32_arm_howto_table_2))
+    return &elf32_arm_howto_table_2[r_type - R_ARM_MOVW_BREL_NC];
+
+  if (r_type >= R_ARM_RREL32
+      && r_type < R_ARM_RREL32 + NUM_ELEM (elf32_arm_howto_table_2))
+    return &elf32_arm_howto_table_3[r_type - R_ARM_RREL32];
 
-    case R_ARM_RREL32:
-    case R_ARM_RABS32:
-    case R_ARM_RPC24:
-    case R_ARM_RBASE:
-      return &elf32_arm_r_howto[r_type - R_ARM_RREL32];
-
-    default:
-      return NULL;
-    }
+  return NULL;
 }
 
 static void
@@ -866,12 +1312,16 @@ static const struct elf32_arm_reloc_map 
     {BFD_RELOC_16,                   R_ARM_ABS16},
     {BFD_RELOC_ARM_OFFSET_IMM,       R_ARM_ABS12},
     {BFD_RELOC_ARM_THUMB_OFFSET,     R_ARM_THM_ABS5},
-    {BFD_RELOC_THUMB_PCREL_BRANCH23, R_ARM_THM_PC22},
-    {BFD_RELOC_ARM_COPY,             R_ARM_COPY},
+    {BFD_RELOC_THUMB_PCREL_BRANCH25, R_ARM_THM_JUMP24},
+    {BFD_RELOC_THUMB_PCREL_BRANCH23, R_ARM_THM_CALL},
+    {BFD_RELOC_THUMB_PCREL_BRANCH12, R_ARM_THM_JUMP11},
+    {BFD_RELOC_THUMB_PCREL_BRANCH20, R_ARM_THM_JUMP19},
+    {BFD_RELOC_THUMB_PCREL_BRANCH9,  R_ARM_THM_JUMP8},
+    {BFD_RELOC_THUMB_PCREL_BRANCH7,  R_ARM_THM_JUMP6},
     {BFD_RELOC_ARM_GLOB_DAT,         R_ARM_GLOB_DAT},
     {BFD_RELOC_ARM_JUMP_SLOT,        R_ARM_JUMP_SLOT},
     {BFD_RELOC_ARM_RELATIVE,         R_ARM_RELATIVE},
-    {BFD_RELOC_ARM_GOTOFF,           R_ARM_GOTOFF},
+    {BFD_RELOC_ARM_GOTOFF,           R_ARM_GOTOFF32},
     {BFD_RELOC_ARM_GOTPC,            R_ARM_GOTPC},
     {BFD_RELOC_ARM_GOT32,            R_ARM_GOT32},
     {BFD_RELOC_ARM_PLT32,            R_ARM_PLT32},
@@ -879,7 +1329,18 @@ static const struct elf32_arm_reloc_map 
     {BFD_RELOC_ARM_ROSEGREL32,	     R_ARM_ROSEGREL32},
     {BFD_RELOC_ARM_SBREL32,	     R_ARM_SBREL32},
     {BFD_RELOC_ARM_PREL31,	     R_ARM_PREL31},
-    {BFD_RELOC_ARM_TARGET2,	     R_ARM_TARGET2}
+    {BFD_RELOC_ARM_TARGET2,	     R_ARM_TARGET2},
+    {BFD_RELOC_ARM_PLT32,            R_ARM_PLT32},
+    {BFD_RELOC_ARM_TLS_GD32,	     R_ARM_TLS_GD32},
+    {BFD_RELOC_ARM_TLS_LDO32,	     R_ARM_TLS_LDO32},
+    {BFD_RELOC_ARM_TLS_LDM32,	     R_ARM_TLS_LDM32},
+    {BFD_RELOC_ARM_TLS_DTPMOD32,     R_ARM_TLS_DTPMOD32},
+    {BFD_RELOC_ARM_TLS_DTPOFF32,     R_ARM_TLS_DTPOFF32},
+    {BFD_RELOC_ARM_TLS_TPOFF32,      R_ARM_TLS_TPOFF32},
+    {BFD_RELOC_ARM_TLS_IE32,         R_ARM_TLS_IE32},
+    {BFD_RELOC_ARM_TLS_LE32,         R_ARM_TLS_LE32},
+    {BFD_RELOC_VTABLE_INHERIT,	     R_ARM_GNU_VTINHERIT},
+    {BFD_RELOC_VTABLE_ENTRY,	     R_ARM_GNU_VTENTRY},
   };
 
 static reloc_howto_type *
@@ -888,28 +1349,11 @@ elf32_arm_reloc_type_lookup (abfd, code)
      bfd_reloc_code_real_type code;
 {
   unsigned int i;
+  for (i = 0; i < NUM_ELEM (elf32_arm_reloc_map); i ++)
+    if (elf32_arm_reloc_map[i].bfd_reloc_val == code)
+      return elf32_arm_howto_from_type (elf32_arm_reloc_map[i].elf_reloc_val);
 
-  switch (code)
-    {
-    case BFD_RELOC_VTABLE_INHERIT:
-      return & elf32_arm_vtinherit_howto;
-
-    case BFD_RELOC_VTABLE_ENTRY:
-      return & elf32_arm_vtentry_howto;
-
-    case BFD_RELOC_THUMB_PCREL_BRANCH12:
-      return & elf32_arm_thm_pc11_howto;
-
-    case BFD_RELOC_THUMB_PCREL_BRANCH9:
-      return & elf32_arm_thm_pc9_howto;
-
-    default:
-      for (i = 0; i < NUM_ELEM (elf32_arm_reloc_map); i ++)
-	if (elf32_arm_reloc_map[i].bfd_reloc_val == code)
-	  return & elf32_arm_howto_table[elf32_arm_reloc_map[i].elf_reloc_val];
-
-      return NULL;
-   }
+  return NULL;
 }
 
 /* Support for core dump NOTE sections */
@@ -1093,14 +1537,41 @@ struct _arm_elf_section_data
 #define elf32_arm_section_data(sec) \
   ((struct _arm_elf_section_data *) elf_section_data (sec))
 
+/* The size of the thread control block.  */
+#define TCB_SIZE	8
+
+struct elf32_arm_obj_tdata
+{
+  struct elf_obj_tdata root;
+
+  /* tls_type for each local got entry.  */
+  char *local_got_tls_type;
+};
+
+#define elf32_arm_tdata(abfd) \
+  ((struct elf32_arm_obj_tdata *) (abfd)->tdata.any)
+
+#define elf32_arm_local_got_tls_type(abfd) \
+  (elf32_arm_tdata (abfd)->local_got_tls_type)
+
+static bfd_boolean
+elf32_arm_mkobject (bfd *abfd)
+{
+  bfd_size_type amt = sizeof (struct elf32_arm_obj_tdata);
+  abfd->tdata.any = bfd_zalloc (abfd, amt);
+  if (abfd->tdata.any == NULL)
+    return FALSE;
+  return TRUE;
+}
+
 /* The ARM linker needs to keep track of the number of relocs that it
    decides to copy in check_relocs for each symbol.  This is so that
    it can discard PC relative relocs if it doesn't need them when
    linking with -Bsymbolic.  We store the information in a field
    extending the regular ELF linker hash table.  */
 
-/* This structure keeps track of the number of PC relative relocs we
-   have copied for a given symbol.  */
+/* This structure keeps track of the number of relocs we have copied
+   for a given symbol.  */
 struct elf32_arm_relocs_copied
   {
     /* Next section.  */
@@ -1109,8 +1580,12 @@ struct elf32_arm_relocs_copied
     asection * section;
     /* Number of relocs copied in this section.  */
     bfd_size_type count;
+    /* Number of PC-relative relocs copied in this section.  */
+    bfd_size_type pc_count;
   };
 
+#define elf32_arm_hash_entry(ent) ((struct elf32_arm_link_hash_entry *)(ent))
+
 /* Arm ELF linker hash entry.  */
 struct elf32_arm_link_hash_entry
   {
@@ -1127,6 +1602,12 @@ struct elf32_arm_link_hash_entry
        used, we need to record the index into .got.plt instead of
        recomputing it from the PLT offset.  */
     bfd_signed_vma plt_got_offset;
+
+#define GOT_UNKNOWN	0
+#define GOT_NORMAL	1
+#define GOT_TLS_GD	2
+#define GOT_TLS_IE	4
+    unsigned char tls_type;
   };
 
 /* Traverse an arm ELF linker hash table.  */
@@ -1189,6 +1670,12 @@ struct elf32_arm_link_hash_table
     asection *sdynbss;
     asection *srelbss;
 
+    /* Data for R_ARM_TLS_LDM32 relocations.  */
+    union {
+      bfd_signed_vma refcount;
+      bfd_vma offset;
+    } tls_ldm_got;
+
     /* Small local sym to section mapping cache.  */
     struct sym_sec_cache sym_sec;
 
@@ -1220,6 +1707,7 @@ elf32_arm_link_hash_newfunc (struct bfd_
   if (ret != NULL)
     {
       ret->relocs_copied = NULL;
+      ret->tls_type = GOT_UNKNOWN;
       ret->plt_thumb_refcount = 0;
       ret->plt_got_offset = -1;
     }
@@ -1321,6 +1809,7 @@ elf32_arm_copy_indirect_symbol (const st
 	      for (q = edir->relocs_copied; q != NULL; q = q->next)
 		if (q->section == p->section)
 		  {
+		    q->pc_count += p->pc_count;
 		    q->count += p->count;
 		    *pp = p->next;
 		    break;
@@ -1346,6 +1835,13 @@ elf32_arm_copy_indirect_symbol (const st
   else
     BFD_ASSERT (eind->plt_thumb_refcount == 0);
 
+  if (ind->root.type == bfd_link_hash_indirect
+      && dir->got.refcount <= 0)
+    {
+      edir->tls_type = eind->tls_type;
+      eind->tls_type = GOT_UNKNOWN;
+    }
+
   _bfd_elf_link_hash_copy_indirect (bed, dir, ind);
 }
 
@@ -1392,6 +1888,7 @@ elf32_arm_link_hash_table_create (bfd *a
   ret->use_rel = 1;
   ret->sym_sec.abfd = NULL;
   ret->obfd = abfd;
+  ret->tls_ldm_got.refcount = 0;
 
   return &ret->root.root;
 }
@@ -1464,20 +1961,35 @@ find_arm_glue (struct bfd_link_info *lin
   return myh;
 }
 
-/* ARM->Thumb glue:
+/* ARM->Thumb glue (static images):
 
    .arm
    __func_from_arm:
    ldr r12, __func_addr
    bx  r12
    __func_addr:
-   .word func    @ behave as if you saw a ARM_32 reloc.  */
+   .word func    @ behave as if you saw a ARM_32 reloc.
+
+   (relocatable images)
+   .arm
+   __func_from_arm:
+   ldr r12, __func_offset
+   add r12, r12, pc
+   bx  r12
+   __func_offset:
+   .word func - .
+   */
 
-#define ARM2THUMB_GLUE_SIZE 12
+#define ARM2THUMB_STATIC_GLUE_SIZE 12
 static const insn32 a2t1_ldr_insn = 0xe59fc000;
 static const insn32 a2t2_bx_r12_insn = 0xe12fff1c;
 static const insn32 a2t3_func_addr_insn = 0x00000001;
 
+#define ARM2THUMB_PIC_GLUE_SIZE 16
+static const insn32 a2t1p_ldr_insn = 0xe59fc004;
+static const insn32 a2t2p_add_pc_insn = 0xe08cc00f;
+static const insn32 a2t3p_bx_r12_insn = 0xe12fff1c;
+
 /* Thumb->ARM:                          Thumb->(non-interworking aware) ARM
 
    .thumb                               .thumb
@@ -1597,7 +2109,10 @@ record_arm_to_thumb_glue (struct bfd_lin
 
   free (tmp_name);
 
-  globals->arm_glue_size += ARM2THUMB_GLUE_SIZE;
+  if ((link_info->shared || globals->root.is_relocatable_executable))
+    globals->arm_glue_size += ARM2THUMB_PIC_GLUE_SIZE;
+  else
+    globals->arm_glue_size += ARM2THUMB_STATIC_GLUE_SIZE;
 
   return;
 }
@@ -1836,7 +2351,7 @@ bfd_elf32_arm_process_before_allocation 
 	      && r_type != R_ARM_CALL
 	      && r_type != R_ARM_JUMP24
 #endif
-	      && r_type != R_ARM_THM_PC22)
+	      && r_type != R_ARM_THM_CALL)
 	    continue;
 
 	  /* Get the section contents if we haven't done so already.  */
@@ -1890,7 +2405,7 @@ bfd_elf32_arm_process_before_allocation 
 		record_arm_to_thumb_glue (link_info, h);
 	      break;
 
-	    case R_ARM_THM_PC22:
+	    case R_ARM_THM_CALL:
 	      /* This one is a call from thumb code.  We look
 	         up the target of the call.  If it is not a thumb
                  target, we insert glue.  */
@@ -2171,15 +2686,39 @@ elf32_arm_to_thumb_stub (struct bfd_link
       --my_offset;
       myh->root.u.def.value = my_offset;
 
-      bfd_put_32 (output_bfd, (bfd_vma) a2t1_ldr_insn,
-		  s->contents + my_offset);
+      if ((info->shared || globals->root.is_relocatable_executable))
+	{
+	  /* For relocatable objects we can't use absolute addresses,
+	     so construct the address from a relative offset.  */
+	  /* TODO: If the offset is small it's probably worth
+	     constructing the address with adds.  */
+	  bfd_put_32 (output_bfd, (bfd_vma) a2t1p_ldr_insn,
+		      s->contents + my_offset);
+	  bfd_put_32 (output_bfd, (bfd_vma) a2t2p_add_pc_insn,
+		      s->contents + my_offset + 4);
+	  bfd_put_32 (output_bfd, (bfd_vma) a2t3p_bx_r12_insn,
+		      s->contents + my_offset + 8);
+	  /* Adjust the offset by 4 for the position of the add,
+	     and 8 for the pipeline offset.  */
+	  ret_offset = (val - (s->output_offset
+			       + s->output_section->vma
+			       + my_offset + 12))
+		       | 1;
+	  bfd_put_32 (output_bfd, ret_offset,
+		      s->contents + my_offset + 12);
+	}
+      else
+	{
+	  bfd_put_32 (output_bfd, (bfd_vma) a2t1_ldr_insn,
+		      s->contents + my_offset);
 
-      bfd_put_32 (output_bfd, (bfd_vma) a2t2_bx_r12_insn,
-		  s->contents + my_offset + 4);
+	  bfd_put_32 (output_bfd, (bfd_vma) a2t2_bx_r12_insn,
+		      s->contents + my_offset + 4);
 
-      /* It's a thumb address.  Add the low order bit.  */
-      bfd_put_32 (output_bfd, val | a2t3_func_addr_insn,
-		  s->contents + my_offset + 8);
+	  /* It's a thumb address.  Add the low order bit.  */
+	  bfd_put_32 (output_bfd, val | a2t3_func_addr_insn,
+		      s->contents + my_offset + 8);
+	}
     }
 
   BFD_ASSERT (my_offset <= globals->arm_glue_size);
@@ -2229,6 +2768,35 @@ arm_real_reloc_type (struct elf32_arm_li
 #endif /* OLD_ARM_ABI */
 
 
+/* Return the base VMA address which should be subtracted from real addresses
+   when resolving @dtpoff relocation.
+   This is PT_TLS segment p_vaddr.  */
+
+static bfd_vma
+dtpoff_base (struct bfd_link_info *info)
+{
+  /* If tls_sec is NULL, we should have signalled an error already.  */
+  if (elf_hash_table (info)->tls_sec == NULL)
+    return 0;
+  return elf_hash_table (info)->tls_sec->vma;
+}
+
+/* Return the relocation value for @tpoff relocation
+   if STT_TLS virtual address is ADDRESS.  */
+
+static bfd_vma
+tpoff (struct bfd_link_info *info, bfd_vma address)
+{
+  struct elf_link_hash_table *htab = elf_hash_table (info);
+  bfd_vma base;
+
+  /* If tls_sec is NULL, we should have signalled an error already.  */
+  if (htab->tls_sec == NULL)
+    return 0;
+  base = align_power ((bfd_vma) TCB_SIZE, htab->tls_sec->alignment_power);
+  return address - htab->tls_sec->vma + base;
+}
+
 /* Perform a relocation as part of a final link.  */
 
 static bfd_reloc_status_type
@@ -2613,35 +3181,227 @@ elf32_arm_final_link_relocate (reloc_how
       if ((long) value > 0x7ff || (long) value < -0x800)
 	return bfd_reloc_overflow;
 
-      value |= (bfd_get_32 (input_bfd, hit_data) & 0xfffff000);
-      bfd_put_32 (input_bfd, value, hit_data);
-      return bfd_reloc_ok;
+      value |= (bfd_get_32 (input_bfd, hit_data) & 0xfffff000);
+      bfd_put_32 (input_bfd, value, hit_data);
+      return bfd_reloc_ok;
+
+    case R_ARM_THM_ABS5:
+      /* Support ldr and str instructions for the thumb.  */
+      if (globals->use_rel)
+	{
+	  /* Need to refetch addend.  */
+	  addend = bfd_get_16 (input_bfd, hit_data) & howto->src_mask;
+	  /* ??? Need to determine shift amount from operand size.  */
+	  addend >>= howto->rightshift;
+	}
+      value += addend;
+
+      /* ??? Isn't value unsigned?  */
+      if ((long) value > 0x1f || (long) value < -0x10)
+	return bfd_reloc_overflow;
+
+      /* ??? Value needs to be properly shifted into place first.  */
+      value |= bfd_get_16 (input_bfd, hit_data) & 0xf83f;
+      bfd_put_16 (input_bfd, value, hit_data);
+      return bfd_reloc_ok;
+
+#ifndef OLD_ARM_ABI
+    case R_ARM_THM_XPC22:
+#endif
+    case R_ARM_THM_CALL:
+      /* Thumb BL (branch long instruction).  */
+      {
+	bfd_vma relocation;
+	bfd_boolean overflow = FALSE;
+	bfd_vma upper_insn = bfd_get_16 (input_bfd, hit_data);
+	bfd_vma lower_insn = bfd_get_16 (input_bfd, hit_data + 2);
+	bfd_signed_vma reloc_signed_max = ((1 << (howto->bitsize - 1)) - 1) >> howto->rightshift;
+	bfd_signed_vma reloc_signed_min = ~ reloc_signed_max;
+	bfd_vma check;
+	bfd_signed_vma signed_check;
+	bfd_boolean thumb_plt_call = FALSE;
+
+	/* Need to refetch the addend and squish the two 11 bit pieces
+	   together.  */
+	if (globals->use_rel)
+	  {
+	    bfd_vma upper = upper_insn & 0x7ff;
+	    bfd_vma lower = lower_insn & 0x7ff;
+	    upper = (upper ^ 0x400) - 0x400; /* Sign extend.  */
+	    addend = (upper << 12) | (lower << 1);
+	    signed_addend = addend;
+	  }
+#ifndef OLD_ARM_ABI
+	if (r_type == R_ARM_THM_XPC22)
+	  {
+	    /* Check for Thumb to Thumb call.  */
+	    /* FIXME: Should we translate the instruction into a BL
+	       instruction instead ?  */
+	    if (sym_flags == STT_ARM_TFUNC)
+	      (*_bfd_error_handler)
+		(_("%B: Warning: Thumb BLX instruction targets thumb function '%s'."),
+		 input_bfd,
+		 h ? h->root.root.string : "(local)");
+	  }
+	else
+#endif
+	  {
+	    /* If it is not a call to Thumb, assume call to Arm.
+	       If it is a call relative to a section name, then it is not a
+	       function call at all, but rather a long jump.  Calls through
+	       the PLT do not require stubs.  */
+	    if (sym_flags != STT_ARM_TFUNC && sym_flags != STT_SECTION
+		&& (h == NULL || splt == NULL
+		    || h->plt.offset == (bfd_vma) -1))
+	      {
+		if (elf32_thumb_to_arm_stub
+		    (info, sym_name, input_bfd, output_bfd, input_section,
+		     hit_data, sym_sec, rel->r_offset, signed_addend, value))
+		  return bfd_reloc_ok;
+		else
+		  return bfd_reloc_dangerous;
+	      }
+	  }
+
+	/* Handle calls via the PLT.  */
+	if (h != NULL && splt != NULL && h->plt.offset != (bfd_vma) -1)
+	  {
+	    value = (splt->output_section->vma
+		     + splt->output_offset
+		     + h->plt.offset);
+ 	    if (globals->symbian_p)
+ 	      {
+ 		/* On SymbianOS, we are guaranteed to be using at least ARMv5t.
+ 		   Convert the BL to a BLX instruction to call the ARM-mode PLT
+ 		   entry.  */
+ 		if ((lower_insn & (0x3 << 11)) == 0x3 << 11)
+		  {
+		    lower_insn = (lower_insn & ~(0x3 << 11)) | 0x1 << 11;
+		    thumb_plt_call = TRUE;
+		  }
+ 	      }
+ 	    else
+ 	      /* Target the Thumb stub before the ARM PLT entry.  */
+ 	      value -= PLT_THUMB_STUB_SIZE;
+	    *unresolved_reloc_p = FALSE;
+	  }
+
+	relocation = value + signed_addend;
+
+	relocation -= (input_section->output_section->vma
+		       + input_section->output_offset
+		       + rel->r_offset);
+
+	check = relocation >> howto->rightshift;
+
+	/* If this is a signed value, the rightshift just dropped
+	   leading 1 bits (assuming twos complement).  */
+	if ((bfd_signed_vma) relocation >= 0)
+	  signed_check = check;
+	else
+	  signed_check = check | ~((bfd_vma) -1 >> howto->rightshift);
+
+	/* Assumes two's complement.  */
+	if (signed_check > reloc_signed_max || signed_check < reloc_signed_min)
+	  overflow = TRUE;
+
+#ifndef OLD_ARM_ABI
+	if ((r_type == R_ARM_THM_XPC22
+	     && ((lower_insn & 0x1800) == 0x0800))
+	    || thumb_plt_call)
+	  /* For a BLX instruction, make sure that the relocation is rounded up
+	     to a word boundary.  This follows the semantics of the instruction
+	     which specifies that bit 1 of the target address will come from bit
+	     1 of the base address.  */
+	  relocation = (relocation + 2) & ~ 3;
+#endif
+	/* Put RELOCATION back into the insn.  */
+	upper_insn = (upper_insn & ~(bfd_vma) 0x7ff) | ((relocation >> 12) & 0x7ff);
+	lower_insn = (lower_insn & ~(bfd_vma) 0x7ff) | ((relocation >> 1) & 0x7ff);
+
+	/* Put the relocated value back in the object file:  */
+	bfd_put_16 (input_bfd, upper_insn, hit_data);
+	bfd_put_16 (input_bfd, lower_insn, hit_data + 2);
+
+	return (overflow ? bfd_reloc_overflow : bfd_reloc_ok);
+      }
+      break;
+
+    case R_ARM_THM_JUMP24:
+      /* Thumb32 unconditional branch instruction.  */
+      {
+	bfd_vma relocation;
+	bfd_boolean overflow = FALSE;
+	bfd_vma upper_insn = bfd_get_16 (input_bfd, hit_data);
+	bfd_vma lower_insn = bfd_get_16 (input_bfd, hit_data + 2);
+	bfd_signed_vma reloc_signed_max = ((1 << (howto->bitsize - 1)) - 1) >> howto->rightshift;
+	bfd_signed_vma reloc_signed_min = ~ reloc_signed_max;
+	bfd_vma check;
+	bfd_signed_vma signed_check;
+
+	/* Need to refetch the addend, reconstruct the top three bits, and glue the
+	   two pieces together.  */
+	if (globals->use_rel)
+	  {
+	    bfd_vma S  = (upper_insn & 0x0400) >> 10;
+	    bfd_vma hi = (upper_insn & 0x03ff);
+	    bfd_vma I1 = (lower_insn & 0x2000) >> 13;
+	    bfd_vma I2 = (lower_insn & 0x0800) >> 11;
+	    bfd_vma lo = (lower_insn & 0x07ff);
+
+	    I1 = !(I1 ^ S);
+	    I2 = !(I2 ^ S);
+	    S  = !S;
+
+	    signed_addend = (S << 24) | (I1 << 23) | (I2 << 22) | (hi << 12) | (lo << 1);
+	    signed_addend -= (1 << 24); /* Sign extend.  */
+	  }
+
+	/* ??? Should handle interworking?  GCC might someday try to
+	   use this for tail calls.  */
+
+      	relocation = value + signed_addend;
+	relocation -= (input_section->output_section->vma
+		       + input_section->output_offset
+		       + rel->r_offset);
+
+	check = relocation >> howto->rightshift;
+
+	/* If this is a signed value, the rightshift just dropped
+	   leading 1 bits (assuming twos complement).  */
+	if ((bfd_signed_vma) relocation >= 0)
+	  signed_check = check;
+	else
+	  signed_check = check | ~((bfd_vma) -1 >> howto->rightshift);
+
+	/* Assumes two's complement.  */
+	if (signed_check > reloc_signed_max || signed_check < reloc_signed_min)
+	  overflow = TRUE;
 
-    case R_ARM_THM_ABS5:
-      /* Support ldr and str instructions for the thumb.  */
-      if (globals->use_rel)
+	/* Put RELOCATION back into the insn.  */
 	{
-	  /* Need to refetch addend.  */
-	  addend = bfd_get_16 (input_bfd, hit_data) & howto->src_mask;
-	  /* ??? Need to determine shift amount from operand size.  */
-	  addend >>= howto->rightshift;
+	  bfd_vma S  = (relocation & 0x01000000) >> 24;
+	  bfd_vma I1 = (relocation & 0x00800000) >> 23;
+	  bfd_vma I2 = (relocation & 0x00400000) >> 22;
+	  bfd_vma hi = (relocation & 0x003ff000) >> 12;
+	  bfd_vma lo = (relocation & 0x00000ffe) >>  1;
+
+	  I1 = !(I1 ^ S);
+	  I2 = !(I2 ^ S);
+
+	  upper_insn = (upper_insn & (bfd_vma) 0xf800) | (S << 10) | hi;
+	  lower_insn = (lower_insn & (bfd_vma) 0xd000) | (I1 << 13) | (I2 << 11) | lo;
 	}
-      value += addend;
 
-      /* ??? Isn't value unsigned?  */
-      if ((long) value > 0x1f || (long) value < -0x10)
-	return bfd_reloc_overflow;
+	/* Put the relocated value back in the object file:  */
+	bfd_put_16 (input_bfd, upper_insn, hit_data);
+	bfd_put_16 (input_bfd, lower_insn, hit_data + 2);
 
-      /* ??? Value needs to be properly shifted into place first.  */
-      value |= bfd_get_16 (input_bfd, hit_data) & 0xf83f;
-      bfd_put_16 (input_bfd, value, hit_data);
-      return bfd_reloc_ok;
+	return (overflow ? bfd_reloc_overflow : bfd_reloc_ok);
+      }
 
-#ifndef OLD_ARM_ABI
-    case R_ARM_THM_XPC22:
-#endif
-    case R_ARM_THM_PC22:
-      /* Thumb BL (branch long instruction).  */
+    case R_ARM_THM_JUMP19:
+      /* Thumb32 conditional branch instruction.  */
       {
 	bfd_vma relocation;
 	bfd_boolean overflow = FALSE;
@@ -2652,61 +3412,29 @@ elf32_arm_final_link_relocate (reloc_how
 	bfd_vma check;
 	bfd_signed_vma signed_check;
 
-	/* Need to refetch the addend and squish the two 11 bit pieces
-	   together.  */
+	/* Need to refetch the addend, reconstruct the top three bits,
+	   and squish the two 11 bit pieces together.  */
 	if (globals->use_rel)
 	  {
-	    bfd_vma upper = upper_insn & 0x7ff;
-	    bfd_vma lower = lower_insn & 0x7ff;
-	    upper = (upper ^ 0x400) - 0x400; /* Sign extend.  */
+	    bfd_vma S     = (upper_insn & 0x0400) >> 10;
+	    bfd_vma upper = (upper_insn & 0x001f);
+	    bfd_vma J1    = (lower_insn & 0x2000) >> 13;
+	    bfd_vma J2    = (lower_insn & 0x0800) >> 11;
+	    bfd_vma lower = (lower_insn & 0x07ff);
+
+	    upper |= J2 << 6;
+	    upper |= J1 << 7;
+	    upper |= ~S << 8;
+	    upper -= 0x0100; /* Sign extend.  */
+
 	    addend = (upper << 12) | (lower << 1);
 	    signed_addend = addend;
 	  }
-#ifndef OLD_ARM_ABI
-	if (r_type == R_ARM_THM_XPC22)
-	  {
-	    /* Check for Thumb to Thumb call.  */
-	    /* FIXME: Should we translate the instruction into a BL
-	       instruction instead ?  */
-	    if (sym_flags == STT_ARM_TFUNC)
-	      (*_bfd_error_handler)
-		(_("%B: Warning: Thumb BLX instruction targets thumb function '%s'."),
-		 input_bfd,
-		 h ? h->root.root.string : "(local)");
-	  }
-	else
-#endif
-	  {
-	    /* If it is not a call to Thumb, assume call to Arm.
-	       If it is a call relative to a section name, then it is not a
-	       function call at all, but rather a long jump.  Calls through
-	       the PLT do not require stubs.  */
-	    if (sym_flags != STT_ARM_TFUNC && sym_flags != STT_SECTION
-		&& (h == NULL || splt == NULL
-		    || h->plt.offset == (bfd_vma) -1))
-	      {
-		if (elf32_thumb_to_arm_stub
-		    (info, sym_name, input_bfd, output_bfd, input_section,
-		     hit_data, sym_sec, rel->r_offset, signed_addend, value))
-		  return bfd_reloc_ok;
-		else
-		  return bfd_reloc_dangerous;
-	      }
-	  }
-
-	/* Handle calls via the PLT.  */
-	if (h != NULL && splt != NULL && h->plt.offset != (bfd_vma) -1)
-	  {
-	    value = (splt->output_section->vma
-		     + splt->output_offset
-		     + h->plt.offset);
-	    /* Target the Thumb stub before the ARM PLT entry.  */
-	    value -= 4;
-	    *unresolved_reloc_p = FALSE;
-	  }
 
-	relocation = value + signed_addend;
+	/* ??? Should handle interworking?  GCC might someday try to
+	   use this for tail calls.  */
 
+      	relocation = value + signed_addend;
 	relocation -= (input_section->output_section->vma
 		       + input_section->output_offset
 		       + rel->r_offset);
@@ -2724,18 +3452,17 @@ elf32_arm_final_link_relocate (reloc_how
 	if (signed_check > reloc_signed_max || signed_check < reloc_signed_min)
 	  overflow = TRUE;
 
-#ifndef OLD_ARM_ABI
-	if (r_type == R_ARM_THM_XPC22
-	    && ((lower_insn & 0x1800) == 0x0800))
-	  /* For a BLX instruction, make sure that the relocation is rounded up
-	     to a word boundary.  This follows the semantics of the instruction
-	     which specifies that bit 1 of the target address will come from bit
-	     1 of the base address.  */
-	  relocation = (relocation + 2) & ~ 3;
-#endif
 	/* Put RELOCATION back into the insn.  */
-	upper_insn = (upper_insn & ~(bfd_vma) 0x7ff) | ((relocation >> 12) & 0x7ff);
-	lower_insn = (lower_insn & ~(bfd_vma) 0x7ff) | ((relocation >> 1) & 0x7ff);
+	{
+	  bfd_vma S  = (relocation & 0x00100000) >> 20;
+	  bfd_vma J2 = (relocation & 0x00080000) >> 19;
+	  bfd_vma J1 = (relocation & 0x00040000) >> 18;
+	  bfd_vma hi = (relocation & 0x0003f000) >> 12;
+	  bfd_vma lo = (relocation & 0x00000ffe) >>  1;
+
+	  upper_insn = (upper_insn & 0xfb30) | (S << 10) | hi;
+	  lower_insn = (lower_insn & 0xd000) | (J1 << 13) | (J2 << 11) | lo;
+	}
 
 	/* Put the relocated value back in the object file:  */
 	bfd_put_16 (input_bfd, upper_insn, hit_data);
@@ -2743,10 +3470,10 @@ elf32_arm_final_link_relocate (reloc_how
 
 	return (overflow ? bfd_reloc_overflow : bfd_reloc_ok);
       }
-      break;
 
-    case R_ARM_THM_PC11:
-    case R_ARM_THM_PC9:
+    case R_ARM_THM_JUMP11:
+    case R_ARM_THM_JUMP8:
+    case R_ARM_THM_JUMP6:
       /* Thumb B (branch) instruction).  */
       {
 	bfd_signed_vma relocation;
@@ -2754,6 +3481,10 @@ elf32_arm_final_link_relocate (reloc_how
 	bfd_signed_vma reloc_signed_min = ~ reloc_signed_max;
 	bfd_signed_vma signed_check;
 
+	/* CZB cannot jump backward.  */
+	if (r_type == R_ARM_THM_JUMP6)
+	  reloc_signed_min = 0;
+
 	if (globals->use_rel)
 	  {
 	    /* Need to refetch addend.  */
@@ -2779,7 +3510,11 @@ elf32_arm_final_link_relocate (reloc_how
 
 	relocation >>= howto->rightshift;
 	signed_check = relocation;
-	relocation &= howto->dst_mask;
+
+	if (r_type == R_ARM_THM_JUMP6)
+	  relocation = ((relocation & 0x0020) << 4) | ((relocation & 0x001f) << 3);
+	else
+	  relocation &= howto->dst_mask;
 	relocation |= (bfd_get_16 (input_bfd, hit_data) & (~ howto->dst_mask));
 
 	bfd_put_16 (input_bfd, relocation, hit_data);
@@ -2823,19 +3558,7 @@ elf32_arm_final_link_relocate (reloc_how
     case R_ARM_GNU_VTENTRY:
       return bfd_reloc_ok;
 
-    case R_ARM_COPY:
-      return bfd_reloc_notsupported;
-
-    case R_ARM_GLOB_DAT:
-      return bfd_reloc_notsupported;
-
-    case R_ARM_JUMP_SLOT:
-      return bfd_reloc_notsupported;
-
-    case R_ARM_RELATIVE:
-      return bfd_reloc_notsupported;
-
-    case R_ARM_GOTOFF:
+    case R_ARM_GOTOFF32:
       /* Relocation is relative to the start of the
          global offset table.  */
 
@@ -2980,29 +3703,221 @@ elf32_arm_final_link_relocate (reloc_how
 				       contents, rel->r_offset, value,
 				       (bfd_vma) 0);
 
-    case R_ARM_SBREL32:
-      return bfd_reloc_notsupported;
+    case R_ARM_TLS_LDO32:
+      value = value - dtpoff_base (info);
 
-    case R_ARM_AMP_VCALL9:
-      return bfd_reloc_notsupported;
+      return _bfd_final_link_relocate (howto, input_bfd, input_section,
+				       contents, rel->r_offset, value, (bfd_vma) 0);
 
-    case R_ARM_RSBREL32:
-      return bfd_reloc_notsupported;
+    case R_ARM_TLS_LDM32:
+      {
+	bfd_vma off;
 
-    case R_ARM_THM_RPC22:
-      return bfd_reloc_notsupported;
+	if (globals->sgot == NULL)
+	  abort ();
 
-    case R_ARM_RREL32:
-      return bfd_reloc_notsupported;
+	off = globals->tls_ldm_got.offset;
 
-    case R_ARM_RABS32:
-      return bfd_reloc_notsupported;
+	if ((off & 1) != 0)
+	  off &= ~1;
+	else
+	  {
+	    /* If we don't know the module number, create a relocation
+	       for it.  */
+	    if (info->shared)
+	      {
+		Elf_Internal_Rela outrel;
+		bfd_byte *loc;
 
-    case R_ARM_RPC24:
-      return bfd_reloc_notsupported;
+		if (globals->srelgot == NULL)
+		  abort ();
 
-    case R_ARM_RBASE:
-      return bfd_reloc_notsupported;
+		outrel.r_offset = (globals->sgot->output_section->vma
+				   + globals->sgot->output_offset + off);
+		outrel.r_info = ELF32_R_INFO (0, R_ARM_TLS_DTPMOD32);
+
+		bfd_put_32 (output_bfd, 0, globals->sgot->contents + off);
+
+		loc = globals->srelgot->contents;
+		loc += globals->srelgot->reloc_count++ * sizeof (Elf32_External_Rel);
+		bfd_elf32_swap_reloc_out (output_bfd, &outrel, loc);
+	      }
+	    else
+	      bfd_put_32 (output_bfd, 1, globals->sgot->contents + off);
+
+	    globals->tls_ldm_got.offset |= 1;
+	  }
+
+	value = globals->sgot->output_section->vma + globals->sgot->output_offset + off
+	  - (input_section->output_section->vma + input_section->output_offset + rel->r_offset);
+
+	return _bfd_final_link_relocate (howto, input_bfd, input_section,
+					 contents, rel->r_offset, value,
+					 (bfd_vma) 0);
+      }
+
+    case R_ARM_TLS_GD32:
+    case R_ARM_TLS_IE32:
+      {
+	bfd_vma off;
+	int indx;
+	char tls_type;
+
+	if (globals->sgot == NULL)
+	  abort ();
+
+	indx = 0;
+	if (h != NULL)
+	  {
+	    bfd_boolean dyn;
+	    dyn = globals->root.dynamic_sections_created;
+	    if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, info->shared, h)
+		&& (!info->shared
+		    || !SYMBOL_REFERENCES_LOCAL (info, h)))
+	      {
+		*unresolved_reloc_p = FALSE;
+		indx = h->dynindx;
+	      }
+	    off = h->got.offset;
+	    tls_type = ((struct elf32_arm_link_hash_entry *) h)->tls_type;
+	  }
+	else
+	  {
+	    if (local_got_offsets == NULL)
+	      abort ();
+	    off = local_got_offsets[r_symndx];
+	    tls_type = elf32_arm_local_got_tls_type (input_bfd)[r_symndx];
+	  }
+
+	if (tls_type == GOT_UNKNOWN)
+	  abort ();
+
+	if ((off & 1) != 0)
+	  off &= ~1;
+	else
+	  {
+	    bfd_boolean need_relocs = FALSE;
+	    Elf_Internal_Rela outrel;
+	    bfd_byte *loc = NULL;
+	    int cur_off = off;
+
+	    /* The GOT entries have not been initialized yet.  Do it
+	       now, and emit any relocations.  If both an IE GOT and a
+	       GD GOT are necessary, we emit the GD first.  */
+
+	    if ((info->shared || indx != 0)
+		&& (h == NULL
+		    || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
+		    || h->root.type != bfd_link_hash_undefweak))
+	      {
+		need_relocs = TRUE;
+		if (globals->srelgot == NULL)
+		  abort ();
+		loc = globals->srelgot->contents;
+		loc += globals->srelgot->reloc_count * sizeof (Elf32_External_Rel);
+	      }
+
+	    if (tls_type & GOT_TLS_GD)
+	      {
+		if (need_relocs)
+		  {
+		    outrel.r_offset = (globals->sgot->output_section->vma
+				       + globals->sgot->output_offset + cur_off);
+		    outrel.r_info = ELF32_R_INFO (indx, R_ARM_TLS_DTPMOD32);
+		    bfd_put_32 (output_bfd, 0, globals->sgot->contents + cur_off);
+
+		    bfd_elf32_swap_reloc_out (output_bfd, &outrel, loc);
+		    globals->srelgot->reloc_count++;
+		    loc += sizeof (Elf32_External_Rel);
+
+		    if (indx == 0)
+		      bfd_put_32 (output_bfd, value - dtpoff_base (info),
+				  globals->sgot->contents + cur_off + 4);
+		    else
+		      {
+			bfd_put_32 (output_bfd, 0,
+				    globals->sgot->contents + cur_off + 4);
+
+			outrel.r_info = ELF32_R_INFO (indx,
+						      R_ARM_TLS_DTPOFF32);
+			outrel.r_offset += 4;
+			bfd_elf32_swap_reloc_out (output_bfd, &outrel, loc);
+			globals->srelgot->reloc_count++;
+			loc += sizeof (Elf32_External_Rel);
+		      }
+		  }
+		else
+		  {
+		    /* If we are not emitting relocations for a
+		       general dynamic reference, then we must be in a
+		       static link or an executable link with the
+		       symbol binding locally.  Mark it as belonging
+		       to module 1, the executable.  */
+		    bfd_put_32 (output_bfd, 1,
+				globals->sgot->contents + cur_off);
+		    bfd_put_32 (output_bfd, value - dtpoff_base (info),
+				globals->sgot->contents + cur_off + 4);
+		  }
+
+		cur_off += 8;
+	      }
+
+	    if (tls_type & GOT_TLS_IE)
+	      {
+		if (need_relocs)
+		  {
+		    outrel.r_offset = (globals->sgot->output_section->vma
+				       + globals->sgot->output_offset
+				       + cur_off);
+		    outrel.r_info = ELF32_R_INFO (indx, R_ARM_TLS_TPOFF32);
+
+		    if (indx == 0)
+		      bfd_put_32 (output_bfd, value - dtpoff_base (info),
+				  globals->sgot->contents + cur_off);
+		    else
+		      bfd_put_32 (output_bfd, 0,
+				  globals->sgot->contents + cur_off);
+
+		    bfd_elf32_swap_reloc_out (output_bfd, &outrel, loc);
+		    globals->srelgot->reloc_count++;
+		    loc += sizeof (Elf32_External_Rel);
+		  }
+		else
+		  bfd_put_32 (output_bfd, tpoff (info, value),
+			      globals->sgot->contents + cur_off);
+		cur_off += 4;
+	      }
+
+	    if (h != NULL)
+	      h->got.offset |= 1;
+	    else
+	      local_got_offsets[r_symndx] |= 1;
+	  }
+
+	if ((tls_type & GOT_TLS_GD) && r_type != R_ARM_TLS_GD32)
+	  off += 8;
+	value = globals->sgot->output_section->vma + globals->sgot->output_offset + off
+	  - (input_section->output_section->vma + input_section->output_offset + rel->r_offset);
+
+	return _bfd_final_link_relocate (howto, input_bfd, input_section,
+					 contents, rel->r_offset, value,
+					 (bfd_vma) 0);
+      }
+
+    case R_ARM_TLS_LE32:
+      if (info->shared)
+	{
+	  (*_bfd_error_handler)
+	    (_("%B(%A+0x%lx): R_ARM_TLS_LE32 relocation not permitted in shared object"),
+	     input_bfd, input_section,
+	     (long) rel->r_offset, howto->name);
+	  return FALSE;
+	}
+      else
+	value = tpoff (info, value);
+
+      return _bfd_final_link_relocate (howto, input_bfd, input_section,
+				       contents, rel->r_offset, value, (bfd_vma) 0);
 
     case R_ARM_V4BX:
       if (globals->fix_v4bx)
@@ -3034,7 +3949,7 @@ arm_add_to_rel (bfd *              abfd,
 {
   bfd_signed_vma addend;
 
-  if (howto->type == R_ARM_THM_PC22)
+  if (howto->type == R_ARM_THM_CALL)
     {
       int upper_insn, lower_insn;
       int upper, lower;
@@ -3100,6 +4015,16 @@ arm_add_to_rel (bfd *              abfd,
     }
 }
 
+#define IS_ARM_TLS_RELOC(R_TYPE)	\
+  ((R_TYPE) == R_ARM_TLS_GD32		\
+   || (R_TYPE) == R_ARM_TLS_LDO32	\
+   || (R_TYPE) == R_ARM_TLS_LDM32	\
+   || (R_TYPE) == R_ARM_TLS_DTPOFF32	\
+   || (R_TYPE) == R_ARM_TLS_DTPMOD32	\
+   || (R_TYPE) == R_ARM_TLS_TPOFF32	\
+   || (R_TYPE) == R_ARM_TLS_LE32	\
+   || (R_TYPE) == R_ARM_TLS_IE32)
+
 /* Relocate an ARM ELF section.  */
 static bfd_boolean
 elf32_arm_relocate_section (bfd *                  output_bfd,
@@ -3138,6 +4063,7 @@ elf32_arm_relocate_section (bfd *       
       bfd_vma                      relocation;
       bfd_reloc_status_type        r;
       arelent                      bfd_reloc;
+      char                         sym_type;
       bfd_boolean                  unresolved_reloc = FALSE;
 
       r_symndx = ELF32_R_SYM (rel->r_info);
@@ -3181,6 +4107,7 @@ elf32_arm_relocate_section (bfd *       
       if (r_symndx < symtab_hdr->sh_info)
 	{
 	  sym = local_syms + r_symndx;
+	  sym_type = ELF32_ST_TYPE (sym->st_info);
 	  sec = local_sections[r_symndx];
 	  if (globals->use_rel)
 	    {
@@ -3234,6 +4161,8 @@ elf32_arm_relocate_section (bfd *       
 				   r_symndx, symtab_hdr, sym_hashes,
 				   h, sec, relocation,
 				   unresolved_reloc, warned);
+
+	  sym_type = h->type;
 	}
 
       if (h != NULL)
@@ -3246,6 +4175,24 @@ elf32_arm_relocate_section (bfd *       
 	    name = bfd_section_name (input_bfd, sec);
 	}
 
+      if (r_symndx != 0
+	  && r_type != R_ARM_NONE
+	  && (h == NULL
+	      || h->root.type == bfd_link_hash_defined
+	      || h->root.type == bfd_link_hash_defweak)
+	  && IS_ARM_TLS_RELOC (r_type) != (sym_type == STT_TLS))
+	{
+	  (*_bfd_error_handler)
+	    ((sym_type == STT_TLS
+	      ? _("%B(%A+0x%lx): %s used with TLS symbol %s")
+	      : _("%B(%A+0x%lx): %s used with non-TLS symbol %s")),
+	     input_bfd,
+	     input_section,
+	     (long) rel->r_offset,
+	     howto->name,
+	     name);
+	}
+
       r = elf32_arm_final_link_relocate (howto, input_bfd, output_bfd,
 					 input_section, contents, rel,
 					 relocation, info, sec, name,
@@ -3825,10 +4772,10 @@ elf32_arm_gc_mark_hook (asection *      
 /* Update the got entry reference counts for the section being removed.  */
 
 static bfd_boolean
-elf32_arm_gc_sweep_hook (bfd *                     abfd ATTRIBUTE_UNUSED,
-			 struct bfd_link_info *    info ATTRIBUTE_UNUSED,
-			 asection *                sec ATTRIBUTE_UNUSED,
-			 const Elf_Internal_Rela * relocs ATTRIBUTE_UNUSED)
+elf32_arm_gc_sweep_hook (bfd *                     abfd,
+			 struct bfd_link_info *    info,
+			 asection *                sec,
+			 const Elf_Internal_Rela * relocs)
 {
   Elf_Internal_Shdr *symtab_hdr;
   struct elf_link_hash_entry **sym_hashes;
@@ -3870,6 +4817,8 @@ elf32_arm_gc_sweep_hook (bfd *          
 #ifndef OLD_ARM_ABI
 	case R_ARM_GOT_PREL:
 #endif
+	case R_ARM_TLS_GD32:
+	case R_ARM_TLS_IE32:
 	  if (h != NULL)
 	    {
 	      if (h->got.refcount > 0)
@@ -3882,6 +4831,10 @@ elf32_arm_gc_sweep_hook (bfd *          
 	    }
 	  break;
 
+	case R_ARM_TLS_LDM32:
+	  elf32_arm_hash_table (info)->tls_ldm_got.refcount -= 1;
+	  break;
+
 	case R_ARM_ABS32:
 	case R_ARM_REL32:
 	case R_ARM_PC24:
@@ -3891,7 +4844,7 @@ elf32_arm_gc_sweep_hook (bfd *          
 	case R_ARM_JUMP24:
 	case R_ARM_PREL31:
 #endif
-	case R_ARM_THM_PC22:
+	case R_ARM_THM_CALL:
 	  /* Should the interworking branches be here also?  */
 
 	  if (h != NULL)
@@ -3905,7 +4858,7 @@ elf32_arm_gc_sweep_hook (bfd *          
 	      if (h->plt.refcount > 0)
 		{
 		  h->plt.refcount -= 1;
-		  if (ELF32_R_TYPE (rel->r_info) == R_ARM_THM_PC22)
+		  if (ELF32_R_TYPE (rel->r_info) == R_ARM_THM_CALL)
 		    eh->plt_thumb_refcount--;
 		}
 
@@ -3917,6 +4870,8 @@ elf32_arm_gc_sweep_hook (bfd *          
 		  if (p->section == sec)
 		    {
 		      p->count -= 1;
+		      if (ELF32_R_TYPE (rel->r_info) == R_ARM_REL32)
+			p->pc_count -= 1;
 		      if (p->count == 0)
 			*pp = p->next;
 		      break;
@@ -3988,6 +4943,14 @@ elf32_arm_check_relocs (bfd *abfd, struc
 #ifndef OLD_ARM_ABI
       r_type = arm_real_reloc_type (htab, r_type);
 #endif
+
+      if (r_symndx >= NUM_SHDR_ENTRIES (symtab_hdr))
+	{
+	  (*_bfd_error_handler) (_("%B: bad symbol index: %d"), abfd,
+				 r_symndx);
+	  return FALSE;
+	}
+
       if (r_symndx < symtab_hdr->sh_info)
         h = NULL;
       else
@@ -4001,35 +4964,71 @@ elf32_arm_check_relocs (bfd *abfd, struc
 #ifndef OLD_ARM_ABI
 	  case R_ARM_GOT_PREL:
 #endif
+	  case R_ARM_TLS_GD32:
+	  case R_ARM_TLS_IE32:
 	    /* This symbol requires a global offset table entry.  */
-	    if (h != NULL)
-	      {
-		h->got.refcount++;
-	      }
-	    else
-	      {
-		bfd_signed_vma *local_got_refcounts;
+	    {
+	      int tls_type, old_tls_type;
 
-		/* This is a global offset table entry for a local symbol.  */
-		local_got_refcounts = elf_local_got_refcounts (abfd);
-		if (local_got_refcounts == NULL)
-		  {
-		    bfd_size_type size;
+	      switch (r_type)
+		{
+		case R_ARM_TLS_GD32: tls_type = GOT_TLS_GD; break;
+		case R_ARM_TLS_IE32: tls_type = GOT_TLS_IE; break;
+		default: tls_type = GOT_NORMAL; break;
+		}
 
-		    size = symtab_hdr->sh_info;
-		    size *= (sizeof (bfd_signed_vma) + sizeof (char));
-		    local_got_refcounts = bfd_zalloc (abfd, size);
-		    if (local_got_refcounts == NULL)
-		      return FALSE;
-		    elf_local_got_refcounts (abfd) = local_got_refcounts;
-		  }
-		local_got_refcounts[r_symndx] += 1;
-	      }
-	    if (r_type == R_ARM_GOT32)
-	      break;
-	    /* Fall through.  */
+	      if (h != NULL)
+		{
+		  h->got.refcount++;
+		  old_tls_type = elf32_arm_hash_entry (h)->tls_type;
+		}
+	      else
+		{
+		  bfd_signed_vma *local_got_refcounts;
+
+		  /* This is a global offset table entry for a local symbol.  */
+		  local_got_refcounts = elf_local_got_refcounts (abfd);
+		  if (local_got_refcounts == NULL)
+		    {
+		      bfd_size_type size;
+
+		      size = symtab_hdr->sh_info;
+		      size *= (sizeof (bfd_signed_vma) + sizeof(char));
+		      local_got_refcounts = bfd_zalloc (abfd, size);
+		      if (local_got_refcounts == NULL)
+			return FALSE;
+		      elf_local_got_refcounts (abfd) = local_got_refcounts;
+		      elf32_arm_local_got_tls_type (abfd)
+			= (char *) (local_got_refcounts + symtab_hdr->sh_info);
+		    }
+		  local_got_refcounts[r_symndx] += 1;
+		  old_tls_type = elf32_arm_local_got_tls_type (abfd) [r_symndx];
+		}
+
+	      /* We will already have issued an error message if there is a
+		 TLS / non-TLS mismatch, based on the symbol type.  We don't
+		 support any linker relaxations.  So just combine any TLS
+		 types needed.  */
+	      if (old_tls_type != GOT_UNKNOWN && old_tls_type != GOT_NORMAL
+		  && tls_type != GOT_NORMAL)
+		tls_type |= old_tls_type;
+
+	      if (old_tls_type != tls_type)
+		{
+		  if (h != NULL)
+		    elf32_arm_hash_entry (h)->tls_type = tls_type;
+		  else
+		    elf32_arm_local_got_tls_type (abfd) [r_symndx] = tls_type;
+		}
+	    }
+	    /* Fall through */
+
+	  case R_ARM_TLS_LDM32:
+	    if (r_type == R_ARM_TLS_LDM32)
+		htab->tls_ldm_got.refcount++;
+	    /* Fall through */
 
-	  case R_ARM_GOTOFF:
+	  case R_ARM_GOTOFF32:
 	  case R_ARM_GOTPC:
 	    if (htab->sgot == NULL)
 	      {
@@ -4049,7 +5048,7 @@ elf32_arm_check_relocs (bfd *abfd, struc
 	  case R_ARM_JUMP24:
 	  case R_ARM_PREL31:
 #endif
-	  case R_ARM_THM_PC22:
+	  case R_ARM_THM_CALL:
 	    /* Should the interworking branches be listed here?  */
 	    if (h != NULL)
 	      {
@@ -4073,14 +5072,14 @@ elf32_arm_check_relocs (bfd *abfd, struc
 		    || r_type == R_ARM_PREL31
 #endif
 		    || r_type == R_ARM_PLT32
-		    || r_type == R_ARM_THM_PC22)
+		    || r_type == R_ARM_THM_CALL)
 		  h->needs_plt = 1;
 
 		/* If we create a PLT entry, this relocation will reference
 		   it, even if it's an ABS32 relocation.  */
 		h->plt.refcount += 1;
 
-		if (r_type == R_ARM_THM_PC22)
+		if (r_type == R_ARM_THM_CALL)
 		  eh->plt_thumb_refcount += 1;
 	      }
 
@@ -4178,8 +5177,11 @@ elf32_arm_check_relocs (bfd *abfd, struc
 		    *head = p;
 		    p->section = sec;
 		    p->count = 0;
+		    p->pc_count = 0;
 		  }
 
+		if (r_type == R_ARM_REL32)
+		  p->pc_count += 1;
 		p->count += 1;
 	      }
 	    break;
@@ -4203,21 +5205,12 @@ elf32_arm_check_relocs (bfd *abfd, struc
   return TRUE;
 }
 
-static bfd_boolean
-is_arm_mapping_symbol_name (const char * name)
-{
-  return (name != NULL)
-    && (name[0] == '$')
-    && ((name[1] == 'a') || (name[1] == 't') || (name[1] == 'd'))
-    && (name[2] == 0);
-}
-
 /* Treat mapping symbols as special target symbols.  */
 
 static bfd_boolean
 elf32_arm_is_target_special_symbol (bfd * abfd ATTRIBUTE_UNUSED, asymbol * sym)
 {
-  return is_arm_mapping_symbol_name (sym->name);
+  return bfd_is_arm_mapping_symbol_name (sym->name);
 }
 
 /* This is a copy of elf_find_function() from elf.c except that
@@ -4252,12 +5245,12 @@ arm_elf_find_function (bfd *         abf
 	  break;
 	case STT_FUNC:
 	case STT_ARM_TFUNC:
+	case STT_NOTYPE:
 	  /* Skip $a and $t symbols.  */
 	  if ((q->symbol.flags & BSF_LOCAL)
-	      && is_arm_mapping_symbol_name (q->symbol.name))
+	      && bfd_is_arm_mapping_symbol_name (q->symbol.name))
 	    continue;
 	  /* Fall through.  */
-	case STT_NOTYPE:
 	  if (bfd_get_section (&q->symbol) == section
 	      && q->symbol.value >= low_func
 	      && q->symbol.value <= offset)
@@ -4406,6 +5399,11 @@ elf32_arm_adjust_dynamic_symbol (struct 
       return TRUE;
     }
 
+  /* If there are no non-GOT references, we do not need a copy
+     relocation.  */
+  if (!h->non_got_ref)
+    return TRUE;
+
   /* This is a reference to a symbol defined by a dynamic object which
      is not a function.  */
 
@@ -4573,6 +5571,8 @@ allocate_dynrelocs (struct elf_link_hash
     {
       asection *s;
       bfd_boolean dyn;
+      int tls_type = elf32_arm_hash_entry (h)->tls_type;
+      int indx;
 
       /* Make sure this symbol is output as a dynamic symbol.
 	 Undefined weak syms won't yet be marked as dynamic.  */
@@ -4587,12 +5587,49 @@ allocate_dynrelocs (struct elf_link_hash
 	{
 	  s = htab->sgot;
 	  h->got.offset = s->size;
-	  s->size += 4;
+
+	  if (tls_type == GOT_UNKNOWN)
+	    abort ();
+
+	  if (tls_type == GOT_NORMAL)
+	    /* Non-TLS symbols need one GOT slot.  */
+	    s->size += 4;
+	  else
+	    {
+	      if (tls_type & GOT_TLS_GD)
+		/* R_ARM_TLS_GD32 needs 2 consecutive GOT slots.  */
+		s->size += 8;
+	      if (tls_type & GOT_TLS_IE)
+		/* R_ARM_TLS_IE32 needs one GOT slot.  */
+		s->size += 4;
+	    }
+
 	  dyn = htab->root.dynamic_sections_created;
-	  if ((ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
-	       || h->root.type != bfd_link_hash_undefweak)
-	      && (info->shared
-		  || WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, 0, h)))
+
+	  indx = 0;
+	  if (WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, info->shared, h)
+	      && (!info->shared
+		  || !SYMBOL_REFERENCES_LOCAL (info, h)))
+	    indx = h->dynindx;
+
+	  if (tls_type != GOT_NORMAL
+	      && (info->shared || indx != 0)
+	      && (ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
+		  || h->root.type != bfd_link_hash_undefweak))
+	    {
+	      if (tls_type & GOT_TLS_IE)
+		htab->srelgot->size += sizeof (Elf32_External_Rel);
+
+	      if (tls_type & GOT_TLS_GD)
+		htab->srelgot->size += sizeof (Elf32_External_Rel);
+
+	      if ((tls_type & GOT_TLS_GD) && indx != 0)
+		htab->srelgot->size += sizeof (Elf32_External_Rel);
+	    }
+	  else if ((ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
+		    || h->root.type != bfd_link_hash_undefweak)
+		   && (info->shared
+	    	   || WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, 0, h)))
 	    htab->srelgot->size += sizeof (Elf32_External_Rel);
 	}
     }
@@ -4610,7 +5647,28 @@ allocate_dynrelocs (struct elf_link_hash
 
   if (info->shared || htab->root.is_relocatable_executable)
     {
-      /* Discard relocs on undefined weak syms with non-default
+      /* The only reloc that uses pc_count is R_ARM_REL32, which will
+	 appear on something like ".long foo - .".  We want calls to
+	 protected symbols to resolve directly to the function rather
+	 than going via the plt.  If people want function pointer
+	 comparisons to work as expected then they should avoid
+	 writing assembly like ".long foo - .".  */
+      if (SYMBOL_CALLS_LOCAL (info, h))
+	{
+	  struct elf32_arm_relocs_copied **pp;
+
+	  for (pp = &eh->relocs_copied; (p = *pp) != NULL; )
+	    {
+	      p->count -= p->pc_count;
+	      p->pc_count = 0;
+	      if (p->count == 0)
+		*pp = p->next;
+	      else
+		pp = &p->next;
+	    }
+	}
+
+      /* Also discard relocs on undefined weak syms with non-default
          visibility.  */
       if (ELF_ST_VISIBILITY (h->other) != STV_DEFAULT
 	  && h->root.type == bfd_link_hash_undefweak)
@@ -4775,6 +5833,7 @@ elf32_arm_size_dynamic_sections (bfd * o
       symtab_hdr = &elf_tdata (ibfd)->symtab_hdr;
       locsymcount = symtab_hdr->sh_info;
       end_local_got = local_got + locsymcount;
+      local_tls_type = elf32_arm_local_got_tls_type (ibfd);
       s = htab->sgot;
       srel = htab->srelgot;
       for (; local_got < end_local_got; ++local_got, ++local_tls_type)
@@ -4782,8 +5841,15 @@ elf32_arm_size_dynamic_sections (bfd * o
 	  if (*local_got > 0)
 	    {
 	      *local_got = s->size;
-	      s->size += 4;
-	      if (info->shared)
+	      if (*local_tls_type & GOT_TLS_GD)
+		/* TLS_GD relocs need an 8-byte structure in the GOT.  */
+		s->size += 8;
+	      if (*local_tls_type & GOT_TLS_IE)
+		s->size += 4;
+	      if (*local_tls_type == GOT_NORMAL)
+		s->size += 4;
+
+	      if (info->shared || *local_tls_type == GOT_TLS_GD)
 		srel->size += sizeof (Elf32_External_Rel);
 	    }
 	  else
@@ -4791,6 +5857,18 @@ elf32_arm_size_dynamic_sections (bfd * o
 	}
     }
 
+  if (htab->tls_ldm_got.refcount > 0)
+    {
+      /* Allocate two GOT entries and one dynamic relocation (if necessary)
+	 for R_ARM_TLS_LDM32 relocations.  */
+      htab->tls_ldm_got.offset = htab->sgot->size;
+      htab->sgot->size += 8;
+      if (info->shared)
+	htab->srelgot->size += sizeof (Elf32_External_Rel);
+    }
+  else
+    htab->tls_ldm_got.offset = -1;
+
   /* Allocate global sym .plt and .got entries, and space for global
      sym dynamic relocs.  */
   elf_link_hash_traverse (& htab->root, allocate_dynrelocs, info);
@@ -5061,7 +6139,9 @@ elf32_arm_finish_dynamic_symbol (bfd * o
 	}
     }
 
-  if (h->got.offset != (bfd_vma) -1)
+  if (h->got.offset != (bfd_vma) -1
+      && (elf32_arm_hash_entry (h)->tls_type & GOT_TLS_GD) == 0
+      && (elf32_arm_hash_entry (h)->tls_type & GOT_TLS_IE) == 0)
     {
       asection * sgot;
       asection * srel;
@@ -5495,7 +6575,7 @@ elf32_arm_output_symbol_hook (struct bfd
     return TRUE;
 
   /* We only want mapping symbols.  */
-  if (! is_arm_mapping_symbol_name (name))
+  if (! bfd_is_arm_mapping_symbol_name (name))
     return TRUE;
 
   mapcount = ++(elf32_arm_section_data (input_sec)->mapcount);
@@ -5754,6 +6834,8 @@ const struct elf_size_info elf32_arm_siz
 #endif
 #define ELF_MINPAGESIZE			0x1000
 
+#define bfd_elf32_mkobject		        elf32_arm_mkobject
+
 #define bfd_elf32_bfd_copy_private_bfd_data	elf32_arm_copy_private_bfd_data
 #define bfd_elf32_bfd_merge_private_bfd_data	elf32_arm_merge_private_bfd_data
 #define bfd_elf32_bfd_set_private_flags		elf32_arm_set_private_flags
Index: b/binutils-2.16.1/bfd/elf32-i386.c
===================================================================
--- a/binutils-2.16.1/bfd/elf32-i386.c
+++ b/binutils-2.16.1/bfd/elf32-i386.c
@@ -2177,21 +2177,6 @@ elf_i386_relocate_section (bfd *output_b
 				   unresolved_reloc, warned);
 	}
 
-      if (r_symndx == 0)
-	{
-	/* r_symndx will be zero only for relocs against symbols from
-	   removed linkonce sections, or sections discarded by a linker
-	   script.  For these relocs, we just want the section contents
-	   zeroed.  Avoid any special processing in the switch below.  */
-	  r_type = R_386_NONE;
-
-	  relocation = 0;
-	  if (howto->pc_relative)
-	    relocation = (input_section->output_section->vma
-			  + input_section->output_offset
-			  + rel->r_offset);
-	}
-
       switch (r_type)
 	{
 	case R_386_GOT32:
@@ -2293,7 +2278,6 @@ elf_i386_relocate_section (bfd *output_b
 	     for shared library since it may not be local when used
 	     as function address.  */
 	  if (info->shared
-	      && !info->executable
 	      && h
 	      && h->def_regular
 	      && h->type == STT_FUNC
@@ -2348,6 +2332,21 @@ elf_i386_relocate_section (bfd *output_b
 
 	case R_386_32:
 	case R_386_PC32:
+	  /* r_symndx will be zero only for relocs against symbols
+	     from removed linkonce sections, or sections discarded by
+	     a linker script.  */
+	  if (r_symndx == 0)
+	    {
+	      /* Zero the section contents.  eh_frame generated by old
+		 versions of gcc isn't edited by elf-eh-frame.c, so
+		 FDEs for discarded linkonce functions might remain.
+		 Putting zeros here will zero such FDE's address range.
+		 This is a hint to unwinders and other consumers of
+		 exception handling info that the FDE is invalid.  */
+	      bfd_put_32 (input_bfd, 0, contents + rel->r_offset);
+	      break;
+	    }
+
 	  if ((input_section->flags & SEC_ALLOC) == 0)
 	    break;
 
Index: b/binutils-2.16.1/bfd/elf32-ppc.c
===================================================================
--- a/binutils-2.16.1/bfd/elf32-ppc.c
+++ b/binutils-2.16.1/bfd/elf32-ppc.c
@@ -1647,11 +1647,8 @@ ppc_elf_relax_section (bfd *abfd,
 
   *again = FALSE;
 
-  /* Nothing to do if there are no relocations, and no need to do
-     anything with non-alloc sections.  */
-  if ((isec->flags & SEC_ALLOC) == 0
-      || (isec->flags & SEC_RELOC) == 0
-      || isec->reloc_count == 0)
+  /* Nothing to do if there are no relocations.  */
+  if ((isec->flags & SEC_RELOC) == 0 || isec->reloc_count == 0)
     return TRUE;
 
   trampoff = (isec->size + 3) & (bfd_vma) -4;
@@ -3565,15 +3562,6 @@ ppc_elf_check_relocs (bfd *abfd,
   if (info->relocatable)
     return TRUE;
 
-  /* Don't do anything special with non-loaded, non-alloced sections.
-     In particular, any relocs in such sections should not affect GOT
-     and PLT reference counting (ie. we don't allow them to create GOT
-     or PLT entries), there's no possibility or desire to optimize TLS
-     relocs, and there's not much point in propagating relocs to shared
-     libs that the dynamic linker won't relocate.  */
-  if ((sec->flags & SEC_ALLOC) == 0)
-    return TRUE;
-
 #ifdef DEBUG
   _bfd_error_handler ("ppc_elf_check_relocs called for section %A in %B",
 		      sec, abfd);
@@ -3905,6 +3893,7 @@ ppc_elf_check_relocs (bfd *abfd,
 			   || !h->def_regular))))
 	      || (ELIMINATE_COPY_RELOCS
 		  && !info->shared
+		  && (sec->flags & SEC_ALLOC) != 0
 		  && h != NULL
 		  && (h->root.type == bfd_link_hash_defweak
 		      || !h->def_regular)))
@@ -3941,8 +3930,9 @@ ppc_elf_check_relocs (bfd *abfd,
 
 		      sreloc = bfd_make_section (htab->elf.dynobj, name);
 		      flags = (SEC_HAS_CONTENTS | SEC_READONLY
-			       | SEC_IN_MEMORY | SEC_LINKER_CREATED
-			       | SEC_ALLOC | SEC_LOAD);
+			       | SEC_IN_MEMORY | SEC_LINKER_CREATED);
+		      if ((sec->flags & SEC_ALLOC) != 0)
+			flags |= SEC_ALLOC | SEC_LOAD;
 		      if (sreloc == NULL
 			  || ! bfd_set_section_flags (htab->elf.dynobj,
 						      sreloc, flags)
@@ -4054,9 +4044,6 @@ ppc_elf_gc_sweep_hook (bfd *abfd,
   bfd_signed_vma *local_got_refcounts;
   const Elf_Internal_Rela *rel, *relend;
 
-  if ((sec->flags & SEC_ALLOC) == 0)
-    return TRUE;
-
   elf_section_data (sec)->local_dynrel = NULL;
 
   htab = ppc_elf_hash_table (info);
@@ -5297,10 +5284,6 @@ ppc_elf_relocate_section (bfd *output_bf
 	    break;
 	  /* Fall thru.  */
 
-	  if ((input_section->flags & SEC_ALLOC) == 0)
-	    break;
-	  /* Fall thru.  */
-
 	  if ((info->shared
 	       && (h == NULL
 		   || ELF_ST_VISIBILITY (h->other) == STV_DEFAULT
@@ -5309,6 +5292,7 @@ ppc_elf_relocate_section (bfd *output_bf
 		   || !SYMBOL_CALLS_LOCAL (info, h)))
 	      || (ELIMINATE_COPY_RELOCS
 		  && !info->shared
+		  && (input_section->flags & SEC_ALLOC) != 0
 		  && h != NULL
 		  && h->dynindx != -1
 		  && !h->non_got_ref
Index: b/binutils-2.16.1/bfd/elf32-xtensa.c
===================================================================
--- a/binutils-2.16.1/bfd/elf32-xtensa.c
+++ b/binutils-2.16.1/bfd/elf32-xtensa.c
@@ -9341,9 +9341,9 @@ xtensa_get_property_section_name (asecti
       char *linkonce_kind = 0;
 
       if (strcmp (base_name, XTENSA_INSN_SEC_NAME) == 0) 
-	linkonce_kind = "x.";
+	linkonce_kind = "x";
       else if (strcmp (base_name, XTENSA_LIT_SEC_NAME) == 0) 
-	linkonce_kind = "p.";
+	linkonce_kind = "p";
       else if (strcmp (base_name, XTENSA_PROP_SEC_NAME) == 0)
 	linkonce_kind = "prop.";
       else
Index: b/binutils-2.16.1/bfd/elf64-alpha.c
===================================================================
--- a/binutils-2.16.1/bfd/elf64-alpha.c
+++ b/binutils-2.16.1/bfd/elf64-alpha.c
@@ -1302,7 +1302,9 @@ elf64_alpha_relax_with_lituse (info, sym
 	  /* Extract the displacement from the instruction, sign-extending
 	     it if necessary, then test whether it is within 16 or 32 bits
 	     displacement from GP.  */
-	  insn_disp = ((insn & 0xffff) ^ 0x8000) - 0x8000;
+	  insn_disp = insn & 0x0000ffff;
+	  if (insn_disp & 0x8000)
+	    insn_disp |= ~0xffff;  /* Negative: sign-extend.  */
 
 	  xdisp = disp + insn_disp;
 	  fits16 = (xdisp >= - (bfd_signed_vma) 0x8000 && xdisp < 0x8000);
@@ -1371,19 +1373,6 @@ elf64_alpha_relax_with_lituse (info, sym
 	    bfd_vma optdest, org;
 	    bfd_signed_vma odisp;
 
-	    /* For undefined weak symbols, we're mostly interested in getting
-	       rid of the got entry whenever possible, so optimize this to a
-	       use of the zero register.  */
-	    if (info->h && info->h->root.root.type == bfd_link_hash_undefweak)
-	      {
-		insn |= 31 << 16;
-		bfd_put_32 (info->abfd, (bfd_vma) insn,
-			    info->contents + urel->r_offset);
-
-		info->changed_contents = TRUE;
-		break;
-	      }
-
 	    /* If not zero, place to jump without needing pv.  */
 	    optdest = elf64_alpha_relax_opt_call (info, symval);
 	    org = (info->sec->output_section->vma
@@ -1487,11 +1476,9 @@ elf64_alpha_relax_with_lituse (info, sym
 		      info->contents + irel->r_offset);
 	  info->changed_contents = TRUE;
 	}
-
-      return TRUE;
     }
-  else
-    return elf64_alpha_relax_got_load (info, symval, irel, R_ALPHA_LITERAL);
+
+  return TRUE;
 }
 
 static bfd_vma
@@ -1598,25 +1585,7 @@ elf64_alpha_relax_got_load (info, symval
     return TRUE;
 
   if (r_type == R_ALPHA_LITERAL)
-    {
-      /* Look for nice constant addresses.  This includes the not-uncommon
-	 special case of 0 for undefweak symbols.  */
-      if ((info->h && info->h->root.root.type == bfd_link_hash_undefweak)
-	  || (!info->link_info->shared
-	      && (symval >= (bfd_vma)-0x8000 || symval < 0x8000)))
-	{
-	  disp = 0;
-	  insn = (OP_LDA << 26) | (insn & (31 << 21)) | (31 << 16);
-	  insn |= (symval & 0xffff);
-	  r_type = R_ALPHA_NONE;
-	}
-      else
-	{
-	  disp = symval - info->gp;
-	  insn = (OP_LDA << 26) | (insn & 0x03ff0000);
-	  r_type = R_ALPHA_GPREL16;
-	}
-    }
+    disp = symval - info->gp;
   else
     {
       bfd_vma dtp_base, tp_base;
@@ -1625,26 +1594,17 @@ elf64_alpha_relax_got_load (info, symval
       dtp_base = alpha_get_dtprel_base (info->link_info);
       tp_base = alpha_get_tprel_base (info->link_info);
       disp = symval - (r_type == R_ALPHA_GOTDTPREL ? dtp_base : tp_base);
-
-      insn = (OP_LDA << 26) | (insn & (31 << 21)) | (31 << 16);
-
-      switch (r_type)
-	{
-	case R_ALPHA_GOTDTPREL:
-	  r_type = R_ALPHA_DTPREL16;
-	  break;
-	case R_ALPHA_GOTTPREL:
-	  r_type = R_ALPHA_TPREL16;
-	  break;
-	default:
-	  BFD_ASSERT (0);
-	  return FALSE;
-	}
     }
 
   if (disp < -0x8000 || disp >= 0x8000)
     return TRUE;
 
+  /* Exchange LDQ for LDA.  In the case of the TLS relocs, we're loading
+     a constant, so force the base register to be $31.  */
+  if (r_type == R_ALPHA_LITERAL)
+    insn = (OP_LDA << 26) | (insn & 0x03ff0000);
+  else
+    insn = (OP_LDA << 26) | (insn & (31 << 21)) | (31 << 16);
   bfd_put_32 (info->abfd, (bfd_vma) insn, info->contents + irel->r_offset);
   info->changed_contents = TRUE;
 
@@ -1659,6 +1619,22 @@ elf64_alpha_relax_got_load (info, symval
     }
 
   /* Smash the existing GOT relocation for its 16-bit immediate pair.  */
+  switch (r_type)
+    {
+    case R_ALPHA_LITERAL:
+      r_type = R_ALPHA_GPREL16;
+      break;
+    case R_ALPHA_GOTDTPREL:
+      r_type = R_ALPHA_DTPREL16;
+      break;
+    case R_ALPHA_GOTTPREL:
+      r_type = R_ALPHA_TPREL16;
+      break;
+    default:
+      BFD_ASSERT (0);
+      return FALSE;
+    }
+
   irel->r_info = ELF64_R_INFO (ELF64_R_SYM (irel->r_info), r_type);
   info->changed_relocs = TRUE;
 
@@ -1995,8 +1971,7 @@ elf64_alpha_relax_section (abfd, sec, li
   *again = FALSE;
 
   if (link_info->relocatable
-      || ((sec->flags & (SEC_CODE | SEC_RELOC | SEC_ALLOC))
-	  != (SEC_CODE | SEC_RELOC | SEC_ALLOC))
+      || (sec->flags & SEC_RELOC) == 0
       || sec->reloc_count == 0)
     return TRUE;
 
@@ -2130,17 +2105,13 @@ elf64_alpha_relax_section (abfd, sec, li
 	    h = (struct alpha_elf_link_hash_entry *)h->root.root.u.i.link;
 
 	  /* If the symbol is undefined, we can't do anything with it.  */
-	  if (h->root.root.type == bfd_link_hash_undefined)
+	  if (h->root.root.type == bfd_link_hash_undefweak
+	      || h->root.root.type == bfd_link_hash_undefined)
 	    continue;
 
-	  /* If the symbol isn't defined in the current module,
-	     again we can't do anything.  */
-	  if (h->root.root.type == bfd_link_hash_undefweak)
-	    {
-	      info.tsec = bfd_abs_section_ptr;
-	      symval = 0;
-	    }
-	  else if (!h->root.def_regular)
+	  /* If the symbol isn't defined in the current module, again
+	     we can't do anything.  */
+	  if (!h->root.def_regular)
 	    {
 	      /* Except for TLSGD relocs, which can sometimes be
 		 relaxed to GOTTPREL relocs.  */
@@ -2991,15 +2962,6 @@ elf64_alpha_check_relocs (abfd, info, se
   if (info->relocatable)
     return TRUE;
 
-  /* Don't do anything special with non-loaded, non-alloced sections.
-     In particular, any relocs in such sections should not affect GOT
-     and PLT reference counting (ie. we don't allow them to create GOT
-     or PLT entries), there's no possibility or desire to optimize TLS
-     relocs, and there's not much point in propagating relocs to shared
-     libs that the dynamic linker won't relocate.  */
-  if ((sec->flags & SEC_ALLOC) == 0)
-    return TRUE;
-
   dynobj = elf_hash_table(info)->dynobj;
   if (dynobj == NULL)
     elf_hash_table(info)->dynobj = dynobj = abfd;
@@ -3085,7 +3047,7 @@ elf64_alpha_check_relocs (abfd, info, se
 
 	case R_ALPHA_REFLONG:
 	case R_ALPHA_REFQUAD:
-	  if (info->shared || maybe_dynamic)
+	  if ((info->shared && (sec->flags & SEC_ALLOC)) || maybe_dynamic)
 	    need = NEED_DYNREL;
 	  break;
 
@@ -3222,7 +3184,8 @@ elf64_alpha_check_relocs (abfd, info, se
 		  rent->srel = sreloc;
 		  rent->rtype = r_type;
 		  rent->count = 1;
-		  rent->reltext = (sec->flags & SEC_READONLY) != 0;
+		  rent->reltext = ((sec->flags & (SEC_READONLY | SEC_ALLOC))
+				   == (SEC_READONLY | SEC_ALLOC));
 
 		  rent->next = h->reloc_entries;
 		  h->reloc_entries = rent;
@@ -3235,7 +3198,8 @@ elf64_alpha_check_relocs (abfd, info, se
 	      /* If this is a shared library, and the section is to be
 		 loaded into memory, we need a RELATIVE reloc.  */
 	      sreloc->size += sizeof (Elf64_External_Rela);
-	      if (sec->flags & SEC_READONLY)
+	      if ((sec->flags & (SEC_READONLY | SEC_ALLOC))
+		  == (SEC_READONLY | SEC_ALLOC))
 		info->flags |= DF_TEXTREL;
 	    }
 	}
@@ -3897,13 +3861,8 @@ elf64_alpha_calc_dynrel_sizes (h, info)
   /* If the symbol is dynamic, we'll need all the relocations in their
      natural form.  If this is a shared object, and it has been forced
      local, we'll need the same number of RELATIVE relocations.  */
-  dynamic = alpha_elf_dynamic_symbol_p (&h->root, info);
 
-  /* If the symbol is a hidden undefined weak, then we never have any
-     relocations.  Avoid the loop which may want to add RELATIVE relocs
-     based on info->shared.  */
-  if (h->root.root.type == bfd_link_hash_undefweak && !dynamic)
-    return TRUE;
+  dynamic = alpha_elf_dynamic_symbol_p (&h->root, info);
 
   for (relent = h->reloc_entries; relent; relent = relent->next)
     {
@@ -3992,13 +3951,8 @@ elf64_alpha_size_rela_got_1 (h, info)
   /* If the symbol is dynamic, we'll need all the relocations in their
      natural form.  If this is a shared object, and it has been forced
      local, we'll need the same number of RELATIVE relocations.  */
-  dynamic = alpha_elf_dynamic_symbol_p (&h->root, info);
 
-  /* If the symbol is a hidden undefined weak, then we never have any
-     relocations.  Avoid the loop which may want to add RELATIVE relocs
-     based on info->shared.  */
-  if (h->root.root.type == bfd_link_hash_undefweak && !dynamic)
-    return TRUE;
+  dynamic = alpha_elf_dynamic_symbol_p (&h->root, info);
 
   entries = 0;
   for (gotent = h->got_entries; gotent ; gotent = gotent->next)
@@ -4274,6 +4228,7 @@ elf64_alpha_relocate_section (output_bfd
   bfd_vma gp, tp_base, dtp_base;
   struct alpha_elf_got_entry **local_got_entries;
   bfd_boolean ret_val;
+  const char *section_name;
 
   /* Handle relocatable links with a smaller loop.  */
   if (info->relocatable)
@@ -4293,17 +4248,11 @@ elf64_alpha_relocate_section (output_bfd
   else
     srelgot = NULL;
 
-  if (input_section->flags & SEC_ALLOC)
-    {
-      const char *section_name;
-      section_name = (bfd_elf_string_from_elf_section
-		      (input_bfd, elf_elfheader(input_bfd)->e_shstrndx,
-		       elf_section_data(input_section)->rel_hdr.sh_name));
-      BFD_ASSERT(section_name != NULL);
-      srel = bfd_get_section_by_name (dynobj, section_name);
-    }
-  else
-    srel = NULL;
+  section_name = (bfd_elf_string_from_elf_section
+		  (input_bfd, elf_elfheader(input_bfd)->e_shstrndx,
+		   elf_section_data(input_section)->rel_hdr.sh_name));
+  BFD_ASSERT(section_name != NULL);
+  srel = bfd_get_section_by_name (dynobj, section_name);
 
   /* Find the gp value for this input bfd.  */
   gotobj = alpha_elf_tdata (input_bfd)->gotobj;
@@ -4497,7 +4446,7 @@ elf64_alpha_relocate_section (output_bfd
 	      /* If the symbol has been forced local, output a
 		 RELATIVE reloc, otherwise it will be handled in
 		 finish_dynamic_symbol.  */
-	      if (info->shared && !dynamic_symbol_p && !undef_weak_ref)
+	      if (info->shared && !dynamic_symbol_p)
 		elf64_alpha_emit_dynrel (output_bfd, info, sgot, srelgot,
 					 gotent->got_offset, 0,
 					 R_ALPHA_RELATIVE, value);
@@ -4669,8 +4618,7 @@ elf64_alpha_relocate_section (output_bfd
 	      }
 	    else if (info->shared
 		     && r_symndx != 0
-		     && (input_section->flags & SEC_ALLOC)
-		     && !undef_weak_ref)
+		     && (input_section->flags & SEC_ALLOC))
 	      {
 		if (r_type == R_ALPHA_REFLONG)
 		  {
@@ -4687,10 +4635,9 @@ elf64_alpha_relocate_section (output_bfd
 	    else
 	      goto default_reloc;
 
-	    if (input_section->flags & SEC_ALLOC)
-	      elf64_alpha_emit_dynrel (output_bfd, info, input_section,
-				       srel, rel->r_offset, dynindx,
-				       dyntype, dynaddend);
+	    elf64_alpha_emit_dynrel (output_bfd, info, input_section,
+				     srel, rel->r_offset, dynindx,
+				     dyntype, dynaddend);
 	  }
 	  goto default_reloc;
 
@@ -4704,14 +4651,6 @@ elf64_alpha_relocate_section (output_bfd
                  input_bfd, h->root.root.root.string);
               ret_val = FALSE;
             }
-	  else if ((info->shared || info->pie) && undef_weak_ref)
-            {
-              (*_bfd_error_handler)
-                (_("%B: pc-relative relocation against undefined weak symbol %s"),
-                 input_bfd, h->root.root.root.string);
-              ret_val = FALSE;
-            }
-
 
 	  /* ??? .eh_frame references to discarded sections will be smashed
 	     to relocations against SHN_UNDEF.  The .eh_frame format allows
Index: b/binutils-2.16.1/bfd/elf64-ppc.c
===================================================================
--- a/binutils-2.16.1/bfd/elf64-ppc.c
+++ b/binutils-2.16.1/bfd/elf64-ppc.c
@@ -2370,14 +2370,9 @@ struct ppc64_elf_obj_tdata
   asection *got;
   asection *relgot;
 
-  union {
-    /* Used during garbage collection.  We attach global symbols defined
-       on removed .opd entries to this section so that the sym is removed.  */
-    asection *deleted_section;
-
-    /* Used when adding symbols.  */
-    bfd_boolean has_dotsym;
-  } u;
+  /* Used during garbage collection.  We attach global symbols defined
+     on removed .opd entries to this section so that the sym is removed.  */
+  asection *deleted_section;
 
   /* TLS local dynamic got entry handling.  Suppose for multiple GOT
      sections means we potentially need one of these for each input bfd.  */
@@ -2692,7 +2687,7 @@ ppc64_elf_get_synthetic_symtab (bfd *abf
 
   syms = bfd_malloc ((symcount + 1) * sizeof (*syms));
   if (syms == NULL)
-    return -1;
+    return 0;
 
   if (!relocatable && static_count != 0 && dyn_count != 0)
     {
@@ -2714,7 +2709,7 @@ ppc64_elf_get_synthetic_symtab (bfd *abf
       long j;
       /* Trim duplicate syms, since we may have merged the normal and
 	 dynamic symbols.  Actually, we only care about syms that have
-	 different values, so trim any with the same value.  */
+	 different values, so trim any with the same value.  */
       for (i = 1, j = 1; i < symcount; ++i)
 	if (syms[i - 1]->value + syms[i - 1]->section->vma
 	    != syms[i]->value + syms[i]->section->vma)
@@ -2763,14 +2758,10 @@ ppc64_elf_get_synthetic_symtab (bfd *abf
 
       slurp_relocs = get_elf_backend_data (abfd)->s->slurp_reloc_table;
       relcount = (opd->flags & SEC_RELOC) ? opd->reloc_count : 0;
-      if (relcount == 0)
-	goto done;
 
-      if (!(*slurp_relocs) (abfd, opd, static_syms, FALSE))
-	{
-	  count = -1;
-	  goto done;
-	}
+      if (! relcount
+	  || ! (*slurp_relocs) (abfd, opd, static_syms, FALSE))
+	goto done;
 
       size = 0;
       for (i = secsymend, r = opd->relocation; i < opdsymend; ++i)
@@ -2803,7 +2794,7 @@ ppc64_elf_get_synthetic_symtab (bfd *abf
       s = *ret = bfd_malloc (size);
       if (s == NULL)
 	{
-	  count = -1;
+	  count = 0;
 	  goto done;
 	}
 
@@ -2856,7 +2847,6 @@ ppc64_elf_get_synthetic_symtab (bfd *abf
 	    free_contents_and_exit:
 	      free (contents);
 	    }
-	  count = -1;
 	  goto done;
 	}
 
@@ -2876,7 +2866,10 @@ ppc64_elf_get_synthetic_symtab (bfd *abf
 
       s = *ret = bfd_malloc (size);
       if (s == NULL)
-	goto free_contents_and_exit;
+	{
+	  count = 0;
+	  goto free_contents_and_exit;
+	}
 
       names = (char *) (s + count);
 
@@ -3533,26 +3526,26 @@ ppc_stub_name (const asection *input_sec
     {
       len = 8 + 1 + strlen (h->elf.root.root.string) + 1 + 8 + 1;
       stub_name = bfd_malloc (len);
-      if (stub_name == NULL)
-	return stub_name;
-
-      sprintf (stub_name, "%08x.%s+%x",
-	       input_section->id & 0xffffffff,
-	       h->elf.root.root.string,
-	       (int) rel->r_addend & 0xffffffff);
+      if (stub_name != NULL)
+	{
+	  sprintf (stub_name, "%08x.%s+%x",
+		   input_section->id & 0xffffffff,
+		   h->elf.root.root.string,
+		   (int) rel->r_addend & 0xffffffff);
+	}
     }
   else
     {
       len = 8 + 1 + 8 + 1 + 8 + 1 + 8 + 1;
       stub_name = bfd_malloc (len);
-      if (stub_name == NULL)
-	return stub_name;
-
-      sprintf (stub_name, "%08x.%x:%x+%x",
-	       input_section->id & 0xffffffff,
-	       sym_sec->id & 0xffffffff,
-	       (int) ELF64_R_SYM (rel->r_info) & 0xffffffff,
-	       (int) rel->r_addend & 0xffffffff);
+      if (stub_name != NULL)
+	{
+	  sprintf (stub_name, "%08x.%x:%x+%x",
+		   input_section->id & 0xffffffff,
+		   sym_sec->id & 0xffffffff,
+		   (int) ELF64_R_SYM (rel->r_info) & 0xffffffff,
+		   (int) rel->r_addend & 0xffffffff);
+	}
     }
   if (stub_name[len - 2] == '+' && stub_name[len - 1] == '0')
     stub_name[len - 2] = 0;
@@ -4003,10 +3996,10 @@ make_fdh (struct bfd_link_info *info,
    function type.  */
 
 static bfd_boolean
-ppc64_elf_add_symbol_hook (bfd *ibfd,
+ppc64_elf_add_symbol_hook (bfd *ibfd ATTRIBUTE_UNUSED,
 			   struct bfd_link_info *info ATTRIBUTE_UNUSED,
 			   Elf_Internal_Sym *isym,
-			   const char **name,
+			   const char **name ATTRIBUTE_UNUSED,
 			   flagword *flags ATTRIBUTE_UNUSED,
 			   asection **sec,
 			   bfd_vma *value ATTRIBUTE_UNUSED)
@@ -4014,13 +4007,6 @@ ppc64_elf_add_symbol_hook (bfd *ibfd,
   if (*sec != NULL
       && strcmp (bfd_get_section_name (ibfd, *sec), ".opd") == 0)
     isym->st_info = ELF_ST_INFO (ELF_ST_BIND (isym->st_info), STT_FUNC);
-
-  if ((*name)[0] == '.'
-      && ELF_ST_BIND (isym->st_info) == STB_GLOBAL
-      && ELF_ST_TYPE (isym->st_info) < STT_SECTION
-      && is_ppc64_elf_target (ibfd->xvec))
-    ppc64_elf_tdata (ibfd)->u.has_dotsym = 1;
-
   return TRUE;
 }
 
@@ -4111,7 +4097,9 @@ add_symbol_adjust (struct elf_link_hash_
       else
 	fdh->elf.ref_regular = 1;
     }
-  else if (fdh != NULL)
+  else if (fdh != NULL
+	   && (fdh->elf.root.type == bfd_link_hash_defined
+	       || fdh->elf.root.type == bfd_link_hash_defweak))
     {
       unsigned entry_vis = ELF_ST_VISIBILITY (eh->elf.other) - 1;
       unsigned descr_vis = ELF_ST_VISIBILITY (fdh->elf.other) - 1;
@@ -4120,9 +4108,7 @@ add_symbol_adjust (struct elf_link_hash_
       else if (entry_vis > descr_vis)
 	eh->elf.other += descr_vis - entry_vis;
 
-      if ((fdh->elf.root.type == bfd_link_hash_defined
-	   || fdh->elf.root.type == bfd_link_hash_defweak)
-	  && eh->elf.root.type == bfd_link_hash_undefined)
+      if (eh->elf.root.type == bfd_link_hash_undefined)
 	{
 	  eh->elf.root.type = bfd_link_hash_undefweak;
 	  eh->was_undefined = 1;
@@ -4134,18 +4120,12 @@ add_symbol_adjust (struct elf_link_hash_
 }
 
 static bfd_boolean
-ppc64_elf_check_directives (bfd *abfd, struct bfd_link_info *info)
+ppc64_elf_check_directives (bfd *abfd ATTRIBUTE_UNUSED,
+			    struct bfd_link_info *info)
 {
   struct ppc_link_hash_table *htab;
   struct add_symbol_adjust_data data;
 
-  if (!is_ppc64_elf_target (abfd->xvec))
-    return TRUE;
-
-  if (!ppc64_elf_tdata (abfd)->u.has_dotsym)
-    return TRUE;
-  ppc64_elf_tdata (abfd)->u.deleted_section = NULL;
-
   htab = ppc_hash_table (info);
   if (!is_ppc64_elf_target (htab->elf.root.creator))
     return TRUE;
@@ -4706,8 +4686,9 @@ ppc64_elf_check_relocs (bfd *abfd, struc
 
 		      sreloc = bfd_make_section (dynobj, name);
 		      flags = (SEC_HAS_CONTENTS | SEC_READONLY
-			       | SEC_IN_MEMORY | SEC_LINKER_CREATED
-			       | SEC_ALLOC | SEC_LOAD);
+			       | SEC_IN_MEMORY | SEC_LINKER_CREATED);
+		      if ((sec->flags & SEC_ALLOC) != 0)
+			flags |= SEC_ALLOC | SEC_LOAD;
 		      if (sreloc == NULL
 			  || ! bfd_set_section_flags (dynobj, sreloc, flags)
 			  || ! bfd_set_section_alignment (dynobj, sreloc, 3))
@@ -4786,7 +4767,7 @@ opd_entry_value (asection *opd_sec,
 
       if (!bfd_get_section_contents (opd_bfd, opd_sec, &val, offset, 8))
 	return (bfd_vma) -1;
-
+
       if (code_sec != NULL)
 	{
 	  asection *sec, *likely = NULL;
@@ -5015,7 +4996,7 @@ ppc64_elf_gc_mark_hook (asection *sec,
 	  if (!rsec->gc_mark)
 	    _bfd_elf_gc_mark (info, rsec, ppc64_elf_gc_mark_hook);
 
-	  rsec = opd_sym_section[(sym->st_value + rel->r_addend) / 8];
+	  rsec = opd_sym_section[sym->st_value / 8];
 	}
     }
 
@@ -5464,25 +5445,15 @@ func_desc_adjust (struct elf_link_hash_e
     }
 
   /* Fake function descriptors are made undefweak.  If the function
-     code symbol is strong undefined, make the fake sym the same.
-     If the function code symbol is defined, then force the fake
-     descriptor local;  We can't support overriding of symbols in a
-     shared library on a fake descriptor.  */
+     code symbol is strong undefined, make the fake sym the same.  */
 
   if (fdh != NULL
       && fdh->fake
-      && fdh->elf.root.type == bfd_link_hash_undefweak)
+      && fdh->elf.root.type == bfd_link_hash_undefweak
+      && fh->elf.root.type == bfd_link_hash_undefined)
     {
-      if (fh->elf.root.type == bfd_link_hash_undefined)
-	{
-	  fdh->elf.root.type = bfd_link_hash_undefined;
-	  bfd_link_add_undef (&htab->elf.root, &fdh->elf.root);
-	}
-      else if (fh->elf.root.type == bfd_link_hash_defined
-	       || fh->elf.root.type == bfd_link_hash_defweak)
-	{
-	  _bfd_elf_link_hash_hide_symbol (info, &fdh->elf, TRUE);
-	}
+      fdh->elf.root.type = bfd_link_hash_undefined;
+      bfd_link_add_undef (&htab->elf.root, &fdh->elf.root);
     }
 
   if (fdh != NULL
@@ -5959,13 +5930,13 @@ adjust_opd_syms (struct elf_link_hash_en
       if (adjust == -1)
 	{
 	  /* This entry has been deleted.  */
-	  asection *dsec = ppc64_elf_tdata (sym_sec->owner)->u.deleted_section;
+	  asection *dsec = ppc64_elf_tdata (sym_sec->owner)->deleted_section;
 	  if (dsec == NULL)
 	    {
 	      for (dsec = sym_sec->owner->sections; dsec; dsec = dsec->next)
 		if (elf_discarded_section (dsec))
 		  {
-		    ppc64_elf_tdata (sym_sec->owner)->u.deleted_section = dsec;
+		    ppc64_elf_tdata (sym_sec->owner)->deleted_section = dsec;
 		    break;
 		  }
 	    }
@@ -5979,125 +5950,6 @@ adjust_opd_syms (struct elf_link_hash_en
   return TRUE;
 }
 
-/* Handles decrementing dynamic reloc counts for the reloc specified by
-   R_INFO in section SEC.  If LOCAL_SYMS is NULL, then H and SYM_SEC
-   have already been determined.  */
-
-static bfd_boolean
-dec_dynrel_count (bfd_vma r_info,
-		  asection *sec,
-		  struct bfd_link_info *info,
-		  Elf_Internal_Sym **local_syms,
-		  struct elf_link_hash_entry *h,
-		  asection *sym_sec)
-{
-  enum elf_ppc64_reloc_type r_type;
-  struct ppc_dyn_relocs *p;
-  struct ppc_dyn_relocs **pp;
-
-  /* Can this reloc be dynamic?  This switch, and later tests here
-     should be kept in sync with the code in check_relocs.  */
-  r_type = ELF64_R_TYPE (r_info);
-  switch (r_type)
-    {
-    default:
-      return TRUE;
-
-    case R_PPC64_TPREL16:
-    case R_PPC64_TPREL16_LO:
-    case R_PPC64_TPREL16_HI:
-    case R_PPC64_TPREL16_HA:
-    case R_PPC64_TPREL16_DS:
-    case R_PPC64_TPREL16_LO_DS:
-    case R_PPC64_TPREL16_HIGHER:
-    case R_PPC64_TPREL16_HIGHERA:
-    case R_PPC64_TPREL16_HIGHEST:
-    case R_PPC64_TPREL16_HIGHESTA:
-      if (!info->shared)
-	return TRUE;
-
-    case R_PPC64_TPREL64:
-    case R_PPC64_DTPMOD64:
-    case R_PPC64_DTPREL64:
-    case R_PPC64_ADDR64:
-    case R_PPC64_REL30:
-    case R_PPC64_REL32:
-    case R_PPC64_REL64:
-    case R_PPC64_ADDR14:
-    case R_PPC64_ADDR14_BRNTAKEN:
-    case R_PPC64_ADDR14_BRTAKEN:
-    case R_PPC64_ADDR16:
-    case R_PPC64_ADDR16_DS:
-    case R_PPC64_ADDR16_HA:
-    case R_PPC64_ADDR16_HI:
-    case R_PPC64_ADDR16_HIGHER:
-    case R_PPC64_ADDR16_HIGHERA:
-    case R_PPC64_ADDR16_HIGHEST:
-    case R_PPC64_ADDR16_HIGHESTA:
-    case R_PPC64_ADDR16_LO:
-    case R_PPC64_ADDR16_LO_DS:
-    case R_PPC64_ADDR24:
-    case R_PPC64_ADDR32:
-    case R_PPC64_UADDR16:
-    case R_PPC64_UADDR32:
-    case R_PPC64_UADDR64:
-    case R_PPC64_TOC:
-      break;
-    }
-
-  if (local_syms != NULL)
-    {
-      unsigned long r_symndx;
-      Elf_Internal_Sym *sym;
-      bfd *ibfd = sec->owner;
-
-      r_symndx = ELF64_R_SYM (r_info);
-      if (!get_sym_h (&h, &sym, &sym_sec, NULL, local_syms, r_symndx, ibfd))
-	return FALSE;
-    }
-
-  if ((info->shared
-       && (MUST_BE_DYN_RELOC (r_type)
-	   || (h != NULL
-	       && (!info->symbolic
-		   || h->root.type == bfd_link_hash_defweak
-		   || !h->def_regular))))
-      || (ELIMINATE_COPY_RELOCS
-	  && !info->shared
-	  && h != NULL
-	  && (h->root.type == bfd_link_hash_defweak
-	      || !h->def_regular)))
-    ;
-  else
-    return TRUE;
-
-  if (h != NULL)
-    pp = &((struct ppc_link_hash_entry *) h)->dyn_relocs;
-  else if (sym_sec != NULL)
-    pp = (struct ppc_dyn_relocs **) &elf_section_data (sym_sec)->local_dynrel;
-  else
-    pp = (struct ppc_dyn_relocs **) &elf_section_data (sec)->local_dynrel;
-
-  while ((p = *pp) != NULL)
-    {
-      if (p->sec == sec)
-	{
-	  if (!MUST_BE_DYN_RELOC (r_type))
-	    p->pc_count -= 1;
-	  p->count -= 1;
-	  if (p->count == 0)
-	    *pp = p->next;
-	  return TRUE;
-	}
-      pp = &p->next;
-    }
-
-  (*_bfd_error_handler) (_("dynreloc miscount for %B, section %A"),
-			   sec->owner, sec);
-  bfd_set_error (bfd_error_bad_value);
-  return FALSE;
-}
-
 /* Remove unused Official Procedure Descriptor entries.  Currently we
    only remove those associated with functions in discarded link-once
    sections, or weakly defined functions that have been overridden.  It
@@ -6106,7 +5958,6 @@ dec_dynrel_count (bfd_vma r_info,
 
 bfd_boolean
 ppc64_elf_edit_opd (bfd *obfd, struct bfd_link_info *info,
-		    bfd_boolean no_opd_opt,
 		    bfd_boolean non_overlapping)
 {
   bfd *ibfd;
@@ -6127,7 +5978,7 @@ ppc64_elf_edit_opd (bfd *obfd, struct bf
       bfd_size_type cnt_16b = 0;
 
       sec = bfd_get_section_by_name (ibfd, ".opd");
-      if (sec == NULL || sec->size == 0)
+      if (sec == NULL)
 	continue;
 
       amt = sec->size * sizeof (long) / 8;
@@ -6136,16 +5987,11 @@ ppc64_elf_edit_opd (bfd *obfd, struct bf
 	{
 	  /* check_relocs hasn't been called.  Must be a ld -r link
 	     or --just-symbols object.   */
-	  opd_adjust = bfd_alloc (obfd, amt);
-	  if (opd_adjust == NULL)
-	    return FALSE;
+	  opd_adjust = bfd_zalloc (obfd, amt);
 	  ppc64_elf_section_data (sec)->opd.adjust = opd_adjust;
 	}
       memset (opd_adjust, 0, amt);
 
-      if (no_opd_opt)
-	continue;
-
       if (sec->sec_info_type == ELF_INFO_TYPE_JUST_SYMS)
 	continue;
 
@@ -6314,16 +6160,18 @@ ppc64_elf_edit_opd (bfd *obfd, struct bf
 
 	  elf_section_data (sec)->relocs = relstart;
 
+	  wptr = sec->contents;
+	  rptr = sec->contents;
 	  new_contents = sec->contents;
+
 	  if (add_aux_fields)
 	    {
 	      new_contents = bfd_malloc (sec->size + cnt_16b * 8);
 	      if (new_contents == NULL)
 		return FALSE;
 	      need_pad = FALSE;
+	      wptr = new_contents;
 	    }
-	  wptr = new_contents;
-	  rptr = sec->contents;
 
 	  write_rel = relstart;
 	  skip = FALSE;
@@ -6422,9 +6270,33 @@ ppc64_elf_edit_opd (bfd *obfd, struct bf
 
 	      if (skip)
 		{
-		  if (!dec_dynrel_count (rel->r_info, sec, info,
-					 NULL, h, sym_sec))
-		    goto error_ret;
+		  BFD_ASSERT (MUST_BE_DYN_RELOC (ELF64_R_TYPE (rel->r_info)));
+		  if (info->shared)
+		    {
+		      /* We won't be needing dynamic relocs here.  */
+		      struct ppc_dyn_relocs **pp;
+		      struct ppc_dyn_relocs *p;
+
+		      if (h != NULL)
+			pp = &((struct ppc_link_hash_entry *) h)->dyn_relocs;
+		      else if (sym_sec != NULL)
+			pp = ((struct ppc_dyn_relocs **)
+			      &elf_section_data (sym_sec)->local_dynrel);
+		      else
+			pp = ((struct ppc_dyn_relocs **)
+			      &elf_section_data (sec)->local_dynrel);
+		      while ((p = *pp) != NULL)
+			{
+			  if (p->sec == sec)
+			    {
+			      p->count -= 1;
+			      if (p->count == 0)
+				*pp = p->next;
+			      break;
+			    }
+			  pp = &p->next;
+			}
+		    }
 		}
 	      else
 		{
@@ -6795,20 +6667,29 @@ ppc64_elf_tls_optimize (bfd *obfd ATTRIB
 			  ent->got.refcount -= 1;
 		      }
 		  }
-		else
+		else if (h != NULL)
 		  {
-		    /* If we got rid of a DTPMOD/DTPREL reloc pair then
-		       we'll lose one or two dyn relocs.  */
-		    if (!dec_dynrel_count (rel->r_info, sec, info,
-					   NULL, h, sym_sec))
-		      return FALSE;
-
-		    if (tls_set == (TLS_EXPLICIT | TLS_GD))
-		      {
-			if (!dec_dynrel_count ((rel + 1)->r_info, sec, info,
-					       NULL, h, sym_sec))
-			  return FALSE;
-		      }
+		    struct ppc_link_hash_entry * eh;
+		    struct ppc_dyn_relocs **pp;
+		    struct ppc_dyn_relocs *p;
+
+		    /* Adjust dynamic relocs.  */
+		    eh = (struct ppc_link_hash_entry *) h;
+		    for (pp = &eh->dyn_relocs;
+			 (p = *pp) != NULL;
+			 pp = &p->next)
+		      if (p->sec == sec)
+			{
+			  /* If we got rid of a DTPMOD/DTPREL reloc
+			     pair then we'll lose one or two dyn
+			     relocs.  */
+			  if (tls_set == (TLS_EXPLICIT | TLS_GD))
+			    p->count -= 1;
+			  p->count -= 1;
+			  if (p->count == 0)
+			    *pp = p->next;
+			  break;
+			}
 		  }
 
 		*tls_mask |= tls_set;
@@ -7174,10 +7055,6 @@ ppc64_elf_edit_toc (bfd *obfd ATTRIBUTE_
 		    wrel->r_addend = rel->r_addend;
 		    ++wrel;
 		  }
-		else if (!dec_dynrel_count (rel->r_info, toc, info,
-					    &local_syms, NULL, NULL))
-		  goto error_ret;
-
 	      toc->reloc_count = wrel - relstart;
 	      sz = elf_section_data (toc)->rel_hdr.sh_entsize;
 	      elf_section_data (toc)->rel_hdr.sh_size = toc->reloc_count * sz;
Index: b/binutils-2.16.1/bfd/elf64-ppc.h
===================================================================
--- a/binutils-2.16.1/bfd/elf64-ppc.h
+++ b/binutils-2.16.1/bfd/elf64-ppc.h
@@ -20,7 +20,7 @@ Foundation, Inc., 59 Temple Place - Suit
 void ppc64_elf_init_stub_bfd
   (bfd *, struct bfd_link_info *);
 bfd_boolean ppc64_elf_edit_opd
-  (bfd *, struct bfd_link_info *, bfd_boolean, bfd_boolean);
+  (bfd *, struct bfd_link_info *, bfd_boolean);
 asection *ppc64_elf_tls_setup
   (bfd *, struct bfd_link_info *);
 bfd_boolean ppc64_elf_tls_optimize
Index: b/binutils-2.16.1/bfd/elf.c
===================================================================
--- a/binutils-2.16.1/bfd/elf.c
+++ b/binutils-2.16.1/bfd/elf.c
@@ -443,11 +443,8 @@ group_signature (bfd *abfd, Elf_Internal
   Elf_External_Sym_Shndx eshndx;
   Elf_Internal_Sym isym;
 
-  /* First we need to ensure the symbol table is available.  Make sure
-     that it is a symbol table section.  */
-  hdr = elf_elfsections (abfd) [ghdr->sh_link];
-  if (hdr->sh_type != SHT_SYMTAB
-      || ! bfd_section_from_shdr (abfd, ghdr->sh_link))
+  /* First we need to ensure the symbol table is available.  */
+  if (! bfd_section_from_shdr (abfd, ghdr->sh_link))
     return NULL;
 
   /* Go read the symbol.  */
@@ -1736,9 +1733,6 @@ bfd_section_from_shdr (bfd *abfd, unsign
     case SHT_DYNAMIC:	/* Dynamic linking information.  */
       if (! _bfd_elf_make_section_from_shdr (abfd, hdr, name))
 	return FALSE;
-      if (hdr->sh_link > elf_numsections (abfd)
-	  || elf_elfsections (abfd)[hdr->sh_link] == NULL)
-	return FALSE;
       if (elf_elfsections (abfd)[hdr->sh_link]->sh_type != SHT_STRTAB)
 	{
 	  Elf_Internal_Shdr *dynsymhdr;
Index: b/binutils-2.16.1/bfd/elfcode.h
===================================================================
--- a/binutils-2.16.1/bfd/elfcode.h
+++ b/binutils-2.16.1/bfd/elfcode.h
@@ -33,7 +33,7 @@ Foundation, Inc., 59 Temple Place - Suit
 /* Problems and other issues to resolve.
 
    (1)	BFD expects there to be some fixed number of "sections" in
-	the object file.  I.E. there is a "section_count" variable in the
+        the object file.  I.E. there is a "section_count" variable in the
 	bfd structure which contains the number of sections.  However, ELF
 	supports multiple "views" of a file.  In particular, with current
 	implementations, executable files typically have two tables, a
@@ -612,13 +612,8 @@ elf_object_p (bfd *abfd)
 
   if (i_ehdrp->e_shoff != 0)
     {
-      bfd_signed_vma where = i_ehdrp->e_shoff;
-
-      if (where != (file_ptr) where)
-	goto got_wrong_format_error;
-
       /* Seek to the section header table in the file.  */
-      if (bfd_seek (abfd, (file_ptr) where, SEEK_SET) != 0)
+      if (bfd_seek (abfd, (file_ptr) i_ehdrp->e_shoff, SEEK_SET) != 0)
 	goto got_no_match;
 
       /* Read the first section header at index 0, and convert to internal
@@ -630,46 +625,11 @@ elf_object_p (bfd *abfd)
       /* If the section count is zero, the actual count is in the first
 	 section header.  */
       if (i_ehdrp->e_shnum == SHN_UNDEF)
-	{
-	  i_ehdrp->e_shnum = i_shdr.sh_size;
-	  if (i_ehdrp->e_shnum != i_shdr.sh_size
-	      || i_ehdrp->e_shnum == 0)
-	    goto got_wrong_format_error;
-	}
+	i_ehdrp->e_shnum = i_shdr.sh_size;
 
       /* And similarly for the string table index.  */
       if (i_ehdrp->e_shstrndx == SHN_XINDEX)
-	{
-	  i_ehdrp->e_shstrndx = i_shdr.sh_link;
-	  if (i_ehdrp->e_shstrndx != i_shdr.sh_link)
-	    goto got_wrong_format_error;
-	}
-
-      /* Sanity check that we can read all of the section headers.
-	 It ought to be good enough to just read the last one.  */
-      if (i_ehdrp->e_shnum != 1)
-	{
-	  /* Check that we don't have a totally silly number of sections.  */
-	  if (i_ehdrp->e_shnum > (unsigned int) -1 / sizeof (x_shdr)
-	      || i_ehdrp->e_shnum > (unsigned int) -1 / sizeof (i_shdr))
-	    goto got_wrong_format_error;
-
-	  where += (i_ehdrp->e_shnum - 1) * sizeof (x_shdr);
-	  if (where != (file_ptr) where)
-	    goto got_wrong_format_error;
-	  if ((bfd_size_type) where <= i_ehdrp->e_shoff)
-	    goto got_wrong_format_error;
-
-	  if (bfd_seek (abfd, (file_ptr) where, SEEK_SET) != 0)
-	    goto got_no_match;
-	  if (bfd_bread (&x_shdr, sizeof x_shdr, abfd) != sizeof (x_shdr))
-	    goto got_no_match;
-
-	  /* Back to where we were.  */
-	  where = i_ehdrp->e_shoff + sizeof (x_shdr);
-	  if (bfd_seek (abfd, (file_ptr) where, SEEK_SET) != 0)
-	    goto got_no_match;
-	}
+	i_ehdrp->e_shstrndx = i_shdr.sh_link;
     }
 
   /* Allocate space for a copy of the section header table in
@@ -713,20 +673,6 @@ elf_object_p (bfd *abfd)
 	    goto got_no_match;
 	  elf_swap_shdr_in (abfd, &x_shdr, i_shdrp + shindex);
 
-	  /* Sanity check sh_link and sh_info.  */
-	  if (i_shdrp[shindex].sh_link >= num_sec
-	      || (i_shdrp[shindex].sh_link >= SHN_LORESERVE
-		  && i_shdrp[shindex].sh_link <= SHN_HIRESERVE))
-	    goto got_wrong_format_error;
-
-	  if (((i_shdrp[shindex].sh_flags & SHF_INFO_LINK)
-	       || i_shdrp[shindex].sh_type == SHT_RELA
-	       || i_shdrp[shindex].sh_type == SHT_REL)
-	      && (i_shdrp[shindex].sh_info >= num_sec
-		  || (i_shdrp[shindex].sh_info >= SHN_LORESERVE
-		      && i_shdrp[shindex].sh_info <= SHN_HIRESERVE)))
-	    goto got_wrong_format_error;
-
 	  /* If the section is loaded, but not page aligned, clear
 	     D_PAGED.  */
 	  if (i_shdrp[shindex].sh_size != 0
@@ -739,17 +685,6 @@ elf_object_p (bfd *abfd)
 	}
     }
 
-  /* A further sanity check.  */
-  if (i_ehdrp->e_shnum != 0)
-    {
-      if (i_ehdrp->e_shstrndx >= elf_numsections (abfd)
-	  || (i_ehdrp->e_shstrndx >= SHN_LORESERVE
-	      && i_ehdrp->e_shstrndx <= SHN_HIRESERVE))
-	goto got_wrong_format_error;
-    }
-  else if (i_ehdrp->e_shstrndx != 0)
-    goto got_wrong_format_error;
-
   /* Read in the program headers.  */
   if (i_ehdrp->e_phnum == 0)
     elf_tdata (abfd)->phdr = NULL;
@@ -1107,7 +1042,7 @@ elf_slurp_symbol_table (bfd *abfd, asymb
 	     symcount);
 
 	  /* Slurp in the symbols without the version information,
-	     since that is more helpful than just quitting.  */
+             since that is more helpful than just quitting.  */
 	  verhdr = NULL;
 	}
 
@@ -1172,7 +1107,7 @@ elf_slurp_symbol_table (bfd *abfd, asymb
 	    sym->symbol.section = bfd_abs_section_ptr;
 
 	  /* If this is a relocatable file, then the symbol value is
-	     already section relative.  */
+             already section relative.  */
 	  if ((abfd->flags & (EXEC_P | DYNAMIC)) != 0)
 	    sym->symbol.value -= sym->symbol.section->vma;
 
Index: b/binutils-2.16.1/bfd/elflink.c
===================================================================
--- a/binutils-2.16.1/bfd/elflink.c
+++ b/binutils-2.16.1/bfd/elflink.c
@@ -1075,6 +1075,13 @@ _bfd_elf_merge_symbol (bfd *abfd,
       || h->root.type == bfd_link_hash_undefined)
     *size_change_ok = TRUE;
 
+  /* Skip weak definitions of symbols that are already defined.  */
+  if (newdef && olddef && newweak && !oldweak)
+    {
+      *skip = TRUE;
+      return TRUE;
+    }
+
   /* NEWDYNCOMMON and OLDDYNCOMMON indicate whether the new or old
      symbol, respectively, appears to be a common symbol in a dynamic
      object.  If a symbol appears in an uninitialized section, and is
@@ -2932,11 +2939,8 @@ elf_smash_syms (struct elf_link_hash_ent
   if (h->ref_regular)
     abort ();
 
-  /* Set sym back to newly created state, but keep undef.next if it is
-     being used as a list pointer.  */
+  /* Set sym back to newly created state, but keep undefs list pointer.  */
   bh = h->root.u.undef.next;
-  if (bh == &h->root)
-    bh = NULL;
   if (bh != NULL || inf->htab->root.undefs_tail == &h->root)
     inf->twiddled = TRUE;
   (*inf->htab->root.table.newfunc) (&h->root.root,
@@ -6993,23 +6997,6 @@ elf_link_input_bfd (struct elf_final_lin
 			  && finfo->sections[r_symndx] == NULL))
 		    {
 		      h = sym_hashes[r_symndx - extsymoff];
-
-		      /* Badly formatted input files can contain relocs that
-			 reference non-existant symbols.  Check here so that
-			 we do not seg fault.  */
-		      if (h == NULL)
-			{
-			  char buffer [32];
-
-			  sprintf_vma (buffer, rel->r_info);
-			  (*_bfd_error_handler)
-			    (_("error: %B contains a reloc (0x%s) for section %A "
-			       "that references a non-existent global symbol"),
-			     input_bfd, o, buffer);
-			  bfd_set_error (bfd_error_bad_value);
-			  return FALSE;
-			}
-
 		      while (h->root.type == bfd_link_hash_indirect
 			     || h->root.type == bfd_link_hash_warning)
 			h = (struct elf_link_hash_entry *) h->root.u.i.link;
Index: b/binutils-2.16.1/bfd/elfxx-mips.c
===================================================================
--- a/binutils-2.16.1/bfd/elfxx-mips.c
+++ b/binutils-2.16.1/bfd/elfxx-mips.c
@@ -242,8 +242,7 @@ struct mips_elf_link_hash_entry
      being called returns a floating point value.  */
   asection *call_fp_stub;
 
-  /* Are we forced local?  This will only be set if we have converted
-     the initial global GOT entry to a local GOT entry.  */
+  /* Are we forced local?  .*/
   bfd_boolean forced_local;
 
 #define GOT_NORMAL	0
@@ -479,11 +478,6 @@ static bfd *reldyn_sorting_bfd;
 #define MIPS_ELF_OPTIONS_SECTION_NAME(abfd) \
   (NEWABI_P (abfd) ? ".MIPS.options" : ".options")
 
-/* True if NAME is the recognized name of any SHT_MIPS_OPTIONS section.
-   Some IRIX system files do not use MIPS_ELF_OPTIONS_SECTION_NAME.  */
-#define MIPS_ELF_OPTIONS_SECTION_NAME_P(NAME) \
-  (strcmp (NAME, ".MIPS.options") == 0 || strcmp (NAME, ".options") == 0)
-
 /* The name of the stub section.  */
 #define MIPS_ELF_STUB_SECTION_NAME(abfd) ".MIPS.stubs"
 
@@ -2464,7 +2458,7 @@ mips_elf_create_local_got_entry (bfd *ab
      global entry then.  It doesn't matter whether an entry is local
      or global for TLS, since the dynamic linker does not
      automatically relocate TLS GOT entries.  */
-  BFD_ASSERT (h == NULL || h->root.forced_local);
+  BFD_ASSERT (h == NULL || h->forced_local);
   if (TLS_RELOC_P (r_type))
     {
       struct mips_got_entry *p;
@@ -4990,13 +4984,6 @@ _bfd_mips_elf_section_processing (bfd *a
 
 	  bfd_mips_elf_swap_options_in (abfd, (Elf_External_Options *) l,
 					&intopt);
-	  if (intopt.size < sizeof (Elf_External_Options))
-	    {
-	      (*_bfd_error_handler)
-		(_("%B: Warning: bad `%s' option size %u smaller than its header"),
-		abfd, MIPS_ELF_OPTIONS_SECTION_NAME (abfd), intopt.size);
-	      break;
-	    }
 	  if (ABI_64_P (abfd) && intopt.kind == ODK_REGINFO)
 	    {
 	      bfd_byte buf[8];
@@ -5133,7 +5120,7 @@ _bfd_mips_elf_section_from_shdr (bfd *ab
 	return FALSE;
       break;
     case SHT_MIPS_OPTIONS:
-      if (!MIPS_ELF_OPTIONS_SECTION_NAME_P (name))
+      if (strcmp (name, MIPS_ELF_OPTIONS_SECTION_NAME (abfd)) != 0)
 	return FALSE;
       break;
     case SHT_MIPS_DWARF:
@@ -5151,7 +5138,7 @@ _bfd_mips_elf_section_from_shdr (bfd *ab
 	return FALSE;
       break;
     default:
-      break;
+      return FALSE;
     }
 
   if (! _bfd_elf_make_section_from_shdr (abfd, hdr, name))
@@ -5209,13 +5196,6 @@ _bfd_mips_elf_section_from_shdr (bfd *ab
 
 	  bfd_mips_elf_swap_options_in (abfd, (Elf_External_Options *) l,
 					&intopt);
-	  if (intopt.size < sizeof (Elf_External_Options))
-	    {
-	      (*_bfd_error_handler)
-		(_("%B: Warning: bad `%s' option size %u smaller than its header"),
-		abfd, MIPS_ELF_OPTIONS_SECTION_NAME (abfd), intopt.size);
-	      break;
-	    }
 	  if (ABI_64_P (abfd) && intopt.kind == ODK_REGINFO)
 	    {
 	      Elf64_Internal_RegInfo intreg;
@@ -5254,10 +5234,8 @@ bfd_boolean
 _bfd_mips_elf_fake_sections (bfd *abfd, Elf_Internal_Shdr *hdr, asection *sec)
 {
   register const char *name;
-  unsigned int sh_type;
 
   name = bfd_get_section_name (abfd, sec);
-  sh_type = hdr->sh_type;
 
   if (strcmp (name, ".liblist") == 0)
     {
@@ -5330,7 +5308,7 @@ _bfd_mips_elf_fake_sections (bfd *abfd, 
       hdr->sh_flags |= SHF_MIPS_NOSTRIP;
       /* The sh_info field is set in final_write_processing.  */
     }
-  else if (MIPS_ELF_OPTIONS_SECTION_NAME_P (name))
+  else if (strcmp (name, MIPS_ELF_OPTIONS_SECTION_NAME (abfd)) == 0)
     {
       hdr->sh_type = SHT_MIPS_OPTIONS;
       hdr->sh_entsize = 1;
@@ -5359,12 +5337,6 @@ _bfd_mips_elf_fake_sections (bfd *abfd, 
       hdr->sh_entsize = 8;
     }
 
-  /* In the unlikely event a special section is empty it has to lose its
-     special meaning.  This may happen e.g. when using `strip' with the
-     "--only-keep-debug" option.  */
-  if (sec->size > 0 && !(sec->flags & SEC_HAS_CONTENTS))
-    hdr->sh_type = sh_type;
-
   /* The generic elf_fake_sections will set up REL_HDR using the default
    kind of relocations.  We used to set up a second header for the
    non-default kind of relocations here, but only NewABI would use
@@ -7696,6 +7668,18 @@ _bfd_mips_elf_finish_dynamic_sections (b
 	      dyn.d_un.d_ptr = s->vma;
 	      break;
 
+	    case DT_RELSZ:
+	      /* Reduce DT_RELSZ to account for any relocations we
+		 decided not to make.  This is for the n64 irix rld,
+		 which doesn't seem to apply any relocations if there
+		 are trailing null entries.  */
+	      s = mips_elf_rel_dyn_section (dynobj, FALSE);
+	      dyn.d_un.d_val = (s->reloc_count
+				* (ABI_64_P (output_bfd)
+				   ? sizeof (Elf64_Mips_External_Rel)
+				   : sizeof (Elf32_External_Rel)));
+	      break;
+
 	    default:
 	      swap_out_p = FALSE;
 	      break;
@@ -7757,55 +7741,6 @@ _bfd_mips_elf_finish_dynamic_sections (b
 	}
     }
 
-  /* The generation of dynamic relocations for the non-primary gots
-     adds more dynamic relocations.  We cannot count them until
-     here.  */
-
-  if (elf_hash_table (info)->dynamic_sections_created)
-    {
-      bfd_byte *b;
-      bfd_boolean swap_out_p;
-
-      BFD_ASSERT (sdyn != NULL);
-
-      for (b = sdyn->contents;
-	   b < sdyn->contents + sdyn->size;
-	   b += MIPS_ELF_DYN_SIZE (dynobj))
-	{
-	  Elf_Internal_Dyn dyn;
-	  asection *s;
-
-	  /* Read in the current dynamic entry.  */
-	  (*get_elf_backend_data (dynobj)->s->swap_dyn_in) (dynobj, b, &dyn);
-
-	  /* Assume that we're going to modify it and write it out.  */
-	  swap_out_p = TRUE;
-
-	  switch (dyn.d_tag)
-	    {
-	    case DT_RELSZ:
-	      /* Reduce DT_RELSZ to account for any relocations we
-		 decided not to make.  This is for the n64 irix rld,
-		 which doesn't seem to apply any relocations if there
-		 are trailing null entries.  */
-	      s = mips_elf_rel_dyn_section (dynobj, FALSE);
-	      dyn.d_un.d_val = (s->reloc_count
-				* (ABI_64_P (output_bfd)
-				   ? sizeof (Elf64_Mips_External_Rel)
-				   : sizeof (Elf32_External_Rel)));
-	      break;
-
-	    default:
-	      swap_out_p = FALSE;
-	      break;
-	    }
-
-	  if (swap_out_p)
-	    (*get_elf_backend_data (dynobj)->s->swap_dyn_out)
-	      (dynobj, &dyn, b);
-	}
-    }
-
   {
     asection *s;
     Elf32_compact_rel cpt;
@@ -8694,7 +8629,7 @@ _bfd_mips_elf_set_section_contents (bfd 
 				    const void *location,
 				    file_ptr offset, bfd_size_type count)
 {
-  if (MIPS_ELF_OPTIONS_SECTION_NAME_P (section->name))
+  if (strcmp (section->name, MIPS_ELF_OPTIONS_SECTION_NAME (abfd)) == 0)
     {
       bfd_byte *c;
 
Index: b/binutils-2.16.1/bfd/libbfd.h
===================================================================
--- a/binutils-2.16.1/bfd/libbfd.h
+++ b/binutils-2.16.1/bfd/libbfd.h
@@ -1145,9 +1145,37 @@ static const char *const bfd_reloc_code_
   "BFD_RELOC_ARM_PCREL_BRANCH",
   "BFD_RELOC_ARM_PCREL_BLX",
   "BFD_RELOC_THUMB_PCREL_BLX",
+  "BFD_RELOC_THUMB_PCREL_BRANCH7",
+  "BFD_RELOC_THUMB_PCREL_BRANCH9",
+  "BFD_RELOC_THUMB_PCREL_BRANCH12",
+  "BFD_RELOC_THUMB_PCREL_BRANCH20",
+  "BFD_RELOC_THUMB_PCREL_BRANCH23",
+  "BFD_RELOC_THUMB_PCREL_BRANCH25",
+  "BFD_RELOC_ARM_OFFSET_IMM",
+  "BFD_RELOC_ARM_THUMB_OFFSET",
+  "BFD_RELOC_ARM_TARGET1",
+  "BFD_RELOC_ARM_ROSEGREL32",
+  "BFD_RELOC_ARM_SBREL32",
+  "BFD_RELOC_ARM_TARGET2",
+  "BFD_RELOC_ARM_PREL31",
+  "BFD_RELOC_ARM_JUMP_SLOT",
+  "BFD_RELOC_ARM_GLOB_DAT",
+  "BFD_RELOC_ARM_GOT32",
+  "BFD_RELOC_ARM_PLT32",
+  "BFD_RELOC_ARM_RELATIVE",
+  "BFD_RELOC_ARM_GOTOFF",
+  "BFD_RELOC_ARM_GOTPC",
+  "BFD_RELOC_ARM_TLS_GD32",
+  "BFD_RELOC_ARM_TLS_LDO32",
+  "BFD_RELOC_ARM_TLS_LDM32",
+  "BFD_RELOC_ARM_TLS_DTPOFF32",
+  "BFD_RELOC_ARM_TLS_DTPMOD32",
+  "BFD_RELOC_ARM_TLS_TPOFF32",
+  "BFD_RELOC_ARM_TLS_IE32",
+  "BFD_RELOC_ARM_TLS_LE32",
   "BFD_RELOC_ARM_IMMEDIATE",
   "BFD_RELOC_ARM_ADRL_IMMEDIATE",
-  "BFD_RELOC_ARM_OFFSET_IMM",
+  "BFD_RELOC_ARM_T32_IMMEDIATE",
   "BFD_RELOC_ARM_SHIFT_IMM",
   "BFD_RELOC_ARM_SMI",
   "BFD_RELOC_ARM_SWI",
@@ -1159,25 +1187,12 @@ static const char *const bfd_reloc_code_
   "BFD_RELOC_ARM_LITERAL",
   "BFD_RELOC_ARM_IN_POOL",
   "BFD_RELOC_ARM_OFFSET_IMM8",
+  "BFD_RELOC_ARM_T32_OFFSET_U8",
+  "BFD_RELOC_ARM_T32_OFFSET_IMM",
   "BFD_RELOC_ARM_HWLITERAL",
   "BFD_RELOC_ARM_THUMB_ADD",
   "BFD_RELOC_ARM_THUMB_IMM",
   "BFD_RELOC_ARM_THUMB_SHIFT",
-  "BFD_RELOC_ARM_THUMB_OFFSET",
-  "BFD_RELOC_ARM_GOT12",
-  "BFD_RELOC_ARM_GOT32",
-  "BFD_RELOC_ARM_JUMP_SLOT",
-  "BFD_RELOC_ARM_COPY",
-  "BFD_RELOC_ARM_GLOB_DAT",
-  "BFD_RELOC_ARM_PLT32",
-  "BFD_RELOC_ARM_RELATIVE",
-  "BFD_RELOC_ARM_GOTOFF",
-  "BFD_RELOC_ARM_GOTPC",
-  "BFD_RELOC_ARM_TARGET1",
-  "BFD_RELOC_ARM_ROSEGREL32",
-  "BFD_RELOC_ARM_SBREL32",
-  "BFD_RELOC_ARM_TARGET2",
-  "BFD_RELOC_ARM_PREL31",
   "BFD_RELOC_SH_PCDISP8BY2",
   "BFD_RELOC_SH_PCDISP12BY2",
   "BFD_RELOC_SH_IMM3",
@@ -1268,9 +1283,6 @@ static const char *const bfd_reloc_code_
   "BFD_RELOC_SH_TLS_DTPMOD32",
   "BFD_RELOC_SH_TLS_DTPOFF32",
   "BFD_RELOC_SH_TLS_TPOFF32",
-  "BFD_RELOC_THUMB_PCREL_BRANCH9",
-  "BFD_RELOC_THUMB_PCREL_BRANCH12",
-  "BFD_RELOC_THUMB_PCREL_BRANCH23",
   "BFD_RELOC_ARC_B22_PCREL",
   "BFD_RELOC_ARC_B26",
   "BFD_RELOC_D10V_10_PCREL_R",
Index: b/binutils-2.16.1/bfd/Makefile.am
===================================================================
--- a/binutils-2.16.1/bfd/Makefile.am
+++ b/binutils-2.16.1/bfd/Makefile.am
@@ -3,7 +3,7 @@
 AUTOMAKE_OPTIONS = 1.9 cygnus
 
 # Uncomment the following line when doing a release.
-RELEASE=y
+# RELEASE=y
 
 INCDIR = $(srcdir)/../include
 CSEARCH = -I. -I$(srcdir) -I$(INCDIR)
Index: b/binutils-2.16.1/bfd/Makefile.in
===================================================================
--- a/binutils-2.16.1/bfd/Makefile.in
+++ b/binutils-2.16.1/bfd/Makefile.in
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.9.5 from Makefile.am.
+# Makefile.in generated by automake 1.9.2 from Makefile.am.
 # @configure_input@
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-# 2003, 2004, 2005  Free Software Foundation, Inc.
+# 2003, 2004  Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 # gives unlimited permission to copy and/or distribute it,
 # with or without modifications, as long as this notice is preserved.
@@ -250,7 +250,7 @@ wordsize = @wordsize@
 AUTOMAKE_OPTIONS = 1.9 cygnus
 
 # Uncomment the following line when doing a release.
-RELEASE=y
+# RELEASE=y
 INCDIR = $(srcdir)/../include
 CSEARCH = -I. -I$(srcdir) -I$(INCDIR)
 MKDEP = gcc -MM
@@ -1005,13 +1005,7 @@ uninstall-info-am:
 #     (which will cause the Makefiles to be regenerated when you run `make');
 # (2) otherwise, pass the desired values on the `make' command line.
 $(RECURSIVE_TARGETS):
-	@failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+	@set fnord $$MAKEFLAGS; amf=$$2; \
 	dot_seen=no; \
 	target=`echo $@ | sed s/-recursive//`; \
 	list='$(SUBDIRS)'; for subdir in $$list; do \
@@ -1023,7 +1017,7 @@ $(RECURSIVE_TARGETS):
 	    local_target="$$target"; \
 	  fi; \
 	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
+	   || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
 	done; \
 	if test "$$dot_seen" = "no"; then \
 	  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
@@ -1031,13 +1025,7 @@ $(RECURSIVE_TARGETS):
 
 mostlyclean-recursive clean-recursive distclean-recursive \
 maintainer-clean-recursive:
-	@failcom='exit 1'; \
-	for f in x $$MAKEFLAGS; do \
-	  case $$f in \
-	    *=* | --[!k]*);; \
-	    *k*) failcom='fail=yes';; \
-	  esac; \
-	done; \
+	@set fnord $$MAKEFLAGS; amf=$$2; \
 	dot_seen=no; \
 	case "$@" in \
 	  distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
@@ -1058,7 +1046,7 @@ maintainer-clean-recursive:
 	    local_target="$$target"; \
 	  fi; \
 	  (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
-	  || eval $$failcom; \
+	   || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
 	done && test -z "$$fail"
 tags-recursive:
 	list='$(SUBDIRS)'; for subdir in $$list; do \
Index: b/binutils-2.16.1/bfd/po/.cvsignore
===================================================================
--- /dev/null
+++ b/binutils-2.16.1/bfd/po/.cvsignore
@@ -0,0 +1 @@
+*.gmo
Index: b/binutils-2.16.1/bfd/reloc.c
===================================================================
--- a/binutils-2.16.1/bfd/reloc.c
+++ b/binutils-2.16.1/bfd/reloc.c
@@ -2622,12 +2622,102 @@ ENUMDOC
   Thumb 22 bit pc-relative branch.  The lowest bit must be zero and is
   not stored in the instruction.  The 2nd lowest bit comes from a 1 bit
   field in the instruction.
+
+ENUM
+  BFD_RELOC_THUMB_PCREL_BRANCH7
+ENUMX
+  BFD_RELOC_THUMB_PCREL_BRANCH9
+ENUMX
+  BFD_RELOC_THUMB_PCREL_BRANCH12
+ENUMX
+  BFD_RELOC_THUMB_PCREL_BRANCH20
+ENUMX
+  BFD_RELOC_THUMB_PCREL_BRANCH23
+ENUMX
+  BFD_RELOC_THUMB_PCREL_BRANCH25
+ENUMDOC
+  Thumb 7-, 9-, 12-, 20-, 23-, and 25-bit pc-relative branches.
+  The lowest bit must be zero and is not stored in the instruction.
+  Note that the corresponding ELF R_ARM_THM_JUMPnn constant has an
+  "nn" one smaller in all cases.  Note further that BRANCH23
+  corresponds to R_ARM_THM_CALL.
+
+ENUM
+  BFD_RELOC_ARM_OFFSET_IMM
+ENUMDOC
+  12-bit immediate offset, used in ARM-format ldr and str instructions.
+
+ENUM
+  BFD_RELOC_ARM_THUMB_OFFSET
+ENUMDOC
+  5-bit immediate offset, used in Thumb-format ldr and str instructions.
+
+ENUM
+  BFD_RELOC_ARM_TARGET1
+ENUMDOC
+  Pc-relative or absolute relocation depending on target.  Used for
+  entries in .init_array sections.
+ENUM
+  BFD_RELOC_ARM_ROSEGREL32
+ENUMDOC
+  Read-only segment base relative address.
+ENUM
+  BFD_RELOC_ARM_SBREL32
+ENUMDOC
+  Data segment base relative address.
+ENUM
+  BFD_RELOC_ARM_TARGET2
+ENUMDOC
+  This reloc is used for references to RTTI data from exception handling
+  tables.  The actual definition depends on the target.  It may be a
+  pc-relative or some form of GOT-indirect relocation.
+ENUM
+  BFD_RELOC_ARM_PREL31
+ENUMDOC
+  31-bit PC relative address.
+
+ENUM
+  BFD_RELOC_ARM_JUMP_SLOT
+ENUMX
+  BFD_RELOC_ARM_GLOB_DAT
+ENUMX
+  BFD_RELOC_ARM_GOT32
+ENUMX
+  BFD_RELOC_ARM_PLT32
+ENUMX
+  BFD_RELOC_ARM_RELATIVE
+ENUMX
+  BFD_RELOC_ARM_GOTOFF
+ENUMX
+  BFD_RELOC_ARM_GOTPC
+ENUMDOC
+  Relocations for setting up GOTs and PLTs for shared libraries.
+
+ENUM
+  BFD_RELOC_ARM_TLS_GD32
+ENUMX
+  BFD_RELOC_ARM_TLS_LDO32
+ENUMX
+  BFD_RELOC_ARM_TLS_LDM32
+ENUMX
+  BFD_RELOC_ARM_TLS_DTPOFF32
+ENUMX
+  BFD_RELOC_ARM_TLS_DTPMOD32
+ENUMX
+  BFD_RELOC_ARM_TLS_TPOFF32
+ENUMX
+  BFD_RELOC_ARM_TLS_IE32
+ENUMX
+  BFD_RELOC_ARM_TLS_LE32
+ENUMDOC
+  ARM thread-local storage relocations.
+
 ENUM
   BFD_RELOC_ARM_IMMEDIATE
 ENUMX
   BFD_RELOC_ARM_ADRL_IMMEDIATE
 ENUMX
-  BFD_RELOC_ARM_OFFSET_IMM
+  BFD_RELOC_ARM_T32_IMMEDIATE
 ENUMX
   BFD_RELOC_ARM_SHIFT_IMM
 ENUMX
@@ -2651,6 +2741,10 @@ ENUMX
 ENUMX
   BFD_RELOC_ARM_OFFSET_IMM8
 ENUMX
+  BFD_RELOC_ARM_T32_OFFSET_U8
+ENUMX
+  BFD_RELOC_ARM_T32_OFFSET_IMM
+ENUMX
   BFD_RELOC_ARM_HWLITERAL
 ENUMX
   BFD_RELOC_ARM_THUMB_ADD
@@ -2658,52 +2752,9 @@ ENUMX
   BFD_RELOC_ARM_THUMB_IMM
 ENUMX
   BFD_RELOC_ARM_THUMB_SHIFT
-ENUMX
-  BFD_RELOC_ARM_THUMB_OFFSET
-ENUMX
-  BFD_RELOC_ARM_GOT12
-ENUMX
-  BFD_RELOC_ARM_GOT32
-ENUMX
-  BFD_RELOC_ARM_JUMP_SLOT
-ENUMX
-  BFD_RELOC_ARM_COPY
-ENUMX
-  BFD_RELOC_ARM_GLOB_DAT
-ENUMX
-  BFD_RELOC_ARM_PLT32
-ENUMX
-  BFD_RELOC_ARM_RELATIVE
-ENUMX
-  BFD_RELOC_ARM_GOTOFF
-ENUMX
-  BFD_RELOC_ARM_GOTPC
 ENUMDOC
   These relocs are only used within the ARM assembler.  They are not
   (at present) written to any object files.
-ENUM
-  BFD_RELOC_ARM_TARGET1
-ENUMDOC
-  Pc-relative or absolute relocation depending on target.  Used for
-  entries in .init_array sections.
-ENUM
-  BFD_RELOC_ARM_ROSEGREL32
-ENUMDOC
-  Read-only segment base relative address.
-ENUM
-  BFD_RELOC_ARM_SBREL32
-ENUMDOC
-  Data segment base relative address.
-ENUM
-  BFD_RELOC_ARM_TARGET2
-ENUMDOC
-  This reloc is used for References to RTTI dta from exception handling
-  tables.  The actual definition depends on the target.  It may be a
-  pc-relative or some form of GOT-indirect relocation.
-ENUM
-  BFD_RELOC_ARM_PREL31
-ENUMDOC
-  31-bit PC relative address.
 
 ENUM
   BFD_RELOC_SH_PCDISP8BY2
@@ -2889,16 +2940,6 @@ ENUMDOC
   Renesas / SuperH SH relocs.  Not all of these appear in object files.
 
 ENUM
-  BFD_RELOC_THUMB_PCREL_BRANCH9
-ENUMX
-  BFD_RELOC_THUMB_PCREL_BRANCH12
-ENUMX
-  BFD_RELOC_THUMB_PCREL_BRANCH23
-ENUMDOC
-  Thumb 23-, 12- and 9-bit pc-relative branches.  The lowest bit must
-  be zero and is not stored in the instruction.
-
-ENUM
   BFD_RELOC_ARC_B22_PCREL
 ENUMDOC
   ARC Cores relocs.
Index: b/binutils-2.16.1/bfd/version.h
===================================================================
--- a/binutils-2.16.1/bfd/version.h
+++ b/binutils-2.16.1/bfd/version.h
@@ -1,3 +1,3 @@
-#define BFD_VERSION_DATE 20050612
+#define BFD_VERSION_DATE 20050323
 #define BFD_VERSION @bfd_version@
 #define BFD_VERSION_STRING @bfd_version_string@
Index: b/binutils-2.16.1/binutils/ChangeLog
===================================================================
--- a/binutils-2.16.1/binutils/ChangeLog
+++ b/binutils-2.16.1/binutils/ChangeLog
@@ -1,32 +1,3 @@
-2005-04-20  Daniel Jacobowitz  <dan@codesourcery.com>
-
-	* readelf.c (display_debug_frames): Use data factor for
-	DW_CFA_def_cfa_sf and DW_CFA_def_cfa_offset_sf.
-
-2005-04-20  H.J. Lu  <hongjiu.lu@intel.com>
-
-	* doc/binutils.texi: Document new readelf option,
-	"-g/--section-groups".
-
-2005-04-20  Alan Modra  <amodra@bigpond.net.au>
-
-	* NEWS: Mention unsupported targets and new readelf option.
-
-2005-04-04  Maciej W. Rozycki  <macro@linux-mips.org>
-
-	* readelf.c (debug_apply_rela_addends): Reorder r_info as
-	necessary for 64-bit MIPS.
-
-2005-04-04  Maciej W. Rozycki  <macro@linux-mips.org>
-
-	* doc/binutils.texi (readelf): Remove a duplicate paragraph.
-
-2005-04-04  Ramana Radhakrishnan  <ramana.radhakrishnan@codito.com>
-
-	PR binutils/813
-	* objdump.c (dump_symbols): Add a check to see if the section for
-	the symbol is chosen using process_section_p.
-
 2005-03-23  Nick Clifton  <nickc@redhat.com>
 
 	* po/fr.po: Updated translation.
Index: b/binutils-2.16.1/binutils/doc/addr2line.1
===================================================================
--- a/binutils-2.16.1/binutils/doc/addr2line.1
+++ /dev/null
@@ -1,230 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings.  \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  | will give a
-.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-.    ds -- \(*W-
-.    ds PI pi
-.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
-.    ds L" ""
-.    ds R" ""
-.    ds C` ""
-.    ds C' ""
-'br\}
-.el\{\
-.    ds -- \|\(em\|
-.    ds PI \(*p
-.    ds L" ``
-.    ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD.  Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-.    de IX
-.    tm Index:\\$1\t\\n%\t"\\$2"
-..
-.    nr % 0
-.    rr F
-.\}
-.\"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
-.    \" fudge factors for nroff and troff
-.if n \{\
-.    ds #H 0
-.    ds #V .8m
-.    ds #F .3m
-.    ds #[ \f1
-.    ds #] \fP
-.\}
-.if t \{\
-.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-.    ds #V .6m
-.    ds #F 0
-.    ds #[ \&
-.    ds #] \&
-.\}
-.    \" simple accents for nroff and troff
-.if n \{\
-.    ds ' \&
-.    ds ` \&
-.    ds ^ \&
-.    ds , \&
-.    ds ~ ~
-.    ds /
-.\}
-.if t \{\
-.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-.    \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-.    \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-.    \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-.    ds : e
-.    ds 8 ss
-.    ds o a
-.    ds d- d\h'-1'\(ga
-.    ds D- D\h'-1'\(hy
-.    ds th \o'bp'
-.    ds Th \o'LP'
-.    ds ae ae
-.    ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "ADDR2LINE 1"
-.TH ADDR2LINE 1 "2005-04-20" "binutils-2.15.97" "GNU Development Tools"
-.SH "NAME"
-addr2line \- convert addresses into file names and line numbers.
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-addr2line [\fB\-b\fR \fIbfdname\fR|\fB\-\-target=\fR\fIbfdname\fR]
-          [\fB\-C\fR|\fB\-\-demangle\fR[=\fIstyle\fR]]
-          [\fB\-e\fR \fIfilename\fR|\fB\-\-exe=\fR\fIfilename\fR]
-          [\fB\-f\fR|\fB\-\-functions\fR] [\fB\-s\fR|\fB\-\-basename\fR]
-          [\fB\-H\fR|\fB\-\-help\fR] [\fB\-V\fR|\fB\-\-version\fR]
-          [addr addr ...]
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-\&\fBaddr2line\fR translates program addresses into file names and line
-numbers.  Given an address and an executable, it uses the debugging
-information in the executable to figure out which file name and line
-number are associated with a given address.
-.PP
-The executable to use is specified with the \fB\-e\fR option.  The
-default is the file \fIa.out\fR.
-.PP
-\&\fBaddr2line\fR has two modes of operation.
-.PP
-In the first, hexadecimal addresses are specified on the command line,
-and \fBaddr2line\fR displays the file name and line number for each
-address.
-.PP
-In the second, \fBaddr2line\fR reads hexadecimal addresses from
-standard input, and prints the file name and line number for each
-address on standard output.  In this mode, \fBaddr2line\fR may be used
-in a pipe to convert dynamically chosen addresses.
-.PP
-The format of the output is \fB\s-1FILENAME:LINENO\s0\fR.  The file name and
-line number for each address is printed on a separate line.  If the
-\&\fB\-f\fR option is used, then each \fB\s-1FILENAME:LINENO\s0\fR line is
-preceded by a \fB\s-1FUNCTIONNAME\s0\fR line which is the name of the function
-containing the address.
-.PP
-If the file name or function name can not be determined,
-\&\fBaddr2line\fR will print two question marks in their place.  If the
-line number can not be determined, \fBaddr2line\fR will print 0.
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-The long and short forms of options, shown here as alternatives, are
-equivalent.
-.IP "\fB\-b\fR \fIbfdname\fR" 4
-.IX Item "-b bfdname"
-.PD 0
-.IP "\fB\-\-target=\fR\fIbfdname\fR" 4
-.IX Item "--target=bfdname"
-.PD
-Specify that the object-code format for the object files is
-\&\fIbfdname\fR.
-.IP "\fB\-C\fR" 4
-.IX Item "-C"
-.PD 0
-.IP "\fB\-\-demangle[=\fR\fIstyle\fR\fB]\fR" 4
-.IX Item "--demangle[=style]"
-.PD
-Decode (\fIdemangle\fR) low-level symbol names into user-level names.
-Besides removing any initial underscore prepended by the system, this
-makes \*(C+ function names readable.  Different compilers have different
-mangling styles. The optional demangling style argument can be used to 
-choose an appropriate demangling style for your compiler. 
-.IP "\fB\-e\fR \fIfilename\fR" 4
-.IX Item "-e filename"
-.PD 0
-.IP "\fB\-\-exe=\fR\fIfilename\fR" 4
-.IX Item "--exe=filename"
-.PD
-Specify the name of the executable for which addresses should be
-translated.  The default file is \fIa.out\fR.
-.IP "\fB\-f\fR" 4
-.IX Item "-f"
-.PD 0
-.IP "\fB\-\-functions\fR" 4
-.IX Item "--functions"
-.PD
-Display function names as well as file and line number information.
-.IP "\fB\-s\fR" 4
-.IX Item "-s"
-.PD 0
-.IP "\fB\-\-basenames\fR" 4
-.IX Item "--basenames"
-.PD
-Display only the base of each file name.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-Info entries for \fIbinutils\fR.
-.SH "COPYRIGHT"
-.IX Header "COPYRIGHT"
-Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
-.PP
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1
-or any later version published by the Free Software Foundation;
-with no Invariant Sections, with no Front-Cover Texts, and with no
-Back-Cover Texts.  A copy of the license is included in the
-section entitled ``\s-1GNU\s0 Free Documentation License''.
Index: b/binutils-2.16.1/binutils/doc/ar.1
===================================================================
--- a/binutils-2.16.1/binutils/doc/ar.1
+++ /dev/null
@@ -1,377 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings.  \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  | will give a
-.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-.    ds -- \(*W-
-.    ds PI pi
-.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
-.    ds L" ""
-.    ds R" ""
-.    ds C` ""
-.    ds C' ""
-'br\}
-.el\{\
-.    ds -- \|\(em\|
-.    ds PI \(*p
-.    ds L" ``
-.    ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD.  Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-.    de IX
-.    tm Index:\\$1\t\\n%\t"\\$2"
-..
-.    nr % 0
-.    rr F
-.\}
-.\"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
-.    \" fudge factors for nroff and troff
-.if n \{\
-.    ds #H 0
-.    ds #V .8m
-.    ds #F .3m
-.    ds #[ \f1
-.    ds #] \fP
-.\}
-.if t \{\
-.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-.    ds #V .6m
-.    ds #F 0
-.    ds #[ \&
-.    ds #] \&
-.\}
-.    \" simple accents for nroff and troff
-.if n \{\
-.    ds ' \&
-.    ds ` \&
-.    ds ^ \&
-.    ds , \&
-.    ds ~ ~
-.    ds /
-.\}
-.if t \{\
-.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-.    \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-.    \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-.    \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-.    ds : e
-.    ds 8 ss
-.    ds o a
-.    ds d- d\h'-1'\(ga
-.    ds D- D\h'-1'\(hy
-.    ds th \o'bp'
-.    ds Th \o'LP'
-.    ds ae ae
-.    ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "AR 1"
-.TH AR 1 "2005-04-20" "binutils-2.15.97" "GNU Development Tools"
-.SH "NAME"
-ar \- create, modify, and extract from archives
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-ar [\fB\-X32_64\fR] [\fB\-\fR]\fIp\fR[\fImod\fR [\fIrelpos\fR] [\fIcount\fR]] \fIarchive\fR [\fImember\fR...]
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-The \s-1GNU\s0 \fBar\fR program creates, modifies, and extracts from
-archives.  An \fIarchive\fR is a single file holding a collection of
-other files in a structure that makes it possible to retrieve
-the original individual files (called \fImembers\fR of the archive).
-.PP
-The original files' contents, mode (permissions), timestamp, owner, and
-group are preserved in the archive, and can be restored on
-extraction.  
-.PP
-\&\s-1GNU\s0 \fBar\fR can maintain archives whose members have names of any
-length; however, depending on how \fBar\fR is configured on your
-system, a limit on member-name length may be imposed for compatibility
-with archive formats maintained with other tools.  If it exists, the
-limit is often 15 characters (typical of formats related to a.out) or 16
-characters (typical of formats related to coff).
-.PP
-\&\fBar\fR is considered a binary utility because archives of this sort
-are most often used as \fIlibraries\fR holding commonly needed
-subroutines.
-.PP
-\&\fBar\fR creates an index to the symbols defined in relocatable
-object modules in the archive when you specify the modifier \fBs\fR.
-Once created, this index is updated in the archive whenever \fBar\fR
-makes a change to its contents (save for the \fBq\fR update operation).
-An archive with such an index speeds up linking to the library, and
-allows routines in the library to call each other without regard to
-their placement in the archive.
-.PP
-You may use \fBnm \-s\fR or \fBnm \-\-print\-armap\fR to list this index
-table.  If an archive lacks the table, another form of \fBar\fR called
-\&\fBranlib\fR can be used to add just the table.
-.PP
-\&\s-1GNU\s0 \fBar\fR is designed to be compatible with two different
-facilities.  You can control its activity using command-line options,
-like the different varieties of \fBar\fR on Unix systems; or, if you
-specify the single command-line option \fB\-M\fR, you can control it
-with a script supplied via standard input, like the \s-1MRI\s0 ``librarian''
-program.
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-\&\s-1GNU\s0 \fBar\fR allows you to mix the operation code \fIp\fR and modifier
-flags \fImod\fR in any order, within the first command-line argument.
-.PP
-If you wish, you may begin the first command-line argument with a
-dash.
-.PP
-The \fIp\fR keyletter specifies what operation to execute; it may be
-any of the following, but you must specify only one of them:
-.IP "\fBd\fR" 4
-.IX Item "d"
-\&\fIDelete\fR modules from the archive.  Specify the names of modules to
-be deleted as \fImember\fR...; the archive is untouched if you
-specify no files to delete.
-.Sp
-If you specify the \fBv\fR modifier, \fBar\fR lists each module
-as it is deleted.
-.IP "\fBm\fR" 4
-.IX Item "m"
-Use this operation to \fImove\fR members in an archive.
-.Sp
-The ordering of members in an archive can make a difference in how
-programs are linked using the library, if a symbol is defined in more
-than one member.  
-.Sp
-If no modifiers are used with \f(CW\*(C`m\*(C'\fR, any members you name in the
-\&\fImember\fR arguments are moved to the \fIend\fR of the archive;
-you can use the \fBa\fR, \fBb\fR, or \fBi\fR modifiers to move them to a
-specified place instead.
-.IP "\fBp\fR" 4
-.IX Item "p"
-\&\fIPrint\fR the specified members of the archive, to the standard
-output file.  If the \fBv\fR modifier is specified, show the member
-name before copying its contents to standard output.
-.Sp
-If you specify no \fImember\fR arguments, all the files in the archive are
-printed.
-.IP "\fBq\fR" 4
-.IX Item "q"
-\&\fIQuick append\fR; Historically, add the files \fImember\fR... to the end of
-\&\fIarchive\fR, without checking for replacement.
-.Sp
-The modifiers \fBa\fR, \fBb\fR, and \fBi\fR do \fInot\fR affect this
-operation; new members are always placed at the end of the archive.
-.Sp
-The modifier \fBv\fR makes \fBar\fR list each file as it is appended.
-.Sp
-Since the point of this operation is speed, the archive's symbol table
-index is not updated, even if it already existed; you can use \fBar s\fR or
-\&\fBranlib\fR explicitly to update the symbol table index.
-.Sp
-However, too many different systems assume quick append rebuilds the
-index, so \s-1GNU\s0 \fBar\fR implements \fBq\fR as a synonym for \fBr\fR.
-.IP "\fBr\fR" 4
-.IX Item "r"
-Insert the files \fImember\fR... into \fIarchive\fR (with
-\&\fIreplacement\fR). This operation differs from \fBq\fR in that any
-previously existing members are deleted if their names match those being
-added.
-.Sp
-If one of the files named in \fImember\fR... does not exist, \fBar\fR
-displays an error message, and leaves undisturbed any existing members
-of the archive matching that name.
-.Sp
-By default, new members are added at the end of the file; but you may
-use one of the modifiers \fBa\fR, \fBb\fR, or \fBi\fR to request
-placement relative to some existing member.
-.Sp
-The modifier \fBv\fR used with this operation elicits a line of
-output for each file inserted, along with one of the letters \fBa\fR or
-\&\fBr\fR to indicate whether the file was appended (no old member
-deleted) or replaced.
-.IP "\fBt\fR" 4
-.IX Item "t"
-Display a \fItable\fR listing the contents of \fIarchive\fR, or those
-of the files listed in \fImember\fR... that are present in the
-archive.  Normally only the member name is shown; if you also want to
-see the modes (permissions), timestamp, owner, group, and size, you can
-request that by also specifying the \fBv\fR modifier.
-.Sp
-If you do not specify a \fImember\fR, all files in the archive
-are listed.
-.Sp
-If there is more than one file with the same name (say, \fBfie\fR) in
-an archive (say \fBb.a\fR), \fBar t b.a fie\fR lists only the
-first instance; to see them all, you must ask for a complete
-listing\-\-\-in our example, \fBar t b.a\fR.
-.IP "\fBx\fR" 4
-.IX Item "x"
-\&\fIExtract\fR members (named \fImember\fR) from the archive.  You can
-use the \fBv\fR modifier with this operation, to request that
-\&\fBar\fR list each name as it extracts it.
-.Sp
-If you do not specify a \fImember\fR, all files in the archive
-are extracted.
-.PP
-A number of modifiers (\fImod\fR) may immediately follow the \fIp\fR
-keyletter, to specify variations on an operation's behavior:
-.IP "\fBa\fR" 4
-.IX Item "a"
-Add new files \fIafter\fR an existing member of the
-archive.  If you use the modifier \fBa\fR, the name of an existing archive
-member must be present as the \fIrelpos\fR argument, before the
-\&\fIarchive\fR specification.
-.IP "\fBb\fR" 4
-.IX Item "b"
-Add new files \fIbefore\fR an existing member of the
-archive.  If you use the modifier \fBb\fR, the name of an existing archive
-member must be present as the \fIrelpos\fR argument, before the
-\&\fIarchive\fR specification.  (same as \fBi\fR).
-.IP "\fBc\fR" 4
-.IX Item "c"
-\&\fICreate\fR the archive.  The specified \fIarchive\fR is always
-created if it did not exist, when you request an update.  But a warning is
-issued unless you specify in advance that you expect to create it, by
-using this modifier.
-.IP "\fBf\fR" 4
-.IX Item "f"
-Truncate names in the archive.  \s-1GNU\s0 \fBar\fR will normally permit file
-names of any length.  This will cause it to create archives which are
-not compatible with the native \fBar\fR program on some systems.  If
-this is a concern, the \fBf\fR modifier may be used to truncate file
-names when putting them in the archive.
-.IP "\fBi\fR" 4
-.IX Item "i"
-Insert new files \fIbefore\fR an existing member of the
-archive.  If you use the modifier \fBi\fR, the name of an existing archive
-member must be present as the \fIrelpos\fR argument, before the
-\&\fIarchive\fR specification.  (same as \fBb\fR).
-.IP "\fBl\fR" 4
-.IX Item "l"
-This modifier is accepted but not used.
-.IP "\fBN\fR" 4
-.IX Item "N"
-Uses the \fIcount\fR parameter.  This is used if there are multiple
-entries in the archive with the same name.  Extract or delete instance
-\&\fIcount\fR of the given name from the archive.
-.IP "\fBo\fR" 4
-.IX Item "o"
-Preserve the \fIoriginal\fR dates of members when extracting them.  If
-you do not specify this modifier, files extracted from the archive
-are stamped with the time of extraction.
-.IP "\fBP\fR" 4
-.IX Item "P"
-Use the full path name when matching names in the archive.  \s-1GNU\s0
-\&\fBar\fR can not create an archive with a full path name (such archives
-are not \s-1POSIX\s0 complaint), but other archive creators can.  This option
-will cause \s-1GNU\s0 \fBar\fR to match file names using a complete path
-name, which can be convenient when extracting a single file from an
-archive created by another tool.
-.IP "\fBs\fR" 4
-.IX Item "s"
-Write an object-file index into the archive, or update an existing one,
-even if no other change is made to the archive.  You may use this modifier
-flag either with any operation, or alone.  Running \fBar s\fR on an
-archive is equivalent to running \fBranlib\fR on it.
-.IP "\fBS\fR" 4
-.IX Item "S"
-Do not generate an archive symbol table.  This can speed up building a
-large library in several steps.  The resulting archive can not be used
-with the linker.  In order to build a symbol table, you must omit the
-\&\fBS\fR modifier on the last execution of \fBar\fR, or you must run
-\&\fBranlib\fR on the archive.
-.IP "\fBu\fR" 4
-.IX Item "u"
-Normally, \fBar r\fR... inserts all files
-listed into the archive.  If you would like to insert \fIonly\fR those
-of the files you list that are newer than existing members of the same
-names, use this modifier.  The \fBu\fR modifier is allowed only for the
-operation \fBr\fR (replace).  In particular, the combination \fBqu\fR is
-not allowed, since checking the timestamps would lose any speed
-advantage from the operation \fBq\fR.
-.IP "\fBv\fR" 4
-.IX Item "v"
-This modifier requests the \fIverbose\fR version of an operation.  Many
-operations display additional information, such as filenames processed,
-when the modifier \fBv\fR is appended.
-.IP "\fBV\fR" 4
-.IX Item "V"
-This modifier shows the version number of \fBar\fR.
-.PP
-\&\fBar\fR ignores an initial option spelt \fB\-X32_64\fR, for
-compatibility with \s-1AIX\s0.  The behaviour produced by this option is the
-default for \s-1GNU\s0 \fBar\fR.  \fBar\fR does not support any of the other
-\&\fB\-X\fR options; in particular, it does not support \fB\-X32\fR
-which is the default for \s-1AIX\s0 \fBar\fR.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-\&\fInm\fR\|(1), \fIranlib\fR\|(1), and the Info entries for \fIbinutils\fR.
-.SH "COPYRIGHT"
-.IX Header "COPYRIGHT"
-Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
-.PP
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1
-or any later version published by the Free Software Foundation;
-with no Invariant Sections, with no Front-Cover Texts, and with no
-Back-Cover Texts.  A copy of the license is included in the
-section entitled ``\s-1GNU\s0 Free Documentation License''.
Index: b/binutils-2.16.1/binutils/doc/binutils.info
===================================================================
--- a/binutils-2.16.1/binutils/doc/binutils.info
+++ b/binutils-2.16.1/binutils/doc/binutils.info
@@ -37,7 +37,7 @@ Introduction
 ************
 
 This brief manual contains documentation for the GNU binary utilities
-(collectively version 2.16.1):
+(collectively version 2.15.96):
 
    This document is distributed under the terms of the GNU Free
 Documentation License.  A copy of the license is included in the
@@ -2663,7 +2663,6 @@ File: binutils.info,  Node: readelf,  Ne
              [`-h'|`--file-header']
              [`-l'|`--program-headers'|`--segments']
              [`-S'|`--section-headers'|`--sections']
-             [`-g'|`--section-groups']
              [`-e'|`--headers']
              [`-s'|`--syms'|`--symbols']
              [`-n'|`--notes']
@@ -2718,11 +2717,6 @@ equivalent.  At least one option besides
      Displays the information contained in the file's section headers,
      if it has any.
 
-`-g'
-`--section-groups'
-     Displays the information contained in the file's section groups,
-     if it has any.
-
 `-s'
 `--symbols'
 `--syms'
@@ -2748,6 +2742,12 @@ equivalent.  At least one option besides
      Only the unwind sections for IA64 ELF files are currently
      supported.
 
+`-u'
+`--unwind'
+     Displays the contents of the file's unwind section, if it has one.
+     Only the unwind sections for IA64 ELF files are currently
+     supported.
+
 `-d'
 `--dynamic'
      Displays the contents of the file's dynamic section, if it has one.
@@ -3562,16 +3562,15 @@ Index
 * dynamic symbol table entries, printing: objdump.            (line 334)
 * dynamic symbols:                       nm.                  (line 136)
 * ELF dynamic section information:       readelf.             (line  97)
-* ELF file header information:           readelf.             (line  50)
+* ELF file header information:           readelf.             (line  49)
 * ELF file information:                  readelf.             (line   6)
-* ELF notes:                             readelf.             (line  82)
+* ELF notes:                             readelf.             (line  76)
 * ELF object file format:                objdump.             (line 310)
-* ELF program header information:        readelf.             (line  56)
-* ELF reloc information:                 readelf.             (line  86)
-* ELF section group information:         readelf.             (line  67)
-* ELF section information:               readelf.             (line  62)
-* ELF segment information:               readelf.             (line  56)
-* ELF symbol table information:          readelf.             (line  73)
+* ELF program header information:        readelf.             (line  55)
+* ELF reloc information:                 readelf.             (line  80)
+* ELF section information:               readelf.             (line  61)
+* ELF segment information:               readelf.             (line  55)
+* ELF symbol table information:          readelf.             (line  67)
 * ELF version sections informations:     readelf.             (line 101)
 * endianness:                            objdump.             (line 125)
 * error on valid input:                  Bug Criteria.        (line  12)
@@ -3645,7 +3644,7 @@ Index
 * symbols, discarding:                   strip.               (line   6)
 * undefined symbols:                     nm.                  (line 217)
 * Unix compatibility, ar:                ar cmdline.          (line   8)
-* unwind information:                    readelf.             (line  91)
+* unwind information:                    readelf.             (line  85)
 * updating an archive:                   ar cmdline.          (line 180)
 * version:                               Top.                 (line   6)
 * VMA in objdump:                        objdump.             (line  65)
@@ -3656,31 +3655,31 @@ Index
 
 Tag Table:
 Node: Top1697
-Node: ar3181
-Node: ar cmdline5359
-Node: ar scripts13502
-Node: nm19190
-Node: objcopy27386
-Node: objdump49377
-Node: ranlib63693
-Node: size64448
-Node: strings67295
-Node: strip69645
-Node: c++filt74855
-Ref: c++filt-Footnote-178170
-Node: addr2line78276
-Node: nlmconv80876
-Node: windres83482
-Node: dlltool89215
-Node: def file format99641
-Node: readelf101379
-Node: Selecting The Target System105768
-Node: Target Selection106693
-Node: Architecture Selection108675
-Node: Reporting Bugs109503
-Node: Bug Criteria110282
-Node: Bug Reporting110835
-Node: GNU Free Documentation License117929
-Node: Index137656
+Node: ar3182
+Node: ar cmdline5360
+Node: ar scripts13503
+Node: nm19191
+Node: objcopy27387
+Node: objdump49378
+Node: ranlib63694
+Node: size64449
+Node: strings67296
+Node: strip69646
+Node: c++filt74856
+Ref: c++filt-Footnote-178171
+Node: addr2line78277
+Node: nlmconv80877
+Node: windres83483
+Node: dlltool89216
+Node: def file format99642
+Node: readelf101380
+Node: Selecting The Target System105783
+Node: Target Selection106708
+Node: Architecture Selection108690
+Node: Reporting Bugs109518
+Node: Bug Criteria110297
+Node: Bug Reporting110850
+Node: GNU Free Documentation License117944
+Node: Index137671
 
 End Tag Table
Index: b/binutils-2.16.1/binutils/doc/binutils.texi
===================================================================
--- a/binutils-2.16.1/binutils/doc/binutils.texi
+++ b/binutils-2.16.1/binutils/doc/binutils.texi
@@ -3222,7 +3222,6 @@ readelf [@option{-a}|@option{--all}] 
         [@option{-h}|@option{--file-header}]
         [@option{-l}|@option{--program-headers}|@option{--segments}]
         [@option{-S}|@option{--section-headers}|@option{--sections}]
-        [@option{-g}|@option{--section-groups}]
         [@option{-e}|@option{--headers}]
         [@option{-s}|@option{--syms}|@option{--symbols}]
         [@option{-n}|@option{--notes}]
@@ -3293,12 +3292,6 @@ has any.
 Displays the information contained in the file's section headers, if it
 has any.
 
-@item -g
-@itemx --section-groups
-@cindex ELF section group information
-Displays the information contained in the file's section groups, if it
-has any.
-
 @item -s
 @itemx --symbols
 @itemx --syms
@@ -3325,6 +3318,12 @@ Displays the contents of the file's relo
 Displays the contents of the file's unwind section, if it has one.  Only
 the unwind sections for IA64 ELF files are currently supported.
 
+@item -u
+@itemx --unwind
+@cindex unwind information
+Displays the contents of the file's unwind section, if it has one.  Only
+the unwind sections for IA64 ELF files are currently supported.
+
 @item -d
 @itemx --dynamic
 @cindex ELF dynamic section information
Index: b/binutils-2.16.1/binutils/doc/cxxfilt.man
===================================================================
--- a/binutils-2.16.1/binutils/doc/cxxfilt.man
+++ /dev/null
@@ -1,276 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings.  \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  | will give a
-.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-.    ds -- \(*W-
-.    ds PI pi
-.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
-.    ds L" ""
-.    ds R" ""
-.    ds C` ""
-.    ds C' ""
-'br\}
-.el\{\
-.    ds -- \|\(em\|
-.    ds PI \(*p
-.    ds L" ``
-.    ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD.  Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-.    de IX
-.    tm Index:\\$1\t\\n%\t"\\$2"
-..
-.    nr % 0
-.    rr F
-.\}
-.\"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
-.    \" fudge factors for nroff and troff
-.if n \{\
-.    ds #H 0
-.    ds #V .8m
-.    ds #F .3m
-.    ds #[ \f1
-.    ds #] \fP
-.\}
-.if t \{\
-.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-.    ds #V .6m
-.    ds #F 0
-.    ds #[ \&
-.    ds #] \&
-.\}
-.    \" simple accents for nroff and troff
-.if n \{\
-.    ds ' \&
-.    ds ` \&
-.    ds ^ \&
-.    ds , \&
-.    ds ~ ~
-.    ds /
-.\}
-.if t \{\
-.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-.    \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-.    \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-.    \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-.    ds : e
-.    ds 8 ss
-.    ds o a
-.    ds d- d\h'-1'\(ga
-.    ds D- D\h'-1'\(hy
-.    ds th \o'bp'
-.    ds Th \o'LP'
-.    ds ae ae
-.    ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "C++FILT 1"
-.TH C++FILT 1 "2005-04-20" "binutils-2.15.97" "GNU Development Tools"
-.SH "NAME"
-cxxfilt \- Demangle C++ and Java symbols.
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-c++filt [\fB\-_\fR|\fB\-\-strip\-underscores\fR]
-        [\fB\-j\fR|\fB\-\-java\fR]
-        [\fB\-n\fR|\fB\-\-no\-strip\-underscores\fR]
-        [\fB\-p\fR|\fB\-\-no\-params\fR]
-        [\fB\-s\fR \fIformat\fR|\fB\-\-format=\fR\fIformat\fR]
-        [\fB\-\-help\fR]  [\fB\-\-version\fR]  [\fIsymbol\fR...]
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-The \*(C+ and Java languages provides function overloading, which means
-that you can write many functions with the same name (providing each
-takes parameters of different types).  All \*(C+ and Java function names
-are encoded into a low-level assembly label (this process is known as
-\&\fImangling\fR). The \fBc++filt\fR
-[1]
-program does the inverse mapping: it decodes (\fIdemangles\fR) low-level
-names into user-level names so that the linker can keep these overloaded
-functions from clashing.
-.PP
-Every alphanumeric word (consisting of letters, digits, underscores,
-dollars, or periods) seen in the input is a potential label.  If the
-label decodes into a \*(C+ name, the \*(C+ name replaces the low-level
-name in the output.
-.PP
-You can use \fBc++filt\fR to decipher individual symbols:
-.PP
-.Vb 1
-\&        c++filt <symbol>
-.Ve
-.PP
-If no \fIsymbol\fR arguments are given, \fBc++filt\fR reads symbol
-names from the standard input and writes the demangled names to the
-standard output.  All results are printed on the standard output.
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-.IP "\fB\-_\fR" 4
-.IX Item "-_"
-.PD 0
-.IP "\fB\-\-strip\-underscores\fR" 4
-.IX Item "--strip-underscores"
-.PD
-On some systems, both the C and \*(C+ compilers put an underscore in front
-of every name.  For example, the C name \f(CW\*(C`foo\*(C'\fR gets the low-level
-name \f(CW\*(C`_foo\*(C'\fR.  This option removes the initial underscore.  Whether
-\&\fBc++filt\fR removes the underscore by default is target dependent.
-.IP "\fB\-j\fR" 4
-.IX Item "-j"
-.PD 0
-.IP "\fB\-\-java\fR" 4
-.IX Item "--java"
-.PD
-Prints demangled names using Java syntax.  The default is to use \*(C+
-syntax.
-.IP "\fB\-n\fR" 4
-.IX Item "-n"
-.PD 0
-.IP "\fB\-\-no\-strip\-underscores\fR" 4
-.IX Item "--no-strip-underscores"
-.PD
-Do not remove the initial underscore.
-.IP "\fB\-p\fR" 4
-.IX Item "-p"
-.PD 0
-.IP "\fB\-\-no\-params\fR" 4
-.IX Item "--no-params"
-.PD
-When demangling the name of a function, do not display the types of
-the function's parameters.
-.IP "\fB\-s\fR \fIformat\fR" 4
-.IX Item "-s format"
-.PD 0
-.IP "\fB\-\-format=\fR\fIformat\fR" 4
-.IX Item "--format=format"
-.PD
-\&\fBc++filt\fR can decode various methods of mangling, used by
-different compilers.  The argument to this option selects which
-method it uses:
-.RS 4
-.ie n .IP """auto""" 4
-.el .IP "\f(CWauto\fR" 4
-.IX Item "auto"
-Automatic selection based on executable (the default method)
-.ie n .IP """gnu""" 4
-.el .IP "\f(CWgnu\fR" 4
-.IX Item "gnu"
-the one used by the \s-1GNU\s0 \*(C+ compiler (g++)
-.ie n .IP """lucid""" 4
-.el .IP "\f(CWlucid\fR" 4
-.IX Item "lucid"
-the one used by the Lucid compiler (lcc)
-.ie n .IP """arm""" 4
-.el .IP "\f(CWarm\fR" 4
-.IX Item "arm"
-the one specified by the \*(C+ Annotated Reference Manual
-.ie n .IP """hp""" 4
-.el .IP "\f(CWhp\fR" 4
-.IX Item "hp"
-the one used by the \s-1HP\s0 compiler (aCC)
-.ie n .IP """edg""" 4
-.el .IP "\f(CWedg\fR" 4
-.IX Item "edg"
-the one used by the \s-1EDG\s0 compiler
-.ie n .IP """gnu\-v3""" 4
-.el .IP "\f(CWgnu\-v3\fR" 4
-.IX Item "gnu-v3"
-the one used by the \s-1GNU\s0 \*(C+ compiler (g++) with the V3 \s-1ABI\s0.
-.ie n .IP """java""" 4
-.el .IP "\f(CWjava\fR" 4
-.IX Item "java"
-the one used by the \s-1GNU\s0 Java compiler (gcj)
-.ie n .IP """gnat""" 4
-.el .IP "\f(CWgnat\fR" 4
-.IX Item "gnat"
-the one used by the \s-1GNU\s0 Ada compiler (\s-1GNAT\s0).
-.RE
-.RS 4
-.RE
-.IP "\fB\-\-help\fR" 4
-.IX Item "--help"
-Print a summary of the options to \fBc++filt\fR and exit.
-.IP "\fB\-\-version\fR" 4
-.IX Item "--version"
-Print the version number of \fBc++filt\fR and exit.
-.SH "FOOTNOTES"
-.IX Header "FOOTNOTES"
-.IP "1." 4
-MS-DOS does not allow \f(CW\*(C`+\*(C'\fR characters in file names, so on
-MS-DOS this program is named \fB\s-1CXXFILT\s0\fR.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-the Info entries for \fIbinutils\fR.
-.SH "COPYRIGHT"
-.IX Header "COPYRIGHT"
-Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
-.PP
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1
-or any later version published by the Free Software Foundation;
-with no Invariant Sections, with no Front-Cover Texts, and with no
-Back-Cover Texts.  A copy of the license is included in the
-section entitled ``\s-1GNU\s0 Free Documentation License''.
Index: b/binutils-2.16.1/binutils/doc/dlltool.1
===================================================================
--- a/binutils-2.16.1/binutils/doc/dlltool.1
+++ /dev/null
@@ -1,457 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings.  \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  | will give a
-.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-.    ds -- \(*W-
-.    ds PI pi
-.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
-.    ds L" ""
-.    ds R" ""
-.    ds C` ""
-.    ds C' ""
-'br\}
-.el\{\
-.    ds -- \|\(em\|
-.    ds PI \(*p
-.    ds L" ``
-.    ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD.  Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-.    de IX
-.    tm Index:\\$1\t\\n%\t"\\$2"
-..
-.    nr % 0
-.    rr F
-.\}
-.\"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
-.    \" fudge factors for nroff and troff
-.if n \{\
-.    ds #H 0
-.    ds #V .8m
-.    ds #F .3m
-.    ds #[ \f1
-.    ds #] \fP
-.\}
-.if t \{\
-.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-.    ds #V .6m
-.    ds #F 0
-.    ds #[ \&
-.    ds #] \&
-.\}
-.    \" simple accents for nroff and troff
-.if n \{\
-.    ds ' \&
-.    ds ` \&
-.    ds ^ \&
-.    ds , \&
-.    ds ~ ~
-.    ds /
-.\}
-.if t \{\
-.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-.    \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-.    \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-.    \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-.    ds : e
-.    ds 8 ss
-.    ds o a
-.    ds d- d\h'-1'\(ga
-.    ds D- D\h'-1'\(hy
-.    ds th \o'bp'
-.    ds Th \o'LP'
-.    ds ae ae
-.    ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "DLLTOOL 1"
-.TH DLLTOOL 1 "2005-04-20" "binutils-2.15.97" "GNU Development Tools"
-.SH "NAME"
-dlltool \- Create files needed to build and use DLLs.
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-dlltool [\fB\-d\fR|\fB\-\-input\-def\fR \fIdef-file-name\fR]
-        [\fB\-b\fR|\fB\-\-base\-file\fR \fIbase-file-name\fR]
-        [\fB\-e\fR|\fB\-\-output\-exp\fR \fIexports-file-name\fR]
-        [\fB\-z\fR|\fB\-\-output\-def\fR \fIdef-file-name\fR]
-        [\fB\-l\fR|\fB\-\-output\-lib\fR \fIlibrary-file-name\fR]        
-        [\fB\-\-export\-all\-symbols\fR] [\fB\-\-no\-export\-all\-symbols\fR]
-        [\fB\-\-exclude\-symbols\fR \fIlist\fR]
-        [\fB\-\-no\-default\-excludes\fR]
-        [\fB\-S\fR|\fB\-\-as\fR \fIpath-to-assembler\fR] [\fB\-f\fR|\fB\-\-as\-flags\fR \fIoptions\fR]
-        [\fB\-D\fR|\fB\-\-dllname\fR \fIname\fR] [\fB\-m\fR|\fB\-\-machine\fR \fImachine\fR]
-        [\fB\-a\fR|\fB\-\-add\-indirect\fR] [\fB\-U\fR|\fB\-\-add\-underscore\fR] [\fB\-k\fR|\fB\-\-kill\-at\fR]
-        [\fB\-A\fR|\fB\-\-add\-stdcall\-alias\fR]
-        [\fB\-p\fR|\fB\-\-ext\-prefix\-alias\fR \fIprefix\fR]
-        [\fB\-x\fR|\fB\-\-no\-idata4\fR] [\fB\-c\fR|\fB\-\-no\-idata5\fR] [\fB\-i\fR|\fB\-\-interwork\fR]
-        [\fB\-n\fR|\fB\-\-nodelete\fR] [\fB\-t\fR|\fB\-\-temp\-prefix\fR \fIprefix\fR]
-        [\fB\-v\fR|\fB\-\-verbose\fR] 
-        [\fB\-h\fR|\fB\-\-help\fR] [\fB\-V\fR|\fB\-\-version\fR]
-        [object\-file ...]
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-\&\fBdlltool\fR reads its inputs, which can come from the \fB\-d\fR and
-\&\fB\-b\fR options as well as object files specified on the command
-line.  It then processes these inputs and if the \fB\-e\fR option has
-been specified it creates a exports file.  If the \fB\-l\fR option
-has been specified it creates a library file and if the \fB\-z\fR option
-has been specified it creates a def file.  Any or all of the \fB\-e\fR, 
-\&\fB\-l\fR and \fB\-z\fR options can be present in one invocation of 
-dlltool.
-.PP
-When creating a \s-1DLL\s0, along with the source for the \s-1DLL\s0, it is necessary
-to have three other files.  \fBdlltool\fR can help with the creation of
-these files.
-.PP
-The first file is a \fI.def\fR file which specifies which functions are
-exported from the \s-1DLL\s0, which functions the \s-1DLL\s0 imports, and so on.  This
-is a text file and can be created by hand, or \fBdlltool\fR can be used
-to create it using the \fB\-z\fR option.  In this case \fBdlltool\fR
-will scan the object files specified on its command line looking for
-those functions which have been specially marked as being exported and
-put entries for them in the \fI.def\fR file it creates.
-.PP
-In order to mark a function as being exported from a \s-1DLL\s0, it needs to
-have an \fB\-export:<name_of_function>\fR entry in the \fB.drectve\fR
-section of the object file.  This can be done in C by using the
-\&\fIasm()\fR operator:
-.PP
-.Vb 2
-\&          asm (".section .drectve");  
-\&          asm (".ascii \e"\-export:my_func\e"");
-.Ve
-.PP
-.Vb 1
-\&          int my_func (void) { ... }
-.Ve
-.PP
-The second file needed for \s-1DLL\s0 creation is an exports file.  This file
-is linked with the object files that make up the body of the \s-1DLL\s0 and it
-handles the interface between the \s-1DLL\s0 and the outside world.  This is a
-binary file and it can be created by giving the \fB\-e\fR option to
-\&\fBdlltool\fR when it is creating or reading in a \fI.def\fR file. 
-.PP
-The third file needed for \s-1DLL\s0 creation is the library file that programs
-will link with in order to access the functions in the \s-1DLL\s0.  This file
-can be created by giving the \fB\-l\fR option to dlltool when it
-is creating or reading in a \fI.def\fR file.
-.PP
-\&\fBdlltool\fR builds the library file by hand, but it builds the
-exports file by creating temporary files containing assembler statements
-and then assembling these.  The \fB\-S\fR command line option can be
-used to specify the path to the assembler that dlltool will use,
-and the \fB\-f\fR option can be used to pass specific flags to that
-assembler.  The \fB\-n\fR can be used to prevent dlltool from deleting
-these temporary assembler files when it is done, and if \fB\-n\fR is
-specified twice then this will prevent dlltool from deleting the
-temporary object files it used to build the library.
-.PP
-Here is an example of creating a \s-1DLL\s0 from a source file \fBdll.c\fR and
-also creating a program (from an object file called \fBprogram.o\fR)
-that uses that \s-1DLL:\s0
-.PP
-.Vb 4
-\&          gcc \-c dll.c
-\&          dlltool \-e exports.o \-l dll.lib dll.o
-\&          gcc dll.o exports.o \-o dll.dll
-\&          gcc program.o dll.lib \-o program
-.Ve
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-The command line options have the following meanings:
-.IP "\fB\-d\fR \fIfilename\fR" 4
-.IX Item "-d filename"
-.PD 0
-.IP "\fB\-\-input\-def\fR \fIfilename\fR" 4
-.IX Item "--input-def filename"
-.PD
-Specifies the name of a \fI.def\fR file to be read in and processed.
-.IP "\fB\-b\fR \fIfilename\fR" 4
-.IX Item "-b filename"
-.PD 0
-.IP "\fB\-\-base\-file\fR \fIfilename\fR" 4
-.IX Item "--base-file filename"
-.PD
-Specifies the name of a base file to be read in and processed.  The
-contents of this file will be added to the relocation section in the
-exports file generated by dlltool.
-.IP "\fB\-e\fR \fIfilename\fR" 4
-.IX Item "-e filename"
-.PD 0
-.IP "\fB\-\-output\-exp\fR \fIfilename\fR" 4
-.IX Item "--output-exp filename"
-.PD
-Specifies the name of the export file to be created by dlltool.
-.IP "\fB\-z\fR \fIfilename\fR" 4
-.IX Item "-z filename"
-.PD 0
-.IP "\fB\-\-output\-def\fR \fIfilename\fR" 4
-.IX Item "--output-def filename"
-.PD
-Specifies the name of the \fI.def\fR file to be created by dlltool.
-.IP "\fB\-l\fR \fIfilename\fR" 4
-.IX Item "-l filename"
-.PD 0
-.IP "\fB\-\-output\-lib\fR \fIfilename\fR" 4
-.IX Item "--output-lib filename"
-.PD
-Specifies the name of the library file to be created by dlltool.
-.IP "\fB\-\-export\-all\-symbols\fR" 4
-.IX Item "--export-all-symbols"
-Treat all global and weak defined symbols found in the input object
-files as symbols to be exported.  There is a small list of symbols which
-are not exported by default; see the \fB\-\-no\-default\-excludes\fR
-option.  You may add to the list of symbols to not export by using the
-\&\fB\-\-exclude\-symbols\fR option.
-.IP "\fB\-\-no\-export\-all\-symbols\fR" 4
-.IX Item "--no-export-all-symbols"
-Only export symbols explicitly listed in an input \fI.def\fR file or in
-\&\fB.drectve\fR sections in the input object files.  This is the default
-behaviour.  The \fB.drectve\fR sections are created by \fBdllexport\fR
-attributes in the source code.
-.IP "\fB\-\-exclude\-symbols\fR \fIlist\fR" 4
-.IX Item "--exclude-symbols list"
-Do not export the symbols in \fIlist\fR.  This is a list of symbol names
-separated by comma or colon characters.  The symbol names should not
-contain a leading underscore.  This is only meaningful when
-\&\fB\-\-export\-all\-symbols\fR is used.
-.IP "\fB\-\-no\-default\-excludes\fR" 4
-.IX Item "--no-default-excludes"
-When \fB\-\-export\-all\-symbols\fR is used, it will by default avoid
-exporting certain special symbols.  The current list of symbols to avoid
-exporting is \fBDllMain@12\fR, \fBDllEntryPoint@0\fR,
-\&\fBimpure_ptr\fR.  You may use the \fB\-\-no\-default\-excludes\fR option
-to go ahead and export these special symbols.  This is only meaningful
-when \fB\-\-export\-all\-symbols\fR is used.
-.IP "\fB\-S\fR \fIpath\fR" 4
-.IX Item "-S path"
-.PD 0
-.IP "\fB\-\-as\fR \fIpath\fR" 4
-.IX Item "--as path"
-.PD
-Specifies the path, including the filename, of the assembler to be used
-to create the exports file.
-.IP "\fB\-f\fR \fIoptions\fR" 4
-.IX Item "-f options"
-.PD 0
-.IP "\fB\-\-as\-flags\fR \fIoptions\fR" 4
-.IX Item "--as-flags options"
-.PD
-Specifies any specific command line options to be passed to the
-assembler when building the exports file.  This option will work even if
-the \fB\-S\fR option is not used.  This option only takes one argument,
-and if it occurs more than once on the command line, then later
-occurrences will override earlier occurrences.  So if it is necessary to
-pass multiple options to the assembler they should be enclosed in
-double quotes.
-.IP "\fB\-D\fR \fIname\fR" 4
-.IX Item "-D name"
-.PD 0
-.IP "\fB\-\-dll\-name\fR \fIname\fR" 4
-.IX Item "--dll-name name"
-.PD
-Specifies the name to be stored in the \fI.def\fR file as the name of
-the \s-1DLL\s0 when the \fB\-e\fR option is used.  If this option is not
-present, then the filename given to the \fB\-e\fR option will be
-used as the name of the \s-1DLL\s0.
-.IP "\fB\-m\fR \fImachine\fR" 4
-.IX Item "-m machine"
-.PD 0
-.IP "\fB\-machine\fR \fImachine\fR" 4
-.IX Item "-machine machine"
-.PD
-Specifies the type of machine for which the library file should be
-built.  \fBdlltool\fR has a built in default type, depending upon how
-it was created, but this option can be used to override that.  This is
-normally only useful when creating DLLs for an \s-1ARM\s0 processor, when the
-contents of the \s-1DLL\s0 are actually encode using Thumb instructions.
-.IP "\fB\-a\fR" 4
-.IX Item "-a"
-.PD 0
-.IP "\fB\-\-add\-indirect\fR" 4
-.IX Item "--add-indirect"
-.PD
-Specifies that when \fBdlltool\fR is creating the exports file it
-should add a section which allows the exported functions to be
-referenced without using the import library.  Whatever the hell that
-means! 
-.IP "\fB\-U\fR" 4
-.IX Item "-U"
-.PD 0
-.IP "\fB\-\-add\-underscore\fR" 4
-.IX Item "--add-underscore"
-.PD
-Specifies that when \fBdlltool\fR is creating the exports file it
-should prepend an underscore to the names of the exported functions. 
-.IP "\fB\-k\fR" 4
-.IX Item "-k"
-.PD 0
-.IP "\fB\-\-kill\-at\fR" 4
-.IX Item "--kill-at"
-.PD
-Specifies that when \fBdlltool\fR is creating the exports file it
-should not append the string \fB@ <number>\fR.  These numbers are
-called ordinal numbers and they represent another way of accessing the
-function in a \s-1DLL\s0, other than by name.
-.IP "\fB\-A\fR" 4
-.IX Item "-A"
-.PD 0
-.IP "\fB\-\-add\-stdcall\-alias\fR" 4
-.IX Item "--add-stdcall-alias"
-.PD
-Specifies that when \fBdlltool\fR is creating the exports file it
-should add aliases for stdcall symbols without \fB@ <number>\fR
-in addition to the symbols with \fB@ <number>\fR.
-.IP "\fB\-p\fR" 4
-.IX Item "-p"
-.PD 0
-.IP "\fB\-\-ext\-prefix\-alias\fR \fIprefix\fR" 4
-.IX Item "--ext-prefix-alias prefix"
-.PD
-Causes \fBdlltool\fR to create external aliases for all \s-1DLL\s0
-imports with the specified prefix.  The aliases are created for both
-external and import symbols with no leading underscore.
-.IP "\fB\-x\fR" 4
-.IX Item "-x"
-.PD 0
-.IP "\fB\-\-no\-idata4\fR" 4
-.IX Item "--no-idata4"
-.PD
-Specifies that when \fBdlltool\fR is creating the exports and library
-files it should omit the \f(CW\*(C`.idata4\*(C'\fR section.  This is for compatibility
-with certain operating systems.
-.IP "\fB\-c\fR" 4
-.IX Item "-c"
-.PD 0
-.IP "\fB\-\-no\-idata5\fR" 4
-.IX Item "--no-idata5"
-.PD
-Specifies that when \fBdlltool\fR is creating the exports and library
-files it should omit the \f(CW\*(C`.idata5\*(C'\fR section.  This is for compatibility
-with certain operating systems.
-.IP "\fB\-i\fR" 4
-.IX Item "-i"
-.PD 0
-.IP "\fB\-\-interwork\fR" 4
-.IX Item "--interwork"
-.PD
-Specifies that \fBdlltool\fR should mark the objects in the library
-file and exports file that it produces as supporting interworking
-between \s-1ARM\s0 and Thumb code.
-.IP "\fB\-n\fR" 4
-.IX Item "-n"
-.PD 0
-.IP "\fB\-\-nodelete\fR" 4
-.IX Item "--nodelete"
-.PD
-Makes \fBdlltool\fR preserve the temporary assembler files it used to
-create the exports file.  If this option is repeated then dlltool will
-also preserve the temporary object files it uses to create the library
-file.
-.IP "\fB\-t\fR \fIprefix\fR" 4
-.IX Item "-t prefix"
-.PD 0
-.IP "\fB\-\-temp\-prefix\fR \fIprefix\fR" 4
-.IX Item "--temp-prefix prefix"
-.PD
-Makes \fBdlltool\fR use \fIprefix\fR when constructing the names of
-temporary assembler and object files.  By default, the temp file prefix
-is generated from the pid.  
-.IP "\fB\-v\fR" 4
-.IX Item "-v"
-.PD 0
-.IP "\fB\-\-verbose\fR" 4
-.IX Item "--verbose"
-.PD
-Make dlltool describe what it is doing.
-.IP "\fB\-h\fR" 4
-.IX Item "-h"
-.PD 0
-.IP "\fB\-\-help\fR" 4
-.IX Item "--help"
-.PD
-Displays a list of command line options and then exits.
-.IP "\fB\-V\fR" 4
-.IX Item "-V"
-.PD 0
-.IP "\fB\-\-version\fR" 4
-.IX Item "--version"
-.PD
-Displays dlltool's version number and then exits.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-The Info pages for \fIbinutils\fR.
-.SH "COPYRIGHT"
-.IX Header "COPYRIGHT"
-Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
-.PP
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1
-or any later version published by the Free Software Foundation;
-with no Invariant Sections, with no Front-Cover Texts, and with no
-Back-Cover Texts.  A copy of the license is included in the
-section entitled ``\s-1GNU\s0 Free Documentation License''.
Index: b/binutils-2.16.1/binutils/doc/nlmconv.1
===================================================================
--- a/binutils-2.16.1/binutils/doc/nlmconv.1
+++ /dev/null
@@ -1,230 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings.  \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  | will give a
-.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-.    ds -- \(*W-
-.    ds PI pi
-.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
-.    ds L" ""
-.    ds R" ""
-.    ds C` ""
-.    ds C' ""
-'br\}
-.el\{\
-.    ds -- \|\(em\|
-.    ds PI \(*p
-.    ds L" ``
-.    ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD.  Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-.    de IX
-.    tm Index:\\$1\t\\n%\t"\\$2"
-..
-.    nr % 0
-.    rr F
-.\}
-.\"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
-.    \" fudge factors for nroff and troff
-.if n \{\
-.    ds #H 0
-.    ds #V .8m
-.    ds #F .3m
-.    ds #[ \f1
-.    ds #] \fP
-.\}
-.if t \{\
-.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-.    ds #V .6m
-.    ds #F 0
-.    ds #[ \&
-.    ds #] \&
-.\}
-.    \" simple accents for nroff and troff
-.if n \{\
-.    ds ' \&
-.    ds ` \&
-.    ds ^ \&
-.    ds , \&
-.    ds ~ ~
-.    ds /
-.\}
-.if t \{\
-.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-.    \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-.    \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-.    \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-.    ds : e
-.    ds 8 ss
-.    ds o a
-.    ds d- d\h'-1'\(ga
-.    ds D- D\h'-1'\(hy
-.    ds th \o'bp'
-.    ds Th \o'LP'
-.    ds ae ae
-.    ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "NLMCONV 1"
-.TH NLMCONV 1 "2005-04-20" "binutils-2.15.97" "GNU Development Tools"
-.SH "NAME"
-nlmconv \- converts object code into an NLM.
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-nlmconv [\fB\-I\fR \fIbfdname\fR|\fB\-\-input\-target=\fR\fIbfdname\fR]
-        [\fB\-O\fR \fIbfdname\fR|\fB\-\-output\-target=\fR\fIbfdname\fR]
-        [\fB\-T\fR \fIheaderfile\fR|\fB\-\-header\-file=\fR\fIheaderfile\fR]
-        [\fB\-d\fR|\fB\-\-debug\fR] [\fB\-l\fR \fIlinker\fR|\fB\-\-linker=\fR\fIlinker\fR]
-        [\fB\-h\fR|\fB\-\-help\fR] [\fB\-V\fR|\fB\-\-version\fR]
-        \fIinfile\fR \fIoutfile\fR
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-\&\fBnlmconv\fR converts the relocatable \fBi386\fR object file
-\&\fIinfile\fR into the NetWare Loadable Module \fIoutfile\fR, optionally
-reading \fIheaderfile\fR for \s-1NLM\s0 header information.  For instructions
-on writing the \s-1NLM\s0 command file language used in header files, see the
-\&\fBlinkers\fR section, \fB\s-1NLMLINK\s0\fR in particular, of the \fI\s-1NLM\s0
-Development and Tools Overview\fR, which is part of the \s-1NLM\s0 Software
-Developer's Kit (``\s-1NLM\s0 \s-1SDK\s0''), available from Novell, Inc.
-\&\fBnlmconv\fR uses the \s-1GNU\s0 Binary File Descriptor library to read
-\&\fIinfile\fR;
-.PP
-\&\fBnlmconv\fR can perform a link step.  In other words, you can list
-more than one object file for input if you list them in the definitions
-file (rather than simply specifying one input file on the command line).
-In this case, \fBnlmconv\fR calls the linker for you.
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-.IP "\fB\-I\fR \fIbfdname\fR" 4
-.IX Item "-I bfdname"
-.PD 0
-.IP "\fB\-\-input\-target=\fR\fIbfdname\fR" 4
-.IX Item "--input-target=bfdname"
-.PD
-Object format of the input file.  \fBnlmconv\fR can usually determine
-the format of a given file (so no default is necessary).
-.IP "\fB\-O\fR \fIbfdname\fR" 4
-.IX Item "-O bfdname"
-.PD 0
-.IP "\fB\-\-output\-target=\fR\fIbfdname\fR" 4
-.IX Item "--output-target=bfdname"
-.PD
-Object format of the output file.  \fBnlmconv\fR infers the output
-format based on the input format, e.g. for a \fBi386\fR input file the
-output format is \fBnlm32\-i386\fR.
-.IP "\fB\-T\fR \fIheaderfile\fR" 4
-.IX Item "-T headerfile"
-.PD 0
-.IP "\fB\-\-header\-file=\fR\fIheaderfile\fR" 4
-.IX Item "--header-file=headerfile"
-.PD
-Reads \fIheaderfile\fR for \s-1NLM\s0 header information.  For instructions on
-writing the \s-1NLM\s0 command file language used in header files, see see the
-\&\fBlinkers\fR section, of the \fI\s-1NLM\s0 Development and Tools
-Overview\fR, which is part of the \s-1NLM\s0 Software Developer's Kit, available
-from Novell, Inc.
-.IP "\fB\-d\fR" 4
-.IX Item "-d"
-.PD 0
-.IP "\fB\-\-debug\fR" 4
-.IX Item "--debug"
-.PD
-Displays (on standard error) the linker command line used by \fBnlmconv\fR.
-.IP "\fB\-l\fR \fIlinker\fR" 4
-.IX Item "-l linker"
-.PD 0
-.IP "\fB\-\-linker=\fR\fIlinker\fR" 4
-.IX Item "--linker=linker"
-.PD
-Use \fIlinker\fR for any linking.  \fIlinker\fR can be an absolute or a
-relative pathname.
-.IP "\fB\-h\fR" 4
-.IX Item "-h"
-.PD 0
-.IP "\fB\-\-help\fR" 4
-.IX Item "--help"
-.PD
-Prints a usage summary.
-.IP "\fB\-V\fR" 4
-.IX Item "-V"
-.PD 0
-.IP "\fB\-\-version\fR" 4
-.IX Item "--version"
-.PD
-Prints the version number for \fBnlmconv\fR.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-the Info entries for \fIbinutils\fR.
-.SH "COPYRIGHT"
-.IX Header "COPYRIGHT"
-Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
-.PP
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1
-or any later version published by the Free Software Foundation;
-with no Invariant Sections, with no Front-Cover Texts, and with no
-Back-Cover Texts.  A copy of the license is included in the
-section entitled ``\s-1GNU\s0 Free Documentation License''.
Index: b/binutils-2.16.1/binutils/doc/nm.1
===================================================================
--- a/binutils-2.16.1/binutils/doc/nm.1
+++ /dev/null
@@ -1,436 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings.  \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  | will give a
-.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-.    ds -- \(*W-
-.    ds PI pi
-.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
-.    ds L" ""
-.    ds R" ""
-.    ds C` ""
-.    ds C' ""
-'br\}
-.el\{\
-.    ds -- \|\(em\|
-.    ds PI \(*p
-.    ds L" ``
-.    ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD.  Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-.    de IX
-.    tm Index:\\$1\t\\n%\t"\\$2"
-..
-.    nr % 0
-.    rr F
-.\}
-.\"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
-.    \" fudge factors for nroff and troff
-.if n \{\
-.    ds #H 0
-.    ds #V .8m
-.    ds #F .3m
-.    ds #[ \f1
-.    ds #] \fP
-.\}
-.if t \{\
-.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-.    ds #V .6m
-.    ds #F 0
-.    ds #[ \&
-.    ds #] \&
-.\}
-.    \" simple accents for nroff and troff
-.if n \{\
-.    ds ' \&
-.    ds ` \&
-.    ds ^ \&
-.    ds , \&
-.    ds ~ ~
-.    ds /
-.\}
-.if t \{\
-.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-.    \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-.    \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-.    \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-.    ds : e
-.    ds 8 ss
-.    ds o a
-.    ds d- d\h'-1'\(ga
-.    ds D- D\h'-1'\(hy
-.    ds th \o'bp'
-.    ds Th \o'LP'
-.    ds ae ae
-.    ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "NM 1"
-.TH NM 1 "2005-04-20" "binutils-2.15.97" "GNU Development Tools"
-.SH "NAME"
-nm \- list symbols from object files
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-nm [\fB\-a\fR|\fB\-\-debug\-syms\fR] [\fB\-g\fR|\fB\-\-extern\-only\fR]
-   [\fB\-B\fR] [\fB\-C\fR|\fB\-\-demangle\fR[=\fIstyle\fR]] [\fB\-D\fR|\fB\-\-dynamic\fR]
-   [\fB\-S\fR|\fB\-\-print\-size\fR] [\fB\-s\fR|\fB\-\-print\-armap\fR]
-   [\fB\-A\fR|\fB\-o\fR|\fB\-\-print\-file\-name\fR][\fB\-\-special\-syms\fR]
-   [\fB\-n\fR|\fB\-v\fR|\fB\-\-numeric\-sort\fR] [\fB\-p\fR|\fB\-\-no\-sort\fR]
-   [\fB\-r\fR|\fB\-\-reverse\-sort\fR] [\fB\-\-size\-sort\fR] [\fB\-u\fR|\fB\-\-undefined\-only\fR]
-   [\fB\-t\fR \fIradix\fR|\fB\-\-radix=\fR\fIradix\fR] [\fB\-P\fR|\fB\-\-portability\fR]
-   [\fB\-\-target=\fR\fIbfdname\fR] [\fB\-f\fR\fIformat\fR|\fB\-\-format=\fR\fIformat\fR]
-   [\fB\-\-defined\-only\fR] [\fB\-l\fR|\fB\-\-line\-numbers\fR] [\fB\-\-no\-demangle\fR]
-   [\fB\-V\fR|\fB\-\-version\fR] [\fB\-X 32_64\fR] [\fB\-\-help\fR]  [\fIobjfile\fR...]
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-\&\s-1GNU\s0 \fBnm\fR lists the symbols from object files \fIobjfile\fR....
-If no object files are listed as arguments, \fBnm\fR assumes the file
-\&\fIa.out\fR.
-.PP
-For each symbol, \fBnm\fR shows:
-.IP "\(bu" 4
-The symbol value, in the radix selected by options (see below), or
-hexadecimal by default.
-.IP "\(bu" 4
-The symbol type.  At least the following types are used; others are, as
-well, depending on the object file format.  If lowercase, the symbol is
-local; if uppercase, the symbol is global (external).
-.RS 4
-.ie n .IP """A""" 4
-.el .IP "\f(CWA\fR" 4
-.IX Item "A"
-The symbol's value is absolute, and will not be changed by further
-linking.
-.ie n .IP """B""" 4
-.el .IP "\f(CWB\fR" 4
-.IX Item "B"
-The symbol is in the uninitialized data section (known as \s-1BSS\s0).
-.ie n .IP """C""" 4
-.el .IP "\f(CWC\fR" 4
-.IX Item "C"
-The symbol is common.  Common symbols are uninitialized data.  When
-linking, multiple common symbols may appear with the same name.  If the
-symbol is defined anywhere, the common symbols are treated as undefined
-references.
-.ie n .IP """D""" 4
-.el .IP "\f(CWD\fR" 4
-.IX Item "D"
-The symbol is in the initialized data section.
-.ie n .IP """G""" 4
-.el .IP "\f(CWG\fR" 4
-.IX Item "G"
-The symbol is in an initialized data section for small objects.  Some
-object file formats permit more efficient access to small data objects,
-such as a global int variable as opposed to a large global array.
-.ie n .IP """I""" 4
-.el .IP "\f(CWI\fR" 4
-.IX Item "I"
-The symbol is an indirect reference to another symbol.  This is a \s-1GNU\s0
-extension to the a.out object file format which is rarely used.
-.ie n .IP """N""" 4
-.el .IP "\f(CWN\fR" 4
-.IX Item "N"
-The symbol is a debugging symbol.
-.ie n .IP """R""" 4
-.el .IP "\f(CWR\fR" 4
-.IX Item "R"
-The symbol is in a read only data section.
-.ie n .IP """S""" 4
-.el .IP "\f(CWS\fR" 4
-.IX Item "S"
-The symbol is in an uninitialized data section for small objects.
-.ie n .IP """T""" 4
-.el .IP "\f(CWT\fR" 4
-.IX Item "T"
-The symbol is in the text (code) section.
-.ie n .IP """U""" 4
-.el .IP "\f(CWU\fR" 4
-.IX Item "U"
-The symbol is undefined.
-.ie n .IP """V""" 4
-.el .IP "\f(CWV\fR" 4
-.IX Item "V"
-The symbol is a weak object.  When a weak defined symbol is linked with
-a normal defined symbol, the normal defined symbol is used with no error.
-When a weak undefined symbol is linked and the symbol is not defined,
-the value of the weak symbol becomes zero with no error.
-.ie n .IP """W""" 4
-.el .IP "\f(CWW\fR" 4
-.IX Item "W"
-The symbol is a weak symbol that has not been specifically tagged as a
-weak object symbol.  When a weak defined symbol is linked with a normal
-defined symbol, the normal defined symbol is used with no error.
-When a weak undefined symbol is linked and the symbol is not defined,
-the value of the symbol is determined in a system-specific manner without
-error.  On some systems, uppercase indicates that a default value has been 
-specified.
-.ie n .IP """\-""" 4
-.el .IP "\f(CW\-\fR" 4
-.IX Item "-"
-The symbol is a stabs symbol in an a.out object file.  In this case, the
-next values printed are the stabs other field, the stabs desc field, and
-the stab type.  Stabs symbols are used to hold debugging information.
-.ie n .IP """?""" 4
-.el .IP "\f(CW?\fR" 4
-.IX Item "?"
-The symbol type is unknown, or object file format specific.
-.RE
-.RS 4
-.RE
-.IP "\(bu" 4
-The symbol name.
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-The long and short forms of options, shown here as alternatives, are
-equivalent.
-.IP "\fB\-A\fR" 4
-.IX Item "-A"
-.PD 0
-.IP "\fB\-o\fR" 4
-.IX Item "-o"
-.IP "\fB\-\-print\-file\-name\fR" 4
-.IX Item "--print-file-name"
-.PD
-Precede each symbol by the name of the input file (or archive member)
-in which it was found, rather than identifying the input file once only,
-before all of its symbols.
-.IP "\fB\-a\fR" 4
-.IX Item "-a"
-.PD 0
-.IP "\fB\-\-debug\-syms\fR" 4
-.IX Item "--debug-syms"
-.PD
-Display all symbols, even debugger-only symbols; normally these are not
-listed.
-.IP "\fB\-B\fR" 4
-.IX Item "-B"
-The same as \fB\-\-format=bsd\fR (for compatibility with the \s-1MIPS\s0 \fBnm\fR).
-.IP "\fB\-C\fR" 4
-.IX Item "-C"
-.PD 0
-.IP "\fB\-\-demangle[=\fR\fIstyle\fR\fB]\fR" 4
-.IX Item "--demangle[=style]"
-.PD
-Decode (\fIdemangle\fR) low-level symbol names into user-level names.
-Besides removing any initial underscore prepended by the system, this
-makes \*(C+ function names readable. Different compilers have different
-mangling styles. The optional demangling style argument can be used to 
-choose an appropriate demangling style for your compiler. 
-.IP "\fB\-\-no\-demangle\fR" 4
-.IX Item "--no-demangle"
-Do not demangle low-level symbol names.  This is the default.
-.IP "\fB\-D\fR" 4
-.IX Item "-D"
-.PD 0
-.IP "\fB\-\-dynamic\fR" 4
-.IX Item "--dynamic"
-.PD
-Display the dynamic symbols rather than the normal symbols.  This is
-only meaningful for dynamic objects, such as certain types of shared
-libraries.
-.IP "\fB\-f\fR \fIformat\fR" 4
-.IX Item "-f format"
-.PD 0
-.IP "\fB\-\-format=\fR\fIformat\fR" 4
-.IX Item "--format=format"
-.PD
-Use the output format \fIformat\fR, which can be \f(CW\*(C`bsd\*(C'\fR,
-\&\f(CW\*(C`sysv\*(C'\fR, or \f(CW\*(C`posix\*(C'\fR.  The default is \f(CW\*(C`bsd\*(C'\fR.
-Only the first character of \fIformat\fR is significant; it can be
-either upper or lower case.
-.IP "\fB\-g\fR" 4
-.IX Item "-g"
-.PD 0
-.IP "\fB\-\-extern\-only\fR" 4
-.IX Item "--extern-only"
-.PD
-Display only external symbols.
-.IP "\fB\-l\fR" 4
-.IX Item "-l"
-.PD 0
-.IP "\fB\-\-line\-numbers\fR" 4
-.IX Item "--line-numbers"
-.PD
-For each symbol, use debugging information to try to find a filename and
-line number.  For a defined symbol, look for the line number of the
-address of the symbol.  For an undefined symbol, look for the line
-number of a relocation entry which refers to the symbol.  If line number
-information can be found, print it after the other symbol information.
-.IP "\fB\-n\fR" 4
-.IX Item "-n"
-.PD 0
-.IP "\fB\-v\fR" 4
-.IX Item "-v"
-.IP "\fB\-\-numeric\-sort\fR" 4
-.IX Item "--numeric-sort"
-.PD
-Sort symbols numerically by their addresses, rather than alphabetically
-by their names. 
-.IP "\fB\-p\fR" 4
-.IX Item "-p"
-.PD 0
-.IP "\fB\-\-no\-sort\fR" 4
-.IX Item "--no-sort"
-.PD
-Do not bother to sort the symbols in any order; print them in the order
-encountered.
-.IP "\fB\-P\fR" 4
-.IX Item "-P"
-.PD 0
-.IP "\fB\-\-portability\fR" 4
-.IX Item "--portability"
-.PD
-Use the \s-1POSIX\s0.2 standard output format instead of the default format.
-Equivalent to \fB\-f posix\fR.
-.IP "\fB\-S\fR" 4
-.IX Item "-S"
-.PD 0
-.IP "\fB\-\-print\-size\fR" 4
-.IX Item "--print-size"
-.PD
-Print size, not the value, of defined symbols for the \f(CW\*(C`bsd\*(C'\fR output format.
-.IP "\fB\-s\fR" 4
-.IX Item "-s"
-.PD 0
-.IP "\fB\-\-print\-armap\fR" 4
-.IX Item "--print-armap"
-.PD
-When listing symbols from archive members, include the index: a mapping
-(stored in the archive by \fBar\fR or \fBranlib\fR) of which modules
-contain definitions for which names.
-.IP "\fB\-r\fR" 4
-.IX Item "-r"
-.PD 0
-.IP "\fB\-\-reverse\-sort\fR" 4
-.IX Item "--reverse-sort"
-.PD
-Reverse the order of the sort (whether numeric or alphabetic); let the
-last come first.
-.IP "\fB\-\-size\-sort\fR" 4
-.IX Item "--size-sort"
-Sort symbols by size.  The size is computed as the difference between
-the value of the symbol and the value of the symbol with the next higher
-value.  If the \f(CW\*(C`bsd\*(C'\fR output format is used the size of the symbol 
-is printed, rather than the value, and \fB\-S\fR must be used in order 
-both size and value to be printed.
-.IP "\fB\-\-special\-syms\fR" 4
-.IX Item "--special-syms"
-Display symbols which have a target-specific special meaning.  These
-symbols are usually used by the target for some special processing and
-are not normally helpful when included included in the normal symbol
-lists.  For example for \s-1ARM\s0 targets this option would skip the mapping
-symbols used to mark transistions between \s-1ARM\s0 code, \s-1THUMB\s0 code and
-data.
-.IP "\fB\-t\fR \fIradix\fR" 4
-.IX Item "-t radix"
-.PD 0
-.IP "\fB\-\-radix=\fR\fIradix\fR" 4
-.IX Item "--radix=radix"
-.PD
-Use \fIradix\fR as the radix for printing the symbol values.  It must be
-\&\fBd\fR for decimal, \fBo\fR for octal, or \fBx\fR for hexadecimal.
-.IP "\fB\-\-target=\fR\fIbfdname\fR" 4
-.IX Item "--target=bfdname"
-Specify an object code format other than your system's default format.
-.IP "\fB\-u\fR" 4
-.IX Item "-u"
-.PD 0
-.IP "\fB\-\-undefined\-only\fR" 4
-.IX Item "--undefined-only"
-.PD
-Display only undefined symbols (those external to each object file).
-.IP "\fB\-\-defined\-only\fR" 4
-.IX Item "--defined-only"
-Display only defined symbols for each object file.
-.IP "\fB\-V\fR" 4
-.IX Item "-V"
-.PD 0
-.IP "\fB\-\-version\fR" 4
-.IX Item "--version"
-.PD
-Show the version number of \fBnm\fR and exit.
-.IP "\fB\-X\fR" 4
-.IX Item "-X"
-This option is ignored for compatibility with the \s-1AIX\s0 version of
-\&\fBnm\fR.  It takes one parameter which must be the string
-\&\fB32_64\fR.  The default mode of \s-1AIX\s0 \fBnm\fR corresponds
-to \fB\-X 32\fR, which is not supported by \s-1GNU\s0 \fBnm\fR.
-.IP "\fB\-\-help\fR" 4
-.IX Item "--help"
-Show a summary of the options to \fBnm\fR and exit.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-\&\fIar\fR\|(1), \fIobjdump\fR\|(1), \fIranlib\fR\|(1), and the Info entries for \fIbinutils\fR.
-.SH "COPYRIGHT"
-.IX Header "COPYRIGHT"
-Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
-.PP
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1
-or any later version published by the Free Software Foundation;
-with no Invariant Sections, with no Front-Cover Texts, and with no
-Back-Cover Texts.  A copy of the license is included in the
-section entitled ``\s-1GNU\s0 Free Documentation License''.
Index: b/binutils-2.16.1/binutils/doc/objcopy.1
===================================================================
--- a/binutils-2.16.1/binutils/doc/objcopy.1
+++ /dev/null
@@ -1,760 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings.  \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  | will give a
-.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-.    ds -- \(*W-
-.    ds PI pi
-.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
-.    ds L" ""
-.    ds R" ""
-.    ds C` ""
-.    ds C' ""
-'br\}
-.el\{\
-.    ds -- \|\(em\|
-.    ds PI \(*p
-.    ds L" ``
-.    ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD.  Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-.    de IX
-.    tm Index:\\$1\t\\n%\t"\\$2"
-..
-.    nr % 0
-.    rr F
-.\}
-.\"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
-.    \" fudge factors for nroff and troff
-.if n \{\
-.    ds #H 0
-.    ds #V .8m
-.    ds #F .3m
-.    ds #[ \f1
-.    ds #] \fP
-.\}
-.if t \{\
-.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-.    ds #V .6m
-.    ds #F 0
-.    ds #[ \&
-.    ds #] \&
-.\}
-.    \" simple accents for nroff and troff
-.if n \{\
-.    ds ' \&
-.    ds ` \&
-.    ds ^ \&
-.    ds , \&
-.    ds ~ ~
-.    ds /
-.\}
-.if t \{\
-.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-.    \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-.    \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-.    \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-.    ds : e
-.    ds 8 ss
-.    ds o a
-.    ds d- d\h'-1'\(ga
-.    ds D- D\h'-1'\(hy
-.    ds th \o'bp'
-.    ds Th \o'LP'
-.    ds ae ae
-.    ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "OBJCOPY 1"
-.TH OBJCOPY 1 "2005-04-20" "binutils-2.15.97" "GNU Development Tools"
-.SH "NAME"
-objcopy \- copy and translate object files
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-objcopy [\fB\-F\fR \fIbfdname\fR|\fB\-\-target=\fR\fIbfdname\fR]
-        [\fB\-I\fR \fIbfdname\fR|\fB\-\-input\-target=\fR\fIbfdname\fR]
-        [\fB\-O\fR \fIbfdname\fR|\fB\-\-output\-target=\fR\fIbfdname\fR]
-        [\fB\-B\fR \fIbfdarch\fR|\fB\-\-binary\-architecture=\fR\fIbfdarch\fR]
-        [\fB\-S\fR|\fB\-\-strip\-all\fR]
-        [\fB\-g\fR|\fB\-\-strip\-debug\fR]
-        [\fB\-K\fR \fIsymbolname\fR|\fB\-\-keep\-symbol=\fR\fIsymbolname\fR]
-        [\fB\-N\fR \fIsymbolname\fR|\fB\-\-strip\-symbol=\fR\fIsymbolname\fR]
-        [\fB\-\-strip\-unneeded\-symbol=\fR\fIsymbolname\fR]
-        [\fB\-G\fR \fIsymbolname\fR|\fB\-\-keep\-global\-symbol=\fR\fIsymbolname\fR]
-        [\fB\-L\fR \fIsymbolname\fR|\fB\-\-localize\-symbol=\fR\fIsymbolname\fR]
-        [\fB\-W\fR \fIsymbolname\fR|\fB\-\-weaken\-symbol=\fR\fIsymbolname\fR]
-        [\fB\-w\fR|\fB\-\-wildcard\fR]
-        [\fB\-x\fR|\fB\-\-discard\-all\fR]
-        [\fB\-X\fR|\fB\-\-discard\-locals\fR]
-        [\fB\-b\fR \fIbyte\fR|\fB\-\-byte=\fR\fIbyte\fR]
-        [\fB\-i\fR \fIinterleave\fR|\fB\-\-interleave=\fR\fIinterleave\fR]
-        [\fB\-j\fR \fIsectionname\fR|\fB\-\-only\-section=\fR\fIsectionname\fR]
-        [\fB\-R\fR \fIsectionname\fR|\fB\-\-remove\-section=\fR\fIsectionname\fR]
-        [\fB\-p\fR|\fB\-\-preserve\-dates\fR]
-        [\fB\-\-debugging\fR]
-        [\fB\-\-gap\-fill=\fR\fIval\fR]
-        [\fB\-\-pad\-to=\fR\fIaddress\fR]
-        [\fB\-\-set\-start=\fR\fIval\fR]
-        [\fB\-\-adjust\-start=\fR\fIincr\fR]
-        [\fB\-\-change\-addresses=\fR\fIincr\fR]
-        [\fB\-\-change\-section\-address\fR \fIsection\fR{=,+,\-}\fIval\fR]
-        [\fB\-\-change\-section\-lma\fR \fIsection\fR{=,+,\-}\fIval\fR]
-        [\fB\-\-change\-section\-vma\fR \fIsection\fR{=,+,\-}\fIval\fR]
-        [\fB\-\-change\-warnings\fR] [\fB\-\-no\-change\-warnings\fR]
-        [\fB\-\-set\-section\-flags\fR \fIsection\fR=\fIflags\fR]
-        [\fB\-\-add\-section\fR \fIsectionname\fR=\fIfilename\fR]
-        [\fB\-\-rename\-section\fR \fIoldname\fR=\fInewname\fR[,\fIflags\fR]]
-        [\fB\-\-change\-leading\-char\fR] [\fB\-\-remove\-leading\-char\fR]
-        [\fB\-\-srec\-len=\fR\fIival\fR] [\fB\-\-srec\-forceS3\fR]
-        [\fB\-\-redefine\-sym\fR \fIold\fR=\fInew\fR]
-        [\fB\-\-redefine\-syms=\fR\fIfilename\fR]
-        [\fB\-\-weaken\fR]
-        [\fB\-\-keep\-symbols=\fR\fIfilename\fR]
-        [\fB\-\-strip\-symbols=\fR\fIfilename\fR]
-        [\fB\-\-strip\-unneeded\-symbols=\fR\fIfilename\fR]
-        [\fB\-\-keep\-global\-symbols=\fR\fIfilename\fR]
-        [\fB\-\-localize\-symbols=\fR\fIfilename\fR]
-        [\fB\-\-weaken\-symbols=\fR\fIfilename\fR]
-        [\fB\-\-alt\-machine\-code=\fR\fIindex\fR]
-        [\fB\-\-prefix\-symbols=\fR\fIstring\fR]
-        [\fB\-\-prefix\-sections=\fR\fIstring\fR]
-        [\fB\-\-prefix\-alloc\-sections=\fR\fIstring\fR]
-        [\fB\-\-add\-gnu\-debuglink=\fR\fIpath-to-file\fR]
-        [\fB\-\-only\-keep\-debug\fR]
-        [\fB\-\-writable\-text\fR]
-        [\fB\-\-readonly\-text\fR]
-        [\fB\-\-pure\fR]
-        [\fB\-\-impure\fR]
-        [\fB\-v\fR|\fB\-\-verbose\fR]
-        [\fB\-V\fR|\fB\-\-version\fR]  
-        [\fB\-\-help\fR] [\fB\-\-info\fR]
-        \fIinfile\fR [\fIoutfile\fR]
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-The \s-1GNU\s0 \fBobjcopy\fR utility copies the contents of an object
-file to another.  \fBobjcopy\fR uses the \s-1GNU\s0 \s-1BFD\s0 Library to
-read and write the object files.  It can write the destination object
-file in a format different from that of the source object file.  The
-exact behavior of \fBobjcopy\fR is controlled by command-line options.
-Note that \fBobjcopy\fR should be able to copy a fully linked file
-between any two formats. However, copying a relocatable object file
-between any two formats may not work as expected.
-.PP
-\&\fBobjcopy\fR creates temporary files to do its translations and
-deletes them afterward.  \fBobjcopy\fR uses \s-1BFD\s0 to do all its
-translation work; it has access to all the formats described in \s-1BFD\s0
-and thus is able to recognize most formats without being told
-explicitly.  
-.PP
-\&\fBobjcopy\fR can be used to generate S\-records by using an output
-target of \fBsrec\fR (e.g., use \fB\-O srec\fR).
-.PP
-\&\fBobjcopy\fR can be used to generate a raw binary file by using an
-output target of \fBbinary\fR (e.g., use \fB\-O binary\fR).  When
-\&\fBobjcopy\fR generates a raw binary file, it will essentially produce
-a memory dump of the contents of the input object file.  All symbols and
-relocation information will be discarded.  The memory dump will start at
-the load address of the lowest section copied into the output file.
-.PP
-When generating an S\-record or a raw binary file, it may be helpful to
-use \fB\-S\fR to remove sections containing debugging information.  In
-some cases \fB\-R\fR will be useful to remove sections which contain
-information that is not needed by the binary file.
-.PP
-Note\-\-\-\fBobjcopy\fR is not able to change the endianness of its input
-files.  If the input format has an endianness (some formats do not),
-\&\fBobjcopy\fR can only copy the inputs into file formats that have the
-same endianness or which have no endianness (e.g., \fBsrec\fR).
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-.IP "\fIinfile\fR" 4
-.IX Item "infile"
-.PD 0
-.IP "\fIoutfile\fR" 4
-.IX Item "outfile"
-.PD
-The input and output files, respectively.
-If you do not specify \fIoutfile\fR, \fBobjcopy\fR creates a
-temporary file and destructively renames the result with
-the name of \fIinfile\fR.
-.IP "\fB\-I\fR \fIbfdname\fR" 4
-.IX Item "-I bfdname"
-.PD 0
-.IP "\fB\-\-input\-target=\fR\fIbfdname\fR" 4
-.IX Item "--input-target=bfdname"
-.PD
-Consider the source file's object format to be \fIbfdname\fR, rather than
-attempting to deduce it.  
-.IP "\fB\-O\fR \fIbfdname\fR" 4
-.IX Item "-O bfdname"
-.PD 0
-.IP "\fB\-\-output\-target=\fR\fIbfdname\fR" 4
-.IX Item "--output-target=bfdname"
-.PD
-Write the output file using the object format \fIbfdname\fR.
-.IP "\fB\-F\fR \fIbfdname\fR" 4
-.IX Item "-F bfdname"
-.PD 0
-.IP "\fB\-\-target=\fR\fIbfdname\fR" 4
-.IX Item "--target=bfdname"
-.PD
-Use \fIbfdname\fR as the object format for both the input and the output
-file; i.e., simply transfer data from source to destination with no
-translation.  
-.IP "\fB\-B\fR \fIbfdarch\fR" 4
-.IX Item "-B bfdarch"
-.PD 0
-.IP "\fB\-\-binary\-architecture=\fR\fIbfdarch\fR" 4
-.IX Item "--binary-architecture=bfdarch"
-.PD
-Useful when transforming a raw binary input file into an object file.
-In this case the output architecture can be set to \fIbfdarch\fR. This
-option will be ignored if the input file has a known \fIbfdarch\fR. You
-can access this binary data inside a program by referencing the special
-symbols that are created by the conversion process.  These symbols are
-called _binary_\fIobjfile\fR_start, _binary_\fIobjfile\fR_end and
-_binary_\fIobjfile\fR_size.  e.g. you can transform a picture file into
-an object file and then access it in your code using these symbols. 
-.IP "\fB\-j\fR \fIsectionname\fR" 4
-.IX Item "-j sectionname"
-.PD 0
-.IP "\fB\-\-only\-section=\fR\fIsectionname\fR" 4
-.IX Item "--only-section=sectionname"
-.PD
-Copy only the named section from the input file to the output file.
-This option may be given more than once.  Note that using this option
-inappropriately may make the output file unusable.
-.IP "\fB\-R\fR \fIsectionname\fR" 4
-.IX Item "-R sectionname"
-.PD 0
-.IP "\fB\-\-remove\-section=\fR\fIsectionname\fR" 4
-.IX Item "--remove-section=sectionname"
-.PD
-Remove any section named \fIsectionname\fR from the output file.  This
-option may be given more than once.  Note that using this option
-inappropriately may make the output file unusable.
-.IP "\fB\-S\fR" 4
-.IX Item "-S"
-.PD 0
-.IP "\fB\-\-strip\-all\fR" 4
-.IX Item "--strip-all"
-.PD
-Do not copy relocation and symbol information from the source file.
-.IP "\fB\-g\fR" 4
-.IX Item "-g"
-.PD 0
-.IP "\fB\-\-strip\-debug\fR" 4
-.IX Item "--strip-debug"
-.PD
-Do not copy debugging symbols or sections from the source file.
-.IP "\fB\-\-strip\-unneeded\fR" 4
-.IX Item "--strip-unneeded"
-Strip all symbols that are not needed for relocation processing.
-.IP "\fB\-K\fR \fIsymbolname\fR" 4
-.IX Item "-K symbolname"
-.PD 0
-.IP "\fB\-\-keep\-symbol=\fR\fIsymbolname\fR" 4
-.IX Item "--keep-symbol=symbolname"
-.PD
-Copy only symbol \fIsymbolname\fR from the source file.  This option may
-be given more than once.
-.IP "\fB\-N\fR \fIsymbolname\fR" 4
-.IX Item "-N symbolname"
-.PD 0
-.IP "\fB\-\-strip\-symbol=\fR\fIsymbolname\fR" 4
-.IX Item "--strip-symbol=symbolname"
-.PD
-Do not copy symbol \fIsymbolname\fR from the source file.  This option
-may be given more than once.
-.IP "\fB\-\-strip\-unneeded\-symbol=\fR\fIsymbolname\fR" 4
-.IX Item "--strip-unneeded-symbol=symbolname"
-Do not copy symbol \fIsymbolname\fR from the source file unless it is needed
-by a relocation.  This option may be given more than once.
-.IP "\fB\-G\fR \fIsymbolname\fR" 4
-.IX Item "-G symbolname"
-.PD 0
-.IP "\fB\-\-keep\-global\-symbol=\fR\fIsymbolname\fR" 4
-.IX Item "--keep-global-symbol=symbolname"
-.PD
-Keep only symbol \fIsymbolname\fR global.  Make all other symbols local
-to the file, so that they are not visible externally.  This option may
-be given more than once.
-.IP "\fB\-L\fR \fIsymbolname\fR" 4
-.IX Item "-L symbolname"
-.PD 0
-.IP "\fB\-\-localize\-symbol=\fR\fIsymbolname\fR" 4
-.IX Item "--localize-symbol=symbolname"
-.PD
-Make symbol \fIsymbolname\fR local to the file, so that it is not
-visible externally.  This option may be given more than once.
-.IP "\fB\-W\fR \fIsymbolname\fR" 4
-.IX Item "-W symbolname"
-.PD 0
-.IP "\fB\-\-weaken\-symbol=\fR\fIsymbolname\fR" 4
-.IX Item "--weaken-symbol=symbolname"
-.PD
-Make symbol \fIsymbolname\fR weak. This option may be given more than once.
-.IP "\fB\-w\fR" 4
-.IX Item "-w"
-.PD 0
-.IP "\fB\-\-wildcard\fR" 4
-.IX Item "--wildcard"
-.PD
-Permit regular expressions in \fIsymbolname\fRs used in other command
-line options.  The question mark (?), asterisk (*), backslash (\e) and
-square brackets ([]) operators can be used anywhere in the symbol
-name.  If the first character of the symbol name is the exclamation
-point (!) then the sense of the switch is reversed for that symbol.
-For example:
-.Sp
-.Vb 1
-\&          \-w \-W !foo \-W fo*
-.Ve
-.Sp
-would cause objcopy to weaken all symbols that start with ``fo''
-except for the symbol ``foo''.
-.IP "\fB\-x\fR" 4
-.IX Item "-x"
-.PD 0
-.IP "\fB\-\-discard\-all\fR" 4
-.IX Item "--discard-all"
-.PD
-Do not copy non-global symbols from the source file.
-.IP "\fB\-X\fR" 4
-.IX Item "-X"
-.PD 0
-.IP "\fB\-\-discard\-locals\fR" 4
-.IX Item "--discard-locals"
-.PD
-Do not copy compiler-generated local symbols.
-(These usually start with \fBL\fR or \fB.\fR.)
-.IP "\fB\-b\fR \fIbyte\fR" 4
-.IX Item "-b byte"
-.PD 0
-.IP "\fB\-\-byte=\fR\fIbyte\fR" 4
-.IX Item "--byte=byte"
-.PD
-Keep only every \fIbyte\fRth byte of the input file (header data is not
-affected).  \fIbyte\fR can be in the range from 0 to \fIinterleave\fR\-1,
-where \fIinterleave\fR is given by the \fB\-i\fR or \fB\-\-interleave\fR
-option, or the default of 4.  This option is useful for creating files
-to program \s-1ROM\s0.  It is typically used with an \f(CW\*(C`srec\*(C'\fR output
-target.
-.IP "\fB\-i\fR \fIinterleave\fR" 4
-.IX Item "-i interleave"
-.PD 0
-.IP "\fB\-\-interleave=\fR\fIinterleave\fR" 4
-.IX Item "--interleave=interleave"
-.PD
-Only copy one out of every \fIinterleave\fR bytes.  Select which byte to
-copy with the \fB\-b\fR or \fB\-\-byte\fR option.  The default is 4.
-\&\fBobjcopy\fR ignores this option if you do not specify either \fB\-b\fR or
-\&\fB\-\-byte\fR.
-.IP "\fB\-p\fR" 4
-.IX Item "-p"
-.PD 0
-.IP "\fB\-\-preserve\-dates\fR" 4
-.IX Item "--preserve-dates"
-.PD
-Set the access and modification dates of the output file to be the same
-as those of the input file.
-.IP "\fB\-\-debugging\fR" 4
-.IX Item "--debugging"
-Convert debugging information, if possible.  This is not the default
-because only certain debugging formats are supported, and the
-conversion process can be time consuming.
-.IP "\fB\-\-gap\-fill\fR \fIval\fR" 4
-.IX Item "--gap-fill val"
-Fill gaps between sections with \fIval\fR.  This operation applies to
-the \fIload address\fR (\s-1LMA\s0) of the sections.  It is done by increasing
-the size of the section with the lower address, and filling in the extra
-space created with \fIval\fR.
-.IP "\fB\-\-pad\-to\fR \fIaddress\fR" 4
-.IX Item "--pad-to address"
-Pad the output file up to the load address \fIaddress\fR.  This is
-done by increasing the size of the last section.  The extra space is
-filled in with the value specified by \fB\-\-gap\-fill\fR (default zero).
-.IP "\fB\-\-set\-start\fR \fIval\fR" 4
-.IX Item "--set-start val"
-Set the start address of the new file to \fIval\fR.  Not all object file
-formats support setting the start address.
-.IP "\fB\-\-change\-start\fR \fIincr\fR" 4
-.IX Item "--change-start incr"
-.PD 0
-.IP "\fB\-\-adjust\-start\fR \fIincr\fR" 4
-.IX Item "--adjust-start incr"
-.PD
-Change the start address by adding \fIincr\fR.  Not all object file
-formats support setting the start address.
-.IP "\fB\-\-change\-addresses\fR \fIincr\fR" 4
-.IX Item "--change-addresses incr"
-.PD 0
-.IP "\fB\-\-adjust\-vma\fR \fIincr\fR" 4
-.IX Item "--adjust-vma incr"
-.PD
-Change the \s-1VMA\s0 and \s-1LMA\s0 addresses of all sections, as well as the start
-address, by adding \fIincr\fR.  Some object file formats do not permit
-section addresses to be changed arbitrarily.  Note that this does not
-relocate the sections; if the program expects sections to be loaded at a
-certain address, and this option is used to change the sections such
-that they are loaded at a different address, the program may fail. 
-.IP "\fB\-\-change\-section\-address\fR \fIsection\fR\fB{=,+,\-}\fR\fIval\fR" 4
-.IX Item "--change-section-address section{=,+,-}val"
-.PD 0
-.IP "\fB\-\-adjust\-section\-vma\fR \fIsection\fR\fB{=,+,\-}\fR\fIval\fR" 4
-.IX Item "--adjust-section-vma section{=,+,-}val"
-.PD
-Set or change both the \s-1VMA\s0 address and the \s-1LMA\s0 address of the named
-\&\fIsection\fR.  If \fB=\fR is used, the section address is set to
-\&\fIval\fR.  Otherwise, \fIval\fR is added to or subtracted from the
-section address.  See the comments under \fB\-\-change\-addresses\fR,
-above. If \fIsection\fR does not exist in the input file, a warning will
-be issued, unless \fB\-\-no\-change\-warnings\fR is used.
-.IP "\fB\-\-change\-section\-lma\fR \fIsection\fR\fB{=,+,\-}\fR\fIval\fR" 4
-.IX Item "--change-section-lma section{=,+,-}val"
-Set or change the \s-1LMA\s0 address of the named \fIsection\fR.  The \s-1LMA\s0
-address is the address where the section will be loaded into memory at
-program load time.  Normally this is the same as the \s-1VMA\s0 address, which
-is the address of the section at program run time, but on some systems,
-especially those where a program is held in \s-1ROM\s0, the two can be
-different.  If \fB=\fR is used, the section address is set to
-\&\fIval\fR.  Otherwise, \fIval\fR is added to or subtracted from the
-section address.  See the comments under \fB\-\-change\-addresses\fR,
-above.  If \fIsection\fR does not exist in the input file, a warning
-will be issued, unless \fB\-\-no\-change\-warnings\fR is used.  
-.IP "\fB\-\-change\-section\-vma\fR \fIsection\fR\fB{=,+,\-}\fR\fIval\fR" 4
-.IX Item "--change-section-vma section{=,+,-}val"
-Set or change the \s-1VMA\s0 address of the named \fIsection\fR.  The \s-1VMA\s0
-address is the address where the section will be located once the
-program has started executing.  Normally this is the same as the \s-1LMA\s0
-address, which is the address where the section will be loaded into
-memory, but on some systems, especially those where a program is held in
-\&\s-1ROM\s0, the two can be different.  If \fB=\fR is used, the section address
-is set to \fIval\fR.  Otherwise, \fIval\fR is added to or subtracted
-from the section address.  See the comments under
-\&\fB\-\-change\-addresses\fR, above.  If \fIsection\fR does not exist in
-the input file, a warning will be issued, unless
-\&\fB\-\-no\-change\-warnings\fR is used.   
-.IP "\fB\-\-change\-warnings\fR" 4
-.IX Item "--change-warnings"
-.PD 0
-.IP "\fB\-\-adjust\-warnings\fR" 4
-.IX Item "--adjust-warnings"
-.PD
-If \fB\-\-change\-section\-address\fR or \fB\-\-change\-section\-lma\fR or
-\&\fB\-\-change\-section\-vma\fR is used, and the named section does not
-exist, issue a warning.  This is the default. 
-.IP "\fB\-\-no\-change\-warnings\fR" 4
-.IX Item "--no-change-warnings"
-.PD 0
-.IP "\fB\-\-no\-adjust\-warnings\fR" 4
-.IX Item "--no-adjust-warnings"
-.PD
-Do not issue a warning if \fB\-\-change\-section\-address\fR or
-\&\fB\-\-adjust\-section\-lma\fR or \fB\-\-adjust\-section\-vma\fR is used, even
-if the named section does not exist. 
-.IP "\fB\-\-set\-section\-flags\fR \fIsection\fR\fB=\fR\fIflags\fR" 4
-.IX Item "--set-section-flags section=flags"
-Set the flags for the named section.  The \fIflags\fR argument is a
-comma separated string of flag names.  The recognized names are
-\&\fBalloc\fR, \fBcontents\fR, \fBload\fR, \fBnoload\fR,
-\&\fBreadonly\fR, \fBcode\fR, \fBdata\fR, \fBrom\fR, \fBshare\fR, and
-\&\fBdebug\fR.  You can set the \fBcontents\fR flag for a section which
-does not have contents, but it is not meaningful to clear the
-\&\fBcontents\fR flag of a section which does have contents\*(--just remove
-the section instead.  Not all flags are meaningful for all object file
-formats.
-.IP "\fB\-\-add\-section\fR \fIsectionname\fR\fB=\fR\fIfilename\fR" 4
-.IX Item "--add-section sectionname=filename"
-Add a new section named \fIsectionname\fR while copying the file.  The
-contents of the new section are taken from the file \fIfilename\fR.  The
-size of the section will be the size of the file.  This option only
-works on file formats which can support sections with arbitrary names.
-.IP "\fB\-\-rename\-section\fR \fIoldname\fR\fB=\fR\fInewname\fR\fB[,\fR\fIflags\fR\fB]\fR" 4
-.IX Item "--rename-section oldname=newname[,flags]"
-Rename a section from \fIoldname\fR to \fInewname\fR, optionally
-changing the section's flags to \fIflags\fR in the process.  This has
-the advantage over usng a linker script to perform the rename in that
-the output stays as an object file and does not become a linked
-executable.
-.Sp
-This option is particularly helpful when the input format is binary,
-since this will always create a section called .data.  If for example,
-you wanted instead to create a section called .rodata containing binary
-data you could use the following command line to achieve it:
-.Sp
-.Vb 3
-\&          objcopy \-I binary \-O <output_format> \-B <architecture> \e
-\&           \-\-rename\-section .data=.rodata,alloc,load,readonly,data,contents \e
-\&           <input_binary_file> <output_object_file>
-.Ve
-.IP "\fB\-\-change\-leading\-char\fR" 4
-.IX Item "--change-leading-char"
-Some object file formats use special characters at the start of
-symbols.  The most common such character is underscore, which compilers
-often add before every symbol.  This option tells \fBobjcopy\fR to
-change the leading character of every symbol when it converts between
-object file formats.  If the object file formats use the same leading
-character, this option has no effect.  Otherwise, it will add a
-character, or remove a character, or change a character, as
-appropriate.
-.IP "\fB\-\-remove\-leading\-char\fR" 4
-.IX Item "--remove-leading-char"
-If the first character of a global symbol is a special symbol leading
-character used by the object file format, remove the character.  The
-most common symbol leading character is underscore.  This option will
-remove a leading underscore from all global symbols.  This can be useful
-if you want to link together objects of different file formats with
-different conventions for symbol names.  This is different from
-\&\fB\-\-change\-leading\-char\fR because it always changes the symbol name
-when appropriate, regardless of the object file format of the output
-file.
-.IP "\fB\-\-srec\-len=\fR\fIival\fR" 4
-.IX Item "--srec-len=ival"
-Meaningful only for srec output.  Set the maximum length of the Srecords
-being produced to \fIival\fR.  This length covers both address, data and
-crc fields.
-.IP "\fB\-\-srec\-forceS3\fR" 4
-.IX Item "--srec-forceS3"
-Meaningful only for srec output.  Avoid generation of S1/S2 records, 
-creating S3\-only record format.
-.IP "\fB\-\-redefine\-sym\fR \fIold\fR\fB=\fR\fInew\fR" 4
-.IX Item "--redefine-sym old=new"
-Change the name of a symbol \fIold\fR, to \fInew\fR.  This can be useful
-when one is trying link two things together for which you have no
-source, and there are name collisions.
-.IP "\fB\-\-redefine\-syms=\fR\fIfilename\fR" 4
-.IX Item "--redefine-syms=filename"
-Apply \fB\-\-redefine\-sym\fR to each symbol pair "\fIold\fR \fInew\fR"
-listed in the file \fIfilename\fR.  \fIfilename\fR is simply a flat file,
-with one symbol pair per line.  Line comments may be introduced by the hash
-character.  This option may be given more than once.
-.IP "\fB\-\-weaken\fR" 4
-.IX Item "--weaken"
-Change all global symbols in the file to be weak.  This can be useful
-when building an object which will be linked against other objects using
-the \fB\-R\fR option to the linker.  This option is only effective when
-using an object file format which supports weak symbols.
-.IP "\fB\-\-keep\-symbols=\fR\fIfilename\fR" 4
-.IX Item "--keep-symbols=filename"
-Apply \fB\-\-keep\-symbol\fR option to each symbol listed in the file
-\&\fIfilename\fR.  \fIfilename\fR is simply a flat file, with one symbol
-name per line.  Line comments may be introduced by the hash character.
-This option may be given more than once.
-.IP "\fB\-\-strip\-symbols=\fR\fIfilename\fR" 4
-.IX Item "--strip-symbols=filename"
-Apply \fB\-\-strip\-symbol\fR option to each symbol listed in the file
-\&\fIfilename\fR.  \fIfilename\fR is simply a flat file, with one symbol
-name per line.  Line comments may be introduced by the hash character.
-This option may be given more than once.
-.IP "\fB\-\-strip\-unneeded\-symbols=\fR\fIfilename\fR" 4
-.IX Item "--strip-unneeded-symbols=filename"
-Apply \fB\-\-strip\-unneeded\-symbol\fR option to each symbol listed in
-the file \fIfilename\fR.  \fIfilename\fR is simply a flat file, with one
-symbol name per line.  Line comments may be introduced by the hash
-character.  This option may be given more than once.
-.IP "\fB\-\-keep\-global\-symbols=\fR\fIfilename\fR" 4
-.IX Item "--keep-global-symbols=filename"
-Apply \fB\-\-keep\-global\-symbol\fR option to each symbol listed in the
-file \fIfilename\fR.  \fIfilename\fR is simply a flat file, with one
-symbol name per line.  Line comments may be introduced by the hash
-character.  This option may be given more than once.
-.IP "\fB\-\-localize\-symbols=\fR\fIfilename\fR" 4
-.IX Item "--localize-symbols=filename"
-Apply \fB\-\-localize\-symbol\fR option to each symbol listed in the file
-\&\fIfilename\fR.  \fIfilename\fR is simply a flat file, with one symbol
-name per line.  Line comments may be introduced by the hash character.
-This option may be given more than once.
-.IP "\fB\-\-weaken\-symbols=\fR\fIfilename\fR" 4
-.IX Item "--weaken-symbols=filename"
-Apply \fB\-\-weaken\-symbol\fR option to each symbol listed in the file
-\&\fIfilename\fR.  \fIfilename\fR is simply a flat file, with one symbol
-name per line.  Line comments may be introduced by the hash character.
-This option may be given more than once.
-.IP "\fB\-\-alt\-machine\-code=\fR\fIindex\fR" 4
-.IX Item "--alt-machine-code=index"
-If the output architecture has alternate machine codes, use the
-\&\fIindex\fRth code instead of the default one.  This is useful in case
-a machine is assigned an official code and the tool-chain adopts the 
-new code, but other applications still depend on the original code
-being used.
-.IP "\fB\-\-writable\-text\fR" 4
-.IX Item "--writable-text"
-Mark the output text as writable.  This option isn't meaningful for all
-object file formats.
-.IP "\fB\-\-readonly\-text\fR" 4
-.IX Item "--readonly-text"
-Make the output text write protected.  This option isn't meaningful for all
-object file formats.
-.IP "\fB\-\-pure\fR" 4
-.IX Item "--pure"
-Mark the output file as demand paged.  This option isn't meaningful for all
-object file formats.
-.IP "\fB\-\-impure\fR" 4
-.IX Item "--impure"
-Mark the output file as impure.  This option isn't meaningful for all
-object file formats.
-.IP "\fB\-\-prefix\-symbols=\fR\fIstring\fR" 4
-.IX Item "--prefix-symbols=string"
-Prefix all symbols in the output file with \fIstring\fR.
-.IP "\fB\-\-prefix\-sections=\fR\fIstring\fR" 4
-.IX Item "--prefix-sections=string"
-Prefix all section names in the output file with \fIstring\fR.
-.IP "\fB\-\-prefix\-alloc\-sections=\fR\fIstring\fR" 4
-.IX Item "--prefix-alloc-sections=string"
-Prefix all the names of all allocated sections in the output file with
-\&\fIstring\fR.
-.IP "\fB\-\-add\-gnu\-debuglink=\fR\fIpath-to-file\fR" 4
-.IX Item "--add-gnu-debuglink=path-to-file"
-Creates a .gnu_debuglink section which contains a reference to \fIpath-to-file\fR
-and adds it to the output file.
-.IP "\fB\-\-only\-keep\-debug\fR" 4
-.IX Item "--only-keep-debug"
-Strip a file, removing any sections that would be stripped by
-\&\fB\-\-strip\-debug\fR and leaving the debugging sections.
-.Sp
-The intention is that this option will be used in conjunction with
-\&\fB\-\-add\-gnu\-debuglink\fR to create a two part executable.  One a
-stripped binary which will occupy less space in \s-1RAM\s0 and in a
-distribution and the second a debugging information file which is only
-needed if debugging abilities are required.  The suggested procedure
-to create these files is as follows:
-.RS 4
-.IP "1.<Link the executable as normal.  Assuming that is is called>" 4
-.IX Item "1.<Link the executable as normal.  Assuming that is is called>"
-\&\f(CW\*(C`foo\*(C'\fR then...
-.ie n .IP "1.<Run ""objcopy \-\-only\-keep\-debug foo foo.dbg"" to>" 4
-.el .IP "1.<Run \f(CWobjcopy \-\-only\-keep\-debug foo foo.dbg\fR to>" 4
-.IX Item "1.<Run objcopy --only-keep-debug foo foo.dbg to>"
-create a file containing the debugging info.
-.ie n .IP "1.<Run ""objcopy \-\-strip\-debug foo"" to create a>" 4
-.el .IP "1.<Run \f(CWobjcopy \-\-strip\-debug foo\fR to create a>" 4
-.IX Item "1.<Run objcopy --strip-debug foo to create a>"
-stripped executable.
-.ie n .IP "1.<Run ""objcopy \-\-add\-gnu\-debuglink=foo.dbg foo"">" 4
-.el .IP "1.<Run \f(CWobjcopy \-\-add\-gnu\-debuglink=foo.dbg foo\fR>" 4
-.IX Item "1.<Run objcopy --add-gnu-debuglink=foo.dbg foo>"
-to add a link to the debugging info into the stripped executable.
-.RE
-.RS 4
-.Sp
-Note \- the choice of \f(CW\*(C`.dbg\*(C'\fR as an extension for the debug info
-file is arbitrary.  Also the \f(CW\*(C`\-\-only\-keep\-debug\*(C'\fR step is
-optional.  You could instead do this:
-.IP "1.<Link the executable as normal.>" 4
-.IX Item "1.<Link the executable as normal.>"
-.PD 0
-.ie n .IP "1.<Copy ""foo""\fR to  \f(CW""foo.full"">" 4
-.el .IP "1.<Copy \f(CWfoo\fR to  \f(CWfoo.full\fR>" 4
-.IX Item "1.<Copy foo to  foo.full>"
-.ie n .IP "1.<Run ""objcopy \-\-strip\-debug foo"">" 4
-.el .IP "1.<Run \f(CWobjcopy \-\-strip\-debug foo\fR>" 4
-.IX Item "1.<Run objcopy --strip-debug foo>"
-.ie n .IP "1.<Run ""objcopy \-\-add\-gnu\-debuglink=foo.full foo"">" 4
-.el .IP "1.<Run \f(CWobjcopy \-\-add\-gnu\-debuglink=foo.full foo\fR>" 4
-.IX Item "1.<Run objcopy --add-gnu-debuglink=foo.full foo>"
-.RE
-.RS 4
-.PD
-.Sp
-ie the file pointed to by the \fB\-\-add\-gnu\-debuglink\fR can be the
-full executable.  It does not have to be a file created by the
-\&\fB\-\-only\-keep\-debug\fR switch.
-.RE
-.IP "\fB\-V\fR" 4
-.IX Item "-V"
-.PD 0
-.IP "\fB\-\-version\fR" 4
-.IX Item "--version"
-.PD
-Show the version number of \fBobjcopy\fR.
-.IP "\fB\-v\fR" 4
-.IX Item "-v"
-.PD 0
-.IP "\fB\-\-verbose\fR" 4
-.IX Item "--verbose"
-.PD
-Verbose output: list all object files modified.  In the case of
-archives, \fBobjcopy \-V\fR lists all members of the archive.
-.IP "\fB\-\-help\fR" 4
-.IX Item "--help"
-Show a summary of the options to \fBobjcopy\fR.
-.IP "\fB\-\-info\fR" 4
-.IX Item "--info"
-Display a list showing all architectures and object formats available.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-\&\fIld\fR\|(1), \fIobjdump\fR\|(1), and the Info entries for \fIbinutils\fR.
-.SH "COPYRIGHT"
-.IX Header "COPYRIGHT"
-Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
-.PP
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1
-or any later version published by the Free Software Foundation;
-with no Invariant Sections, with no Front-Cover Texts, and with no
-Back-Cover Texts.  A copy of the license is included in the
-section entitled ``\s-1GNU\s0 Free Documentation License''.
Index: b/binutils-2.16.1/binutils/doc/objdump.1
===================================================================
--- a/binutils-2.16.1/binutils/doc/objdump.1
+++ /dev/null
@@ -1,604 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings.  \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  | will give a
-.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-.    ds -- \(*W-
-.    ds PI pi
-.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
-.    ds L" ""
-.    ds R" ""
-.    ds C` ""
-.    ds C' ""
-'br\}
-.el\{\
-.    ds -- \|\(em\|
-.    ds PI \(*p
-.    ds L" ``
-.    ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD.  Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-.    de IX
-.    tm Index:\\$1\t\\n%\t"\\$2"
-..
-.    nr % 0
-.    rr F
-.\}
-.\"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
-.    \" fudge factors for nroff and troff
-.if n \{\
-.    ds #H 0
-.    ds #V .8m
-.    ds #F .3m
-.    ds #[ \f1
-.    ds #] \fP
-.\}
-.if t \{\
-.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-.    ds #V .6m
-.    ds #F 0
-.    ds #[ \&
-.    ds #] \&
-.\}
-.    \" simple accents for nroff and troff
-.if n \{\
-.    ds ' \&
-.    ds ` \&
-.    ds ^ \&
-.    ds , \&
-.    ds ~ ~
-.    ds /
-.\}
-.if t \{\
-.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-.    \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-.    \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-.    \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-.    ds : e
-.    ds 8 ss
-.    ds o a
-.    ds d- d\h'-1'\(ga
-.    ds D- D\h'-1'\(hy
-.    ds th \o'bp'
-.    ds Th \o'LP'
-.    ds ae ae
-.    ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "OBJDUMP 1"
-.TH OBJDUMP 1 "2005-04-20" "binutils-2.15.97" "GNU Development Tools"
-.SH "NAME"
-objdump \- display information from object files.
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-objdump [\fB\-a\fR|\fB\-\-archive\-headers\fR]
-        [\fB\-b\fR \fIbfdname\fR|\fB\-\-target=\fR\fIbfdname\fR]
-        [\fB\-C\fR|\fB\-\-demangle\fR[=\fIstyle\fR] ]
-        [\fB\-d\fR|\fB\-\-disassemble\fR]
-        [\fB\-D\fR|\fB\-\-disassemble\-all\fR]
-        [\fB\-z\fR|\fB\-\-disassemble\-zeroes\fR]
-        [\fB\-EB\fR|\fB\-EL\fR|\fB\-\-endian=\fR{big | little }]
-        [\fB\-f\fR|\fB\-\-file\-headers\fR]
-        [\fB\-\-file\-start\-context\fR]
-        [\fB\-g\fR|\fB\-\-debugging\fR]
-        [\fB\-e\fR|\fB\-\-debugging\-tags\fR]
-        [\fB\-h\fR|\fB\-\-section\-headers\fR|\fB\-\-headers\fR]
-        [\fB\-i\fR|\fB\-\-info\fR]
-        [\fB\-j\fR \fIsection\fR|\fB\-\-section=\fR\fIsection\fR]
-        [\fB\-l\fR|\fB\-\-line\-numbers\fR]
-        [\fB\-S\fR|\fB\-\-source\fR]
-        [\fB\-m\fR \fImachine\fR|\fB\-\-architecture=\fR\fImachine\fR]
-        [\fB\-M\fR \fIoptions\fR|\fB\-\-disassembler\-options=\fR\fIoptions\fR]
-        [\fB\-p\fR|\fB\-\-private\-headers\fR]
-        [\fB\-r\fR|\fB\-\-reloc\fR]
-        [\fB\-R\fR|\fB\-\-dynamic\-reloc\fR]
-        [\fB\-s\fR|\fB\-\-full\-contents\fR]
-        [\fB\-G\fR|\fB\-\-stabs\fR]
-        [\fB\-t\fR|\fB\-\-syms\fR]
-        [\fB\-T\fR|\fB\-\-dynamic\-syms\fR]
-        [\fB\-x\fR|\fB\-\-all\-headers\fR]
-        [\fB\-w\fR|\fB\-\-wide\fR]
-        [\fB\-\-start\-address=\fR\fIaddress\fR]
-        [\fB\-\-stop\-address=\fR\fIaddress\fR]
-        [\fB\-\-prefix\-addresses\fR]
-        [\fB\-\-[no\-]show\-raw\-insn\fR]
-        [\fB\-\-adjust\-vma=\fR\fIoffset\fR]
-        [\fB\-\-special\-syms\fR]
-        [\fB\-V\fR|\fB\-\-version\fR]
-        [\fB\-H\fR|\fB\-\-help\fR]
-        \fIobjfile\fR...
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-\&\fBobjdump\fR displays information about one or more object files.
-The options control what particular information to display.  This
-information is mostly useful to programmers who are working on the
-compilation tools, as opposed to programmers who just want their
-program to compile and work.
-.PP
-\&\fIobjfile\fR... are the object files to be examined.  When you
-specify archives, \fBobjdump\fR shows information on each of the member
-object files.
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-The long and short forms of options, shown here as alternatives, are
-equivalent.  At least one option from the list
-\&\fB\-a,\-d,\-D,\-e,\-f,\-g,\-G,\-h,\-H,\-p,\-r,\-R,\-s,\-S,\-t,\-T,\-V,\-x\fR must be given.
-.IP "\fB\-a\fR" 4
-.IX Item "-a"
-.PD 0
-.IP "\fB\-\-archive\-header\fR" 4
-.IX Item "--archive-header"
-.PD
-If any of the \fIobjfile\fR files are archives, display the archive
-header information (in a format similar to \fBls \-l\fR).  Besides the
-information you could list with \fBar tv\fR, \fBobjdump \-a\fR shows
-the object file format of each archive member.
-.IP "\fB\-\-adjust\-vma=\fR\fIoffset\fR" 4
-.IX Item "--adjust-vma=offset"
-When dumping information, first add \fIoffset\fR to all the section
-addresses.  This is useful if the section addresses do not correspond to
-the symbol table, which can happen when putting sections at particular
-addresses when using a format which can not represent section addresses,
-such as a.out.
-.IP "\fB\-b\fR \fIbfdname\fR" 4
-.IX Item "-b bfdname"
-.PD 0
-.IP "\fB\-\-target=\fR\fIbfdname\fR" 4
-.IX Item "--target=bfdname"
-.PD
-Specify that the object-code format for the object files is
-\&\fIbfdname\fR.  This option may not be necessary; \fIobjdump\fR can
-automatically recognize many formats.
-.Sp
-For example,
-.Sp
-.Vb 1
-\&        objdump \-b oasys \-m vax \-h fu.o
-.Ve
-.Sp
-displays summary information from the section headers (\fB\-h\fR) of
-\&\fIfu.o\fR, which is explicitly identified (\fB\-m\fR) as a \s-1VAX\s0 object
-file in the format produced by Oasys compilers.  You can list the
-formats available with the \fB\-i\fR option.
-.IP "\fB\-C\fR" 4
-.IX Item "-C"
-.PD 0
-.IP "\fB\-\-demangle[=\fR\fIstyle\fR\fB]\fR" 4
-.IX Item "--demangle[=style]"
-.PD
-Decode (\fIdemangle\fR) low-level symbol names into user-level names.
-Besides removing any initial underscore prepended by the system, this
-makes \*(C+ function names readable.  Different compilers have different
-mangling styles. The optional demangling style argument can be used to 
-choose an appropriate demangling style for your compiler. 
-.IP "\fB\-g\fR" 4
-.IX Item "-g"
-.PD 0
-.IP "\fB\-\-debugging\fR" 4
-.IX Item "--debugging"
-.PD
-Display debugging information.  This attempts to parse debugging
-information stored in the file and print it out using a C like syntax.
-Only certain types of debugging information have been implemented.
-Some other types are supported by \fBreadelf \-w\fR.
-.IP "\fB\-e\fR" 4
-.IX Item "-e"
-.PD 0
-.IP "\fB\-\-debugging\-tags\fR" 4
-.IX Item "--debugging-tags"
-.PD
-Like \fB\-g\fR, but the information is generated in a format compatible
-with ctags tool.
-.IP "\fB\-d\fR" 4
-.IX Item "-d"
-.PD 0
-.IP "\fB\-\-disassemble\fR" 4
-.IX Item "--disassemble"
-.PD
-Display the assembler mnemonics for the machine instructions from
-\&\fIobjfile\fR.  This option only disassembles those sections which are
-expected to contain instructions.
-.IP "\fB\-D\fR" 4
-.IX Item "-D"
-.PD 0
-.IP "\fB\-\-disassemble\-all\fR" 4
-.IX Item "--disassemble-all"
-.PD
-Like \fB\-d\fR, but disassemble the contents of all sections, not just
-those expected to contain instructions.
-.IP "\fB\-\-prefix\-addresses\fR" 4
-.IX Item "--prefix-addresses"
-When disassembling, print the complete address on each line.  This is
-the older disassembly format.
-.IP "\fB\-EB\fR" 4
-.IX Item "-EB"
-.PD 0
-.IP "\fB\-EL\fR" 4
-.IX Item "-EL"
-.IP "\fB\-\-endian={big|little}\fR" 4
-.IX Item "--endian={big|little}"
-.PD
-Specify the endianness of the object files.  This only affects
-disassembly.  This can be useful when disassembling a file format which
-does not describe endianness information, such as S\-records.
-.IP "\fB\-f\fR" 4
-.IX Item "-f"
-.PD 0
-.IP "\fB\-\-file\-headers\fR" 4
-.IX Item "--file-headers"
-.PD
-Display summary information from the overall header of
-each of the \fIobjfile\fR files.
-.IP "\fB\-\-file\-start\-context\fR" 4
-.IX Item "--file-start-context"
-Specify that when displaying interlisted source code/disassembly
-(assumes \fB\-S\fR) from a file that has not yet been displayed, extend the
-context to the start of the file.
-.IP "\fB\-h\fR" 4
-.IX Item "-h"
-.PD 0
-.IP "\fB\-\-section\-headers\fR" 4
-.IX Item "--section-headers"
-.IP "\fB\-\-headers\fR" 4
-.IX Item "--headers"
-.PD
-Display summary information from the section headers of the
-object file.
-.Sp
-File segments may be relocated to nonstandard addresses, for example by
-using the \fB\-Ttext\fR, \fB\-Tdata\fR, or \fB\-Tbss\fR options to
-\&\fBld\fR.  However, some object file formats, such as a.out, do not
-store the starting address of the file segments.  In those situations,
-although \fBld\fR relocates the sections correctly, using \fBobjdump
-\&\-h\fR to list the file section headers cannot show the correct addresses.
-Instead, it shows the usual addresses, which are implicit for the
-target.
-.IP "\fB\-H\fR" 4
-.IX Item "-H"
-.PD 0
-.IP "\fB\-\-help\fR" 4
-.IX Item "--help"
-.PD
-Print a summary of the options to \fBobjdump\fR and exit.
-.IP "\fB\-i\fR" 4
-.IX Item "-i"
-.PD 0
-.IP "\fB\-\-info\fR" 4
-.IX Item "--info"
-.PD
-Display a list showing all architectures and object formats available
-for specification with \fB\-b\fR or \fB\-m\fR.
-.IP "\fB\-j\fR \fIname\fR" 4
-.IX Item "-j name"
-.PD 0
-.IP "\fB\-\-section=\fR\fIname\fR" 4
-.IX Item "--section=name"
-.PD
-Display information only for section \fIname\fR.
-.IP "\fB\-l\fR" 4
-.IX Item "-l"
-.PD 0
-.IP "\fB\-\-line\-numbers\fR" 4
-.IX Item "--line-numbers"
-.PD
-Label the display (using debugging information) with the filename and
-source line numbers corresponding to the object code or relocs shown.
-Only useful with \fB\-d\fR, \fB\-D\fR, or \fB\-r\fR.
-.IP "\fB\-m\fR \fImachine\fR" 4
-.IX Item "-m machine"
-.PD 0
-.IP "\fB\-\-architecture=\fR\fImachine\fR" 4
-.IX Item "--architecture=machine"
-.PD
-Specify the architecture to use when disassembling object files.  This
-can be useful when disassembling object files which do not describe
-architecture information, such as S\-records.  You can list the available
-architectures with the \fB\-i\fR option.
-.IP "\fB\-M\fR \fIoptions\fR" 4
-.IX Item "-M options"
-.PD 0
-.IP "\fB\-\-disassembler\-options=\fR\fIoptions\fR" 4
-.IX Item "--disassembler-options=options"
-.PD
-Pass target specific information to the disassembler.  Only supported on
-some targets.  If it is necessary to specify more than one
-disassembler option then multiple \fB\-M\fR options can be used or
-can be placed together into a comma separated list.
-.Sp
-If the target is an \s-1ARM\s0 architecture then this switch can be used to
-select which register name set is used during disassembler.  Specifying
-\&\fB\-M reg-name-std\fR (the default) will select the register names as
-used in \s-1ARM\s0's instruction set documentation, but with register 13 called
-\&'sp', register 14 called 'lr' and register 15 called 'pc'.  Specifying
-\&\fB\-M reg-names-apcs\fR will select the name set used by the \s-1ARM\s0
-Procedure Call Standard, whilst specifying \fB\-M reg-names-raw\fR will
-just use \fBr\fR followed by the register number.
-.Sp
-There are also two variants on the \s-1APCS\s0 register naming scheme enabled
-by \fB\-M reg-names-atpcs\fR and \fB\-M reg-names-special-atpcs\fR which
-use the ARM/Thumb Procedure Call Standard naming conventions.  (Either
-with the normal register names or the special register names).
-.Sp
-This option can also be used for \s-1ARM\s0 architectures to force the
-disassembler to interpret all instructions as Thumb instructions by
-using the switch \fB\-\-disassembler\-options=force\-thumb\fR.  This can be
-useful when attempting to disassemble thumb code produced by other
-compilers.
-.Sp
-For the x86, some of the options duplicate functions of the \fB\-m\fR
-switch, but allow finer grained control.  Multiple selections from the
-following may be specified as a comma separated string.
-\&\fBx86\-64\fR, \fBi386\fR and \fBi8086\fR select disassembly for
-the given architecture.  \fBintel\fR and \fBatt\fR select between
-intel syntax mode and \s-1AT&T\s0 syntax mode.  \fBaddr32\fR,
-\&\fBaddr16\fR, \fBdata32\fR and \fBdata16\fR specify the default
-address size and operand size.  These four options will be overridden if
-\&\fBx86\-64\fR, \fBi386\fR or \fBi8086\fR appear later in the
-option string.  Lastly, \fBsuffix\fR, when in \s-1AT&T\s0 mode,
-instructs the disassembler to print a mnemonic suffix even when the
-suffix could be inferred by the operands.
-.Sp
-For \s-1PPC\s0, \fBbooke\fR, \fBbooke32\fR and \fBbooke64\fR select
-disassembly of BookE instructions.  \fB32\fR and \fB64\fR select
-PowerPC and PowerPC64 disassembly, respectively.
-.Sp
-For \s-1MIPS\s0, this option controls the printing of instruction mneumonic
-names and register names in disassembled instructions.  Multiple
-selections from the following may be specified as a comma separated
-string, and invalid options are ignored:
-.RS 4
-.ie n .IP """no\-aliases""" 4
-.el .IP "\f(CWno\-aliases\fR" 4
-.IX Item "no-aliases"
-Print the 'raw' instruction mneumonic instead of some pseudo
-instruction mneumonic.  I.E. print 'daddu' or 'or' instead of 'move',
-\&'sll' instead of 'nop', etc.
-.ie n .IP """gpr\-names=\f(CI\s-1ABI\s0\f(CW""" 4
-.el .IP "\f(CWgpr\-names=\f(CI\s-1ABI\s0\f(CW\fR" 4
-.IX Item "gpr-names=ABI"
-Print \s-1GPR\s0 (general\-purpose register) names as appropriate
-for the specified \s-1ABI\s0.  By default, \s-1GPR\s0 names are selected according to
-the \s-1ABI\s0 of the binary being disassembled.
-.ie n .IP """fpr\-names=\f(CI\s-1ABI\s0\f(CW""" 4
-.el .IP "\f(CWfpr\-names=\f(CI\s-1ABI\s0\f(CW\fR" 4
-.IX Item "fpr-names=ABI"
-Print \s-1FPR\s0 (floating\-point register) names as
-appropriate for the specified \s-1ABI\s0.  By default, \s-1FPR\s0 numbers are printed
-rather than names.
-.ie n .IP """cp0\-names=\f(CI\s-1ARCH\s0\f(CW""" 4
-.el .IP "\f(CWcp0\-names=\f(CI\s-1ARCH\s0\f(CW\fR" 4
-.IX Item "cp0-names=ARCH"
-Print \s-1CP0\s0 (system control coprocessor; coprocessor 0) register names
-as appropriate for the \s-1CPU\s0 or architecture specified by
-\&\fI\s-1ARCH\s0\fR.  By default, \s-1CP0\s0 register names are selected according to
-the architecture and \s-1CPU\s0 of the binary being disassembled.
-.ie n .IP """hwr\-names=\f(CI\s-1ARCH\s0\f(CW""" 4
-.el .IP "\f(CWhwr\-names=\f(CI\s-1ARCH\s0\f(CW\fR" 4
-.IX Item "hwr-names=ARCH"
-Print \s-1HWR\s0 (hardware register, used by the \f(CW\*(C`rdhwr\*(C'\fR instruction) names
-as appropriate for the \s-1CPU\s0 or architecture specified by
-\&\fI\s-1ARCH\s0\fR.  By default, \s-1HWR\s0 names are selected according to
-the architecture and \s-1CPU\s0 of the binary being disassembled.
-.ie n .IP """reg\-names=\f(CI\s-1ABI\s0\f(CW""" 4
-.el .IP "\f(CWreg\-names=\f(CI\s-1ABI\s0\f(CW\fR" 4
-.IX Item "reg-names=ABI"
-Print \s-1GPR\s0 and \s-1FPR\s0 names as appropriate for the selected \s-1ABI\s0.
-.ie n .IP """reg\-names=\f(CI\s-1ARCH\s0\f(CW""" 4
-.el .IP "\f(CWreg\-names=\f(CI\s-1ARCH\s0\f(CW\fR" 4
-.IX Item "reg-names=ARCH"
-Print CPU-specific register names (\s-1CP0\s0 register and \s-1HWR\s0 names)
-as appropriate for the selected \s-1CPU\s0 or architecture.
-.RE
-.RS 4
-.Sp
-For any of the options listed above, \fI\s-1ABI\s0\fR or
-\&\fI\s-1ARCH\s0\fR may be specified as \fBnumeric\fR to have numbers printed
-rather than names, for the selected types of registers.
-You can list the available values of \fI\s-1ABI\s0\fR and \fI\s-1ARCH\s0\fR using
-the \fB\-\-help\fR option.
-.RE
-.IP "\fB\-p\fR" 4
-.IX Item "-p"
-.PD 0
-.IP "\fB\-\-private\-headers\fR" 4
-.IX Item "--private-headers"
-.PD
-Print information that is specific to the object file format.  The exact
-information printed depends upon the object file format.  For some
-object file formats, no additional information is printed.
-.IP "\fB\-r\fR" 4
-.IX Item "-r"
-.PD 0
-.IP "\fB\-\-reloc\fR" 4
-.IX Item "--reloc"
-.PD
-Print the relocation entries of the file.  If used with \fB\-d\fR or
-\&\fB\-D\fR, the relocations are printed interspersed with the
-disassembly.
-.IP "\fB\-R\fR" 4
-.IX Item "-R"
-.PD 0
-.IP "\fB\-\-dynamic\-reloc\fR" 4
-.IX Item "--dynamic-reloc"
-.PD
-Print the dynamic relocation entries of the file.  This is only
-meaningful for dynamic objects, such as certain types of shared
-libraries.
-.IP "\fB\-s\fR" 4
-.IX Item "-s"
-.PD 0
-.IP "\fB\-\-full\-contents\fR" 4
-.IX Item "--full-contents"
-.PD
-Display the full contents of any sections requested.  By default all
-non-empty sections are displayed.
-.IP "\fB\-S\fR" 4
-.IX Item "-S"
-.PD 0
-.IP "\fB\-\-source\fR" 4
-.IX Item "--source"
-.PD
-Display source code intermixed with disassembly, if possible.  Implies
-\&\fB\-d\fR.
-.IP "\fB\-\-show\-raw\-insn\fR" 4
-.IX Item "--show-raw-insn"
-When disassembling instructions, print the instruction in hex as well as
-in symbolic form.  This is the default except when
-\&\fB\-\-prefix\-addresses\fR is used.
-.IP "\fB\-\-no\-show\-raw\-insn\fR" 4
-.IX Item "--no-show-raw-insn"
-When disassembling instructions, do not print the instruction bytes.
-This is the default when \fB\-\-prefix\-addresses\fR is used.
-.IP "\fB\-G\fR" 4
-.IX Item "-G"
-.PD 0
-.IP "\fB\-\-stabs\fR" 4
-.IX Item "--stabs"
-.PD
-Display the full contents of any sections requested.  Display the
-contents of the .stab and .stab.index and .stab.excl sections from an
-\&\s-1ELF\s0 file.  This is only useful on systems (such as Solaris 2.0) in which
-\&\f(CW\*(C`.stab\*(C'\fR debugging symbol-table entries are carried in an \s-1ELF\s0
-section.  In most other file formats, debugging symbol-table entries are
-interleaved with linkage symbols, and are visible in the \fB\-\-syms\fR
-output.
-.IP "\fB\-\-start\-address=\fR\fIaddress\fR" 4
-.IX Item "--start-address=address"
-Start displaying data at the specified address.  This affects the output
-of the \fB\-d\fR, \fB\-r\fR and \fB\-s\fR options.
-.IP "\fB\-\-stop\-address=\fR\fIaddress\fR" 4
-.IX Item "--stop-address=address"
-Stop displaying data at the specified address.  This affects the output
-of the \fB\-d\fR, \fB\-r\fR and \fB\-s\fR options.
-.IP "\fB\-t\fR" 4
-.IX Item "-t"
-.PD 0
-.IP "\fB\-\-syms\fR" 4
-.IX Item "--syms"
-.PD
-Print the symbol table entries of the file.
-This is similar to the information provided by the \fBnm\fR program.
-.IP "\fB\-T\fR" 4
-.IX Item "-T"
-.PD 0
-.IP "\fB\-\-dynamic\-syms\fR" 4
-.IX Item "--dynamic-syms"
-.PD
-Print the dynamic symbol table entries of the file.  This is only
-meaningful for dynamic objects, such as certain types of shared
-libraries.  This is similar to the information provided by the \fBnm\fR
-program when given the \fB\-D\fR (\fB\-\-dynamic\fR) option.
-.IP "\fB\-\-special\-syms\fR" 4
-.IX Item "--special-syms"
-When displaying symbols include those which the target considers to be
-special in some way and which would not normally be of interest to the
-user.
-.IP "\fB\-V\fR" 4
-.IX Item "-V"
-.PD 0
-.IP "\fB\-\-version\fR" 4
-.IX Item "--version"
-.PD
-Print the version number of \fBobjdump\fR and exit.
-.IP "\fB\-x\fR" 4
-.IX Item "-x"
-.PD 0
-.IP "\fB\-\-all\-headers\fR" 4
-.IX Item "--all-headers"
-.PD
-Display all available header information, including the symbol table and
-relocation entries.  Using \fB\-x\fR is equivalent to specifying all of
-\&\fB\-a \-f \-h \-p \-r \-t\fR.
-.IP "\fB\-w\fR" 4
-.IX Item "-w"
-.PD 0
-.IP "\fB\-\-wide\fR" 4
-.IX Item "--wide"
-.PD
-Format some lines for output devices that have more than 80 columns.
-Also do not truncate symbol names when they are displayed.
-.IP "\fB\-z\fR" 4
-.IX Item "-z"
-.PD 0
-.IP "\fB\-\-disassemble\-zeroes\fR" 4
-.IX Item "--disassemble-zeroes"
-.PD
-Normally the disassembly output will skip blocks of zeroes.  This
-option directs the disassembler to disassemble those blocks, just like
-any other data.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-\&\fInm\fR\|(1), \fIreadelf\fR\|(1), and the Info entries for \fIbinutils\fR.
-.SH "COPYRIGHT"
-.IX Header "COPYRIGHT"
-Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
-.PP
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1
-or any later version published by the Free Software Foundation;
-with no Invariant Sections, with no Front-Cover Texts, and with no
-Back-Cover Texts.  A copy of the license is included in the
-section entitled ``\s-1GNU\s0 Free Documentation License''.
Index: b/binutils-2.16.1/binutils/doc/ranlib.1
===================================================================
--- a/binutils-2.16.1/binutils/doc/ranlib.1
+++ /dev/null
@@ -1,175 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings.  \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  | will give a
-.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-.    ds -- \(*W-
-.    ds PI pi
-.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
-.    ds L" ""
-.    ds R" ""
-.    ds C` ""
-.    ds C' ""
-'br\}
-.el\{\
-.    ds -- \|\(em\|
-.    ds PI \(*p
-.    ds L" ``
-.    ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD.  Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-.    de IX
-.    tm Index:\\$1\t\\n%\t"\\$2"
-..
-.    nr % 0
-.    rr F
-.\}
-.\"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
-.    \" fudge factors for nroff and troff
-.if n \{\
-.    ds #H 0
-.    ds #V .8m
-.    ds #F .3m
-.    ds #[ \f1
-.    ds #] \fP
-.\}
-.if t \{\
-.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-.    ds #V .6m
-.    ds #F 0
-.    ds #[ \&
-.    ds #] \&
-.\}
-.    \" simple accents for nroff and troff
-.if n \{\
-.    ds ' \&
-.    ds ` \&
-.    ds ^ \&
-.    ds , \&
-.    ds ~ ~
-.    ds /
-.\}
-.if t \{\
-.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-.    \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-.    \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-.    \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-.    ds : e
-.    ds 8 ss
-.    ds o a
-.    ds d- d\h'-1'\(ga
-.    ds D- D\h'-1'\(hy
-.    ds th \o'bp'
-.    ds Th \o'LP'
-.    ds ae ae
-.    ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "RANLIB 1"
-.TH RANLIB 1 "2005-04-20" "binutils-2.15.97" "GNU Development Tools"
-.SH "NAME"
-ranlib \- generate index to archive.
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-ranlib [\fB\-vV\fR] \fIarchive\fR
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-\&\fBranlib\fR generates an index to the contents of an archive and
-stores it in the archive.  The index lists each symbol defined by a
-member of an archive that is a relocatable object file.  
-.PP
-You may use \fBnm \-s\fR or \fBnm \-\-print\-armap\fR to list this index.
-.PP
-An archive with such an index speeds up linking to the library and
-allows routines in the library to call each other without regard to
-their placement in the archive.
-.PP
-The \s-1GNU\s0 \fBranlib\fR program is another form of \s-1GNU\s0 \fBar\fR; running
-\&\fBranlib\fR is completely equivalent to executing \fBar \-s\fR.
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-.IP "\fB\-v\fR" 4
-.IX Item "-v"
-.PD 0
-.IP "\fB\-V\fR" 4
-.IX Item "-V"
-.IP "\fB\-\-version\fR" 4
-.IX Item "--version"
-.PD
-Show the version number of \fBranlib\fR.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-\&\fIar\fR\|(1), \fInm\fR\|(1), and the Info entries for \fIbinutils\fR.
-.SH "COPYRIGHT"
-.IX Header "COPYRIGHT"
-Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
-.PP
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1
-or any later version published by the Free Software Foundation;
-with no Invariant Sections, with no Front-Cover Texts, and with no
-Back-Cover Texts.  A copy of the license is included in the
-section entitled ``\s-1GNU\s0 Free Documentation License''.
Index: b/binutils-2.16.1/binutils/doc/readelf.1
===================================================================
--- a/binutils-2.16.1/binutils/doc/readelf.1
+++ /dev/null
@@ -1,353 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings.  \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  | will give a
-.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-.    ds -- \(*W-
-.    ds PI pi
-.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
-.    ds L" ""
-.    ds R" ""
-.    ds C` ""
-.    ds C' ""
-'br\}
-.el\{\
-.    ds -- \|\(em\|
-.    ds PI \(*p
-.    ds L" ``
-.    ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD.  Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-.    de IX
-.    tm Index:\\$1\t\\n%\t"\\$2"
-..
-.    nr % 0
-.    rr F
-.\}
-.\"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
-.    \" fudge factors for nroff and troff
-.if n \{\
-.    ds #H 0
-.    ds #V .8m
-.    ds #F .3m
-.    ds #[ \f1
-.    ds #] \fP
-.\}
-.if t \{\
-.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-.    ds #V .6m
-.    ds #F 0
-.    ds #[ \&
-.    ds #] \&
-.\}
-.    \" simple accents for nroff and troff
-.if n \{\
-.    ds ' \&
-.    ds ` \&
-.    ds ^ \&
-.    ds , \&
-.    ds ~ ~
-.    ds /
-.\}
-.if t \{\
-.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-.    \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-.    \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-.    \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-.    ds : e
-.    ds 8 ss
-.    ds o a
-.    ds d- d\h'-1'\(ga
-.    ds D- D\h'-1'\(hy
-.    ds th \o'bp'
-.    ds Th \o'LP'
-.    ds ae ae
-.    ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "READELF 1"
-.TH READELF 1 "2005-04-20" "binutils-2.15.97" "GNU Development Tools"
-.SH "NAME"
-readelf \- Displays information about ELF files.
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-readelf [\fB\-a\fR|\fB\-\-all\fR] 
-        [\fB\-h\fR|\fB\-\-file\-header\fR]
-        [\fB\-l\fR|\fB\-\-program\-headers\fR|\fB\-\-segments\fR]
-        [\fB\-S\fR|\fB\-\-section\-headers\fR|\fB\-\-sections\fR]
-        [\fB\-g\fR|\fB\-\-section\-groups\fR]
-        [\fB\-e\fR|\fB\-\-headers\fR]
-        [\fB\-s\fR|\fB\-\-syms\fR|\fB\-\-symbols\fR]
-        [\fB\-n\fR|\fB\-\-notes\fR]
-        [\fB\-r\fR|\fB\-\-relocs\fR]
-        [\fB\-u\fR|\fB\-\-unwind\fR]
-        [\fB\-d\fR|\fB\-\-dynamic\fR]
-        [\fB\-V\fR|\fB\-\-version\-info\fR]
-        [\fB\-A\fR|\fB\-\-arch\-specific\fR]
-        [\fB\-D\fR|\fB\-\-use\-dynamic\fR]
-        [\fB\-x\fR <number>|\fB\-\-hex\-dump=\fR<number>]
-        [\fB\-w[liaprmfFsoR]\fR|
-         \fB\-\-debug\-dump\fR[=line,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames\-interp,=str,=loc,=Ranges]]
-        [\fB\-I\fR|\fB\-histogram\fR]
-        [\fB\-v\fR|\fB\-\-version\fR]
-        [\fB\-W\fR|\fB\-\-wide\fR]
-        [\fB\-H\fR|\fB\-\-help\fR]
-        \fIelffile\fR...
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-\&\fBreadelf\fR displays information about one or more \s-1ELF\s0 format object
-files.  The options control what particular information to display.
-.PP
-\&\fIelffile\fR... are the object files to be examined.  32\-bit and
-64\-bit \s-1ELF\s0 files are supported, as are archives containing \s-1ELF\s0 files.
-.PP
-This program performs a similar function to \fBobjdump\fR but it
-goes into more detail and it exists independently of the \s-1BFD\s0
-library, so if there is a bug in \s-1BFD\s0 then readelf will not be
-affected.
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-The long and short forms of options, shown here as alternatives, are
-equivalent.  At least one option besides \fB\-v\fR or \fB\-H\fR must be
-given. 
-.IP "\fB\-a\fR" 4
-.IX Item "-a"
-.PD 0
-.IP "\fB\-\-all\fR" 4
-.IX Item "--all"
-.PD
-Equivalent to specifiying \fB\-\-file\-header\fR,
-\&\fB\-\-program\-headers\fR, \fB\-\-sections\fR, \fB\-\-symbols\fR,
-\&\fB\-\-relocs\fR, \fB\-\-dynamic\fR, \fB\-\-notes\fR and
-\&\fB\-\-version\-info\fR. 
-.IP "\fB\-h\fR" 4
-.IX Item "-h"
-.PD 0
-.IP "\fB\-\-file\-header\fR" 4
-.IX Item "--file-header"
-.PD
-Displays the information contained in the \s-1ELF\s0 header at the start of the
-file.
-.IP "\fB\-l\fR" 4
-.IX Item "-l"
-.PD 0
-.IP "\fB\-\-program\-headers\fR" 4
-.IX Item "--program-headers"
-.IP "\fB\-\-segments\fR" 4
-.IX Item "--segments"
-.PD
-Displays the information contained in the file's segment headers, if it
-has any.
-.IP "\fB\-S\fR" 4
-.IX Item "-S"
-.PD 0
-.IP "\fB\-\-sections\fR" 4
-.IX Item "--sections"
-.IP "\fB\-\-section\-headers\fR" 4
-.IX Item "--section-headers"
-.PD
-Displays the information contained in the file's section headers, if it
-has any.
-.IP "\fB\-g\fR" 4
-.IX Item "-g"
-.PD 0
-.IP "\fB\-\-section\-groups\fR" 4
-.IX Item "--section-groups"
-.PD
-Displays the information contained in the file's section groups, if it
-has any.
-.IP "\fB\-s\fR" 4
-.IX Item "-s"
-.PD 0
-.IP "\fB\-\-symbols\fR" 4
-.IX Item "--symbols"
-.IP "\fB\-\-syms\fR" 4
-.IX Item "--syms"
-.PD
-Displays the entries in symbol table section of the file, if it has one.
-.IP "\fB\-e\fR" 4
-.IX Item "-e"
-.PD 0
-.IP "\fB\-\-headers\fR" 4
-.IX Item "--headers"
-.PD
-Display all the headers in the file.  Equivalent to \fB\-h \-l \-S\fR.
-.IP "\fB\-n\fR" 4
-.IX Item "-n"
-.PD 0
-.IP "\fB\-\-notes\fR" 4
-.IX Item "--notes"
-.PD
-Displays the contents of the \s-1NOTE\s0 segments and/or sections, if any.
-.IP "\fB\-r\fR" 4
-.IX Item "-r"
-.PD 0
-.IP "\fB\-\-relocs\fR" 4
-.IX Item "--relocs"
-.PD
-Displays the contents of the file's relocation section, if it has one.
-.IP "\fB\-u\fR" 4
-.IX Item "-u"
-.PD 0
-.IP "\fB\-\-unwind\fR" 4
-.IX Item "--unwind"
-.PD
-Displays the contents of the file's unwind section, if it has one.  Only
-the unwind sections for \s-1IA64\s0 \s-1ELF\s0 files are currently supported.
-.IP "\fB\-d\fR" 4
-.IX Item "-d"
-.PD 0
-.IP "\fB\-\-dynamic\fR" 4
-.IX Item "--dynamic"
-.PD
-Displays the contents of the file's dynamic section, if it has one.
-.IP "\fB\-V\fR" 4
-.IX Item "-V"
-.PD 0
-.IP "\fB\-\-version\-info\fR" 4
-.IX Item "--version-info"
-.PD
-Displays the contents of the version sections in the file, it they
-exist.
-.IP "\fB\-A\fR" 4
-.IX Item "-A"
-.PD 0
-.IP "\fB\-\-arch\-specific\fR" 4
-.IX Item "--arch-specific"
-.PD
-Displays architecture-specific information in the file, if there
-is any.
-.IP "\fB\-D\fR" 4
-.IX Item "-D"
-.PD 0
-.IP "\fB\-\-use\-dynamic\fR" 4
-.IX Item "--use-dynamic"
-.PD
-When displaying symbols, this option makes \fBreadelf\fR use the
-symbol table in the file's dynamic section, rather than the one in the
-symbols section.
-.IP "\fB\-x <number>\fR" 4
-.IX Item "-x <number>"
-.PD 0
-.IP "\fB\-\-hex\-dump=<number>\fR" 4
-.IX Item "--hex-dump=<number>"
-.PD
-Displays the contents of the indicated section as a hexadecimal dump.
-.IP "\fB\-w[liaprmfFsoR]\fR" 4
-.IX Item "-w[liaprmfFsoR]"
-.PD 0
-.IP "\fB\-\-debug\-dump[=line,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames\-interp,=str,=loc,=Ranges]\fR" 4
-.IX Item "--debug-dump[=line,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=loc,=Ranges]"
-.PD
-Displays the contents of the debug sections in the file, if any are
-present.  If one of the optional letters or words follows the switch
-then only data found in those specific sections will be dumped.
-.IP "\fB\-I\fR" 4
-.IX Item "-I"
-.PD 0
-.IP "\fB\-\-histogram\fR" 4
-.IX Item "--histogram"
-.PD
-Display a histogram of bucket list lengths when displaying the contents
-of the symbol tables.
-.IP "\fB\-v\fR" 4
-.IX Item "-v"
-.PD 0
-.IP "\fB\-\-version\fR" 4
-.IX Item "--version"
-.PD
-Display the version number of readelf.
-.IP "\fB\-W\fR" 4
-.IX Item "-W"
-.PD 0
-.IP "\fB\-\-wide\fR" 4
-.IX Item "--wide"
-.PD
-Don't break output lines to fit into 80 columns. By default
-\&\fBreadelf\fR breaks section header and segment listing lines for
-64\-bit \s-1ELF\s0 files, so that they fit into 80 columns. This option causes
-\&\fBreadelf\fR to print each section header resp. each segment one a
-single line, which is far more readable on terminals wider than 80 columns.
-.IP "\fB\-H\fR" 4
-.IX Item "-H"
-.PD 0
-.IP "\fB\-\-help\fR" 4
-.IX Item "--help"
-.PD
-Display the command line options understood by \fBreadelf\fR.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-\&\fIobjdump\fR\|(1), and the Info entries for \fIbinutils\fR.
-.SH "COPYRIGHT"
-.IX Header "COPYRIGHT"
-Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
-.PP
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1
-or any later version published by the Free Software Foundation;
-with no Invariant Sections, with no Front-Cover Texts, and with no
-Back-Cover Texts.  A copy of the license is included in the
-section entitled ``\s-1GNU\s0 Free Documentation License''.
Index: b/binutils-2.16.1/binutils/doc/size.1
===================================================================
--- a/binutils-2.16.1/binutils/doc/size.1
+++ /dev/null
@@ -1,250 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings.  \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  | will give a
-.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-.    ds -- \(*W-
-.    ds PI pi
-.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
-.    ds L" ""
-.    ds R" ""
-.    ds C` ""
-.    ds C' ""
-'br\}
-.el\{\
-.    ds -- \|\(em\|
-.    ds PI \(*p
-.    ds L" ``
-.    ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD.  Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-.    de IX
-.    tm Index:\\$1\t\\n%\t"\\$2"
-..
-.    nr % 0
-.    rr F
-.\}
-.\"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
-.    \" fudge factors for nroff and troff
-.if n \{\
-.    ds #H 0
-.    ds #V .8m
-.    ds #F .3m
-.    ds #[ \f1
-.    ds #] \fP
-.\}
-.if t \{\
-.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-.    ds #V .6m
-.    ds #F 0
-.    ds #[ \&
-.    ds #] \&
-.\}
-.    \" simple accents for nroff and troff
-.if n \{\
-.    ds ' \&
-.    ds ` \&
-.    ds ^ \&
-.    ds , \&
-.    ds ~ ~
-.    ds /
-.\}
-.if t \{\
-.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-.    \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-.    \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-.    \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-.    ds : e
-.    ds 8 ss
-.    ds o a
-.    ds d- d\h'-1'\(ga
-.    ds D- D\h'-1'\(hy
-.    ds th \o'bp'
-.    ds Th \o'LP'
-.    ds ae ae
-.    ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "SIZE 1"
-.TH SIZE 1 "2005-04-20" "binutils-2.15.97" "GNU Development Tools"
-.SH "NAME"
-size \- list section sizes and total size.
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-size [\fB\-A\fR|\fB\-B\fR|\fB\-\-format=\fR\fIcompatibility\fR]
-     [\fB\-\-help\fR]
-     [\fB\-d\fR|\fB\-o\fR|\fB\-x\fR|\fB\-\-radix=\fR\fInumber\fR]
-     [\fB\-t\fR|\fB\-\-totals\fR]
-     [\fB\-\-target=\fR\fIbfdname\fR] [\fB\-V\fR|\fB\-\-version\fR]  
-     [\fIobjfile\fR...]
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-The \s-1GNU\s0 \fBsize\fR utility lists the section sizes\-\-\-and the total
-size\-\-\-for each of the object or archive files \fIobjfile\fR in its
-argument list.  By default, one line of output is generated for each
-object file or each module in an archive.
-.PP
-\&\fIobjfile\fR... are the object files to be examined.
-If none are specified, the file \f(CW\*(C`a.out\*(C'\fR will be used.
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-The command line options have the following meanings:
-.IP "\fB\-A\fR" 4
-.IX Item "-A"
-.PD 0
-.IP "\fB\-B\fR" 4
-.IX Item "-B"
-.IP "\fB\-\-format=\fR\fIcompatibility\fR" 4
-.IX Item "--format=compatibility"
-.PD
-Using one of these options, you can choose whether the output from \s-1GNU\s0
-\&\fBsize\fR resembles output from System V \fBsize\fR (using \fB\-A\fR,
-or \fB\-\-format=sysv\fR), or Berkeley \fBsize\fR (using \fB\-B\fR, or
-\&\fB\-\-format=berkeley\fR).  The default is the one-line format similar to
-Berkeley's.  
-.Sp
-Here is an example of the Berkeley (default) format of output from
-\&\fBsize\fR: 
-.Sp
-.Vb 4
-\&        $ size \-\-format=Berkeley ranlib size
-\&        text    data    bss     dec     hex     filename
-\&        294880  81920   11592   388392  5ed28   ranlib
-\&        294880  81920   11888   388688  5ee50   size
-.Ve
-.Sp
-This is the same data, but displayed closer to System V conventions:
-.Sp
-.Vb 7
-\&        $ size \-\-format=SysV ranlib size
-\&        ranlib  :
-\&        section         size         addr
-\&        .text         294880         8192       
-\&        .data          81920       303104       
-\&        .bss           11592       385024       
-\&        Total         388392
-.Ve
-.Sp
-.Vb 6
-\&        size  :
-\&        section         size         addr
-\&        .text         294880         8192       
-\&        .data          81920       303104       
-\&        .bss           11888       385024       
-\&        Total         388688
-.Ve
-.IP "\fB\-\-help\fR" 4
-.IX Item "--help"
-Show a summary of acceptable arguments and options.
-.IP "\fB\-d\fR" 4
-.IX Item "-d"
-.PD 0
-.IP "\fB\-o\fR" 4
-.IX Item "-o"
-.IP "\fB\-x\fR" 4
-.IX Item "-x"
-.IP "\fB\-\-radix=\fR\fInumber\fR" 4
-.IX Item "--radix=number"
-.PD
-Using one of these options, you can control whether the size of each
-section is given in decimal (\fB\-d\fR, or \fB\-\-radix=10\fR); octal
-(\fB\-o\fR, or \fB\-\-radix=8\fR); or hexadecimal (\fB\-x\fR, or
-\&\fB\-\-radix=16\fR).  In \fB\-\-radix=\fR\fInumber\fR, only the three
-values (8, 10, 16) are supported.  The total size is always given in two
-radices; decimal and hexadecimal for \fB\-d\fR or \fB\-x\fR output, or
-octal and hexadecimal if you're using \fB\-o\fR.
-.IP "\fB\-t\fR" 4
-.IX Item "-t"
-.PD 0
-.IP "\fB\-\-totals\fR" 4
-.IX Item "--totals"
-.PD
-Show totals of all objects listed (Berkeley format listing mode only).
-.IP "\fB\-\-target=\fR\fIbfdname\fR" 4
-.IX Item "--target=bfdname"
-Specify that the object-code format for \fIobjfile\fR is
-\&\fIbfdname\fR.  This option may not be necessary; \fBsize\fR can
-automatically recognize many formats.
-.IP "\fB\-V\fR" 4
-.IX Item "-V"
-.PD 0
-.IP "\fB\-\-version\fR" 4
-.IX Item "--version"
-.PD
-Display the version number of \fBsize\fR.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-\&\fIar\fR\|(1), \fIobjdump\fR\|(1), \fIreadelf\fR\|(1), and the Info entries for \fIbinutils\fR.
-.SH "COPYRIGHT"
-.IX Header "COPYRIGHT"
-Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
-.PP
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1
-or any later version published by the Free Software Foundation;
-with no Invariant Sections, with no Front-Cover Texts, and with no
-Back-Cover Texts.  A copy of the license is included in the
-section entitled ``\s-1GNU\s0 Free Documentation License''.
Index: b/binutils-2.16.1/binutils/doc/strings.1
===================================================================
--- a/binutils-2.16.1/binutils/doc/strings.1
+++ /dev/null
@@ -1,236 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings.  \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  | will give a
-.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-.    ds -- \(*W-
-.    ds PI pi
-.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
-.    ds L" ""
-.    ds R" ""
-.    ds C` ""
-.    ds C' ""
-'br\}
-.el\{\
-.    ds -- \|\(em\|
-.    ds PI \(*p
-.    ds L" ``
-.    ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD.  Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-.    de IX
-.    tm Index:\\$1\t\\n%\t"\\$2"
-..
-.    nr % 0
-.    rr F
-.\}
-.\"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
-.    \" fudge factors for nroff and troff
-.if n \{\
-.    ds #H 0
-.    ds #V .8m
-.    ds #F .3m
-.    ds #[ \f1
-.    ds #] \fP
-.\}
-.if t \{\
-.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-.    ds #V .6m
-.    ds #F 0
-.    ds #[ \&
-.    ds #] \&
-.\}
-.    \" simple accents for nroff and troff
-.if n \{\
-.    ds ' \&
-.    ds ` \&
-.    ds ^ \&
-.    ds , \&
-.    ds ~ ~
-.    ds /
-.\}
-.if t \{\
-.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-.    \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-.    \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-.    \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-.    ds : e
-.    ds 8 ss
-.    ds o a
-.    ds d- d\h'-1'\(ga
-.    ds D- D\h'-1'\(hy
-.    ds th \o'bp'
-.    ds Th \o'LP'
-.    ds ae ae
-.    ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "STRINGS 1"
-.TH STRINGS 1 "2005-04-20" "binutils-2.15.97" "GNU Development Tools"
-.SH "NAME"
-strings \- print the strings of printable characters in files.
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-strings [\fB\-afov\fR] [\fB\-\fR\fImin-len\fR]
-        [\fB\-n\fR \fImin-len\fR] [\fB\-\-bytes=\fR\fImin-len\fR]
-        [\fB\-t\fR \fIradix\fR] [\fB\-\-radix=\fR\fIradix\fR]
-        [\fB\-e\fR \fIencoding\fR] [\fB\-\-encoding=\fR\fIencoding\fR]
-        [\fB\-\fR] [\fB\-\-all\fR] [\fB\-\-print\-file\-name\fR]
-        [\fB\-\-target=\fR\fIbfdname\fR]
-        [\fB\-\-help\fR] [\fB\-\-version\fR] \fIfile\fR...
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-For each \fIfile\fR given, \s-1GNU\s0 \fBstrings\fR prints the printable
-character sequences that are at least 4 characters long (or the number
-given with the options below) and are followed by an unprintable
-character.  By default, it only prints the strings from the initialized
-and loaded sections of object files; for other types of files, it prints
-the strings from the whole file.
-.PP
-\&\fBstrings\fR is mainly useful for determining the contents of non-text
-files.
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-.IP "\fB\-a\fR" 4
-.IX Item "-a"
-.PD 0
-.IP "\fB\-\-all\fR" 4
-.IX Item "--all"
-.IP "\fB\-\fR" 4
-.IX Item "-"
-.PD
-Do not scan only the initialized and loaded sections of object files;
-scan the whole files.
-.IP "\fB\-f\fR" 4
-.IX Item "-f"
-.PD 0
-.IP "\fB\-\-print\-file\-name\fR" 4
-.IX Item "--print-file-name"
-.PD
-Print the name of the file before each string.
-.IP "\fB\-\-help\fR" 4
-.IX Item "--help"
-Print a summary of the program usage on the standard output and exit.
-.IP "\fB\-\fR\fImin-len\fR" 4
-.IX Item "-min-len"
-.PD 0
-.IP "\fB\-n\fR \fImin-len\fR" 4
-.IX Item "-n min-len"
-.IP "\fB\-\-bytes=\fR\fImin-len\fR" 4
-.IX Item "--bytes=min-len"
-.PD
-Print sequences of characters that are at least \fImin-len\fR characters
-long, instead of the default 4.
-.IP "\fB\-o\fR" 4
-.IX Item "-o"
-Like \fB\-t o\fR.  Some other versions of \fBstrings\fR have \fB\-o\fR
-act like \fB\-t d\fR instead.  Since we can not be compatible with both
-ways, we simply chose one.
-.IP "\fB\-t\fR \fIradix\fR" 4
-.IX Item "-t radix"
-.PD 0
-.IP "\fB\-\-radix=\fR\fIradix\fR" 4
-.IX Item "--radix=radix"
-.PD
-Print the offset within the file before each string.  The single
-character argument specifies the radix of the offset\-\-\-\fBo\fR for
-octal, \fBx\fR for hexadecimal, or \fBd\fR for decimal.
-.IP "\fB\-e\fR \fIencoding\fR" 4
-.IX Item "-e encoding"
-.PD 0
-.IP "\fB\-\-encoding=\fR\fIencoding\fR" 4
-.IX Item "--encoding=encoding"
-.PD
-Select the character encoding of the strings that are to be found.
-Possible values for \fIencoding\fR are: \fBs\fR = single\-7\-bit\-byte
-characters (\s-1ASCII\s0, \s-1ISO\s0 8859, etc., default), \fBS\fR =
-single\-8\-bit\-byte characters, \fBb\fR = 16\-bit bigendian, \fBl\fR =
-16\-bit littleendian, \fBB\fR = 32\-bit bigendian, \fBL\fR = 32\-bit
-littleendian. Useful for finding wide character strings.
-.IP "\fB\-\-target=\fR\fIbfdname\fR" 4
-.IX Item "--target=bfdname"
-Specify an object code format other than your system's default format.
-.IP "\fB\-v\fR" 4
-.IX Item "-v"
-.PD 0
-.IP "\fB\-\-version\fR" 4
-.IX Item "--version"
-.PD
-Print the program version number on the standard output and exit.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-\&\fIar\fR\|(1), \fInm\fR\|(1), \fIobjdump\fR\|(1), \fIranlib\fR\|(1), \fIreadelf\fR\|(1)
-and the Info entries for \fIbinutils\fR.
-.SH "COPYRIGHT"
-.IX Header "COPYRIGHT"
-Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
-.PP
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1
-or any later version published by the Free Software Foundation;
-with no Invariant Sections, with no Front-Cover Texts, and with no
-Back-Cover Texts.  A copy of the license is included in the
-section entitled ``\s-1GNU\s0 Free Documentation License''.
Index: b/binutils-2.16.1/binutils/doc/strip.1
===================================================================
--- a/binutils-2.16.1/binutils/doc/strip.1
+++ /dev/null
@@ -1,364 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings.  \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  | will give a
-.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-.    ds -- \(*W-
-.    ds PI pi
-.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
-.    ds L" ""
-.    ds R" ""
-.    ds C` ""
-.    ds C' ""
-'br\}
-.el\{\
-.    ds -- \|\(em\|
-.    ds PI \(*p
-.    ds L" ``
-.    ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD.  Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-.    de IX
-.    tm Index:\\$1\t\\n%\t"\\$2"
-..
-.    nr % 0
-.    rr F
-.\}
-.\"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
-.    \" fudge factors for nroff and troff
-.if n \{\
-.    ds #H 0
-.    ds #V .8m
-.    ds #F .3m
-.    ds #[ \f1
-.    ds #] \fP
-.\}
-.if t \{\
-.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-.    ds #V .6m
-.    ds #F 0
-.    ds #[ \&
-.    ds #] \&
-.\}
-.    \" simple accents for nroff and troff
-.if n \{\
-.    ds ' \&
-.    ds ` \&
-.    ds ^ \&
-.    ds , \&
-.    ds ~ ~
-.    ds /
-.\}
-.if t \{\
-.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-.    \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-.    \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-.    \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-.    ds : e
-.    ds 8 ss
-.    ds o a
-.    ds d- d\h'-1'\(ga
-.    ds D- D\h'-1'\(hy
-.    ds th \o'bp'
-.    ds Th \o'LP'
-.    ds ae ae
-.    ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "STRIP 1"
-.TH STRIP 1 "2005-04-20" "binutils-2.15.97" "GNU Development Tools"
-.SH "NAME"
-strip \- Discard symbols from object files.
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-strip [\fB\-F\fR \fIbfdname\fR |\fB\-\-target=\fR\fIbfdname\fR]
-      [\fB\-I\fR \fIbfdname\fR |\fB\-\-input\-target=\fR\fIbfdname\fR]
-      [\fB\-O\fR \fIbfdname\fR |\fB\-\-output\-target=\fR\fIbfdname\fR]
-      [\fB\-s\fR|\fB\-\-strip\-all\fR]
-      [\fB\-S\fR|\fB\-g\fR|\fB\-d\fR|\fB\-\-strip\-debug\fR]
-      [\fB\-K\fR \fIsymbolname\fR |\fB\-\-keep\-symbol=\fR\fIsymbolname\fR]
-      [\fB\-N\fR \fIsymbolname\fR |\fB\-\-strip\-symbol=\fR\fIsymbolname\fR]
-      [\fB\-w\fR|\fB\-\-wildcard\fR]
-      [\fB\-x\fR|\fB\-\-discard\-all\fR] [\fB\-X\fR |\fB\-\-discard\-locals\fR]
-      [\fB\-R\fR \fIsectionname\fR |\fB\-\-remove\-section=\fR\fIsectionname\fR]
-      [\fB\-o\fR \fIfile\fR] [\fB\-p\fR|\fB\-\-preserve\-dates\fR]
-      [\fB\-\-only\-keep\-debug\fR]
-      [\fB\-v\fR |\fB\-\-verbose\fR] [\fB\-V\fR|\fB\-\-version\fR]
-      [\fB\-\-help\fR] [\fB\-\-info\fR]
-      \fIobjfile\fR...
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-\&\s-1GNU\s0 \fBstrip\fR discards all symbols from object files
-\&\fIobjfile\fR.  The list of object files may include archives.
-At least one object file must be given.
-.PP
-\&\fBstrip\fR modifies the files named in its argument,
-rather than writing modified copies under different names.
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-.IP "\fB\-F\fR \fIbfdname\fR" 4
-.IX Item "-F bfdname"
-.PD 0
-.IP "\fB\-\-target=\fR\fIbfdname\fR" 4
-.IX Item "--target=bfdname"
-.PD
-Treat the original \fIobjfile\fR as a file with the object
-code format \fIbfdname\fR, and rewrite it in the same format.
-.IP "\fB\-\-help\fR" 4
-.IX Item "--help"
-Show a summary of the options to \fBstrip\fR and exit.
-.IP "\fB\-\-info\fR" 4
-.IX Item "--info"
-Display a list showing all architectures and object formats available.
-.IP "\fB\-I\fR \fIbfdname\fR" 4
-.IX Item "-I bfdname"
-.PD 0
-.IP "\fB\-\-input\-target=\fR\fIbfdname\fR" 4
-.IX Item "--input-target=bfdname"
-.PD
-Treat the original \fIobjfile\fR as a file with the object
-code format \fIbfdname\fR.
-.IP "\fB\-O\fR \fIbfdname\fR" 4
-.IX Item "-O bfdname"
-.PD 0
-.IP "\fB\-\-output\-target=\fR\fIbfdname\fR" 4
-.IX Item "--output-target=bfdname"
-.PD
-Replace \fIobjfile\fR with a file in the output format \fIbfdname\fR.
-.IP "\fB\-R\fR \fIsectionname\fR" 4
-.IX Item "-R sectionname"
-.PD 0
-.IP "\fB\-\-remove\-section=\fR\fIsectionname\fR" 4
-.IX Item "--remove-section=sectionname"
-.PD
-Remove any section named \fIsectionname\fR from the output file.  This
-option may be given more than once.  Note that using this option
-inappropriately may make the output file unusable.
-.IP "\fB\-s\fR" 4
-.IX Item "-s"
-.PD 0
-.IP "\fB\-\-strip\-all\fR" 4
-.IX Item "--strip-all"
-.PD
-Remove all symbols.
-.IP "\fB\-g\fR" 4
-.IX Item "-g"
-.PD 0
-.IP "\fB\-S\fR" 4
-.IX Item "-S"
-.IP "\fB\-d\fR" 4
-.IX Item "-d"
-.IP "\fB\-\-strip\-debug\fR" 4
-.IX Item "--strip-debug"
-.PD
-Remove debugging symbols only.
-.IP "\fB\-\-strip\-unneeded\fR" 4
-.IX Item "--strip-unneeded"
-Remove all symbols that are not needed for relocation processing.
-.IP "\fB\-K\fR \fIsymbolname\fR" 4
-.IX Item "-K symbolname"
-.PD 0
-.IP "\fB\-\-keep\-symbol=\fR\fIsymbolname\fR" 4
-.IX Item "--keep-symbol=symbolname"
-.PD
-Keep only symbol \fIsymbolname\fR from the source file.  This option may
-be given more than once.
-.IP "\fB\-N\fR \fIsymbolname\fR" 4
-.IX Item "-N symbolname"
-.PD 0
-.IP "\fB\-\-strip\-symbol=\fR\fIsymbolname\fR" 4
-.IX Item "--strip-symbol=symbolname"
-.PD
-Remove symbol \fIsymbolname\fR from the source file. This option may be
-given more than once, and may be combined with strip options other than
-\&\fB\-K\fR.
-.IP "\fB\-o\fR \fIfile\fR" 4
-.IX Item "-o file"
-Put the stripped output in \fIfile\fR, rather than replacing the
-existing file.  When this argument is used, only one \fIobjfile\fR
-argument may be specified.
-.IP "\fB\-p\fR" 4
-.IX Item "-p"
-.PD 0
-.IP "\fB\-\-preserve\-dates\fR" 4
-.IX Item "--preserve-dates"
-.PD
-Preserve the access and modification dates of the file.
-.IP "\fB\-w\fR" 4
-.IX Item "-w"
-.PD 0
-.IP "\fB\-\-wildcard\fR" 4
-.IX Item "--wildcard"
-.PD
-Permit regular expressions in \fIsymbolname\fRs used in other command
-line options.  The question mark (?), asterisk (*), backslash (\e) and
-square brackets ([]) operators can be used anywhere in the symbol
-name.  If the first character of the symbol name is the exclamation
-point (!) then the sense of the switch is reversed for that symbol.
-For example:
-.Sp
-.Vb 1
-\&          \-w \-K !foo \-K fo*
-.Ve
-.Sp
-would cause strip to only keep symbols that start with the letters
-``fo'', but to discard the symbol ``foo''.
-.IP "\fB\-x\fR" 4
-.IX Item "-x"
-.PD 0
-.IP "\fB\-\-discard\-all\fR" 4
-.IX Item "--discard-all"
-.PD
-Remove non-global symbols.
-.IP "\fB\-X\fR" 4
-.IX Item "-X"
-.PD 0
-.IP "\fB\-\-discard\-locals\fR" 4
-.IX Item "--discard-locals"
-.PD
-Remove compiler-generated local symbols.
-(These usually start with \fBL\fR or \fB.\fR.)
-.IP "\fB\-\-only\-keep\-debug\fR" 4
-.IX Item "--only-keep-debug"
-Strip a file, removing any sections that would be stripped by
-\&\fB\-\-strip\-debug\fR and leaving the debugging sections.
-.Sp
-The intention is that this option will be used in conjunction with
-\&\fB\-\-add\-gnu\-debuglink\fR to create a two part executable.  One a
-stripped binary which will occupy less space in \s-1RAM\s0 and in a
-distribution and the second a debugging information file which is only
-needed if debugging abilities are required.  The suggested procedure
-to create these files is as follows:
-.RS 4
-.IP "1.<Link the executable as normal.  Assuming that is is called>" 4
-.IX Item "1.<Link the executable as normal.  Assuming that is is called>"
-\&\f(CW\*(C`foo\*(C'\fR then...
-.ie n .IP "1.<Run ""objcopy \-\-only\-keep\-debug foo foo.dbg"" to>" 4
-.el .IP "1.<Run \f(CWobjcopy \-\-only\-keep\-debug foo foo.dbg\fR to>" 4
-.IX Item "1.<Run objcopy --only-keep-debug foo foo.dbg to>"
-create a file containing the debugging info.
-.ie n .IP "1.<Run ""objcopy \-\-strip\-debug foo"" to create a>" 4
-.el .IP "1.<Run \f(CWobjcopy \-\-strip\-debug foo\fR to create a>" 4
-.IX Item "1.<Run objcopy --strip-debug foo to create a>"
-stripped executable.
-.ie n .IP "1.<Run ""objcopy \-\-add\-gnu\-debuglink=foo.dbg foo"">" 4
-.el .IP "1.<Run \f(CWobjcopy \-\-add\-gnu\-debuglink=foo.dbg foo\fR>" 4
-.IX Item "1.<Run objcopy --add-gnu-debuglink=foo.dbg foo>"
-to add a link to the debugging info into the stripped executable.
-.RE
-.RS 4
-.Sp
-Note \- the choice of \f(CW\*(C`.dbg\*(C'\fR as an extension for the debug info
-file is arbitrary.  Also the \f(CW\*(C`\-\-only\-keep\-debug\*(C'\fR step is
-optional.  You could instead do this:
-.IP "1.<Link the executable as normal.>" 4
-.IX Item "1.<Link the executable as normal.>"
-.PD 0
-.ie n .IP "1.<Copy ""foo""\fR to  \f(CW""foo.full"">" 4
-.el .IP "1.<Copy \f(CWfoo\fR to  \f(CWfoo.full\fR>" 4
-.IX Item "1.<Copy foo to  foo.full>"
-.ie n .IP "1.<Run ""strip \-\-strip\-debug foo"">" 4
-.el .IP "1.<Run \f(CWstrip \-\-strip\-debug foo\fR>" 4
-.IX Item "1.<Run strip --strip-debug foo>"
-.ie n .IP "1.<Run ""objcopy \-\-add\-gnu\-debuglink=foo.full foo"">" 4
-.el .IP "1.<Run \f(CWobjcopy \-\-add\-gnu\-debuglink=foo.full foo\fR>" 4
-.IX Item "1.<Run objcopy --add-gnu-debuglink=foo.full foo>"
-.RE
-.RS 4
-.PD
-.Sp
-ie the file pointed to by the \fB\-\-add\-gnu\-debuglink\fR can be the
-full executable.  It does not have to be a file created by the
-\&\fB\-\-only\-keep\-debug\fR switch.
-.RE
-.IP "\fB\-V\fR" 4
-.IX Item "-V"
-.PD 0
-.IP "\fB\-\-version\fR" 4
-.IX Item "--version"
-.PD
-Show the version number for \fBstrip\fR.
-.IP "\fB\-v\fR" 4
-.IX Item "-v"
-.PD 0
-.IP "\fB\-\-verbose\fR" 4
-.IX Item "--verbose"
-.PD
-Verbose output: list all object files modified.  In the case of
-archives, \fBstrip \-v\fR lists all members of the archive.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-the Info entries for \fIbinutils\fR.
-.SH "COPYRIGHT"
-.IX Header "COPYRIGHT"
-Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
-.PP
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1
-or any later version published by the Free Software Foundation;
-with no Invariant Sections, with no Front-Cover Texts, and with no
-Back-Cover Texts.  A copy of the license is included in the
-section entitled ``\s-1GNU\s0 Free Documentation License''.
Index: b/binutils-2.16.1/binutils/doc/windres.1
===================================================================
--- a/binutils-2.16.1/binutils/doc/windres.1
+++ /dev/null
@@ -1,330 +0,0 @@
-.\" Automatically generated by Pod::Man v1.37, Pod::Parser v1.14
-.\"
-.\" Standard preamble:
-.\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
-.de Sp \" Vertical space (when we can't use .PP)
-.if t .sp .5v
-.if n .sp
-..
-.de Vb \" Begin verbatim text
-.ft CW
-.nf
-.ne \\$1
-..
-.de Ve \" End verbatim text
-.ft R
-.fi
-..
-.\" Set up some character translations and predefined strings.  \*(-- will
-.\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left
-.\" double quote, and \*(R" will give a right double quote.  | will give a
-.\" real vertical bar.  \*(C+ will give a nicer C++.  Capital omega is used to
-.\" do unbreakable dashes and therefore won't be available.  \*(C` and \*(C'
-.\" expand to `' in nroff, nothing in troff, for use with C<>.
-.tr \(*W-|\(bv\*(Tr
-.ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p'
-.ie n \{\
-.    ds -- \(*W-
-.    ds PI pi
-.    if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch
-.    if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\"  diablo 12 pitch
-.    ds L" ""
-.    ds R" ""
-.    ds C` ""
-.    ds C' ""
-'br\}
-.el\{\
-.    ds -- \|\(em\|
-.    ds PI \(*p
-.    ds L" ``
-.    ds R" ''
-'br\}
-.\"
-.\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
-.\" entries marked with X<> in POD.  Of course, you'll have to process the
-.\" output yourself in some meaningful fashion.
-.if \nF \{\
-.    de IX
-.    tm Index:\\$1\t\\n%\t"\\$2"
-..
-.    nr % 0
-.    rr F
-.\}
-.\"
-.\" For nroff, turn off justification.  Always turn off hyphenation; it makes
-.\" way too many mistakes in technical documents.
-.hy 0
-.\"
-.\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2).
-.\" Fear.  Run.  Save yourself.  No user-serviceable parts.
-.    \" fudge factors for nroff and troff
-.if n \{\
-.    ds #H 0
-.    ds #V .8m
-.    ds #F .3m
-.    ds #[ \f1
-.    ds #] \fP
-.\}
-.if t \{\
-.    ds #H ((1u-(\\\\n(.fu%2u))*.13m)
-.    ds #V .6m
-.    ds #F 0
-.    ds #[ \&
-.    ds #] \&
-.\}
-.    \" simple accents for nroff and troff
-.if n \{\
-.    ds ' \&
-.    ds ` \&
-.    ds ^ \&
-.    ds , \&
-.    ds ~ ~
-.    ds /
-.\}
-.if t \{\
-.    ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u"
-.    ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u'
-.    ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u'
-.    ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u'
-.    ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u'
-.    ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u'
-.\}
-.    \" troff and (daisy-wheel) nroff accents
-.ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V'
-.ds 8 \h'\*(#H'\(*b\h'-\*(#H'
-.ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#]
-.ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H'
-.ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u'
-.ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#]
-.ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#]
-.ds ae a\h'-(\w'a'u*4/10)'e
-.ds Ae A\h'-(\w'A'u*4/10)'E
-.    \" corrections for vroff
-.if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u'
-.if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u'
-.    \" for low resolution devices (crt and lpr)
-.if \n(.H>23 .if \n(.V>19 \
-\{\
-.    ds : e
-.    ds 8 ss
-.    ds o a
-.    ds d- d\h'-1'\(ga
-.    ds D- D\h'-1'\(hy
-.    ds th \o'bp'
-.    ds Th \o'LP'
-.    ds ae ae
-.    ds Ae AE
-.\}
-.rm #[ #] #H #V #F C
-.\" ========================================================================
-.\"
-.IX Title "WINDRES 1"
-.TH WINDRES 1 "2005-04-20" "binutils-2.15.97" "GNU Development Tools"
-.SH "NAME"
-windres \- manipulate Windows resources.
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-windres [options] [input\-file] [output\-file]
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-\&\fBwindres\fR reads resources from an input file and copies them into
-an output file.  Either file may be in one of three formats:
-.ie n .IP """rc""" 4
-.el .IP "\f(CWrc\fR" 4
-.IX Item "rc"
-A text format read by the Resource Compiler.
-.ie n .IP """res""" 4
-.el .IP "\f(CWres\fR" 4
-.IX Item "res"
-A binary format generated by the Resource Compiler.
-.ie n .IP """coff""" 4
-.el .IP "\f(CWcoff\fR" 4
-.IX Item "coff"
-A \s-1COFF\s0 object or executable.
-.PP
-The exact description of these different formats is available in
-documentation from Microsoft.
-.PP
-When \fBwindres\fR converts from the \f(CW\*(C`rc\*(C'\fR format to the \f(CW\*(C`res\*(C'\fR
-format, it is acting like the Windows Resource Compiler.  When
-\&\fBwindres\fR converts from the \f(CW\*(C`res\*(C'\fR format to the \f(CW\*(C`coff\*(C'\fR
-format, it is acting like the Windows \f(CW\*(C`CVTRES\*(C'\fR program.
-.PP
-When \fBwindres\fR generates an \f(CW\*(C`rc\*(C'\fR file, the output is similar
-but not identical to the format expected for the input.  When an input
-\&\f(CW\*(C`rc\*(C'\fR file refers to an external filename, an output \f(CW\*(C`rc\*(C'\fR file
-will instead include the file contents.
-.PP
-If the input or output format is not specified, \fBwindres\fR will
-guess based on the file name, or, for the input file, the file contents.
-A file with an extension of \fI.rc\fR will be treated as an \f(CW\*(C`rc\*(C'\fR
-file, a file with an extension of \fI.res\fR will be treated as a
-\&\f(CW\*(C`res\*(C'\fR file, and a file with an extension of \fI.o\fR or
-\&\fI.exe\fR will be treated as a \f(CW\*(C`coff\*(C'\fR file.
-.PP
-If no output file is specified, \fBwindres\fR will print the resources
-in \f(CW\*(C`rc\*(C'\fR format to standard output.
-.PP
-The normal use is for you to write an \f(CW\*(C`rc\*(C'\fR file, use \fBwindres\fR
-to convert it to a \s-1COFF\s0 object file, and then link the \s-1COFF\s0 file into
-your application.  This will make the resources described in the
-\&\f(CW\*(C`rc\*(C'\fR file available to Windows.
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-.IP "\fB\-i\fR \fIfilename\fR" 4
-.IX Item "-i filename"
-.PD 0
-.IP "\fB\-\-input\fR \fIfilename\fR" 4
-.IX Item "--input filename"
-.PD
-The name of the input file.  If this option is not used, then
-\&\fBwindres\fR will use the first non-option argument as the input file
-name.  If there are no non-option arguments, then \fBwindres\fR will
-read from standard input.  \fBwindres\fR can not read a \s-1COFF\s0 file from
-standard input.
-.IP "\fB\-o\fR \fIfilename\fR" 4
-.IX Item "-o filename"
-.PD 0
-.IP "\fB\-\-output\fR \fIfilename\fR" 4
-.IX Item "--output filename"
-.PD
-The name of the output file.  If this option is not used, then
-\&\fBwindres\fR will use the first non-option argument, after any used
-for the input file name, as the output file name.  If there is no
-non-option argument, then \fBwindres\fR will write to standard output.
-\&\fBwindres\fR can not write a \s-1COFF\s0 file to standard output.  Note,
-for compatability with \fBrc\fR the option \fB\-fo\fR is also
-accepted, but its use is not recommended.
-.IP "\fB\-J\fR \fIformat\fR" 4
-.IX Item "-J format"
-.PD 0
-.IP "\fB\-\-input\-format\fR \fIformat\fR" 4
-.IX Item "--input-format format"
-.PD
-The input format to read.  \fIformat\fR may be \fBres\fR, \fBrc\fR, or
-\&\fBcoff\fR.  If no input format is specified, \fBwindres\fR will
-guess, as described above.
-.IP "\fB\-O\fR \fIformat\fR" 4
-.IX Item "-O format"
-.PD 0
-.IP "\fB\-\-output\-format\fR \fIformat\fR" 4
-.IX Item "--output-format format"
-.PD
-The output format to generate.  \fIformat\fR may be \fBres\fR,
-\&\fBrc\fR, or \fBcoff\fR.  If no output format is specified,
-\&\fBwindres\fR will guess, as described above.
-.IP "\fB\-F\fR \fItarget\fR" 4
-.IX Item "-F target"
-.PD 0
-.IP "\fB\-\-target\fR \fItarget\fR" 4
-.IX Item "--target target"
-.PD
-Specify the \s-1BFD\s0 format to use for a \s-1COFF\s0 file as input or output.  This
-is a \s-1BFD\s0 target name; you can use the \fB\-\-help\fR option to see a list
-of supported targets.  Normally \fBwindres\fR will use the default
-format, which is the first one listed by the \fB\-\-help\fR option.
-.IP "\fB\-\-preprocessor\fR \fIprogram\fR" 4
-.IX Item "--preprocessor program"
-When \fBwindres\fR reads an \f(CW\*(C`rc\*(C'\fR file, it runs it through the C
-preprocessor first.  This option may be used to specify the preprocessor
-to use, including any leading arguments.  The default preprocessor
-argument is \f(CW\*(C`gcc \-E \-xc\-header \-DRC_INVOKED\*(C'\fR.
-.IP "\fB\-I\fR \fIdirectory\fR" 4
-.IX Item "-I directory"
-.PD 0
-.IP "\fB\-\-include\-dir\fR \fIdirectory\fR" 4
-.IX Item "--include-dir directory"
-.PD
-Specify an include directory to use when reading an \f(CW\*(C`rc\*(C'\fR file.
-\&\fBwindres\fR will pass this to the preprocessor as an \fB\-I\fR
-option.  \fBwindres\fR will also search this directory when looking for
-files named in the \f(CW\*(C`rc\*(C'\fR file.  If the argument passed to this command
-matches any of the supported \fIformats\fR (as descrived in the \fB\-J\fR 
-option), it will issue a deprecation warning, and behave just like the
-\&\fB\-J\fR option.  New programs should not use this behaviour.  If a
-directory happens to match a \fIformat\fR, simple prefix it with \fB./\fR
-to disable the backward compatibility.
-.IP "\fB\-D\fR \fItarget\fR" 4
-.IX Item "-D target"
-.PD 0
-.IP "\fB\-\-define\fR \fIsym\fR\fB[=\fR\fIval\fR\fB]\fR" 4
-.IX Item "--define sym[=val]"
-.PD
-Specify a \fB\-D\fR option to pass to the preprocessor when reading an
-\&\f(CW\*(C`rc\*(C'\fR file.
-.IP "\fB\-U\fR \fItarget\fR" 4
-.IX Item "-U target"
-.PD 0
-.IP "\fB\-\-undefine\fR \fIsym\fR" 4
-.IX Item "--undefine sym"
-.PD
-Specify a \fB\-U\fR option to pass to the preprocessor when reading an
-\&\f(CW\*(C`rc\*(C'\fR file.
-.IP "\fB\-r\fR" 4
-.IX Item "-r"
-Ignored for compatibility with rc.
-.IP "\fB\-v\fR" 4
-.IX Item "-v"
-Enable verbose mode.  This tells you what the preprocessor is if you
-didn't specify one.
-.IP "\fB\-l\fR \fIval\fR" 4
-.IX Item "-l val"
-.PD 0
-.IP "\fB\-\-language\fR \fIval\fR" 4
-.IX Item "--language val"
-.PD
-Specify the default language to use when reading an \f(CW\*(C`rc\*(C'\fR file.
-\&\fIval\fR should be a hexadecimal language code.  The low eight bits are
-the language, and the high eight bits are the sublanguage.
-.IP "\fB\-\-use\-temp\-file\fR" 4
-.IX Item "--use-temp-file"
-Use a temporary file to instead of using popen to read the output of
-the preprocessor. Use this option if the popen implementation is buggy 
-on the host (eg., certain non-English language versions of Windows 95 and 
-Windows 98 are known to have buggy popen where the output will instead
-go the console).
-.IP "\fB\-\-no\-use\-temp\-file\fR" 4
-.IX Item "--no-use-temp-file"
-Use popen, not a temporary file, to read the output of the preprocessor.
-This is the default behaviour.
-.IP "\fB\-h\fR" 4
-.IX Item "-h"
-.PD 0
-.IP "\fB\-\-help\fR" 4
-.IX Item "--help"
-.PD
-Prints a usage summary.
-.IP "\fB\-V\fR" 4
-.IX Item "-V"
-.PD 0
-.IP "\fB\-\-version\fR" 4
-.IX Item "--version"
-.PD
-Prints the version number for \fBwindres\fR.
-.IP "\fB\-\-yydebug\fR" 4
-.IX Item "--yydebug"
-If \fBwindres\fR is compiled with \f(CW\*(C`YYDEBUG\*(C'\fR defined as \f(CW1\fR,
-this will turn on parser debugging.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-the Info entries for \fIbinutils\fR.
-.SH "COPYRIGHT"
-.IX Header "COPYRIGHT"
-Copyright (c) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc.
-.PP
-Permission is granted to copy, distribute and/or modify this document
-under the terms of the \s-1GNU\s0 Free Documentation License, Version 1.1
-or any later version published by the Free Software Foundation;
-with no Invariant Sections, with no Front-Cover Texts, and with no
-Back-Cover Texts.  A copy of the license is included in the
-section entitled ``\s-1GNU\s0 Free Documentation License''.
Index: b/binutils-2.16.1/binutils/MAINTAINERS
===================================================================
--- a/binutils-2.16.1/binutils/MAINTAINERS
+++ b/binutils-2.16.1/binutils/MAINTAINERS
@@ -84,7 +84,7 @@ responsibility among the other maintaine
   M68k		   Ben Elliston <bje@gnu.org>
   MAXQ		   Inderpreet Singh <inderpreetb@noida.hcltech.com>
   MIPS		   Eric Christopher <echristo@redhat.com>
-  MIPS		   Thiemo Seufer <ths@networkno.de>
+  MIPS		   Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
   MMIX		   Hans-Peter Nilsson <hp@bitrange.com>
   MN10300	   Eric Christopher <echristo@redhat.com>
   MN10300	   Alexandre Oliva <aoliva@redhat.com>
Index: b/binutils-2.16.1/binutils/NEWS
===================================================================
--- a/binutils-2.16.1/binutils/NEWS
+++ b/binutils-2.16.1/binutils/NEWS
@@ -1,59 +1,5 @@
 -*- text -*-
 
-* Binutils-2.16 will be the last release for a number of targets due to
-  lack of maintenance (of course, if maintainers step up, then this list
-  will change!).  The targets are:
-
-    a29k-*-*
-    d10v-*-*
-    d30v-*-*
-    dlx-*-*
-    h8300-*-coff
-    h8300-*-rtems*
-    h8500-*-coff
-    h8500-*-rtems*
-    i370-*-*
-    i960-*-*
-    i960-*-bout
-    i960-*-coff
-    i960-*-nindy*
-    i960-*-rtems*
-    i960-*-vxworks*
-    i960-*-vxworks5.*
-    i960-*-vxworks5.0
-    m68k-*-coff
-    m68k-*-hpux*
-    m68k-*-linux*aout*
-    m68k-*-rtemscoff*
-    m68k-*-sunos*
-    m68k-*-sysv*
-    m68k-*-vxworks*
-    m68k-apollo-*
-    m68k-apple-aux*
-    m68k-bull-sysv3*
-    m68k-ericsson-ose
-    m68k-motorola-sysv*
-    m88k-*-*					(*)
-    mn10200-*-*
-    openrisc-*-*
-    or32-*-*
-    or32-*-coff
-    pj*-*-*
-    sh-*-coff*
-    sh-*-rtemscoff*
-    tic80-*-*
-    vax-*-bsd*					(*)
-    vax-*-netbsd* excluding vax-*-netbsdelf	(*)
-    vax-*-ultrix*				(*)
-    w65-*-*
-    xscale-*-coff
-    *-*-linux*aout*
-    *-*-linux*oldld
-
-    (*) bfd and opcodes support will be kept.
-
-* Add "-g/--section-groups" to readelf to display section groups.
-
 * objcopy recognizes two new options --strip-unneeded-symbol and
   --strip-unneeded-symbols, namely for use together with the wildcard
   matching the original --strip-symbol/--strip-symbols provided, but
Index: b/binutils-2.16.1/binutils/objdump.c
===================================================================
--- a/binutils-2.16.1/binutils/objdump.c
+++ b/binutils-2.16.1/binutils/objdump.c
@@ -2345,9 +2345,8 @@ dump_symbols (bfd *abfd ATTRIBUTE_UNUSED
 	printf (_("could not determine the type of symbol number %ld\n"),
 		count);
 
-      else if (process_section_p ((* current)->section)
-	       && (dump_special_syms
-		   || !bfd_is_target_special_symbol (cur_bfd, *current)))
+      else if (dump_special_syms
+	       || !bfd_is_target_special_symbol (cur_bfd, *current))
 	{
 	  const char *name = (*current)->name;
 
Index: b/binutils-2.16.1/binutils/po/.cvsignore
===================================================================
--- /dev/null
+++ b/binutils-2.16.1/binutils/po/.cvsignore
@@ -0,0 +1 @@
+*.gmo
Index: b/binutils-2.16.1/binutils/readelf.c
===================================================================
--- a/binutils-2.16.1/binutils/readelf.c
+++ b/binutils-2.16.1/binutils/readelf.c
@@ -7329,18 +7329,6 @@ debug_apply_rela_addends (FILE *file,
 	    }
 	  else
 	    {
-	      /* In MIPS little-endian objects, r_info isn't really a
-		 64-bit little-endian value: it has a 32-bit little-endian
-		 symbol index followed by four individual byte fields.
-		 Reorder INFO accordingly.  */
-	      if (elf_header.e_machine == EM_MIPS
-		  && elf_header.e_ident[EI_DATA] != ELFDATA2MSB)
-		rp->r_info = (((rp->r_info & 0xffffffff) << 32)
-			      | ((rp->r_info >> 56) & 0xff)
-			      | ((rp->r_info >> 40) & 0xff00)
-			      | ((rp->r_info >> 24) & 0xff0000)
-			      | ((rp->r_info >> 8) & 0xff000000));
-
 	      sym = symtab + ELF64_R_SYM (rp->r_info);
 
 	      if (ELF64_R_SYM (rp->r_info) != 0
@@ -10643,7 +10631,6 @@ display_debug_frames (Elf_Internal_Shdr 
 	    case DW_CFA_def_cfa_sf:
 	      fc->cfa_reg = LEB ();
 	      fc->cfa_offset = SLEB ();
-	      fc->cfa_offset = fc->cfa_offset * fc->data_factor;
 	      fc->cfa_exp = 0;
 	      if (! do_debug_frames_interp)
 		printf ("  DW_CFA_def_cfa_sf: r%d ofs %d\n",
@@ -10652,7 +10639,6 @@ display_debug_frames (Elf_Internal_Shdr 
 
 	    case DW_CFA_def_cfa_offset_sf:
 	      fc->cfa_offset = SLEB ();
-	      fc->cfa_offset = fc->cfa_offset * fc->data_factor;
 	      if (! do_debug_frames_interp)
 		printf ("  DW_CFA_def_cfa_offset_sf: %d\n", fc->cfa_offset);
 	      break;
Index: b/binutils-2.16.1/ChangeLog
===================================================================
--- /dev/null
+++ b/binutils-2.16.1/ChangeLog
@@ -0,0 +1,10661 @@
+2005-03-01  Alexandre Oliva  <aoliva@redhat.com>
+
+	PR libgcj/20160
+	* ltmain.sh: Avoid creating archives with components that have
+	duplicate basenames.
+
+2005-02-28  Andrew Pinski  <pinskia@physics.uc.edu>
+
+        PR bootstrap/20250
+        * Makefile.tpl (HOST target installs): Fix copy and pasto, use install
+        instead of check.
+        * Makefile.in: Regenerate.
+
+2005-02-28  Paolo Bonzini  <bonzini@gnu.org>
+
+	Sync from gcc.
+
+	2005-02-28  Paolo Bonzini  <bonzini@gnu.org>
+
+	PR bootstrap/17383
+	* Makefile.def (target_modules): Remove "stage", now unnecessary.
+	* Makefile.tpl (HOST_SUBDIR): New substitution.
+	(STAGE_HOST_EXPORTS, EXPECT, HOST_LIB_PATH, USUAL_AR_FOR_TARGET,
+	USUAL_AS_FOR_TARGET, USUAL_DLLTOOL_FOR_TARGET, USUAL_GCC_FOR_TARGET,
+	USUAL_LD_FOR_TARGET, USUAL_NM_FOR_TARGET, USUAL_OBJDUMP_FOR_TARGET,
+	USUAL_RANLIB_FOR_TARGET, USUAL_WINDRES_FOR_TARGET): Use it.
+	(Host modules, Bootstrapped modules): Use it.
+	(Build modules, Target modules): Do not create symlink trees,
+	always configure out-of-srcdir.
+	(distclean): Try removing $(host_subdir) with rm before using rm -rf.
+	* configure.in (FLAGS_FOR_TARGET, CC_FOR_TARGET, GCJ_FOR_TARGET,
+	GFORTRAN_FOR_TARGET, CXX_FOR_TARGET, RAW_CXX_FOR_TARGET): Use
+	$(HOST_SUBDIR).  Create a symlink for host_subdir.
+
+	* Makefile.in: Regenerate.
+	* configure: Regenerate.
+
+	Merged from libada-gnattools-branch:
+	2004-11-28  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* Makefile.def: Add gnattools as a module, depending on target-libada.
+	* Makefile.in: Regenerate.
+	* configure.in: Include gnattools in host_tools; disable it if ada
+	is disabled.
+	* configure: Regenerate.
+
+2005-02-23  Nick Clifton  <nickc@redhat.com>
+
+	* configure: Regenerate.
+
+2005-02-22  Paul Schlie  <schlie@comcast.net>
+
+	* configure.in: Allow darwin targeted ports to build tk, itcl and
+	libgui.
+
+2005-02-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+	PR libgcj/10353
+	* configure.in (noconfigdirs) <sparc-*-solaris2.[0-6]>: Add libgcj.
+	* configure: Regenerate.
+
+2005-02-08  Andrew Cagney  <cagney@gnu.org>
+
+	* MAINTAINERS: Delete reference to dejagnu/ and mmalloc/ from the
+	gdb/ section.  Update GDB's URL.
+
+2005-01-31  Andrew Cagney  <cagney@gnu.org>
+
+	* gettext.m4: Only set ENABLE_NLS when gettext is present.
+
+2005-01-29  Hans-Peter Nilsson  <hp@axis.com>
+
+	* configure.in (noconfigdirs) <crisv32-*-*>: Match like cris-*-*.
+	<crisv32-*-*, cris-*-*>: Only disable target-newlib and
+	target-libgloss when not *-*-elf and *-*-aout.
+	* configure: Regenerate.
+
+2005-01-27  Andrew Cagney  <cagney@gnu.org>
+
+	* gettext.m4: Don't use NONE as a default for CATOBJEXT.
+
+2005-01-24  Andrew Cagney  <cagney@gnu.org>
+
+	* gettext.m4: Only fall back to ../intl/ when it's present.
+
+2005-01-17  Kelley Cook  <kcook@gcc.gnu.org>
+
+	* install-sh, config.sub: Import from upstream.
+
+2005-01-17  Kelley Cook  <kcook@gcc.gnu.org>
+
+	PR bootstrap/18222
+	* Makefile.def: Pass CPPFLAGS_FOR_TARGET.
+	* Makefile.tpl: Define target CPPFLAGS on CPPFLAGS_FOR_TARGET.
+	* Makefile.in: Regenerate.
+
+2005-01-03  Paolo Bonzini  <bonzini@gnu.org>
+
+	Revert 2004-12-28 Makefile changes, a better fix will be
+	applied to mainline and src after GCC 4.0 branches.
+
+2004-12-28  Paolo Bonzini  <bonzini@gnu.org>
+
+	PR bootstrap/17383
+
+	* Makefile.def (target_modules): Remove stage parameter,
+	it is always true now.
+	* Makefile.tpl (configure-build-[+module+],
+	configure-target-[+module+]): Always build symlink tree
+	for the directory and for include.  BUILD_SUBDIR and
+	TARGET_SUBDIR cannot be . anymore.
+	* Makefile.in: Regenerate.
+
+2004-12-25  David Edelsohn  <edelsohn@gnu.org>
+
+	Revert 2004-12-08 Makefile changes.
+
+2004-12-16  Andrew Stubbs  <andrew.stubbs@st.com>
+
+	* configure.in (sh64-*-*): Reenable gprof.
+	* configure: Regenerate.
+
+2004-12-09  Jim Blandy  <jimb@redhat.com>
+
+	* MAINTAINERS: List 'depcomp' as part of automake.
+
+2004-12-08  David Edelsohn  <edelsohn@gnu.org>
+
+	* Makefile.def (flags_to_pass): Add PICFLAG_FOR_TARGET.
+	* Makefile.tpl (EXTRA_HOST_FLAGS): Add PICFLAG.
+	(EXTRA_TARGET_FLAGS): Add PICFLAG.
+	* Makefile.in: Regenerate.
+
+2004-12-07  Matt Kraai  <kraai@ftbfs.org>
+
+	* Makefile.tpl: Generate normal dependencies if the LHS module is
+	not bootstrapped.
+	* Makefile.in: Regenerate.
+
+2004-12-03  Richard Sandiford  <rsandifo@redhat.com>
+
+	* configure.in: Include config/gxx-include-dir.m4.  Use
+	TL_AC_GXX_INCLUDE_DIR.  Remove some now-redundant AC_SUBSTs.
+	* configure: Regenerate.
+
+2004-12-03  Richard Sandiford  <rsandifo@redhat.com>
+
+	* config.if: Delete.
+	* configure.in: Set libstdcxx_incdir directly.
+	* configure: Regenerate.
+	* MAINTAINERS: Remove mention of config.if.
+	* src-release (DEVO_SUPPORT): Remove config.if.
+
+2004-12-02  Eric Christopher  <echristo@redhat.com>
+
+	* Makefile.tpl (clean-target-libgcc): Add stmp-dirs to list
+	of things to remove.
+	* Makefile.in: Regenerate.
+
+2004-12-02  Richard Sandiford  <rsandifo@redhat.com>
+
+	* configure.in: Clear gcc_version_trigger if the file doesn't exist.
+	* configure: Regenerate.
+
+2004-12-02  Richard Sandiford  <rsandifo@redhat.com>
+
+	* configure.in: Include config/gcc-version.m4.  Use TL_AC_GCC_VERSION
+	to set gcc_version_trigger.  Remove some now-redundant AC_SUBSTs.
+	* configure: Regenerate.
+
+2004-11-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+	* configure.in (hppa*-*-linux*): Don't add libgcj to noconfigdirs.
+	(hppa*64*-*-*): Delete incorrect comment.
+	* configure: Rebuilt.
+
+2004-11-15  Kelley Cook  <kcook@gcc.gnu.org>
+
+	* install-sh, compile: Import from automake.
+
+2004-11-15  Kelley Cook  <kcook@gcc.gnu.org>
+
+	* config.guess, config.sub:  Import from savannnah.
+
+2004-11-12  Mike Stump  <mrs@apple.com>
+
+	* Makefile.def: Add html support.
+	* Makefile.tpl: Likewise.
+	* Makefile.in: Regenerate.
+
+2004-11-11  Geoffrey Keating  <geoffk@apple.com>
+
+	PR 18423
+	* configure.in: Remove all instances of build-fixincludes from
+	noconfigdirs.
+	(build_configargs): Supply --target to subdirectories.
+	* configure: Regenerate.
+
+	* Makefile.def: Make gcc install depend on fixincludes install.
+	* Makefile.in: Regenerate.
+
+2004-11-08  Hans-Peter Nilsson  <hp@bitrange.com>
+
+	* configure.in (noconfigdirs) [mmix-*-*]: Disable
+	target-libgfortran.
+	* configure: Regenerate.
+
+2004-11-07  David Edelsohn  <edelsohn@gnu.org>
+
+	* config-ml.in: Pass FCFLAGS for multilibs, handle GFORTRAN
+	like CC.
+
+2004-11-05  Paolo Bonzini  <bonzini@gnu.org>
+
+	* Makefile.def (host fixincludes): Specify missing targets.
+	* Makefile.in: Regenerate.
+
+2004-11-04  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR other/17783
+	* configure.in: Set up LD_LIBRARY_PATH by default for gcc.
+	* configure: Regenerated.
+
+2004-11-04  Daniel Jacobowitz  <dan@debian.org>
+
+	* configure.in (arm-*-oabi*, thumb-*-oabi*): Remove.
+	* configure: Regenerated.
+
+2004-10-28  Eric B. Weddington  <ericw@evcohs.com>
+
+	PR target/18151
+	* configure.in (case ${target}): Do not build fixincludes for avr.
+	* configure: Regenerated.
+
+2004-10-26  Paolo Bonzini  <bonzini@gnu.org>
+
+	* configure.in (case ${target}): Do not build fixincludes
+	on platforms where it is not used.
+	* configure: Regenerated.
+
+2004-10-23  Daniel Jacobowitz  <dan@debian.org>
+
+	* configure.in: Use an absolute path to install-sh.
+	* configure: Regenerated.
+
+2004-10-19  Andrew Cagney  <cagney@gnu.org>
+
+	* src-release (do-djunpack, do-md5sum): Install the generated file
+	directly into the proto-toplev/ directory.
+
+2004-10-19  Andrew Cagney  <cagney@gnu.org>
+
+	* src-release (GDB_SUPPORT_DIRS): Remove utils and intl.
+
+2004-10-12  Kelley Cook  <kcook@gcc.gnu.org>
+
+	* configure.in (*-*-cygwin*): Supress warning if newlib not present.
+	* configure: Regenerate.
+
+2004-10-06  Paolo Bonzini  <bonzini@gnu.org>
+
+	Fix wrong conflict resolution in:
+
+	2004-08-16  Paolo Bonzini  <bonzini@gnu.org>
+
+	* Makefile.in: Regenerate.
+	* Makefile.tpl (Autogenerated `all-*' targets): Invoke $(TARGET-*)
+	in the recursive `make', instead of hardwiring `all'.
+	(Autogenerated TARGET-* variables): New.
+
+2004-10-05  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	Merged from GCC / libtool upstream:
+	2004-10-02  P.J. Darcy  <darcypj@us.ibm.com>
+	* ltcf-c.sh (tpf*): Add ld_shlibs=yes.
+	* ltcf-cxx.sh (tpf*): Likewise.
+	* ltconfig (tpf*): Add TPF OS configuration support.
+
+2004-09-30  Tomer Levi  <Tomer.Levi@nsc.com>
+
+	* configure.in: Enable target-libgloss for crx-*-*.
+        * configure: Regenerate.
+
+2004-09-24  Michael Roth  <mroth@nessie.de>
+
+	* configure.in (--without-headers): Add missing double quotes.
+	* configure: Regenerate.
+
+2004-09-24  Kelley Cook <kcook@gcc.gnu.org>
+
+	* ylwrap: Revert to previous version.
+
+2004-09-23  H.J. Lu  <hongjiu.lu@intel.com>
+
+	PR bootstrap/17369
+	* Makefile.tpl (REALLY_SET_LIB_PATH): Add @SET_GCC_LIB_PATH@.
+	(HOST_EXPORTS]): Add @SET_GCC_LIB_PATH@. Set and export
+	SET_GCC_LIB_PATH_CMD.
+	(BASE_TARGET_EXPORTS): Likewise.
+	* Makefile.in: Regenerated.
+
+	* configure.in (SET_GCC_LIB_PATH): Set and substitute.
+	* configure: Regenerated.
+
+2004-09-23  Kelley Cook  <kcook@gcc.gnu.org>
+
+	* config.guess: New upstream version
+	* compile, depcomp, install-sh, ylwrap: Likewise.
+
+2004-09-19  Roger Sayle  <roger@eyesopen.com>
+
+	* config/mh-x86omitfp: New host makefile fragment.  Add
+	-fomit-frame-pointer to the default BOOT_CFLAGS.
+	* configure.in: Use it to speed up bootstrap on some IA-32 hosts.
+	* configure: Regenerate.
+
+2004-09-15  Andrew Pinski  <pinskia@physics.uc.edu>
+
+	PR target/11572
+	* configure.in (*-*-darwin*): Renable libobjc.
+	* configure: Regenerate.
+
+2004-09-09  Daniel Berlin  <dberlin@dberlin.org>
+
+	* Makefile.def: Remove libbanshee.
+	* Makefile.tpl: Ditto.
+	* configure.in: Ditto.
+	* Makefile.in: Regen.
+	* configure: Ditto.
+
+2004-09-07  Paolo Bonzini  <bonzini@gnu.org>
+
+	* missing: Import latest version from master repository.
+
+2004-09-04  Nick Clifton  <nickc@redhat.com>
+
+	* config.sub: Import latest version from master repository.
+	* config.guess: Likewise.
+	This includes these changes:
+
+	2004-08-27  Hans-Peter Nilsson  <hp@axis.com>
+
+	* config.sub: Handle crisv32, alias etraxfs.
+	* config.guess (crisv32:Linux:*:*): Handle.
+
+	2004-08-13  Brad Smith  <brad@comstyle.com>
+
+	* config.guess (*:OpenBSD:*:*): Remove defunct MIPS machines.
+	(sgi:OpenBSD:*:*): Emit mips64, not mipseb.
+
+	2004-08-11  Paul Eggert  <eggert@cs.ucla.edu>
+
+	* config.guess (*:Darwin:*:*): If uname -p reports "unknown",
+	assume the processor is a powerpc.  This is because coreutils
+	uname (at least versions 4.5.7 through 5.2.1) outputs "unknown"
+	in this case, due to a MacOS X bug that causes
+	sysctl ((int[]) {CTL_HW, HW_MACHINE_ARCH}, 2, buffer, &bufsize, 0, 0)
+	to return a negative number.
+	Problem reported by Petter Reinholdtsen in:
+	http://lists.gnu.org/archive/html/bug-gnu-utils/2003-02/msg00201.html
+
+	2004-07-19  Ben Elliston  <bje@gnu.org>
+
+	* config.guess (S7501:*:4.0:3.0): Handle NCR System V UNIX machine.
+
+	2004-06-24  Ben Elliston  <bje@gnu.org>
+
+	* config.guess: Update copyright years.
+	* config.sub: Likewise.
+
+	2004-06-22  Robert Millan  <robertmh@gnu.org>
+
+	* config.guess (*:FreeBSD:*:*): Remove check for glibc (unneeded
+	since GNU/kFreeBSD systems match *:GNU/*:*:* instead).
+
+	2004-06-22  Stanley F. Quayle <stan@stanq.com>
+
+	* config.guess (*:*VMS:*:*): New entry. Replaces
+	Alpha:OpenVMS:*. Recognize and advertise all VMS flavors as dec
+	manufacturer.
+
+	2004-06-22  Ben Elliston  <bje@gnu.org>
+
+	* config.guess: Cray fixes from Wendy Palm <wendyp@cray.com>.
+	* config.sub: Likewise.
+
+	2004-06-22  Ben Elliston  <bje@gnu.org>
+
+	Reported by Hans-Peter Nilsson <hp@bitrange.com>:
+	* config.sub: Correctly handle mmix-knuth and mmix-knuth-mmixware.
+
+	2004-06-11  Ben Elliston  <bje@gnu.org>
+
+	* config.guess (pegasos:OpenBSD:*:*): Remove.
+
+	2004-06-11  Ben Elliston  <bje@gnu.org>
+
+	From Wouter Verhelst <wouter@grep.be>:
+	* config.guess (M68*:*:R3V[5678]:*): Detect R3V8.
+
+	2004-06-11  Ben Elliston  <bje@gnu.org>
+
+	* config.guess (luna88k:OpenBSD:*:*): New.
+
+	2004-03-12  Kazuhiro Inaoka  <inaoka.kazuhiro@renesas.com>
+
+	* config.guess (m32r*:Linux:*:*): New case.
+	* config.sub: Handle m32rle.
+
+	2004-03-12  Ben Elliston  <bje@wasabisystems.com>
+
+	From Jens Petersen  <petersen@redhat.com>:
+	* config.sub: Handle sparcv8.
+
+	2004-03-03  Ben Elliston  <bje@wasabisystems.com>
+
+	From Tom Smith <smith@cag.lkg.hp.com>:
+	* config.guess: Version suffixes are equally significant on Tru64
+	V4.* and V5.*, so do not ignore them on V5.*.  Handle a version
+	prefix of "P" (patched kernel).
+
+	2004-02-23  Tal Agmon  <Tal.Agmon@nsc.com>
+
+	* config.sub: Add support for National Semiconductor CRX target.
+
+2004-09-03  Jan Beulich  <jbeulich@novell.com>
+
+	* configure.in: Remove target-libstdc++-v3 from noconfigdirs for
+	*-*-netware, but add target-libmudflap.
+	Consolidate *-*-netware targets (of which really only i?86 exists)
+	into a single entry.
+	* configure: Likewise.
+
+2004-09-01  Paolo Bonzini  <bonzini@gnu.org>
+
+	* Makefile.tpl (sorry): Remove.
+	(clean-stage[+id+], clean-stage[+id+]-module): New targets.
+	(cleanstrap targets): Depend on distclean, not distclean-stage1.
+	(do-clean): Clean per-stage directories too.
+	(do-distclean): Run distclean-stage1 too.
+	(.NOTPARALLEL): Enable during toplevel bootstrap.
+	(stage[+id+]-bubble): Enable parallel execution during
+	the recursive invocation.
+	* Makefile.in: Regenerate.
+
+	Sync from gcc (moving the Makefile.in change to Makefile.tpl):
+
+	2004-08-31  Robert Bowdidge <bowdidge@apple.com>
+
+	* Makefile.in: Move BOOT_CFLAGS above host makefile fragment include.
+	* configure.in: add test for powerpc-*-darwin* to specify makefile frag
+	* configure: regenerate
+	* config/mh-ppc-darwin: create file, override BOOT_CFLAGS for
+        -mdynamic-no-pic
+
+2004-08-31  Paolo Bonzini  <bonzini@gnu.org>
+
+	* Makefile.tpl: Move BOOT_CFLAGS above host makefile fragment
+	include.
+	* configure.in: Fix indentation.
+	* configure: Regenerate.
+
+2004-08-31  Paolo Bonzini  <bonzini@gnu.org>
+
+	* Makefile.def (build_modules): Add fixincludes.
+	(dependencies): Make gcc depend on fixincludes.
+	* configure.in (build_tools): Add fixincludes.
+	(build_configdirs): Always include build_libs.
+	* Makefile.in: Regenerate.
+	* configure: Regenerate.
+
+2004-08-30  Paolo Bonzini  <bonzini@gnu.org>
+
+	* Makefile.def (bootstrap stages): Add 'lean' parameter.
+	* Makefile.tpl (configure-stageN-*, all-stageN-*): Turned into
+	phony targets; do not generate timestamp files.
+	(distclean-stageN): Remove references to their timestamp files.
+	(restageN, touch-stageN): Remove.
+	(stageN-bubble): Rewritten.
+	(compare): Support lean bootstraps.
+	* Makefile.in: Regenerate.
+
+	* configure.in: Only warn when bootstrapping but
+	build != host or build != target.  Support lean bootstraps.
+	* configure: Regenerate.
+
+	Sync from gcc:
+	2004-08-26  Phil Edwards  <phil@codesourcery.com>
+
+	* configure.in:  Give a better error message if GMP/MPFR are missing
+	and a language needing them has been requested.
+	* configure:  Regenerated.
+
+	2004-08-25  Phil Edwards  <phil@codesourcery.com>
+
+	* configure.in:  Print a list of available language front-ends if
+	a requested one is missing.  Tidy stray tab characters.
+	* configure:  Regenerated.
+
+2004-08-17  Paolo Bonzini  <bonzini@gnu.org>
+
+	* Makefile.in: Regenerate.
+	* configure: Regenerate.
+
+	* Makefile.def (bootstrap-stage): Rename extra_*_flags to
+	stage_*_flags.
+	* Makefile.tpl (configure-[+module+], all-[+module+]): Exit
+	for bootstrapped modules if toplevel bootstrap is going.
+	(GCC bootstrap): Generate per-stage targets for all bootstrapped
+	modules.  Adjust for changes in Makefile.def.  Enable several
+	rules even in non-bootstrap mode, just to avoid peppering the
+	template with unnecessary "@if/@endif gcc-bootstrap" pairs.
+	(stage-[+prev+]-bubble): Remove.
+
+	* Makefile.def (Dependencies): Depend on all-build-bison,
+	all-build-flex, all-build-byacc, all-build-texinfo, rather
+	than the host variations.
+	* Makefile.tpl (BUILD_DIR_PREFIX): Remove.  Replace throughout
+	with BUILD_SUBDIR.
+	(BISON): Update for recent Bisons.
+	(YACC): Fix typo.
+	(cross): Depend on all-build.
+	(all): Do not depend on all-build.
+	(prebootstrap): Remove.
+	(dep-kind): Accept separate prefixes for MODULE and ON variables.
+	(Prebootstrap dependencies): Add them to the per-stage targets
+	and to all-prebootstrap.
+	* configure.in (build_configdirs): Always enable build_tools.
+	(BUILD_DIR_PREFIX): Remove.
+
+	* Makefile.def (gcc): Add target variable.
+	(gdb, expect, guile, tk, tix): Replace with_x with extra_make_flags.
+	* Makefile.tpl (Autogenerated `all-*' targets): Invoke $(TARGET-*)
+	in the recursive `make', instead of hardwiring `all'.
+	(Autogenerated TARGET-* variables): New.
+
+2004-08-17  Robert Millan  <robertmh@gnu.org>
+
+	* configure.in: In noconfigdirs check, match GNU/k*BSD with GNU/Linux
+	(instead of FreeBSD).
+	* configure: Regenerate.
+
+2004-08-12  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* Makefile.def, configure.in, src-release: Remove useless, bogus
+	references to tix.
+	* Makefile.in, configure: Regenerate.
+
+	* src-release: Stop distributing mmalloc with gdb (which doesn't
+	use it).
+	* Makefile.def: GDB doesn't depend on mmalloc anymore.
+	* Makefile.in: Regenerate.
+
+2004-08-09  Mark Mitchell  <mark@codesourcery.com>
+
+	* configure.in (arm*-*-eabi*): New target.
+	* configure: Regenerate.
+
+2004-08-01  Robert Millan  <robertmh@gnu.org>
+
+	* configure.in: Turn mt-linux into mt-gnu. Use mt-gnu and enable
+	libmudflap for all GNU-based systems (with Glibc).
+	* configure: Regenerate.
+
+2004-08-06  Paolo Bonzini  <bonzini@gnu.org>
+
+	* Makefile.def (bfd, opcodes, gcc, zlib): Mark as bootstrap module.
+	(bison, byacc, flex, texinfo): Do not mark as bootstrap module.
+	(Dependencies): New section.
+	* Makefile.tpl (Dependencies): Generate from Makefile.def.
+	(configure-target-[+module+]): Depend on maybe-all-gcc
+	(all-prebootstrap): New name of all-bootstrap.  Changed throughout.
+	(toplevel profiledbootstrap): Fix dependencies.
+	* Makefile.in: Regenerate.
+
+2004-08-03  Mark Mitchell  <mark@codesourcery.com>
+
+	* configure.in (arm*-*-symbianelf*): Add ${libgcj} and
+	target-libiberty to noconfigdirs.
+
+2004-08-03  Paul Brook  <paul@codesourcery.com>
+
+	* configure.in: Check for MPFR as well as GMP.
+	* configure: Regenerate.
+
+2004-08-03 Paolo Bonzini <bonzini@gnu.org>
+
+	* Makefile.def (host-modules): Add gcc.
+	* Makefile.in: Regenerate.
+	* Makefile.tpl (sorry): New rule.
+	(configure-host, all-host, [+make_target+]-host, do-check,
+	install-host): Do not add gcc as a special case.
+	(host modules): Add a small special-casing for gcc.  Export
+	extra_make_flags through the environment.
+	(maybe-configure-gcc, configure-gcc, maybe-all-gcc, all-gcc,
+	maybe-check-gcc, check-gcc, maybe-install-gcc, install-gcc,
+	other recursive targets for gcc): Remove.
+
+	(all, do-[+make_target+], do-check): Wrap between unstage and stage.
+	(stage, unstage): New rules.
+	(stage[+id+]-start, stage[+id+]-end, [+compare-target+],
+	distclean-stage[+id+]): Use stage_current.
+	([+bootstrap-target+], profiledbootstrap): Do not invoke manually
+	the stage*-start rules.
+
+2004-07-19  Robert Millan  <robertmh@gnu.org>
+
+	Synced from gcc:
+
+	2004-04-26  Robert Millan  <robertmh@gnu.org>
+
+	Add patches from libtool CVS.
+	* libtool.m4: Add kfreebsd*-gnu and knetbsd*-gnu.
+	* ltconfig: Likewise.
+	* ltcf-c.sh: Likewise.
+	* ltcf-cxx.sh: Likewise.
+	* ltcf-gcj.sh: Likewise.
+
+2004-07-12  Paolo Bonzini  <bonzini@gnu.org>
+
+	* configure.in: Add noconfigdirs for crx-*-*.
+	* configure: Regenerate.
+
+2004-07-12  Paolo Bonzini  <bonzini@gnu.org>
+
+	Synced from gcc:
+
+	2004-07-09  Loren J. Rittle <ljrittle@acm.org>
+
+	* configure.in: Build libmudflap by default on FreeBSD.
+	* configure: Regenerated.
+
+	2004-07-09  Mark Mitchell  <mark@codesourcery.com>
+
+	* configure.in: Do not build libmudflap by default on non-GNU/Linux
+	systems.
+	* configure: Regenerated.
+
+	2004-07-08 John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+
+	PR target/16344
+	* Makefile.tpl (profiledbootstrap): Build runtime libraries with
+	feedback based compiler.
+	* Makefile.in: Rebuilt.
+
+	2004-07-05  Phil Edwards  <phil@codesourcery.com>
+
+	* configure.in:  Do not prepend $srcdir to /dev/null in
+	makefile fragments.
+	* configure:  Regenerate.
+
+2004-07-08  Alexandre Oliva  <aoliva@redhat.com>
+
+	* Makefile.def (host_modules): Set bootstrap=true for flex.
+	* Makefile.tpl (all-gcc): Depend on texinfo and flex.
+	* Makefile.in: Rebuilt.
+
+2004-07-01  Paolo Bonzini  <bonzini@gnu.org>
+
+	* Makefile.def (build_modules): Add bison, byacc, flex,
+	m4, texinfo.
+	(flags_to_pass): Add FLEX.
+	* Makefile.tpl (BUILD_DIR_PREFIX, BASE_EXPORTS): New.
+	(BUILD_EXPORTS, HOST_EXPORTS, BASE_TARGET_EXPORTS): Include it.
+	(DEFAULT_YACC, USUAL_YACC, DEFAULT_LEX, USUAL_LEX, DEFAULT_M4,
+	DEFAULT_MAKEINFO): Remove.
+	(CONFIGURED_YACC, CONFIGURED_FLEX, CONFIGURED_BISON,
+	CONFIGURED_LEX, CONFIGURED_M4, CONFIGURED_MAKEINFO): Substitute.
+	(YACC, FLEX, BISON, LEX, M4, MAKEINFO): Define to look into
+	objdir or else use configured tool.
+	(all-build): New.
+	(all): Depend on it.
+	(Build module dependencies): Add.
+	* Makefile.in: Regenerate.
+	* configure.in: Better support for multiple build modules,
+	matching what is done for host/target modules.  Do not look
+	for "plausible" locations of build tools if Canadian cross.
+	Use autoconf's AC_PROG_CC to find a C compiler.  Define
+	BUILD_DIR_PREFIX.  Look for flex, makeinfo and m4.
+	* configure: Regenerate.
+
+2004-06-22  Paolo Bonzini  <bonzini@gnu.org>
+
+	* Makefile.tpl (HOST_EXPORTS): Fix pasto.
+	* Makefile.in: Regenerate.
+
+2004-06-22  Paolo Bonzini  <bonzini@gnu.org>
+
+	* Makefile.tpl (configure-build-[+module+],
+	configure-[+module+], configure-target-[+module+]): Pass
+	[+extra_configure_args+].
+	(all-build-[+module+], all-[+module+], check-[+module+],
+	install-[+module+], [+make_target+]-[+module+],
+	all-target-[+module+], check-target-[+module+],
+	install-target-[+module+], [+make_target+]-target-[+module+]):
+	Pass [+extra_make_args+].
+	(HOST_EXPORTS): Include the former GCC_HOST_EXPORTS.
+	(GCC_HOST_EXPORTS): Remove.
+	(configure-gcc, all-gcc, GCC_STRAP_TARGETS, profiledbootstrap,
+	cross, check-gcc, check-gcc-c++, install-gcc,
+	gcc-no-fixedincludes, [+make_target+]-gcc, stage[+id+]-bubble):
+	Replace GCC_HOST_EXPORTS with HOST_EXPORTS.
+	* Makefile.in: Regenerate.
+
+2004-06-21  Christopher Faylor  <cgf@alum.bu.edu>
+
+	* configure.in: Check for srcdir/winsup rather than build directory
+	winsup.
+	* configure: Regenerate.
+
+2004-06-17  Corinna Vinschen  <vinschen@redhat.com>
+
+	* configure.in: Don't build Cygwin native newlib if winsup
+	directory is missing.  Emit warning instead.
+	* configure: Regenerate.
+
+2004-06-09  Paolo Bonzini  <bonzini@gnu.org>
+
+	* Makefile.tpl (touch-stage[+id+]): New.
+	(restage[+prev+]): Depend on touch-stage[+id+].
+
+	* Makefile.tpl (RECURSE_FLAGS_TO_PASS): New.
+	Use it throughout.
+
+	* Makefile.def: Add profile and feedback bootstrap stages.
+	Remove next field from bootstrap stages.
+	* Makefile.tpl (LN, LN_S): Substitute.
+	(stageN-start, stageN-end): Use double-colon rules, to
+	provide a hook for additional setup commands.
+	(distclean-stageN-gcc, restageN): Create dependencies from
+	[+prev+], not from [+next+].
+	(stageN-bubble): Add commands for successive stages from
+	[+prev+], using double-colon rules.
+	(all-stageN-gcc): Fix typo.
+	(stagefeedback-start, profiledbootstrap): New.
+	* Makefile.in: Regenerate.
+	* configure.in: Call ACX_PROG_LN.
+	* configure: Regenerate.
+
+2004-06-03  Paolo Bonzini  <bonzini@gnu.org>
+
+	* configure.in: Fix --enable-bootstrap breakage introduced in trees
+	without gcc.
+	* configure: Regenerate.
+
+2004-06-01  Paolo Bonzini  <bonzini@gnu.org>
+
+	* Makefile.tpl: Fix typo.
+	* Makefile.in: Regenerate.
+
+2004-06-01  Paolo Bonzini <bonzini@gnu.org>
+
+	* configure.in: Remove new- prefix from toplevel
+	bootstrap targets.
+	* configure: Regenerate.
+
+2004-06-01  Paolo Bonzini <bonzini@gnu.org>
+
+	Merge this patch from the gcc tree:
+
+	2004-05-30  Andreas Jaeger  <aj@suse.de>
+		    Jim Wilson <wilson@specifixinc.com>
+
+	* config-ml.in: Pass FFLAGS and ADAFLAGS for multilibs, handle F77
+	like CC.
+
+2004-06-01  Paolo Bonzini  <bonzini@gnu.org>
+
+	* Makefile.tpl (all.normal): Rename to all.
+	(all): Replace with a rule to pick the default
+	target from configure.
+	(all-gcc, configure-gcc): Use conditionals to
+	do nothing when toplevel bootstrap is going on.
+	(GCC directory bootstrap) [gcc-bootstrap]: Disable.
+	(Toplevel bootstrap) [gcc-no-bootstrap]: Disable.
+	* configure.in: Support --enable-bootstrap.
+
+	* Makefile.def: Remove new- prefix from toplevel
+	bootstrap targets.
+	* Makefile.tpl: Likewise.
+
+	* Makefile.def: Add bootstrap_stage 4.  Add bootstrap2
+	target.
+
+	* Makefile.tpl (Toplevel bootstrap): Pass $(BASE_FLAGS_TO_PASS)
+	$(RECURSE_FLAGS) to recursive invocation of make.
+
+	* Makefile.in: Regenerate.
+	* configure: Regenerate.
+
+2004-05-27  Daniel Jacobowitz  <dan@debian.org>
+
+	* configure.in: Fix sed invocation for GFORTRAN_FOR_TARGET.
+	* configure: Regenerate.
+
+2004-05-25  Daniel Jacobowitz  <drow@false.org>
+
+	* Makefile.tpl (BUILD_EXPORTS, HOST_EXPORTS, GCC_HOST_EXPORTS)
+	(STAGE_HOST_EXPORTS, BASE_TARGET_EXPORTS, RAW_CXX_TARGET_EXPORTS)
+	(NORMAL_TARGET_EXPORTS): New macros.  Use them in all the recursive
+	targets.
+	* Makefile.in: Regenerate.
+
+2005-05-24  Paolo Bonzini <bonzini@gnu.org>
+
+	* configure.in: Test the ability to symlink directories.
+	* configure: Regenerate.
+
+	* Makefile.def (bootstrap-stage): New definitions.
+	* Makefile.tpl (configure-stage1-gcc,
+	configure-stage2-gcc, configure-stage3-gcc,
+	all-stage1-gcc, all-stage2-gcc, all-stage3-gcc,
+	new-bootstrap, new-cleanstrap, new-restage1, new-restage2,
+	new-restage3, compare): Autogenerate, see Makefile.in
+	entry for behavioral changes.
+	(distclean-stage1, new-stage1-start, new-stage1-end,
+	new-stage1-bubble, distclean-stage2, new-stage2-start,
+	new-stage2-end, new-stage2-bubble, distclean-stage3,
+	new-stage3-start, new-stage3-end): New autogenerated targets.
+	(objext, prebootstrap, BOOT_CFLAGS,
+	POSTSTAGE1_FLAGS_TO_PASS): Move above the autogenerated
+	targets.
+
+	* Makefile.in: Regenerate.
+	(distclean-stage1, new-stage1-start, new-stage1-end,
+	new-stage1-bubble, distclean-stage2, new-stage2-start,
+	new-stage2-end, new-stage2-bubble, distclean-stage3,
+	new-stage3-start, new-stage3-end): New targets.
+	(all-stage1-gcc): Move prebootstrap dependency from here...
+	(configure-stage1-gcc): ...to here.
+	(new-bootstrap): Use bubble targets.
+	(new-cleanstrap, new-restage1, new-restage2, new-restage3):
+	Use per-stage distclean targets.
+	(configure-stage1-gcc, configure-stage2-gcc,
+	configure-stage3-gcc, all-stage1-gcc,
+	all-stage2-gcc, all-stage3-gcc, new-bootstrap):
+	Use new-stageN-start to prepare the tree.
+
+2004-05-23  Paolo Bonzini  <bonzini@gnu.org>
+
+	* Makefile.def (host_modules): add libcpp.
+	* Makefile.tpl: Add dependencies on and for libcpp.
+	* Makefile.in: Regenerate.
+	* configure.in: Add libcpp host module.
+	* configure: Regenerate.
+
+2004-05-17  Zack Weinberg  <zack@codesourcery.com>
+
+	* Makefile.def, Makefile.tpl, configure.in: Remove all mention
+	of libf2c.
+	* configure, Makefile.in: Regenerate.
+
+2004-05-13  Diego Novillo  <dnovillo@redhat.com>
+
+	Merge from tree-ssa-20020619-branch.
+
+	* Makefile.def: Add libbanshee, libmudflap and libgfortran.
+	* Makefile.tpl (BUILD_CONFIGDIRS): Add libbanshee.
+	(HOST_GMPLIBS): Define.
+	(HOST_GMPINC): Define.
+	(TARGET_LIB_PATH): Add libmudflap.
+	(GFORTRAN_FOR_TARGET): Define.
+	(configure-build*): Export GFORTRAN.
+	(configure-gcc): Export GMPLIBS and GMPINC.
+	(all-gcc): Add maybe-all-libbanshee.
+	(configure-target-libgfortran): Define.
+	* Makefile.in: Regenerate.
+	* configure.in (host_libs): Add libbanshee.
+	(target_libraries): Add target-libmudflap and target-libgfortran.
+	Add --with-libbanshee.
+	Handle --disable-libmudflap.
+	(*-*-freebsd*): Use with_gmp.
+	Add $(libgcj) to noconfigdirs.
+	* configure: Regenerate.
+	* depcomp: New file.
+	* MAINTAINERS: Add tree-ssa maintainers.
+
+2004-04-28  Paolo Bonzini  <bonzini@gnu.org>
+
+	* config/acx.m4: Fix fastcompare support for new-bootstrap.
+	* configure: Regenerate.
+
+2004-04-27  Paolo Bonzini  <bonzini@gnu.org>
+
+	Revert:
+	2004-04-26  Paolo Bonzini  <bonzini@gnu.org>
+
+	* Makefile.def (flags_to_pass): Remove *dir variables that
+	are passed to the modules via TOPLEVEL_CONFIGURE_ARGUMENTS,
+	as well as prefix and exec_prefix.
+	* Makefile.in: Regenerate.
+
+2004-04-26  Paolo Bonzini  <bonzini@gnu.org>
+
+	* Makefile.def (host_modules): Mark with the bootstrap
+	flag packages on which gcc depends.
+	* Makefile.tpl (all-bootstrap): Use it.
+	* Makefile.in: Regenerate.
+
+2004-04-26  Paolo Bonzini  <bonzini@gnu.org>
+
+	* Makefile.def (flags_to_pass): Remove *dir variables that
+	are passed to the modules via TOPLEVEL_CONFIGURE_ARGUMENTS,
+	as well as prefix and exec_prefix.
+	* Makefile.in: Regenerate.
+
+2004-04-26  Paolo Bonzini  <bonzini@gnu.org>
+
+	* configure.in: Invoke ACX_PROG_CMP_IGNORE_INITIAL.
+	* configure: Regenerate.
+	* config/acx.m4: Mutuate ACX_PROG_CMP_IGNORE_INITIAL from gcc.
+	* gcc/Makefile.tpl (compare): Use the result of the test.
+	* gcc/Makefile.in: Regenerate.
+
+2004-04-23  Paolo Bonzini  <bonzini@gnu.org>
+
+	* Makefile.tpl (all-stage1-gcc, all-stage2-gcc, all-stage3-gcc):
+	Always relocate gcc and prev-gcc to the original names, even
+	if the build fails.
+	(new-cleanstrap, new-restage1, new-restage2, new-restage3):
+	New targets.
+
+2004-04-19  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
+
+	* configure.in (mips*-*-irix5*): Enable ld.
+	* configure: Regenerate.
+
+2004-04-15  James E Wilson  <wilson@specifixinc.com>
+
+	* Makefile.tpl (configure-[+module+], configure-gcc,
+	configure-stage1-gcc, configure-stage2-gcc, configure-stage3-gcc):
+	Set and export LDFLAGS.
+	* Makefile.in: Regenerate.
+
+2004-04-09  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	PR bootstrap/14871
+	* Makefile.tpl: If we don't have built-in-tree target tools,
+	use the ones found by configure rather than hacking around with
+	program_transform_name.
+	* configure.in: Give Makefile.tpl the information necessary
+	to do that.
+	* Makefile.in: Regenerate.
+	* configure: Regenerate.
+
+2004-04-06  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	PR bootstrap/14760
+	* configure.in: When computing baseargs, strip *all* copies of
+	offending options.  Also, don't match/substitute the trailing space,
+	so that this actually works when two similar options are separated by
+	only one space.
+	* configure: Regenerate.
+
+2004-04-06  David Edelsohn  <edelsohn@gnu.org>
+
+	* configure.in (powerpc-*-aix*): Remove target-libada from noconfigdirs.
+	(rs6000-*-aix*): Same.
+	* configure: Regenerate.
+
+2004-03-25  Stan Shebs  <shebs@apple.com>
+
+	Remove MPW support, no longer used.
+	* mpw-README, mpw-build.in, mpw-config.in, mpw-configure,
+	mpw-install: Remove files.
+	* src-release (DEVO_SUPPORT): Remove names of removed files.
+	* MAINTAINERS: Likewise.
+
+2004-03-24  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* Makefile.tpl (top level bootstrap support): Remove now-unneeded
+	STRICT_WARN, WARN_CFLAGS flags passed down to make.
+	* Makefile.in: Regenerate.
+
+	* configure.in (top level bootstrap support): Rework --enable-werror
+	to set @stage2_werror_flag@.
+	* configure: Regenerate.
+	* Makefile.tpl (top level bootstrap support): Pass
+	@stage2_werror_flag@ down to configure in stages 2 and 3.
+	* Makefile.in: Regenerate.
+
+2004-03-23  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* Makefile.tpl (new-bootstrap): Set CC and CC_FOR_BUILD in configure
+	for stages 2 and 3 as well as in make.  As a consequence, remove
+	OUTPUT_OPTION (now detected by configure) from the flags passed down
+	to make.
+	* Makefile.in: Regenerate.
+
+	* Makefile.tpl (new-bootstrap): Fix typo.
+	* Makefile.in: Regenerate.
+
+2004-03-22  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* Makefile.tpl: Rearrange by moving recursive_targets rules
+	into their proper sections.
+	* Makefile.tpl (top level bootstrap support): Move disabling
+	of coverage flags from 'make' to 'configure'; improve comments.
+	* Makefile.in: Regenerate.
+
+	* Makefile.tpl (experimental top level bootstrap) Move stage1
+	language setting from all- target to configure- target; disable
+	intermodule optimization in stage 1; prevent gratuitous rebuilds
+	of stage 1.
+	* Makefile.in: Regenerate.
+	* configure.in: Comma-separate stage 1 language list for top
+	level bootstrap.
+	* configure: Regenerate.
+
+	* Makefile.tpl: Clean up experimental top level bootstrap support:
+	note known problems; set CONFIG_SHELL; don't set BUILD_CC; relocate
+	prev-gcc in configure- targets as well as all- targets.
+	* Makefile.in: Regenerate.
+
+2004-03-17  Paolo Bonzini  <bonzini@gnu.org>
+
+	* configure.in: Remove symbolic link section.
+	* configure: Regenerate.
+	* Makefile.tpl (links): Remove.
+	* Makefile.in: Regenerate.
+
+2004-03-15  Paolo Bonzini  <bonzini@gnu.org>
+	    Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* configure.in (DEFAULT_YACC, DEFAULT_M4, DEFAULT_LEX):
+	Set with AC_CHECK_PROGS.
+	* configure.in: Fix comment typo from last patch.
+	* configure: Regenerate.
+
+2004-03-15  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* Makefile.tpl: Introduce experimental top level bootstrap support.
+	* Makefile.in: Regenerate.
+	* configure.in: Introduce support for top level bootstrap.
+	* configure: Regenerate.
+
+2004-03-12  Eric Botcazou  <ebotcazou@gcc.gnu.org>
+	    Paolo Bonzini  <bonzini@gnu.org>
+
+	PR bootstrap/14522
+	* configure.in: Cope with shells that do not support unquoted ^
+	* configure: Regenerate.
+
+2004-03-11  Eric Botcazou  <ebotcazou@gcc.gnu.org>
+	    Paolo Bonzini  <bonzini@gnu.org>
+
+	PR bootstrap/14522
+	* configure.in: Cope with shell that do not support nesting
+	quotes inside quoted backquote substitutions.
+	* configure: Regenerate.
+
+2004-03-10  Andrew Pinski  <pinskia@physics.uc.edu>
+
+	PR bootstrap/14522
+	* configure.in: Fix escaping of $.
+	* configure: Regenerate.
+
+2004-03-11  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* configure: Regenerate.
+
+2004-03-08  Paolo Bonzini  <bonzini@gnu.org>
+
+	PR ada/14131
+	Move language detection to the top level.
+	* configure.in: Find default values for the tools as
+	soon as possible.  Disable ada if GNAT is not found.
+	Emit error message about missing languages.  Expand
+	--enable-languages=all for the gcc subdirectory.
+
+2004-03-01  Richard Sandiford  <rsandifo@redhat.com>
+
+	* configure.in (mips64*-*-linux*): Override mips*-*-linux* case
+	and disable libgcj.
+	* configure: Regenerated.
+
+2004-02-28  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	PR bootstrap/7087
+	* Makefile.tpl: Guard XFOO sed statements better.
+	* Makefile.tpl: Add dependency for configure-target-libada.
+	* Makefile.in: Regenerate (incidentally fixes broken
+	commit when libada-branch was merged).
+
+2004-02-28  Andrew Cagney  <cagney@redhat.com>
+
+	* src-release (CVS_NAMES): Define.
+	(do-tar, do-tar): Prune $(CVS_NAMES).
+
+2004-02-23  Andrew Cagney  <cagney@redhat.com>
+
+	* texinfo/texinfo.tex: Update from version 2003-02-03.16 to
+	2004-02-19.09.
+
+2004-02-19  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	PR bootstrap/11932
+	* mkinstalldirs, install-sh: Import from automake CVS HEAD.
+
+2004-02-19  Andrew Cagney  <cagney@redhat.com>
+
+	* config.guess: Update from version 2003-06-12 to 2004-02-16.
+	* config.sub: Update from version 2003-06-13 to 2004-02-16.
+
+2004-02-11  David Edelsohn  <edelsohn@gnu.org>
+
+	* configure.in (powerpc-*-aix*): Add target-libada to noconfigdirs.
+	(rs6000-*-aix*): Same.
+	* configure: Regenerate.
+
+2004-02-11  Kelley Cook  <kcook@gcc.gnu.org>
+
+	* configure.in (host): Add in missing $noconfigdirs to defines.
+	* configure: Regenerate.
+
+2004-02-10  Arnaud Charlet  <charlet@act-europe.fr>,
+	    Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	PR ada/6637, PR ada/5911
+	Merge with libada-branch:
+	* configure.in, Makefile.tpl, Makefile.def: Add target-libada,
+	with appropriate dependencies. Add --enable-libada configure switch.
+	* configure, Makefile.in: Regenerate.
+
+2004-02-05  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
+
+	* configure.in: Don't pass --with-stabs on IRIX 5 either.
+	* configure: Regenerate.
+
+2004-02-02  Jeff Johnston  <jjohnstn@redhat.com>
+
+	* COPYING.NEWLIB: Update Red Hat license to 2004.
+
+2004-01-23  DJ Delorie  <dj@redhat.com>
+
+	* Makefile.def (target_modules) [libiberty]: Don't stage.
+	* Makefile.in: Rebuilt.
+
+2004-01-23  Jeff Johnston  <jjohnstn@redhat.com>
+
+	* COPYING.NEWLIB: Update to include copyrights for new
+	iconv code.
+
+2004-01-15  Andrew Cagney  <cagney@redhat.com>
+
+	* src-release: Update copyright year.
+	(do-proto-toplev): Configure using i686-pc-linux-gnu.
+	(NEWLIB_SUPPORT_DIRS): Delete macro.
+	(newlib.tar.bz2): Delete rule.
+
+2004-01-14  Loren J. Rittle <ljrittle@acm.org>
+
+	* Makefile.def (target_modules) [libtermcap, libiberty, zlib]: Stage.
+	* Makefile.tpl (configure-target-[+module+]): Support stage.
+	* Makefile.in: Rebuilt.
+
+2003-01-14  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
+
+	* gettext.m4: Quote names of macros to be defined by AC_DEFUN
+	throughout.
+
+2004-01-04  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* configure.in: Use ./config.cache, not config.cache.
+	* configure: Regenerate.
+	* Makefile.tpl: Special-casing not needed for GCC any more.
+	* Makefile.in: Regenerate.
+
+	* configure.in: Don't share a cache file for host dirs.
+	* configure: Regenerate.
+
+	* config-ml.in: Don't mess with the cache file.
+
+2004-01-03  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* Makefile.tpl: Make GCC use a separate config.cache.
+	* Makefile.in: Regenerate.
+
+	PR bootstrap/11932, PR bootstrap/11933
+	(I don't know if it will fix either of them, but it relates
+	to them.)
+	* configure.in: Don't use shared config.cache for target
+	directories.
+	* configure: Regenerate.
+
+2003-12-31  Roger Sayle  <roger@eyesopen.com>
+
+	* configure.in (ia64*-*-hpux*): Disable building java libraries.
+	* configure: Regenerated.
+
+2003-12-21  Bernardo Innocenti  <bernie@develer.com>
+
+ 	* configure.in (*-*-uclinux): Exclude newlib, libgloss and rda.
+ 	* configure: Regenerated.
+
+2003-12-19  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	Port change over from GCC:
+	2003-11-20  Kelley Cook  <kcook@gcc.gnu.org>
+	* Makefile.tpl (BASE_FLAGS_TO_PASS): Pass along CONFIG_SHELL.
+	(configure-build-[+module+], configure-[+module+]): Likewise.
+	(configure-target-[+module+], configure-gcc, config.status): Likewise.
+	* Makefile.in: Regenerate.
+
+2003-12-08  Thomas Fitzsimmons  <fitzsim@redhat.com>
+
+	* configure.in (raw_libstdcxx_flags): Remove the leading space.
+	* configure: Regenerate.
+
+2003-11-27  Jeff Johnston  <jjohnstn@redhat.com>
+
+	* COPYING.NEWLIB: Add license info for long long routines added to
+	stdlib.
+
+2003-11-14  Arnaud Charlet  <charlet@act-europe.fr>
+
+	* Makefile.tpl (EXTRA_GCC_FLAGS): Pass BOOT_ADAFLAGS.
+	* Makefile.in: Regenerate.
+
+2003-10-20  Phil Edwards  <phil@codesourcery.com>
+
+	* configure.in (*-*-vxworks):  Add target-libiberty to noconfdirs.
+	* configure:  Regenerate.
+
+2003-10-13  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* Makefile.tpl: Make GCC_FLAGS_TO_PASS a superset of
+	HOST_FLAGS_TO_PASS.
+	* Makefile.in: Regenerate.
+
+2003-10-05  Mohan Embar  <gnustuff@thisiscool.com>
+
+	* configure.in: Allow explicit specification of CFLAGS_FOR_BUILD.
+	* configure: Rebuilt
+	* Makefile.tpl: Use CFLAGS_FOR_BUILD computed by configure
+	* Makefile.in: Rebuilt
+
+2003-10-03  H.J. Lu  <hongjiu.lu@intel.com>
+
+	* ltconfig (sys_lib_search_path_spec): Fix a typo for HPUX.
+
+2003-10-01  Phil Edwards  <pme@gcc.gnu.org>
+
+	* config-ml.in:  Use ac_configure_args directly instead of
+	ml_arguments.  Only set ml_norecursion if --no[-]recursion is
+	actually seen.
+
+2003-10-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
+
+	* config-ml.in: Propagate INSTALL variables.
+
+2003-09-21  Daniel Jacobowitz  <drow@mvista.com>
+
+	* configure.in: Pass a computed --program-transform-name
+	to subconfigures.
+	* configure: Regenerated.
+
+2003-09-20  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* Makefile.tpl: Don't pass down obsolete ENQUIRE variable.
+	* Makefile.in: Regenerate.
+
+	* Makefile.tpl: Don't pass (unused) DLLTOOL or WINDRES to gcc.
+	* Makefile.in: Regenerate.
+
+2003-09-17  Daniel Jacobowitz  <drow@mvista.com>
+
+	* configure.in (TOPLEVEL_CONFIGURE_ARGUMENTS, baseargs): Fix
+	quoting.
+	* configure: Regenerated.
+
+2003-09-12  Michael Chastain  <mec@shout.net>
+
+	Fix PR gdb/857.
+	* src-release (do-proto-topleve): Remove junk files
+	intl/config.cache, intl/config.status,
+	intl/config.h, intl/stamp-h.
+
+2003-09-14  Andrew Cagney  <cagney@redhat.com>
+
+	* src-release (dejagnu.tar): New target.
+	(dejagnu.tar.bz2): Recursively call "gdb-taz" rule.
+	(do-djunpack): Use $(PACKAGE) for the package name.
+
+2003-09-04  DJ Delorie  <dj@redhat.com>
+
+	* configure: Regenerate.
+
+2003-09-04  Robert Millan  <robertmh@gnu.org>
+
+	* configure.in: Match GNU/KFreeBSD with new kfreebsd*-gnu triplet.
+
+2003-09-02  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+	* configure.in: Ensure arguments to sed are properly spaced.
+	* configure: Regenerate.
+
+2003-08-28  Daniel Jacobowitz  <drow@mvista.com>
+
+	Merge from gcc:
+	2003-07-20  Phil Edwards  <pme@gcc.gnu.org>
+	* install-sh:  Update to newer upstream versions (associated with
+	aclocal 1.7).
+	* missing:  Likewise, plus $1Help2man -> $1 typo fix.
+
+2003-08-27  Daniel Jacobowitz  <drow@mvista.com>
+
+	* configure.in: Set RAW_CXX_FOR_TARGET if unset.
+	* configure: Regenerated.
+
+2003-08-23  Phil Edwards  <pme@gcc.gnu.org>
+
+	* configure.in:  Use newline instead of semicolon when assuming
+	shell arguments in a for loop.
+	* configure:  Regenerated.
+
+2003-08-20  Geoffrey Keating  <geoffk@apple.com>
+
+	PR 8180
+	* configure.in: When testing with_libs and with_headers, treat
+	'no' as unset.  Based on a patch by Dan Kegel <dank@kegel.com>.
+	* configure: Regenerate.
+
+	* configure.in (TOPLEVEL_CONFIGURE_ARGUMENTS): Quote properly for
+	make, shell, etc.
+	(baseargs): Likewise.
+	* configure: Regenerate.
+
+2003-08-19  Geoffrey Keating  <geoffk@apple.com>
+
+	* configure.in: Disable libgcj for darwin not on powerpc.
+	* configure: Rebuild.
+
+2003-08-15  Michael Chastain  <mec@shout.net>
+
+	* src-release (do-proto-toplev): Remove junk files
+	dejagnu/example/calc/config.status,
+	dejagnu/example/calc/config.log.
+
+2003-08-14  Alexandre Duret-Lutz  <adl@gnu.org>
+
+	* config-ml.in, symlink-tree: Add license.
+
+2003-08-01  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	Merge from gcc:
+
+	2003-08-01  Matt Kraai  <kraai@alumni.cmu.edu>
+	* Makefile.tpl (check, check-c++): Express dependencies using
+	dependencies rather than commands.
+	* Makefile.in: Regenerate.
+
+	2003-07-31  Geoffrey Keating  <geoffk@apple.com>
+	* Makefile.tpl (libsubdir): Use gcc instead of gcc-lib.
+	* Makefile.in: Update.
+
+2003-08-01  Andrew Cagney  <cagney@redhat.com>
+
+	* configure.in (noconfigdirs): Do not add GDB when m32r-*-*.
+	* configure: Ditto.
+
+2003-07-30  Andreas Tobler  <a.tobler@schweiz.ch>
+
+	* configure.in: Enable libgcj for darwin.
+	* configure: Rebuild.
+
+2003-07-29  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* mkinstalldirs: Import autoconf 2.57 / automake 1.7 version.
+
+2003-07-27  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* Makefile.tpl: Use 'mkinstalldirs' rather than 'mkdir' when
+	creating target and build subdirs to build all parent dirs as needed.
+	* Makefile.in: Rebuild.
+	* configure.in: Don't build dirs explicitly here.
+	* configure: Rebuild.
+
+2003-07-22  Alexandre Oliva  <aoliva@redhat.com>
+
+	* Makefile.tpl (all-make): Depend on intl.
+	* Makefile.in: Rebuilt.
+
+2003-07-16  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* config.if: Remove unused libc_interface determination.
+
+2003-07-14  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* Makefile.in: Regenerate, correctly this time.
+
+2003-07-13  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* Makefile.tpl: Set INSTALL and friends using autoconf.  Remove
+	unused INSTALL_PROGRAM_ARGS.
+	* configure.in: Use AC_PROG_INSTALL.
+	* Makefile.in: Regenerate.
+	* configure: Regenerate.
+
+2003-07-10  Alexandre Oliva  <aoliva@redhat.com>
+
+	* configure: Rebuilt.
+	2001-09-26  Alexandre Oliva  <aoliva@redhat.com>
+	* configure.in (noconfigdirs) [am33_2.0-*-linux*]: Don't build
+	newlib nor libgloss.
+	Wed May  9 10:07:19 2001  Alexandre Oliva  <aoliva@redhat.com>
+	* configure.in (am33_2.0-*-linux*): Added.
+
+2003-07-09  Bob Wilson  <bob.wilson@acm.org>
+
+	* configure.in: Add ${libgcj} to noconfigdirs for xtensa-*-* targets.
+	* configure: Regenerate.
+
+2003-07-06  H.J. Lu <hongjiu.lu@intel.com>
+
+	* config-ml.in: Replace PWD with PWD_COMMAND.
+	* Makefile.tpl: Likewise.
+	* Makefile.in: Regenerated.
+
+2003-06-27  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* configure.in: Clean up config-lang.in handling.  Delete
+	useless assignment to "subdirs".
+	* configure: Regenerate.
+
+2003-06-26  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* configure.in: Rename 'target_libs' to 'target_libraries'.
+	Remove useless reference to 'target_libs'.
+	* configure: Regenerate.
+
+2003-06-23  Keith Seitz  <kseitz@sources.redhat.com>
+
+	* Makefile.tpl: Add maybe-configure-itcl to configure-gdb.
+	* Makefile.in: Regenerate.
+
+2003-06-23  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* Makefile.def: Introduce flags_to_pass.
+	* Makefile.tpl: Generate BASE_FLAGS_TO_PASS using it.
+	* Makefile.in: Regenerate.
+
+2003-06-23  Hans-Peter Nilsson  <hp@bitrange.com>
+
+	* configure.in (noconfigdirs) <cris-*-*>: Disable target-newlib
+	and target-libgloss.
+	<d30v-*-*, fr30-*-*, i960-*-*, m32r-*-*>: Disable gdb.
+	<h8300*-*-*>: Disable libf2c and ${libgcj}.
+	* configure: Regenerate.
+
+2003-06-17  Benjamin Kosnik  <bkoz@redhat.com>
+
+	* configure.in: Update testsuite_flags to new location.
+	* configure. Regenerate.
+
+2003-06-18  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* Makefile.tpl: Remove BUILD_CC stuff.
+	* Makefile.in: Regenerate.
+
+2003-06-14  H.J. Lu <hongjiu.lu@intel.com>
+
+	* config.guess: Update to 2003-06-12 version.
+	* config.sub: Update to 2003-06-13 version.
+
+2003-06-12  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
+
+	* MAINTAINERS: Add myself as MIPS co-maintainer.
+
+2003-06-12  H.J. Lu <hongjiu.lu@intel.com>
+
+	* config.guess: Update to 2003-06-06 version.
+	* config.sub: Update to 2003-06-06 version.
+
+2003-06-11  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
+
+	* configure.in: Don't pass --with-stabs for mips*-sgi-irix6*o32.
+	* configure. Regenerate.
+
+2003-06-10  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* configure.in: Disable serial configure by default.
+	* configure: Regenerate.
+	* Makefile.tpl: Abolish .NOTPARALLEL.
+	* Makefile.in: Regenerate.
+
+	* Makefile.tpl: Replace {build,host,target}_canonical by
+	{build,host,target}.
+	* Makefile.in: Regenerate.
+
+	* Makefile.tpl: Fix stupid pasto.
+	* Makefile.in: Regenerate.
+
+2003-06-09  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* Makefile.tpl: Remove bogus conditional.
+	* Makefile.in: Regenerate.
+
+2003-06-03  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* Makefile.tpl: Make 'recursive targets' using autogen rather
+	than shell loop.  Remove duplicate 'clean' targets and false
+	comments.
+	* Makefile.def: Add systematic dependencies to 'recursive' targets.
+	Add systematic method of specifying missing targets in subdirs.
+	Add copyright boilerplate.
+	* Makefile.in: Regenerate.
+	* configure.in: Add 'recursive targets' to maybe list.
+	* configure: Regenerate.
+
+	* Makefile.tpl: Rename [+target+] to [+make_target+].
+	* Makefile.def: Rename 'target' to 'make_target'.
+
+2003-05-30  Nick Clifton  <nickc@redhat.com>
+
+	* README-maintainer-mode: Update URL for locating blessed config
+	tools.
+
+2003-05-29  Robert Millan  <rmh@debian.org>
+
+	* ltconfig: Import this patch and modify for use with current
+	version of ltconfig:
+
+	2003-05-21  Bruno Haible  <bruno@clisp.org>
+
+	* libtool.m4 (AC_LIBTOOL_SYS_DYNAMIC_LINKER): Add support for
+	GNU/FreeBSD.
+
+2003-05-28  DJ Delorie  <dj@redhat.com>
+
+	* Makefile.tpl: Make maybe-check-gcc .PHONY.
+	* Makefile.in: Regenerate.
+
+2003-05-28  Jeff Johnston  <jjohnstn@redhat.com>
+
+	* COPYING.NEWLIB: Add license info for newlib/libc/sys/linux/stdlib.
+
+2003-05-21  DJ Delorie  <dj@redhat.com>
+
+	* Makefile.tpl (configure-target-libiberty): Depend only on gcc, not
+	newlib or libgloss.
+	* Makefile.in: Regenerate.
+
+2003-05-21  DJ Delorie  <dj@redhat.com>
+
+	* Makefile.tpl: Add missing empty maybe-check-gcc target.
+	* Makefile.in: Regenerate.
+
+2003-05-20  Maciej W. Rozycki  <macro@ds2.pg.gda.pl>
+
+	* configure.in: Use curly braces in the definition of tooldir.
+	* configure: Regenerate.
+
+2003-05-19  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* configure.in: Switch more things to use maybe dependencies.
+	* Makefile.tpl: Switch more things to use maybe dependencies.
+	Factor out common code from autogen IF statements.
+	* configure: Regenerate.
+	* Makefile.in: Regenerate.
+
+2003-05-14  Kelley Cook  <kelleycook@wideopenwest.com>
+
+	* configure.in: Accept i[3456789]86 for machine type.
+	* configure: Regenerate.
+
+2003-05-18  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* configure.in: Switch more things to use maybe dependencies.
+	Rearrange a little.  Use GCC_TOPLEV_SUBDIRS.
+	* configure: Regenerate.
+	* Makefile.tpl: Switch more things to use maybe dependencies.
+	* Makefile.in: Regenerate.
+
+2003-05-16  Andreas Schwab  <schwab@suse.de>
+
+	* Makefile.tpl (install-opcodes): Define.
+	* Makefile.in: Rebuild.
+
+2003-05-13  Andreas Jaeger  <aj@suse.de>
+
+	* config.guess: Update to 2003-05-09 version.
+	* config.sub: Update to 2003-05-09 version.
+
+2003-05-13  Michael Eager <eager@mvista.com>
+
+	* configure.in: Correct sed script so that options in quotes are not
+	deleted.
+	* configure: Rebuild.
+
+2003-05-12  Corinna Vinschen  <corinna@vinschen.de>
+
+	* configure.in (FLAGS_FOR_TARGET): Remove $$s/newlib/libc/sys/cygwin
+	and $$s/newlib/libc/sys/cygwin32 include paths.
+	* configure: Ditto.
+
+2003-05-05  H.J. Lu <hjl@gnu.org>
+
+	* config-ml.in: Restored from gcc repository.
+
+2003-05-02  Chris Demetriou  <cgd@broadcom.com>
+
+	* Makefile.tpl: Require "makeinfo" from texinfo 4.2 or later.
+	* Makefile.in: Regenerate.
+
+2003-04-27  Daniel Jacobowitz  <drow@mvista.com>
+
+	* src-release (DEVO_SUPPORT): Add src-release, Makefile.tpl,
+	and Makefile.def.
+
+2003-04-27  Daniel Jacobowitz  <drow@mvista.com>
+
+	* Makefile.tpl: Clean $(BUILD_SUBDIR).
+	* Makefile.in: Regenerated.
+
+2003-04-18  Gerald Pfeifer  <pfeifer@dbai.tuwien.ac.at>
+
+	* Makefile.tpl (MAKEINFOFLAGS): Default to --split-size=5000000.
+	* Makefile.in: Regenerate.
+
+2003-04-18  Jakub Jelinek  <jakub@redhat.com>
+
+	* configure.in (powerpc64*-*-linux*): Remove.
+	* configure: Rebuilt.
+
+2003-04-17  Phil Edwards  <pme@gcc.gnu.org>
+
+	* Makefile.tpl (GCC_STRAP_TARGETS):  New variable containing all the
+	previous bootstrap targets, plus bubblestrap, quickstrap, cleanstrap,
+	and restrap.
+	* Makefile.in:  Regenerate.
+
+2003-04-16  Richard Earnshaw  <rearnsha@arm.com>
+
+	* configure.in (arm-*-netbsdelf*): Enable building java libraries.
+	* configure: Regenerated.
+
+2003-04-11  Alexandre Oliva  <aoliva@redhat.com>
+
+	* libtool.m4 (lt_cv_deplibs_check_method): Use pass_all on mips*.
+	* */configure: Rebuilt.
+
+2003-03-14  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* Makefile.tpl: Move .NOEXPORT, MAKEOVERRIDES back down.
+	* Makefile.in: Regenerate.
+
+2003-03-14  Michael Chastain  <mec@shout.net>
+
+	* Makefile.in: Regenerate with correct Makefile.def.
+
+2003-03-12  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* Makefile.tpl: Move .NOEXPORT, MAKEOVERRIDES up.  Delete unused
+	Make macro.
+	* Makefile.in: Regenerate.
+	* configure.in: Clean up gxx_include_dir logic.
+	* configure: Regenerate.
+
+2003-03-09  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
+
+	* configure.in (gxx_include_dir): Fix typo.
+	* configure: Regenerated.
+
+2003-03-06  Andrew Cagney  <cagney@redhat.com>
+
+	* texinfo/texinfo.tex: Import version 2003-02-03.16.
+
+2003-03-04  Daniel Jacobowitz  <drow@mvista.com>
+
+	* configure.in: Include $(build_tooldir)/sys-include in
+	FLAGS_FOR_TARGET.
+	* configure: Regenerated.
+
+2003-03-04  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* Makefile.tpl: Reindent.
+	* Makefile.in: Regenerate.
+	* configure.in: Reindent.  Don't set unused variables.
+	* configure: Regenerate.
+
+	* Makefile.tpl: Always pass down RANLIB.
+	* Makefile.in: Regenerate.
+
+	* Makefile.tpl: Don't set unused enable_shared, enable_threads macros.
+	* Makefile.in: Regenerate.
+	* configure.in: Remove unused logic relating to --enable-shared
+	and --enable-threads.  Remove bogus comments.  Remove redundant
+	noconfigdirs.
+	* configure: Regenerate.
+
+	* configure.in: Replace ${libstdcxx_version} by its value.
+	Remove reference to mh-dgux.
+	* configure: Regenerate.
+
+2003-02-28  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* Makefile.tpl: Rearrange.
+	* Makefile.in: Regenerate.
+
+2003-02-25  Nick Clifton  <nickc@redhat.com>
+
+	* configure: Remove site-file supprot - it is obsolete.
+
+2003-02-24  Uwe Stieber <uwe@wwws.de>
+
+	* configure.in: Add support for kaOS as cross build target system.
+	* configure: Regenerated.
+
+2003-02-20  Sean McNeil  <sean@blue.mcneil.com>
+
+	* Makefile.tpl: Add definition of CPPFLAGS to pass into
+	configure-target-* as some target builds may require additional
+	flags for preprocessor tests.
+	* Makefile.in: Regenerated.
+
+2003-02-19  Alexandre Oliva  <aoliva@redhat.com>
+
+	* libtool.m4 (LD): Append -melf* option to LD on IRIX with GNU ld.
+	* ltconfig: Handle it.
+	* ltcf-cxx.sh: Use with_gnu_ld passed as a shell variable instead of
+	auto-detecting it.
+
+2003-02-19  Alexandre Oliva  <aoliva@redhat.com>
+
+	* ltcf-cxx.sh: Replace $linker_flags with $compiler_flags wherever
+	it is used as argument to $CC.
+	* ltcf-gcj.sh: Likewise.
+
+2003-02-19  Alexandre Oliva  <aoliva@redhat.com>
+
+	* configure.in: Introduce --enable-maintainer-mode.
+	* configure: Rebuilt.
+	* Makefile.tpl (Makefile.in, configure): Enable dependencies only
+	for maintainer mode.
+	* Makefile.in: Rebuilt.
+
+2003-02-19  Andrew Cagney <ac131313@redhat.com>
+
+	* configure: Regenerate using autoconf 2.13.
+
+2003-02-19  Alan Modra  <amodra@bigpond.net.au>
+
+	* config.guess: Import latest version.
+	* config.sub: Import latest version.
+
+2003-02-18  Jason Merrill  <jason@redhat.com>
+
+	* Makefile.tpl (check-c++): Allow parallelism.
+
+2003-02-17  Andrew Cagney  <ac131313@redhat.com>
+
+	* configure: Regenerate using autoconf 000227.
+
+2003-02-15  Geoffrey Keating  <geoffk@apple.com>
+
+	* configure.in (*-*-darwin*): Rename from powerpc*-*-darwin*,
+	don't configure target-libobjc.
+	* configure: Regenerate.
+
+2003-02-14  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
+
+	* Makefile.tpl (RANLIB): Define.
+	* Makefile.in: Regenerate.
+
+2003-02-06  Keith R Seitz  <keiths@redhat.com>
+
+	* Makefile.def: Remove "snavigator", "grep", and "db" modules.
+	* Makefile.tpl: Remove "all-snavigator" and "all-grep".
+	* Makefile.in: Regenerated.
+	* configure.in: Remove all traces of snavigator, db, and grep.
+	* configure: Regenerated.
+
+2003-01-31  Frank Ch. Eigler  <fche@redhat.com>
+
+	* Makefile.tpl (all-sid): Add libiberty/bfd/opcodes dependencies.
+	* Makefile.in: Regenerated.
+
+2003-01-30  Alexandre Oliva  <aoliva@redhat.com>
+
+	* config.if: Copy from GCC.
+
+2003-01-27  Phil Edwards  <pme@gcc.gnu.org>
+
+	* configure.in:  Revert 24Jan change.
+	* configure:  Regenerate.
+
+2003-01-23  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* configure.in: Revert previous change.
+	* configure: Regenerate.
+
+2003-01-23  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* configure.in: Make rda native-only.
+	* configure: Regenerate.
+
+2003-01-19  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* configure.in: Add missing \.
+	* configure: Rebuilt.
+
+2003-01-17  Jakub Jelinek  <jakub@redhat.com>
+
+	* configure.in (baseargs): Avoid using \| in sed regular
+	expressions.
+	* configure: Rebuilt.
+
+2003-01-16  Jakub Jelinek  <jakub@redhat.com>
+
+	* configure.in (baseargs): Remove all supported forms of
+	--cache-file, --srcdir, --host, --build and --target options
+	from argument lists.
+	* configure: Rebuilt.
+
+2003-01-15  Alexandre Oliva  <aoliva@redhat.com>
+
+	* configure.in (noconfigdirs): Don't skip gas on IRIX 6.
+	* configure: Rebuilt.
+
+2003-01-09  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* configure.in: Substitute TOPLEVEL_CONFIGURE_ARGUMENTS.
+	* Makefile.tpl: Pass TOPLEVEL_CONFIGURE_ARGUMENTS to gcc.
+	* Makefile.in: Regenerate.
+	* configure: Regenerate.
+
+2003-01-09  Christian Cornelssen  <ccorn@cs.tu-berlin.de>
+
+	* Makefile.tpl (BASE_FLAGS_TO_PASS): Also pass DESTDIR.
+	(install-info, dir.info): Prepend $(DESTDIR) to $(infodir).
+	* Makefile.in: Regenerate.
+
+2003-01-09  Alexandre Oliva  <aoliva@redhat.com>
+
+	* configure.in: Remove Makefile in build, host and target modules
+	unless configure was run with --no-recursion.
+	* configure: Rebuilt.
+
+2003-01-08  Chris Demetriou  <cgd@broadcom.com>
+
+	* config.guess: Update to 2003-01-03 version.
+	* config.sub: Update to 2003-01-03 version.
+
+2003-01-07  Christopher Faylor  <cgf@redhat.com>
+
+	* configure: Regenerate with proper autoconf 2.13.
+
+2003-01-07  Christopher Faylor  <cgf@redhat.com>
+
+	* configure.in: Add AC_PREREQ for consistency.
+	* configure: Regenerate.
+
+2003-01-06  Andrew Cagney  <ac131313@redhat.com>
+
+	* configure.in (GDB_TK): Add tcl directories conditional on
+	gdb/gdbtk directory being present.
+	* configure: Regenerate.
+
+2003-01-04 John David Anglin  <dave.anglin@nrc.ca>
+
+	* configure.in (LD): Improve test for gcc.  Try to set LD to the ld used
+	by gcc if LD is not defined and we are not doing a Canadian Cross.
+	* configure: Rebuilt.
+
+2003-01-01  Daniel Jacobowitz  <drow@mvista.com>
+
+	* src-release (ETC_SUPPORT): Add fdl.texi and texi2pod.pl.
+
+2002-12-31  Tom Tromey  <tromey@redhat.com>
+
+	* Makefile.in: Rebuilt.
+	* Makefile.def (target_modules) [libffi]: Allow installation.
+
+2002-12-31  Andreas Schwab  <schwab@suse.de>
+
+	* configure.in: Fix use of $program_transform_name.
+	* configure: Regenerated.
+
+2002-12-30  Daniel Jacobowitz  <drow@mvista.com>
+
+	* configure.in (baseargs): Don't remove first configure argument.
+	* configure: Regenerated.
+
+2002-12-29  Alexandre Oliva  <aoliva@redhat.com>
+
+	* Makefile.tpl (local-distclean): Don't remove...
+	(multilib.ts): ... this.  Moved into...
+	(multilib.out): ... this.  Don't use sub-make.
+	($(BUILD_SUBDIR)/[+module+]/Makefile, [+module+]/Makefile,
+	$(TARGET_SUBDIR)/[+module+]/Makefile, gcc/Makefile): Moved into...
+	(configure-build-[+module+], configure-[+module+],
+	configure-target-[+module+], configure-gcc): ... these.  Test
+	for Makefile existence.  Drop config.status from dependencies.
+	* Makefile.in: Rebuilt.
+	* configure.in: Move gcc-version-trigger to the end of
+	ac_configure_args.  Add comments to maybedep.tmp and
+	serdep.tmp.  Introduce --disable-serial-configure.  Remove
+	nonopt from baseargs, matching and removing corresponding
+	whitespace while at it.
+	* configure: Rebuilt.
+
+2002-12-28  Alexandre Oliva  <aoliva@redhat.com>
+
+	* configure.in (host_configargs): Replace reference to
+	no-longer-defined buildopts with --build=${build_alias}.
+	* configure: Rebuilt.
+
+2002-12-28  Alexandre Oliva  <aoliva@redhat.com>
+
+	* Makefile.tpl ($(NOTPARALLEL)): Move to the end.  Bring uses of
+	program_transform_name to standard idiom.
+	(AUTOGEN, AUTOCONF): Define.
+	(Makefile.in): Use $(AUTOGEN).
+	(Makefile): Depend on config.status, and use autoconf-style rule to
+	build it.  Move original commands to...
+	(config.status): ... this new target.
+	(configure): Add $(srcdir).  Depend on config/acx.m4.  Use
+	$(AUTOCONF).
+	* Makefile.in: Rebuilt.
+
+2002-12-28  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* Makefile.tpl: Fix dramatic bustage due to change in
+	program_transform_name.
+	* Makefile.in: Regenerate.
+
+	* configure.in: Remove unnecessary PATH setting.
+	* configure: Regnerate.
+
+	* configure.in: Don't default to unprefixed tools unless
+	the native tools will work.
+	* configure: Regenerate.
+
+	* configure.in: Convert to autoconf script.  Blow away lots
+	of now-redundant Makefile fragments.
+	* configure: Generate using Autoconf.
+	* Makefile.tpl: Rewrite to reflect autoconfiscation.
+	* Makefile.in: Regenerate.
+
+2002-12-27  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* configure: Remove unneeded 'export's.  Make CC_FOR_TARGET,
+	CXX_FOR_TARGET, GCJ_FOR_TARGET substituted in configure.in only.
+
+	* ChangeLog: Move a couple of entries from here to winsup/cygwin,
+	where they belong.
+
+2002-12-24  Andreas Schwab  <schwab@suse.de>
+
+	* Makefile.tpl (multilib.out): Fix missing space.
+	* Makefile.in: Regenerate.
+
+2002-12-23  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* Makefile.tpl: Use shared multilib.out.  Use move-if-change for it.
+	Convert (cd foo; make) to (cd foo && make).  Clean up multilib.out.
+	* Makefile.in: Regenerate.
+	* configure.in: Remove unnecessary leftovers.
+
+2002-12-21  Geoffrey Keating  <geoffk@apple.com>
+
+	* configure.in (extra_ranlibflags_for_target): New variable.
+	(*-*-darwin): Add -c to ranlib commands.
+	* configure (tooldir): Handle extra_ranlibflags_for_target.
+
+2002-12-20  Jeff Johnston  <jjohnstn@redhat.com>
+
+	* COPYING.NEWLIB: Updated.
+	* COPYING.LIBGLOSS: Ditto.
+
+2002-12-19  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* Makefile.tpl: Revert HJL's change.
+	* Makefile.in: Regenerated.
+	* configure.in: Put build_prefix before $(BUILD_SUBDIR) here, and
+	always.
+
+2002-12-19  Andreas Schwab  <schwab@suse.de>
+
+	* Makefile.tpl, configure.in: Substitute libstdcxx_incdir.
+	* Makefile.in: Regenerate.
+
+2002-12-18  H.J. Lu <hjl@gnu.org>
+
+	* Makefile.tpl: Add @build_prefix@ before $(BUILD_SUBDIR).
+	* Makefile.in: Regenerated.
+
+	* configure.in (build_prefix): New. Substitute.
+
+2002-12-18  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* Makefile.tpl: Don't let real targets depend on phony targets.
+	* Makefile.in: Regenerate.
+
+	* Makefile.tpl (do-info): Depend on maybe-all-texinfo, not all-texinfo.
+	* Makefile.in: Regenerate.
+
+2002-12-16  Jason Merrill  <jason@redhat.com>
+
+	* Makefile.tpl (all-gcc): Use 'make quickstrap' if there was a
+	previous 'make bootstrap'.
+	* Makefile.in: Regenerate.
+
+2002-12-17  Hans-Peter Nilsson  <hp@bitrange.com>
+
+	* configure.in (noconfigdirs) [mmix-*-*]: Disable libgloss and gdb.
+
+2002-12-13  Jason Merrill  <jason@redhat.com>
+
+	* Makefile.tpl (check-gcc-c++): Renamed from check-c++.  Don't run
+	library tests.
+	(check-c++): Just depend on it and check-target-libstdc++-v3.
+	* Makefile.in: Regenerate.
+
+2002-12-13  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* configure.in, Makefile.tpl, Makefile.def: Remove tclX.
+	* Makefile.in: Regenerate.
+
+2002-12-12  Jeff Johnston  <jjohnstn@redhat.com>
+
+	* COPYING.NEWLIB: Update list of alternate Regent of California
+	licenses and discuss official revoking of advertising clause.
+	* COPYING.LIBGLOSS: Ditto.
+
+2002-12-12  Alexandre Oliva  <aoliva@redhat.com>
+
+	* Makefile.tpl (configure-target-rda): Depend on $(ALL_GCC_C).
+	* Makefile.in: Rebuilt.
+
+2002-12-10  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* configure: Fix bug put in by gremlins.
+
+	* Makefile.tpl: Substitute more autoconfily.
+	* configure: Substitute more autoconfily.
+	* Makefile.in: Regenerate.
+
+2002-12-08  Andrew Cagney  <ac131313@redhat.com>
+
+	* Makefile.tpl (all-sim): Depend on maybe-configure-gdb.
+	* Makefile.in (all-sim): Ditto.
+
+2002-12-06  DJ Delorie  <dj@redhat.com>
+
+	* Makefile.tpl: Change configure dependencies to not have real
+	targets depend on phony targets.
+
+2002-12-05  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* configure.in: Revert unintentional change.
+
+	* src-release: Configure host subdirs.
+
+	* Makefile.tpl: Change dependency for */multilib.out so that
+	it works when gcc isn't in the tree.
+
+	* configure.in: Substitute more.
+	* configure: Run subconfigures from the Makefile.
+	* Makefile.tpl: Run subconfigures from the Makefile; add a few
+	convenience targets.  Make sure gcc isn't rebuilt after bootstrap.
+
+2002-12-03  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* Makefile.tpl: Add targets for configuring host subdirs in Makefile,
+	and corresponding dependencies.
+	* Makefile.in: Regenerate.
+
+	* configure.in (host_tools): Order binutils, gas and ld for
+	convenience in running the testsuites.
+
+	* Makefile.tpl: Introduce rules to serialize subconfigure runs.
+	* Makefile.in: Regenerate.
+	* configure.in: Introduce rules to serialize subconfigure runs.
+
+	* configure.in: Introduce BASE_CC_FOR_TARGET.
+	* Makefile.tpl: Reorganize and comment.  Introduce HOST_CONFIGARGS.
+	Realize configure-build-* targets.  Realize configure-target-* targets.
+	* Makefile.in: Regenerate.
+
+2002-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* configure: Move gcc_version_trigger stuff from here...
+	* configure.in: ...to here.
+
+	* configure.in: Separate subconfigure options added by this file from
+	options given by the user.  Add machinery to put args for host
+	subconfigures into the Makefile.
+
+	* Makefile.tpl: Remove 'vault' targets.
+	* Makefile.tpl: Reorder and comment dependencies.
+	* Makefile.in: Regenerate.
+
+2002-11-28  Geoffrey Keating  <geoffk@apple.com>
+
+	* configure.in: Move host-specific darwin noconfigdirs into
+	the host-specific section.
+
+2002-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* Makefile.tpl: Restore bkorb's style patch, accidentally lost
+	during replay.
+	* Makefile.in: Regenerate.
+
+	(finishing slow-motion replay)
+	* configure: Remove skip-this-dir support.
+	* Makefile.tpl: Remove skip-this-dir support.
+
+	* Makefile.tpl: Remove leftover support for non-autoconfiscated
+	subdirectories.
+	* Makefile.in: Regenerate.
+
+	* Makefile.tpl: Strip out useless setting of 'dir'.
+	* Makefile.in: Regenerate.
+
+2002-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	(finishing slow-motion replay)
+	* configure.in: Fix deeply stupid bug.
+
+	* configure.in: Introduce RAW_CXX_FOR_TARGET and simplify embedded
+	shell code in CXX_FOR_TARGET
+	* Makefile.def: Introduce raw_cxx.
+	* Makefile.tpl: Use raw_cxx to select between CXX_FOR_TARGET and
+	RAW_CXX_FOR_TARGET.
+	* Makefile.in: Regenerate.
+
+2002-12-02  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	(finishing slow-motion replay)
+	* Makefile.tpl: Remove unnecessary ifs.
+	* Makefile.in: Regenerate.
+
+	* Makefile.tpl: Implement soft dependency machinery.  Maybe-ize
+	dependencies.  Maybe-ize build-libiberty.  Create dummy install
+	targets for 'no_install' modules.
+	* configure: Move GDB_TK substitution to configure.in.  Move
+	build_modules stuff to configure.in.
+	* configure.in: Implement soft dependency machinery.  Maybe-ize
+	GDB_TK, rearrange slightly.  Move build_modules stuff from configure.
+	* Makefile.in: Regenerate.
+
+2002-12-01  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	(continuing slow-motion replay)
+	* Makefile.tpl: Make all-target, install-target behave similarly
+	to all, install (only hitting configured targets).  Eliminate
+	unused macro defintions.
+
+	* Makefile.tpl: Add all-gcc: all-build-libiberty dependency when
+	build != host.
+
+	* Makefile.tpl: Add all-gcc: all-libiberty dependency.
+
+	* ltcf-c.sh, ltcf-gcj.sh, Makefile.tpl: Correct BUILD/HOST confusion.
+
+	* configure.in: Produce lists of subdir targets we're actually
+	configuring.  Remove references to "dosrel".
+	* Makefile.tpl: Let configure set which subdir targets are hit.
+	Remove install-cross; clean up install; remove ALL.  Remove
+	references to "dosrel".  Remove "EXTRA_TARGET_HOST" hackery.
+	Autogenerate host module targets.  Remove empty dependency lines
+	and redundant dependency; rearrange slightly.
+	* Makefile.def: Add host-side libtermcap, utils.
+
+	* Makefile.in: Regenerate.
+
+2002-12-01  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	(Continuing slow-motion replay)
+	* Makefile.def: Add list of recursive targets to autogenerate.
+	Add build_modules.
+	* Makefile.tpl: Autogenerate do-* targets.  Autogenerate *-target-*
+	targets.  Autogenerate *-build-* targets.
+	* Makefile.in: Regenerate.
+
+2002-11-30  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	(Continuing slow-motion replay)
+	* configure: More autoconf-style substitutions.
+	* Makefile.tpl: More autoconf-style substitutions.
+	* Makefile.in: Regenerate.
+
+2002-11-30  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	(Continuing slow-motion replay)
+	* configure: Substitute more variables in a more autoconf-friendly
+	way.  Simplify slightly.
+	* Makefile.tpl: Make more variables substitutable in an
+	autoconf-friendly way.
+	* Makefile.in: Regenerate.
+
+2002-11-29  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	(Continuing slow-motion replay)
+	* configure.in (v810*): Remove special setting of tools.
+
+	* configure: Add support for extra required flags for ar or nm.
+	* configure.in (aix4.3+): Use above support for target-specific
+	issues, rather than using config/mt-aix43.
+
+2002-11-29  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	(Starting slow-motion replay merge from gcc 3.4 b-i-b branch)
+	* configure: Remove 'removing', which doesn't work.  Replace $subdir
+	with . everywhere.  Replace $subdirs with ''.  Replace $makesrcdir
+	with $srcdir.  Reformat indentation.  Substitute some variables
+	formerly hard-coded in the Makefile for build=host.
+	* Makefile.tpl: Autogenerate more; make more autoconf-friendly.
+	* Makefile.def: Autogenerate more.
+	* Makefile.in: Regenerate.
+
+2002-11-13  Bruce Korb  <bkorb@gnu.org>
+
+	* Makefile.tpl: syntactic cleanup
+
+2002-11-04  Kevin Buettner  <kevinb@redhat.com>
+
+	* Makefile.def (host_modules): Add rda.
+	* Makefile.in: Regenerate.
+	* configure.in (target_tool): Add target-rda to list.
+
+2002-10-25  Phil Edwards  <pme@gcc.gnu.org>
+
+	* Makefile.tpl (bootstrap):  Add bubblestrap, quickstrap, cleanstrap,
+	and restrap targets to this rule.
+	* Makefile.in:  Regenerate.
+
+2002-10-24  Hans-Peter Nilsson  <hp@bitrange.com>
+
+	* configure.in (i[3456]86-*-linux*): Add check to disable
+	${libgcj} for glibc1.
+
+2002-10-07  Svein E. Seldal  <Svein.Seldal@solidas.com>
+
+	* configure.in: Add tic4x target.
+
+2002-10-03  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* Makefile.tpl: Make SET_LIB_PATH substitution more autoconfy.
+	* Makefile.tpl: Make RPATH_ENVVAR substitution more autoconfy.
+	* configure.in: Make SET_LIB_PATH substitution more autoconfy.
+	* configure.in: Make RPATH_ENVVAR substitution more autoconfy.
+	* Makefile.in: Regenerate.
+
+2002-10-02  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* Makefile.tpl: Eliminate reference to all-gui, all-libproc.
+	* Makefile.in: Regenerate.
+
+	* Makefile.def: Remove order dependency comments.
+	* Makefile.tpl: Add explicit install-install dependencies.
+	* Makefile.in: Regenerate.
+
+	* Makefile.tpl: Remove material now in src-release.  (Finally!)
+	* Makefile.in: Regenerate.
+
+	* configure: Restore my original patch by syncing with gcc version.
+
+	* Bring following over from gcc:
+
+2002-09-30  Ulrich Weigand  <uweigand@de.ibm.com>
+
+	* configure.in (s390*-*-linux*): Enable libgcj.
+
+2002-10-02  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* Makefile.in: Regenerate.  This really ought to fix things. :sigh:
+
+2002-10-02  Alan Modra  <amodra@bigpond.net.au>
+
+	* configure: Move stray lines back to where they belong.
+
+2002-10-01  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* Makefile.tpl: Insert configure-target target, for src-release.
+
+	* configure: Finish reverting change which Andrew Cagney started
+	reverting.  Should fix bustage.
+
+	* src-release (BINUTILS_SUPPORT_DIRS): Add cpu directory.
+	* src-release: New file.  Contains material for making net
+	releases for gdb, binutils, et al., formerly in Makefile.in.
+
+2002-09-30  Nick Clifton  <nickc@redhat.com>
+
+	* cpu: New top level directory.  Intended to hold input files for
+	CGEN which have FSF copyright assignment.
+	* Makefile.in (BINUTILS_SUPPORT_DIRS): Add cpu directory.
+
+2002-09-29  Andrew Cagney  <ac131313@redhat.com>
+
+	Revert below (note that src does not contain Makefile.tpl):
+	* Makefile.tpl: Make subsituted variables more autoconfy.
+	* Makefile.in: Regenerate.
+
+2002-09-29  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* configure: Revert accidentally applied changes.
+
+	* Makefile.tpl: Make more autoconf-friendly.
+	* Makefile.in: Regenerate.
+	* configure: Make substitution more autoconf-like.
+
+2002-09-28  Richard Earnshaw  <rearnsha@arm.com>
+
+	* configure.in (arm-*-coff, strongarm-*-coff, xscale-*-coff): Use a
+	single entry to handle all these.
+	(arm-*-elf, strongarm-*-elf, xscale-*-elf): Likewise.  Also enable
+	libjava on arm-*-elf.
+
+2002-09-27  Geoffrey Keating  <geoffk@apple.com>
+
+	* configure.in (powerpc-*-darwin*): Don't configure BFD, TK, or the
+	things that depend on them.
+
+2002-09-25  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* Makefile.tpl: Make subsituted variables more autoconfy.
+	* Makefile.in: Regenerate.
+	* configure: Make seds more autoconfy.
+
+2002-09-25  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* Makefile.tpl: Rewrite substituted lines to look autoconfy.
+	* Makefile.in: Regenerate.
+	* configure.in: Rewrite sed statements to look autoconfy.
+
+	* Makefile.tpl: Autogenerate *-target-* lists, dependencies of
+	all-target-foo on configure-target-foo.
+	* Makefile.def: Ditto.
+	* Makefile.in: Rebuild.
+
+2002-09-22  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* Makefile.def: New file.
+	* Makefile.tpl: New file.
+	* Makefile.in: Generate from Makefile.tpl with 'autogen Makefile.def'.
+
+	* configure.in: Minor rearrangement.  Simplify tests.
+
+2002-09-23  Jason Thorpe  <thorpej@wasabisystems.com>
+
+	* configure.in (with_headers): Skip copy if value is "yes".
+	(with_libs): Likewise.
+
+2002-09-20  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* configure.in (*-*-netbsd*): Use noconfigdirs, not skipdirs.
+	* configure.in (sh*-*-pe*): Ditto.
+	* configure.in (mips*-*-pe*): Ditto.
+	* configure.in (*arm-wince-pe): Ditto.
+
+	* configure.in: Rearrange.
+
+2002-09-12  Nick Clifton  <nickc@redhat.com>
+
+	* Import these changes from the config master repository:
+
+	2002-09-05  Svein E. Seldal  <Svein.Seldal@solidas.com>
+
+		* config.sub: Add tic4x target.
+
+	2002-09-03  Ben Elliston  <bje@redhat.com>
+
+		* config.guess: Detect NSR-D machines for nsr-tandem-nsk.
+		Reported by <Duncan_Stodart@insession.com>.
+
+2002-09-10  Jeff Johnston  <jjohnstn@redhat.com>
+
+	* COPYING.NEWLIB: More updates.
+
+2002-09-09  Jeff Johnston  <jjohnstn@redhat.com>
+
+	* COPYING.NEWLIB: Update.
+
+2002-08-23  Andrew Cagney  <ac131313@redhat.com>
+
+	* texinfo/texinfo.tex: Import version 2002-06-04.06.
+
+	* config.guess: Import version 2002-08-23.
+	* config.sub: Import version 2002-08-22.
+
+2002-08-20  Alexandre Oliva  <aoliva@redhat.com>
+
+	* Makefile.in (GCC_FOR_TARGET): Prepend STAGE_CC_WRAPPER.
+	* configure.in (CC_FOR_TARGET, GCJ_FOR_TARGET, CXX_FOR_TARGET,
+	CXX_FOR_TARGET_FOR_RECURSIVE_MAKE): Likewise.
+
+2002-08-06  Federico G. Schwindt <fgsch@olimpo.com.br>
+
+	* configure.in (hppa*-*-openbsd*): Treat like hppa*-*-*elf*.
+
+2002-08-04  H.J. Lu  (hjl@gnu.org)
+
+	* configure.in (mips*-*-linux*): Don't skip target-libffi.
+
+2002-07-31  Alan Modra  <amodra@bigpond.net.au>
+
+	* configure.in: Move generic linux case to end.	 Copy generic
+	linux noconfigdirs to mips*-*-linux* entry and new
+	powerpc64*-*-linux* entry.  Add target-libffi for the latter.
+
+2002-07-19  Chris Demetriou  <cgd@broadcom.com>
+
+	* MAINTAINERS: Clarify on config.guess and config.sub, and add
+	one instance of them which was missed to the list to update.
+
+2002-07-16  Chris Demetriou  <cgd@broadcom.com>
+
+	* config.guess: Update to 2002-07-09 version.
+	* config.sub: Update to 2002-07-03 version.
+
+2002-07-11  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* configure.in: Remove two redundant tests.
+
+2002-07-11  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
+
+	* configure.in (mips*-*-irix6*o32): Enable stabs.
+
+2002-07-08  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* configure.in: Don't build grez.
+	* Makefile.in: Ditto.
+
+	* Makefile.in: Remove references to bsp, cygmon, libstub.
+	* configure.in: Ditto.
+
+	* configure.in: Remove leftover reference to gdbtest.
+
+2002-07-08  Phil Edwards  <pme@gcc.gnu.org>
+
+	* configure.in (gxx_include_dir):  Change to match versioned
+	C++ headers if --enable-version-specific-runtime-libs is used.
+
+2002-07-04  Steve Ellcey  <sje@cup.hp.com>
+
+	* ltcf-cxx.sh (hpux*): Modify to support ia64-*-hpux*.
+
+2002-07-03  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* configure.in: Make --without-x work.
+
+2002-07-03  Nick Clifton  <nickc@cambridge.redhat.com>
+
+	* contrib: New directory.  Created to contain a copy of the
+	texi2pod.pl script so that it is in the same place as the version in
+	the FSF GCC sources.
+
+2002-07-02  Nathanael Nerode  <neroden@gcc.gnu.org>
+
+	* configure.in: Rearrange target Makefile fragment collection.
+
+	* Makefile.in: Don't try to build gdbtest, tgas, ispell, inet, or
+	cvs[src].
+	* configure.in: Ditto.
+
+2002-07-01  Nathanael Nerode <neroden@gcc.gnu.org>
+
+	* Makefile.in: Eliminate 'apache' targets.
+	* configure.in: Eliminate 'apache' targets.
+
+	* configure.in: Eliminate redundant tests.  Reorganize.
+
+	* Makefile.in: Eliminate last reference to LIBGCC1_TEST.
+
+	* config-ml.in: Eliminate references to Cygnus configure.
+
+	* Makefile.in: Eliminate references to building emacs.
+
+2002-07-01  Denis Chertykov  <denisc@overta.ru>
+
+	* configure.in: Add support for ip2k.
+
+2002-06-24  Ben Elliston  <bje@redhat.com>
+
+	* configure.in (host_tools): Remove cgen.
+
+	* Makefile.in (all-cgen): Remove; runs from its source directory.
+	(check-cgen, install-cgen, clean-cgen): Likewise.
+	(all-opcodes): No not depend on all-cgen.
+	(all-sim): Likewise.
+
+2002-06-22  Nathanael Nerode  <neroden@twcny.rr.com>
+
+	* configure.in: Fix AIX configury bug.
+
+2002-06-19  Nathanael Nerode  <neroden@twcny.rr.com>
+
+	* configure.in: Replace ${topsrcdir} with ${srcdir}.
+
+	* configure.in: Move definition of libstdcxx_flags right above
+	usage, rather than way earlier.
+
+	* configure.in: Pull definition of is_cross_compiler earlier.
+
+	* configure.in: Rearrange a little.
+
+	* configure.in: Remove references to librx.
+	* Makefile.in: Remove references to librx.
+
+2002-06-19  Nathanael Nerode  <neroden@twcny.rr.com>
+
+	* configure.in: Eliminate ${gasdir} variable.
+
+2002-06-18  Dave Brolley  <brolley@redhat.com>
+
+	* configure.in: Add support for frv.
+	* config.sub: Add support for frv.
+
+2002-06-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+	* Makefile.in (CFLAGS_FOR_TARGET): Add -O2.
+
+2002-06-08  Jason Thorpe  <thorpej@wasabisystems.com>
+
+	* configure.in (vax-*-netbsd*): Re-enable gas.
+
+2002-05-31  Nathanael Nerode  <neroden@twcny.rr.com>
+
+	* Makefile.in: Replace HOST_PREFIX, HOST_PREFIX_1 with BUILD_PREFIX,
+	BUILD_PREFIX_1, to correct nomenclature.
+	* configure: Likewise.
+
+	* Makefile.in: Eliminate version-specific references to tcl8.1, tk8.1.
+	* configure.in: Eliminate version-specific references to tcl8.1, tk8.1.
+
+2002-05-31  Olaf Hering  <olh@suse.de>
+
+	* config-ml.in: Propogate DESTDIR also.
+
+2002-05-29  Jason Thorpe  <thorpej@wasabisystems.com>
+
+	* configure.in (vax-*-netbsd*): Don't build gas for this
+	platform.
+
+2002-05-28  Marek Michalkiewicz  <marekm@amelek.gda.pl>
+
+	* configure.in (noconfigdirs): Don't compile libiberty, libstdcxx
+	and libgcj for AVR.
+
+2002-05-28  Nick Clifton  <nickc@cambridge.redhat.com>
+
+	* config.sub: Add DLX target.
+
+2002-05-22  Jason Thorpe  <thorpej@wasabisystems.com>
+
+	* config.guess: Update to 2002-05-22 version.
+	* config.sub: Likewise.
+
+2002-05-16  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
+
+	* Makefile.in: Allow for PWDCMD to override hardcoded pwd.
+	* config-ml.in: Likewise.
+	* configure: Likewise.
+	* configure.in: Likewise.
+
+2002-05-13  Nathanael Nerode  <neroden@twcny.rr.com>
+
+	* configure.in: Simplify makefile fragment collection.
+
+	* configure.in: Remove code to build emacs.
+
+	* configure.in : Remove --srcdir argument from targargs and buildargs
+	(it's always overridden in the Makefile anyway).  Rearrange a bit.
+
+	* configure: Move some logic to configure.in.
+	* configure.in: Move some logic from configure.
+
+2002-05-07  Jeff Johnston  <jjohnstn@redhat.com>
+
+	* COPYING.LIBGLOSS: New file.
+
+2002-05-07  Federico G. Schwindt <fgsch@olimpo.com.br>
+
+	* Makefile.in: Honour DESTDIR.
+
+2002-05-05  Alexandre Oliva  <aoliva@redhat.com>
+
+	* configure.in (noconfigdirs): Don't disable libgcj on
+	sparc64-*-solaris* and sparcv9-*-solaris*.
+
+2002-05-03  Alexandre Oliva  <aoliva@redhat.com>
+
+	* configure.in: Revert 2002-04-18's patch; fixed in libjava.
+
+2002-05-03  Thomas Fitzsimmons  <fitzsim@redhat.com>
+
+	* configure.in (FLAGS_FOR_TARGET): Do not add
+	-B$$r/$(TARGET_SUBDIR)/newlib/ when compiling newlib natively
+	on i[3456]86-*-linux*.
+
+2002-05-01  Thomas Fitzsimmons  <fitzsim@redhat.com>
+
+	* configure.in (noconfigdirs): Replace [ ] with test.
+
+	* configure.in (noconfigdirs): Do not add target-newlib if
+	target == i[3456]86-*-linux*, and host == target.
+
+2002-04-29  Mark Mitchell  <mark@codesourcery.com>
+
+	* config.guess: Updated to 2002-04-26's version.
+	* config.sub: Updated to 2002-04-26's version.
+
+2002-04-29  Nathanael Nerode  <neroden@doctormoo.dyndns.org>
+
+	* configure.in: delete reference to absent file
+
+	* configure.in: replace '[' with 'test'
+
+	* configure.in: Eliminate references to gash.
+	* Makefile.in: Eliminate references to gash.
+
+	* configure.in: remove useless references to 'pic' makefile fragments.
+
+	* configure.in: (*-*-windows*) Finish removing.
+
+	* configure.in: Eliminate redundant test for libgui.
+
+2002-04-26  Joel Sherrill  <joel@OARcorp.com>
+
+	* configure.in (h8300*-*-rtems*): Disable libf2c and libgcj.
+	(sparc-*-elf*, sparc64-*-elf*): Disable libgcj.
+
+2002-04-19  Nathanael Nerode  <neroden@twcny.rr.com>
+
+	* configure.in: remove references to dead files
+
+2002-04-18  Tom Tromey  <tromey@redhat.com>
+
+	* configure.in: Disallow configuring libgcj when it is already
+	installed and we're using Solaris 2.8 linker.  Do enable libgcj on
+	Solaris 2.8 by default.  For PR libgcj/6158.
+
+2002-04-17  Nathanael Nerode  <neroden@twcny.rr.com>
+
+	* configure.in:  Move default CC setting out of config/mh-* fragments
+	directly into here.
+
+2002-04-17  Nathanael Nerode  <neroden@twcny.rr.com>
+
+	* configure.in: don't even try to configure or make a subdirectory
+	if there's no configure script for it.
+
+2002-04-15  Mark Mitchell  <mark@codesourcery.com>
+
+	* MAINTAINERS: Remove chill maintainers.
+	* Makefile.in (CHILLFLAGS): Remove.
+	(CHILL_LIB): Remove.
+	(TARGET_CONFIGDIRS): Remove libchill.
+	(CHILL_FOR_TARGET): Remove.
+	(BASE_FLAGS_TO_PASS): Don't pass CHILLFLAGS, CHILL_FOR_TARGET, or
+	CHILL_LIB.
+	(CONFIGURE_TARGET_MODULES): Remove configure-target-libchill.
+	(CHECK_TARGET_MODULES): Likewise.
+	(INSTALL_TARGET_MODULES): Likewise.
+	(CLEAN_TARGET_MODULES): Likewise.
+	(configure-target-libchill): Remove.
+	(all-target-libchill): Remove.
+	* configure.in (target_libs): Remove target-libchill.
+	Do not compute CHILL_FOR_TARGET.
+	* libchill: Remove directory.
+
+2002-04-15  DJ Delorie  <dj@redhat.com>
+
+	* Makefile.in, configure.in, configure: Sync with gcc, entries
+	follow...
+
+2002-04-08  Tom Tromey  <tromey@redhat.com>
+
+	* configure.in: Add FLAGS_FOR_TARGET to GCJ_FOR_TARGET.
+	Fixes PR libgcj/6068.
+
+2002-03-30  Krister Walfridsson  <cato@df.lth.se>
+
+	* configure.in (i*86-*-netbsdelf*): Don't disable libgcj.
+
+2002-03-27  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
+
+	* configure.in (alpha*-dec-osf*): Enable libgcj.
+
+2002-03-24  Nick Clifton  <nickc@cambridge.redhat.com>
+
+	Fix for: PR bootstrap/3591, target/5676
+	* configure.in (mcore-pe): Disable the configuration of
+	libstdc++-v3 since exceptions are not supported.
+
+2002-03-20  Anthony Green  <green@redhat.com>
+
+	* configure.in: Enable libgcj for xscale-elf target.
+
+2002-02-28  Alexandre Oliva  <aoliva@redhat.com>
+
+	* configure.in (libstdcxx_flags): Don't add libstdc++-v3 flags for
+	libjava.
+	(CXX_FOR_TARGET): Explain why -shared-libgcc here.
+
+2002-02-22  Alexandre Oliva  <aoliva@redhat.com>
+
+	* configure.in (CXX_FOR_TARGET): Add -shared-libgcc for
+	libstdc++-v3 and libjava.
+
+2002-02-11  Adam Megacz <adam@xwt.org>
+
+	* gcc/Makefile.in: Removed libstdc++-v3 dependancy for libjava and
+	boehm-gc
+
+2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
+
+	* config.guess: Updated to 2002-01-30's version.
+	* config.sub: Updated to 2002-02-01's version.
+	Contribute sh64-elf.
+	2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
+	* configure.in: Added sh64-*-*.
+
+2002-01-17  H.J. Lu <hjl@gnu.org>
+
+	* Makefile.in (all-fastjar): Also depend on all-libiberty.
+	(all-target-fastjar): Also depend on all-target-libiberty.
+
+Wed Dec  5 07:33:45 2001  Douglas B. Rupp  <rupp@gnat.com>
+
+	* configure, configure.in: Use temp file for long sed commands.
+
+2001-11-14  Hans-Peter Nilsson  <hp@bitrange.com>
+
+	* configure.in (noconfigdirs) [h8300*-*-*, h8500-*-*]: Disable
+	libf2c.
+
+2001-11-03  Hans-Peter Nilsson  <hp@bitrange.com>
+
+	* configure.in (noconfigdirs) [mmix-*-*]: Disable libgcj.
+
+2001-10-11  Hans-Peter Nilsson  <hp@axis.com>
+
+	* configure.in (noconfigdirs) [cris-*-*]: Disable libgcj.
+
+2001-10-02  Joseph S. Myers  <jsm28@cam.ac.uk>
+
+	* configure: Handle temporary files securely using mkdir.
+
+2001-09-26  Will Cohen <wcohen@redhat.com>
+
+	* configure.in (*-*-linux*): Disable configuration of target-newlib
+	and target-libgloss.
+
+2001-09-26  Alexandre Oliva  <aoliva@redhat.com>
+
+	* Makefile.in (EXTRA_TARGET_FLAGS): Pass RANLIB_FOR_TARGET for
+	RANLIB.
+
+2001-08-11  Graham Stott  <grahams@redhat.com>
+
+	* Makefile.in (check-c++): Add missing semicolon.
+
+2001-07-25  Andrew Haley  <aph@cambridge.redhat.com>
+
+	* configure.in (sh-*-linux*): New.
+
+2001-07-12  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
+
+	* configure.in (noconfigdirs): Don't compile libiberty, libstdcxx
+	and libgcj on m68hc11/m68hc12.
+
+2001-06-27  H.J. Lu  (hjl@gnu.org)
+
+	* Makefile (CFLAGS_FOR_BUILD): New.
+	(EXTRA_GCC_FLAGS): Add CFLAGS_FOR_BUILD.
+
+2001-06-01  Hans-Peter Nilsson  <hp@axis.com>
+
+	* configure.in (libstdcxx_flags): Do not try to execute
+	libstdc++-v3/testsuite_flags until it exists.
+
+2001-05-18  Benjamin Kosnik  <bkoz@redhat.com>
+
+	* configure.in (libstdcxx_flags): Remove reference to libstdc++.INC.
+
+2001-05-09  Jeffrey Oldham  <oldham@codesourcery.com>
+
+	* ltcf-cxx.sh: Add -nostdlib to IRIX 6 archive_cmds.
+
+Mon Apr 23 09:15:03 2001  Anthony Green  <green@redhat.com>
+
+	* configure.in: Move *-chorusos target case to the proper switch.
+	Disable libgcj.
+
+2001-04-13  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
+
+	* Makefile.in (STAGE1_CFLAGS): Pass down.
+
+2001-04-13  Alan Modra  <amodra@one.net.au>
+
+	* config.guess: Add hppa64-linux support.  Note for next import that
+	this is already in the master file.
+	* configure.in: Likewise.  Accept `parisc' alias for `hppa'.
+
+2001-03-22  Colin Howell  <chowell@redhat.com>
+
+	* Makefile.in (DO_X): Do not backslash single-quotes in
+	backquotes (two places).
+
+2001-03-18  Laurynas Biveinis  <lauras@softhome.net>
+
+	* Makefile.in (DO_X): Quote nested quotes.
+
+2001-03-15  Laurynas Biveinis  <lauras@softhome.net>
+
+	* Makefile.in (DO_X): Use double quotes for quoting
+	"RANLIB=$${RANLIB}".
+
+2001-03-09  Nicola Pero <n.pero@mi.flashnet.it>
+
+	* configure.in: Only use `lang_requires' for languages athat are
+	actually enabled.
+
+2001-03-07  Tom Tromey  <tromey@redhat.com>
+
+	* configure.in: Allow config-lang.in to set `lang_requires' to list
+	of other required languages.
+
+2001-03-06  Laurynas Biveinis  <lauras@softhome.net>
+
+	* Makefile.in: Remove RANLIB definition. Use RANLIB
+	in RANLIB_FOR_TARGET, EXTRA_HOST_FLAGS, EXTRA_TARGET_FLAGS,
+	EXTRA_GCC_FLAGS, $(DO_X) targets only when the RANLIB is set.
+
+2001-02-28  Benjamin Kosnik  <bkoz@redhat.com>
+	    Alexandre Oliva  <aoliva@redhat.com>
+
+	* Makefile.in (check-c++): Use tabs, not spaces.
+
+2001-02-19  Benjamin Kosnik  <bkoz@redhat.com>
+
+	* Makefile.in (check-c++): New rule.
+
+	* configure.in (target_libs): Remove libg++.
+	(noconfigdirs): Remove libg++.
+	(noconfigdirs): Same.
+	(noconfigdirs): Same.
+	(noconfigdirs): Same.
+
+	* config-ml.in: Remove libg++ references.
+
+	* Makefile.in (TARGET_CONFIGDIRS): Remove libio, libstdc++, libg++.
+	(ALL_TARGET_MODULES): Same.
+	(configure-target-libg++): Remove.
+	(all-target-libg++): Remove.
+	(configure-target-libio): Remove.
+	(all-target-libio): Remove.
+	(check-target-libio): Remove.
+	(.PHONY): Remove.
+	(libg++.tar.bz2): Remove.
+	(all-target-cygmon): Remove libio.
+	(all-target-libstdc++): Remove.
+	(configure-target-libstdc++): Remove.
+	(TARGET_LIB_PATH): Remove libstdc++.
+	(ALL_GCC_CXX): Remove libstdc++.
+	(all-target-gperf): Correct.
+
+2001-02-15  Anthony Green  <green@redhat.com>
+
+	* configure: Introduce GCJ_FOR_TARGET.
+	* configure.in: Ditto.
+	* Makefile.in: Ditto.
+
+2001-02-08  Chandrakala Chavva <cchavva@redhat.com>
+
+	* configure.in: for *-chorusos, don't config target-newlib and
+	target-libgloss.
+
+2001-02-04  Mark Mitchell  <mark@codesourcery.com>
+
+	Remove V2 C++ library.
+	* configure.in: Remove --enable-libstdcxx_v3 support.
+
+2001-01-27  Richard Henderson  <rth@redhat.com>
+
+	* configure.in (target_makefile_frag) [alpha*-*]: Use mt-alphaieee.
+
+2001-01-26  Tom Tromey  <tromey@redhat.com>
+
+	* configure.in: Allow libgcj to be built on Sparc Solaris.
+
+2001-01-23  Bryce McKinlay  <bryce@albatross.co.nz>
+
+	* configure.in: Enable libgcj on several additional platforms.
+
+2001-01-22  Bryce McKinlay  <bryce@albatross.co.nz>
+
+	* configure.in: Enable libgcj for linux targets.
+
+2001-01-09  Mike Stump  <mrs@wrs.com>
+
+	* Makefile.in (CONFIGURE_TARGET_MODULES): Pass back configuration
+	failures of subdirectories.
+
+2001-01-02  Laurynas Biveinis  <lauras@softhome.net>
+
+	* configure: handle DOS-style absolute paths.
+
+2001-01-02  Laurynas Biveinis  <lauras@softhome.net>
+
+	* configure.in: remove supported directories from $noconfigdirs for DJGPP.
+
+2000-12-18  Benjamin Kosnik  <bkoz@redhat.com>
+
+	* Makefile.in (BASE_FLAGS_TO_PASS): Alphabetize.
+	(libstdcxx_incdir): Pass down.
+	* config.if: Remove expired bits for cxx_interface, add stub.
+	(libstdcxx_incdir): Add variable for g++ include directory.
+	* configure.in (gxx_include_dir): Use it.
+
+2000-12-15  Andreas Jaeger  <aj@suse.de>
+
+	* configure.in: Handle lang_dirs.
+
+2000-12-13  Anthony Green  <green@redhat.com>
+
+	* configure.in: Disable libgcj for any target not specifically
+	listed.  Disable libgcj for x86 and Alpha Linux until compatible
+	with g++ abi.
+
+2000-12-13  Mike Stump  <mrs@wrs.com>
+
+	* Makefile.in (local-distclean): Also remove fastjar.
+
+2000-12-10  Anthony Green  <green@redhat.com>
+
+	* configure.in: Define libgcj.  Disable libgcj target libraries for
+	most targets.
+
+2000-12-09  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+	* configure.in (target_libs): Revert 2000-12-08 patch.
+	(noconfigdirs): Added target-libjava.
+
+2000-12-09  Laurynas Biveinis  <lauras@softhome.net>
+
+	* Makefile.in: handle DOS-style absolute paths.
+
+2000-12-08  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+	* Makefile.in (TARGET_CONFIGDIRS): Wrong place. Removed note about
+	libjava.
+	* configure.in (target_libs): Removed `target-libjava'.
+
+2000-12-08  Alexandre Petit-Bianco  <apbianco@cygnus.com>
+
+	* Makefile.in (TARGET_CONFIGDIRS): Added note about libjava.
+	(ALL_MODULES): Added fastjar.
+	(NATIVE_CHECK_MODULES, INSTALL_MODULES, CLEAN_MODULES): Likewise.
+	(all-target-libjava): all-fastjar replaces all-zip.
+	(all-fastjar): Added.
+	(configure-target-fastjar, all-target-fastjar): Likewise.
+	* configure.in (host_tools): Added fastjar.
+
+2000-12-07  Mike Stump  <mrs@wrs.com>
+
+	* Makefile.in (local-distclean): Remove leftover built files.
+
+2000-11-16  Fred Fish  <fnf@be.com>
+
+	* configure.in (enable_libstdcxx_v3): Fix typo,
+	libstd++ -> libstdc++.
+
+2000-11-13  Joseph S. Myers  <jsm28@cam.ac.uk>
+
+	* configure: Provide the original toplevel configure arguments
+	(including $0) to subprocesses in the environment rather than
+	through gcc/configargs.h.
+
+2000-11-12  Mark Mitchell  <mark@codesourcery.com>
+
+	* configure: Turn on libstdc++ V3 by default.
+
+2000-10-16  Michael Meissner  <meissner@redhat.com>
+
+	* configure (gcc/configargs.h): Only create if there is a build GCC
+	directory created.
+
+2000-10-05  Phil Edwards  <pme@gcc.gnu.org>
+
+	* configure: Save configure arguments to gcc/configargs.h.
+
+2000-10-04  Andris Pavenis  <pavenis@latnet.lv>
+
+	* Makefile.in (bootstrap): avoid recursion if subdir missing
+	(cross): ditto
+	(do-proto-toplev): ditto
+
+Wed Sep 13 11:11:29 2000  Jeffrey A Law  (law@cygnus.com)
+
+	* configure.in: Do not build byacc for hppa64.  Provide paths to the
+	X11 libraries for hppa64.
+
+2000-09-02  Anthony Green  <green@cygnus.com>
+
+	* Makefile.in (all-gcc): Depend on all-zlib.
+	(CLEAN_MODULES): Add clean-zlib.
+	(ALL_MODULES): Add all-zlib.
+	* configure.in (host_libs): Add zlib.
+
+2000-08-25  Alexandre Oliva  <aoliva@redhat.com>
+
+	* configure.in (FLAGS_FOR_TARGET): Use $target_configdirs and
+	$targargs to tell whether newlib is going to be built.
+
+	* configure.in [disable-libstdcxx-v3] (libstdcxx_flags): Search
+	$$r/TARGET_SUBDIR/libio for _G_config.h.
+
+2000-08-14  Zack Weinberg  <zack@wolery.cumb.org>
+
+	* configure.in (libstdcxx_flags): Remove -isystem $$s/libio/stdio.
+
+	* configure: Make enable_threads and enable_shared defaults
+	explicit.  Substitute enable_threads into generated Makefiles.
+	* configure.in: Accept *-*-linux* not just *-*-linux-gnu*.
+	* libtool.m4: Accept *-*-linux* not just *-*-linux-gnu*.
+
+2000-08-02  Manfred Hollstein  <manfredh@redhat.com>
+
+	* configure.in: Re-enable all references to libg++ and librx.
+
+2002-04-09  Loren James Rittle  <rittle@labs.mot.com>
+
+	* configure.in: Add *-*-freebsd* configurations.
+
+2002-04-07  Andrew Cagney  <ac131313@redhat.com>
+
+	* Makefile.in (do-tar-bz2): Delete rule.  Replace with ...
+	(do-tar, do-bz2): New rules.
+	(taz): Update.  Replace do-tar-bz2 with do-tar and do-bz2.
+	(gdb-tar): New rule.
+	(gdb-taz): Rewrite.  Use gdb-tar and do-bz2.
+	(insight_dejagnu.tar): New rule.
+	(insight.tar): New rule.
+	(gdb+dejagnu.tar): New rule.
+	(gdb.tar): New rule.
+
+2002-04-07  Andrew Cagney  <ac131313@redhat.com>
+
+	* MAINTAINERS: Update dejagnu/
+
+2002-03-16  Alexandre Oliva  <aoliva@redhat.com>
+
+	* ltmain.sh (relink_command): Fix typo in previous change.
+
+2002-03-15  Alexandre Oliva  <aoliva@redhat.com>
+
+	* ltmain.sh (taglist): Initialized.  Don't let `CC' tag out of it.
+	(relink_command): Added --tag flags.
+	(mode=install): If relinking fails; error out.
+
+2002-03-12  Richard Henderson  <rth@redhat.com>
+
+	* Makefile.in (NOTPARALLEL): New.  Use it instead of explicit
+	.NOTPARALLEL tag.
+	(do-check): Rename from check.
+	(check): Allow parallel check.
+
+2002-03-11  Richard Henderson  <rth@redhat.com>
+
+	* Makefile.in (.NOTPARALLEL): Add fake tag.
+
+2002-03-07  H.J. Lu  (hjl@gnu.org)
+
+	* configure.in: Enable gprof for mips*-*-linux*.
+
+2002-02-28  Alexandre Oliva  <aoliva@redhat.com>
+
+	* configure.in (libstdcxx_flags): Don't add libstdc++-v3 flags for
+	libjava.
+	(CXX_FOR_TARGET): Add -shared-libgcc for libstdc++-v3 and libjava.
+
+2002-02-24  Andrew Cagney  <ac131313@redhat.com>
+
+	* texinfo/texinfo.tex: Update to version 2002-02-14.08.
+
+2002-02-23  Daniel Jacobowitz  <drow@mvista.com>
+
+	* config.guess: Import from master sources, rev 1.232.
+	* config.sub: Import from master sources, rev 1.246.
+
+2002-02-23  Alexandre Oliva  <aoliva@redhat.com>
+
+	* Makefile.in (MAKEINFO): Don't assume makeinfo will be built just
+	because its Makefile is there; test for the executable instead.
+
+2002-02-09  Alexandre Oliva  <aoliva@redhat.com>
+
+	Contribute sh64-elf.
+	2000-12-01  Alexandre Oliva  <aoliva@redhat.com>
+	* configure.in: Added sh64-*-*.
+
+2002-02-04  Jeff Johnston  <jjohnstn@redhat.com>
+
+	* COPYING.NEWLIB: Remove advertising clause from
+	Berkeley and Red Hat licenses.
+
+2002-02-01  Mo DeJong  <supermo@bayarea.net>
+
+	* Makefile.in: Add all-tix to deps for all-snavigator
+	so that tix is built when building snavigator.
+
+2002-02-01  Ben Elliston  <bje@redhat.com>
+
+	* config.guess: Import from master sources, rev 1.229.
+	* config.sub: Import from master sources, rev 1.240.
+
+2002-01-27  Daniel Jacobowitz  <drow@mvista.com>
+
+	From Steve Ellcey <sje@cup.hp.com>:
+	* libtool.m4 (HPUX_IA64_MODE): Set to 32 or 64 based on ABI.
+	(lt_cv_deplibs_check_method, lt_cv_file_magic_cmd,
+	lt_cv_file_magic_test_file): Set to appropriate values for HP-UX
+	IA64.
+	* ltcf-c.sh (archive_cmds, hardcode_*): Ditto.
+	* ltconfig (shlibpath_*, dynamic_linker, library_names_spec,
+	soname_spec, sys_lib_search_path_spec): Ditto.
+
+2002-01-26  Jason Thorpe  <thorpej@wasabisystems.com>
+
+	* configure.in (*-*-netbsd*): New.  Skip target-newlib,
+	target-libiberty, and target-libgloss.  Skip Java-related
+	libraries if not supported for NetBSD on target CPU.
+
+2002-01-23  Nick Clifton  <nickc@cambridge.redhat.com>
+
+	* configure.in: Import StrongARM and XScale target_configdirs from
+	FSF GCC version.
+
+2002-01-16  H.J. Lu  (hjl@gnu.org)
+
+	* config.guess: Import from master sources, rev 1.225.
+	* config.sub: Import from master sources, rev 1.238.
+
+	* MAINTAINERS: Updated notes on config.guess and config.sub.
+
+2002-01-11  Steve Ellcey  <sje@cup.hp.com>
+
+	* configure.in (ia64*-*-hpux*): New target for IA64 HP-UX,
+	ld and gdb are not supported.
+
+2002-01-07  Jeff Johnston  <jjohnstn@redhat.com>
+
+	* Change reference to Cygnus Solutions to be Red Hat.
+
+2002-01-07  Jeff Johnston  <jjohnstn@redhat.com>
+
+	* COPYING.NEWLIB: Update generic copyright date.
+
+2002-01-07  Mark Salter  <msalter@redhat.com>
+
+	* configure.in: Remove target-bsp and target-cygmon from arm builds.
+	  Allow target-libgloss to be built for arm, strongarm, and xscale.
+
+2002-01-03  Ben Elliston  <bje@redhat.com>
+
+	* MAINTAINERS: Update URL for config.* scripts.
+
+2001-12-18  Alan Modra  <amodra@bigpond.net.au>
+
+	* config.sub: Import latest version.
+	* config.guess: Likewise.
+
+2001-12-13  Thomas Fitzsimmons  <fitzsim@redhat.com>
+
+	* configure.in (FLAGS_FOR_TARGET): Remove -nostdinc and -isystem
+	options for i[3456]86-pc-linux* native builds.
+
+2001-12-05  Laurent Guerby  <guerby@acm.org>
+
+	* MAINTAINERS: gcc adopts symlink-tree, refer more to
+	libiberty.
+
+	Import this patch from gcc:
+
+	2000-12-09  Laurynas Biveinis  <lauras@softhome.net>
+
+	    * symlink-tree: handle DOS-style absolute paths.
+
+2001-11-28  DJ Delorie <dj@redhat.com>
+	    Zack Weinberg  <zack@codesourcery.com>
+
+	When build != host, create libiberty for the build machine.
+
+	* Makefile.in (TARGET_CONFIGARGS, BUILD_CONFIGARGS): Replace
+	CONFIG_ARGUMENTS.
+	(ALL_BUILD_MODULES_LIST, BUILD_CONFIGDIRS, BUILD_SUBDIR):
+	New variables.
+	(ALL_BUILD_MODULES, CONFIGURE_BUILD_MODULES): New variables
+	and rules.
+	(all.normal): Depend on ALL_BUILD_MODULES.
+	(CONFIGURE_TARGET_MODULES rule): Use TARGET_CONFIGARGS.
+	(all-build-libiberty): Depend on configure-build-libiberty.
+
+	* configure: Calculate and substitute proper value for
+	ALL_BUILD_MODULES.
+	* configure.in: Create the build subdirectory.
+	Calculate and substitute TARGET_CONFIGARGS (formerly
+	CONFIG_ARGUMENTS); also BUILD_SUBDIR and BUILD_CONFIGARGS (new).
+
+2001-11-26  Geoffrey Keating  <geoffk@redhat.com>
+
+	* config.sub: Update to version 1.232 on subversion.
+
+2001-11-20  Nick Clifton  <nickc@cambridge.redhat.com>
+
+	* Makefile.in (do-proto-toplev): Use msgfmt to generate .gmo
+	files from .po files for a distribution.
+
+2001-11-19  Hans-Peter Nilsson  <hp@bitrange.com>
+
+	* COPYING.NEWLIB: Mention preserved notice in specific parts.
+
+2001-11-13  Jeff Holcomb  <jeffh@redhat.com>
+
+	Merged from net gcc:
+	2001-07-30  Jeff Sturm  <jsturm@one-pont.com>
+	* ltcf-c.sh: Use $objext, not $ac_objext.
+	2001-07-27  Mark Kettenis  <kettenis@gnu.org>
+	* ltcf-cxx.sh: Add support for GNU.
+	2001-07-22  Timothy Wall  <twall@redhat.com>
+	* ltcf-c.sh: Don't disable shared libraries for AIX5/IA64.  Preserve
+	default settings if using GNU tools with that configuration.
+	* ltcf-cxx.sh: Ditto.
+	* ltcf-gcj.sh: Ditto.
+	2001-07-21  Michael Chastain  <chastain@redhat.com>
+	* ltconfig: Set max_cmd_len to a maximum of 512Kb, as it seems some
+	HPUX 11.0 systems have trouble with 1MB.  Mark as gcc-local.
+	* ltmain.sh: Mark as gcc-local.
+
+2001-11-13  Jeff Holcomb  <jeffh@redhat.com>
+
+	* Makefile.in (all-bison): Revert 2001-10-24.
+	Don't depend on texinfo.
+
+2001-11-12  Hans-Peter Nilsson  <hp@bitrange.com>
+
+	* COPYING.NEWLIB: Add BSD-style license/copyright blurb for my work.
+
+2001-11-08  Phil Edwards  <pedwards@disaster.jaj.com>
+
+	* configure.in (--enable-languages): Be more permissive about
+	syntax.  Check for empty lists better.  Warn about $LANGUAGES.
+
+2001-11-06  Hans-Peter Nilsson  <hp@bitrange.com>
+
+	* Makefile.in (MAKEINFO): Use "missing" for makeinfo older than 4.0.
+
+2001-10-24  Jeff Holcomb  <jeffh@redhat.com>
+
+	Makefile.in (all-bison): Don't depend on texinfo.
+
+2001-10-03  Alan Modra  <amodra@bigpond.net.au>
+
+	* gettext.m4: Test po/POTFILES.in exists before trying to read.
+
+2001-09-29  Alexandre Oliva  <aoliva@redhat.com>
+
+	* Makefile.in (configure-target-gperf): Depend on $(ALL_GCC_CXX).
+
+2001-09-28  Hans-Peter Nilsson  <hp@axis.com>
+
+	* config.sub, config.guess: Import latest from subversions.
+
+2001-09-21  Alexandre Oliva  <aoliva@redhat.com>
+
+	* Makefile.in (AS_FOR_TARGET, LD_FOR_TARGET,
+	DLLTOOL_FOR_TARGET, WINDRES_FOR_TARGET, AR_FOR_TARGET,
+	RANLIB_FOR_TARGET, NM_FOR_TARGET): Don't use double quotes to
+	avoid quotes nesting problems.
+	(NATIVE_CHECK_MODULES): Ditto, just for consistency.
+	(DO_X): Export only variables that are set.
+
+2001-09-19  Ben Elliston  <bje@redhat.com>
+
+	* configure.in (sparc-sun-solaris2*): Don't use /usr/bin/which on
+	Solaris when testing for the /usr/ucb/cc compiler; it has incorrect
+	semantics.  Use the shell built-in "type" command instead.
+
+2001-09-15  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
+
+	* config.sub: Reverted the earlier change, this version is not the
+	master file.
+
+2001-09-14  Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
+
+	* config.sub: Change machine triplets from mipsel*-* to mips*el-*.
+	Add support for mips64.
+
+2001-09-03  Jeff Holcomb  <jeffh@redhat.com>
+
+	* configure.in: Enable libstdc++-v3 for h8300 targets.
+
+2001-08-30  Eric Christopher  <echristo@redhat.com>
+	    Jason Eckhardt  <jle@redhat.com>
+
+	* config.sub: Add support for mipsisa32.
+
+2001-08-30  Eric Christopher  <echristo@redhat.com>
+
+	* config.sub, config.guess: Import latest from subversions.
+
+2001-08-20  Alan Modra  <amodra@bigpond.net.au>
+
+	* config.sub, config.guess: Import latest from subversions.
+
+2001-07-26  DJ Delorie  <dj@redhat.com>
+
+	* MAINTAINERS: Clarify libiberty merge rules and procedures.
+
+2001-06-19  Alan Modra  <amodra@bigpond.net.au>
+
+	* Makefile.in: Revert 2001-06-17.
+	(VER): If AM_INIT_AUTOMAKE uses BFD_VERSION, get version from bfd/.
+
+2001-06-17  H.J. Lu <hjl@gnu.org>
+
+	* Makefile.in (gas.tar.bz2): Pass TOOL=bfd PACKAGE=gas to make.
+	(gas+binutils.tar.bz2): Likewise.
+	(binutils.tar.bz2): Pass TOOL=bfd PACKAGE=binutils to make.
+
+Fri Jun  8 11:14:02 2001  Andrew Cagney  <cagney@b1.cygnus.com>
+
+	* Makefile.in (VER): When present, extract the version number from
+	the file version.in.
+
+2001-06-08  Alexandre Oliva  <aoliva@redhat.com>, Jeff Sturm  <jsturm@one-point.com>
+
+	* Makefile.in (AS_FOR_TARGET, LD_FOR_TARGET, NM_FOR_TARGET): If
+	gcc/xgcc is built, use -print-prog-name to find out the program
+	name to use.
+
+2001-06-04  Mark Mitchell  <mark@codesourcery.com>
+
+	* ltcf-c.sh (archive_cmds, archive_expsym_cmds) [solaris,
+	with_gcc]: Use `gcc -shared' to build a shared library.
+
+2001-06-04  John David Anglin  <dave@hiauly1.hia.nrc.ca>
+
+	* ltcf-c.sh (archive_cmd) [hpux, with_gcc]: Use gcc to link shared
+	archives.
+
+2001-05-28  Simon Patarin <simon.patarin@inria.fr>
+
+	* ltcf-cxx.sh (osf3/osf4/osf5): Support creation of C++  shared
+	libraries when using g++ with native linker.
+
+2001-05-28  Alexandre Oliva  <aoliva@redhat.com>
+
+	* ltconfig, ltmain.sh: Upgrade to libtool 1.4a 1.641.2.256.
+
+2001-05-24  Tom Rix <trix@redhat.com>
+
+	* configure.in : enable ld for aix
+
+2001-05-22  Alexandre Oliva  <aoliva@redhat.com>
+
+	* ltcf-cxx.sh (allow_undefined_flag, no_undefined_flag)
+	[aix4*|aix5*]: Prepend blank.
+
+2001-05-20  Alexandre Oliva  <aoliva@redhat.com>
+
+	* ltconfig, ltmain.sh, libtool.m4, ltcf-c.sh, ltcf-cxx.sh,
+	ltcf-gcj.sh: Upgraded to libtool 1.4a 1.641.2.254.  Rebuilt a number
+	of subdir/configure scripts to use the new libtool.m4.
+
+2001-05-14  H.J. Lu <hjl@gnu.org>
+
+	* config.if (libc_interface): Set to -libc6.2- for cross
+	compiling to Linux/glibc 2.2.
+
+2001-05-03  Alexandre Oliva  <aoliva@redhat.com>
+
+	* configure.in (noconfigdirs) [*-cygwin*, *-mingw*, *-beos]: Disable
+	libgcj.
+
+2001-04-26  Alexandre Oliva  <aoliva@redhat.com>
+
+	* configure.in (noconfigdirs): Don't reset it from scratch in the
+	target case; only append to it.
+
+2001-04-26  Alexandre Oliva  <aoliva@redhat.com>
+
+	* configure.in (noconfigdirs) [hppa*-*-*, mips*-*-irix6*,
+	sparc-*-solaris2.8]: Disable ${libgcj}.
+
+2001-04-25  Alexandre Oliva  <aoliva@redhat.com>
+
+	* configure.in (libgcj_saved): Copy from $libgcj.
+	(libgcj): Zero out if --enable-libgcj; add to noconfigdirs is
+	--disable-libgcj.
+
+2001-04-20  Alexandre Oliva  <aoliva@redhat.com>
+
+	* ltconfig, ltmain.sh, ltcf-cxx.sh: Upgraded to libtool 1.4a
+	1.641.2.228.
+
+2001-04-12  Alexandre Oliva  <aoliva@redhat.com>
+
+	* ltconfig, ltmain.sh, libtool.m4, ltcf-c.sh, ltcf-cxx.sh,
+	ltcf-gcj.sh: Upgraded to libtool 1.4a 1.641.2.226.
+
+2001-04-01  Alexandre Oliva  <aoliva@redhat.com>
+
+	* Makefile.in (CXX_FOR_TARGET_FOR_RECURSIVE_MAKE, RECURSE_FLAGS):
+	New macros.
+	(bootstrap, cross): Use RECURSE_FLAGS.
+	* configure.in: Subst CXX_FOR_TARGET_FOR_RECURSIVE_MAKE.
+
+2001-03-27  Alexandre Oliva  <aoliva@redhat.com>
+
+	* configure.in (CXX_FOR_TARGET): Use xgcc for libstdc++-v3.
+
+2001-03-23  Nick Clifton  <nickc@redhat.com>
+
+	* README-maintainer-mode: Add note about inability to use "make
+	distclean" in maintainer mode.
+
+2001-03-22  Alexandre Oliva  <aoliva@redhat.com>
+
+	Re-installed:
+	2001-01-02  Laurynas Biveinis  <lauras@softhome.net>
+	* ltcf-c.sh: Clear ac_cv_prog_cc_pic for DJGPP.  Do not add
+	'-DPIC' to ac_cv_prog_cc_pic for DJGPP.
+	* ltcf-cxx.sh: Likewise.
+	* ltcf-gcj.sh: Likewise.
+
+2001-03-22  Philip Blundell  <philb@gnu.org>
+
+	* config.sub, config.guess: Import latest from subversions.
+
+2001-03-22  Alexandre Oliva  <aoliva@redhat.com>
+
+	* ltconfig, ltmain.sh, libtool.m4, ltcf-c.sh, ltcf-cxx.sh,
+	ltcf-gcj.sh: Upgraded to libtool 1.4a 1.641.2.198.
+
+2001-03-20  Michael Chastain  <chastain@redhat.com>
+
+	* Makefile.in: all-m4 depends on all-texinfo.
+
+2001-03-08  Alexandre Oliva  <aoliva@redhat.com>
+
+	* Makefile.in (ALL_GCC, ALL_GCC_C, ALL_GCC_CXX): Set before use.
+
+2001-02-22  Jeff Johnston <jjohnstn@redhat.com>
+
+	* COPYING.NEWLIB: Remove DJ Delorie's address because it is no
+	longer valid.
+
+2001-02-16  Nick Clifton  <nickc@redhat.com>
+
+	* configure.in (noconfigdirs): Allow configuration of texinfo
+	for Cygwin hosts.
+
+2001-02-09  Martin Schwidefsky  <schwidefsky@de.ibm.com>
+
+	* config.guess: Add linux target for S/390.
+	* config.sub: Likewise.
+	* configure.in: Likewise.
+
+2001-02-06  Ben Elliston  <bje@redhat.com>
+
+	* configure: Output host type to stdout, not stderr.
+
+2001-02-04  Michael Sokolov  <msokolov@ivan.Harhan.ORG>
+
+	* config.guess: Import from subversions.gnu.org (revision 1.181).
+	* config.sub: Import from subversions.gnu.org (revision 1.199).
+
+2001-01-30  Alan Modra  <alan@linuxcare.com.au>
+
+	* config.guess: Handle hppa64-linux systems.
+
+2001-01-27  Michael Sokolov  <msokolov@ivan.Harhan.ORG>
+
+	* ltcf-cxx.sh (ac_cv_prog_cc_pic_works, ac_cv_prog_cc_static_works):
+	Don't unset, it's non-portable and no longer necessary, set to empty
+	instead.
+
+2001-01-27  Michael Sokolov  <msokolov@ivan.Harhan.ORG>,  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
+
+	* ltconfig: Shell portability fix for the tagname validity check.
+
+2001-01-27  Michael Sokolov  <msokolov@ivan.Harhan.ORG>
+
+	* ltcf-cxx.sh: Use parentheses around eval $ac_compile.
+
+2001-01-27  Alexandre Oliva  <aoliva@redhat.com>
+
+	* ltcf-c.sh (ld_shlibs) [aix5*]: Disable on unknown CPU types.
+	* ltcf-cxx.sh, ltcf-gcj.sh: Likewise.
+
+2001-01-24  Alexandre Oliva  <aoliva@redhat.com>
+
+	* ltmain.sh (TAG disable-shared, TAG disable-static): Make sure we
+	keep at least one of build_libtool_libs or build_old_libs set to
+	yes.
+
+2001-01-24  Alexandre Oliva  <aoliva@redhat.com>
+
+	* ltcf-gcj.sh (lt_simple_link_test_code): Remove stray `(0)'.
+	* libtool.m4 (_AC_LIBTOOL_GCJ): Pass $CPPFLAGS on.
+
+2000-11-07  Philip Blundell  <pb@futuretv.com>
+
+	* Makefile.in (ETC_SUPPORT): Also add configbuild.* and configdev.*.
+
+2000-11-03  Philip Blundell  <pb@futuretv.com>
+
+	* Makefile.in (ETC_SUPPORT): Add configure.texi and associated info
+	files.
+
+2001-01-15  Jeff Johnston  <jjohnstn@redhat.com>
+
+	* COPYING.NEWLIB: Put into source repository.
+
+2001-01-15  Ben Elliston  <bje@redhat.com>
+
+	* configure.in (host_tools): Add sid.
+	Always configure cgen.
+	* Makefile.in (all-sid): New target.
+	(check-sid, clean-sid, install-sid): Likewise.
+
+2001-01-07  Andreas Jaeger  <aj@suse.de>
+
+	* config.sub, config.guess: Update from subversions.
+
+2000-12-12  Alexandre Oliva  <aoliva@redhat.com>
+
+	* configure.in: Disable language-specific target libraries for
+	languages that aren't enabled.
+
+2000-11-24  Nick Clifton  <nickc@redhat.com>
+
+	* configure.in (xscale-elf): Add target.
+	(xscale-coff): Add target.
+	(c4x, c5x, tic54x): Move after ARM targets.
+
+2000-11-23  Alexandre Oliva  <aoliva@redhat.com>
+
+	* ltcf-gcj.sh: Added file, required by 2000-11-18 merge.
+
+2000-11-20  Ian Lance Taylor  <ian@zembu.com>
+
+	* ltcf-cxx.sh: Added file, required by 2000-11-18 merge.
+
+2000-11-18  Alexandre Oliva  <aoliva@redhat.com>
+
+	* Makefile.in: Merge with GCC and libgcj.
+	(ALL_GCC_C, ALL_GCC_CXX): New macros.  Use them as dependencies of
+	configure-target-<library> when their configure scripts need the C
+	or C++ library to have already been built to work properly.
+	(do_proto_toplev): Set them to an empty string.
+
+2000-11-18  Alexandre Oliva  <aoliva@redhat.com>
+
+	* Makefile.in (HOST_LIB_PATH, TARGET_LIB_PATH): New macros.
+	(REALLY_SET_LIB_PATH): Use them.
+
+2000-11-06  Christopher Faylor <cgf@cygnus.com>
+
+	* config.sub: Add support for Sun Chorus
+
+2000-11-02  Per Lundberg  <plundis@chaosdev.org>
+
+	* config.sub: Add support for the *-storm-chaos OS.
+
+2000-10-30  Stephane Carrez  <stcarrez@worldnet.fr>
+
+	* configure.in (noconfigdirs): Don't compile some
+	of the libraries for 68HC11 & 68hc12 targets.
+
+2000-09-30  Alexandre Oliva  <aoliva@redhat.com>
+
+	* ltconfig, ltmain.sh, libtool.m4: Updated from libtool
+	multi-language branch, to work around Solaris' /bin/sh bug.  Rebuilt
+	all affected `configure' scripts.
+
+2000-09-25  Alexandre Oliva  <aoliva@redhat.com>
+
+	* Makefile.in (DEVO_SUPPORT): Added gettext.m4, libtool.m4 and
+	ltcf-c.sh.
+
+2000-09-12  Philip Blundell  <philb@gnu.org>
+
+	* config.sub, config.guess: Update from subversions.
+
+2000-09-06  Alexandre Oliva  <aoliva@redhat.com>
+
+	* Makefile.in (all-zlib): Added dummy target.
+
+	* ltconfig, ltmain.sh, libtool.m4, ltcf-c.sh: Updated from libtool
+	multi-language branch.
+
+2000-09-05  Alexandre Oliva  <aoliva@redhat.com>
+
+	* Makefile.in (all-bootstrap): Added all-texinfo and all-zlib.
+	(bootstrap*): Depend on all-bootstrap.
+
+2000-09-02  Alexandre Oliva  <aoliva@redhat.com>, DJ Delorie  <dj@redhat.com>
+
+	* configure.in (FLAGS_FOR_TARGET): Use -nostdinc even for Canadian
+	crosses, but add gcc/include to the header search path for them.
+
+2000-08-31  Alexandre Oliva  <aoliva@redhat.com>
+
+	* ltconfig, ltmain.sh: Updated from libtool multi-language branch.
+	* libtool.m4, ltcf-c.sh: Copied from libtool multi-language branch.
+	* gettext.m4: New file, extracted from aclocal.m4.
+
+2000-08-22  Alexandre Oliva  <aoliva@redhat.com>
+
+	* config-ml.in (CC, CXX): Avoid trailing whitespace.
+	(LD_LIBRARY_PATH, SHLIB_PATH): Adjust for multilibs and export to
+	sub-configures.
+
+2000-08-20  Doug Evans  <dje@casey.transmeta.com>
+
+	* Makefile.in (ALL_MODULES): Add all-cgen.
+	(CROSS_CHECK_MODULES,INSTALL_MODULES,CLEAN_MODULES): Similarily.
+	(all-cgen): New target.
+	(all-opcodes,all-sim): Depend on all-cgen.
+	* configure.in (host_tools): Add cgen.
+	Only configure cgen if --enable-cgen-maint.
+
+2000-08-17  Alexandre Oliva  <aoliva@redhat.com>
+
+	* config-ml.in (CC, CXX): Don't introduce a leading space.
+
+2000-08-16  Alexandre Oliva  <aoliva@redhat.com>
+
+	* configure.in (libstdcxx_flags): Use
+	libstdc++-v3/src/libstdc++.INC.
+
+2000-08-15  Alexandre Oliva  <aoliva@redhat.com>
+
+	* configure.in (libstdcxx_flags): Use libstdc++-v3/src/INCLUDES.
+
+2000-08-11  Jason Merrill  <jason@redhat.com>
+
+	* configure.in (CC_FOR_TARGET, CHILL_FOR_TARGET,
+	CXX_FOR_TARGET): Add -B$$r/gcc/ here.
+	(FLAGS_FOR_TARGET): Not here.
+	(CHILL_FOR_TARGET, CXX_FOR_TARGET): Don't check the list of languages.
+
+2000-08-07  DJ Delorie  <dj@redhat.com>
+
+	* configure.in (FLAGS_FOR_TARGET): invert test for xgcc, should mean
+	"if we're also building gcc, and it's a gcc that will run on the
+	build machine, we want to use its includes instead of the system's
+	default includes".
+
+2000-08-03  Alexandre Oliva  <aoliva@redhat.com>
+
+	* configure.in (libstdcxx_flags): Don't use `"'.
+
+	* config-ml.in: Adjust multilib search paths to the
+	appropriate multilib tree.
+
+2000-08-02  Alexandre Oliva  <aoliva@redhat.com>
+
+	* configure.in (CHILL_FOR_TARGET, CXX_FOR_TARGET): Convert blanks to
+	commas in $LANGUAGES.
+
+2000-08-01  Alexandre Oliva  <aoliva@redhat.com>
+
+	* configure.in (qCXX_FOR_TARGET): Use echo instead of expr.
+
+2000-07-31  Alexandre Oliva  <aoliva@redhat.com>
+
+	* configure.in (qCXX_FOR_TARGET): Quote `&' characters in
+	CXX_FOR_TARGET for sed.
+
+2000-07-30  Alexandre Oliva  <aoliva@redhat.com>
+
+	* configure.in (CC_FOR_TARGET, CHILL_FOR_TARGET, CXX_FOR_TARGET):
+	Do not override if already set in the environment or in configure.
+	Don't duplicate $(FLAGS_FOR_TARGET) if it already appears in them.
+	(FLAGS_FOR_TARGET): Don't use host directories on Canadian crosses.
+
+2000-07-27  Alexandre Oliva  <aoliva@redhat.com>
+
+	* Makefile.in (FLAGS_FOR_TARGET): New macro.
+	(GCC_FOR_TARGET): Use it.
+	(CC_FOR_TARGET, CXX_FOR_TARGET, CHILL_FOR_TARGET): Now defined...
+	* configure.in: ... here.
+	(FLAGS_FOR_TARGET): Define.  Add ld build dir to -L path.
+	(libstdcxx_flags): Define and append to CXX_FOR_TARGET.
+
+2000-07-24  Alexandre Oliva  <aoliva@redhat.com>
+
+	* Makefile.in (configure-target-libf2c): Depend on $(ALL_GCC).
+	(configure-target-libchill, configure-target-libobjc): Likewise.
+
+	* configure.in: Use the same cache file for all target libs.
+	* config-ml.in: But different cache files per multilib variant.
+
+2000-07-23  Michael Sokolov  <msokolov@ivan.Harhan.ORG>
+
+	* configure (topsrcdir): Don't use dirname.
+
+2000-07-20  Jason Merrill  <jason@redhat.com>
+
+	* configure.in: Remove all references to libg++ and librx.
+
+	* configure, configure.in, Makefile.in: Unify gcc and binutils.
+
+2000-07-20  Hans-Peter Nilsson  <hp@axis.com>
+
+	* config.sub: Update to subversions version 2000-07-06.
+
+2000-07-12  Andrew Haley  <aph@cygnus.com>
+
+	* configure.in (host_makefile_frag): Use mh-ia64pic on IA-64 hosts.
+	(target_makefile_frag): Use mt-ia64pic on IA-64 targets.
+
+2000-07-07  Phil Edwards  <pme@sourceware.cygnus.com>
+
+	* symlink-tree:  Check number of arguments.
+
+2000-06-06  Andrew Cagney  <cagney@b1.cygnus.com>
+
+	* texinfo/texinfo.tex: Update to version 2000-05-28.15.
+
+2000-07-05  Jim Wilson  <wilson@cygnus.com>
+
+	* Makefile.in (CXX_FOR_TARGET): Add libstdc++ to the library
+	search path for a g++ extracted from the build tree.  This
+	will allow link tests run by configure scripts in
+	subdirectories to succeed.
+
+2000-07-01  Koundinya K  <kk@ddeorg.soft.net>
+
+	* ltconfig: Add support for mips-dde-sysv4.2MP
+
+2000-06-28  Corinna Vinschen  <vinschen@cygnus.com>
+
+	* ltconfig: Check for host_os beeing one of `cygwin', `mingw' or
+	`os2'. Force ac_cv_exeext to be ".exe" in that case.
+
+2000-06-19  Timothy Wall  <twall@cygnus.com>
+
+	* configure.in (noconfigdirs): Set noconfigdirs for tic54x target.
+	* config.sub: Add tic54x target.
+
+2000-06-07  Phillip Thomas  <pthomas@suse.de>
+
+	* README-maintainer-mode: New file: Contains notes on using
+	--enable-maintainer-mode with binutils.
+
+2000-05-29  Andrew Cagney  <cagney@b1.cygnus.com>
+
+	* texinfo/texinfo.tex: Update. Version from makeinfo 4.0.
+
+2000-05-30  Andrew Cagney  <cagney@b1.cygnus.com>
+
+	* config.sub: Import CVS version 1.167 Tue May 30 09:00:07 2000.
+	* config.guess: Import CVS version 1.148 Tue May 30 09:00:06 2000
+
+20000-05-21  H.J. Lu  (hjl@gnu.org)
+
+	* Makefile.in (CC_FOR_TARGET): Make sure as/ld in the gcc
+	directory are used if they exist. Make sure
+	$(build_tooldir)/include is searched for header files,
+	$(build_tooldir)/lib/ for library files.
+	(GCC_FOR_TARGET): Likewise.
+	(CXX_FOR_TARGET): Likewise.
+
+2000-05-18  Jeffrey A Law  (law@cygnus.com)
+
+	* configure.in (hppa*64*-*-*): Do build ld for this configuration.
+
+2000-05-17  Alexandre Oliva  <aoliva@cygnus.com>
+
+	* Makefile.in (configure-target-libiberty): Depend on
+	configure-target-newlib.
+
+2000-05-16  Alexandre Oliva  <aoliva@cygnus.com>
+
+	* configure.in, Makefile.in: Merge all libffi-related
+	configury stuff from the libgcj tree.
+
+2000-05-16  Andrew Cagney  <cagney@b1.cygnus.com>
+
+	Thu Apr 27 11:01:48 2000 Andrew Cagney <cagney@b1.cygnus.com>:
+	* Makefile.in (do-tar-bz2, do-md5sum): Skip CVS directories.
+
+2000-05-16  Andrew Cagney  <cagney@b1.cygnus.com>
+
+	Wed Apr 26 17:03:53 2000 Andrew Cagney <cagney@b1.cygnus.com>:
+	* Makefile.in (do-djunpack): New target. Update djunpack.bat with
+	current version information.  Add to proto-toplev directory.
+	(gdb-taz): Build do-djunpack.
+
+2000-05-15  David Edelsohn  <edelsohn@gnu.org>
+
+	* configure.in: Special case powerpc*-*-aix* target_makefile_frag.
+
+2000-05-13 Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
+
+	* ltmain.sh: Preserve in relink_command any environment
+	variables that may affect the linker behavior.
+
+2000-05-12  Jeffrey A Law  (law@cygnus.com)
+
+	* config.sub (basic_machine): Recognize hppa64 as a valid cpu type.
+
+2000-05-10  Jim Wilson  <wilson@cygnus.com>
+
+	* configure.in (ia64*-*-elf*): Add gdb and friends to noconfigdirs.
+
+2000-05-08  Eli Zaretskii  <eliz@is.elta.co.il>
+
+	* djunpack.bat: Change the Sed script to replace @V@ in fnchange.lst
+	with the version name.
+
+2000-05-01  Benjamin Kosnik  <bkoz@cygnus.com>
+
+	* config.if: Tweak.
+
+2000-04-23  Eli Zaretskii  <eliz@is.elta.co.il>
+
+	* djunpack.bat: New file.
+
+2000-04-19  Andrew Cagney  <cagney@b1.cygnus.com>
+
+	* Makefile.in (taz, gdb-taz, gas.tar.bz2, binutils.tar.bz2,
+	gas+binutils.tar.bz2, libg++.tar.bz2, gnats.tar.bz2, gdb.tar.bz2,
+	dejagnu.tar.bz2, gdb+dejagnu.tar.bz2, insight.tar.bz2,
+	insight+dejagnu.tar.bz2, newlib.tar.bz2): Pass MD5PROG to sub-make.
+
+2000-04-16  Dave Pitts  <dpitts@cozx.com>
+
+	* config.sub (case $basic_machine): Change default for "ibm-*"
+	to "openedition".
+
+2000-04-12  Andrew Cagney  <cagney@b1.cygnus.com>
+
+	* Makefile.in (gdb-taz): New target.  GDB specific archive.
+	(do-md5sum): New target.
+	(MD5PROG): Define.
+	(PACKAGE): Default to TOOL.
+	(VER): Default to a shell script.
+	(taz): Rewrite target.  Move real work to do-proto-toplev.  Include
+	md5 checksum generation.
+	(do-proto-toplev): New target. Create $(PACKAGE)-$(VER) link.
+	(do-tar-bz2): Delete creation of $(PACKAGE)-$(VER) link.
+	(gdb.tar.bz2, dejagnu.tar.bz2, gdb+dejagnu.tar.bz2,
+	insight.tar.bz2): Use gdb-taz to create archive.
+
+2000-04-07  Andrew Cagney  <cagney@b1.cygnus.com>
+
+	* configure (warn_cflags): Delete.
+
+2000-04-05  Benjamin Kosnik  <bkoz@cygnus.com>
+	    Martin v. Loewis  <martin@loewis.home.cs.tu-berlin.de>
+
+	* configure.in (enable_libstdcxx_v3): Add.
+	(target_libs): Add bits here to switch between libstdc++-v2 and
+	libstdc++-v3.
+	* config.if: And this file too.
+	* Makefile.in: Add libstdc++-v3 targets.
+
+2000-04-05  Michael Meissner  <meissner@redhat.com>
+
+	* config.sub (d30v): Add d30v as a basic machine type.
+
+2000-03-29  Jason Merrill  <jason@casey.cygnus.com>
+
+	* configure.in: -linux-gnu*, not -linux-gnu.
+
+2000-03-03  Andrew Cagney  <cagney@b1.cygnus.com>
+
+	* Makefile.in (taz): Set PACKAGE to TOOL when not defined.
+	(do-tar-bz2): Replace TOOL with PACKAGE.
+	(gdb.tar.bz2): Remove GDBTK from GDB package.
+	(gdb+dejagnu.tar.bz2, insight.tar.bz2, insight+dejagnu.tar.bz2,
+	dejagnu.tar.bz2): New packages.
+
+2000-02-27  Andreas Jaeger  <aj@suse.de>
+
+	* configure.in: Add entry for mips*-*-linux*, move catch all
+	*-*-*linux* entry below this one.
+
+2000-02-27  Ian Lance Taylor  <ian@zembu.com>
+
+	* ltconfig, ltmain.sh: Update to libtool 1.3.4.
+
+2000-02-24  Nick Clifton  <nickc@cygnus.com>
+
+	* config.sub: Support an OS of "wince".
+
+2000-02-24  Andrew Cagney  <cagney@b1.cygnus.com>
+
+	* config.guess, config.sub: Updated to match config's 2000-02-15
+	version.
+
+2000-02-23  Linas Vepstas <linas@linas.org>
+
+	* config.sub: Add support for Linux/IBM 370.
+	* configure.in: Likewise.
+
+2000-02-22  Nick Clifton  <nickc@cygnus.com>
+
+	* configure.in: Add mips-pe, sh-pe and arm-wince-pe targets.
+
+2000-02-20  Christopher Faylor <cgf@cygnus.com>
+
+	* config.guess: Guess "cygwin" rather than "cygwin32".
+
+2000-02-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+
+	* configure (gcc_version): When setting, narrow search to
+	lines containing `version_string'.
+
+2000-02-15  Denis Chertykov  <denisc@overta.ru>
+
+	* config.sub: Add support for avr target.
+
+2000-02-01  Hans-Peter Nilsson  <hp@bitrange.com>
+
+	* config.sub: Add mmix-knuth-mmixware.
+
+2000-01-27  Christopher Faylor <cgf@redhat.com>
+
+	* Makefile.in (CC_FOR_TARGET): Add new winsup directory
+	structure stuff to -L library search.
+	(CXX_FOR_TARGET): Ditto.
+	(CROSS_CHECK_MODULES): Fix spelling mistake.
+
+2000-01-24  Mark Mitchell  <mark@codesourcery.com>
+
+	* Makefile.in (CXX_FOR_TARGET): Use g++, not xgcc, to invoke
+	the C++ compiler.
+
+2000-01-12  Richard Henderson  <rth@cygnus.com>
+
+	* configure.in: Don't build some bits for beos.
+
+2000-01-12  Joel Sherrill (joel@OARcorp.com)
+
+	* Makefile.in (CC_FOR_TARGET): Use newlib libraries as well
+	as include files.
+
+2000-01-06  Geoff Keating  <geoffk@cygnus.com>
+
+	* configure.in: Use mt-aix43 to handle *_TARGET defs,
+	not mh-aix43.
+
+1999-12-14  Richard Henderson  <rth@cygnus.com>
+
+	* config.guess (alpha-osf, alpha-linux): Detect ev67.
+	* config.sub: Accept alphaev[78], alphaev8.
+
+1999-12-03  Alexandre Oliva  <oliva@lsd.ic.unicamp.br>
+
+	* config.guess, config.sub: Update from autoconf.
+
+Tue Nov 23 00:57:41 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
+
+	* config-ml.in (sparc*-*-*): Disable sparcv9 support if the
+	necessary libraries are missing.
+
+1999-10-25  Andreas Schwab  <schwab@suse.de>
+
+	* configure: Fix quoting inside arguments of eval.
+
+1999-10-21  Nick Clifton  <nickc@cygnus.com>
+
+	* config-ml.in: Allow suppression of some ARM multilibs.
+
+Tue Sep  7 23:33:57 1999  Linas Vepstas  <linas@linas.org>
+
+	* config.guess: Add OS/390 match pattern.
+	* config.sub: Add mvs, openedition targets.
+	* configure.in (i370-ibm-opened*): New.
+
+1999-09-04  Steve Chamberlain  <sac@pobox.com>
+
+	* config.sub: Add support for configuring for pj.
+
+1999-08-31  Nick Clifton  <nickc@cygnus.com>
+
+	* config.sub (maybe_os): Add support for configuring for fr30.
+
+1999-08-25  Nick Clifton  <nickc@cygnus.com>
+
+	* configure.in: Do not configure or build ld for AIX
+	platforms.  ld is known to be broken on these platforms.
+
+Wed Aug 25 01:12:25 1999  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
+
+	* config-ml.in: Pass compiler flag corresponding to multidirs to
+	subdir configures.
+
+1999-08-09  Ian Lance Taylor  <ian@zembu.com>
+
+	* Makefile.in (LDFLAGS): Define.
+
+1999-08-08  Mumit Khan  <khan@xraylith.wisc.edu>
+
+	* configure.in (i[3456]-*-mingw32*): Don't put gprof in
+	noconfigdirs.
+	(*-*-cygwin*): Likewise.
+
+1999-08-08  Ian Lance Taylor  <ian@zembu.com>
+
+	* mkdep: New file.
+	* Makefile.in (GAS_SUPPORT_DIRS): Add mkdep.
+	(BINUTILS_SUPPORT_DIRS): Add mkdep.
+
+	From Eli Zaretskii <eliz@is.elta.co.il>:
+	* configure (tmpfile): Change cONf$$ to cNf$$ to avoid an overly
+	long file name when using DJGPP on MS-DOS.
+
+Wed Aug  4 02:07:14 1999  Jeffrey A Law  (law@cygnus.com)
+
+	* config.sub (vxworks case): Use os=-vxworks, not os=vxworks.
+
+1999-07-30  Alan Modra  <alan@spri.levels.unisa.edu.au>
+
+	* Makefile.in (check-target-libio): Remove all-target-libstdc++
+	dependency as this causes "make check" to globally "make all"
+
+Tue Jun 22 23:45:18 1999  Tom Tromey  <tromey@cygnus.com>
+
+	* configure.in (target_libs): Added target-zlib.
+	* Makefile.in (ALL_TARGET_MODULES): Added zlib.
+	(CONFIGURE_TARGET_MODULES): Likewise.
+	(CHECK_TARGET_MODULES): Likewise.
+	(INSTALL_TARGET_MODULES): Likewise.
+	(CLEAN_TARGET_MODULES): Likewise.
+	(configure-target-zlib): New target.
+	(all-target-zlib): Likewise.
+	(all-target-libjava): Depend on all-target-zlib.
+	(configure-target-libjava): Depend on configure-target-zlib.
+
+	* Makefile.in (configure-target-libjava): Depend on
+	configure-target-newlib.
+	(configure-target-boehm-gc): New target.
+	(configure-target-qthreads): New target.
+
+	* configure.in (target_libs): Added target-qthreads.
+	* Makefile.in (ALL_TARGET_MODULES): Added qthreads.
+	(CONFIGURE_TARGET_MODULES): Likewise.
+	(CHECK_TARGET_MODULES): Likewise.
+	(INSTALL_TARGET_MODULES): Likewise.
+	(CLEAN_TARGET_MODULES): Likewise.
+	(all-target-qthreads): New target.
+	(configure-target-libjava): Depend on configure-target-qthreads.
+	(all-target-libjava): Depend on all-target-qthreads.
+
+	* Makefile.in (ALL_TARGET_MODULES): Added libjava, boehm-gc.
+	(CONFIGURE_TARGET_MODULES): Likewise.
+	(CHECK_TARGET_MODULES): Likewise.
+	(INSTALL_TARGET_MODULES): Likewise.
+	(CLEAN_TARGET_MODULES): Likewise.
+	(all-target-libjava): New target.
+	(all-target-boehm-gc): Likewise.
+	* configure.in (target_libs): Added libjava, boehm-gc.
+
+1999-07-22  Ian Lance Taylor  <ian@zembu.com>
+
+	* Makefile.in (binutils.tar.bz2): Don't pass makeall.bat and
+	configure.bat in SUPPORT_FILES.
+	(gas+binutils.tar.bz2): Likewise.
+
+	* makeall.bat: Remove; obsolete.
+
+1999-07-21  Ian Lance Taylor  <ian@zembu.com>
+
+	From Mark Elbrecht:
+	* configure.bat: Remove; obsolete.
+
+1999-07-11  Ian Lance Taylor  <ian@zembu.com>
+
+	* configure: Add -W -Wall to the default CFLAGS when compiling with
+	gcc.
+
+Thu Jul  8 12:32:23 1999  John David Anglin <dave@hiauly1.hia.nrc.ca>
+
+	* configure.in: Build ld, binutils & gas for hppa*-*-linux-gnu*.
+
+1999-06-30  Mark Mitchell  <mark@codesourcery.com>
+
+	* configure.in: Build ld on IRIX6.
+
+1999-06-12  Ian Lance Taylor  <ian@zembu.com>
+
+	* Makefile.in: Change distribution targets to use bzip2 instead of
+	gzip.
+	(TEXINFO_SUPPORT): Set to just texinfo/texinfo.tex.
+	(taz): Don't use texinfo/gpl.texinfo or texinfo/lgpl.texinfo.
+
+1999-06-04  Nick Clifton  <nickc@cygnus.com>
+
+	* config.sub: Add mcore target.
+
+1999-05-30  Cort Dougan  <cort@cs.nmt.edu>
+
+	* config.guess (ppc-*-linux-gnu): Also use ld emul elf32ppclinux.
+
+1999-05-25  H.J. Lu  (hjl@gnu.org)
+
+	* config.guess (dummy): Changed to $dummy.
+
+1999-05-24  Nick Clifton  <nickc@cygnus.com>
+
+	* config.sub: Tidied up case statements.
+
+1999-05-22  Ben Elliston  <bje@cygnus.com>
+
+	* config.guess: Handle NEC UX/4800. Contributed by Jiro Takabatake
+	<jiro@din.or.jp>.
+
+	* config.guess: Merge with FSF version. Future changes will be
+	more accurately recorded in this ChangeLog.
+	* config.sub: Likewise.
+
+1999-05-20   Stephen L Moshier  <moshier@world.std.com>
+
+	 * Makefile.in (GCC_FOR_TARGET): Add -I$(build_tooldir)/include.
+
+1999-04-30  Tom Tromey  <tromey@cygnus.com>
+
+	* ltmain.sh: [mode link] Always use CC given by ltconfig.
+
+1999-04-23  Tom Tromey  <tromey@cygnus.com>
+
+	* ltconfig, ltmain.sh: Update to libtool 1.2f.
+
+1999-04-20  Drew Moseley  <dmoseley@cygnus.com>
+
+	* configure.in (noconfigdirs): Don't build libstub for arm-elf targets.
+	(noconfigdirs): Don't build any bsp stuff for for arm-oabi targets.
+	Bad merge removed these two changes.
+
+Tue Apr 13 22:50:54 1999  Donn Terry (donn@interix.com)
+			  Martin Heller (Ing.-Buero_Heller@t-online.de)
+
+	* config.guess (interix Alpha): Add.
+
+1999-04-11  Richard Henderson  <rth@cygnus.com>
+
+	* configure.in (i?86-*-beos*): Do config gperf; don't config
+	gdb, newlib, or libgloss.
+
+1999-04-11  Alexandre Oliva  <oliva@dcc.unicamp.br>
+
+	* config-ml.in: On mips*-*-*, if multidirs contains mabi=64, try to
+	link a trivial program with -mabi=64.  If it fails, remove mabi=64
+	from multidirs.
+
+1999-04-10  Philipp Thomas  (kthomas@gwdg.de)
+
+	* config.sub: Set basic_machine to i586 when target_alias = k6-*.
+
+1999-04-08  Nick Clifton  <nickc@cygnus.com>
+
+	* config.sub: Add support for mcore targets.
+
+1999-04-07  Michael Meissner  <meissner@cygnus.com>
+
+	* configure.in (d30v-*): Use config/mt-d30v as makefile fragment,
+	not mt-ospace, in order to shut up assembler warning about using
+	symbols that are named the same as registers.
+
+1999-04-07  Drew Moseley  <dmoseley@cygnus.com>
+
+	* Makefile.in (all-target-cygmon): Added all-target-bsp to the
+	dependency list for all-target-cygmon.
+
+1999-04-05  Doug Evans  <devans@casey.cygnus.com>
+
+	* config-ml.in: Check $host, not $target, for selective multilibs.
+	(arm-*-*): Allow disabling of biendian, h/w fp, 26 bit apcs,
+	thumb interworking, and underscore prefix multilibs.
+
+1999-04-04  Ian Lance Taylor  <ian@zembu.com>
+
+	* missing: Update to version from current automake.
+
+Fri Apr  2 15:11:32 1999  H.J. Lu  (hjl@gnu.org)
+
+	* configure (gxx_include_dir): Removed.
+
+	* configure.in (gxx_include_dir): Handle it.
+	* Makefile.in: Likewise.
+
+1999-03-29  Gavin Romig-Koch  <gavin@cygnus.com>
+
+	* config.sub (mips64vr4111,mips64vr4111el) Add.
+
+1999-03-21  Ben Elliston  <bje@cygnus.com>
+
+	* config.guess: Correct typo for detecting ELF on FreeBSD.
+
+Thu Mar 18 00:17:50 1999  Mark Elbrecht <snowball3@usa.net>
+
+	* configure.in (pc-msdosdjgpp): Set host_makefile_frag to
+	config/mh-djgpp.
+
+Thu Mar 11 18:37:23 1999  Drew Moseley  <dmoseley@cygnus.com>
+
+	* Makefile.in (all-target-bsp): Added all-gcc all-binutils and
+	all-target-newlib to dependency list for all-target-bsp.
+
+Thu Mar 11 01:19:31 1999  Mumit Khan  <khan@xraylith.wisc.edu>
+
+	* config.sub: Add i386-uwin support.
+	* config.guess: Likewise.
+
+Thu Mar 11 01:07:55 1999  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
+
+	* configure.in: cleanup, add mh-*pic handling for arm, special
+	case powerpc*-*-aix*
+
+Wed Mar 10 18:35:07 1999  Jeff Johnston  <jjohnstn@cygnus.com>
+
+	* configure.in (noconfigdirs): Removed target-libgloss so libnosys.a
+	can be built.
+
+Wed Mar 10 17:39:09 1999  Drew Moseley  <dmoseley@cygnus.com>
+
+	* configure.in: Added bsp support to arm-*-coff and arm-*-elf
+	targets.
+
+1999-03-02  Nick Clifton  <nickc@cygnus.com>
+
+	* config.sub: Rename CYGNUS LOCAL to EGCS LOCAL
+
+1999-02-28  Geoffrey Noer  <noer@cygnus.com>
+
+	* config.sub: Check for "cygwin*" rather than "cygwin32*"
+
+1999-02-24  Nick Clifton  <nickc@cygnus.com>
+
+	* config.sub: Fix typo in arm recognition.
+
+1999-02-24  Drew Moseley  <dmoseley@cygnus.com>
+
+	* configure.in (noconfigdirs): Changed target_configdirs to
+	include target-bsp only for m68k-*-elf* and m68k-*-coff*
+	rather than m68k-*-* since it is not known to work on
+	m68k-aout. Ditto for arm-*-*oabi.
+
+1999-02-24  Stan Shebs  <shebs@andros.cygnus.com>
+
+	* configure.in (*-*-windows*): Remove, no longer used.
+
+1999-02-19  Ben Elliston <bje@cygnus.com>
+
+	* config.guess: Automatically recognise ELF on FreeBSD. From Niall
+	Smart and improved by Andrew Cagney.
+
+1999-02-18  Marc Espie <espie@cvs.openbsd.org>
+
+	* config.guess: Recognize openbsd-*-hppa.
+
+1999-02-17  H.J. Lu  (hjl@gnu.org)
+
+	* Makefile.in (REALLY_SET_LIB_PATH): Append $$$(RPATH_ENVVAR)
+	only if it is not empty.
+
+1999-02-17  Nick Clifton  <nickc@cygnus.com>
+
+	Patch from: Scott Bambrough <scottb@corelcomputer.com>
+
+	* config.guess: Modified to recognize uname's armv* syntax.
+
+	* config.sub: Modified to recognize uname's armv* syntax.
+
+1999-02-17  Mark Salter  <msalter@cygnus.com>
+
+	* configure.in: Added target-bsp for sparclite.
+
+1999-02-08  Richard Henderson  <rth@cygnus.com>
+
+	* config.sub: Recognize alphapca5[67] and up to alphaev8.
+
+1999-02-08  Nick Clifton  <nickc@cygnus.com>
+
+	* configure.in: Add support for strongarm port.
+	* config.sub: Add support for strongarm target.
+
+1999-02-07  Mumit Khan  <khan@xraylith.wisc.edu>
+
+	* configure.in (*-*-cygwin32*): Use config/mh-cygwin instead of
+	the old name config/mh-cygwin32.
+	Enable texinfo.
+
+1999-02-04  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure.in: Do build ld for ix86 Solaris.
+
+1999-02-02  Jim Wilson  <wilson@cygnus.com>
+
+	* Makefile.in (EXTRA_GCC_FLAGS):  Set AR to $AR instead of
+	$AR_FOR_TARGET.  Likewise for RANLIB.
+
+1999-02-02  Catherine Moore  <clm@cygnus.com>
+
+	* config.sub (oabi):  Recognize.
+	* configure.in (arm-*-oabi):  Handle.
+
+1999-01-30  Robert Lipe  (robertlipe@usa.net)
+
+	* config.guess: Improve detection of i686 on UnixWare 7.
+
+1999-01-30  Mumit Khan  <khan@xraylith.wisc.edu>
+
+	* config.guess: Add support for i386-pc-interix.
+	* config.sub: Likewise.
+	* configure.in: Likewise.
+
+1999-01-18  Christopher Faylor <cgf@cygnus.com>
+
+	* Makefile.in: Remove unneeded all-target-libio from
+	from all-target-winsup target since it is now unneeded.
+	Add all-target-libtermcap in its place since it is now
+	needed.
+
+1998-12-30  Christopher Faylor <cgf@cygnus.com>
+
+	* configure.in: makefile stub for cygwin target is probably
+	unnecessary.  Remove it for now.
+
+1998-12-30  Christopher Faylor <cgf@cygnus.com>
+
+	* configure.in: libtermcap.a should be built when cygwin is the
+	target as well as the host.
+	* config.guess: Allow mixed case in cygwin uname output.
+	* Makefile.in: Add libtermcap target.
+
+1998-12-23  Jeffrey A Law  (law@cygnus.com)
+
+	* config.sub: Clean up handling of hppa2.0.
+
+1998-12-22  Rodney Brown  (rodneybrown@pmsc.com)
+
+	* config.guess: Use C code to identify more HP machines.
+
+Thu Dec 17 01:22:30 1998  Jeffrey A Law  (law@cygnus.com)
+
+	* config.sub: Handle hppa2.0.
+
+Tue Dec 15 17:02:58 1998  Bob Manson  <manson@charmed.cygnus.com>
+
+	* configure.in: Add cygmon for x86-coff and x86-elf. Configure
+	cygmon for all sparclite targets, regardless of object format.
+
+1998-12-15  Mark Salter  <msalter@cygnus.com>
+
+	* configure.in: Added target-bsp for several target architectures.
+
+	* Makefile.in: Added rules for bsp.
+
+Fri Dec  4 01:34:02 1998  Jeffrey A Law  (law@cygnus.com)
+
+	* config.guess: Improve detection of hppa2.0 processors.
+
+Fri Dec  4 01:33:05 1998  Niall Smart <nialls@euristix.ie>
+
+	* config.guess: Recognize FreeBSD using ELF automatically.
+
+1998-11-26  Manfred Hollstein  <manfred@s-direktnet.de>
+
+	* configure (skip-this-dir): Add handling for new shell script, which
+	might be created by a sub-directory's configure to indicate, this particular
+	directory is "unwanted".
+	* Makefile.in ($(CONFIGURE_TARGET_MODULES)): Likewise.
+
+Wed Nov 18 18:28:45 1998  Geoffrey Noer  <noer@cygnus.com>
+
+	* ltconfig: import from libtool, after changing libtool to
+	account for the cygwin name change.
+
+Wed Nov 18 18:09:14 1998  Geoffrey Noer  <noer@cygnus.com>
+
+	* Makefile.in: CC_FOR_TARGET and CXX_FOR_TARGET should also
+	include newlib/libc/sys/cygwin and newlib/libc/sys/cygwin32.
+
+Wed Nov 18 20:13:29 1998  Christopher Faylor <cgf@cygnus.com>
+
+	* configure.in: Add libtermcap to list of cygwin dependencies.
+
+1998-11-17  Geoffrey Noer  <noer@cygnus.com>
+
+	* Makefile.in: modify CC_FOR_TARGET and CXX_FOR_TARGET so that
+	they include winsup/include when it's a cygwin target.
+
+1998-11-12  Tom Tromey  <tromey@cygnus.com>
+
+	* configure.in (host_tools): Added zip.
+	* Makefile.in (all-target-libjava): Depend on all-zip.
+	(all-zip): New target.
+	(ALL_MODULES): Added all-zip.
+	(NATIVE_CHECK_MODULES): Added check-zip.
+	(INSTALL_MODULES): Added install-zip.
+	(CLEAN_MODULES): Added clean-zip.
+
+1998-11-12  Geoffrey Noer  <noer@cygnus.com>
+
+	* Makefile.in: lose "32" from comment about cygwin.
+
+1998-11-05  Nick Clifton  <nickc@cygnus.com>
+
+	* configure.in: Use -Os to build target libraries for the fr30.
+
+1998-11-04  Dave Brolley  <brolley@cygnus.com>
+
+	* config.sub: Add fr30.
+
+1998-11-02  Geoffrey Noer  <noer@cygnus.com>
+
+	* configure.in: drop "32" from config/mh-cygwin32.  Check
+	cygwin* instead of cygwin32*.
+	* config.sub: Check cygwin* instead of cygwin32*.
+
+1998-10-22  Robert Lipe  <robertl@dgii.com>
+
+	* config.guess: Match any version of Unixware7.
+
+1998-10-20  Syd Polk  <spolk@cygnus.com>
+
+	* Makefile.in configure.in: Add the ability to use tcl8.1 and tk8.1
+	if desired.
+
+1998-10-18  Jeffrey A Law  (law@cygnus.com)
+
+	* config.if (cxx_interface, libstdcxx_interface): Do not try to set
+	these if the appropriate directories and files to not exist.
+
+1998-10-14  Jeffrey A Law  (law@cygnus.com)
+
+	* Makefile.in (DEVO_SUPPORT): Add config.if.
+
+1998-10-13  Manfred Hollstein  <manfred@s-direktnet.de>
+
+	* configure: Add pattern to replace "build_tooldir"'s
+	definition in the generated Makefile with "tooldir"'s
+	actual value.
+
+Tue Oct 13 09:17:06 1998  Jeffrey A Law  (law@cygnus.com)
+
+	* config.sub: Bring back lost sparcv9.
+
+	* Makefile.in (all-snvavigator): Remove all-flexlm dependency.
+
+Mon Oct 12 12:09:44 1998  Jeffrey A Law  (law@cygnus.com)
+
+	* Makefile.in (CHILL_FOR_TARGET): Mirror recent changes to
+	CC_FOR_TARGET and friends.
+
+Mon Oct 12 12:09:30 1998  Alexandre Oliva  <oliva@dcc.unicamp.br>
+
+	* Makefile.in (build_tooldir): New variable, same as tooldir.
+	(CC_FOR_TARGET, GCC_FOR_TARGET, CXX_FOR_TARGET): Add
+	-B$(build_tooldir)/bin/.
+	(BASE_FLAGS_TO_PASS): Pass build_tooldir down.
+
+Wed Sep 30 22:20:50 1998  Robert Lipe  <robertl@dgii.com>
+
+	* config.sub: Add support for i[34567]86-pc-udk.
+	* configure.in: Likewise.
+
+Wed Sep 30 19:23:48 1998  Geoffrey Noer  <noer@cygnus.com>
+
+	* Makefile.in: add bzip2 package building bits for user
+	tools module
+	* configure.in: ditto
+
+Wed Sep 30 03:00:05 1998  Jeffrey A Law  (law@cygnus.com)
+
+	* Makefile.in (TARGET_CONFIGDIRS): Add libobjc.
+	(ALL_TARGET_MODULES): Add all-target-libobjc.
+	(CONFIGURE_TARGET_MODULES, CHECK_TARGET_MODULES): Similarly.
+	(INSTALL_TARGET_MODULES, CLEAN_TARGET_MODULES): Similarly.
+	(all-target-libchill): Add dependencies.
+	* configure.in (target_libs): Add libchill.
+
+1998-09-30  Manfred Hollstein  <manfred@s-direktnet.de>
+
+	* configure.in (target_subdir): Remove duplicate line.
+
+Tue Sep 29 22:45:41 1998  Felix Lee  <flee@cygnus.com>
+
+	* Makefile.in (all-automake): fix dependencies.
+
+Mon Sep 28 04:04:27 1998  Jeffrey A Law  (law@cygnus.com)
+
+	* configure.in: Minor cleanups for building in the $(target_alias)
+	subdir.
+
+1998-09-22  Jim Wilson  <wilson@cygnus.com>
+
+	* Makefile.in (bootstrap): Set r and s before make all.  Use
+	BASE_FLAGS_TO_PASS in make all.
+	(cross): Likewise.
+
+1998-09-20  Mark Mitchell  <mark@markmitchell.com>
+
+	* Makefile.in (bootstrap): Pass TARGET_FLAGS_TO_PASS to `make all'.
+
+Sun Sep 20 00:13:02 1998  Richard Henderson  <rth@cygnus.com>
+
+	* config.sub: Fix typo in last change.
+
+1998-09-19  Michael Hayes  <m.hayes@elec.canterbury.ac.nz>
+
+	* config.sub: Add support for C4x target.
+	* configure.in: Likewise.
+
+1998-09-13  David S. Miller  <davem@pierdol.cobaltmicro.com>
+
+	* config.sub: Recognize sparcv9 just like sparc64.
+
+Wed Sep  9 15:44:52 1998  Robert Lipe  <robertl@dgii.com>
+
+	* config.guess: Match "Pent II" or "PentII" for OpenServer.
+
+Tue Sep  8 01:18:39 1998  Jeffrey A Law  (law@cygnus.com)
+
+	* config.guess: Correctly identify Pentium II sco boxes.
+
+	* config.guess: Fix "tr" code.  From Weiwen Liu.
+
+Sat Sep  5 13:56:52 1998  John Hughes  <john@Calva.COM>
+
+	* configure.in: Do not assume x86-svr4 or x86-unixware can handle
+	stabs.
+
+Sat Sep  5 02:12:02 1998  Jeffrey A Law  (law@cygnus.com)
+
+	* Makefile.in (TARGET_CONFIGDIRS): Add libchill.
+	(ALL_TARGET_MODULES): Add all-target-libchill.
+	(CONFIGURE_TARGET_MODULES, CHECK_TARGET_MODULES): Similarly.
+	(INSTALL_TARGET_MODULES, CLEAN_TARGET_MODULES): Similarly.
+	(all-target-libchill): Add dependencies.
+	* configure.in (target_libs): Add libchill.
+
+Sun Aug 30 22:27:02 1998  Lutz Wohlrab <lutz.wohlrab@informatik.tu-chemnitz.de>
+
+	* config.guess: Avoid assumptions about "tr" behaves when
+	LANG is set to something other than English.
+
+Sun Aug 30 22:14:44 1998  H.J. Lu  (hjl@gnu.org)
+
+	* configure (gxx_include_dir): Changed to
+	'${prefix}/include/g++'-${libstdcxx_interface}.
+
+	* config.if: New to determine the interfaces.
+
+Sun Aug 30 21:15:19 1998  Mark Klein (mklein@dis.com)
+
+	* config.guess: Detect and handle MPE/IX.
+	* config.sub: Deal with MPE/IX.
+
+Sat Aug 29 14:32:55 1998  David Edelsohn  <edelsohn@mhpcc.edu>
+
+	* configure.in: Use mh-aix43.
+
+1998-07-29  Manfred Hollstein  <manfred@s-direktnet.de>
+
+	* configure: Fix --without/--disable cases for gxx-include-dir.
+
+Fri Aug 28 12:28:26 1998  Per Bothner  <bothner@cygnus.com>
+
+	* mdata-sh:  Imported.  Needed for automake support.
+
+Thu Aug 13 12:49:29 1998  H.J. Lu  <hjl@gnu.org>
+
+	* Makefile.in (taz): Try "chmod -R og=u ." before
+	"chmod og=u `find . -print`".
+
+Fri Jul 31 09:38:33 1998  Catherine Moore  <clm@cygnus.com>
+
+	* configure.in: Add arm-elf and thumb-elf support.
+
+Mon Jul 27 16:23:58 1998  Doug Evans  <devans@canuck.cygnus.com>
+
+	* Makefile.in: Undo previous patch.
+
+Fri Jul 24 19:55:24 1998  Doug Evans  <devans@canuck.cygnus.com>
+
+	* Makefile.in (INSTALL_TARGET): Move EXTRA_TARGET_HOST_INSTALL_MODULES
+	to here ...
+	(install-no-fixedincludes): and here
+	(INSTALL_MODULES): ... from here.
+
+Fri Jul 24 17:01:42 1998  Ian Lance Taylor  <ian@cygnus.com>
+
+	* config.sub: Merge with FSF.
+
+	* config.guess: Merge with FSF.
+
+Fri Jul 24 08:43:36 1998  Doug Evans  <devans@canuck.cygnus.com>
+
+	* configure (extraconfigdirs): New variable.
+	(SUBDIRS): Add extraconfigdirs and recurse on them too.
+	* Makefile.in (all): Move higher in file.
+	(EXTRA_TARGET_HOST_ALL_MODULES): New variable.
+	(EXTRA_TARGET_HOST_{INSTALL,CHECK}_MODULES): New variables.
+	(ALL_MODULES): Add EXTRA_TARGET_HOST_ALL_MODULES.
+	(CROSS_CHECK_MODULES): Add EXTRA_TARGET_HOST_CHECK_MODULES.
+	(INSTALL_MODULES): Add EXTRA_TARGET_HOST_INSTALL_MODULES.
+
+1998-07-23  Brendan Kehoe  <brendan@cygnus.com>
+
+	* Makefile.in (all-target-libjava): Depend on all-gcc and
+	all-target-newlib.
+	(configure-target-libjava): Depend on $(ALL_GCC).
+
+Sat Jul 18 14:32:43 CDT 1998  Robert Lipe  <robertl@dgii.com>
+
+	* config.guess: (*-pc-sco3.2v5) Add detection for Pentium II.
+	(*-pc-unixware7) Add detection for Pentium II, Pentium Pro.
+
+Fri Jul 17 13:30:18 1998  Ian Lance Taylor  <ian@cygnus.com>
+
+	* ylwrap: Change absolute path checks to check for DOS style path
+	names.
+
+	* ylwrap: Don't use a full path name if the source file is in the
+	same directory.  From hjl@lucon.org (H.J. Lu).
+
+	* config-ml.in: Default to being verbose, to match Feb 18 change to
+	configure.
+
+Thu Jul 16 12:29:51 1998  Ian Lance Taylor  <ian@cygnus.com>
+
+	Brought over from egcs:
+
+	Sat Jun 27 22:46:32 1998  Jeffrey A Law  (law@cygnus.com)
+
+	* configure.in (target_subdir): Set to ${target_alias} instead
+	of "libraries".
+
+	Mon Sep  1 16:45:44 1997  Jim Wilson  <wilson@cygnus.com>
+
+	* configure.in (target_subdir): Set to libraries if enable_multilib.
+
+Wed Jul 15 01:00:54 1998  Ian Lance Taylor  <ian@cygnus.com>
+
+	* Makefile.in ($(CONFIGURE_TARGET_MODULES)): If there are any
+	multilibs, force reconfiguration the first time we create
+	multilib.out in a subdirectory, in case TARGET_SUBDIR is `.'.
+
+Tue Jul 14 23:41:03 1998  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure.in: Strip any --no option from CONFIG_ARGUMENTS, to
+	avoid confusion with --no-recursion.
+
+Tue Jul 14 15:37:41 1998  Geoffrey Noer  <noer@cygnus.com>
+
+	* configure.in: Win32 hosts shouldn't use install -x
+	* install-sh: remove -x option, and special .exe-handling
+	hack.
+
+Tue Jul 14 15:28:41 1998  Richard Henderson  <rth@cygnus.com>
+
+	* config.guess: Recognize i586-pc-beos.
+	* configure.in: Don't build some bits for beos.
+
+Tue Jul 14 13:22:18 1998  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure: If CC is set but CFLAGS is not, and CC is gcc, make
+	CFLAGS default to -O2.
+
+	* ltmain.sh: Add some hacks to make SunOS --enable-shared work
+	when using GNU ld.
+
+Fri Jul 10 13:18:23 1998  Ian Lance Taylor  <ian@cygnus.com>
+
+	* ltmain.sh: Correct install when using a different shell.
+
+Tue Jul  7 15:24:38 1998  Ian Lance Taylor  <ian@cygnus.com>
+
+	* ltconfig, ltmain.sh: Update to libtool 1.2b.
+
+Thu Jul  2 13:57:36 1998  Klaus Kaempf  <kkaempf@rmi.de>
+
+	* makefile.vms: Update to build binutils/makefile.vms.  Add install
+	target.
+
+Wed Jul  1 16:45:21 1998  Ian Lance Taylor  <ian@cygnus.com>
+
+	* ltconfig: Update to correct AIX handling.
+
+Sat Jun 27 22:46:32 1998  Jeffrey A Law  (law@cygnus.com)
+
+	* Makefile.in (BASE_FLAGS_TO_PASS): Add TARGET_SUBDIR.
+
+	* configure.in (target_subdir): Set to ${target_alias} instead
+	of "libraries".
+
+1998-06-26  Manfred Hollstein  <manfred@s-direktnet.de>
+
+	* Makefile.in (BASE_FLAGS_TO_PASS): Add gcc_version_trigger.
+	(Makefile): Depend on $(gcc_version_trigger).
+
+	* configure (gcc_version): Change default initializer to empty
+	string.
+	(gcc_version_trigger): New variable; pass this variable down
+	to subdir configures to enable them checking gcc's version
+	themselves. Emit make macros for both gcc_version vars.
+	(topsrcdir): Initialize reliably.
+	(recursion line): Remove --with-gcc-version=${gcc_version}.
+
+1998-06-24  Manfred Hollstein  <manfred@s-direktnet.de>
+
+	* configure (enable_version_specific_runtime_libs): Implement new flag
+	--enable-version-specific-runtime-libs which installs C++ runtime stuff
+	in $(libsubdir); emit definition in each generated Makefile.
+	(gxx_include_dir): Initialize depending on
+	$enable_version_specific_runtime_libs.
+
+1998-06-24  Manfred Hollstein  <manfred@s-direktnet.de>
+
+	* configure (gcc_version): Initialize properly depending on
+	how and where configure is started.
+	(recursion line): Pass a --with-gcc-version=${gcc_version}
+	to configures in subdirs.
+
+Wed Jun 24 16:01:59 1998  John Metzler  <jmetzler@cygnus.com>
+
+	* configure.in (noconfigdirs): Add configure pattern for mips tx39
+	cygmon
+
+Tue Jun 23 22:42:32 1998  Mark Alexander  <marka@cygnus.com>
+
+	* configure.in: Add cygmon and libstub support for mn10200.
+
+1998-06-19  Manfred Hollstein  <manfred@s-direktnet.de>
+
+	* configure (gcc_version): Add new variable describing the
+	particular gcc version we're building.
+	* Makefile.in (libsubdir): Add new macro for the directory
+	in which the compiler finds executables, libraries, etc.
+	(BASE_FLAGS_TO_PASS): Pass down gcc_version, target_alias
+	and libsubdir.
+
+Fri Jun 19 02:36:59 1998  Alexandre Oliva <oliva@dcc.unicamp.br>
+
+	* Makefile.in (local-clean): Remove *.log.
+	(warning.log): Built with warn_summary from build.log.
+	(mail-report.log): Run test_summary.
+	(mail-report-with-warnings.log): Run test_summary including
+	warning.log in the report.
+
+Thu Jun 18 11:26:03 1998  Robert Lipe  <robertl@dgii.com>
+
+	* config.guess: Detection of Pentium II for *-sco-3.2v5*.
+
+Mon Jun 15 14:53:54 1998  Andrew Cagney  <cagney@b1.cygnus.com>
+
+	* Makefile.in (grep): Grep no longer depends on libiberty.
+
+Fri Jun 12 14:03:34 1998  Syd Polk  <spolk@cygnus.com>
+
+	* Makefile.in: all-snavigator needs all-libgui.
+
+Thu Jun 11 19:43:47 1998  Mark Alexander  <marka@cygnus.com>
+
+	* configure.in: Add cygmon and libstub support for mn10300.
+
+Wed Jun 10 11:19:47 1998  Ian Lance Taylor  <ian@cygnus.com>
+
+	* missing: Update to version from automake 1.3.
+
+	* ltmain.sh: On installation, don't get confused if the same name
+	appears more than once in the list of library names.
+
+Wed Jun  3 14:51:42 1998  Ian Lance Taylor  <ian@cygnus.com>
+
+	* config.sub: Accept m68060 and m5200 as CPU names.
+
+Mon Jun  1 17:25:16 1998  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure: Use && rather than using -a in test, because odd
+	strings can confuse test.
+	* configure.in: Likewise.
+
+Thu May 28 19:31:13 1998  Ian Lance Taylor  <ian@cygnus.com>
+
+	* ltconfig, ltmain.sh: Bring in Visual C++ support.
+
+Sat May 23 23:44:13 1998  Alexandre Oliva <oliva@dcc.unicamp.br>
+
+	* Makefile.in (boostrap2-lean, bootstrap3-lean,
+	bootstrap4-lean): New targets.
+
+Mon May 11 23:55:56 1998  Jeffrey A Law  (law@cygnus.com)
+
+	* mpw-* Delete.  Not used.
+
+Mon May 11 23:11:34 1998  Jeffrey A Law  (law@cygnus.com)
+
+	* COPYING.LIB: Update FSF address.
+
+Fri May  8 01:30:20 1998  Ian Lance Taylor  <ian@cygnus.com>
+
+	* ltconfig, ltmain.sh: Update to libtool 1.2a.
+
+	* Makefile.in (GASB_SUPPORT_DIRS): Remove intl; already included via
+	GAS_SUPPORT_DIRS.
+
+Thu May  7 17:27:35 1998  Ian Lance Taylor  <ian@cygnus.com>
+
+	* ltconfig, ltmain.sh: Avoid producing a version number if
+	-version-info was not used.
+
+Tue May  5 18:02:24 1998  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure.in: Add --with-newlib to CONFIG_ARGUMENTS if we are
+	building with newlib.
+
+1998-04-30  Paul Eggert  <eggert@twinsun.com>
+
+	* Makefile.in (EXTRA_GCC_FLAGS): Remove backslash at end;
+	Solaris `make' causes it to continue to next definition.
+
+Tue Apr 28 16:24:24 1998  Jason Molenda  (crash@bugshack.cygnus.com)
+
+	* Makefile.in (install-gdbtk): Call this 'install-gdb' so that
+	the right GUI libraries and files are installed along with GDB.
+
+Tue Apr 28 18:11:24 1998  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure.in: Change alpha to alpha* in several places.
+
+Tue Apr 28 07:42:00 1998  Mark Alexander  <marka@cygnus.com>
+
+	* config.sub: Recognize sparc86x.
+
+Tue Apr 28 07:35:02 1998  Michael Meissner  <meissner@cygnus.com>
+
+	* configure.in (--enable-target-optspace): Remove debug echo.
+
+Thu Apr 23 21:31:16 1998  Jim Wilson  <wilson@cygnus.com>
+
+	* configure: Set CXXFLAGS from CXXFLAGS, not CFLAGS.
+
+Thu Apr 23 12:26:38 1998  Ian Lance Taylor  <ian@cygnus.com>
+
+	* ltconfig: Update cygwin32 support.
+
+	* Makefile.in (GAS_SUPPORT_DIRS): Add intl.
+	(BINUTILS_SUPPORT_DIRS, GASB_SUPPORT_DIRS): Likewise.
+	(GDB_SUPPORT_DIRS): Likewise.
+
+Wed Apr 22 12:30:10 1998  Michael Meissner  <meissner@cygnus.com>
+
+	* configure.in (target_makefile_frag): If --enable-target-optspace,
+	use -Os to compile target libraries rather than -O2.  Default to
+	using -Os for d10v and m32r if --{enable,disable}-target-optspace is
+	not used.
+	* configure.in (target_cflags): Ditto for d30v.
+
+Tue Apr 21 23:06:54 1998  Tom Tromey  <tromey@cygnus.com>
+
+	* Makefile.in (all-bfd): Depend on all-intl.
+	(all-binutils): Likewise.
+	(all-gas): Likewise.
+	(all-gprof): Likewise.
+	(all-ld): Likewise.
+
+1998-04-19  Brendan Kehoe  <brendan@cygnus.com>
+
+	* configure.in (host_tools): Fix typo, lbtool -> libtool.
+
+Fri Apr 17 16:20:42 1998  Ian Lance Taylor  <ian@cygnus.com>
+
+	* Makefile.in (all-bfd): Depend upon all-libiberty.
+
+	* ltconfig, ltmain.sh: Bring in newer cygwin32 support.
+
+Fri Apr 17 12:22:22 1998  Bob Manson  <manson@charmed.cygnus.com>
+
+	* Makefile.in: Add libstub.
+
+	* configure.in: Ditto. Build libstub for targets that have cygmon
+	support.
+
+Tue Apr 14 18:01:55 1998  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure.in: Don't set PICFLAG on ix86-cygwin32.
+
+Tue Apr 14 12:24:45 1998  J. Kean Johnston  <jkj@sco.com>
+
+	* configure.in: Recognise i[3456]96-*-sysv5* as a valid host, and
+	use mh-sysv5 if specified.  Support gprof on SCO Open Server.
+
+Tue Apr 14 11:33:51 1998  Krister Walfridsson <cato@df.lth.se>
+
+	* configure: Define DEFAULT_M4 by searching PATH.
+	* Makfile.in: Use DEFAULT_M4.
+
+Mon Apr 13 15:37:24 1998  Ian Lance Taylor  <ian@cygnus.com>
+
+	* ltconfig: Add cygwin32 support.
+
+	* Makefile.in, configure.in: Add libtool as a native only directory
+	to configure and build.
+
+Sun Apr 12 20:58:46 1998  Jeffrey A Law  (law@cygnus.com)
+
+	* Makefile.in (INSTALL_MODULES): Remove texinfo.
+
+Wed Apr  8 13:18:56 1998  Philippe De Muyter  <phdm@macqel.be>
+
+	* Makefile.in (EXTRA_GCC_FLAGS): XFOO lines shortened.
+
+Thu Apr  2 14:48:44 1998  Geoffrey Noer  <noer@cygnus.com>
+
+	* Makefile.in: add ash make rules
+	* configure.in: add ash to native_only and host_tools lists
+
+Thu Mar 26 12:53:20 1998  Tom Tromey  <tromey@cygnus.com>
+
+	* Makefile.in (all-gettext, all-intl): New targets.
+	(ALL_MODULES): Added all-gettext, all-intl.
+	(CROSS_CHECK_MODULES): Added check-gettext, check-intl.
+	(INSTALL_MODULES): Added install-gettext, install-intl.
+	(CLEAN_MODULES): Added clean-gettext, clean-intl.
+
+	* configure.in (host_tools): Added gettext.
+	(native_only): Likewise.
+	(noconfigdirs) [various cases]: Likewise.
+	(host_libs): Added intl.
+
+Thu Mar 26 15:00:11 1998  Keith Seitz  <keiths@onions.cygnus.com>
+
+	* configure: Do not disable building gdbtk for cygwin32 hosts.
+
+Wed Mar 25 10:04:18 1998  Nick Clifton  <nickc@cygnus.com>
+
+	* configure.in: Add thumb-coff target.
+	* config.sub: Add thumb-coff target.
+
+Wed Mar 25 11:49:12 1998  Jason Molenda  (crash@bugshack.cygnus.com)
+
+	* Makefile.in: Revert yesterday's change.
+	(all-target-winsup):  all-target-librx stays out of here.
+
+Tue Mar 24 16:58:29 1998  Jason Molenda  (crash@bugshack.cygnus.com)
+
+	* Makefile.in (TARGET_CONFIGDIRS, ALL_TARGET_MODULES,
+	CONFIGURE_TARGET_MODULES, CHECK_TARGET_MODULES,
+	INSTALL_TARGET_MODULES, CLEAN_TARGET_MODULES, all-target-winsup):
+	Remove references to librx and libg++.
+
+Tue Mar 24 18:28:12 1998  Eric Mumpower  <nocturne@cygnus.com>
+
+	* Makefile.in (BASE_FLAGS_TO_PASS): Pass $(lispdir) down to
+	recursive makes
+
+Tue Mar 24 11:37:45 1998  Ian Lance Taylor  <ian@cygnus.com>
+
+	* Makefile.in (CC_FOR_TARGET): Use $(TARGET_SUBDIR) when passing -B
+	for newlib directory.
+	(CXX_FOR_TARGET): Likewise.
+
+Mon Mar 23 11:30:21 1998  Jeffrey A Law  (law@cygnus.com)
+
+	* ltconfig: Update after libtool/ltconfig.in change for
+	hpux11.
+
+Fri Mar 20 18:51:43 1998  Ian Lance Taylor  <ian@cygnus.com>
+
+	* ltconfig, ltmain.sh: Update to libtool 1.2.
+
+Fri Mar 20 09:32:14 1998  Manfred Hollstein  <manfred@s-direktnet.de>
+
+	* Makefile.in (install-gcc): Don't specify LANGUAGES here.
+	(install-gcc-cross): Instead, override LANGUAGES here.
+
+1998-03-18  Dave Love  <d.love@dl.ac.uk>
+
+	* Makefile.in ($(CONFIGURE_TARGET_MODULES)): Set CONFIG_SITE to a
+	non-existent file since /dev/null loses with bash 2.0/autoconf 2.12.
+
+Wed Mar 18 09:24:59 1998  Nick Clifton  <nickc@cygnus.com>
+
+	* configure.in: Add Thumb-pe target.
+
+Tue Mar 17 16:59:00 1998  Syd Polk <spolk@cygnus.com>
+
+	* Makefile.in - changed sn targets to snavigator
+	* configure.in - changed sn targets to snavigator
+
+Tue Mar 17 10:33:28 1998  Manfred Hollstein  <manfred@s-direktnet.de>
+
+	* config-ml.in: After building symlink tree call make distclean
+	if a Makefile got linked into ${ml_dir}/${ml_libdir}; this happens
+	to be the case for libiberty.
+
+Tue Mar 17 10:22:37 1998  H.J. Lu  (hjl@gnu.ai.mit.edu)
+
+	* configure: When making link, also check the current
+	directory. The configure scripts may create one.
+
+Fri Mar  6 01:02:03 1998  Richard Henderson  <rth@cygnus.com>
+
+	* config.sub: Accept alphapca56 and alphaev6 properly.
+
+Fri Mar  6 00:14:55 1998  Franz Sirl <Franz.Sirl-kernel@lauterbach.com>
+
+	* configure.in: Revert 3 Jan change for powerpc-linux-gnulibc1.
+
+Mon Feb 23 15:09:18 1998  Bruno Haible <bruno@linuix.mathematik.uni-karlsruhe.de
+
+	* config.sub (sco5): Fix typo.
+
+Mon Feb 23 14:46:06 1998  Ian Lance Taylor  <ian@cygnus.com>
+
+	* Makefile.in (INSTALL_MODULES): Move install-tcl before
+	install-itcl.
+	(install-itcl): Remove dependency on install-tcl.
+
+Mon Feb 23 09:53:28 1998  Mark Alexander  <marka@cygnus.com>
+
+	* configure.in: Remove libgloss from noconfigdirs for MN10300.
+
+Thu Feb 19 13:40:41 1998  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure.in: Don't build libgui for a cygwin32 target when not on
+	a cygwin32 host.
+
+Wed Feb 18 12:29:00 1998  Jason Molenda  (crash@bugshack.cygnus.com)
+
+	* configure (redirect): Set to null, so default behavior of
+	configure is now --verbose.
+
+1998-02-16  Dave Love  <d.love@dl.ac.uk>
+
+	* Makefile.in ($(CONFIGURE_TARGET_MODULES)): Run configure with
+	CONFIG_SITE=/dev/null to forestall lossage with site configuration.
+
+Mon Feb 16 12:23:53 1998  Manfred Hollstein  <Manfred.Hollstein@ks.sel.alcatel.de>
+
+	* Makefile.in (BASE_FLAGS_TO_PASS, EXTRA_TARGET_FLAGS): Really add
+	this change to sync Makefile.in with its ChangeLog entries.
+
+Thu Feb 12 15:03:08 1998  H.J. Lu  <hjl@gnu.org>
+
+	* ltmain.sh (mkdir): Check that the directory doesn't exist
+	before we exit with error, so that we don't get races during
+	parallel builds.
+
+Sat Feb  7 15:19:18 1998  Ian Lance Taylor  <ian@cygnus.com>
+
+	* ltconfig, ltmain.sh: Update from libtool 1.0i.
+
+Fri Feb  6 01:33:52 1998  Manfred Hollstein  <manfred@s-direktnet.de>
+
+	* Makefile.in (BASE_FLAGS_TO_PASS): Don't pass PICFLAG and
+	PICFLAG_FOR_TARGET.
+	(EXTRA_TARGET_FLAGS): Don't pass PICFLAG_FOR_TARGET.
+
+	* configure: Emit a definition for the new macro enable_shared
+	into each Makefile.
+
+Thu Feb  5 17:01:12 1998  Jason Molenda  (crash@bugshack.cygnus.com)
+
+	* configure.in (host_tools, native_only): Add libtool.
+
+Wed Feb  4 16:53:58 1998  Geoffrey Noer  <noer@cygnus.com>
+
+	* configure.in: add target-gperf to noconfigdirs for Cygwin32.
+	Fix typo in ming config comment.
+
+Wed Feb  4 18:56:13 1998  Ian Lance Taylor  <ian@cygnus.com>
+
+	* ltconfig, ltmain.sh: Update from libtool 1.0h.
+
+Mon Feb  2 19:38:19 1998  Ian Lance Taylor  <ian@cygnus.com>
+
+	* config.sub: Add tic30 cases, and map c30 to tic30.
+
+Sun Feb  1 02:40:41 1998  Richard Henderson  <rth@cygnus.com>
+
+	* Makefile.in (TARGET_CONFIGDIRS): Add libf2c.
+	(ALL_TARGET_MODULES, CONFIGURE_TARGET_MODULES): Similarly
+	(CHECK_TARGET_MODULES, INSTALL_TARGET_MODULES): Similarly
+	(CLEAN_TARGET_MODULES): Similarly
+	(all-target-libf2c): Add dependences.
+	* configure.in (target_libs): Add libf2c.
+
+Fri Jan 30 17:18:32 1998  Geoffrey Noer  <noer@cygnus.com>
+
+	* configure.in: Remove expect from noconfigdirs when target
+	is cygwin32.  OK to build expect and dejagnu with Canadian
+	Cross.
+
+Wed Jan 28 12:58:49 1998  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure.in: Do build expect, dejagnu, and cvssrc for a cygwin32
+	host.
+
+	* config.guess: Use ${UNAME_MACHINE} rather than i386 for cygwin32
+	and mingw32.
+
+Wed Jan 28 10:26:37 1998  Manfred Hollstein  <manfred@s-direktnet.de>
+
+	* Makefile.in (BASE_FLAGS_TO_PASS): Remove passing $(local_prefix)
+	here as it is not defined in the toplevel Makefile.
+
+Tue Jan 27 23:25:06 1998  Manfred Hollstein  <manfred@s-direktnet.de>
+
+	* configure (package_makefile_rules_frag): New variable, which names
+	a file with generic rules, ...
+	Change comment to mention we now have FIVE parts.
+	* configure: Undo last change.
+
+Tue Jan 27 23:15:55 1998  Lassi A. Tuura  <lat@iki.fi>
+
+	* config.guess: More accurate determination of HP processor types.
+	* config.sub: More accurate determination of HP processor types.
+
+Sat Jan 24 01:59:45 1998  Manfred Hollstein  <manfred@s-direktnet.de>
+
+	* configure (package_makefile_frag): Move inserting the
+	${package_makefile_frag} to where it should be according
+	to the comment.
+
+Fri Jan 23 00:29:28 1998  Philip Blundell  <pb@nexus.co.uk>
+
+	* config.guess: Add support for Linux/ARM.
+
+Thu Jan 22 15:14:01 1998  Fred Fish  <fnf@cygnus.com>
+
+	* .cvsignore: Remove *-info and *-install since they match
+	release-info and mpw-install, which we don't want to just ignore.
+
+Thu Jan 22 01:38:33 1998  Richard Henderson  <rth@cygnus.com>
+
+	* configure.in: Revert 3 Jan change for alpha-linux-gnulibc1.
+
+Sat Jan 17 21:28:08 1998  Pieter Nagel <pnagel@epiuse.co.za>
+
+	* Makefile.in (FLAGS_TO_PASS): Pass down gcc_include_dir and
+	local_prefix to sub-make invocations.
+
+Sat Jan 17 21:04:59 1998 H.J. Lu  (hjl@gnu.org)
+
+	* configure.in: Check makefile fragments in the source
+	directory.
+
+Fri Jan 16 00:41:37 1998  Alexandre Oliva <oliva@dcc.unicamp.br>
+
+	* configure.in: Check whether host and target makefile
+	fragments exist before adding them to *_makefile_frag.
+
+Wed Jan 14 23:39:10 1998  Bob Manson  <manson@charmed.cygnus.com>
+
+	* configure.in (target_configdirs): Add cygmon for sparc64-elf.
+
+Wed Jan 14 12:48:07 1998  Keith Seitz  <keiths@pizza.cygnus.com>
+
+	* configure.in: Make sure we only replace RPATH_ENVVAR on
+	lines which begin with RPATH_ENVVAR, i.e. add "^" to the
+	regexp to sed.
+
+	* Makefile.in (BASE_FLAGS_TO_PASS): Pass RRPATH_ENVVAR down
+	to sub-makes.
+
+1998-01-13  Lee Iverson   (leei@ai.sri.com)
+
+	* config-ml.in (multi-do): LDFLAGS must include multilib
+	designator.
+
+Tue Jan 13 01:13:24 1998   Robert Lipe (robertl@dgii.com)
+
+	* config.guess: Recognize i[3456]-i586-UnixWare7-sysv5.
+
+Sun Jan  4 01:06:55 1998  Mumit Khan  <khan@xraylith.wisc.edu>
+
+	* config.sub: Add mingw32 support.
+	* configure.in: Likewise.
+
+Sat Jan  3 12:11:05 1998 Franz Sirl <franz.sirl-kernel@lauterbach.com>
+
+	* configure.in: Finalize support for {alpha|powerpc}*-*-linux-gnulibc1
+
+Sun Dec 28 11:28:58 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* Makefile.in (INSTALL_TARGET): Do install-gcc first.
+	* configure (gxx_include_dir): Provide a definition for subdirs
+	which do not use autoconf.
+
+Wed Dec 24 22:46:55 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* config.guess: Sync with egcs.  Picks up new alpha support,
+	BeOS & some additional linux support.
+
+Tue Dec 23 12:44:24 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* config.guess: HP 9000/803 is a PA1.1 machine.
+
+Mon Dec 22 02:39:24 1997  Richard Henderson  <rth@cygnus.com>
+
+	* configure.in: It's alpha*-...
+
+Sun Dec 21 16:53:12 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)
+
+	* configure.in (host_makefile_frag, target_makefile_frag):
+	Handle multiple config files.
+	(alpha-*-linux*): Treat alpha-*-linux* as alpha-*-linux* and
+	alpha-*-*.
+
+Thu Dec 18 13:13:03 1997  Doug Evans  <devans@canuck.cygnus.com>
+
+	* mkdep: New file.
+
+Wed Dec 17 09:53:02 1997  Michael Meissner  <meissner@cygnus.com>
+
+	* configure.in (d30v-*-*): Allow configuring of libide, vmake, etc.
+
+Tue Dec 16 17:36:05 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* Makefile.in: Add libgui directory.
+	(GDB_TK): Add all-libgui.
+	* configure.in: Add libgui directory.
+	* configure: Add all-libgui to GDB_TK.
+
+Mon Dec 15 16:12:28 1997  Nick Clifton  <nickc@cygnus.com>
+
+	* config-ml.in (multidirs): Add m32r to multilib list.
+
+Fri Dec 12 10:43:31 1997  Brendan Kehoe  <brendan@canuck.cygnus.com>
+
+	* Makefile.in (all-target-gperf): Change dependency to
+	all-target-libstdc++.
+
+Thu Dec 11 23:30:51 1997  Fred Fish  <fnf@ninemoons.com>
+
+	* config.guess: Add BeOS support.
+
+Wed Dec 10 15:10:38 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	Source directory cvs renamed to cvssrc:
+	* configure.in (host_tools): Change cvs to cvssrc.
+	(native_only): Likewise.
+	(noconfigdirs) [various cases]: Likewise.
+	* Makefile.in (ALL_MODULES): Change all-cvs to all-cvssrc.
+	(CROSS_CHECK_MODULES): Change check-cvs to check-cvssrc.
+	(INSTALL_MODULES): Change install-cvs to install-cvssrc.
+	(CLEAN_MODULES): Change clean-cvs to clean-cvssrc.
+	(all-cvssrc): Rename target from all-cvs.
+
+Wed Dec  3 07:55:59 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* configure (gxx_include_dir): Fix thinko.
+
+Tue Dec  2 10:55:34 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* Makefile.in (INSTALL_TARGET_CROSS): Define.
+	(install-cross, install-gcc-cross): New targets.
+
+Tue Dec  2 10:08:31 1997  Nick Clifton  <nickc@cygnus.com>
+
+	* configure.in (noconfigdirs): Add support for Thumb target.
+
+	* config.sub (maybe_os): Add support for Thumb target.
+
+Sun Nov 30 16:12:27 1997  Bob Manson  <manson@charmed.cygnus.com>
+
+	* Makefile.in: Add rules for cygmon.
+
+	* configure.in: Build cygmon for sparc-elf and sparclite-aout.
+
+Thu Nov 27 01:31:30 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* Makefile.in (INSTALL_TARGET): Do install-gcc first.
+	* configure (gxx_include_dir): Provide a definition for subdirs
+	which do not use autoconf.
+
+Wed Nov 26 11:53:33 1997  Keith Seitz  <keiths@onions.cygnus.com>
+
+	* Makefile.in, configure, configure.in, ChangeLog: merge with foundry's
+	11/18/97 build
+
+Wed Nov 26 16:08:50 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* From Franz Sirl.
+	* config.guess (powerpc*-*-linux): Handle glibc2 beta release
+	found on RedHat Linux systems.
+
+Fri Nov 21 09:51:01 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* config.guess (alpha stuff): Merge with FSF to avoid incorrect
+	guesses.
+
+Thu Nov 13 11:38:37 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* configure.in (i[3456]86-ncr-sysv4.3*): Tweak.
+
+Mon Nov 10 15:23:21 1997  H.J. Lu  <hjl@gnu.ai.mit.edu>
+
+	* ltmain.sh: If mkdir fails, check whether the directory was created
+	anyhow by some other process.
+
+Mon Nov 10 14:38:03 1997  Michael Meissner  <meissner@cygnus.com>
+
+	* configure.in (d30v-*-*): Configure all directories.
+
+Sun Nov  9 17:36:20 1997  Michael Meissner  <meissner@cygnus.com>
+
+	* configure.in (d30v-*-*): Configure newlib, libiberty directories
+	for the D30V.
+
+Sat Nov  8 14:42:59 1997  Michael Meissner  <meissner@cygnus.com>
+
+	* configure.in (d30v-*-*): Configure target-libgloss on the D30V.
+
+Fri Nov  7 10:34:09 1997  Rob Savoye  <rob@darkstar.cygnus.com>
+
+	* include/libiberty.h: Add extern "C" { so it can be used with C++
+	progrms.
+	* include/remote-sim.h:  Add extern "C" { so it can be used with C++
+	programs.
+
+Thu Oct 30 11:09:29 1997  Michael Meissner  <meissner@cygnus.com>
+
+	* configure.in (d30v-*-*): Configure GCC now.
+
+Mon Oct 27 13:17:24 1997  Stan Shebs  <shebs@andros.cygnus.com>
+
+	* configure.in: Remove a "second pass" of tweaking noconfigdirs,
+	is no longer needed.
+
+Mon Oct 27 12:03:53 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* Makefile.in: check-target-libio depends on all-target-libstdc++.
+
+Sun Oct 26 11:48:27 1997  Manfred Hollstein  (manfred@s-direktnet.de)
+
+	* Makefile.in (bootstrap-lean): Combined with `normal' bootstrap
+	targets using "$@" to provide support for similar but not identical
+	targets without having to duplicate code.
+
+Mon Oct 20 15:28:49 1997  Klaus K"ampf  <kkaempf@progis.de>
+
+	* makefile.vms: Fix to work with DEC C.
+
+Tue Oct  7 23:58:57 1997  Gavin Koch  <gavin@cygnus.com>
+
+	* config.sub: Add mips-tx39-elf to marketing names.
+
+Tue Oct  7 14:24:41 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* ltmain.sh: Handle symlinks in generated script.
+
+Wed Oct  1 13:11:27 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure: Handle autoconf style directory options: --bindir,
+	--datadir, --includedir, --infodir, --libdir, --libexecdir,
+	--mandir, --oldincludedir, --sbindir, --sharedstatedir,
+	--sysconfdir.
+	* Makefile.in (sbindir, libexecdir, sysconfdir): New variables.
+	(sharedstatedir, localstatedir, oldincludedir): New variables.
+	(BASE_FLAGS_TO_PASS): Pass down bindir, datadir, includedir,
+	infodir, libdir, libexecdir, localstatedir, mandir, oldincludedir,
+	sbindir, sharedstatedir, and sysconfdir.
+
+Mon Sep 29 00:38:08 1997 Aaron Jackson <jackson@negril.msrce.howard.edu>
+
+	* Makefile.in (bootstrap-lean): New target.
+
+Wed Sep 24 18:06:27 1997  Stu Grossman  <grossman@babylon-5.cygnus.com>
+
+	* configure.in (d30v):  Remove tcl, tk, expect, gdb, itcl, tix, db,
+	sn, and gnuserv from noconfigdirs.
+
+Wed Sep 24 15:18:32 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* ltmain.sh: Tweak shell pattern to avoid bug in NetBSD /bin/sh.
+
+Thu Sep 18 23:58:27 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* Makefile.in (cross): New target.
+
+Thu Sep 18 21:43:23 1997  Alexandre Oliva  <oliva@dcc.unicamp.br>
+			  Jeff Law	   <law@cygnus.com>
+
+	* Makefile.in (bootstrap2, bootstrap3): New targets.
+	(all-bootstrap): Remove outdated and confusing target.
+	(bootstrap, bootstrap2, bootstrap3): Don't pass BOOT_CFLAGS down.
+
+Thu Sep 18 15:37:42 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+	* configure (tooldir): enable_gdbtk=YES for cygwin32, NO for
+	windows.  Consistent with gdb/configure.
+
+1997-09-15 02:37  Ulrich Drepper  <drepper@cygnus.com>
+
+	* configure.in: Name Linux target fragment.
+
+	* configure: Rewrite so that project Makefile fragment is inserted
+	first and appears last in the resulting Makefile.
+
+Tue Sep 16 09:55:07 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+	* Makefile.in (install-itcl): Install tcl first.
+
+Fri Sep 12 16:19:20 1997  Geoffrey Noer  <noer@cygnus.com>
+
+	* configure.in: remove bison from noconfigdirs for Cygwin32 host
+
+Thu Sep 11 16:40:46 1997  H.J. Lu  (hjl@gnu.ai.mit.edu)
+
+	* Makefile.in (local-distclean): Also remove mh-frag mt-frag.
+
+	* configure.in (skipdirs): Add target-librx for Linux.
+	(alpha-*-linux*): Use config/mh-elfalphapic and config/mt-elfalphapic.
+
+Wed Sep 10 21:29:54 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* Makefile.in (bootstrap): New target.
+
+Wed Sep 10 15:19:22 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* config.sub: Accept 'amigados' for backward compatability.
+
+Mon Sep  8 20:46:20 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* config.guess: Merge with FSF.
+
+Sun Sep  7 23:18:32 1997  Fred Fish  <fnf@ninemoons.com>
+
+	* config.sub: Change 'amigados' to 'amigaos' to match current usage.
+
+Sun Sep  7 15:55:28 1997  Gavin Koch  <gavin@cygnus.com>
+
+	* config.sub: Add "marketing-names" patch.
+
+Fri Sep  5 16:11:28 1997  Joel Sherrill  (joel@OARcorp.com)
+
+	* configure.in (*-*-rtems*): Do not build libgloss for rtems.
+
+Fri Sep  5 12:27:17 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* config.sub: Handle v850-elf.
+
+Wed Sep  3 22:01:58 1997  Fred Fish  <fnf@ninemoons.com>
+
+	* .cvsignore (*-install): Remove.
+
+Wed Sep  3 12:15:24 1997  Chris Provenzano  <proven@cygnus.com>
+
+	* ltconfig: Set CONFIG_SHELL in libtool.
+	* ltmain.sh: Use CONFIG_SHELL instead of /bin/sh
+
+Mon Sep  1 16:45:44 1997  Jim Wilson  <wilson@cygnus.com>
+
+	* configure.in (target_subdir): Set to libraries if enable_multilib.
+
+Wed Aug 27 16:15:11 1997  Jim Wilson  <wilson@cygnus.com>
+
+	* config.guess: Update from gcc directory.
+
+Tue Aug 26 16:46:46 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+	* Makefile.in (all-sim): Depends on all-readline.
+
+Wed Aug 20 19:57:37 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* Makefile.in (BISON, YACC): Use $$s.
+	(all-bison): Depend on all-texinfo.
+
+Tue Aug 19 01:41:32 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* Makefile.in (BISON): Add -L flag.
+	(YACC): Likewise.
+
+Mon Aug 18 11:30:50 1997  Nick Clifton  <nickc@cygnus.com>
+
+	* configure.in (noconfigdirs): Add support for v850e target.
+
+	* config.sub (maybe_os): Add support for v850e target.
+
+Mon Aug 18 11:30:50 1997  Nick Clifton  <nickc@cygnus.com>
+
+	* configure.in (noconfigdirs): Add support for v850ea target.
+
+	* config.sub (maybe_os): Add support for v850ea target.
+
+Mon Aug 18 09:24:06 1997  Gavin Koch  <gavin@cygnus.com>
+
+	* config.sub: Add mipstx39.  Delete r3900.
+
+Mon Aug 18 17:20:10 1997  Jason Molenda  (crash@godzilla.cygnus.co.jp)
+
+	* Makefile.in (all-autoconf): Depends on all-texinfo.
+
+Fri Aug 15 23:09:26 1997  Michael Meissner  <meissner@cygnus.com>
+
+	* config-ml.in ({powerpc,rs6000}*-*-*): Update to current AIX and
+	eabi targets.
+
+Thu Aug 14 14:42:17 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure: Get CFLAGS and CXXFLAGS from Makefile, if possible.
+
+	* configure: When handling a Canadian Cross, handle YACC as well as
+	BISON.  Just set BISON to bison.  When setting YACC, prefer bison.
+	* Makefile.in (all-bison): Depend upon all-texinfo.
+
+Tue Aug 12 20:09:48 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* Makefile.in (BISON): bison, not byacc or bison -y.
+	(YACC): bison -y or byacc or yacc.
+	(various): Add *-bison as appropriate.
+	(taz): No need to mess with BISON anymore.
+
+Tue Aug 12 22:33:08 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure: If OSTYPE matches *win32*, try to find a good value for
+	CONFIG_SHELL.
+
+Sun Aug 10 14:41:11 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* Makefile.in (taz): Get the version number from AM_INIT_AUTOMAKE in
+	configure.in if it is present.
+
+Sat Aug  9 00:58:01 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* Makefile.in (LD_FOR_TARGET): Change ld.new to ld-new.
+
+Fri Aug  8 16:30:13 1997  Doug Evans  <dje@canuck.cygnus.com>
+
+	* config.sub: Recognize `arc' cpu.
+	* configure.in: Likewise.
+	* config-ml.in: Likewise.
+
+Thu Aug  7 11:02:34 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* Makefile.in ($(INSTALL_X11_MODULES)): Depend upon installdirs.
+
+Wed Aug  6 16:27:29 1997  Chris Provenzano  <proven@cygnus.com>
+
+	* configure: Changed sed delimiter from ':' to '|' when
+	attempting to substitute ${config_shell} for SHELL. On
+	NT ${config_shell} may contain a ':' in it.
+
+Wed Aug  6 12:29:05 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* Makefile.in (EXTRA_GCC_FLAGS): Fix for non-bash shells.
+
+Wed Aug  6 00:42:35 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* Makefile.in (AS_FOR_TARGET): Change as.new to as-new.
+
+Tue Aug  5 14:08:51 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* Makefile.in (NM_FOR_TARGET): Change nm.new to nm-new.
+
+	* ylwrap: If the program is a relative path, force it to be
+	absolute.
+
+Tue Aug  5 12:12:44 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+	* configure (tooldir): Set BISON to `bison -y' and not just bison.
+
+Mon Aug  4 22:59:02 1997  Andrew Cagney  <cagney@b1.cygnus.com>
+
+	* Makefile.in (CC_FOR_TARGET): When winsup/Makefile present,
+	correctly specify the target build directory $(TARGET_SUBDIR)/winsup
+	for libraries.
+
+Mon Aug  4 12:40:24 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* Makefile.in (EXTRA_GCC_FLAGS): Fix handling of macros with values
+	separated by spaces.
+
+Thu Jul 31 19:49:49 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* ylwrap: New file.
+	* Makefile.in (DEVO_SUPPORT): Add ylwrap.
+
+	* ltmain.sh: Handle /bin/sh at start of install program.
+
+	* Makefile.in (DEVO_SUPPORT): Add ltconfig, ltmain.sh, and missing.
+
+	* ltconfig, ltmain.sh: New files, from libtool 1.0.
+	* missing: New file, from automake 1.2.
+
+Thu Jul 24 12:57:56 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* Makefile.in: Treat tix like tk, putting it in X11_MODULES.  Add
+	check-tk to CHECK_X11_MODULES.
+
+Wed Jul 23 17:03:29 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* config.sub: Merge with FSF.
+
+Tue Jul 22 19:08:29 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* config.guess: Merge with FSF.
+
+Tue Jul 22 14:50:42 1997  Robert Hoehne <robert.hoehne@Mathematik.TU-Chemnitz.DE>
+
+	* configure: Treat msdosdjgpp like go32.
+	* configure.in: Likewise.  Don't remove gprof for go32.
+
+	* configure: Change Makefile.tem2 to Makefile.tm2.
+
+Mon Jul 21 10:31:26 1997  Stephen Peters  <speters@cygnus.com>
+
+	* configure.in (noconfigdirs): For alpha-dec-osf*, don't ignore grep.
+
+Tue Jul 15 14:33:03 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+	* install-sh (chmodcmd): Set to null if the DST directory already
+	exists.  Same as Nov 11th change.
+
+Mon Jul 14 11:01:15 1997  Martin M. Hunt  <hunt@cygnus.com>
+
+	* configure (GDB_TK): Needs itcl and tix.
+
+Mon Jul 14 00:32:10 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* config.guess: Update from FSF.
+
+Fri Jul 11 11:57:11 1997  Martin M. Hunt  <hunt@cygnus.com>
+
+	* Makefile.in (GDB_TK): Depend on itcl and tix.
+
+Fri Jul  4 13:25:31 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* Makefile.in (INSTALL_PROGRAM_ARGS): New variable.
+	(INSTALL_PROGRAM): Use $(INSTALL_PROGRAM_ARGS).
+	(INSTALL_SCRIPT): New variable.
+	(BASE_FLAGS_TO_PASS): Pass down INSTALL_SCRIPT.
+	* configure.in: If host is *-*-cygwin32*, set INSTALL_PROGRAM_ARGS
+	to -x.
+	* install-sh: Add support for -x option.
+
+Mon Jun 30 15:51:30 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure.in, Makefile.in: Treat tix like itcl.
+
+Thu Jun 26 13:59:19 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* Makefile.in (WINDRES): New variable.
+	(WINDRES_FOR_TARGET): New variable.
+	(BASE_FLAGS_TO_PASS): Add WINDRES_FOR_TARGET.
+	(EXTRA_HOST_FLAGS): Add WINDRES.
+	(EXTRA_TARGET_FLAGS): Add WINDRES.
+	(EXTRA_GCC_FLAGS): Add WINDRES.
+	($(DO_X)): Pass down WINDRES.
+	($(CONFIGURE_TARGET_MODULES)): Set WINDRES when configuring.
+	* configure: Treat WINDRES like DLLTOOL, and WINDRES_FOR_TARGET like
+	DLLTOOL_FOR_TARGET.
+
+Wed Jun 25 15:01:26 1997  Felix Lee  <flee@cygnus.com>
+
+	* configure.in: configure sim before gdb for win32-x-ppc
+
+Wed Jun 25 12:18:54 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+	Move gperf into the toplevel, from libg++.
+	* configure.in (target_tools): Add target-gperf.
+	(native_only): Add target-gperf.
+	* Makefile.in (all-target-gperf): New target, depend on
+	all-target-libg++.
+	(configure-target-gperf): Empty rule.
+	(ALL_TARGET_MODULES): Add all-target-gperf.
+	(CONFIGURE_TARGET_MODULES): Add configure-target-gperf.
+	(CHECK_TARGET_MODULES): Add check-target-gperf.
+	(INSTALL_TARGET_MODULES): Add install-target-gperf.
+	(CLEAN_TARGET_MODULES): Add clean-target-gperf.
+
+Mon Jun 23 10:51:53 1997  Jeffrey A Law  (law@cygnus.com)
+
+	* config.sub (mn10200): Recognize new basic machine.
+
+Thu Jun 19 14:16:42 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+	* configure.in: Don't set ENABLE_MULTILIB, so we'll be passing
+	--enable-multilib down to subdirs; setting TARGET_SUBDIR was enough.
+
+Tue Jun 17 15:31:20 1997  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+	* configure.in: If we're building mips-sgi-irix6* native, turn on
+	ENABLE_MULTILIB and set TARGET_SUBDIR.
+
+Tue Jun 17 12:20:59 1997  Tom Tromey  <tromey@cygnus.com>
+
+	* Makefile.in (all-sn): Depend on all-grep.
+
+Mon Jun 16 11:11:10 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure.in: Use mh-ppcpic and mt-ppcpic for powerpc*-* targets.
+
+	* configure: Set CFLAGS and CXXFLAGS, and substitute them into
+	Makefile.  From Jeff Makey <jeff@cts.com>.
+	* Makefile.in: Add comment for CFLAGS and CXXFLAGS.
+
+	* Makefile.in (DISTBISONFILES): Remove.
+	(taz): Don't futz with DISTBISONFILES.  Change BISON to use
+	$(DEFAULT_YACC).
+
+	* configure.in: Build itl, db, sn, etc., when building for native
+	cygwin32.
+
+	* Makefile.in (LD): New variable.
+	(EXTRA_HOST_FLAGS): Pass down LD.
+	($(DO_X)): Likewise.
+
+Mon Jun 16 11:10:35 1997  Philip Blundell  <Philip.Blundell@pobox.com>
+
+	* Makefile.in (INSTALL): Use $(SHELL) when executing install-sh.
+
+Fri Jun 13 10:22:56 1997  Bob Manson  <manson@charmed.cygnus.com>
+
+	* configure.in (targargs): Strip out any supplied --build argument
+	before adding our own. Always add --build.
+
+Thu Jun 12 21:12:28 1997  Bob Manson  <manson@charmed.cygnus.com>
+
+	* configure.in (targargs): Pass --build if we're doing
+	a cross-compile.
+
+Fri Jun  6 21:38:40 1997  Rob Savoye  <rob@chinadoll.cygnus.com>
+
+	* configure: Use '|' instead of ":" as the separator in
+	sed. Otherwise sed chokes on NT path names with drive
+	designators. Also look for "?:*" as the leading characters in an
+	absolute pathname.
+
+Mon Jun  2 13:05:20 1997  Gavin Koch  <gavin@cygnus.com>
+
+	* config.sub: Support for r3900.
+
+Wed May 21 17:33:31 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure.in: Use install-sh, not install.sh.
+
+Wed May 14 16:06:51 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* Makefile.in (taz): Improve check for BISON so it doesn't try to
+	apply it twice.
+
+Fri May  9 17:22:05 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* Makefile.in (INSTALL_MODULES): Put install-opcodes before
+	install-binutils.
+
+Thu May  8 17:29:50 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* Makefile.in: Add automake targets.
+	* configure.in (host_tools): Add automake.
+
+Tue May  6 15:49:52 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure: Default CXX to c++, not gcc.
+	* Makefile.in (CXX): Set to c++, not gcc.
+	(CXX_FOR_TARGET): When cross, transform c++, not gcc.
+
+Thu May  1 10:11:43 1997  Geoffrey Noer  <noer@cygnus.com>
+
+	* install-sh: try appending a .exe if source file doesn't
+	exist
+
+Wed Apr 30 12:05:36 1997  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* configure.in: Turn on multilib by default.
+	(cross_only): Remove target-libiberty.
+
+	* Makefile.in (all-gcc): Don't depend on libiberty.
+
+Mon Apr 28 18:39:45 1997  Michael Snyder  <msnyder@cleaver.cygnus.com>
+
+	* config.guess: improve algorithm for recognizing Gnu Hurd x86.
+
+Thu Apr 24 19:30:07 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* Makefile.in (DEVO_SUPPORT): Add mpw-install.
+	(DISTBISONFILES): Add ld/Makefile.in
+
+Tue Apr 22 17:17:28 1997  Geoffrey Noer  <noer@pizza.cygnus.com>
+
+	* configure.in: if target is cygwin32 but host isn't cygwin32,
+	don't configure gdb tcl tk expect, not just gdb.
+
+Mon Apr 21 13:33:39 1997  Tom Tromey  <tromey@cygnus.com>
+
+	* configure.in: Added gnuserv everywhere sn appears.
+
+	* Makefile.in (ALL_MODULES): Added all-gnuserv.
+	(CROSS_CHECK_MODULES): Added check-gnuserv.
+	(INSTALL_MODULES): Added install-gnuserv.
+	(CLEAN_MODULES): Added clean-gnuserv.
+	(all-gnuserv): New target.
+
+Thu Apr 17 13:57:06 1997  Per Fogelstrom  <pefo@openbsd.org>
+
+	* config.guess: Fixes for MIPS OpenBSD systems.
+
+Tue Apr 15 12:21:07 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* Makefile.in (INSTALL_XFORM): Remove.
+	(BASE_FLAGS_TO_PASS): Remove INSTALL_XFORM.
+
+	* mkinstalldirs: New file, copied from automake.
+	* Makefile.in (installdirs): Rename from install-dirs.  Use
+	mkinstalldirs.  Change all users.
+	(DEVO_SUPPORT): Add mkinstalldirs.
+
+Mon Apr 14 11:21:38 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* install-sh: Rename from install.sh.
+	* Makefile.in (INSTALL): Change install.sh to install-sh.
+	(DEVO_SUPPORT): Likewise.
+
+	* configure: Use ${config_shell} with ${moveifchange}.  From Thomas
+	Graichen <graichen@rzpd.de>.
+
+Fri Apr 11 16:37:10 1997  Niklas Hallqvist  <niklas@appli.se>
+
+	* config.guess: Recognize OpenBSD systems correctly.
+
+Fri Apr 11 17:07:04 1997  Jason Molenda  (crash@godzilla.cygnus.co.jp)
+
+	* README, Makefile.in (ETC_SUPPORT): Remove references to
+	cfg-paper*, configure.{texi,man,info*}._
+
+Sun Apr  6 18:47:57 1997  Andrew Cagney  <cagney@kremvax.cygnus.com>
+
+	* Makefile.in (all.normal): Ensure that gcc is built after all
+	the x11 - ie gdb - targets.
+
+Tue Apr  1 16:28:50 1997  Klaus Kaempf  <kkaempf@progis.de>
+
+	* makefile.vms: Don't run conf-a-gas.
+
+Mon Mar 31 16:26:55 1997  Joel Sherrill  <joel@oarcorp.com>
+
+	* configure.in (hppa1.1-*-rtems*): New target, like hppa-*-*elf*.
+
+Sun Mar 30 12:38:27 1997  Fred Fish  <fnf@cygnus.com>
+
+	* configure.in: Remove noconfigdirs case since gdb also
+	configures and builds for tic80-coff.
+
+Fri Mar 28 18:28:52 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure: Set cache_file to config.cache.
+	* Makefile.in (local-distclean): Remove config.cache.
+
+Wed Mar 26 18:49:39 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* COPYING: Update FSF address.
+
+Wed Mar 26 10:38:25 1997  Michael Meissner  <meissner@cygnus.com>
+
+	* configure.in (tic80-*-*): Remove G++ libraries and libgloss from
+	noconfigdirs.
+
+Mon Mar 24 15:02:39 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* Makefile.in (install-dirs): Don't crash if prefix, and hence
+	MAKEDIRS, is empty.
+
+Mon Mar 24 12:40:55 1997  Doug Evans  <dje@canuck.cygnus.com>
+
+	* config.sub: Tweak mn10300 entry.
+
+Fri Mar 21 15:35:27 1997  Michael Meissner  <meissner@cygnus.com>
+
+	* configure.in (host_tools): Put sim before gdb, so gdb's
+	configure.tgt can determine if the simulator was configured.
+
+Sun Mar 16 16:07:08 1997  Fred Fish  <fnf@cygnus.com>
+
+	* config.sub: Move BeOS $os case to be with other Cygnus
+	local cases.
+
+Sun Mar 16 01:34:55 1997  Martin Hunt <hunt@cygnus.com>
+
+	* config.sub: Remove misplaced comment that broke Linux.
+
+Sat Mar 15 22:50:15 1997  Fred Fish  <fnf@cygnus.com>
+
+	* config.sub: Add BeOS support.
+
+Mon Mar 10 13:30:11 1997  Tom Tromey  <tromey@cygnus.com>
+
+	* Makefile.in (CHECK_X11_MODULES): Don't run check-tk.
+
+Wed Mar  5 12:09:29 1997  Martin  <hunt@cygnus.com>
+
+	* configure.in (noconfigdirs): Remove tcl and tk from
+	noconfigdirs for cygwin32 builds.
+
+Fri Feb 28 18:20:15 1997  Fred Fish  <fnf@cygnus.com>
+
+	* configure.in (tic80-*-*): Remove ld from noconfigdirs.
+
+Thu Feb 27 14:57:26 1997  Ken Raeburn  <raeburn@cygnus.com>
+
+	* Makefile.in (GAS_SUPPORT_DIRS, BINUTILS_SUPPORT_DIRS): Remove
+	make-all.com, use makefile.vms instead.
+
+Tue Feb 25 18:46:14 1997  Stan Shebs  <shebs@andros.cygnus.com>
+
+	* config.sub: Accept -lnews*.
+
+Tue Feb 25 13:19:14 1997  Andrew Cagney  <cagney@kremvax.tpgi.com.au>
+
+	* configure.in (noconfigdirs): Disable target-newlib,
+	target-examples and target-libiberty for d30v.
+
+Fri Feb 21 17:56:25 1997  Martin M. Hunt  <hunt@pizza.cygnus.com>
+
+	* configure.in (noconfigdirs): Enable ld for d30v.
+
+Fri Feb 21 20:58:51 1997  Michael Meissner  <meissner@cygnus.com>
+
+	* configure.in (tic80-*-*): Build compiler.
+
+Sun Feb 16 15:41:09 1997  Andrew Cagney  <cagney@critters.cygnus.com>
+
+	* configure.in (d30v-*): Remove sim directory from list of
+	unsupported d30v directories
+
+Tue Feb 18 17:32:42 1997  Martin M. Hunt  <hunt@pizza.cygnus.com>
+
+	* config.sub, configure.in: Add d30v target cpu.
+
+Thu Feb 13 22:04:44 1997  Klaus Kaempf  <kkaempf@progis.de>
+
+	* makefile.vms: New file.
+	* make-all.com: Remove.
+
+Wed Feb 12 12:54:18 1997  Jim Wilson  <wilson@cygnus.com>
+
+	* Makefile.in (EXTRA_GCC_FLAGS): Add LIBGCC2_DEBUG_CFLAGS.
+
+Sat Feb  8 20:36:49 1997  Michael Meissner  <meissner@cygnus.com>
+
+	* Makefile.in (all-itcl): The rule is all-itcl, not all-tcl.
+
+Tue Feb  4 11:39:29 1997  Tom Tromey  <tromey@cygnus.com>
+
+	* Makefile.in (ALL_MODULES): Added all-db.
+	(CROSS_CHECK_MODULES): Addec check-db.
+	(INSTALL_MODULES): Added install-db.
+	(CLEAN_MODULES): Added clean-db.
+
+Mon Feb  3 13:29:36 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* config.guess: Merge with latest FSF sources.
+
+Tue Jan 28 09:20:37 1997  Tom Tromey  <tromey@cygnus.com>
+
+	* Makefile.in (ALL_MODULES): Added all-itcl.
+	(CROSS_CHECK_MODULES): Added check-itcl.
+	(INSTALL_MODULES): Added install-itcl.
+	(CLEAN_MODULES): Added clean-itcl.
+
+Thu Jan 23 01:44:27 1997  Geoffrey Noer  <noer@cygnus.com>
+
+	* configure.in: build gdb for mn10200
+
+Fri Jan 17 15:32:15 1997  Doug Evans  <dje@canuck.cygnus.com>
+
+	* Makefile.in (all-target-winsup): Depend on all-target-libio.
+
+Mon Jan 13 22:46:54 1997  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* configure.in (tic80-*-*): Turn off most targets right now.
+
+Fri Jan  3 16:04:03 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* Makefile.in (MAKEINFO): Check for the existence of the Makefile,
+	rather than the makeinfo program.
+	(do-info): Depend upon all-texinfo.
+
+Tue Dec 31 16:00:31 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure.in: Remove uses of config/mh-linux.
+
+	* config.sub, config.guess: Merge with latest FSF sources.
+
+Fri Dec 27 23:04:33 1996  Fred Fish  <fnf@cygnus.com>
+
+	* config.sub (case $basic_machine): Add tic80 entries.
+
+Fri Dec 27 12:07:59 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* config.sub, config.guess: Merge with latest FSF sources.
+
+Wed Dec 18 22:46:39 1996  Stan Shebs  <shebs@andros.cygnus.com>
+
+	* mpw-build.in: Build ld before gcc, use NewFolderRecursive.
+	* mpw-config.in: Test for NewFolderRecursive.
+	* mpw-install: Use symbolic name for startup filename.
+	* mpw-README: Add various additional details.
+
+Wed Dec 18 13:11:46 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* configure.in (mips*-sgi-irix6*): Remove binutils from noconfigdirs.
+
+Wed Dec 18 10:29:31 1996  Jeffrey A Law  (law@cygnus.com)
+
+	* configure.in: Do build gcc and the target libraries for
+	the mn10200.
+
+Wed Dec  4 16:53:05 1996  Geoffrey Noer  <noer@cygnus.com>
+
+	* configure.in: don't avoid building gdb for mn10300 any more
+	* Makefile.in: double-quote GCC_FOR_TARGET line in EXTRA_GCC_FLAGS
+	instead of single-quoting it.
+
+Tue Dec  3 23:26:50 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* configure.in: Don't use --with-stabs on IRIX 6.
+
+Tue Dec  3 09:05:25 1996  Doug Evans  <dje@canuck.cygnus.com>
+
+	* configure.in (m32r): Build gdb, libg++ now.
+
+Sun Dec  1 00:18:59 1996  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
+
+	* configure.in (mips*-sgi-irix6*):  Remove gdb and related
+	directories from noconfigdirs.
+
+Tue Nov 26 11:45:33 1996  Kim Knuttila  <krk@cygnus.com>
+
+	* config.sub (basic_machine): added mips16 configuration
+
+Sat Nov 23 19:26:22 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* config.sub: Handle d10v-unknown.
+
+Sat Nov 23 10:23:01 1996  Gavin Koch  <gavin@cygnus.com>
+
+	* config.sub: Handle v850-unknown.
+
+Thu Nov 21 16:19:44 1996  Geoffrey Noer  <noer@cygnus.com>
+
+	* Makefile.in: add findutils
+	* configure.in: add findutils to list of host_tools
+
+Wed Nov 20 10:09:01 1996  Jeffrey A Law  (law@cygnus.com)
+
+	* config.sub: Handle mn10200 and mn10300.
+
+Tue Nov 19 16:35:14 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* configure.in (d10v-*): Do not build librx.
+
+Mon Nov 18 13:28:41 1996  Jeffrey A Law  (law@cygnus.com)
+
+	* configure.in (mn10300): Build everything except gdb & libgloss.
+
+Wed Nov 13 14:59:46 1996  Per Bothner  <bothner@deneb.cygnus.com>
+
+	* config.guess:  Patch for Dansk Data Elektronik servers,
+	from Niels Skou Olsen <nso@dde.dk>.
+
+	For ncr, use /bin/uname rather than uname, since GNU uname does not
+	support -p.  Suggested by Mark Mitchell <mmitchell@usa.net>.
+
+	Patch for MIPS R4000 running System V,
+	from Eric S. Raymond <esr@snark.thyrsus.com>.
+
+	Fix thinko for nextstep.
+
+	Patch for OSF1 in i?86, from Dan Murphy <dlm@osf.org> via Harlan Stenn.
+
+	Sat Jun 24 18:58:17 1995  Morten Welinder  <terra+@cs.cmu.edu>
+	* config.guess: Guess mips-dec-mach_bsd4.3.
+
+	Thu Oct 10 04:07:04 1996  Harlan Stenn <harlan@pfcs.com>
+	* config.guess (i?86-ncr-sysv*):  Emit just enough of the minor
+	release numbers.
+	* config.guess (mips-mips-riscos*):  Emit just enough of the
+	release number.
+
+	Tue Oct  8 10:37:22 1996  Frank Vance <fvance@waii.com>
+	* config.guess (sparc-auspex-sunos*):  Added.
+	(f300-fujitsu-*): Added.
+
+	Wed Sep 25 22:00:35 1996  Jeff Woolsey <woolsey@jlw.com>
+	* config.guess:  Recognize a Tadpole as a sparc.
+
+Wed Nov 13 00:53:09 1996  David J. MacKenzie  <djm@churchy.gnu.ai.mit.edu>
+
+	* config.guess: Don't assume that NextStep version is either 2 or
+	3.  NextStep 4 (aka OpenStep 4) has come out now.
+
+Mon Nov 11 23:52:03 1996  David J. MacKenzie  <djm@churchy.gnu.ai.mit.edu>
+
+	* config.guess: Support Cray T90 that reports itself as "CRAY TS".
+	From Rik Faith <faith@cs.unc.edu>.
+
+Fri Nov  8 11:34:58 1996  David J. MacKenzie  <djm@geech.gnu.ai.mit.edu>
+
+	* config.sub: Contributions from bug-gnu-utils to:
+	Support plain "hppa" (no version given) architecture, reported by
+	OpenStep.
+	OpenBSD like NetBSD.
+	LynxOs is not a hardware supplier.
+
+	* config.guess: Contributions from bug-gnu-utils to add support for:
+	OpenBSD like NetBSD.
+	Stratus systems.
+	More Pyramid systems.
+	i[n>4]86 Intel chips.
+	M680[n>4]0 Motorola chips.
+	Use unknown instead of lynx for hardware manufacturer.
+
+Mon Nov 11 10:09:08 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+	* install.sh (chmodcmd): Set to null if the DST directory already
+	exists.
+
+Mon Nov 11 10:43:41 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* configure.in (powerpc*-{eabi,elf,linux,rtem,sysv,solaris}*): Do
+	not use mt-ppc target Makefile fragment any more.
+
+Sun Nov  3 19:17:07 1996  Stu Grossman  (grossman@critters.cygnus.com)
+
+	* configure.in (*-*-windows):  Exclude everything but those dirs
+	needed to build windows.
+
+Tue Oct 29 16:41:31 1996  Doug Evans  <dje@canuck.cygnus.com>
+
+	* Makefile.in (all-target-winsup): Depend on all-target-librx.
+
+Mon Oct 28 17:32:46 1996  Stu Grossman  (grossman@critters.cygnus.com)
+
+	* configure.in:  Exclude mmalloc from i386-windows.
+
+Thu Oct 24 09:22:46 1996  Stu Grossman  (grossman@critters.cygnus.com)
+
+	* Undo my previous change.
+
+Thu Oct 24 12:12:04 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* Makefile.in (EXTRA_GCC_FLAGS): Pass down GCC_FOR_TARGET
+	unconditionally.
+	(MAKEOVERRIDES): Define (revert this part of October 18 change).
+
+Thu Oct 24 09:02:07 1996  Stu Grossman  (grossman@critters.cygnus.com)
+
+	* Makefile.in (FLAGS_TO_PASS):  Add $(HOST_FLAGS) to allow the
+	host to add it's own flags.
+
+Tue Oct 22 15:20:26 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure: Handle GCC_FOR_TARGET like CC_FOR_TARGET.
+
+Fri Oct 18 13:37:13 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* Makefile.in (CC_FOR_TARGET): Check for xgcc, not Makefile.
+	(CXX_FOR_TARGET): Likewise.
+	(GCC_FOR_TARGET): Define.
+	(BASE_FLAGS_TO_PASS): Remove GCC_FOR_TARGET.
+	(EXTRA_GCC_FLAGS): Define GCC_FOR_TARGET based on whether
+	CC_FOR_TARGET was specified on the command line.
+	(MAKEOVERRIDES): Don't define.
+
+Thu Oct 17 10:27:56 1996  Doug Evans  <dje@canuck.cygnus.com>
+
+	* configure.in (m32r): Fix spelling of libg++ libs.
+
+Thu Oct 10 10:37:17 1996  Stan Shebs  <shebs@andros.cygnus.com>
+
+	* config.sub (-apple*): Remove, now redundant.
+
+Thu Oct 10 12:30:54 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure: Don't get confused by CPU-VENDOR-linux-gnu.
+
+	* configure: Rework yesterday's sed script patch.
+
+	* config.sub: Merge with FSF.
+
+Wed Oct  9 17:24:59 1996  Per Bothner  <bothner@deneb.cygnus.com>
+
+	* config.guess:  Merge from FSF.
+
+	1996-09-12  Richard Stallman  <rms@ethanol.gnu.ai.mit.edu>
+	* config.guess: Use pc instead of unknown, for pc clone systems.
+	Change linux to linux-gnu.
+
+	Mon Jul 15 23:51:11 1996  Karl Heuer  <kwzh@gnu.ai.mit.edu>
+	* config.guess: Avoid non-portable tr syntax.
+
+Wed Oct  9 06:06:46 1996  Jeffrey A Law  (law@cygnus.com)
+
+	* test-build.mk (HOLES): Add "xargs" for gdb.
+
+	* configure: Avoid hpux10.20 sed bug.
+
+Tue Oct  8 08:32:48 1996  Stu Grossman  (grossman@critters.cygnus.com)
+
+	* configure.in:  Add support for windows host
+	(that is a build done under the Microsoft build environment).
+
+Tue Oct  8 10:39:08 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* Makefile.in: Replace all uses of srcroot with s, to shrink
+	command line lengths.
+
+	Patches from Geoffrey Noer <noer@cygnus.com>:
+	* configure.in: If configuring for newlib, pass --with-newlib to
+	subdirectories.
+	* Makefile.in (CC_FOR_TARGET): If winsup/Makefile exists, pass a
+	-Bnewlib/ and -Lwinsup to gcc.
+	(CXX_FOR_TARGET): Likewise.
+
+Mon Oct  7 10:59:35 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* Makefile.in (ETC_SUPPORT): Add configure.
+
+Fri Oct  4 12:22:58 1996  Angela Marie Thomas (angela@cygnus.com)
+
+	* configure.in: Use config/mh-dgux386 for i[345]86-dg-dgux
+	host configuration file.
+
+Thu Oct  3 09:28:25 1996  Jeffrey A Law  (law@cygnus.com)
+
+	* configure.in: Break mn10x00 support into separate
+	mn10200 and mn10300 configurations.
+	* config.sub: Likewise.
+
+Wed Oct  2 22:27:52 1996  Jeffrey A Law  (law@cygnus.com)
+
+	* configure.in: Add lots of stuff to noconfigdirs for
+	the mn10x00 targets.
+
+	* config.sub, configure.in: Add mn10x00 support.
+
+Wed Oct  2 15:52:36 1996  Klaus Kaempf  <kkaempf@progis.de>
+
+	* make-all.com: Call conf-a-gas, not config-a-gas.
+
+Tue Oct  1 01:28:41 1996  James G. Smith  <jsmith@cygnus.co.uk>
+
+	* configure.in (noconfigdirs): Don't build libgloss for arm-coff
+	targets.
+
+Mon Sep 30 14:24:01 1996  Stan Shebs  <shebs@andros.cygnus.com>
+
+	* mpw-README: Add much more detail for native PowerMac.
+	* mpw-install: New file.
+	* mpw-configure: Add --norecursion and --help options.
+	* mpw-config.in: Translate readme and install files when
+	copying to objdir.
+	* mpw-build.in: Don't always depend on byacc and flex.
+	(install-only-top): New action.
+
+Fri Sep 27 17:39:44 1996  Stu Grossman  (grossman@critters.cygnus.com)
+
+	* configure.in:  You can now configure GDB for the v850.
+
+Tue Sep 24 19:05:12 1996  Stan Shebs  <shebs@andros.cygnus.com>
+
+	* configure.in (noconfigdirs): Don't configure any C++ dirs
+	if targeting D10V.
+
+Tue Sep 17 12:15:31 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* config.sub: Recognize mips64vr5000.
+
+Mon Sep 16 17:00:52 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure.in: Use a single line for host_tools and native_only.
+
+Mon Sep  9 12:21:30 1996  Doug Evans  <dje@canuck.cygnus.com>
+
+	* config.sub, configure.in: Add entries for m32r.
+
+Thu Sep  5 13:52:47 1996  Tom Tromey  <tromey@creche.cygnus.com>
+
+	* Makefile.in (inet-install): Don't run install-gzip.
+
+Wed Sep  4 17:26:13 1996  Stu Grossman  (grossman@critters.cygnus.com)
+
+	* configure.in:  Don't config lots of things for *-*-windows*.
+
+Sat Aug 31 11:45:57 1996  Stan Shebs  <shebs@andros.cygnus.com>
+
+	* mpw-config.in: Test for mpw-true, true, and null-command scripts.
+	(host_libs, host_tools): Copy from configure.in.
+	* mpw-configure: Don't complain about directories not found.
+
+Thu Aug 29 16:44:58 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* configure.in (i[345]86): Recognize i686 for pentium pro.
+	(i[3456]86-*-dgux*): Use config/mh-sysv for the host configuration
+	file.
+
+	* config.guess (i[345]86): Ditto.
+
+Mon Aug 26 18:34:42 1996  Martin M. Hunt  <hunt@pizza.cygnus.com>
+
+	* configure.in (noconfigdirs): Removed gdb for D10V.
+
+Thu Aug 22 17:13:52 1996  Jeffrey A Law  (law@cygnus.com)
+
+	* configure.in: Remove ld, target-libio, target-libg++, and
+	target-libstdc++ from noconfigdirs.
+
+Wed Aug 21 18:56:38 1996  Fred Fish  <fnf@cygnus.com>
+
+	* configure: Fix three locations where shell scripts were
+	being run directly rather than with config_shell.
+
+Tue Aug 20 13:08:47 1996  J.T. Conklin  <jtc@hippo.cygnus.com>
+
+	* configure.in (v850-*-*): Set up initial $noconfigdirs.
+	* config.sub (basic_machine): Recognize v850.
+
+Thu Aug 15 12:19:33 1996  Stan Shebs  <shebs@andros.cygnus.com>
+
+	* mpw-configure: Handle multiple enable/disable options and
+	pass them down recursively, handle -c and -s flags appropriately
+	depending on choice of compiler, add escape mechanism for
+	quoted arguments to gC.
+
+Mon Aug 12 13:15:13 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* configure.in (powerpc*-*-*): For eabi, system V.4, Linux, and
+	solaris targets, use config/mt-ppc to set C{,XX}FLAGS_FOR_TARGETS
+	so that -mrelocatable-lib and -mno-eabi are used.
+
+	* Makefile.in (CONFIGURE_TARGET_MODULES): If target compiler does
+	not support --print-multi-lib, don't abort.
+
+Thu Aug  8 12:18:59 1996  Klaus Kaempf  <kkaempf@progis.de>
+
+	* make-all.com: Run config-a-gas.
+	* setup.com: Don't copy subdirectory files around.
+
+Tue Jul 30 17:49:31 1996  Brendan Kehoe  <brendan@cygnus.com>
+
+	* configure.in (*-*-ose): Remove exclusion of libgloss for this
+	target, it now compiles correctly.
+
+Sat Jul 27 15:10:43 1996  Stan Shebs  <shebs@andros.cygnus.com>
+
+	* mpw-config.in: Generate Mac include for elf/dwarf2.h.
+
+Tue Jul 23 10:47:04 1996  Martin M. Hunt  <hunt@pizza.cygnus.com>
+
+	* configure.in (d10v-*-*): Remove ld from $noconfigdirs.
+
+Mon Jul 22 13:28:51 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+	* configure.in (native_only): Add prms.
+
+Mon Jul 22 12:27:58 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* Makefile.in (GAS_SUPPORT_DIRS): Add make-all.com and setup.com.
+	(BINUTILS_SUPPORT_DIRS): Likewise.
+
+Thu Jul 18 12:55:40 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* configure.in (d10v-*-*): Don't configure ld or gdb until the
+	d10v support is added.
+
+Wed Jul 17 14:33:09 1996  Martin M. Hunt  <hunt@pizza.cygnus.com>
+
+	* configure.in (d10v-*-*): New target.
+
+Mon Jul 15 11:53:00 1996  Jeffrey A Law  (law@cygnus.com)
+
+	* config.guess (HP 9000/811): Recognize this as a PA1.1
+	machine.
+
+Fri Jul 12 23:21:17 1996  Ken Raeburn  <raeburn@cygnus.com>
+
+	* Makefile.in (do-tar-gz): New target, split out from tail end of
+	taz target.  Run each command separately, don't use pipes.
+	(taz): Use it.
+
+Fri Jul 12 12:08:04 1996  Stan Shebs  <shebs@andros.cygnus.com>
+
+	* mpw-configure: Look for g-mpw-make.sed in config/mpw.
+	* mpw-build.in: No builds should depend on building byacc or flex,
+	they are assumed to be installed already.
+
+Fri Jul 12 09:52:52 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* Makefile.in (CONFIGURE_TARGET_MODULES): Set r environment
+	variable that CC_FOR_TARGET needs.
+
+Thu Jul 11 10:09:45 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* Makefile.in (CONFIGURE_TARGET_MODULES): Determine if the multlib
+	options have changed since the last time the subdirectory was
+	configured, and if it has, reconfigure.
+	(CLEAN_TARGET_MODULES): Delete multilib.out and tmpmulti.out, which
+	CONFIGURE_TARGET_MODULES uses to remember the old multilib options.
+
+Wed Jul 10 18:56:59 1996  Doug Evans  <dje@canuck.cygnus.com>
+
+	* Makefile.in (ALL_MODULES,CROSS_CHECK_MODULES,INSTALL_MODULES,
+	CLEAN_MODULES): Add bash.
+	(all-bash): New target.
+
+Mon Jul  8 17:33:14 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* configure.in (mips-sgi-irix6*): Use mh-irix6 instead of mh-irix5.
+
+Mon Jul  1 13:31:35 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* config.sub (basic_machine): Recognize d10v as a valid processor.
+
+Fri Jun 28 12:14:35 1996  Stan Shebs  <shebs@andros.cygnus.com>
+
+	* mpw-configure: Add support for --bindir.
+	* mpw-build.in: Use a GCC-specific build script for GCC actions.
+
+Wed Jun 26 17:20:12 1996  Geoffrey Noer  <noer@cygnus.com>
+
+	* configure.in: add bash, time, gawk to list of hosttools and things
+	to only build for native toolchains
+
+Tue Jun 25 23:09:03 1996  Jason Molenda  (crash@godzilla.cygnus.co.jp)
+
+	* Makefile.in (docdir): Remove.
+
+Tue Jun 25 19:00:08 1996  Jason Molenda  (crash@godzilla.cygnus.co.jp)
+
+	* Makefile.in (datadir): Set to $(prefix)/share.
+
+Mon Jun 24 23:26:07 1996  Geoffrey Noer  <noer@cygnus.com>
+
+	* configure.in: build diff and patch for cygwin32-hosted
+	toolchains.
+
+Mon Jun 24 15:01:12 1996  Joel Sherrill  <joel@merlin.gcs.redstone.army.mil>
+
+	* config.sub: Accept -rtems*.
+
+Sun Jun 23 22:41:54 1996  Geoffrey Noer  <noer@cygnus.com>
+
+	* configure.in: enable dosrel for cygwin32-hosted builds,
+		remove diff from the list of things not buildable
+		via Canadian Cross
+
+Sat Jun 22 11:39:01 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* Makefile.in (TARGET_SUBDIR): Move comment to previous line so we
+	don't get ". ".
+
+Fri Jun 21 17:24:48 1996  Jim Wilson  <wilson@cygnus.com>
+
+	* configure.in (mips*-sgi-irix6*): Set noconfigdirs appropriately.
+
+Thu Jun 20 16:57:40 1996  Ken Raeburn  <raeburn@cygnus.com>
+
+	* Makefile.in (taz): Handle case where tex3patch didn't even get
+	checked out.  Also, if it was found, put the symlink in a new util
+	subdirectory.
+
+Thu Jun 20 12:20:33 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* config.guess (*:Linux:*:*): Add support for PowerPC Linux.
+
+Tue Jun 18 14:24:12 1996  Klaus Kaempf  (kkaempf@progis.de)
+
+	* config.sub: Recognize -openvms.
+	* configure.in (alpha*-*-*vms*): Set noconfigdirs.
+	* make-all.com, setup.com: New files.
+
+Mon Jun 17 16:34:46 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* Makefile.in (taz): tex3patch moved to texinfo/util.
+
+Sat Jun 15 17:13:25 1996  Geoffrey Noer <noer@cygnus.com>
+
+	* configure: enable_gdbtk=no for cygwin32-hosted toolchains
+	* configure.in: remove make from disable-if-Can-Cross list
+		enable gdb if ${host} and ${target} are cygwin32
+
+Fri Jun  7 18:16:52 1996  Harlan Stenn <harlan@pfcs.com>
+
+	* config.guess (i?86-ncr-sysv*):  Emit minor release numbers.
+	Recognize the NCR 4850 machine and NCR Pentium-based platforms.
+
+Wed Jun  5 00:09:17 1996  Per Bothner  <bothner@wombat.gnu.ai.mit.edu>
+
+	* config.guess:  Combine mips-mips-riscos cases, and use cpp to
+	distinguish sysv/svr4/bsd variants.
+	Based on a patch from Harlan Stenn <harlan@pfcs.com>.
+
+Fri Jun  7 14:24:49 1996  Tom Tromey  <tromey@creche.cygnus.com>
+
+	* configure.in: Added copyright notice.
+	* move-if-change: Added copyright notice.
+
+Thu Jun  6 16:27:05 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* configure.in (powerpcle-*-solaris*): Until we get shared
+	libraries working, don't build gdb, sim, make, tcl, tk, or
+	expect.
+
+Tue Jun  4 20:41:45 1996  Per Bothner  <bothner@deneb.cygnus.com>
+
+	* config.guess:  Merge with FSF:
+
+	Mon Jun  3 08:49:14 1996  Karl Heuer  <kwzh@gnu.ai.mit.edu>
+	* config.guess (*:Linux:*:*): Add guess for sparc-unknown-linux.
+
+	Fri May 24 18:34:53 1996  Roland McGrath  <roland@delasyd.gnu.ai.mit.edu>
+	* config.guess (AViiON:dgux:*:*): Fix typo in recognizing mc88110.
+
+	Fri Apr 12 20:03:59 1996  Per Bothner  <bothner@spiff.gnu.ai.mit.edu>
+	* config.guess:  Combine two OSF1 rules.
+	Also recognize field test versions.  From mjr@zk3.dec.com.
+	* config.guess (dgux):  Use /usr/bin/uname rather than uname,
+	because GNU uname does not support -p.  From pmr@pajato.com.
+
+Tue Jun  4 11:07:25 1996  Tom Tromey  <tromey@csk3.cygnus.com>
+
+	* Makefile.in (MAKEDIRS): Removed $(tooldir).
+
+Tue May 28 12:30:50 1996  Stan Shebs  <shebs@andros.cygnus.com>
+
+	* mpw-README: Document GCCIncludes.
+
+Sun May 26 15:16:27 1996  Fred Fish  <fnf@cygnus.com>
+
+	* configure.in (alpha-*-linux*): Set enable_shared to yes.
+
+Tue May 21 15:41:39 1996  Stan Shebs  <shebs@andros.cygnus.com>
+
+	* mpw-configure: Handle --enable-FOO and --disable-FOO.
+
+Mon May 20 10:12:29 1996  Geoffrey Noer  <noer@cygnus.com>
+
+	* configure.in (*-*-cygwin32): Configure make.
+
+Tue May  7 14:19:42 1996  Tom Tromey  <tromey@snuffle.cygnus.com>
+
+	* Makefile.in (inet-install): Quote value of INSTALL_MODULES.
+
+Fri May  3 08:57:17 1996  Tom Tromey  <tromey@lisa.cygnus.com>
+
+	* Makefile.in (all-inet): Depend on all-perl.
+
+	* Makefile.in (inet-install): New target.
+
+	* Makefile.in (all-inet): Depend on all-tcl.
+	(all-inet): Depend on all-send-pr.
+
+Tue Apr 30 13:55:51 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* configure.in (powerpcle-*-solaris*): Turn off tk and tcl
+	temporarily.
+
+Thu Apr 25 11:48:20 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure.in: Don't configure --with-gnu-ld on AIX.
+
+Thu Apr 25 06:33:36 1996  Michael Meissner  <meissner@wogglebug.tiac.net>
+
+	* configure.in (powerpcle-*-solaris*): Turn off gdb temporarily.
+
+Tue Apr 23 09:07:39 1996  Tom Tromey  <tromey@creche.cygnus.com>
+
+	* Makefile.in (ALL_MODULES): Added all-inet.
+	(CROSS_CHECK_MODULES): Added check-inet.
+	(INSTALL_MODULES): Added install-inet.
+	(CLEAN_MODULES): Added clean-inet.
+	(all-indent): New target.
+
+	* configure.in (host_tools): Added inet.
+	(native_only): Added inet.
+	(noconfigdirs): Added inet.
+
+Fri Apr 19 15:35:29 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure.in: Don't configure libgloss if we are not configuring
+	newlib.
+
+Wed Apr 17 19:30:01 1996  Rob Savoye  <rob@chinadoll.cygnus.com>
+
+	* configure.in: Don't configure libgloss for unsupported
+	architectures.
+
+Tue Apr 16 11:17:05 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* Makefile.in (CLEAN_MODULES): Add clean-apache.
+
+Mon Apr 15 15:09:05 1996  Tom Tromey  <tromey@creche.cygnus.com>
+
+	* Makefile.in (ALL_MODULES): Include all-apache.
+	(CROSS_CHECK_MODULES): Include check-apache.
+	(INSTALL_MODULES): Include install-apache.
+	(all-apache): New target.
+
+	* configure.in: Added apache everywhere perl is seen.
+
+Mon Apr 15 14:59:13 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* Makefile.in: Add support for clean-{module} and
+	clean-target-{module} rules.
+
+Wed Apr 10 21:37:41 PDT 1996  Marilyn E. Sander <msander@cygnus.com>
+
+	* configure.in (*-*-ose) do not build libgloss.
+
+Mon Apr  8 16:16:20 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* config.guess (prep*:SunOS:5.*:*): Turn into
+	powerpele-unknown-solaris2.
+
+Mon Apr  8 14:45:41 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure.in: Permit --enable-shared to specify a list of
+	directories.
+
+Fri Apr  5 08:17:57 1996  Jason Molenda  (crash@phydeaux.cygnus.com)
+
+	* configure.in (host==solaris): Pass only the first word of $CC
+	to /usr/bin/which when checking if we're using /usr/ccs/bin/cc.
+
+Fri Apr  5 03:16:13 1996  Jason Molenda  (crash@phydeaux.cygnus.com)
+
+	* Makefile.in (BASE_FLAGS_TO_PASS): pass down $(MAKE).
+
+Thu Mar 28 14:11:11 1996  Tom Tromey  <tromey@creche.cygnus.com>
+
+	* Makefile.in (ALL_MODULES): Include all-perl.
+	(CROSS_CHECK_MODULES): Include check-perl.
+	(INSTALL_MODULES): Include install-perl.
+	(ALL_X11_MODULES): Include all-guile.
+	(CHECK_X11_MODULES): Include check-guile.
+	(INSTALL_X11_MODULES): Include install-guile.
+	(all-perl): New target.
+	(all-guile): New target.
+
+	* configure.in (host_tools): Include perl and guile.
+	(native_only): Include perl and guile.
+	(noconfigdirs): Don't build guile and perl; no ports have been
+	done.
+
+Tue Mar 26 21:18:50 1996  Andrew Cagney  <cagney@kremvax.highland.com.au>
+
+	* configure (--enable-*): Handle quoted option lists such as
+	--enable-sim-cflags='-g0 -O' better.
+
+Thu Mar 21 11:53:08 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* Makefile.in ({,inst}all-target): New rule so we can make and
+	install all of the target directories easily.
+
+Wed Mar 20 18:10:57 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* configure.in: Add missing global flag in sed substitution when
+	deleting `target-' from ${configdirs}.
+
+Thu Mar 14 19:15:06 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* Makefile.in (DO_X): Don't get confused if CC contains `=' in an
+	option.
+
+	* configure.in (mips*-nec-sysvr4*): Use a host_makefile_frag of
+	config/mh-necv4.
+
+	* install.sh: Correct misspelling of transformbasename.
+
+	* config.guess: Recognize mips-*-sysv*.
+
+Mon Mar 11 15:36:42 1996  Dawn Perchik  <dawn@critters.cygnus.com>
+
+	* config.sub: Recognize mon960.
+
+Sun Mar 10 13:18:38 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure: Restore Canadian Cross handling of BISON and LEX,
+	removed in Feb 20 change.
+
+Fri Mar  8 20:07:09 1996  Per Bothner  <bothner@kalessin.cygnus.com>
+
+	* README:  Suggestions from Torbjorn Granlund <tege@matematik.su.se>:
+	Mention make install.  Remove the old copyright date as well the
+	clumsy and rather pointless copyright on the README file.
+
+Fri Mar  8 17:51:35 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* Makefile.in ($(CONFIGURE_TARGET_MODULES)): If there is a
+	Makefile after running symlink-tree, then run `make distclean' to
+	avoid clobbering any generated files in srcdir.
+
+Tue Mar  5 08:21:44 1996  J.T. Conklin  <jtc@rtl.cygnus.com>
+
+	* configure.in (m68k-*-netbsd*): Build everything now.
+
+Wed Feb 28 12:25:46 1996  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* Makefile.in (taz): Fix quoting.
+
+Tue Feb 27 11:33:57 1996  Doug Evans  <dje@charmed.cygnus.com>
+
+	* configure.in (sparclet-*-*): Build everything now.
+
+Tue Feb 27 14:31:51 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* configure.in (m68k-*-linux*): New host.
+
+Mon Feb 26 14:32:44 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure: Check for bison before byacc.
+
+Tue Feb 20 23:12:35 1996  Stu Grossman  (grossman@critters.cygnus.com)
+
+	* Makefile.in configure:  Change the way LEX and BISON/YACC are
+	set.  configure now defines DEFAULT_LEX and DEFAULT_YACC by
+	searching PATH.  These are used as fallbacks by Makefile.in if
+	flex/bison/byacc aren't in objdir.
+
+Mon Feb 19 11:45:30 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* Makefile.in: Make everything which depends upon all-bfd also
+	depend upon all-opcodes, in case --with-commonbfdlib is used.
+
+Thu Feb 15 19:50:50 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* configure.in (host *-*-cygwin32): Don't build gdb if we are
+	building NT native compilers on Unix.
+
+Thu Feb 15 17:42:25 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure.in: Don't get CC from the host Makefile fragment if we
+	can find gcc in PATH, or if this is a Canadian Cross.  Move the
+	Solaris test for /usr/ucb/cc to the post target script, just after
+	the compiler sanity test.
+
+Wed Feb 14 16:57:40 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* config.sub: Merge with FSF.
+
+Tue Feb 13 14:27:48 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* Makefile.in (RPATH_ENVVAR): New variable.
+	(REALLY_SET_LIB_PATH): Use it.
+	* configure.in: On HP/UX, set RPATH_ENVVAR to SHLIB_PATH.
+
+Mon Feb 12 15:28:49 1996  Doug Evans  <dje@charmed.cygnus.com>
+
+	* config.sub, configure.in: Recognize sparclet cpu.
+
+Mon Feb 12 15:33:59 1996  Christian Bauernfeind <chrisbfd@theorie3.physik.uni-erlangen.de>
+
+	* config.guess:  Support m68k-cbm-sysv4.
+
+Sat Feb 10 12:06:42 1996  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* config.guess (*:Linux:*:*): Guess m68k-unknown-linux and
+	m68k-unknown-linuxaout from linker help string.  Put quotes around
+	$ld_help_string.
+
+Thu Dec  7 09:03:24 1995  Tom Horsley  <Tom.Horsley@mail.hcsc.com>
+
+	* config.guess (powerpc-harris-powerunix): Add guess for port
+	to new target.
+
+Thu Feb  8 15:37:52 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+	* config.guess (UNAME_VERSION): Recognize X4.x as an OSF version.
+
+Mon Feb  5 16:36:51 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure.in: If --enable-shared was used, set SET_LIB_PATH to
+	$(REALLY_SET_LIB_PATH) in Makefile.
+	* Makefile.in (SET_LIB_PATH): New variable.
+	(REALLY_SET_LIB_PATH): New variable.
+	($(DO_X)): Use $(SET_LIB_PATH).
+	(install.all, gcc-no-fixedincludes, $(ALL_MODULES)): Likewise.
+	($(NATIVE_CHECK_MODULES), $(CROSS_CHECK_MODULES)): Likewise.
+	($(INSTALL_MODULES), $(CONFIGURE_TARGET_MODULES)): Likewise.
+	($(ALL_TARGET_MODULES), $(CHECK_TARGET_MODULES)): Likewise.
+	($(INSTALL_TARGET_MODULES), $(ALL_X11_MODULES)): Likewise.
+	($(CHECK_X11_MODULES), $(INSTALL_X11_MODULES)): Likewise.
+	(all-gcc, all-bootstrap, check-gcc, install-gcc): Likewise.
+	(install-dosrel): Likewise.
+	(all-opcodes): Depend upon all-libiberty.
+
+Sun Feb  4 16:51:11 1996  Steve Chamberlain  <sac@slash.cygnus.com>
+
+	* config.guess (*:CYGWIN*): New
+
+Sat Feb  3 10:42:35 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* Makefile.in (all-target-winsup): All all-target-libiberty.
+
+Fri Feb  2 17:58:56 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* configure.in (noconfigdirs): Add missing # in front of comment.
+
+Thu Feb  1 14:38:13 1996  Geoffrey Noer  <noer@cygnus.com>
+
+	* configure.in: add second pass to things added to noconfigdirs
+	so *-gm-magic can exclude libgloss properly.
+
+Thu Feb  1 11:10:16 1996  Stan Shebs  <shebs@andros.cygnus.com>
+
+	* mpw-configure (extralibs_name, rez_name): Set correctly
+	for MWC68K compiler.
+
+	* mpw-README: Add more info on the necessary build tools.
+
+Thu Feb  1 10:22:38 1996  Steve Chamberlain  <sac@slash.cygnus.com>
+
+	* configure.in, config.sub: Recognize cygwin32.
+
+Wed Jan 31 14:17:10 1996  Richard Henderson  <rth@tamu.edu>
+
+	* config.guess, config.sub: Recognize A/UX.
+
+Wed Jan 31 13:52:14 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* config.sub: Merge with gcc/config.sub.
+
+Thu Jan 25 11:01:10 1996  Raymond Jou  <rjou@mexican.cygnus.com>
+
+	* mpw-build.in (do-binutils): Add build of stamps.
+
+Thu Jan 25 17:05:26 1996  James G. Smith  <jsmith@cygnus.co.uk>
+
+	* config.sub: Add recognition for mips64vr4100*-* targets.
+
+Wed Jan 24 12:47:55 1996  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+	* test-build.mk: Add checking of `hpux9' rather than just `hpux'.
+	Add creation of gconfigargs with `--enable-shared' turned on.
+	($(host)-stamp-stage2-configured): Pass $(gconfigargs).
+	($(host)-stamp-stage3-configured): Likewise.
+	(HOLES): Add chatr and ldd.
+	(i386-ncr-sysv4.3*): Add use of /usr/ccs/bin in the PATH and HOLE_DIRS.
+
+Wed Jan 24 20:32:30 1996  Torbjorn Granlund  <tege@noisy.matematik.su.se>
+
+	* configure: Pass --nfp to recursive configures.
+
+Mon Jan 22 10:41:56 1996  Steve Chamberlain  <sac@slash.cygnus.com>
+
+	* Makefile.in (DLLTOOL): New.
+	(DLLTOOL_FOR_TARGET): New.
+	(EXTRA_HOST_FLAGS): Pass down DLLTOOL.
+	(EXTRA_TARGET_FLAGS): Ditto.
+	(EXTRA_GCC_FLAGS): Ditto.
+	(CONFIGURE_TARGET_MODULES): Ditto.
+	(DO_X): Ditto.
+	* configure: Add DLLTOOL.
+
+Fri Jan 19 13:30:15 1996  Stan Shebs  <shebs@andros.cygnus.com>
+
+	SCO OpenServer 5 changes from Robert Lipe <robertl@dgii.com>:
+	* configure.in (i[345]86-*-sco3.2v5*): Use mh-sysv instead of
+	mh-sco, since old workarounds no longer needed, and don't
+	build ld, since libraries have weak symbols in COFF.
+
+Sun Jan 14 23:01:31 1996  Fred Fish  <fnf@cygnus.com>
+
+	* Makefile.in (CONFIGURE_TARGET_MODULES): Add missing ';'.
+
+Fri Jan 12 15:25:35 1996  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure.in: Make sure that ${CC} can be used to compile an
+	executable.
+
+Sat Jan  6 07:23:33 1996  Michael Meissner  <meissner@wogglebug.tiac.net>
+
+	* Makefile.in (all-gdb): Depend on $(GDB_TK).
+	* configure (GDB_TK): Set GDB_TK to either "all-tcl all-tk" or
+	nothing depending on whether gdbtk is being built.
+
+Wed Jan  3 17:54:41 1996  Doug Evans  <dje@canuck.cygnus.com>
+
+	* Makefile.in (newlib.tar.gz): Delete building of newlib's info files.
+
+Mon Jan  1 19:09:14 1996  Brendan Kehoe  <brendan@rtl.cygnus.com>
+
+	* configure.in (noconfigdirs): Put ld or gas in this early, if the
+	user specifically used --with-gnu-ld=no or --with-gnu-as=no.
+
+Sat Dec 30 16:08:57 1995  Doug Evans  <dje@canuck.cygnus.com>
+
+	* config-ml.in: Add support for
+	--disable-{softfloat,m68881,m68000,m68020} on m68*-*-*.
+	Simplify setting of multidirs from --disable-foo.
+
+Fri Dec 29 07:56:11 1995  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* Makefile.in (EXTRA_GCC_FLAGS): If any of the make variables
+	LANGUAGES, BOOT_CFLAGS, STMP_FIXPROTO, LIMITS_H_TEST,
+	LIBGCC1_TEST, LIBGCC2_CFLAGS, LIBGCC2_INCLUDES, and ENQUIRE are
+	non-empty, pass them on to the	GCC make.
+	(all-bootstrap): New rule that is like all-gcc, except it executes
+	the GCC bootstrap rule instead of the GCC all rule.
+
+Wed Dec 27 15:51:48 1995  Doug Evans  <dje@canuck.cygnus.com>
+
+	* config-ml.in (ml_realsrcdir): New, to account for ${subdir}.
+
+Tue Dec 26 11:45:31 1995  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* config.guess (AViiON:dgux:*:*): Update from FSF to add pentium
+	DG/UX support.
+
+Fri Dec 15 10:01:27 1995  Stan Cox  <coxs@dg-rtp.dg.com>
+
+	* config.sub (i*86*) Change [345] to [3456]
+
+Wed Dec 20 17:41:40 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+	* configure.in (noconfigdirs): Add gas or ld if --with-gnu-as=no or
+	--with-gnu-ld=no.
+
+Wed Dec 20 15:15:35 1995  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* config-ml.in (rs6000*, powerpc*): Add switches to control which
+	AIX multilibs get built.
+
+Mon Dec 18 17:55:46 1995  Jason Molenda  (crash@phydeaux.cygnus.com)
+
+	* configure.in (i386-win32): Don't build expect if we're not
+	building the tcl subdir.
+
+Mon Dec 18 11:47:19 1995  Stan Shebs  <shebs@andros.cygnus.com>
+
+	* Makefile.in: (configure-target-examples, all-target-examples):
+	New targets, configure and build example programs.
+
+Fri Dec 15 16:13:03 1995  Stan Shebs  <shebs@andros.cygnus.com>
+
+	* mpw-configure: If an mpw-config.in generated a file mk.sed,
+	use it as input to sedit the generated MPW makefile.
+	* mpw-README: Add a suggestion about Gestalt.h.
+
+Wed Dec 13 16:43:51 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+	* config.sub: Accept *-*-ieee*.
+
+Tue Dec 12 11:52:57 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+	* Makefile.in (local-distclean): Remove $(TARGET_SUBDIR).  From
+	Ronald F. Guilmette <rfg@monkeys.com>.
+
+Mon Dec 11 15:31:58 1995  Jason Molenda  (crash@phydeaux.cygnus.com)
+
+	* configure.in (host==powerpc-pe): Add many directories to noconfigdirs
+	for powerpc-pe native.
+	(target==i386-win32): add tcl, make to noconfigdirs if canadian cross.
+	(target==powerpc-pe): duplicate i386-win32 entry.
+
+Sat Dec  9 14:58:28 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* configure.in (noconfigdirs): Exclude target-newlib for all versions
+	of vxworks, not just vxworks5.1.
+
+Mon Dec  4 12:05:40 1995  Stan Shebs  <shebs@andros.cygnus.com>
+
+	* mpw-configure: Add support for exec-prefix.
+
+Mon Dec  4 10:22:50 1995  Jeffrey A. Law  <law@rtl.cygnus.com>
+
+	* config.guess: Recognize HP model 816 machines as having
+	a PA1.1 processor.
+
+Mon Dec  4 12:38:15 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure: Ignore new autoconf configure options.
+
+Thu Nov 30 16:57:33 1995  Per Bothner  <bothner@wombat.gnu.ai.mit.edu>
+
+	* config.guess:  Recognize Pentium under SCO.
+	From Robert Lipe <robertl@arnet.com>.
+
+Wed Nov 29 13:49:08 1995  J.T. Conklin  <jtc@rtl.cygnus.com>
+
+	* configure.in (noconfigdirs): Disable target-libio on v810-*-*.
+
+Wed Nov 29 12:12:01 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure.in: Don't configure gas for alpha-dec-osf*.
+
+Tue Nov 28 17:16:48 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure.in: Default to --with-stabs for some targets for which
+	it makes sense: mips*-*-*, alpha*-*-osf*, i[345]86*-*-sysv4* and
+	i[345]86*-*-unixware*.
+
+Mon Nov 27 13:44:15 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+	* config-ml.in: Get list of multidirs using gcc --print-multi-lib
+	rather than basing it on the target.  Simplify handling of options
+	controlling which directories to configure.  Remove extraneous
+	slash in multi-clean target.
+
+Fri Nov 24 17:29:29 1995  Doug Evans  <dje@deneb.cygnus.com>
+
+	* config-ml.in: Prefix more variables with ml_ so they don't collide
+	with configure's.
+
+Wed Nov 22 11:27:02 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure: Don't turn -v into --v.
+
+Tue Nov 21 16:48:02 1995  Doug Evans  <dje@deneb.cygnus.com>
+
+	* configure.in (targargs): Fix typo.
+
+	* Makefile.in (DEVO_SUPPORT): Add symlink-tree.
+
+Tue Nov 21 14:08:28 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure.in: Strip --host and --target options from
+	CONFIG_ARGUMENTS, and always configure for --host only.  Add
+	--with-cross-host option when building with a cross-compiler.
+	* configure: Canonicalize the arguments put into config.status by
+	always using `=' for an option with an argument.  Pass a presumed
+	--host or --target explicitly.
+
+Fri Nov 17 17:50:30 1995  Stan Shebs  <shebs@andros.cygnus.com>
+
+	* config.sub: Merge -macos*, -magic*, -pe*, and -win32 cases
+	into general OS recognition case.
+
+Fri Nov 17 17:42:25 1995  Jason Molenda  (crash@phydeaux.cygnus.com)
+
+	* configure.in (target_configdirs): add target-winsup only
+	for win32 target systems.
+
+Thu Nov 16 14:04:47 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+	* Makefile.in (all-target-libgloss): Depend upon
+	configure-target-newlib, since when libgloss is built it looks to
+	see if the newlib directory exists.
+
+Wed Nov 15 14:47:52 1995  Ken Raeburn  <raeburn@cygnus.com>
+
+	* Makefile.in (DEVO_SUPPORT): Use config-ml.in instead of
+	cfg-ml-*.in.
+
+Wed Nov 15 11:45:23 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure: Handle LD and LD_FOR_TARGET when configuring a
+	Canadian Cross.
+
+Tue Nov 14 14:56:11 1995  Jason Molenda  (crash@phydeaux.cygnus.com)
+
+	* configure.in (target_libs): add target-winsup.
+	(target==i386-win32): add patch diff flex make to $noconfigdirs.
+	(target==ppcle-pe): remove ld from $noconfigdirs.
+
+Tue Nov 14 01:25:50 1995  Doug Evans  <dje@canuck.cygnus.com>
+
+	* Makefile.in (CONFIGURE_TARGET_MODULES): Pass --with-target-subdir.
+	Preserve relative path names in $srcdir.  Build symlink tree if
+	configuring cross target dir and srcdir=. (= no VPATH support).
+	(configure-target-libg++): Depend on configure-target-librx.
+	* cfg-ml-com.in, cfg-ml-pos.in: Deleted.
+	* config-ml.in: New file.
+	* symlink-tree: New file.
+	* configure: Ensure srcdir="." if that's what it is.
+
+Mon Nov 13 12:34:20 1995  Stan Shebs  <shebs@andros.cygnus.com>
+
+	* mpw-README: Clarify some phrasing, add notes about CodeWarrior
+	includes and FLEX_SKELETON setting.
+	* mpw-configure (--with-gnu-ld): New option, controls whether
+	to use PPCLink or ld with PowerMac GCC.
+	* mpw-build.in (all-grez, do-grez, install-grez): New targets.
+	* mpw-config.in: Configure grez if targeting Mac.
+
+	* config.sub: Accept pmac and pmac-mpw as names for PowerMacs,
+	accept mpw and mac-mpw as names for m68k Macs, change macos7 to
+	just macos.
+	* configure.in: Configure grez resource compiler if targeting Mac.
+	* Makefile.in (all-grez, install-grez): New targets.
+
+Wed Nov  8 17:33:51 1995  Jason Merrill  <jason@yorick.cygnus.com>
+
+	* configure: CXX defaults to gcc, not g++.  If we find
+	gcc in the path, set CC to gcc -O2.
+
+Tue Nov  7 15:45:17 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure: Default ${build} correctly.  Avoid picking up extra
+	spaces when reading CC and CXX from Makefile.  When doing a
+	Canadian Cross, use plausible default values for numerous
+	variables.
+	* configure.in: When doing a Canadian Cross, don't try to
+	configure tools whose configure script can't handle it.
+
+Mon Nov  6 19:32:17 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* cfg-ml-com.in (sh-*-*): Add m2 and ml/m2 to multidirs.
+
+Sun Nov  5 00:15:41 1995  Per Bothner  <bothner@kalessin.cygnus.com>
+
+	* configure:  Remove dubious bug reporting address.
+
+Fri Nov  3 08:17:54 1995  Per Bothner  <bothner@kalessin.cygnus.com>
+
+	* Makefile.in ($(CONFIGURE_TARGET_MODULES)):  If subdir has
+	configure script, run that instead of this directory's configure.
+	In either case, print a message that we're configuring the sub-dir.
+
+Thu Nov  2 23:23:36 1995  Per Bothner  <bothner@kalessin.cygnus.com>
+
+	* configure.in: Before checking for the existence of various files,
+	use sed to filter out "target-".
+
+Thu Nov  2 13:24:56 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+	* Makefile.in (DO_X): Split rule to decrease command line length
+	for systems with small ARG_MAX values.  From phdm@info.ucl.ac.be
+	(Philippe De Muyter).
+
+Wed Nov  1 15:18:35 1995  Jason Molenda  (crash@phydeaux.cygnus.com)
+
+	* Makefile.in (all-patch): depend on all-libiberty.
+
+Wed Nov  1 12:23:20 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure.in: If the only directory in target_configdirs which
+	actually exists is libiberty, then set target_configdirs to empty,
+	to avoid trying to build a target libiberty in a gas or gdb
+	distribution.
+
+Tue Oct 31 17:52:39 1995  J.T. Conklin  <jtc@slave.cygnus.com>
+
+	* configure.in (host_makefile_frag): Use m68k-sun-sunos* instead
+	of m68k-sun-* when selecting mh-sun3 to avoid matching NetBSD/sun3
+	systems.
+
+Tue Oct 31 16:57:32 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* configure.in (copy_dirs): Use sys-include instead of include
+	for --with-headers option.
+
+Tue Oct 31 10:29:36 1995  steve chamberlain  <sac@slash.cygnus.com>
+
+	* Makefile.in, configure.in: Make winsup builds work with
+	new scheme.
+
+Mon Oct 30 18:57:09 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure.in: Build the linker on AIX.
+
+Mon Oct 30 12:27:16 1995  Per Bothner  <bothner@kalessin.cygnus.com>
+
+	* Makefile.in (CC_FOR_TARGET, CXX_FOR_TARGET):  Add $(TARGET_SUBDIR)
+	where needed.
+
+Mon Oct 30 12:45:25 1995  Doug Evans  <dje@cygnus.com>
+
+	* Makefile.in (all-gcc): Fix typo.
+
+Sat Oct 28 10:27:59 1995  Per Bothner  <bothner@kalessin.cygnus.com>
+
+	* Makefile.in ($(CHECK_TARGET_MODULES)):  Fix typo.
+
+Fri Oct 27 23:14:12 1995  Per Bothner  <bothner@kalessin.cygnus.com>
+
+	* configure.in:  Rename libFOO to target-libFOO, and xiberty
+	to target-xiberty, to provide more flexibility.
+	(target_subdir):  Define.  Create if cross.
+	Set TARGET_SUBDIR in Makefile to ${target_subdir}.
+	* Makefile.in:  Rename all-libFOO -> all-target-libFOO, all-xiberty
+	-> all-target-libiberty, configure-libFOO -> configure-target-libFOO,
+	check-libFOO -> check-target-libFOO, etc.
+	($(DO_X)):  Iterate over TARGET_CONFIGDIRS after SUBDIRS.
+	($(CONFIGURE_TARGET_MODULES), $(CHECK_TARGET_MODULES),
+	$(ALL_TARGET_MODULES), $(INSTALL_TARGET_MODULES)): Update accordingly.
+	(configure-target-XXX):  Depend on $(ALL_GCC), not all-gcc, to
+	allow ALL_GCC="" to only configure.
+	(DEVO_SUPPORT):  Add cfg-ml-com.in and cfg-ml-pos.in.
+	(ETC_SUPPORT, ETC_SUPPORT_PFX):  Merge;  update 'taz' accordingly.
+	(LIBGXX_SUPPORT_DIRS):  Remove xiberty.
+
+Sat Oct 28 01:53:49 1995  Ken Raeburn  <raeburn@cygnus.com>
+
+	* Makefile.in (taz): Build "info" in etc explicitly.
+
+Fri Oct 27 09:32:30 1995  Stu Grossman  (grossman@cygnus.com)
+
+	* configure.in:  Make sure that CC is undefined (as opposed to
+	null) if toplevel/config/mh-{host} doesn't define it.  Fixes a
+	problem with autoconf trying to configure on a host without GCC.
+
+Thu Oct 26 22:35:01 1995  Stan Shebs  <shebs@andros.cygnus.com>
+
+	* mpw-configure: Set host alias from choice of host compiler,
+	only use generic MPW Makefile sed if present, edit a file
+	named "hacked_Makefile.in" instead of "Makefile.in" if present.
+	* mpw-README: Add problem notes about CW6 and CW7.
+
+Thu Oct 26 05:45:10 1995  Ken Raeburn  <raeburn@kr-pc.cygnus.com>
+
+	* Makefile.in (taz): Use ";" instead of ";;".
+
+Wed Oct 25 15:18:24 1995  Per Bothner  <bothner@kalessin.cygnus.com>
+
+	* Makefile.in (taz):  Grep for '^diststuff:' or '^info:' in
+	sub-directory Makefiles, instead of using DISTSTUFFDIRS and
+	DISTDOCDIRS.
+	(DISTSTUFFDIRS, DISTDOCDIRS):  Removed - no longer used.
+	(newlib.tar.gz):  Don't pass DISTDOCDIRS to recursive make.
+
+Wed Oct 25 14:43:55 1995  Per Bothner  <bothner@kalessin.cygnus.com>
+
+	* Makefile.in (DISTDOCDIRS):  Remove ld gprof bnutils gas libg++ gdb
+	and gnats, because they are now subsumed by DISTSTUFFDIRS.
+	Move bfd to DISTSTUFFDIRS.
+
+Tue Oct 24 18:19:09 1995  Jason Molenda  (crash@phydeaux.cygnus.com)
+
+	* Makefile.in (X11_LIB): Removed.
+	(X11_FLAGS_TO_PASS): pass only X11_EXTRA_CFLAGS and X11_EXTRA_LIBS.
+
+	* configure.in (host_makefile_frag): mh-aix & mh-sun removed.
+
+Sun Oct 22 13:04:42 1995  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* cfg-ml-com.in (powerpc*): Shorten some of the multilib directory
+	names.
+
+Fri Oct 20 18:02:10 1995  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* cfg-ml-com.in (powerpc*-eabi*): Add mcall-aixdesc varients.
+
+Thu Oct 19 10:40:57 1995  steve chamberlain  <sac@slash.cygnus.com>
+
+	* configure.in (i[345]86-*-win32): Always build newlib.
+	Don't configure cvs, autoconf or texinfo.
+	* Makefile.in (LD_FOR_TARGET): New.
+	(BASE_FLAGS_TO_PASS, EXTRA_TARGET_FLAGS, CONFIGURE_TARGET_MODULES):
+	Pass down LD_FOR_TARGET.
+
+Wed Oct 18 15:53:56 1995  steve chamberlain  <sac@slash.cygnus.com>
+
+	* winsup: New directory.
+	* Makefile.in: Build winsup.
+	* configure.in: Winsup is configured when target is win32.
+	Can only build win32 target GDB when native.
+
+Mon Oct 16 09:42:31 1995  Jeffrey A Law  (law@cygnus.com)
+
+	* config.guess: Recognize HP model 819 machines as having
+	a PA 1.1 processor.
+
+Mon Oct 16 10:49:43 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure: Fix sed loop which substitutes for CC and CXX to
+	avoid bug found in various sed implementations.
+
+Wed Oct 11 16:16:20 1995  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* cfg-ml-com.in (powerpc-*-eabisim): Delete separate rule for
+	simulator.  Use standard powerpc-*-eabi*.
+
+Mon Oct  9 17:21:56 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure.in: Stop putting gas and binutils in noconfigdirs for
+	powerpc-*-aix* and rs6000-*-*.
+
+Mon Oct  9 12:38:40 1995  Michael Meissner  <meissner@cygnus.com>
+
+	* cfg-ml-com.in (powerpc*-*-eabisim*): Add support for building
+	-mcall-aixdesc libraries.
+
+Fri Oct  6 16:17:57 1995  Ken Raeburn  <raeburn@cygnus.com>
+
+	Mon Sep 25 22:49:32 1995  Andreas Schwab  <schwab@issan.informatik.uni-dortmund.de>
+
+	* config.sub (arm | armel | armeb): Fix shell syntax.
+
+Fri Oct  6 14:40:28 1995  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* cfg-ml-com.in ({powerpc,rs6000}-ibm-aix*): Add multilibs for
+	-msoft-float and -mcpu=common support.
+	(powerpc*-*-eabisim*): Add support for building -mcall-aix
+	libraries.
+
+Thu Oct  5 13:26:37 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+	* configure.in: Allow configuration and build of emacs19 for the alpha.
+
+Wed Oct  4 22:05:36 1995  Jason Molenda  (crash@phydeaux.cygnus.com)
+
+	* configure.in (CC): Get ^CC, not just any old CC, from
+	${host_makefile_frag}.
+
+Wed Oct  4 21:55:00 1995  Jason Molenda  (crash@phydeaux.cygnus.com)
+
+	* configure.in (CC): Try to get CC from
+	${srcdir}/${host_makefile_frag}, not ${host_makefile_frag}.
+
+Wed Oct  4 21:44:12 1995  Jason Molenda  (crash@phydeaux.cygnus.com)
+
+	* Makefile.in (TARGET_CONFIGDIRS): configure targetdirs
+	only if it exists in $(srcdir).
+
+Wed Oct  4 11:52:31 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure: If CC and CXX are not set in the environment, set
+	them, based on either an existing Makefile or on searching for gcc
+	in PATH.  Substitute for CC and CXX in Makefile.
+	* configure.in: Remove libm from target_libs.  Separate
+	target_configdirs from configdirs.  If CC is not set in
+	environment, try to get it from a host Makefile fragment.  Rewrite
+	changes of configdirs to use skipdirs instead.  A few minor
+	tweaks.  Take directories out of target_configdirs as they are
+	taken out of configdirs.  Remove existing Makefile files from
+	subdirectories.  Substitute for TARGET_CONFIGDIRS and
+	CONFIG_ARGUMENTS in Makefile.
+	* Makefile.in (TARGET_CONFIGDIRS): New variable, automatically set
+	by configure.in.
+	(CONFIG_ARGUMENTS): Likewise.
+	(CONFIGURE_TARGET_MODULES): New variable.
+	($(DO_X)): Loop over TARGET_CONFIGDIRS as well as SUBDIRS.
+	($(CONFIGURE_TARGET_MODULES)): New target.
+	(configure-libg++, configure-libio): New targets.
+	(all-libg++): Depend upon configure-libg++.
+	(all-libio): Depend upon configure-libio.
+	(configure-libgloss, all-libgloss): New targets.
+	(configure-libstdc++): New target.
+	(all-libstdc++): Depend upon configure-libstdc++.
+	(configure-librx, all-librx): New targets.
+	(configure-newlib): New target.
+	(all-newlib): Depend upon configure-newlib
+	(configure-xiberty): New target.
+	(all-xiberty): Depend upon configure-xiberty.
+
+Sat Sep 30 04:32:59 1995  Jason Molenda (crash@phydeaux.cygnus.com)
+
+	* configure.in (host i[345]86-*-win32):  Expand the
+	noconfigdirs again.
+
+Thu Sep 28 21:18:49 1995  Stan Shebs  <shebs@andros.cygnus.com>
+
+	* mpw-configure: Fix sed command file name.
+
+Thu Sep 28 17:39:56 1995  steve chamberlain  <sac@slash.cygnus.com>
+
+	* configure.in (host i[345]86-*-win32): Reduce the
+	noconfigdirs again.
+
+Wed Sep 27 12:24:00 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure.in: Don't configure ld and gdb for powerpc*-*-winnt*
+	or powerpc*-*-pe*, since they are not yet supported.
+
+Tue Sep 26 14:30:01 1995  Stan Shebs  <shebs@andros.cygnus.com>
+
+	Add PowerMac support and many other enhancements.
+	* mpw-configure: New option --cc to select compiler to use,
+	paste options set according to --cc into the generated
+	Makefile, generate the Makefile by sed'ing the Unix Makefile.in
+	if mpw-make.sed is present.
+	* mpw-config.in: Don't test for gC1, test for mpw-touch,
+	add forward includes for PowerPC include files.
+	* mpw-build.in: Build using Makefile.PPC if present.
+	(do-byacc, etc): Remove separate version resource builds.
+	(do-gas): Build "stamps" before "all".
+	(do-gcc): Build "stamps-h" and "stamps-c" before "all".
+	* mpw-README: Update to reflect --cc option, PowerMac support,
+	and recently-reported compatibility problems.
+
+Fri Sep 22 12:15:42 1995  Doug Evans  <dje@deneb.cygnus.com>
+
+	* cfg-ml-com.in (m68*-*-*): Only build multilibs for
+	embedded m68k systems (-aout, -coff, -elf, -vxworks).
+	(--with-multilib-top): Pass to recursive invocations.
+
+Tue Sep 19 13:51:05 1995  J.T. Conklin  <jtc@blues.cygnus.com>
+
+	* configure.in (noconfigdirs): Disable libg++ and libstdc++ on
+	v810-*-*.
+
+Mon Sep 18 23:08:26 1995  J.T. Conklin  <jtc@rtl.cygnus.com>
+
+	* configure.in (noconfigdirs): Disable bfd, binutils, gas, gcc,
+	gdb, ld and opcodes on v810-*-*.
+
+Tue Sep 12 18:03:31 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+	* Makefile.in (DO_X): Change do-realclean to do-maintainer-clean.
+	(local-maintainer-clean): New target.
+	(maintainer-clean): New target.
+	(realclean): Just depend upon maintainer-clean.
+
+Fri Sep  8 17:11:14 1995  J.T. Conklin  <jtc@rtl.cygnus.com>
+
+	* configure.in (noconfigdirs): Disable gdb on m68k-*-netbsd*.
+
+Fri Sep  8 16:46:29 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure.in: Build ld in mips*-*-bsd* case.
+
+Thu Sep  7 20:03:41 1995  Ken Raeburn  <raeburn@cygnus.com>
+
+	* config.sub: Accept -lites* OS.  From Ian Dall.
+
+Fri Sep  1 08:06:58 1995  James G. Smith  <jsmith@beauty.cygnus.com>
+
+	* config.sub: recognise mips64vr4300 and mips64vr4300el as valid
+	targets.
+
+Wed Aug 30 21:06:50 1995  Jason Molenda  (crash@phydeaux.cygnus.com)
+
+	* configure.in: treat i386-win32 canadian cross the same as
+	i386-go32 canadian cross.
+
+Thu Aug 24 14:53:20 1995  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* cfg-ml-com.in (powerpc*-*-eabisim): Add support for PowerPC
+	running under the simulator to build a reduced set of libraries.
+	(powerpc-*-eabiaix): Add fine grained multilib support added to
+	other powerpc targets yesterday.
+
+Wed Aug 23 09:41:56 1995  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* cfg-ml-com.in (powerpc*): Add support for -disable-biendian,
+	-disable-softfloat, -disable-relocatable, -disable-aix, and
+	-disable-sysv to control which multilib libraries get built.
+
+Thu Aug 17 16:03:41 1995  Ken Raeburn  <raeburn@kr-laptop.cygnus.com>
+
+	* configure: Add Makefile.tem to list of files to remove in trap
+	handler.
+
+Mon Aug 14 19:27:56 1995  Per Bothner  <bothner@kalessin.cygnus.com>
+
+	* config.guess (*Linux*):  Add missing "exit"s.
+	Also, need specific check for alpha-unknown-linux (uses COFF).
+
+Fri Aug 11 15:38:20 1995  Per Bothner  <bothner@kalessin.cygnus.com>
+
+	* config.guess:  Merge with FSF:
+
+	Wed Jun 28 17:57:27 1995  David Edelsohn  <edelsohn@mhpcc.edu>
+	* config.guess (AIX4): More robust release numbering discovery.
+
+	Thu Jun 22 19:01:24 1995  Kenneth Stailey  (kstailey@eagle.dol-esa.gov)
+	* config.guess (i386-sequent-ptx): Properly get version number.
+
+	Thu Jun 22 18:36:42 1995  Uwe Seimet  (seimet@iris1.chemie.uni-kl.de)
+	* config.guess (mips:*:4*:UMIPS): New case.
+
+Mon Aug  7 09:21:35 1995  Doug Evans  <dje@canuck.cygnus.com>
+
+	* configure.in (i386-go32 host): Fix typo (deja-gnu -> dejagnu).
+	(i386-win32 host): Likewise.  Don't build readline.
+
+Sat Aug  5 09:51:49 1995  Fred Fish  <fnf@rtl.cygnus.com>
+
+	* Makefile.in (GDBTK_SUPPORT_DIRS):  Define and pass as part of
+	SUPPORT_FILES to submakes.
+
+Fri Aug  4 13:04:36 1995  Fred Fish  <fnf@cygnus.com>
+
+	* Makefile.in (GDB_SUPPORT_DIRS): Add utils.
+	(DEVO_SUPPORT): Add mpw-README, mpw-build.in, mpw-config.h and
+	mpw-configure.
+
+Wed Aug  2 16:32:40 1995  Ken Raeburn  <raeburn@cygnus.com>
+
+	* configure.in (appdirs): Use =, not ==, in test expression when
+	trying to build the text to print in the warning message for
+	Solaris users.
+
+Mon Jul 31 09:56:18 1995  steve chamberlain  <sac@slash.cygnus.com>
+
+	* cfg-ml-com.in (z8k-*-coff): Add 'std' multilib build.
+
+Fri Jul 28 00:16:31 1995  Jeffrey A. Law  <law@rtl.cygnus.com>
+
+	* config.guess: Recognize lynx-2.3.
+
+Thu Jul 27 15:47:59 1995  steve chamberlain  <sac@slash.cygnus.com>
+
+	* config.sub (z8ksim): Deleted
+	(z8k-*-coff): New, this is the one true name of the target.
+
+Thu Jul 27 14:33:33 1995  Doug Evans  <dje@canuck.cygnus.com>
+
+	* cfg-ml-pos.in (dotdot): Work around SunOS sed bug.
+
+Thu Jul 27 13:31:05 1995  Fred Fish  (fnf@cygnus.com)
+
+	* config.guess (*:Linux:*:*): First try asking the linker what the
+	default object file format is (elf, aout, or coff).  Then if this
+	fails, try previous methods.
+
+Thu Jul 27 11:28:17 1995  J.T. Conklin  <jtc@rtl.cygnus.com>
+
+	* configure.in: Don't build newlib for *-*-vxworks5.1.
+
+Thu Jul 27 11:18:47 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+	* configure.in: Don't build newlib for a29k-*-vxworks5.1.
+	* test-build.mk: Add setting of --with-headers for a29k-vxworks5.1.
+
+Tue Jul 25 21:25:39 1995  Doug Evans  <dje@canuck.cygnus.com>
+
+	* cfg-ml-pos.in (MULTITOP): Trim excess trailing "/.".
+
+Fri Jul 21 10:41:12 1995  Doug Evans  <dje@canuck.cygnus.com>
+
+	* cfg-ml-com.in: New file.
+	* cfg-ml-pos.in: New file.
+
+Wed Jul 19 00:37:27 1995  Jeffrey A. Law  <law@rtl.cygnus.com>
+
+	* COPYING.NEWLIB: Add HP free copyright to list.
+
+Tue Jul 18 10:58:51 1995  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* config.sub: Recognize -eabi* for the system, not just -eabi.
+
+Mon Jul  3 13:44:51 1995  Steve Chamberlain  <sac@slash.cygnus.com>
+
+	* Makfile.in (DLLTOOL_FOR_TARGET): New name, pass it down.
+	* config.sub, configure.in (win32): New target and host.
+
+Wed Jun 28 23:57:08 1995  Steve Chamberlain  <sac@slash.cygnus.com>
+
+	* configure.in: Add i386-pe configuration.
+
+Fri Jun 23 14:28:44 1995  Stan Shebs  <shebs@andros.cygnus.com>
+
+	* mpw-build.in (install): Install GDB after LD.
+
+Thu Jun 22 17:10:53 1995  Stan Shebs  <shebs@andros.cygnus.com>
+
+	* mpw-config.in (elf/mips.h): Always forward-include, needed
+	for GDB to build.
+
+Wed Jun 21 15:17:30 1995  Rob Savoye  <rob@darkstar.cygnus.com>
+
+	* testsuite: New directory for customer acceptance and whole tool
+	chain tests.
+
+Wed Jun 21 16:50:29 1995  Ken Raeburn  <raeburn@cujo.cygnus.com>
+
+	* configure: If per-host line isn't found, but AC_OUTPUT is found
+	and a configure script exists, run it instead.
+
+Thu Jun 15 21:09:24 1995  Per Bothner  <bothner@kalessin.cygnus.com>
+
+	* config.guess:  Update from FSF, for alpha-dec-winnt3.5 and  Crays.
+
+Tue Jun 13 21:43:27 1995  Rob Savoye  <rob@darkstar.cygnus.com>
+
+	* configure: Set build_{cpu,vendor,os,alias} to host values when
+	--build isn't specified.
+
+Mon Jun  5 18:26:36 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* Makefile.in (PICFLAG, PICFLAG_FOR_TARGET): New macros.
+	(FLAGS_TO_PASS): Pass them.
+	(EXTRA_TARGET_FLAGS): Ditto.
+
+Wed May 31 22:27:42 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* Makefile.in (all-libg++): Depend on all-libstdc++.
+
+Thu May 25 22:40:59 1995  J.T. Conklin  <jtc@rtl.cygnus.com>
+
+	* configure.in (noconfigdirs): Enable all packages for
+	  i386-unknown-netbsd.
+
+Sat May 20 13:22:31 1995  Angela Marie Thomas  <angela@cirdan.cygnus.com>
+
+	* configure.in (noconfigdirs): Don't configure tk for i386-go32
+	hosted builds (DOS builds)
+
+Thu May 18 18:08:49 1995  Ken Raeburn  <raeburn@kr-laptop.cygnus.com>
+
+	Changes for ARM based on patches from Richard Earnshaw:
+	* config.sub: Handle armeb and armel.
+	* configure.in: Omit arm linker only for riscix.
+
+Thu May 11 17:23:26 1995  Per Bothner  <bothner@kalessin.cygnus.com>
+
+	* config.guess:  Update from FSF.
+
+Tue May  9 15:52:05 1995  Michael Meissner  <meissner@cygnus.com>
+
+	* config.sub: Recognize powerpcle as the little endian varient of
+	the PowerPC.  Recgonize ppc as a PowerPC variant, and ppcle as a
+	powerpcle variant.  Convert pentium into i586, not i486.  Add p5
+	alias for i586.  Map new x86 variants p6, k5, nexgen into i586
+	temporarily.
+
+Tue May  2 16:29:41 1995  Jeff Law  (law@snake.cs.utah.edu)
+
+	* configure.in (hppa*-*-lites*): Treat like hppa*-*-*elf*.
+
+Sun Apr 30 21:38:09 1995  Jeff Law  (law@snake.cs.utah.edu)
+
+	* config.sub: Accept -lites* as a basic system type.
+
+Thu Apr 27 11:33:29 1995  Michael Meissner  (meissner@cygnus.com)
+
+	* config.guess (*:Linux:*:*): Check for whether the pre-BFD linker is
+	installed, and if so return linuxoldld as the system name.
+
+Wed Apr 26 10:59:02 1995  Jeff Law  (law@snake.cs.utah.edu)
+
+	* config.guess: Add hppa1.1-hp-lites support.
+
+Tue Apr 25 11:08:11 1995  Rob Savoye  <rob@darkstar.cygnus.com>
+
+	* configure.in: Don't build newlib for m68k-vxworks5.1.
+
+Wed Apr 19 17:02:43 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* configure.in (mips-sgi-irix6): Use mh-irix5.
+
+Fri Apr 14 15:21:17 1995  Doug Evans  <dje@chestnut.cygnus.com>
+
+	* Makefile.in (all-gcc): Depend on all-ld (for libgcc1-test).
+
+Wed Apr 12 16:06:01 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* test-build.mk: Enable building of shared libraries on IRIX 5 and
+	OSF/1.  Fix compiler flags.
+	* build-all.mk: Support Linux and OSF/1 3.0.  Fix compiler flags.
+
+Tue Apr 11 18:55:40 1995  Doug Evans  <dje@canuck.cygnus.com>
+
+	* configure.in: Recognize --with-newlib.
+	(sparc-*-sunos4*): Build sim, dejagnu, expect, tcl if cross target.
+
+Mon Apr 10 14:38:20 1995  Jason Molenda (crash@phydeaux.cygnus.com)
+
+	* Makefile.in: move {all,check,install}-gdb from *_MODULES
+	to *_X11_MODULES due to gdbtk needing X include files et al.
+
+Mon Apr 10 11:42:22 1995  Stan Shebs  <shebs@andros.cygnus.com>
+
+	Merge in support for Mac MPW as a host.
+	(Old change descriptions retained for informational value.)
+
+	* mpw-config.in: Add generic include forwards for cpu-specific
+	include files in aout and elf directories.
+
+	* mpw-configure: Added copyright.
+	* mpw-config.in: Check for presence of required build tools.
+	(target_libs): Add newlib.
+	(target_tools): Add examples.
+	(Read Me): Generate as "Read Me for MPW" instead.
+	* mpw-build.in: Base sub-builds on all-foo instead of do-foo.
+	(all-byacc, do-byacc, all-flex, do-flex, do-newlib): New actions.
+	(do-gas, do-gcc, do-gdb, do-ld): Build Version.r first.
+
+	* mpw-configure: Remove subdir-specific makefile hackery,
+	delete mk.tmp after using it.
+
+	* mpw-build.in (all): Display start and end times.
+
+	* mpw-configure (host_canonical): Set.
+	(target_cpu): Always add to makefiles.
+	(ARCHDEFS, EMUL): Add to makefile only if nonempty.
+	(TM_FILE, XM_FILE, NM_FILE): No longer add to makefile.
+	(mpw-mh-mpw): Look for in srcdir and srcroot.
+	Use sed instead of mpw-edit-prefix to edit prefix definitions.
+
+	* mpw-build.in: (install-only): New target.
+
+	* mpw-configure (host_alias, target_alias): Rename from hostalias
+	and targetalias, add into generated Makefile.
+	(mk.tmp): If present, add into generated Makefile.
+	* mpw-build.in (all-gas): Build config.h first before gas proper.
+
+	* mpw-configure (config.status): Write only if changed.
+	* mpw-config.in (readline): Configure it (not built, just used for
+	definitions).
+
+	* mpw-config.in (elf/mips.h): Add a forward include.
+
+	* mpw-config.in: Forward-include most .h files in include into
+	extra-include.
+	(readline): Don't build.
+	mpw-build.in (install): Install GDB.
+
+	* mpw-configure (prefix, mpw_prefix): Handle it.
+	* mpw-config.in (mmalloc, readline): Don't configure.
+	* mpw-build.in (thisscript): Rename to ThisScript.
+	Use mpw-build instead of BuildProgram everywhere.
+	(mmalloc, readline): Don't build.
+	* mpw-README: New file, basic documentation about the MPW port.
+
+	* mpw-config.in: Use forward-include to create include files.
+
+	* mpw-configure: Add more things to the top of each configured
+	Makefile, including contents of config/mpw-mh-mpw.
+	* mpw-config.in (extra-include): Create this directory and fill it
+	with Posix-like include files when configuring.
+
+	* config.sub (apple, mac, mpw): Add various aliases.
+
+	* mpw-build.in: New file, top-level build script fragment for MPW.
+	* mpw-configure: New file, configure script for MPW.
+	* mpw-config.in: New file, config fragment for MPW.
+
+Fri Apr  7 19:33:16 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)
+
+	* configure.in (host_libs): Remove glob, since it is gone from the
+	sources.
+
+Fri Mar 31 11:36:17 1995  Jason Molenda  (crash@phydeaux.cygnus.com)
+
+	* Makefile.in: define empty GDB_NLM_DEPS var.
+
+	* configure.in(target_makefile_frag): use config/mt-netware
+	for netware targets.
+
+Thu Mar 30 13:51:43 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+	* config.sub: Merge in recent FSF changes.  Remove linux special
+	cases.
+
+Tue Mar 28 14:47:34 1995  Jason Molenda (crash@phydeaux.cygnus.com)
+
+	Revert this change:
+
+	Tue Mar 30 10:03:09 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+		* build-all.mk: Use CC=cc -Xs on Solaris.
+
+Tue Mar 21 10:43:32 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)
+
+	* glob/*: Removed.  Schauer's 24 Feb 1994 readline change made us
+	stop using it.
+	* Makefile.in: Nuke all references to glob subdirectory.
+
+Thu Mar 16 13:35:30 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* configure.in: Fix --enable-shared logic in per-host.
+
+Mon Mar 13 12:33:15 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure.in (*-hp-hpux[78]*): Use mh-hpux8.
+
+Mon Mar  6 10:21:58 1995  Jim Kingdon  (kingdon@lioth.cygnus.com)
+
+	* configure.in (noconfigdirs): Don't build gas on AIX, for
+	powerpc*-*-aix* as well as for rs6000*-*-aix*.
+
+Wed Mar  1 12:51:53 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure: Fix --cache-file to work if the file argument is a
+	relative path.
+
+Tue Feb 28 17:36:07 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure: If the --cache-file is used, pass it down to
+	configure in subdirectories.
+
+Mon Feb 27 12:52:46 1995  Kung Hsu  <kung@mexican.cygnus.com>
+
+	* config.sub: add vxworks29k configuration.
+
+Fri Feb 10 16:12:26 1995  Ken Raeburn  <raeburn@cujo.cygnus.com>
+
+	* Makefile.in (taz): Do "diststuff" part quietly.
+
+Sun Feb  5 14:16:35 1995  Doug Evans  <dje@canuck.cygnus.com>
+
+	* config.sub: Mini-merge with gcc/config.sub.
+
+Sat Feb  4 12:11:35 1995  Jim Wilson  <wilson@chestnut.cygnus.com>
+
+	* config.guess (IRIX): Sed - to _.
+
+Fri Feb  3 11:54:42 1995  J.T. Conklin  <jtc@rtl.cygnus.com>
+
+	* Makefile.in (source-vault, binary-vault): New targets.
+
+Thu Jan 26 13:00:11 1995  Michael Meissner  <meissner@cygnus.com>
+
+	* config.sub: Recognize -eabi as a basic system type.
+
+Thu Jan 12 13:13:23 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* configure.in (enable_shared stuff): Fix typo.
+
+Thu Jan 12 01:36:51 1995  deanm@medulla.LABS.TEK.COM (Dean Messing)
+
+	* Makefile.in (BASE_FLAGS_TO_PASS): Fix typo in passing LIBCXXFLAGS*.
+
+Wed Jan 11 16:29:53 1995  Jason Merrill  <jason@phydeaux.cygnus.com>
+
+	* Makefile.in (LIBCXXFLAGS_FOR_TARGET): Add -fno-implicit-templates.
+
+Mon Jan  9 12:48:01 1995  Jim Kingdon  <kingdon@lioth.cygnus.com>
+
+	* configure.in (rs6000-*-*): Don't build gas.
+
+Wed Jan  4 23:53:49 1995  Ian Lance Taylor  <ian@tweedledumb.cygnus.com>
+
+	* Makefile.in: Use /x/x/ instead of /brokensed/brokensed/, to
+	reduce command line length.
+	(AS_FOR_TARGET): Check for as.new, not Makefile.
+	(NM_FOR_TARGET): Check for nm.new, not Makefile.
+
+Wed Jan  4 13:02:39 1995  Per Bothner  <bothner@kalessin.cygnus.com>
+
+	* config.guess:  Merge from FSF.
+
+Thu Dec 15 17:11:37 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>
+
+	* configure: Don't use $ when handling program_suffix.
+
+Mon Dec 12 12:09:37 1994  Stu Grossman  (grossman@cygnus.com)
+
+	* configure.in:  Configure tk for hppa/hpux.
+
+Fri Dec  2 15:55:38 1994  Per Bothner  <bothner@kalessin.cygnus.com>
+
+	* Makefile.in (LIBGXX_SUPPORT_DIRS):  Add libstdc++.
+
+Tue Nov 29 19:37:56 1994  Per Bothner  <bothner@kalessin.cygnus.com>
+
+	* Makefile.in:  Move -fno-implicit-template from CXXFLAGS
+	to LIBCXXFLAGS.  Tests are better run without it.
+
+Wed Nov 23 10:29:25 1994  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* Makefile.in (all-ispell): Depend on all-emacs19 instead of all-emacs.
+
+Mon Nov 21 11:14:01 1994  J.T. Conklin  <jtc@rtl.cygnus.com>
+
+	* configure.in (*-*-netware*): Don't configure xiberty.
+
+Mon Nov 14 08:49:15 1994  Stu Grossman  (grossman@cygnus.com)
+
+	* configure.in:  Remove tk from native_only list.
+
+Fri Nov 11 15:31:26 1994  Bill Cox  (bill@rtl.cygnus.com)
+
+	* build-all.mk: Add mips-ncd-elf target to sun4 targets
+	  for special NCD build.
+
+Mon Nov  7 20:58:17 1994  Ken Raeburn  <raeburn@cujo.cygnus.com>
+
+	* Makefile.in (DEVO_SUPPORT): Remove configure.bat and
+	makeall.bat, they're only useful for binutils snapshots.
+	(binutils.tar.gz, gas+binutils.tar.gz): Add configure.bat and
+	makeall.bat to specified SUPPORT_FILES.
+
+Mon Nov  7 17:25:18 1994  Bill Cox  (bill@cirdan.cygnus.com)
+
+	* build-all.mk: Add Ericsson targets to sun4 and solaris
+	  hosts.  Add  BNR's sun4 target to solaris host, so their
+	  build-from-source will be tested in-house first.
+
+Sat Nov  5 18:43:30 1994  Jason Merrill  (jason@phydeaux.cygnus.com)
+
+	* Makefile.in (LIBCFLAGS): New variable.
+	(CFLAGS_FOR_TARGET): Ditto.
+	(LIBCFLAGS_FOR_TARGET): Ditto.
+	(LIBCXXFLAGS): Ditto.
+	(CXXFLAGS_FOR_TARGET): Ditto.
+	(LIBCXXFLAGS_FOR_TARGET): Ditto.
+	(BASE_FLAGS_TO_PASS): Pass them.
+	(EXTRA_TARGET_FLAGS): Ditto.
+
+	* configure.in: Support --enable-shared.
+
+Sat Nov  5 15:44:00 1994  Per Bothner  <bothner@kalessin.cygnus.com>
+
+	* configure.in (target_libs):  Include libstdc++ again.
+	* config.guess:  Update from FSF (for FreeBSD).
+
+Thu Nov  3 16:32:30 1994  Ken Raeburn  <raeburn@cujo.cygnus.com>
+
+	* Makefile.in (DEVO_SUPPORT): Include configure.bat and
+	makeall.bat.
+	(DISTDOCDIRS): Add `etc'.
+	(ETC_SUPPORT_PFX): New variable.
+	(taz): Include anything from etc starting with a word in
+	ETC_SUPPORT_PFX.
+
+Wed Oct 26 16:19:35 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>
+
+	* config.sub: Update for recent FSF changes.  Remove obsolete
+	h8300hds entry.  Add -windows* and -osx as basic os.  Minor
+	spacing changes.
+
+Thu Oct 20 18:41:56 1994  Per Bothner  <bothner@kalessin.cygnus.com>
+
+	* configure.in (target_libs):  Remove libstdc++ for libg++-2.6.1.
+
+	* config.guess:  Merge with FSF.
+	* configure.in:  Match on i?86-ncr-sysv4.3, not i?86-ncr-sysv43.
+
+Thu Oct 20 19:26:56 1994  Ken Raeburn  <raeburn@cujo.cygnus.com>
+
+	* configure: Since the "trap 0" handler will override the exit
+	status on many systems, only use it for "exit 1", and make it set
+	a non-zero exit status; reset it before "exit 0".  Also, check
+	exit status of config.sub, and error out if it failed.
+
+Wed Oct 19 18:49:55 1994  Rob Savoye  (rob@cygnus.com)
+
+	* Makefile.in: (ALL_TARGET_MODULES,INSTALL_TARGET_MODULES) Build
+	and install libgloss.
+
+Tue Oct 18 15:25:24 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>
+
+	* Makefile.in (all-binutils): Depend upon all-byacc.
+
+	* configure.in: Don't build emacs on Irix 5.
+
+Mon Oct 17 16:22:12 1994  J.T. Conklin  (jtc@phishhead.cygnus.com)
+
+	* configure.in (*-*-netware*): Add libio.
+
+Thu Oct 13 15:51:20 1994  Jason Merrill  (jason@phydeaux.cygnus.com)
+
+	* Makefile.in (ALL_TARGET_MODULES): Add libstdc++.
+	(CHECK_TARGET_MODULES): Ditto.
+	(INSTALL_TARGET_MODULES): Ditto.
+	(TARGET_LIBS): Ditto.
+	(all-libstdc++): Note dependencies.
+
+Thu Oct 13 01:43:08 1994  Ken Raeburn  <raeburn@cujo.cygnus.com>
+
+	* Makefile.in (BINUTILS_SUPPORT_DIRS): Add gas.
+
+Tue Oct 11 12:12:29 1994  Jason Merrill  (jason@phydeaux.cygnus.com)
+
+	* Makefile.in (CXXFLAGS): Use -fno-implicit-templates instead of
+	-fexternal-templates.
+
+	* configure.in (target_libs): Add libstdc++.
+	(noconfigdirs): Add libstdc++ as appropriate.
+
+Thu Oct  6 18:00:54 1994  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* config.guess:  Update from FSF.
+
+Tue Oct  4 12:05:42 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>
+
+	* configure: Use ${config_shell} when running ${configsub}.
+
+Mon Oct  3 14:28:34 1994  Doug Evans  <dje@canuck.cygnus.com>
+
+	* config.sub: No longer recognize h8300h.
+
+Mon Oct  3 12:40:54 1994  Ian Lance Taylor  <ian@sanguine.cygnus.com>
+
+	* config.sub: Remove extraneous differences between config.sub and
+	gcc/config.sub.
+
+Sat Oct  1 00:23:12 1994  Ken Raeburn  <raeburn@cujo.cygnus.com>
+
+	* Makefile.in (DISTSTUFFDIRS): Add gas.
+
+Thu Sep 22 19:04:55 1994  Doug Evans  (dje@canuck.cygnus.com)
+
+	* COPYING.NEWLIB: New file.
+
+Mon Sep 19 18:25:40 1994  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* config.guess (HP-UX):  Patch from Harlan Stenn
+	<harlan@landmark.com> to also emit release level.
+
+Wed Sep  7 13:15:25 1994  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* config.guess (sun4*:SunOS:*:*): Change '-JL' to '_JL'.
+
+Tue Sep  6 23:23:18 1994  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* config.sub:  Merge nextstep cleanup from FSF.
+
+Mon Sep  5 05:01:30 1994  Ken Raeburn  (raeburn@kr-pc.cygnus.com)
+
+	* configure.in (arm-*-*): Don't configure ld for this target.
+
+Thu Sep  1 09:35:00 1994  J.T. Conklin  (jtc@phishhead.cygnus.com)
+
+	* configure.in (*-*-netware): don't configure libg++, libio,
+	  librx, or newlib.
+
+Wed Aug 31 13:52:08 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
+
+	* configure.in (alpha-dec-osf*): Use osf*, not osf1*.  Don't
+	configure ld--it works, but it doesn't support shared libraries.
+
+Sun Aug 28 18:13:45 1994  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* config.guess (*-unknown-freebsd*):  Get rid of possible
+	trailing "(Release)" in version string.
+	Patch from Paul Richards <paul@isl.cf.ac.uk>.
+
+Sat Aug 27 15:00:49 1994  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* config.guess:  Fix i486-ncr-sysv43 -> i486-ncr-sysv4.3.
+	Fix type: *-next-neststep -> *-next-nextstep.
+
+	* config.guess:  Merge from FSF:
+
+	Fri Aug 26 18:45:25 1994  Philippe De Muyter (phdm@info.ucl.ac.be)
+
+	* config.guess: Recognize powerpc-ibm-aix3.2.5.
+
+	Wed Apr 20 06:36:32 1994  Philippe De Muyter  (phdm@info.ucl.ac.be)
+
+	* config.guess: Recognize UnixWare 1.1 (UNAME_SYSTEM is SYSTEM_V
+	instead of UNIX_SV for UnixWare 1.0).
+
+Sat Aug 27 01:56:30 1994  Stu Grossman  (grossman@cygnus.com)
+
+	* Makefile.in (all-gdb):  Add dependencies on all-gcc and all-ld
+	to make gdb/nlm/* build after the compiler and linker.
+
+Fri Aug 26 14:30:05 1994  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* config.guess (netbsd, freebsd, linux):  Accept any machine,
+	not just i[34]86.
+	(m68k-atari-sysv4):  Relocate to match FSF version.
+
+	* config.guess:  More merges from the FSF:
+
+	Add a space before function call or macro invocation.
+
+	Tue May 10 16:53:55 1994  Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+	* config.guess: Add trap cmd to remove dummy.c and dummy when
+	interrupted.
+
+	Wed Apr 20 18:07:13 1994  Roland McGrath (roland@churchy.gnu.ai.mit.edu)
+
+	* config.guess (dummy.c): Redirect stderr for `hostinfo' command.
+	(dummy): Redirect stderr from compilation of dummy.c.
+
+	Sat Apr  9 14:59:28 1994  Christian Kranz  (kranz@sent5.uni-duisburg.de)
+
+	* config.guess: Distinguish between NeXTStep 2.1 and 3.x.
+
+Fri Aug 26 13:42:20 1994  Ken Raeburn  (raeburn@kr-laptop.cygnus.com)
+
+	* configure: Accept and ignore --cache*, for compatibility with
+	new autoconf.
+
+Fri Aug 26 13:05:27 1994  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* config.guess:  Merge from FSF:
+
+	Thu Aug 25 20:28:51 1994  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
+
+	* config.guess (Pyramid*:OSx*:*:*): New case.
+	(PATH): Add /.attbin at end for finding uname.
+	(dummy.c): Handle i860-alliant-bsd.  Follow whitespace conventions.
+
+	Wed Aug 17 18:21:02 1994  Tor Egge  (tegge@pvv.unit.no)
+
+	* config.guess (M88*:DolphinOS:*:*): New case.
+
+	Thu Aug 11 17:00:13 1994  Stan Cox  (coxs@dg-rtp.dg.com)
+
+	* config.guess (AViiON:dgux:*:*): Use TARGET_BINARY_INTERFACE
+	to select whether to use ELF or COFF.
+
+	Sun Jul 24 16:20:53 1994  Richard Stallman  <rms@mole.gnu.ai.mit.edu>
+
+	* config.guess: Recognize i860-stardent-sysv and i860-unknown-sysv.
+
+	Sun May  1 10:23:10 1994  Richard Stallman  (rms@mole.gnu.ai.mit.edu)
+
+	* config.guess: Guess the OS version for HPUX.
+
+	Tue Mar  1 21:53:03 1994  Karl Heuer  (kwzh@hal.gnu.ai.mit.edu)
+
+	* config.guess (UNAME_VERSION): Recognize aix3.2.4 and aix3.2.5.
+
+Fri Aug 26 11:19:08 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
+
+	* configure.in: Recognize --with-headers, --with-libs, and
+	--without-newlib.
+	* Makefile.in (all-xiberty): Depend upon all-ld.
+
+Wed Aug 24 12:36:50 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
+
+	* configure.in: Change i[34]86 to i[345]86.
+
+Mon Aug 22 10:58:33 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
+
+	* configure (version): A few more tweaks to help message.
+
+Fri Aug 19 12:40:25 1994  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* Makefile.in:  Remove (for now) librx as a host library,
+	now that we're building it for target.
+
+Fri Aug 19 10:49:17 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
+
+	* configure: Fix up help message; from karl@owl.hq.ileaf.com
+	(Karl Berry).
+
+Tue Aug 16 16:11:08 1994  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* configure.in:  Also configure librx.
+
+Mon Aug 15 16:51:45 1994  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* Makefile.in:  Update various rules to reflect that librx
+	is now needed for libg++.
+
+Fri Aug 12 18:07:21 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
+
+	* config.sub: Accept mips64orion and mips64orionel as a CPU name.
+
+Mon Aug  8 11:36:17 1994  Stan Shebs  (shebs@andros.cygnus.com)
+
+	* configure.in: Configure the examples directory.
+
+Thu Aug  4 16:12:36 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
+
+	* configure: Simplify Jun 2 1994 change.
+
+Wed Aug  3 04:58:16 1994  D. V. Henkel-Wallace  (gumby@cygnus.com)
+
+	* change CC to /usr/latest/bin/gcc for lynx host builds, since
+	/bin/gcc isn't good enough to build gcc.
+
+Wed Jul 27 09:07:14 1994  Fred Fish  (fnf@cygnus.com)
+
+	* Makefile.in (GDB_SUPPORT_FILES): Remove
+	(setup-dirs-gdb, gdb.tar.gz, make-gdb.tar.gz):  Remove old rules.
+	(gdb.tar.gz): Add new rule to use standard distribution building
+	mechanism.
+
+Mon Jul 25 11:10:06 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+	* configure.in: Warn about use of /usr/ucb/cc on Solaris.  From
+	Bill Cox <bill@cygnus.com>.
+
+Sat Jul 23 12:19:46 1994  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* config.guess:  Recognize ISC.  Patch from kwzh@gnu.ai.mit.edu.
+
+Fri Jul 22 17:53:59 1994  Stu Grossman  (grossman@cygnus.com)
+
+	* configure:  Search current dir first in .gdbinit.
+
+Fri Jul 22 11:28:30 1994  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* config.sub:  Recognize freebsd (merged from gcc config.sub).
+
+Thu Jul 21 14:10:52 1994  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* config.sub:  Refer to NeXT's operating system as nextstep.
+
+	* config.sub (case $basic_machine):  Re-order the cases, to match
+	the order in the FSF version (which is mostly alphabethical).
+	Merge in some additions and changes from the FSF.
+
+Sat Jul 16 12:03:08 1994  Stan Shebs  (shebs@andros.cygnus.com)
+
+	* config.guess: Recognize m68k-atari-sysv4 and m88k-harris-csux7.
+	* config.sub: Recognize cxux7.
+	* configure.in: Use mh-cxux for m88k-harris-cxux*.
+
+Mon Jul 11 14:37:39 1994  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* config.sub:  Fix typo powerpc -> powerpc-*.
+
+Sat Jul  9 13:03:43 1994  Michael Tiemann  (tiemann@blues.cygnus.com)
+
+	* Makefile.in: `all-emacs19' depends on `all-byacc'.
+
+	* Makefile.in: Add all-emacs19 and install-emacs19 rules (in
+	parallel with all-emacs and install-emacs).  Top-level command
+	`make all-emacs19 CC=gcc' now behaves as `make all-emacs CC=gcc'.
+
+Thu Jun 30 16:53:42 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
+
+	* test-build.mk ($(host)-stamp-stage2-installed): Remove
+	$(relbindir)/make before doing ``make install'', and use
+	$(GNU_MAKE) while doing it.  Avoids problem on SunOS with
+	installing over running make binary.
+	($(host)-stamp-stage3-installed): Likewise.
+
+Tue Jun 28 13:43:25 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
+
+	* config.guess: Recognize Mach.
+
+Mon Jun 27 16:41:14 1994  Ian Lance Taylor  (ian@sanguine.cygnus.com)
+
+	* configure: Check ${exec_prefixoption}, not ${exec_prefix}, to
+	see whether --exec-prefix was used.
+
+Sun Jun 26 21:15:54 1994  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* README:  Explicitly mention libg++/README.  (Zoo's idea.)
+
+Tue Jun 21 12:45:55 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
+
+	* Makefile.in: Add all-librx target similar to all-libproc.
+
+Wed Jun  8 23:11:55 1994  Stu Grossman  (grossman@cygnus.com)
+
+	* config.guess:  Rearrange tests for Alpha-OSF1 to properly deal
+	with post 1.2 uname bogosity.
+
+Thu Jun  9 00:27:59 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+	* configure: Remove temporary files on receipt of a signal.
+
+Tue Jun  7 12:06:24 1994  Ian Lance Taylor  (ian@cygnus.com)
+
+	* configure: If there is a package_makefile_frag, remove
+	${subdir}/Makefile.tem after copying it in.
+
+Mon Jun  6 21:35:02 1994  D. V. Henkel-Wallace  (gumby@cygnus.com)
+
+	* build_all.mk: support rs6000 lynx identifies itself as
+	rs6000-lynx-lynxos2.2.2.  Also, use /usr/cygnus/progressive/bin/gcc
+	since /bin/gcc is too feeble to compile a modern gcc.
+
+Mon Jun  6 16:06:34 1994  Karen Christiansen (karen@cirdan.cygnus.com)
+
+	* brought devo/test-build.mk update-to-date with progressive/
+	  test-build.mk. Add lynx targets and hppa flag info.
+
+Sat Jun  4 17:23:54 1994  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* configure.in:  Use mh-ncrsvr43.  Patch from
+	Tom McConnell <tmcconne@sedona.intel.com>.
+
+Fri Jun  3 17:47:24 1994  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* config.guess (i386-unknown-bsdi):  No longer need to
+	check #if defined(__bsdi__) && defined(__i386__).
+
+Thu Jun  2 18:56:46 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+	* configure: Set program_transform_nameoption correctly.
+
+Thu Jun  2 10:57:06 1994  Karen Christiansen (karen@cirdan.cygnus.com)
+
+	* brought build-all.mk update-to-date with progressive build-all.mk,
+	  added new targets and hppa info.
+
+Thu Jun  2 00:12:44 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+	* configure: If config.guess result is a prefix of the user
+	specified target, assume a native build and use the user specified
+	target as the host alias.  Remove SunOS patch suffix removal hack.
+	* configure.in: Remove SunOS patch suffix removal hack.
+
+	* Makefile.in (CROSS_CHECK_MODULES): Remove check-flex, since it's
+	in NATIVE_CHECK_MODULES.
+
+Wed Jun  1 10:49:41 1994  Bill Cox  (bill@rtl.cygnus.com)
+
+	* Makefile.in: Rename HOST_ONLY to NATIVE.
+	* configure: Delete SunOs patch suffix from host_canonical
+	  and build_canonical variables that are prepended to Makefiles.
+	* configure.in: Add comments for easier maintenance.
+
+Tue May 31 19:39:47 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
+
+	* Makefile.in: Add all-libproc target similar to all-gui.
+
+Tue May 31 17:16:33 1994  Tom Lord  (lord@cygnus.com)
+
+	* Makefile.in (CHECK_MODULES): split into
+	HOST_ONLY_CHECK_MODULES and CROSS_CHECK_MODULES.
+
+Tue May 31 16:36:36 1994  Paul Eggert  (eggert@twinsun.com)
+
+	* config.guess (i386-unknown-bsdi): New system to guess.
+
+Wed May 25 16:47:10 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
+
+	* Makefile.in: Add all-gui target (but not yet build by "all").
+
+Thu May 26 08:53:19 1994  Bill Cox  (bill@rtl.cygnus.com)
+
+	* config.sub: Move deletion of patch suffix from here...
+	* configure.in: To here, at Ian's suggestion.  The top-
+	  level scripts might need to know of a patch level.
+
+Wed May 25 09:15:54 1994  Bill Cox  (bill@rtl.cygnus.com)
+
+	* config.sub: Strip off patch suffix so rtl is recognized
+	  as a sunos4.1.3 machine, even though it's been patched.
+
+Fri May 20 08:25:49 1994  Steve Chamberlain  (sac@deneb.cygnus.com)
+
+	* Makefile.in (INSTALL_LAST): Delete.
+	(INSTALL_DOSREL): New.
+
+Thu May 19 17:12:12 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+	* configure.in: Use ld for i[34]86-*-sysv4* and sparc-*-solaris2*.
+	Don't set use_gnu_ld to no for *-*-sysv4; that only controls
+	whether we pass down --with-gnu-ld anyhow.
+
+Thu May 19 09:29:12 1994  Steve Chamberlain  (sac@cygnus.com)
+
+	* Makefile.in (INSTALL_LAST): Change operation so it works
+	on more flavors of make.
+	* configure.in (go32): Don't build libg++ or libio.
+
+Fri May 13 13:28:34 1994  Steve Chamberlain  (sac@cygnus.com)
+
+	* Makefile.in (Move HOST_PREFIX_1 and friends up so
+	they can be overriden by templates.
+
+Sat May  7 16:46:44 1994  Steve Chamberlain  (sac@cygnus.com)
+
+	* configure.in (target==go32): Don't build gdb.
+	* dosrel: New directory.
+
+Fri May  6 14:19:25 1994  Steve Chamberlain  (sac@cygnus.com)
+
+	* configure.in (host==go32): Configure dosrel too.
+	* Makefile.in (INTALL_TARGET): Call INSTALL_LAST last.
+	(HOST_CC, HOST_PREFIX, HOST_PREFIX_1): Undefine, they should
+	be set by incoming names or templates.
+	(INSTALL_LAST): New rule.
+
+Thu May  5 17:35:05 1994  Stan Shebs  (shebs@andros.cygnus.com)
+
+	* config.sub (sparclitefrw, sparclitefrwcompat): Don't set the os.
+
+Thu May  5 20:06:45 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
+
+	* configure.in (appdirs): New variable.  Currently empty, but will
+	be used in gas distribution.  If nonempty, lists a set of
+	directories at least one of which must get configured, or top
+	level configuration is considered to have failed.
+	(rs6000-*-lynxos*): Use new file name.
+
+Thu May  5 13:38:36 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+	Eliminate XTRAFLAGS.
+	* Makefile.in (CC_FOR_TARGET): If newlib exists, refer to the
+	newlib include files using -idirafter, and also use -nostdinc.
+	(CXX_FOR_TARGET): Likewise.
+	(XTRAFLAGS): Removed.
+	(BASE_FLAGS_TO_PASS): Remove XTRAFLAGS_FOR_TARGET.
+	(EXTRA_HOST_FLAGS): Remove XTRAFLAGS.
+	(EXTRA_TARGET_FLAGS, EXTRA_GCC_FLAGS): Likewise.
+	($(DO_X)): Don't pass down XTRAFLAGS.
+
+Thu May  5 00:16:36 1994  Ken Raeburn  (raeburn@kr-pc.cygnus.com)
+
+	* configure.in (mips*-dec-bsd*): New target; do build linker.
+	(mips*-*-bsd*): New target; don't build linker.
+
+Wed May  4 20:10:10 1994  D. V. Henkel-Wallace  (gumby@cygnus.com)
+
+	* configure.in: support rs6000-*-lynxos* configuration.
+	support sunos4 as a cross target.
+
+	* config.sub: look for lynx*, not lynx since the OS version may
+	legitimately be part of the name.
+
+Tue May  3 21:48:11 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
+
+	* configure.in (i[34]86-*-sco*): Move to be with other i386
+	targets.
+	(romp-*-*): New target.  Skip various binary utilities.
+	(vax-*-*): New target.  Don't build newlib.
+	(vax-*-vms): Renamed from *-*-vms.  Don't build opcodes or newlib.
+
+Thu Apr 28 15:03:05 1994  David J. Mackenzie  (djm@rtl.cygnus.com)
+
+	* configure.in: Only set host_makefile_frag if config
+	directory exists.
+
+Wed Apr 27 12:14:30 1994  David J. Mackenzie  (djm@rtl.cygnus.com)
+
+	* install.sh: If $dstdir exists, don't check whether each
+	component does.
+
+Tue Apr 26 18:11:33 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+	* test-build.mk (HOLES): Add sleep; used by rcs/src/conf.sh.
+
+Mon Apr 25 15:06:34 1994  Stan Shebs  (shebs@andros.cygnus.com)
+
+	* configure.in (*-*-lynxos*): Don't configure newlib for either
+	native or cross Lynx.
+
+Sat Apr 16 11:58:16 1994  Doug Evans  (dje@canuck.cygnus.com)
+
+	* config.sub (sparc64-elf): Fix os.
+	(z8k): Remove duplicate.
+
+Thu Apr 14 23:33:17 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+	* Makefile.in (gcc-no-fixedincludes): Touch gcc/include/fixed, not
+	gcc/stmp-fixproto, to try to prevent fixproto from being run.
+
+Wed Apr 13 15:14:52 1994  Bill Cox  (bill@cygnus.com)
+
+	* configure: Make file links cleanly even if Lynx fails on
+	  an NFS symlink (at least fail cleanly).
+
+Mon Apr 11 10:58:56 1994  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* test-build.mk (CC): For mips-sgi-irix4, change -XNh1500 to
+	-XNh2000.
+
+Sat Apr  9 15:10:45 1994  David J. Mackenzie  (djm@rtl.cygnus.com)
+
+	* configure: Unknown options are fatal again.
+
+Fri Apr  8 12:01:41 1994  David J. Mackenzie  (djm@cygnus.com)
+
+	* configure: Ignore --x-includes and --x-libraries, for Autoconf
+	compatibility.
+
+Thu Apr  7 17:31:43 1994  Doug Evans  (dje@canuck.cygnus.com)
+
+	* build-all.mk: Add `clean' target.
+
+Wed Apr  6 20:44:56 1994  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
+
+	* config.guess:  Add SINIX support.
+	* configure.in:  Add mips-*-sysv4* support.
+
+Mon Apr  4 17:41:44 1994  Doug Evans  (dje@canuck.cygnus.com)
+
+	* build-all.mk: Document all useful targets.
+	If canonhost is sparc-sun-solaris2.3, change it to sparc-sun-solaris2.
+	If canonhost is mips-sgi-irix4.0.5H, change it to mips-sgi-irix4.
+
+Thu Mar 31 04:55:57 1994  David J. Mackenzie  (djm@rtl.cygnus.com)
+
+	* configure: Support --silent, --quiet.
+
+Wed Mar 30 21:37:38 1994  David J. Mackenzie  (djm@rtl.cygnus.com)
+
+	* configure: Support --disable-FEATURE.
+
+Tue Mar 29 19:15:05 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
+
+	* config.guess: Recognize NCR running SVR4.3.
+
+Mon Mar 28 14:55:15 1994  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* config.guess:  Make BSDI generate i386-unknown-bsd386.
+	Patch from Paul Eggert <eggert@twinsun.com>.
+
+Mon Mar 28 12:54:52 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+	* configure.in (powerpc-*-aix*): Treat like rs6000-*-*.
+
+Sat Mar 26 11:25:48 1994  David J. Mackenzie  (djm@rtl.cygnus.com)
+
+	* configure: Make unrecognized options give nonfatal warnings
+	instead of fatal errors, and pass them to any subdirectory
+	configures in case they recognize them.
+	Make --x equivalent to --with-x.
+
+Fri Mar 25 21:52:10 1994  David J. Mackenzie  (djm@rtl.cygnus.com)
+
+	* configure: Add --enable-* options.  Clean up usage message and
+	some comments.
+
+Thu Mar 24 09:12:53 1994  Doug Evans  (dje@canuck.cygnus.com)
+
+	* Makefile.in (NM_FOR_TARGET): Build tree version is now nm.new.
+
+Sun Mar 20 11:28:22 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* configure.in (hppa*-*-*): Enable binutils.
+
+Sat Mar 19 11:50:16 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
+
+	* config.sub: Recognize cisco.
+
+Fri Mar 18 16:42:32 1994  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* Makefile.in (CXXFLAGS): Add -fexternal-templates.
+
+Tue Mar 15 11:25:55 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
+
+	* config.guess: about target *-hitachi-hiuxwe2, don't print more
+	than one configuration name.  Add comment.
+
+Sun Mar  6 23:13:38 1994  Hisashi MINAMINO  (minamino@sra.co.jp)
+
+	* config.guess: about target *-hitachi-hiuxwe2, fixed
+	machine guessing order.  [Hitachi's CPU_IS_HP_MC68K
+	macro is incorrect.]
+
+Sun Mar 13 09:10:08 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
+
+	* Makefile.in (TAGS): Just build TAGS in each subdirectory, rather
+	than the "make ls" stuff which used to be here.
+
+Fri Mar 11 12:52:39 1994  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* config.guess:  Recognize i[34]86-unknown-freebsd.
+	From Shawn M Carey <smcarey@rodan.syr.edu>.
+
+Thu Mar  3 14:24:21 1994  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* configure.in (noconfigdirs for alpha): Remove libg++ and libio.
+
+Wed Mar  2 13:28:48 1994  Jim Kingdon  (kingdon@deneb.cygnus.com)
+
+	* config.guess: Check for ptx.
+
+Mon Feb 28 16:46:50 1994  Kung Hsu  (kung@mexican.cygnus.com)
+
+	* config.sub: Add os9k checking.
+
+Thu Feb 24 07:09:04 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* config.guess: Handle OSF1 running on HPPA processors
+
+Fri Feb 18 14:14:00 1994  Ken Raeburn  (raeburn@rtl.cygnus.com)
+
+	* configure: If subdir configure fails, print out a message with
+	subdirectory name, in case subdir's configure code didn't identify
+	itself.
+
+Fri Feb 18 12:50:15 1994  Doug Evans  (dje@cygnus.com)
+
+	* configure.in: Remove embedded newlines from configdirs.
+	Avoid mismatches of substrings.  Fix matching strings at end
+	of configdirs.
+
+Fri Feb 11 15:33:33 1994  Stu Grossman  (grossman at cygnus.com)
+
+	* config.guess:  Add Lynx/rs6000 config support.
+
+Tue Feb  8 13:41:09 1994  Ken Raeburn  (raeburn@rtl.cygnus.com)
+
+	* configure.in (alpha-dec-osf1*, alpha*-*-*): Build gas.
+
+Mon Feb  7 15:42:36 1994  Jeffrey A. Law  (law@cygnus.com)
+
+	* configure.in (hppa*-*-osf*): Treat this just like most other
+	PA configurations (eg no binutils or ld).
+	(hppa*-*-*elf*): These configurations have binutils and ld.
+
+Sun Feb  6 16:35:07 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* config.sub (hiux): Fix typo.  From m-kasahr@sramhc.sra.co.JP.
+
+Sat Feb  5 01:00:33 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+	* configure.in (rs6000-*-*): Build gas.
+
+Wed Feb  2 13:57:57 1994  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* Makefile.in:  Avoid bug in losing hpux sed.
+
+Wed Feb  2 14:53:05 1994  Jim Kingdon  (kingdon@lioth.cygnus.com)
+
+	* Makefile.in, test-build.mk: Remove MUNCH_NM; it was only needed
+	for GDB and GDB has been fixed to not need it.
+
+Sun Jan 30 17:58:06 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
+
+	* config.guess: Recognize vax hosts.
+
+Fri Jan 28 15:29:38 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
+
+	* configure (while loop): Don't use "break 2" inside case
+	statement -- the case statement isn't an enclosing loop.
+
+Mon Jan 24 18:40:06 1994  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* config.guess:  Clean up NeXT support, to allow nextstep
+	on Intel machines.  Make OS be nextstep.
+
+Sun Jan 23 18:47:22 1994  Richard Kenner  (kenner@vlsi1.ultra.nyu.edu)
+
+	* config.guess: Add alternate forms for Convex.
+
+Thu Jan 20 16:13:41 1994  Stu Grossman  (grossman at cygnus.com)
+
+	* configure:  Completely rewrite option processing.  Take
+	advantage of pattern-matching to avoid invoking test frequently.
+	Also clean up host and target defaulting logic.
+
+Mon Jan 17 15:06:56 1994  Ken Raeburn  (raeburn@cujo.cygnus.com)
+
+	* Makefile.in: Replace all occurrances of "rootme" with "r" and
+	"$${rootme}" with "$$r", to increase the likelihood that the do-*
+	commands (plus user environment) will fit SCO limits.
+
+Thu Jan  6 11:20:57 1994  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+	* configure.in: Don't issue warnings about directories which are
+	not being configured if -norecursion is set.  Correct test for
+	--with-gnu-as and --with-gnu-ld to not get confused by substring
+	matches.
+
+	* configure.in: Don't build gas for alpha-dec-osf1*.
+
+Tue Jan  4 17:10:19 1994  Stu Grossman  (grossman at cygnus.com)
+
+	* configure:  Back out Per's change of 12/19/1993.  It changes the
+	behavior of configure in unexpected and confusing ways.
+
+	Also, use different delim char when calculating
+	program_transform_name so that the name can contain slashes.
+
+Sat Jan  1 13:45:31 1994  Rob Savoye  (rob@darkstar.cygnus.com)
+
+	* configure.in, config.sub: Add support for VSTa micro-kernel.
+
+Sat Dec 25 20:00:47 1993  Jeffrey A. Law  (law@snake.cs.utah.edu)
+
+	* configure.in: Nuke hacks which were used to get a special
+	version of GAS for HPPA configurations.
+
+Sun Dec 19 20:40:44 1993  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* configure:  If only ${target_alias} is given, use that
+	as the default for ${host_alias}.
+	* configure:  Add missing back-slashes before nested quotes.
+
+Wed Dec 15 18:07:18 1993  david d `zoo' zuhn  (zoo@andros.cygnus.com)
+
+	* Makefile.in (BASE_FLAGS_TO_PASS): add YACC=$(BISON)
+
+Tue Dec 14 21:25:33 1993  Per Bothner  (bothner@cygnus.com)
+
+	* config.guess:  Recognize some Tektronix configurations.
+	From Kaveh R. Ghazi <ghazi@noc.rutgers.edu>.
+
+Sat Dec 11 11:18:00 1993  Steve Chamberlain  (sac@thepub.cygnus.com)
+
+	* config.sub: Match any flavor of SH.
+
+Thu Dec  2 17:16:58 1993  Ken Raeburn  (raeburn@cujo.cygnus.com)
+
+	* configure.in: Don't try to configure newlib for Alpha.
+
+Thu Dec  2 14:35:54 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+	* configure.in: Don't build ld for Irix 5.  Don't build gas,
+	libg++ or libio for any Alpha target.
+
+	* configure.in (mips*-sgi-irix5*): New target; use mh-irix5.
+
+Wed Dec  1 17:00:33 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* Makefile.in (GZIPPROG): Renamed from GZIP, which gzip uses for
+	default arguments -- so it tried to compress itself.
+
+Tue Nov 30 13:45:15 1993  david d `zoo' zuhn  (zoo@andros.cygnus.com)
+
+	* configure.in (notsupp): ensure that a space is always at the end
+	  of the configdirs list, since the grep checks for an explicit space
+
+Tue Nov 16 15:04:27 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)
+
+	* configure.in (target i386-sysv4.2): don't build ld, since static
+	  versions of many libraries are not available.
+
+Tue Nov 16 14:28:12 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
+
+	* config.guess: Recognize Apollos (using environment variables).
+	* configure.in: Don't configure ld, binutils, or gprof for Apollo.
+
+Thu Nov 11 12:03:50 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
+
+	* config.guess: Recognize Sony news mips running newsos.
+
+Wed Nov 10 16:57:00 1993  Mark Eichin  (eichin@cygnus.com)
+
+	* Makefile.in (all-cygnus, build-cygnus): "fi else" needs to be
+	"fi ; else" for bash.
+
+Tue Nov  9 15:54:01 1993  Mark Eichin  (eichin@cygnus.com)
+
+	* Makefile.in (BASE_FLAGS_TO_PASS): pass SHELL.
+
+Fri Nov  5 08:07:27 1993  D. V. Henkel-Wallace  (gumby@blues.cygnus.com)
+
+	* config.sub: accept unixware as an alias for svr4.2.
+	Fix some inconsistancies with the gcc version.
+
+Fri Nov  5 15:14:12 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
+
+	* Makefile.in (DISTDOCDIRS):  Add gdb.
+
+Fri Nov  5 11:59:42 1993  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* Makefile.in (DISTDOCDIRS):  Add libg++ and libio.
+
+Fri Nov  5 10:35:05 1993  Ken Raeburn  (raeburn@rover.cygnus.com)
+
+	* Makefile.in (taz): Only build "info" in DISTDOCDIRS.
+	(DISTDOCDIRS): Don't assume libg++ and gdb folks necessarily want
+	this now.
+
+Thu Nov  4 18:58:23 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
+
+	* config.sub: Accept hiux* as an OS name.
+
+	* Makefile.in: Change RUNTEST_FLAGS back to RUNTESTFLAGS per
+	etc/make-stds.texi.  The underscore came from gcc, and dje now
+	agrees that RUNTESTFLAGS is the correct name.
+
+Thu Nov  4 10:49:01 1993  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* install.sh:  Remove 'set -e'.  It makes any conditionals
+	in the script useless.
+
+	* config.guess: Automatically recognize arm-acorn-riscix
+	Patch from Richard Earnshaw (rwe11@cl.cam.ac.uk).
+
+Thu Nov 04 08:08:04 1993  Jeffrey Wheat  (cassidy@cygnus.com)
+
+	* Makefile.in: Change RUNTESTFLAGS to RUNTEST_FLAGS
+
+Wed Nov  3 22:09:46 1993  Ken Raeburn  (raeburn@rtl.cygnus.com)
+
+	* Makefile.in (DISTDOCDIRS): New variable.
+	(taz): Edit local Makefile.in sooner, instead of proto-toplev
+	Makefile.in later.  Build "info" and "dvi" in DISTDOCDIRS.
+
+Wed Nov  3 21:31:52 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)
+
+	* configure.in (hppa target): check the source directory for the
+	  pagas sub-directory
+
+Wed Nov  3 11:12:22 1993  Doug Evans  (dje@canuck.cygnus.com)
+
+	* config.sub: Allow -aout* and -elf*.
+
+Wed Nov  3 11:08:33 1993  Ken Raeburn  (raeburn@rtl.cygnus.com)
+
+	* configure.in: Don't build ld on i386-solaris2, same as for
+	sparc-solaris2.
+
+Tue Nov  2 14:21:25 1993  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* Makefile.in (taz): Add texinfo/lgpl.texinfo (for libg++).
+
+Tue Nov  2 13:38:30 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
+
+	* configure.in:  Configure gdb for alpha.
+
+Mon Nov  1 10:42:54 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
+
+	* Makefile.in (CXXFLAGS): Add -O.
+
+Wed Oct 27 10:45:06 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)
+
+	* config.guess: added support for DG Aviion
+
+Tue Oct 26 14:37:37 1993  Ken Raeburn  (raeburn@rover.cygnus.com)
+
+	* configure.in: Produce warning message for subdirectories not
+	configurable for this host/target combination.  Don't try to
+	configure gdb for vms.
+
+Mon Oct 25 11:22:15 1993  Ken Raeburn  (raeburn@rover.cygnus.com)
+
+	* Makefile.in (taz): Replace "byacc" with "bison -y" in the
+	appropriate files before making "diststuff".
+	(DISTBISONFILES): New var: list of files to be edited.
+	(DISTSTUFFDIRS): Add binutils.
+
+Fri Oct 22 20:32:15 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)
+
+	* config.sub: also handle mipsel and mips64el (for little endian mips)
+
+Fri Oct 22 07:59:20 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
+
+	* configure.in: Add * to end of all OS names.
+
+Thu Oct 21 11:38:28 1993  Stan Shebs  (shebs@rtl.cygnus.com)
+
+	* configure.in: Build newlib for LynxOS native.
+
+Wed Oct 20 09:56:12 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
+
+	* config.guess: Add support for delta 88k running SVR3.
+
+	* configure.in: Add comment about HP compiler vs. emacs.
+
+Tue Oct 19 16:02:22 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)
+
+	* configure.in: don't build ld on solaris2 (not a viable option
+	  due to bugs in getpwnam & getpwuid)
+
+Tue Oct 19 15:13:56 1993  Ken Raeburn  (raeburn@rtl.cygnus.com)
+
+	* configure.in: Accept alpha-dec-osf1*, not just -osf1, since
+	config.guess will produce a full version number.
+
+Tue Oct 19 15:58:01 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+	* configure.in: Build linker and binutils for alpha-dec-osf1.
+
+Tue Oct 19 11:41:55 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
+
+	* Makefile.in: Remove -O from CXXFLAGS for consistency with CFLAGS,
+	and gdb/testsuite/Makefile.in.
+
+Sat Oct  9 18:39:07 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)
+
+	* configure.in: recognize mips*- instead of mips-
+
+Fri Oct  8 14:15:39 1993  Ken Raeburn  (raeburn@cygnus.com)
+
+	* config.sub: Accept linux*coff and linux*elf as operating
+	systems.
+
+Thu Oct  7 12:57:19 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+	* config.sub: Recognize mips64, and mips3 as an alias for it.
+
+Wed Oct  6 13:54:21 1993  Peter Schauer  (pes@regent.e-technik.tu-muenchen.de)
+
+	* configure.in: Remove alpha-dec-osf*, no longer necessary now that
+	gdb knows how to handle OSF/1 shared libraries.
+
+Tue Oct  5 11:55:04 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
+
+	* configure.in: Recognize hppa*-*-hiux* (currently synonym for hpux).
+	* config.guess: Recognize Hitachi's HIUX.
+	* config.sub: Recognize h3050r* and hppahitachi.
+	Remove redundant cases for hp9k[23]*.
+
+Mon Oct  4 16:15:09 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)
+
+	* configure.in: default to '--with-gnu-as' and '--with-gnu-ld'
+	if gas and ld are in the source tree and are in ${configdirs}.
+	If ${use_gnu_as} or ${use_gnu_ld} are 'no', then don't set the
+	--with options (but still pass them down on the command line,
+	if they were explicitly specified).
+
+Fri Sep 24 19:11:13 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)
+
+	* configure: substitute SHELL value in Makefile.in with
+	${CONFIG_SHELL}
+
+Thu Sep 23 18:05:13 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+	* configure.in: Build gas, ld, and binutils for *-*-sysv4* and
+	*-*-solaris2* targets.
+
+Sun Sep 19 17:01:41 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)
+
+	* Makefile.in: define M4, and pass it down to sub-makes;
+	all-autoconf now depends on all-m4
+
+Sat Sep 18 00:38:23 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)
+
+	* Makefile.in ({AR,RANLIB}_FOR_TARGET): make contingent on
+	presence of {ar,ranlib} instead of a configured directory
+
+Wed Sep 15 08:41:44 1993  Jim Kingdon  (kingdon@cirdan.cygnus.com)
+
+	* config.guess: Accept 34?? as well as 33?? for NCR.
+
+Mon Sep 13 12:28:43 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)
+
+	* configure.in: grab mt-hppa for HPPA targets; use 'gas ' instead
+	of 'gas' in sed commands, since 'gash' is now in the tree as well.
+
+Fri Sep 10 11:23:52 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)
+
+	* configure: grab values for $(CC) and $(CXX) from the
+	environment, so that someone can do "CC=gcc configure; make" and
+	have it work right (matching the way that autoconf works now)
+
+	* configure.in, Makefile.in: add support for gash, the tcl
+	interface to Galaxy
+
+	* config.guess: add NetBSD variants (hp300, x86)
+
+Thu Sep  9 16:48:52 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* install.sh: Support -d option (in the manner of SunOS 4 install,
+	as it is more deterministic than that of GNU install)
+	(chmodcmd): Set file to mode 755 by default (should also do default
+	chgrp and chown, but I don't feel like dealing with that now)
+
+Tue Sep  7 11:59:39 1993  Doug Evans  (dje@canuck.cygnus.com)
+
+	* config.sub: Remove h8300hhms alias.
+
+Tue Aug 31 11:00:09 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
+
+	* configure.in: Match *-*-solaris2* not *-sun-solaris2*.
+
+Mon Aug 30 18:29:10 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)
+
+	* Makefile.in (gcc-no-fixedincludes): touch stmp-fixproto as well
+	as stmp-fixinc
+
+Wed Aug 25 16:35:59 1993  K. Richard Pixley  (rich@sendai.cygnus.com)
+
+	* config.sub: recognize m88110-bug-coff.
+
+Tue Aug 24 10:23:24 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)
+
+	* Makefile.in (all-libio): all dependencies on the toolchain used
+	to build this (gcc, gas, ld, etc)
+
+Fri Aug 20 17:24:24 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
+
+	* config.guess: Deal with OSF/1 1.3 on alpha.
+
+Thu Aug 19 11:43:04 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)
+
+	* install.sh: add some 'else true' clauses for portability
+
+	* configure.in: don't build libio for h8[35]00-*-* targets
+
+Tue Aug 17 19:02:31 1993  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* Makefile.in:  Add support for new libio.
+
+Sun Aug 15 20:48:55 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
+
+	* install.sh: If one command fails, don't try the rest.  Don't try
+	to remove $dsttmp (via trap) unless we have already created it.
+	If $src doesn't exist, detect it and exit with an error.
+
+	* config.guess: Recognize BSD on hp300.
+
+Wed Aug 11 18:35:13 1993  Per Bothner  (bothner@kalessin.cygnus.com)
+
+	* config.guess:  Map (9000/[34]??:HP-UX:*:*) to m68k-hp-hpux.
+	Bug report from "Hamish (H.I.) Macdonald" <hamish@bnr.ca>.
+
+Wed Aug 11 15:37:51 1993  Jason Merrill  (jason@deneb.cygnus.com)
+
+	* Makefile.in (all-send-pr): depends on all-prms
+
+Wed Aug 11 16:56:03 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
+
+	* config.guess: Fix typo (9000/8??:4.3bsd -> 9000/7??:4.3bsd).
+
+Fri Aug  6 14:45:02 1993  Ian Lance Taylor  (ian@tweedledumb.cygnus.com)
+
+	* config.guess: From michael@mercury.cs.mun.ca (Michael Rendell):
+	Added test for mips-mips-riscos5.
+
+Thu Aug  5 15:45:08 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)
+
+	* configure.in: use mh-hp300 for 68k HP hosts
+
+Mon Aug  2 11:56:53 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)
+
+	* configure: add support for CONFIG_SHELL, so that you can use
+	some alternate shell for evaluating configure scripts
+
+Sun Aug  1 11:36:27 1993  Fred Fish  (fnf@deneb.cygnus.com)
+
+	* Makefile.in (make-gdb.tar.gz):  Sed bug reporting address
+	in configure script to bug-gdb@prep.ai.mit.edu when building
+	distribution archive.
+	* Makefile.in (COMPRESS):  Remove def.
+	* Makefile.in (gdb.tar.gz, make-gdb.tar.gz):  Renamed from
+	gdb.tar.Z and make-gdb.tar.Z respectively.
+	* Makefile.in (make-gdb.tar.gz):  Now only build gzip'd archive.
+	* Makefile.in (make-gdb.tar.gz):  Minor changes to move closer
+	to convergence with 'taz' target in Makefile.in.
+
+Fri Jul 30 12:34:57 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)
+
+	* install.sh (dsttmp): use trap to ensure that tmp files go
+	away on error conditions
+
+Wed Jul 28 11:57:36 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)
+
+	* Makefile.in (BASE_FLAGS_TO_PASS): remove LOADLIBES
+
+Tue Jul 27 12:43:40 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
+
+	* Makefile.in (install-dirs): Deal with a prefix like /gnu;
+	its parent is '/' not ''.
+
+	* Makefile.in (DEVO_SUPPORT): Add comments about ChangeLog.
+
+Fri Jul 23 09:53:37 1993  Jason Merrill  (jason@wahini.cygnus.com)
+
+	* configure: if ${newsrcdir}/configure doesn't exist, don't assume
+	that ${newsrcdir}/configure.in does.
+
+Tue Jul 20 11:28:50 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)
+
+	* test-build.mk: support for CONFIG_SHELL
+
+Mon Jul 19 21:54:46 1993  Fred Fish  (fnf@deneb.cygnus.com)
+
+	* config.sub (netware):  Add as a basic system type.
+
+Wed Jul 14 12:03:11 1993  K. Richard Pixley  (rich@sendai.cygnus.com)
+
+	* Makefile.in (Makefile): depend on configure.in.  Also drop the
+	  $(srcdir)/ from the dependency on Makefile.in.
+
+Tue Jul 13 20:10:58 1993  Doug Evans  (dje@canuck.cygnus.com)
+
+	* config.sub: Recognize h8300hhms as h8300h-hitachi-hms.
+	(h8300hhms is temporary until multi-libraries are implemented).
+	* configure.in: Handle h8300h too.
+
+Sun Jul 11 17:35:27 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
+
+	* config.guess: Recognize dpx/2 as m68k-bull-sysv3.
+
+Thu Jul  8 18:26:12 1993  John Gilmore  (gnu@cygnus.com)
+
+	* configure:  Remove extraneous output when guessing host type.
+	* config.guess:  Remove extraneous output when guessing using C
+	compiler rather than uname, or when guessing fails.
+
+Wed Jul  7 17:58:14 1993  david d `zoo' zuhn  (zoo at rtl.cygnus.com)
+
+	* Makefile.in: remove all.cross and install.cross targets
+
+	* configure: remove CROSS=-DCROSS_COMPILE and ALL=all.cross
+	  definitions
+
+Tue Jul  6 10:39:44 1993  Steve Chamberlain  (sac@phydeaux.cygnus.com)
+
+	* configure.in (target sh): Build gprof.
+
+Thu Jul  1 16:52:56 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* config.sub: change -solaris to -solaris2
+
+Thu Jul  1 15:46:16 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
+
+	* configure.in: Use config/mh-riscos for mips-*-sysv*.
+
+Wed Jun 30 09:31:58 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* configure: Correct error message for missing Makefile.in to
+	print correct directory.
+
+Tue Jun 29 13:52:16 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* install.sh: kludge around 386BSD shell bug
+
+Tue Jun 29 13:06:49 1993  Per Bothner  (bothner@rtl.cygnus.com)
+
+	* config.guess:  Recognize NeXT.
+	* config.guess:  Recognize i486-ncr-sysv4.
+	* Makefile.in (taz):  rm $(TOOL)-$$VER before linking.
+
+Tue Jun 29 12:50:57 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* Makefile.in (MAKEINFOFLAGS): New variable.
+	(FLAGS_TO_PASS): Pass MAKEINFO as MAKEINFO MAKEINFOFLAGS.
+	* build-all.mk, test-build.mk: Pass down --no-split as
+	MAKEINFOFLAGS when hosted on DOS.  Compile DOS hosted without -g.
+
+Thu Jun 24 13:39:11 1993  Per Bothner  (bothner@rtl.cygnus.com)
+
+	* Makefile.in (DEVO_SUPPORT):  Add COPYING COPYING.LIB install.sh.
+
+Wed Jun 23 12:59:21 1993  Per Bothner  (bothner@rtl.cygnus.com)
+
+	* Makefile.in (libg++.tar.z):  New rule.
+	* Makefile.in (taz):  Replace 'configure -rm' by 'make distclean'.
+	* Makefile.in (taz):  Only do a single chmod.
+
+Fri Jun 18 12:03:10 1993  david d `zoo' zuhn  (zoo at majipoor.cygnus.com)
+
+	* install.sh: don't use dirname anymore (replaced with sed usage)
+
+Thu Jun 17 18:43:42 1993  Fred Fish  (fnf@cygnus.com)
+
+	* Makefile.in:  Change extension for gzip'd files from '.z' to
+	'.gz' per new FSF standard usage.
+
+Thu Jun 17 16:58:50 1993  david d `zoo' zuhn  (zoo at majipoor.cygnus.com)
+
+	* configure: put quotes around the final value of program_transform_name
+
+Tue Jun 15 16:48:51 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* Makefile.in: new install.sh support; update install-info rules
+
+Wed Jun  9 12:31:34 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* configure.in: Build diff for crosses, but not for go32 host.
+
+	* configure.in: Build gprof only for native, and don't build it
+	for mips-*-*, rs6000-*-*, or i[34]86-*-sco*.
+
+Mon Jun  7 13:12:11 1993  david d `zoo' zuhn  (zoo at deneb.cygnus.com)
+
+	* configure.in: don't build gas,ld,binutils on for *-*-sysv4
+
+Mon Jun  7 11:40:11 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* configure.in (host_tools): Add prms.
+
+Fri Jun  4 13:30:42 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* Makefile.in: install gcc, do installation of $(INSTALL_MODULES)
+	with $(FLAGS_TO_PASS) on the command line
+
+	* config.sub: Recognize lynx and lynxos
+
+Fri Jun  4 10:59:56 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* config.sub: Accept -ecoff*, not just -ecoff.
+
+Thu Jun  3 17:38:54 1993  Ken Raeburn  (raeburn@cambridge.cygnus.com)
+
+	* Makefile.in (taz): Use .gz suffix instead of .z.
+	(binutils.tar.gz, gas+binutils.tar.gz, gas.tar.gz): Fixed target
+	names.
+
+Thu Jun  3 00:27:06 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* Makefile.in (vault-install): add an 'else true' (for Ultrix)
+
+Wed Jun  2 18:19:16 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* Makefile.in (install-no-fixedincludes):  install gcc last, so
+	that rebuilds that might happen during 'make install' don't get
+	bogus gcc include files
+
+Wed Jun  2 16:14:10 1993  Ken Raeburn  (raeburn@cambridge.cygnus.com)
+
+	Change from Utah for HPPA support:
+	* config.guess: Recognize hppa1.x-hp-bsd.
+
+Wed Jun  2 11:53:33 1993  Per Bothner  (bothner@rtl.cygnus.com)
+
+	* config.guess:  Add support for Motorola Delta 68k, up to r3v7.
+	Patch from pot@fly.cnuce.cnr.it (Francesco Potorti`).
+
+Tue Jun  1 17:48:42 1993  Rob Savoye  (rob at darkstar.cygnus.com)
+
+	* config.sub: Add support for rom68k and bug boot monitors.
+
+Mon May 31 09:36:37 1993  Jim Kingdon  (kingdon@cygnus.com)
+
+	* Makefile.in: Make all-opcodes depend on all-bfd.
+
+Thu May 27 08:05:31 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* config.guess: Added special check for i[34]86-univel-sysv4*.
+
+Wed May 26 16:33:40 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* config.guess: For i[34]86-unknown-sysv4 use UNAME_MACHINE for
+	the processor rather than assuming i486.
+
+Wed May 26 09:40:18 1993  Jim Kingdon  (kingdon@lioth.cygnus.com)
+
+	* config.guess: Recognize SunOS6 as Solaris3.
+
+Tue May 25 23:03:11 1993  Per Bothner  (bothner@cygnus.com)
+
+	* config.guess:  Fix typo.  Avoid #elif (not in K&R 1).
+	Recognize SunOS 5.* only (and not [6-9].*) as being Solaris2.
+
+Tue May 25 12:44:18 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* build-all.mk (all-cross): New target for Canadian Cross.
+	Added Q2 go32 targets.
+	* test-build.mk: Configure go32 cross sparclite-aout and
+	mips-idt-ecoff -with-gnu-ld.  Moved build binary directory from
+	PARTIAL_HOLE_DIRS to BUILD_HOLES_DIRS.
+
+Mon May 24 15:30:06 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* configure.in: fix Alpha GDB typo; also, don't build DejaGnu for
+	GO32 hosted toolchains
+
+Mon May 24 14:18:41 1993  Rob Savoye  (rob at darkstar.cygnus.com)
+
+	* configure: change  so "-exec-prefix" gets passed down rather
+	than "-exec_prefix" so autoconf generated Makefiles get the
+	exec_prefix set right.
+
+Fri May 21 10:42:25 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* config.guess: get the Solaris2 minor version number
+
+	* Makefile.in: add standards.texi and make-stds.texi to ETC_SUPPORT
+
+Fri May 21 06:20:52 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* config.guess: Recognize some Sequent platforms.
+
+Thu May 20 14:33:48 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* Makefile.in: added the vault-install target
+
+	* configure.in: actually use the Sun3 makefile fragment that's in
+	config, also added the release dir to configdirs
+
+Thu May 20 14:19:18 1993  Ken Raeburn  (raeburn@cambridge.cygnus.com)
+
+	* Makefile.in (taz): Fix modes on stuff in $(TOOL) dir also.
+
+Tue May 18 20:26:41 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* configure.in: remove some program from Alpha targetted toolchains
+
+Tue May 18 15:23:19 1993  Ken Raeburn  (raeburn@cygnus.com)
+
+	* Makefile.in (DISTSTUFFDIRS): Renamed from PROTODIRS.  Add ld and
+	gprof.
+	(taz): Run "make diststuff" in those directories instead of "make
+	proto-dir".  Look for "VERSION=" only at start of line in subdir
+	Makefile.  Use "gzip -9" for compression.
+	(TEXINFO_SUPPORT, DIST_SUPPORT, BINUTILS_SUPPORT_DIRS): New vars.
+	(binutils.tar.z): New target.
+
+Mon May 17 17:01:15 1993  Ken Raeburn  (raeburn@deneb.cygnus.com)
+
+	* Makefile.in (taz): Include gpl.texinfo.
+
+Fri May 14 06:48:38 1993  Ken Raeburn  (raeburn@deneb.cygnus.com)
+
+	* Makefile.in (setup-dirs): Merged into "taz" target.
+	(taz): Only do `proto-dir' stuff if a directory is actually needed
+	for this target.
+
+Wed May 12 13:09:44 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* Makefile.in (MUNCH_NM): New variable, defined to be $(NM).
+	(FLAGS_TO_PASS): Pass down MUNCH_NM.
+	(HOST_CC, HOST_PREFIX, HOST_PREFIX_1): New variables.
+	(EXTRA_GCC_FLAGS): Pass down HOST_* variables.
+	(gcc-no-fixedincludes): Correct for current gcc Makefile.
+
+Tue May 11 10:14:25 1993  Fred Fish  (fnf@cygnus.com)
+
+	* Makefile.in (make-gdb.tar.Z):  Add configure, config.guess,
+	config.sub, and move-if-change to gdb testsuite distribution
+	archive, so the testsuite can be extracted, configured, and
+	run separately from the gdb distribution.  Blow away the Chill
+	tests that require a Chill compiled executable, since GNU Chill
+	is not yet publically available.
+
+Mon May 10 17:22:26 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* test-build.mk: set environment variables in a single command,
+	instead of a list of assignments and exports
+
+	* config.guess: recognize Alpha/OSF1 systems
+
+Mon May 10 14:55:51 1993  K. Richard Pixley  (rich@rtl.cygnus.com)
+
+	* configure: Change help message to prefer --options rather than
+	  -options.
+
+Mon May 10 05:58:35 1993  Ken Raeburn  (raeburn@kr-pc.cygnus.com)
+
+	* config.sub: Convergent Tech. "miniframe" uses m68010, sez
+	zippy@ecst.csuchico.edu.
+	* config.guess: Recognize miniframe.
+
+Sun May  9 17:47:57 1993  Rob Savoye  (rob at darkstar.cygnus.com)
+
+       * Makefile.in: Use srcroot to find runtest rather than rootme.
+       Pass RUNTESTFLAGS and EXPECT down in BASE_FLAGS_TO_PASS.
+
+Fri May  7 14:55:59 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* test-build.mk: Extensive additions to support building on a
+	machine other than the host.
+
+Wed May  5 08:35:04 1993  Ken Raeburn  (raeburn@deneb.cygnus.com)
+
+	* configure (tooldir): Fix for i386-aix again.
+
+Mon May  3 19:00:27 1993  Per Bothner  (bothner@cygnus.com)
+
+	* configure, Makefile.in:  Change definition of $(tooldir)
+	to match the FSF.
+
+Fri Apr 30 15:55:21 1993  Fred Fish  (fnf@cygnus.com)
+
+	* config.guess:  Recognize i[34]86/SVR4.
+
+Fri Apr 30 15:52:46 1993  Steve Chamberlain  (sac@thepub.cygnus.com)
+
+	* Makefile.in (all-gdb): gdb depends on sim.
+
+Thu Apr 29 23:30:48 1993  Fred Fish  (fnf@cygnus.com)
+
+	* Makefile.in (gdb.tar.Z):  Make prototype gdb testsuite directory
+	at the same time we make the prototype gdb directory.
+	* Makefile.in (make-gdb.tar.Z):  Make the testsuite distribution
+	files at the same time as the gdb base release distribution.
+
+Thu Apr 29 12:50:37 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* Makefile.in (check): Use individual check targets rather than
+	DO_X rule.
+	(check-gcc): Added.
+
+Thu Apr 29 09:50:07 1993  Jim Kingdon  (kingdon@cygnus.com)
+
+	* config.sub: Use sysv3.2 not sysv32 for canonical OS
+	for System V release 3.2.
+
+Thu Apr 29 10:33:22 1993  Ken Raeburn  (raeburn@cambridge.cygnus.com)
+
+	* config.sub: Recognize hppaosf.
+	* configure.in: Do configure ld/binutils/gas for it.
+
+Tue Apr 27 06:25:34 1993  Ken Raeburn  (raeburn@kr-pc.cygnus.com)
+
+	* configure (tooldir): Alter syntax used to set this, for systems
+	where "\$" isn't handled right, like i386-aix.
+
+Thu Apr 22 08:17:35 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* configure: Pass program-transform-name, not
+	program_transform_name, to recursive configures.
+
+Thu Apr 22 02:58:21 1993  Ken Raeburn  (raeburn@cygnus.com)
+
+	* Makefile.in (gas+binutils.tar.z): New rule for building snapshots
+	of gas+ld+binutils.
+
+Mon Apr 19 17:41:30 1993  Per Bothner  (bothner@cygnus.com)
+
+	* config.guess:  Recognize AIX3.2 as distinct from 3.1.
+
+Sat Apr 17 17:19:50 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* configure.in: rename m88k-motorola-m88kbcs to m88k-motorola-sysv
+
+Tue Apr 13 16:52:16 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* Makefile.in (PRMS): Set back to all-prms.
+
+Sat Apr 10 12:04:07 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* test-build.mk: Pass -with-gnu-as for known MIPS native and MIPS
+	targets, rather than for MIPS hosts.
+
+Fri Apr  9 13:51:06 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* configure.in: add comment for --with-x default values
+
+	* config.guess: handle Motorola Delta88 box for SVR3 and SVR4.
+
+	* Makefile.in: add check-* targets for each of the directories in
+	the tree.  Add a definition of RUNTEST that will use the one we
+	just built, if it exists.  Pass this down via FLAGS_TO_PASS.
+
+Thu Apr  8 09:21:30 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* configure.in: Removed obsolete references to bfd_target and
+	target_makefile_frag.
+
+	* build-all.mk: Set assorted targets for Q2.
+	* config.sub: Recognize z8k-sim and h8300-hms.
+	* test-build.mk: Really don't pass host to configure.
+	(HOLES): Added uname.
+
+Wed Apr  7 15:48:19 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* configure: Handle an empty program-prefix, program-suffix or
+	program-transform-name correctly.
+
+Tue Apr  6 13:48:41 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* build-all.mk: -G 8 no longer required for MIPS targets.
+	* test-build.mk: Don't pass host argument to configure; make it
+	guess.
+
+Tue Apr  6 10:36:53 1993  Fred Fish  (fnf@cygnus.com)
+
+	* Makefile.in (gdb.tar.Z):  Fix for building gzip'd distribution.
+	* Makefile.in (COMPRESS):  New macro, like GZIP.
+
+Fri Apr  2 09:02:31 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* test-build.mk: Use -with-gnu-as for mips-sgi-irix4 as well.
+
+	* build-all.mk: Set GCC to gcc -O -G 8 for MIPS targets, since gcc
+	with gas currently defaults to -G 0.
+
+Thu Apr  1 08:25:42 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* Makefile.in (all-flex): flex depends on byacc.
+
+	* build-all.mk: If host not specified, use config.guess.  Pass TAG
+	to test-build.mk as RELEASE_TAG.
+	* test-build.mk (configargs): New variable containing arguments to
+	pass to configure.  Set to -with-gnu-as on mips-dec-ultrix.
+	(FLAGS_TO_PASS): Pass down RELEASE_TAG.
+
+	* config.guess: Use /bin/uname when checking -X argument on SCO,
+	to avoid invoking GNU uname which doesn't understand -X.
+
+	* test-build.mk: Don't use /usr/unsupported/bin/as on AIX.
+
+	* configure.in: Build gas for mips-*-*.
+
+Wed Mar 31 21:20:58 1993  K. Richard Pixley  (rich@rtl.cygnus.com)
+
+	* Makefile.in (all.normal): insert missing backslash.
+
+Wed Mar 31 12:31:56 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* build-all.mk: Bump -XNh value to 1500 to match gcc requirements.
+
+	* Makefile.in: Complete overhaul to merge many almost identical
+	targets.
+
+Tue Mar 30 20:17:01 1993  Ken Raeburn  (raeburn@cambridge.cygnus.com)
+
+	* Makefile.in (setup-dirs-gdb): Renamed from setup-dirs.
+	(gdb.tar.Z): Adjusted.
+
+	* Makefile.in (setup-dirs, taz): New targets; should be general
+	enough to adapt for gdb sometime.  Build only .z file.
+	(gas.tar.z): New target.
+
+Tue Mar 30 10:03:09 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* build-all.mk: Use CC=cc -Xs on Solaris.
+
+Thu Mar 25 15:14:30 1993  Fred Fish  (fnf@cygnus.com)
+
+	* Makefile.in:  Incorporate changes suggested by wilson@cygnus.com
+	for handling BISON for FSF releases.
+
+Thu Mar 25 06:19:48 1993  Ken Raeburn  (raeburn@kr-pc.cygnus.com)
+
+	* configure: Actually implement the change zoo just documented.
+
+Wed Mar 24 13:02:44 1993  david d `zoo' zuhn  (zoo at poseidon.cygnus.com)
+
+	* configure: when using config.guess, only set target_alias when
+	it's not already been set (ie, on the command line)
+
+Mon Mar 22 23:07:39 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* Makefile.in: add installcheck target, set PRMS to install-prms
+
+Sun Mar 21 16:46:12 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* configure: add support for package_makefile_fragment, handle the
+	case where a directory has a configure.in file but no Makefile.in
+	more gracefully (with an actual understandable error message, even);
+	add support for --without (and add this to the usage message); also
+	explicitly add a --host=${host_alias} to the command line when
+	config.guess is used
+
+Sun Mar 21 12:11:58 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* configure: Must use both --host and --target in recursive calls.
+
+Thu Mar 18 12:31:35 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* Makefile.in: Change deja-gnu to dejagnu.
+
+Mon Mar 15 15:44:35 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* configure.in (h8300-*-*, h8500-*-*): Don't build libg++.
+
+Fri Mar 12 18:30:14 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* configure.in: canonicalize all instances to *-*-solaris2*,
+	also strip out a number of tools to not build for go32 host
+
+Wed Mar 10 12:08:27 1993  K. Richard Pixley  (rich@rtl.cygnus.com)
+
+	* config.guess: add GPL.
+
+	* Makefile.in, config.guess, config.sub, configure: bump
+	  copyrights to 93.
+
+Wed Mar 10 07:12:48 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* Makefile.in (do-info): Removed obsolete check for existence of
+	localenv file.
+
+	* Makefile.in (MAKEOVERRIDES): Define to be empty.
+
+Wed Mar 10 03:11:56 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* Makefile.in: a couple of 'else true' for decstation,
+	support for TclX
+
+	* configure.in: configure tclX too; don't remove Tk on RS/6000 anymore
+
+Tue Mar  9 16:06:12 1993  K. Richard Pixley  (rich@cygnus.com)
+
+	* Makefile.in (setup-dirs): change invocation of make to $(MAKE).
+
+Mon Mar  8 14:52:11 1993  Ken Raeburn  (raeburn@cambridge)
+
+	* config.guess: Recognize i386-ibm-aix (PS/2).
+	* configure.in: Use config/mh-aix386 file for it.
+
+Mon Mar  8 11:12:43 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* Makefile.in (GCC_FOR_TARGET): Eliminated definition; use
+	CC_FOR_TARGET instead.
+	(BASE_FLAGS_TO_PASS): Pass GCC_FOR_TARGET=$(CC_FOR_TARGET).
+
+Wed Mar  3 16:00:28 1993  Steve Chamberlain  (sac@ok.cygnus.com)
+
+	* Makefile.in: Add sim to list of directories sent with gdb
+
+Wed Mar  3 11:42:39 1993  Ken Raeburn  (raeburn@cygnus.com)
+
+	* configure.in: Put back mips-dec-bsd* case.
+
+Tue Mar  2 21:15:58 1993  Fred Fish  (fnf@cygnus.com)
+
+	(Ultrix 2.2 support from Michael Rendell <michael@mercury.cs.mun.ca>)
+	* configure.in (vax-*-ultrix2*):  Add Ultrix 2.2 triplet.
+	* config.guess:  Change 'VAX*:ULTRIX:*:*' to 'VAX*:ULTRIX*:*:*'.
+
+Tue Mar  2 18:11:03 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* configure.in: remove no-op mips-dec-bsd* in "case $target"
+
+	* Makefile.in (dir.info): only run gen-info-dir if it exists,
+	(install-info): install dir.info only if it exists,
+	(all-expect, install-expect): pass along X11_FLAGS_TO_PASS
+
+Tue Mar  2 09:01:30 1993  Ken Raeburn  (raeburn@cygnus.com)
+
+	* configure.in: For vms target, skip bfd, ld, binutils.  Do build
+	gas for mips-dec-bsd.
+
+Tue Mar  2 08:35:24 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* configure (makesrcdir): If ${srcdir} is relative and not ".",
+	and ${subdir} is not ".", set makesrcdir based on ${invsubdir}.
+
+Tue Feb 23 14:18:28 1993  Mike Werner  (mtw@poseidon.cygnus.com)
+
+	* configure.in: Added "dejagnu" to hosttools list.
+
+Mon Feb 22 23:28:38 1993  Per Bothner  (bothner@rtl.cygnus.com)
+
+	* config.sub, configure.in, config.guess:  Add support
+	for Bosx, an AIX variant from Bull.
+	Patches from F.Pierresteguy@frcl.bull.fr.
+
+Sun Feb 21 11:15:22 1993  Mike Werner  (mtw@poseidon.cygnus.com)
+
+	* devo/dejagnu: Initial creation of devo/dejagnu.
+	Migrated dejagnu testcases and support files for testing software
+	tools to reside as subdirectories, currently called "testsuite",
+	within the directory of the software tool.  Migrated all programs,
+	support libraries, etc. beloging to dejagnu proper from
+	devo/deja-gnu to devo/dejagnu.	These files were moved "as is"
+	with no modifications.	The changes to these files which will
+	allow them to configure, build, and execute properly will be made
+	in a future update.
+
+Fri Feb 19 20:19:39 1993  Brendan Kehoe  (brendan@lisa.cygnus.com)
+
+	* Makefile.in: Change send_pr to send-pr.
+	* configure.in: Likewise.
+	* send_pr: Renamed directory to send-pr.
+
+Fri Feb 19 19:00:13 1993  Per Bothner  (bothner@cygnus.com)
+
+	* Makefile.in:  Add some extra semi-colons (needed if SHELL=bash).
+
+Fri Feb 19 00:59:33 1993  John Gilmore  (gnu@cygnus.com)
+
+	* README:  Update for gdb-4.8 release.
+	* Makefile.in (gdb.tar.Z):  Add texinfo/tex3patch.  Build
+	gdb-xxx.tar.z (gzip'd) file also.
+
+Thu Feb 18 09:16:17 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* Makefile.in: make all-diff depend on all-libiberty
+
+Tue Feb 16 16:06:31 1993  K. Richard Pixley  (rich@cygnus.com)
+
+	* config.guess: add vax-ultrix in the spirit of mips-ultrix.
+
+Tue Feb 16 05:57:15 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* configure.in, Makefile.in: add hello, tar, gzip, recode, indent
+
+Tue Feb 16 00:58:20 1993  John Gilmore  (gnu@cygnus.com)
+
+	* Makefile.in (DEVO_SUPPORT):  Remove etc directory
+	(ETC_SUPPORT):  Only add the files GDB wants from etc/.
+	(gdb.tar.Z):  Use ETC_SUPPORT.  Use byacc when building the file.
+
+Thu Feb 11 20:14:28 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* Makefile.in:  makeinfo binary is in a new location
+
+Tue Feb  9 12:42:27 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* config.sub: Accept -ecoff as an OS.
+
+	* Makefile.in: Various changes to eliminate a level of make
+	recursion and reduce the required command line length.
+	(BASE_FLAGS_TO_PASS): New variable holding flags passed to all
+	sub-makes.
+	(EXTRA_HOST_FLAGS, EXTRA_TARGET_FLAGS, EXTRA_GCC_FLAGS): New
+	variables holding settings for specific sub-makes.
+	(FLAGS_TO_PASS, TARGET_FLAGS_TO_PASS, GCC_FLAGS_TO_PASS): Rewrote
+	in terms of BASE_FLAGS_TO_PASS.
+	(TARGET_LIBS): New variable listing directories which use
+	TARGET_FLAGS_TO_PASS.
+	(subdir_do): Eliminated.
+	(do-*): New set of targets to replace subdir_do.
+	(various): All targets which used subdir_do now depend on do-*.
+	(local-clean): Renamed from do_clean.
+	(local-distclean): New target, dependency of distclean and
+	realclean.
+	(install-info): Don't create directories.  Depend on dir.info
+	rather than calling make recursively.
+	(install-dir.info): Eliminated.
+	(install-info-dirs): Create all info directories here.
+	(dir.info): Depend upon do-install-info.
+
+	* test-build.mk (HOLES): Added false.
+
+Sat Feb  6 14:05:09 1993  Per Bothner  (bothner@rtl.cygnus.com)
+
+	* config.guess:  Recognize BSDI and BSDJ (Jolitz 386bsd).
+
+Thu Feb  4 20:49:18 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* Makefile.in (info): remove dependency on all-texinfo.  The
+	problem was really in texinfo/C, not at this level.
+
+Thu Feb  4 13:38:41 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* Makefile.in (info): Added dependency on all-texinfo (PR 2112).
+
+Thu Feb  4 01:50:53 1993  John Gilmore  (gnu@cygnus.com)
+
+	* Makefile.in (make-gdb.tar.Z):  Change BISON to 'bison -y' for
+	GDB releases.
+
+Wed Feb  3 17:22:16 1993  Ken Raeburn  (raeburn@cambridge.cygnus.com)
+
+	* configure: Include srcdir in message about target of link not
+	being found.  Don't convert `-' to `_' in `with' options being
+	passed to subdirs.
+
+Tue Feb  2 18:57:59 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* configure.in: add uudecode to host_tools
+
+	* Makefile.in: added {all,install}-uudecode targets, added them to
+	the appropriate lists
+
+Tue Feb  2 11:45:53 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* Makefile.in (all-gcc): Added dependency on all-gas.
+
+	* configure.in (mips-*-*): Build ld and binutils.
+
+Mon Feb  1 12:35:41 1993  K. Richard Pixley  (rich@rtl.cygnus.com)
+
+	* configure: check return code from mkdir, print error message and
+	  exit on failure.
+
+Sat Jan 30 16:40:28 1993  John Gilmore  (gnu@cygnus.com)
+
+	* Makefile.in (make-gdb.tar.Z):  New location for texinfo.tex.
+
+Thu Jan 28 15:09:59 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* test-build.mk (HOLES): Added tar, cpio and uudecode.
+
+Wed Jan 27 16:50:32 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* config.sub (h8500):  Recognize this as a cpu type.
+
+Sat Jan 23 20:32:01 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* configure: source directory missing is no longer a warning
+
+	* configure.in: recognize irix[34]* instead of irix[34]
+
+	* Makefile.in: define and pass down X11_LIB
+
+Sat Jan 23 13:49:40 1993  Per Bothner  (bothner@cygnus.com)
+
+	* guess-systype: Renamed to ...
+	* config.guess:  ... by popular request.
+	* configure.in, Makefile.in:  Update accordingly.
+
+Thu Jan 21 12:20:55 1993  Per Bothner  (bothner@cygnus.com)
+
+	* guess-systype:  Patches from John Eaton <jwe@che.utexas.edu>:
+	+ Add Convex, Cray/Unicos, and Encore/Multimax support.
+	+ Execute ./dummy instead of assuming . is in PATH.
+
+Tue Jan 19 17:18:06 1993  Per Bothner  (bothner@cygnus.com)
+
+	* guess-systype:  New shell script.  Attempts to guess the
+	canonical host name of the executing host.
+	Only a few hosts are supported so far.
+	* configure:  Call guess-systype if no host is specified.
+
+Tue Jan 19 08:26:07 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* Makefile.in (gcc-no-fixedincludes): Made to work with current
+	gcc Makefile.
+
+
+Fri Jan 15 10:27:02 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* Makefile.in (GCC_FLAGS_TO_PASS): New variable.
+	(all-gcc, install-gcc, subdir_do): Use it.
+
+Wed Jan 13 17:06:45 1993  Jim Wilson  (wilson@sphagnum.cygnus.com)
+
+	* Makefile.in: Rename uninstalled gcc driver from gcc to xgcc.
+
+Wed Jan  6 20:29:16 1993  Mike Werner  (mtw@rtl.cygnus.com)
+
+	* Makefile.in: Removed explicit setting of SUBDIRS. SUBDIRS is now
+	  set exclusively by configure, using configure.in .
+
+Wed Jan  6 13:44:11 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* test-build.mk: set $PATH for all builds
+
+	* Makefile.in: pass TARGET_FLAGS_TO_PASS for xiberty and libm
+
+Wed Jan  6 11:02:10 1993  Fred Fish  (fnf@cygnus.com)
+
+	* Makefile.in (GCC_FOR_TARGET):  Supply a default that matches
+	the one used in gcc/Makefile.in, so that a null expansion doesn't
+	override the one needed to build gcc with a native cc.
+
+
+Tue Jan  5 07:55:12 1993  Ken Raeburn  (raeburn@cambridge.cygnus.com)
+
+	* configure: Accept -with arguments.
+
+Sun Jan  3 15:15:09 1993  Steve Chamberlain  (sac@thepub.cygnus.com)
+
+	* Makefile.in: added h8300sim
+
+Tue Dec 29 15:06:00 1992  Ian Lance Taylor  (ian@cygnus.com)
+
+	* build-all.mk: If canonhost is i386-unknown-sco3.2v4, change it
+	to i386-sco3.2v4.  Set TARGETS and CFLAGS for i386-sco3.2v4.
+	(all-cygnus, native, build-cygnus): Make
+	$(canonhost)-stamp-3stage-done, not $(host)....
+	* test-build.mk (stamp-3stage-compared): Use tail +10c for
+	i386-sco3.2v4.  Added else true to if command.
+
+Mon Dec 28 12:08:56 1992  Ken Raeburn  (raeburn@cygnus.com)
+
+	* config.sub: (from FSF) Sequent uses a BSD-like OS.
+
+Mon Dec 28 08:32:06 1992  Minh Tran-Le  (mtranle@paris.intellicorp.com)
+
+	* configure.in (i[34]86-*-isc*): added; uses mh-sysv.
+
+Thu Dec 24 17:26:24 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* configure.in: don't remove binutils from Solaris builds
+
+Thu Dec 24 14:08:38 1992 david d`zoo' zuhn  (zoo@cygnus.com)
+
+	* Makefile.in: get rid of earlier definitions for *clean,
+	also handle the recursive info rule better
+
+Thu Dec 24 12:40:21 1992  Per Bothner  (bothner@rtl.cygnus.com)
+
+	* Makefile.in (mostlyclean, distclean, realclean):  Fix to
+	do more-or-less the right thing.
+
+Wed Dec 16 10:25:31 1992  Ian Lance Taylor  (ian@cygnus.com)
+
+	* Makefile.in: Add lines defining CC and CXX, and use CXX rather
+	than gcc in definitions of CXX_FOR_BUILD and CXX_FOR_TARGET.
+
+Tue Dec 15 00:34:32 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* Makefile.in: change all $(host_cpu)-$(host_vendor)-$(host_os) to
+	$(host_canonical).
+
+	* configure.in: split the configdirs list into 4 categories (native
+	v. cross, library v. tool) and handle the cross-only and native-
+	only in more reasonable (and correct!) way.
+
+Mon Dec 14 17:04:22 1992  Stu Grossman  (grossman at cygnus.com)
+
+	* configure.in (hppa*-*-*):  Don't remove bfd and gdb from
+	configdirs anymore.
+
+Sun Dec 13 00:37:26 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* Makefile.in: extensive cleanup::  removed all of the explicit
+	clean-* targets, collapsed many wrappers around subdir_do into
+	one, added additional targets to satisfy standards.texi, deleted
+	some old targets, some changes for consistency
+
+Fri Dec 11 20:18:02 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* configure.in: handle some programs as cross-only, and others as
+	native only
+
+	* test-build.mk: handle partial holes in a more generic manner
+
+	* Makefile.in: m4 depends on libiberty
+
+Thu Dec  3 21:52:11 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* configure.in: add m4, textutils, fileutils, sed, shellutils,
+	time, wdiff, and find to configdirs
+
+	* Makefile.in: all, clean, and install rules for the new programs
+	added to configure.in
+
+Mon Nov 30 14:54:34 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* configure.in: use mh-sun for all *-sun-* hosts
+
+Fri Nov 27 18:35:54 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* Makefile.in: define flags for X11 include files and library file
+	locations, pass them down to the programs that need this info
+
+	* build-all.mk: added a 'native' target, to 3stage the native toolchain
+
+Sun Nov 22 18:59:13 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* configure.in: start building libg++ for HP-UX targets
+
+Wed Nov 18 19:33:11 1992  John Gilmore  (gnu@cygnus.com)
+
+	* README:  Update references to files moved into etc/.
+
+Sun Nov 15 09:36:08 1992  Fred Fish  (fnf@cygnus.com)
+
+	* config.sub (i386sol2, i486sol2):  i[34]86-unknown-solaris2.
+	* configure.in (i[34]86-*-solaris2*):  Use config/mh-sysv4.
+
+Thu Nov 12 08:50:42 1992  Ian Lance Taylor  (ian@cygnus.com)
+
+	* configure: accept dash as well as underscore in long option
+	names for FSF compatibility.
+
+Wed Nov 11 08:04:37 1992  Ian Lance Taylor  (ian@cygnus.com)
+
+	* config.sub: added -sco3.2v4 support from FSF.
+
+Sun Nov  8 21:14:30 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* configure.in: expand the section that adds or removes
+	directories from the list of programs to build, to handle native
+	vs. cross in addition to host v. native
+
+Sat Nov  7 18:52:27 1992  Per Bothner  (bothner@rtl.cygnus.com)
+
+	* Makefile.in:  Replace C++ in macro names with CXX.
+	This is less likely to break ...
+
+Sat Nov  7 15:16:58 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* test-build.mk: add -w to GNU_MAKE
+
+Fri Nov  6 23:10:37 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* config.sub: remove 'sparc'-->'sparc-sun' default transformation,
+	add 'sparc' to list of recognized cpus.  This needed to make
+	'sparc-aout' expand to 'sparc-unknown-aout' instead of 'sparc-sun-aout'.
+	Delete some redundant ose68 variants.  Recognize -wrs as an os,
+	then changes that into $CPU-wrs-vxworks.
+
+	* configure.in: remove most references to gdbtest, regularize
+	target based program removal
+
+	* test-build.mk: import from p3 tree (many fixes and changes)
+
+Fri Nov  6 20:59:00 1992  david d `zoo' zuhn  (zoo@cygnus.com)
+
+	* Makefile.in: added rules to handle tcl, tk, and expect
+
+	* configure.in: handle those directories if they exist
+
+Thu Nov  5 14:35:41 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* config.sub: removed bogus hppabsd and hppahpux names, since
+	"hppa" is not a valid cpu (hppa1.1 or hppa1.0 are, though)
+
+Thu Oct 29 00:12:41 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* Makefile.in: all-gcc now depends on all-binutils.  all-libg++
+	depends upon all-xiberty
+
+	* Makefile.in: changes from p3, including:
+
+	Thu Oct  8 15:00:17 1992  Ian Lance Taylor  (ian@cygnus.com)
+
+	* Makefile.in (XTRAFLAGS): include newlib directories if
+	newlib/Makefile exists, rather than if host != target.
+
+	Fri Sep 25 13:41:52 1992  Ian Lance Taylor  (ian@cygnus.com)
+
+	* Makefile.in: added -nostdinc to XTRAFLAGS if we are using gcc
+	from the same source tree and not building a cross-compiler.  This
+	matters for the libg++ configuration if reconfiguring a tree that
+	has already been installed.
+
+	Thu Sep 10 10:35:51 1992  Ian Lance Taylor  (ian@cygnus.com)
+
+	* Makefile.in: added -I for newlib/targ-include to XTRAFLAGS, to
+	pick up the machine and system specific header files.
+
+	* Makefile.in: added AS_FOR_TARGET, passed down in
+	TARGET_FLAGS_TO_PASS.  Added CC_FOR_BUILD, which is intended to be
+	the C compiler to use to create programs which are run in the
+	build environment, set it to default to $(CC), and passed it down
+	in FLAGS_TO_PASS and TARGET_FLAGS_TO_PASS.
+
+	Mon Sep  7 22:34:42 1992  Ian Lance Taylor  (ian@cirdan.cygnus.com)
+
+	* Makefile.in: add $(host) = $(target) tests back to *_FOR_TARGET.
+	We need them for unusual native builds, like systems without
+	ranlib.
+
+	* configure: also define $(host_canonical) and
+	$(target_canonical), which are the full, canonical names for the
+	given host and target
+
+Sun Nov  1 16:38:17 1992  Per Bothner  (bothner@cygnus.com)
+
+	* Makefile.in:  Added separate definitions for C++.
+
+Fri Oct 30 11:37:52 1992  Fred Fish  (fnf@cygnus.com)
+
+	* configure.in (configdirs):  Add deja-gnu.
+
+Fri Oct 23 00:39:18 1992  John Gilmore  (gnu@cygnus.com)
+
+	* README:  Update for configure.texi and gdb-4.7 release.
+
+Wed Oct 21 21:54:27 1992  John Gilmore  (gnu@cygnus.com)
+
+	* Makefile.in:  Move "all" target to top of file.
+	Previously, first target was ".PHONY" which caused BSD4.4 make
+	to build .PHONY when make was run without arguments.
+
+Mon Oct 19 01:17:54 1992  John Gilmore  (gnu@cygnus.com)
+
+	* Makefile.in:  Add COPYING.LIB to GDB releases, now that there's
+	Library-copylefted code in libiberty.
+
+Tue Oct 13 01:22:32 1992  John Gilmore  (gnu@cygnus.com)
+
+	* config.sub:  Replace m68kmote with plain old m68k.
+
+Fri Oct  9 03:14:24 1992  John Gilmore  (gnu@cygnus.com)
+
+	* Makefile.in:  Remove space from blank line, avoid Make complaints.
+
+Thu Oct  8 18:41:45 1992  Ken Raeburn  (raeburn@cygnus.com)
+
+	* config.sub: Complain if no argument is given.  Added support for
+	386bsd as OS and target alias.
+
+Thu Oct  8 15:07:22 1992  Ian Lance Taylor  (ian@cygnus.com)
+
+	* Makefile.in (XTRAFLAGS): include newlib directories if
+	newlib/Makefile exists, rather than if host != target.
+
+Mon Oct  5 03:00:09 1992  Mark Eichin  (eichin at tweedledumber.cygnus.com)
+
+	* config.sub: recognize sparclite-wrs-vxworks.
+
+	* Makefile.in (install-xiberty): added *-xiberty make rules (from
+	p3.) Added clean-xiberty to clean.
+
+Thu Oct  1 17:59:19 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* configure.in: use *-*-* instead of nested cases for host and target
+
+Tue Sep 29 14:11:18 1992  Ian Lance Taylor  (ian@cygnus.com)
+
+	* Makefile.in: added -nostdinc to XTRAFLAGS if we are using gcc
+	from the same source tree and not building a cross-compiler.  This
+	matters for the libg++ configuration if reconfiguring a tree that
+	has already been installed.
+
+Sep 20 08:53:10 1992  Fred Fish  (fnf@cygnus.com)
+
+	* config.sub (i486v/i486v4):  Merge in from FSF version.
+
+Fri Sep 18 00:32:00 1992  Mark Eichin  (eichin@cygnus.com)
+
+	* configure: only set PWD if it is already set.
+
+Thu Sep 17 23:05:53 1992  Mark Eichin  (eichin@cygnus.com)
+
+	* configure: just set PWD=`pwd` at the top, since Ultrix sh
+	doesn't have unset and all success paths (and most error paths)
+	out set it anyway. (Note: should change all uses of ${PWD=`pwd`}
+	to just ${PWD} to avoid confusion.)
+
+Tue Sep 15 16:00:54 1992  Ian Lance Taylor  (ian@cygnus.com)
+
+	* configure: always set $(tooldir) to $(libdir)/$(target_alias),
+	even for a native compilation.
+
+Tue Sep 15 02:22:56 1992  John Gilmore  (gnu@cygnus.com)
+
+	Changes to make the gdb.tar.Z rule work better.
+
+	* Makefile.in (GDB_SUPPORT_DIRS):  Add opcodes.
+	(DEVO_SUPPORT):  Add configure.texi.
+	(bfd-ilrt.tar.Z):  Remove ancient rule.
+
+Thu Sep 10 10:43:19 1992  Ian Lance Taylor  (ian@cygnus.com)
+
+	* Makefile.in: added -I for newlib/targ-include to XTRAFLAGS, to
+	pick up the machine and system specific header files.
+
+	* configure.in, config.sub: added new target m68010-adobe-scout,
+	with alias of adobe68k.  Changed configure.in to check for
+	-scout before -sco* to avoid a false match.
+
+	* Makefile.in: added AS_FOR_TARGET, passed down in
+	TARGET_FLAGS_TO_PASS.  Added CC_FOR_BUILD, which is intended to be
+	the C compiler to use to create programs which are run in the
+	build environment, set it to default to $(CC), and passed it down
+	in FLAGS_TO_PASS and TARGET_FLAGS_TO_PASS.
+
+Wed Sep  9 12:21:42 1992  Ian Lance Taylor  (ian@cygnus.com)
+
+	* Makefile.in: added TARGET_FLAGS_TO_PASS, CC_FOR_TARGET,
+	AR_FOR_TARGET, RANLIB_FOR_TARGET, NM_FOR_TARGET.  Pass
+	TARGET_FLAGS_TO_PASS, which defines CC, AR, RANLIB and NM as the
+	FOR_TARGET variants, to newlib and libg++.
+
+Tue Sep  8 17:28:30 1992  Ken Raeburn  (raeburn@cambridge.cygnus.com)
+
+	* Makefile.in (all-gas, all-gdb): Require all-opcodes to be built
+	first.
+
+Wed Sep  2 02:50:05 1992  John Gilmore  (gnu@cygnus.com)
+
+	* config.sub:  Accept `elf' as an environment.
+
+Tue Sep  1 15:48:30 1992  Steve Chamberlain  (sac@thepub.cygnus.com)
+
+	* Makefile.in (all-opcodes):  cd into the right directory
+
+Sun Aug 30 21:12:11 1992  Ian Lance Taylor  (ian@cygnus.com)
+
+	* configure: added -program_transform_name option, used as
+	argument to sed when installing programs.
+	configure.texi: added documentation for -program_prefix,
+	-program_suffix and -program_transform_name.
+
+Thu Aug 27 21:59:44 1992  John Gilmore  (gnu@cygnus.com)
+
+	* config.sub:  Accept i486 where i386 ok.
+
+Thu Aug 27 13:04:42 1992  Brendan Kehoe  (brendan@rtl.cygnus.com)
+
+	* config.sub: accept we32k
+
+Mon Aug 24 14:05:14 1992  Ian Lance Taylor  (ian@cygnus.com)
+
+	* config.sub, configure.in: accept OSE68000 and OSE68k.
+
+	* Makefile.in: don't create all directories for ``make install'';
+	let the subdirectories create the ones they need.
+
+Tue Aug 11 23:13:17 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* COPYING: new file, GPL v2
+
+Tue Aug  4 01:12:43 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* Makefile.in: use the new gen-info-dir, which needs a template
+	argument (which also lives in texinfo)
+
+	* configure.texi, standards.texi: fix INFO-DIR-ENTRY
+
+Mon Aug  3 00:34:17 1992  Fred Fish  (fnf@cygnus.com)
+
+	* config.sub (ncr3000):  Change i386 to i486.
+
+Thu Jul 23 00:12:17 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* Makefile.in: add install-rcs, install-grep to
+	install-no-fixedincludes, removed install-bison and install-libgcc
+
+Tue Jul 21 01:01:50 1992  david d `zoo' zuhn (zoo@cygnus.com)
+
+	* configure.in: grab the HPUX makefile fragment if on HPUX
+
+Mon Jul 20 11:02:09 1992  D. V. Henkel-Wallace  (gumby@cygnus.com)
+
+	* Makefile.in: eradicate bison spoor (ditto libgcc).
+	 configure.in: recognise m68{k,000}-ericsson-OSE.
+	 es1800 is alias for m68k-ericsson-OSE
+
+Sun Jul 19 17:49:02 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* configure.in: rearrange the parts that remove programs from
+	configdirs, based now on HOST==TARGET or by canonical triple.
+
+Fri Jul 17 22:52:49 1992  K. Richard Pixley  (rich@rtl.cygnus.com)
+
+	* test-build.mk: recurse explicitly with -f test-build.mk when
+	  appropriate.  predicate stage3 and comparison on the existence
+	  of gcc.  That is, if gcc isn't around, we aren't three-staging.
+	  On very clean, also remove ...stamp-co.  Build in-place before
+	  doing other builds.
+
+Thu Jul 16 18:33:09 1992  Steve Chamberlain  (sac@thepub.cygnus.com)
+
+	* Makefile.in, configure.in: add tgas
+
+Thu Jul 16 16:05:28 1992  K. Richard Pixley  (rich@rtl.cygnus.com)
+
+	* Makefile.in: a number of changes merged in from progressive.
+
+	* configure.in: add libm.
+
+	* .cvsignore: ignore some stuff that comes from test-build.mk.
+
+Tue Jul  7 00:24:52 1992  Fred Fish  (fnf@cygnus.com)
+
+	* config.sub:  Add es1800 (m68k-ericsson-es1800).
+
+Tue Jun 30 20:24:41 1992  D. V. Henkel-Wallace  (gumby@cygnus.com)
+
+	* configure: Add program_suffix (parallel to program_prefix)
+	* Makefile.in: adjust directory-creating script for losing decstation
+
+Mon Jun 22 23:43:48 1992  Per Bothner  (bothner@cygnus.com)
+
+	* configure:  Minor $subdir-related fixes.
+
+Mon Jun 22 18:30:26 1992  Steve Chamberlain  (sac@thepub.cygnus.com)
+
+	* configure: fix various problems with propogating
+	makefile_target_frag in subdirs.
+	* configure.in: config libgcc if its there
+
+Fri Jun 19 15:19:40 1992  Stu Grossman  (grossman at cygnus.com)
+
+	* config.sub:  HPPA merge.
+
+Sun Jun 14 10:29:19 1992  John Gilmore  (gnu at cygnus.com)
+
+	* Makefile.in:  Replace all-bison with all-byacc in all
+	dependency lines for other tools (which now use byacc).
+
+Fri Jun 12 22:21:57 1992  John Gilmore  (gnu at cygnus.com)
+
+	* config.sub:  Add sun4sol2 => sparc-sun-solaris2.
+
+Thu Jun  4 12:07:32 1992  Mark Eichin  (eichin@cygnus.com)
+
+	* Makefile.in: make gprof rules similar to byacc rules (instead of
+	vestigal $(unsubdir) that didn't work...)
+
+Thu Jun  4 00:37:05 1992  Per Bothner  (bothner@rtl.cygnus.com)
+
+	* config.sub:  Add support for Linux.
+	* Makefile.in:  Use $(FLAGS_TO_PASS) more consistently
+	(at least for libg++).
+
+Tue Jun 02 20:03:00 1992  david d `zoo' zuhn (zoo@cygnus.com)
+
+	* configure.texi: fix doc for the -nfp option to configure
+
+Tue Jun  2 17:20:52 1992  Michael Tiemann  (tiemann@cygnus.com)
+
+	* Makefile.in (all-binutils): ar needs flex, so depend on all-flex.
+
+Sun May 31 15:04:08 1992  Mark Eichin  (eichin at cygnus.com)
+
+	* config.sub: changed [^-]+ to [^-][^-]* so that it works under
+	Sun sed. (BSD 4.3 sed doesn't handle [^-]+ either.)
+	* configure.in: added solaris* host_makefile_frag hook.
+
+Sun May 31 01:10:34 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* config.sub: changed recognition of m68000 so that various
+	m68k types can be specified via m680[01234]0
+
+Sat May 30 21:01:06 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* config.sub (basic_machine): fix sed so that '-foo' isn't
+	completely substituted out while .+'-foo' loses the '-foo'
+
+Wed May 27 23:18:52 1992  Michael Tiemann  (tiemann@rtl.cygnus.com)
+
+	* config.sub ($os): Add -aout.
+
+Fri May 22 14:00:02 1992  Per Bothner  (bothner@cygnus.com)
+
+	* configure:  If host_makefile_frag is absolute, don't
+	prefix ${invsubdir} (relevant to libg++ auto-configure).
+
+Thu May 21 18:00:09 1992  Michael Tiemann  (tiemann@rtl.cygnus.com)
+
+	* Makefile.in (tooldir): Define it.
+	(all-ld): Depend on all-flex.
+
+Sun May 10 21:45:59 1992  Per Bothner  (bothner@rtl.cygnus.com)
+
+	* Makefile.in (check):  Fix libg++ special case.
+
+Fri May  8 08:31:41 1992  K. Richard Pixley  (rich@cygnus.com)
+
+	* configure: do not bury `pwd` into config.status, thus do fewer
+	  pwd's.
+
+	* configure: print the "Building in" message only when building in
+	  other than "." AND verbose.
+
+	* configure: remove -s, rework -v to better accomodate guested
+	  configures.
+
+	* standards.texi: updated to 3 may, fixed librid <-> libdir typo.
+
+Fri May  1 18:00:50 1992  K. Richard Pixley  (rich@cygnus.com)
+
+	* Makefile.in: macroize flags passed on recursion.  remove
+	  fileutils.
+
+Thu Apr 30 08:56:20 1992  K. Richard Pixley  (rich@cygnus.com)
+
+	* configure: get makesrcdir right for subdirs deeper than 1.
+
+	* Makefile.in: pass INSTALL, INSTALL_DATA, INSTALL_PROGRAM on
+	  install.
+
+Fri Apr 24 15:51:51 1992  K. Richard Pixley  (rich@cygnus.com)
+
+	* Makefile.in: don't print subdir_do or recursion lines.
+
+Fri Apr 24 15:22:04 1992  K. Richard Pixley  (rich@cygnus.com)
+
+	* standards.texi: added menu item.
+
+	* Makefile.in: build and install standards.info.
+
+	* standards.texi: new file.
+
+Wed Apr 22 18:06:55 1992  K. Richard Pixley  (rich@rtl.cygnus.com)
+
+	* configure: test for and move config.status pieces from
+	  ${subdir}/.
+
+Wed Apr 22 14:38:34 1992  Fred Fish  (fnf@cygnus.com)
+
+	* configure:  Test for existance of files before trying to mv
+	them, to avoid numerous non-existance messages.
+
+Tue Apr 21 12:31:33 1992  K. Richard Pixley  (rich@cygnus.com)
+
+	* configure: correct final line of config.status.
+
+	* configure: patch from eggert.  Avoids a protection problem if
+	  the original Makefile.in is read only.
+
+	* configure: use move-if-change from gcc to create config.status.
+	  Some makefiles depend on config.status to tell if a directory
+	  has been reconfigured for a different host.  This change
+	  prevents those directories from remaking everything in the case
+	  where the reconfig was only intended to rebuild a Makefile.
+
+	* configure: test for config.sub with "config.sub sun4" rather
+	  than "config.sub ${host_alias}".  Otherwise we can't tell a bad
+	  host alias from a missing config.sub.
+
+Mon Apr 20 18:16:36 1992  K. Richard Pixley  (rich@rtl.cygnus.com)
+
+	* Makefile.in: explicitly pass CFLAGS on recursion. no longer pass
+	  MINUS_G (this can be done with CFLAGS).  Default CFLAGS to -g.
+
+Fri Apr 17 18:27:51 1992  Per Bothner  (bothner@cygnus.com)
+
+	* configure: mkdir ${subdir} as needed.
+
+Wed Apr 15 17:37:22 1992  K. Richard Pixley  (rich@cygnus.com)
+
+	* Makefile.in,configure.in: added autoconf.
+
+Wed Apr 15 17:27:34 1992  K. Richard Pixley  (rich@rtl.cygnus.com)
+
+	* Makefile.in: no longer pass against on recursion.
+
+	* Makefile.in: added .NOEXPORT: so that stray makefile_frag
+	  definitions are not inherited.
+
+	* configure: correct makesrcdir when subdir is .
+
+Tue Apr 14 11:56:09 1992  Per Bothner  (bothner@cygnus.com)
+
+	* configure:  Add support for 'subdirs' variable, which is
+	like 'configdirs', except that configure doesn't re-invoke
+	itself for subdirs, it just creates a Makefile for each subdir.
+	* configure.texi:  Document subdirs.
+
+Mon Apr 13 18:50:16 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* configure.in: added flex to configdirs
+
+Mon Apr 13 18:43:55 1992  K. Richard Pixley  (rich@cygnus.com)
+
+	* Makefile.in: remove clean-stamps from clean.
+
+Sat Apr 11 03:52:03 1992  John Gilmore  (gnu at cygnus.com)
+
+	* configure.in:  Add gdbtest to configdirs.
+
+Fri Apr 10 23:11:49 1992  Fred Fish  (fnf@cygnus.com)
+
+	* Makefile.in (MINUS_G):  Add macro, default to -g, pass on
+	to recursive makes.
+	* configure.in:  Recognize new ncr3000 config.
+
+Wed Apr  8 23:08:12 1992  K. Richard Pixley  (rich@cygnus.com)
+
+	* Makefile.in, configure.in: removed references to gdbm.
+
+Tue Apr  7 16:48:20 1992  Per Bothner  (bothner@cygnus.com)
+
+	* config.sub:  Don't canonicalize os value
+	newsos* to bsd (readline needs to check for newsos).
+	(This fix was earlier made Jan 31, but got re-broken.)
+
+Mon Apr  6 14:34:08 1992  Stu Grossman  (grossman at cygnus.com)
+
+	* configure.in:  sco is an os, not a vendor!
+
+	* configure:  Quote $( better.  Keep various shells happy.
+
+Tue Mar 31 16:32:57 1992  K. Richard Pixley  (rich@cygnus.com)
+
+	* Makefile.in: eliminate stamp-files.
+
+Mon Mar 30 22:20:23 1992  K. Richard Pixley  (rich@cygnus.com)
+
+	* Makefile.in: add send_pr.  remove "force" from .stmp-gprof rule.
+	  Supress echoing of all the "if [ -d ... $(MAKE)" lines.
+
+Wed Mar 25 15:20:04 1992  Stu Grossman  (grossman@cygnus.com)
+
+	* config.sub:  fix iris/iris3.
+
+Wed Mar 25 10:34:19 1992  K. Richard Pixley  (rich@cygnus.com)
+
+	* configure: re-add -rm.
+
+Tue Mar 24 23:50:16 1992  K. Richard Pixley  (rich@cygnus.com)
+
+	* Maskefile.in: add .stmp-rcs to all.
+
+	* configure.in: remove gas from rs6000 build, use aix host fragment.
+
+Mon Mar 23 19:43:35 1992  K. Richard Pixley  (rich@cygnus.com)
+
+	* configure: pass down site_option during recursion.
+
+Thu Mar 19 16:49:36 1992  Stu Grossman  (grossman at cygnus.com)
+
+	* Makefile.in (all.cross):  Add .stmp-bfd .stmp-readline.
+
+Wed Mar 18 15:29:33 1992  Mike Stump  (mrs@cygnus.com)
+
+	* configure: Change exec_prefix so that it really defaults to prefix.
+
+Sat Mar 14 17:20:38 1992  Fred Fish  (fnf@cygnus.com)
+
+	* Makefile.in, configure.in:  Add support for mmalloc library.
+
+Fri Mar 13 18:44:18 1992  K. Richard Pixley  (rich@cygnus.com)
+
+	* Makefile.in: add stmp dependencies for a few more things.
+
+Thu Mar 12 04:56:24 1992  K. Richard Pixley  (rich@cygnus.com)
+
+	* configure: adjusted error message on objdir/srcdir configure
+	  collision, per john's suggestion.
+
+	* Makefile.in: add libiberty stmp to all and all.cross.
+
+Wed Mar 11 02:07:52 1992  K. Richard Pixley  (rich@cygnus.com)
+
+	* Makefile.in: remove force dependencies, add grep to all.
+
+Tue Mar 10 21:49:18 1992  K. Richard Pixley  (rich@mars.cygnus.com)
+
+	* Makefile.in: drop flex.  make stamp files work.
+
+	* configure: added test for conflicting configuration in srcdir,
+	  remove trailing slashes from srcdir.  Otherwise emacs gdb mode
+	  gets cranky.  use relative paths for configure and srcdir
+	  whenever possible.  Send some error messages to stderr that were
+	  going to stdout.
+
+Tue Mar 10 18:01:55 1992  Per Bothner  (bothner@cygnus.com)
+
+	* Makefile.in:  Fix libg++ rule to check for gcc directory
+	before using gcc/gcc.  Also pass XTRAFLAGS.
+
+Thu Mar  5 21:45:07 1992  K. Richard Pixley  (rich@sendai)
+
+	* Makefile.in: added stmp-files so that directories aren't polled
+	  when they are already built.
+
+	* configure.texi: fixed a node pointer problem.
+
+Thu Mar  5 12:05:58 1992  Stu Grossman  (grossman at cygnus.com)
+
+	* config.sub configure.in gdb/configure.in
+	gdb/mips-tdep.c gdb/mipsread.c gdb/procfs.c gdb/signame.h
+	gdb/tm-irix3.h gdb/tm-mips.h gdb/xm-irix4.h gdb/config/mt-irix3
+	gdb/config/mh-irix4 texinfo/configure.in:  Port to SGI Irix-4.x.
+
+Wed Mar  4 02:57:46 1992  K. Richard Pixley  (rich@rtl.cygnus.com)
+
+	* configure: -recurring becomes -silent.  corrected help message
+	  for -site= option.
+
+	* Makefile.in: mkdir $(exec_prefix) and $(tooldir).
+
+Tue Mar  3 14:51:21 1992  K. Richard Pixley  (rich@rtl.cygnus.com)
+
+	* configure: when building Makefile for crosses, replace
+	  tooldir and program_prefix.  default srcdir from location of
+	  config.sub.  remove "for host in hosts" and "for target in
+	  targets" loops.
+
+Wed Feb 26 19:48:25 1992  K. Richard Pixley  (rich@rtl.cygnus.com)
+
+	* Makefile.in: Do not pass bindir or mandir to cvs.
+
+Wed Feb 26 18:04:40 1992  K. Richard Pixley  (rich@cygnus.com)
+
+	* Makefile.in, configure.in: removed traces of namesubdir,
+	  -subdirs, $(subdir), $(unsubdir), some rcs triggers.  Forced
+	  copyrights to '92, changed some from Cygnus to FSF.
+
+	* configure.texi: remove most references to multiple hosts,
+	  multiple targets, subdirs, etc.
+
+	* configure.man: removed rcsid. reference config.sub not
+	  config.subr.
+
+	* Makefile.in: mkdir $(infodir) on install-info.
+
+Wed Feb 19 15:41:13 1992  John Gilmore  (gnu at cygnus.com)
+
+	* configure.texi:  Explain better about .gdbinit and about
+	the environment that configure.in sections run in.
+
+Fri Feb  7 07:55:00 1992  John Gilmore  (gnu at cygnus.com)
+
+	* configure.in:  Ultrix is only a decstation if it's a MIPS.
+
+Fri Jan 31 21:54:51 1992  John Gilmore  (gnu at cygnus.com)
+
+	* README:  DOC.configure => cfg-paper.texi.
+
+Fri Jan 31 21:48:18 1992  Stu Grossman  (grossman at cygnus.com)
+
+	* config.sub (near case $os):  Don't convert newsos* to bsd!
+
+Fri Jan 31 02:27:32 1992  John Gilmore  (gnu at cygnus.com)
+
+	* Makefile.in:  Reinstall change from gdb-4.3 that reduces
+	the number of copies of COPYING that go into the GDB tar file.
+
+Thu Jan 30 16:17:30 1992  Stu Grossman  (grossman at cygnus.com)
+
+	* bfd/configure.in, gdb/config/mh-i386sco,
+	gdb/config/mt-i386v32, gdb/configure.in, readline/configure.in:
+	Fix SCO configuration stuff.
+
+Tue Jan 28 23:51:07 1992  Per Bothner  (bothner at cygnus.com)
+
+	* Makefile.in:  For libg++, make sure the -I pointing
+	to the gcc directory goes *after* all the libg++-local -I flags.
+	Also, move just-gcc dependency from just-libg++ to all-libg++.
+
+Tue Jan 28 12:56:24 1992  Stu Grossman  (grossman at cygnus.com)
+
+	* configure:  Change -x to -f to keep Ultrix /bin/test happy.
+
+Sat Jan 18 17:45:11 1992  Stu Grossman  (grossman at cygnus.com)
+
+	* Makefile.in (make-gdb.tar.Z):  Remove texinfo targets.
+
+Sat Jan 18 17:03:21 1992  Fred Fish  (fnf at cygnus.com)
+
+	* config.sub:  Add stratus configuration frags.  Also
+	submitted to FSF.
+
+Sat Jan 18 15:35:29 1992  Stu Grossman  (grossman at cygnus.com)
+
+	* Makefile.in (DEV_SUPPORT):  add configure.man.
+
+	* config.sub(Decode manufacturer-specific):  add -none*.
+
+Fri Jan 17 17:58:05 1992  Stu Grossman  (grossman at cygnus.com)
+
+	* Makefile.in:  remove form feeds to make Sun's make happy.
+	(DEVO_SUPPORT):  DOC.configure => cfg-paper.texi.
+
+Sat Jan  4 16:11:44 1992  John Gilmore  (gnu at cygnus.com)
+
+	* Makefile.in (AR_FLAGS):  Make quieter.
+
+Thu Jan  2 22:57:12 1992  John Gilmore  (gnu at cygnus.com)
+
+	* configure.in:  Add libg++.
+	* configure:  When verbose, don't output the command line at each
+	level; it will be unremarkably the same as the previous version,
+	which will be the same as what the user typed.
+
+Fri Dec 27 16:26:47 1991  K. Richard Pixley  (rich at cygnus.com)
+
+	* configure.in, Makefile.in: fix clean-info, add flex.  add
+	  fileutils.
+
+	* configure: be less sensitive to spaces in Makefile.in.  Do not
+	  look for sources in "..".  Doing so breaks subdirectories that
+	  might have their own configure.  If a subdir has it's own
+	  configure script, use it.
+
+Thu Dec 26 16:30:26 1991  K. Richard Pixley  (rich at cygnus.com)
+
+	* cfg-paper.texi: some changes suggested by rms.
+
+Thu Dec 26 10:13:36 1991  Fred Fish  (fnf at cygnus.com)
+
+	* config.sub:  Merge in some small additions from the FSF version,
+	taken from the gcc distribution, to bring the Cygnus and FSF
+	versions into closer sync.
+
+Fri Dec 20 11:34:18 1991  Fred Fish  (fnf at cygnus.com)
+
+	* configure.in:  Changed svr4 references to sysv4.
+
+Thu Dec 19 15:54:29 1991  K. Richard Pixley  (rich at cygnus.com)
+
+	* configure: added -V for version number option.
+
+Wed Dec 18 15:39:34 1991  K. Richard Pixley  (rich at cygnus.com)
+
+	* DOC.configure, cfg-paper.texi: revised, updated, and texinfo'd.
+	  renamed from DOC.configure to cfg-paper.texi.
+
+Mon Dec 16 23:05:19 1991  K. Richard Pixley  (rich at rtl.cygnus.com)
+
+	* configure, config.subr, config.sub: config.subr is now
+	  config.sub again.
+
+Fri Dec 13 01:17:06 1991  K. Richard Pixley  (rich at cygnus.com)
+
+	* configure.texi: new file, in progress.
+
+	* Makefile.in: build info file and install the man page for
+	  configure.
+
+	* configure.man: new file, first cut.
+
+	* configure: find config.subr again now that configuration "none"
+	  has gone.  removed all traces of the -ansi option.  removed all
+	  traces of the -languages option.
+
+	* config.subr: resync from rms.
+
+1991-12-11  K. Richard Pixley  (rich at rtl.cygnus.com)
+
+	* configure, config.sub, config.subr: merge config.sub into
+	  config.subr, call the result config.subr, remove config.sub, use
+	  config.subr.
+
+	* Makefile.in: revised install for dir.info.
+
+1991-12-10  K. Richard Pixley  (rich at rtl.cygnus.com)
+
+	* configure.in: add decstation host makefile frag.
+
+	* Makefile.in: BISON now bison -y again.  also install-gcc on
+	  install.  clean-gdbm on clean.  infodir belongs in datadir.
+	  Make directories for info install.  Build dir.info here then
+	  install it.
+
+1991-12-09  K. Richard Pixley  (rich at rtl.cygnus.com)
+
+	* Makefile.in: fix for bad directory tests.
+
+1991-12-07  K. Richard Pixley  (rich at rtl.cygnus.com)
+
+	* configure: \{1,2\} appears to be a sysv'ism.  Use a different
+	  regexp.  -srcdir relative was being handled incorrectly.
+
+	* Makefile.in: unwrapped some for loops so that parallel makes
+	  work again and so one can focus one's attention on a particular
+	  package.
+
+1991-12-06  K. Richard Pixley  (rich at rtl.cygnus.com)
+
+	* configure: added PWD as a stand in for `pwd` (for speed). use
+	  elif wherever possible.  make -srcdir work without -objdir.
+	  -objdir= commented out.
+
+1991-12-05  K. Richard Pixley  (rich at rtl.cygnus.com)
+
+	* configure: +options become --options.  -subdirs commented out.
+	  added -host, -datadir.  Renamed -destdir to -prefix.  Comment in
+	  Makefile now at top of generated Makefile.  Removed cvs log
+	  entries.  added -srcdir.  create .gdbinit only if there is one
+	  in ${srcdir}.
+
+	* Makefile.in: idestdir and ddestdir go away.  Added copyrights
+	  and shift gpl to v2.  Added ChangeLog if it didn't exist. docdir
+	  and mandir now keyed off datadir by default.
+
+1991-11-22  K. Richard Pixley  (rich at rtl.cygnus.com)
+
+	* Freshly created ChangeLog.
+
+
+Local Variables:
+mode: change-log
+left-margin: 8
+fill-column: 76
+version-control: never
+End:
Index: b/binutils-2.16.1/ChangeLog.csl
===================================================================
--- /dev/null
+++ b/binutils-2.16.1/ChangeLog.csl
@@ -0,0 +1,287 @@
+2005-05-01  Paul Brook  <paul@codesourcery.com>
+
+	* bfd/elflink.c (_bfd_elf_merge_symbol): Skip weak definitions if a
+	strong definition has already been seen.
+
+2005-05-01  Paul Brook  <paul@codesourcery.com>
+
+	* bfd/elf32-arm.c (bfd_elf32_arm_process_before_allocation): Treat
+	R_ARM_PLT32 the same as R_ARM_PC24.
+	(arm_add_to_rel): Ditto.
+
+2005-05-01  Zack Weinberg  <zack@codesourcery.com>
+
+	* gas/config/tc-arm.c (thumb32_mode): Rename unified_syntax.
+	All uses changed to match.
+	(COND_ALWAYS): Don't offset.
+	(COND_MASK): Delete.
+	(struct arm_it): Add cond field.
+	(struct asm_opcode): Add tag field.  Change some fields to
+	unsigned int and/or to bitfields.
+	(my_get_expression): If unified_syntax, always treat the
+	prefix as optional.
+	(s_thumb32, s_thumb32_func): Delete.
+	(opcode_select, s_force_thumb): Don't set thumb32_mode.
+	(s_syntax): New function.
+	(md_pseudo_table): Update to match.
+	(do_blx, do_iwmmxt_wldstw): Look at inst.cond, not
+	inst.instruction, for the condition.
+	(do_it): New function.
+	(do_t_branch): Get the condition from inst.cond and patch it
+	into the appropriate place.
+	(output_inst): If inst.size == 0, output nothing, but do issue
+	a diagnostic if any.
+	(enum opcode_tag): New set of constants.
+	(opcode_lookup): New function.
+	(md_assemble): Use opcode_lookup.  Restructure a little.
+	(conds, OPS0): Adjust comment.
+	(TxCE, TxCM, TUE, TUF): Rewrite.
+	(TCC): Delete.
+	(TxC3, TC3, tC3, TxCM_, C3, C3E): New notational macros.
+
+	(insns): Use TC3, tC3, or C3, as appropriate, for all
+	instructions where the conditional infix appears after the
+	third letter of the mnemonic.  Use TCE for 'b'.  Use C3E for
+	'cmfe' and 'cnfe'.  Change 'czbne' to 'cbnz', 'czbeq' to 'cbz'.
+	Use TUE, with a dummy ARM opcode, for all variants of 'it'.
+
+	* opcodes/arm-dis.c: Change 'czbne' to 'cbnz', 'czbeq' to 'cbz'.
+
+	* gas/testsuite/gas/arm/thumb.d: bal.n is no longer
+	distinguishable from b.n.
+	* gas/testsuite/gas/arm/thumb32.d: Likewise.  Change 'czbne'
+	to 'cbnz', 'czbeq' to 'cbz'.
+	* gas/testsuite/gas/arm/thumb32.s: Use .syntax unified.
+	Change 'czbne' to 'cbnz', 'czbeq' to 'cbz'.
+
+2005-05-01  Zack Weinberg  <zack@codesourcery.com>
+
+	* gas/config/tc-arm.c (encode_thumb32_addr_mode): Set inst.reloc.pc_rel
+	if is_pc.
+	(T16_32_TAB): Delete unused entry for BLX.
+	(do_t_ldst): Don't offset inst.reloc.exp.X_add_number for PC-relative
+	addressing.
+	(md_pcrel_from): Report the adjusted PC for
+	BFD_RELOC_ARM_THUMB_OFFSET and BFD_RELOC_ARM_T32_OFFSET_IMM.
+	(md_apply_fix3): Correct bitmasks for BFD_RELOC_ARM_T32_OFFSET_IMM.
+	Do not round up value for PC-relative BFD_RELOC_ARM_THUMB_OFFSET.
+
+	* gas/testsuite/gas/arm/thumb.s: Test PC-relative ldr more thoroughly.
+	* gas/testsuite/gas/arm/thumb.d: Update to match.
+
+	* gas/testsuite/gas/arm/thumb32.s: Properly align labels that
+	will be targeted by blx instructions.
+	* gas/testsuite/gas/arm/thumb32.d: Update to match.  Correct
+	expected dissassembly of PC-relative ldr.
+
+	* gas/testsuite/gas/arm/macro1.s: Add leading label and
+	trailing padding for a.out compatibility.
+	* gas/testsuite/gas/arm/macro1.d: Update to match.
+	* gas/testsuite/gas/arm/tcompat2.s: Add trailing padding for a.out
+	compatibility.
+	* gas/testsuite/gas/arm/tcompat2.d: Update to match.
+
+	* opcodes/arm-dis.c (print_insn_thumb32): Reorganize %a and %A
+	handling.  Call info->print_address_func when %a/%A are applied
+	to a PC-relative instruction.
+
+2005-04-29  Zack Weinberg  <zack@codesourcery.com>
+
+	* gas/sb.c: Include as.h.
+	(sb_to_scrub, scrub_position, scrub_from_sb): New statics.
+	(sb_scrub_and_add_sb): New interface.
+	* gas/sb.h: Declare sb_scrub_and_add_sb.
+	* gas/input-scrub.c (input_scrub_include_sb): Use it.
+
+	* gas/config/tc-arm.c (do_t_arit3c): Correct typo in expression.
+	(do_t_mul): Allow dest to equal either source1 or source2 in
+	16-bit form; do not complain about dest == source1 in any
+	case.
+
+	* gas/testsuite/gas/arm/tcompat2.s: Test both dest==source1 and
+	dest==source2 for commutative arithmetic instructions.
+	* gas/testsuite/gas/arm/tcompat2.d: Update to match.
+	* gas/testsuite/gas/arm/t16-bad.l: Adjust expected diagnostic.
+	* gas/testsuite/gas/arm/macro1.s, gas/arm/macro1.d: New test pair.
+	* gas/testsuite/gas/arm/arm.exp: Run it.
+
+2005-04-25  Zack Weinberg  <zack@codesourcery.com>
+
+	Thumb32 assembler.
+
+	* include/elf/arm.h: Import full set of relocation names from
+	latest AAELF.  Make the primary name of all relocations be the one
+	AAELF specifies.  Provide aliases under the traditional names.
+	Kill FIRST_INVALID_RELOC_* and LAST_INVALID_RELOC_*.
+	* bfd/reloc.c: Reorganize ARM relocations.  Remove ARM relocations
+	that are never generated.  Document more of the relocations.  Add
+	relocations for Thumb32.
+	* bfd/libbfd.h, bfd/bfd-in2.h: Regenerate.
+	* bfd/elf32-arm.c: Reorganize howto tables.  Implement Thumb32
+	relocations.
+	* ld/testsuite/ld-arm/mixed-app.d: Adjust expectations for
+	renamed relocations.
+
+	* gas/hash.c (hash_find_n): New interface.
+	* gas/hash.h: Prototype it.
+
+	* gas/config/tc-arm.c: Rewrite and reorganize.  Implement 32-bit
+	Thumb instructions.
+	* gas/testsuite/gas/arm: Convert all "gas_test" style tests to
+	"run_dump_test" style tests, for more thorough testing.  Make
+	adjustments to expectations where necessary.
+	* gas/testsuite/gas/arm/t16-bad.s, gas/testsuite/gas/arm/tcompat.s
+	* gas/testsuite/gas/arm/tcompat2.s, gas/testsuite/gas/arm/thumb32.s:
+	New test cases.
+
+	* opcodes/arm-dis.c: Add support for Thumb32 instructions and
+	16-bit V6T2 instructions.
+
+
+2005-04-13  Paul Brook  <paul@codesourcery.com>
+
+	Backport from mainline.
+	2005-04-11  Alan Modra  <amodra@bigpond.net.au>
+	* emultempl/elf32.em (gld${EMULATION_NAME}_stat_needed): Ignore
+	as_needed libs that were not needed.
+	(gld${EMULATION_NAME}_check_needed): Likewise.
+
+2005-04-08  Mark Mitchell <mark@codesourcery.com>
+
+	* ld/configure.tgt (arm-wrs-linux-gnueabi*): Support both big- and
+	little-endian.
+
+2005-04-08  Paul Brook  <paul@codesourcery.com>
+
+	* elf32-arm.c (ARM2THUMB_GLUE_SIZE): Rename...
+	(ARM2THUMB_STATIC_GLUE_SIZE): ... to this.
+	(ARM2THUMB_PIC_GLUE_SIZE): Define.
+	(a2t1p_ldr_insn, a2t2p_add_pc_insn, a2t3p_bx_r12_insn): Add.
+	(elf32_arm_to_thumb_stub): Create PIC stubs.
+	(record_arm_to_thumb_glue): Use different stub size for relocatable
+	images.
+
+2005-03-29  Julian Brown  <julian@codesourcery.com>
+
+	* elf32-arm.c (elf32_arm_final_link_relocate): Use blx to get to
+	symbian plt entries from thumb mode.
+
+2005-03-28  Daniel Jacobowitz  <dan@codesourcery.com>
+	    Phil Blundell  <philb@gnu.org>
+
+	* bfd/bfd-in2.h, libbfd.h: Regenerated.
+	* bfd/reloc.c: Add ARM TLS relocations.
+	* bfd/elf32-arm.c (elf32_arm_howto_table): Add dynamic TLS
+	relocations.
+	(elf32_arm_tls_gd32_howto, elf32_arm_tls_ldo32_howto)
+	(elf32_arm_tls_ldm32_howto, elf32_arm_tls_le32_howto)
+	(elf32_arm_tls_ie32_howto): New.
+	(elf32_arm_howto_from_type): Support TLS relocations.
+	(elf32_arm_reloc_map): Likewise.
+	(elf32_arm_reloc_type_lookup): Likewise.
+	(TCB_SIZE): Define.
+	(struct elf32_arm_obj_tdata): New.
+	(elf32_arm_tdata, elf32_arm_local_got_tls_type): Define.
+	(elf32_arm_mkobject): New function.
+	(struct elf32_arm_relocs_copied): Add pc_count.
+	(elf32_arm_hash_entry, GOT_UNKNOWN, GOT_NORMAL, GOT_TLS_GD)
+	(GOT_TLS_IE): Define.
+	(struct elf32_arm_link_hash_table): Add tls_ldm_got.
+	(elf32_arm_link_hash_newfunc): Initialize tls_type.
+	(elf32_arm_copy_indirect_symbol): Copy pc_count and tls_type.
+	(elf32_arm_link_hash_table_create): Initialize tls_ldm_got.
+	(dtpoff_base, tpoff): New functions.
+	(elf32_arm_final_link_relocate): Handle TLS relocations.
+	(IS_ARM_TLS_RELOC): Define.
+	(elf32_arm_relocate_section): Warn about TLS mismatches.
+	(elf32_arm_gc_sweep_hook): Handle TLS relocations and pc_count.
+	(elf32_arm_check_relocs): Detect invalid symbol indexes.  Handle
+	TLS relocations and pc_count.
+	(elf32_arm_adjust_dynamic_symbol): Check non_got_ref.
+	(allocate_dynrelocs): Handle TLS.  Bind REL32 relocs to local
+	calls.
+	(elf32_arm_size_dynamic_sections): Handle TLS.
+	(elf32_arm_finish_dynamic_symbol): Likewise.
+	(bfd_elf32_mkobject): Define.
+
+	* gas/config/tc-arm.c (arm_parse_reloc): Add TLS relocations.
+	(md_apply_fix3): Mark TLS symbols.
+	(tc_gen_reloc): Handle TLS relocations.
+	(arm_fix_adjustable): Ignore TLS relocations.
+	(s_arm_elf_cons): Support expressions after decorated symbols.
+
+	* gas/testsuite/gas/arm/tls.s, gas/testsuite/gas/arm/tls.d: New files.
+	* gas/testsuite/gas/arm/arm.exp: Run TLS test.
+
+	* include/elf/arm.h: Add TLS relocations.
+
+	* ld/testsuite/ld-arm/tls-lib.s, ld/testsuite/ld-arm/tls-lib.d,
+	ld/testsuite/ld-arm/tls-lib.r, ld/testsuite/ld-arm/tls-app.s,
+	ld/testsuite/ld-arm/tls-app.d, ld/testsuite/ld-arm/tls-app.r: New files.
+	* ld/testsuite/ld-arm/arm-lib.ld, ld/testsuite/ld-arm/arm-dyn.ld:
+	Increase data segment alignment.
+	* ld/testsuite/ld-arm/arm-elf.exp: Run TLS tests.
+
+2005-03-28  Daniel Jacobowitz  <dan@codesourcery.com>
+
+	* bfd/elf32-arm.c (elf32_arm_check_relocs): Increment count for all
+	relocation types.  Don't count relocations which will use a PLT.
+
+2005-03-23  Jim Blandy  <jimb@redhat.com>
+
+	* config/tc-arm.c (arm_adjust_symtab): Fetch elf_sym's binding
+	attributes properly.
+
+2005-03-21  Nick Clifton  <nickc@redhat.com>
+
+	* gas/testsuite/gas/arm/iwmmxt.s: Update instructions that use the "never" value
+	in the conditional field to use "le" instead.  This is so that the
+	disassembler will disassemble them.
+	* gas/testsuite/gas/arm/iwmmxt.d: Update expected disassemblies.
+
+2005-03-18  Julian Brown  <julian@codesourcery.com>
+
+	* ld/scripttempl/armbpapi.sc (.rel.dyn): Add .rel.init_array,
+	.rel.fini_array.
+	(.rela.dyn): Add .rela.init_array, .rela.fini_array.
+	(SECTIONS): Add .rel.other, .rela.other, .reli.other after PLT relocs.
+
+2005-03-16  Daniel Jacobowitz  <dan@codesourcery.com>
+
+	* gas/configure.tgt: Set emulation for arm-*-eabi*.
+	* gas/config/tc-arm.c (meabi_flags): Check EABI_DEFAULT.
+	* gas/config/te-armeabi.h: New file.
+	* gas/config/te-armlinuxeabi.h (EABI_DEFAULT): Define.
+	* gas/config/te-symbian.h: Include "te-armeabi.h".
+
+2005-03-15  Zack Weinberg  <zack@codesourcery.com>
+
+	* gas/config/tc-arm.c (do_mla): Rename to do_mlas, take second
+	is_mls parameter; do not diagnose Rm==Rd when is_mls.
+	(do_mla, do_mls, five_bit_unsigned_immediate, bfci_lsb_and_width)
+	(do_bfc, do_bfi, do_bfx, do_rbit, do_mov16, do_ldsttv4): New functions.
+	(insns): Add ARMv6T2 instructions:
+	bfc bfi mls movw movt rbit sbfx ubfx ldrht ldrsht ldrsbt strht.
+	(arm_archs): Add V6T2 variants.
+
+2005-03-12  Zack Weinberg  <zack@codesourcery.com>
+
+	* gas/config/tc-arm.c (tinsns): Add ARMv6K instructions sev, wfe,
+	wfi, yield.
+
+	* opcodes/arm-dis.c (thumb_opcodes): Add ARMv6K instructions nop, sev,
+	wfe, wfi, yield.
+
+	* gas/testsuite/gas/arm/thumbv6k.d, gas/arm/thumbv6k.s: New dump test.
+	* gas/testsuite/gas/arm/arm.exp: Run it.
+
+2005-03-12  Zack Weinberg  <zack@codesourcery.com>
+
+	* opcodes/arm-dis.c (arm_opcodes): Document %E and %V.
+	Add entries for v6T2 ARM instructions:
+	bfc bfi mls strht ldrht ldrsht ldrsbt movw movt rbit ubfx sbfx.
+	(print_insn_arm): Add support for %E and %V.
+
+	* include/opcode/arm.h: Adjust comments for ARM_EXT_V4T and ARM_EXT_V5T.
+	Add ARM_EXT_V6T2, ARM_ARCH_V6T2, ARM_ARCH_V6KT2, ARM_ARCH_V6ZT2,
+	and ARM_ARCH_V6ZKT2.
Index: b/binutils-2.16.1/configure.in
===================================================================
--- a/binutils-2.16.1/configure.in
+++ b/binutils-2.16.1/configure.in
@@ -148,7 +148,7 @@ host_libs="intl mmalloc libiberty opcode
 # know that we are building the simulator.
 # binutils, gas and ld appear in that order because it makes sense to run
 # "make check" in that particular order.
-host_tools="byacc flex bison binutils gas ld fixincludes gcc sid sim gdb make patch prms send-pr gprof etc expect dejagnu ash bash bzip2 m4 autoconf automake libtool diff rcs fileutils shellutils time textutils wdiff find uudecode hello tar gzip indent recode release sed utils guile perl gawk findutils gettext zip fastjar gnattools"
+host_tools="texinfo byacc flex bison binutils gas ld fixincludes gcc sid sim gdb make patch prms send-pr gprof etc expect dejagnu ash bash bzip2 m4 autoconf automake libtool diff rcs fileutils shellutils time textutils wdiff find uudecode hello tar gzip indent recode release sed utils guile perl gawk findutils gettext zip fastjar gnattools"
 
 # libgcj represents the runtime libraries only used by gcj.
 libgcj="target-libffi \
Index: b/binutils-2.16.1/contrib/ChangeLog
===================================================================
--- /dev/null
+++ b/binutils-2.16.1/contrib/ChangeLog
@@ -0,0 +1,7 @@
+2002-07-03  Nick Clifton  <nickc@cambridge.redhat.com>
+
+	* ChangeLog: Newly created.
+	* texi2pod.pl: Imported from FSF GCC sources.
+
+
+
Index: b/binutils-2.16.1/contrib/texi2pod.pl
===================================================================
--- /dev/null
+++ b/binutils-2.16.1/contrib/texi2pod.pl
@@ -0,0 +1,431 @@
+#! /usr/bin/perl -w
+
+#   Copyright (C) 1999, 2000, 2001 Free Software Foundation, Inc.
+
+# This file is part of GNU CC.
+
+# GNU CC is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# GNU CC is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with GNU CC; see the file COPYING.  If not, write to
+# the Free Software Foundation, 59 Temple Place - Suite 330,
+# Boston MA 02111-1307, USA.
+
+# This does trivial (and I mean _trivial_) conversion of Texinfo
+# markup to Perl POD format.  It's intended to be used to extract
+# something suitable for a manpage from a Texinfo document.
+
+$output = 0;
+$skipping = 0;
+%sects = ();
+$section = "";
+@icstack = ();
+@endwstack = ();
+@skstack = ();
+@instack = ();
+$shift = "";
+%defs = ();
+$fnno = 1;
+$inf = "";
+$ibase = "";
+
+while ($_ = shift) {
+    if (/^-D(.*)$/) {
+	if ($1 ne "") {
+	    $flag = $1;
+	} else {
+	    $flag = shift;
+	}
+	$value = "";
+	($flag, $value) = ($flag =~ /^([^=]+)(?:=(.+))?/);
+	die "no flag specified for -D\n"
+	    unless $flag ne "";
+	die "flags may only contain letters, digits, hyphens, dashes and underscores\n"
+	    unless $flag =~ /^[a-zA-Z0-9_-]+$/;
+	$defs{$flag} = $value;
+    } elsif (/^-/) {
+	usage();
+    } else {
+	$in = $_, next unless defined $in;
+	$out = $_, next unless defined $out;
+	usage();
+    }
+}
+
+if (defined $in) {
+    $inf = gensym();
+    open($inf, "<$in") or die "opening \"$in\": $!\n";
+    $ibase = $1 if $in =~ m|^(.+)/[^/]+$|;
+} else {
+    $inf = \*STDIN;
+}
+
+if (defined $out) {
+    open(STDOUT, ">$out") or die "opening \"$out\": $!\n";
+}
+
+while(defined $inf) {
+while(<$inf>) {
+    # Certain commands are discarded without further processing.
+    /^\@(?:
+	 [a-z]+index		# @*index: useful only in complete manual
+	 |need			# @need: useful only in printed manual
+	 |(?:end\s+)?group	# @group .. @end group: ditto
+	 |page			# @page: ditto
+	 |node			# @node: useful only in .info file
+	 |(?:end\s+)?ifnottex   # @ifnottex .. @end ifnottex: use contents
+	)\b/x and next;
+
+    chomp;
+
+    # Look for filename and title markers.
+    /^\@setfilename\s+([^.]+)/ and $fn = $1, next;
+    /^\@settitle\s+([^.]+)/ and $tl = postprocess($1), next;
+
+    # Identify a man title but keep only the one we are interested in.
+    /^\@c\s+man\s+title\s+([A-Za-z0-9-]+)\s+(.+)/ and do {
+	if (exists $defs{$1}) {
+	    $fn = $1;
+	    $tl = postprocess($2);
+	}
+	next;
+    };
+
+    # Look for blocks surrounded by @c man begin SECTION ... @c man end.
+    # This really oughta be @ifman ... @end ifman and the like, but such
+    # would require rev'ing all other Texinfo translators.
+    /^\@c\s+man\s+begin\s+([A-Z]+)\s+([A-Za-z0-9-]+)/ and do {
+	$output = 1 if exists $defs{$2};
+        $sect = $1;
+	next;
+    };
+    /^\@c\s+man\s+begin\s+([A-Z]+)/ and $sect = $1, $output = 1, next;
+    /^\@c\s+man\s+end/ and do {
+	$sects{$sect} = "" unless exists $sects{$sect};
+	$sects{$sect} .= postprocess($section);
+	$section = "";
+	$output = 0;
+	next;
+    };
+
+    # handle variables
+    /^\@set\s+([a-zA-Z0-9_-]+)\s*(.*)$/ and do {
+	$defs{$1} = $2;
+	next;
+    };
+    /^\@clear\s+([a-zA-Z0-9_-]+)/ and do {
+	delete $defs{$1};
+	next;
+    };
+
+    next unless $output;
+
+    # Discard comments.  (Can't do it above, because then we'd never see
+    # @c man lines.)
+    /^\@c\b/ and next;
+
+    # End-block handler goes up here because it needs to operate even
+    # if we are skipping.
+    /^\@end\s+([a-z]+)/ and do {
+	# Ignore @end foo, where foo is not an operation which may
+	# cause us to skip, if we are presently skipping.
+	my $ended = $1;
+	next if $skipping && $ended !~ /^(?:ifset|ifclear|ignore|menu|iftex)$/;
+
+	die "\@end $ended without \@$ended at line $.\n" unless defined $endw;
+	die "\@$endw ended by \@end $ended at line $.\n" unless $ended eq $endw;
+
+	$endw = pop @endwstack;
+
+	if ($ended =~ /^(?:ifset|ifclear|ignore|menu|iftex)$/) {
+	    $skipping = pop @skstack;
+	    next;
+	} elsif ($ended =~ /^(?:example|smallexample|display)$/) {
+	    $shift = "";
+	    $_ = "";	# need a paragraph break
+	} elsif ($ended =~ /^(?:itemize|enumerate|[fv]?table)$/) {
+	    $_ = "\n=back\n";
+	    $ic = pop @icstack;
+	} else {
+	    die "unknown command \@end $ended at line $.\n";
+	}
+    };
+
+    # We must handle commands which can cause skipping even while we
+    # are skipping, otherwise we will not process nested conditionals
+    # correctly.
+    /^\@ifset\s+([a-zA-Z0-9_-]+)/ and do {
+	push @endwstack, $endw;
+	push @skstack, $skipping;
+	$endw = "ifset";
+	$skipping = 1 unless exists $defs{$1};
+	next;
+    };
+
+    /^\@ifclear\s+([a-zA-Z0-9_-]+)/ and do {
+	push @endwstack, $endw;
+	push @skstack, $skipping;
+	$endw = "ifclear";
+	$skipping = 1 if exists $defs{$1};
+	next;
+    };
+
+    /^\@(ignore|menu|iftex)\b/ and do {
+	push @endwstack, $endw;
+	push @skstack, $skipping;
+	$endw = $1;
+	$skipping = 1;
+	next;
+    };
+
+    next if $skipping;
+
+    # Character entities.  First the ones that can be replaced by raw text
+    # or discarded outright:
+    s/\@copyright\{\}/(c)/g;
+    s/\@dots\{\}/.../g;
+    s/\@enddots\{\}/..../g;
+    s/\@([.!? ])/$1/g;
+    s/\@[:-]//g;
+    s/\@bullet(?:\{\})?/*/g;
+    s/\@TeX\{\}/TeX/g;
+    s/\@pounds\{\}/\#/g;
+    s/\@minus(?:\{\})?/-/g;
+    s/\\,/,/g;
+
+    # Now the ones that have to be replaced by special escapes
+    # (which will be turned back into text by unmunge())
+    s/&/&amp;/g;
+    s/\@\{/&lbrace;/g;
+    s/\@\}/&rbrace;/g;
+    s/\@\@/&at;/g;
+
+    # Inside a verbatim block, handle @var specially.
+    if ($shift ne "") {
+	s/\@var\{([^\}]*)\}/<$1>/g;
+    }
+
+    # POD doesn't interpret E<> inside a verbatim block.
+    if ($shift eq "") {
+	s/</&lt;/g;
+	s/>/&gt;/g;
+    } else {
+	s/</&LT;/g;
+	s/>/&GT;/g;
+    }
+
+    # Single line command handlers.
+
+    /^\@include\s+(.+)$/ and do {
+	push @instack, $inf;
+	$inf = gensym();
+
+	# Try cwd and $ibase.
+	open($inf, "<" . $1)
+	    or open($inf, "<" . $ibase . "/" . $1)
+		or die "cannot open $1 or $ibase/$1: $!\n";
+	next;
+    };
+
+    /^\@(?:section|unnumbered|unnumberedsec|center)\s+(.+)$/
+	and $_ = "\n=head2 $1\n";
+    /^\@subsection\s+(.+)$/
+	and $_ = "\n=head3 $1\n";
+
+    # Block command handlers:
+    /^\@itemize\s+(\@[a-z]+|\*|-)/ and do {
+	push @endwstack, $endw;
+	push @icstack, $ic;
+	$ic = $1;
+	$_ = "\n=over 4\n";
+	$endw = "itemize";
+    };
+
+    /^\@enumerate(?:\s+([a-zA-Z0-9]+))?/ and do {
+	push @endwstack, $endw;
+	push @icstack, $ic;
+	if (defined $1) {
+	    $ic = $1 . ".";
+	} else {
+	    $ic = "1.";
+	}
+	$_ = "\n=over 4\n";
+	$endw = "enumerate";
+    };
+
+    /^\@([fv]?table)\s+(\@[a-z]+)/ and do {
+	push @endwstack, $endw;
+	push @icstack, $ic;
+	$endw = $1;
+	$ic = $2;
+	$ic =~ s/\@(?:samp|strong|key|gcctabopt|env)/B/;
+	$ic =~ s/\@(?:code|kbd)/C/;
+	$ic =~ s/\@(?:dfn|var|emph|cite|i)/I/;
+	$ic =~ s/\@(?:file)/F/;
+	$_ = "\n=over 4\n";
+    };
+
+    /^\@((?:small)?example|display)/ and do {
+	push @endwstack, $endw;
+	$endw = $1;
+	$shift = "\t";
+	$_ = "";	# need a paragraph break
+    };
+
+    /^\@itemx?\s*(.+)?$/ and do {
+	if (defined $1) {
+	    # Entity escapes prevent munging by the <> processing below.
+	    $_ = "\n=item $ic\&LT;$1\&GT;\n";
+	} else {
+	    $_ = "\n=item $ic\n";
+	    $ic =~ y/A-Ya-y/B-Zb-z/;
+	    $ic =~ s/(\d+)/$1 + 1/eg;
+	}
+    };
+
+    $section .= $shift.$_."\n";
+}
+# End of current file.
+close($inf);
+$inf = pop @instack;
+}
+
+die "No filename or title\n" unless defined $fn && defined $tl;
+
+$sects{NAME} = "$fn \- $tl\n";
+$sects{FOOTNOTES} .= "=back\n" if exists $sects{FOOTNOTES};
+
+for $sect (qw(NAME SYNOPSIS DESCRIPTION OPTIONS ENVIRONMENT FILES
+	      BUGS NOTES FOOTNOTES SEEALSO AUTHOR COPYRIGHT)) {
+    if(exists $sects{$sect}) {
+	$head = $sect;
+	$head =~ s/SEEALSO/SEE ALSO/;
+	print "=head1 $head\n\n";
+	print scalar unmunge ($sects{$sect});
+	print "\n";
+    }
+}
+
+sub usage
+{
+    die "usage: $0 [-D toggle...] [infile [outfile]]\n";
+}
+
+sub postprocess
+{
+    local $_ = $_[0];
+
+    # @value{foo} is replaced by whatever 'foo' is defined as.
+    while (m/(\@value\{([a-zA-Z0-9_-]+)\})/g) {
+	if (! exists $defs{$2}) {
+	    print STDERR "Option $2 not defined\n";
+	    s/\Q$1\E//;
+	} else {
+	    $value = $defs{$2};
+	    s/\Q$1\E/$value/;
+	}
+    }
+
+    # Formatting commands.
+    # Temporary escape for @r.
+    s/\@r\{([^\}]*)\}/R<$1>/g;
+    s/\@(?:dfn|var|emph|cite|i)\{([^\}]*)\}/I<$1>/g;
+    s/\@(?:code|kbd)\{([^\}]*)\}/C<$1>/g;
+    s/\@(?:gccoptlist|samp|strong|key|option|env|command|b)\{([^\}]*)\}/B<$1>/g;
+    s/\@sc\{([^\}]*)\}/\U$1/g;
+    s/\@file\{([^\}]*)\}/F<$1>/g;
+    s/\@w\{([^\}]*)\}/S<$1>/g;
+    s/\@(?:dmn|math)\{([^\}]*)\}/$1/g;
+
+    # Cross references are thrown away, as are @noindent and @refill.
+    # (@noindent is impossible in .pod, and @refill is unnecessary.)
+    # @* is also impossible in .pod; we discard it and any newline that
+    # follows it.  Similarly, our macro @gol must be discarded.
+
+    s/\(?\@xref\{(?:[^\}]*)\}(?:[^.<]|(?:<[^<>]*>))*\.\)?//g;
+    s/\s+\(\@pxref\{(?:[^\}]*)\}\)//g;
+    s/;\s+\@pxref\{(?:[^\}]*)\}//g;
+    s/\@noindent\s*//g;
+    s/\@refill//g;
+    s/\@gol//g;
+    s/\@\*\s*\n?//g;
+
+    # @uref can take one, two, or three arguments, with different
+    # semantics each time.  @url and @email are just like @uref with
+    # one argument, for our purposes.
+    s/\@(?:uref|url|email)\{([^\},]*)\}/&lt;B<$1>&gt;/g;
+    s/\@uref\{([^\},]*),([^\},]*)\}/$2 (C<$1>)/g;
+    s/\@uref\{([^\},]*),([^\},]*),([^\},]*)\}/$3/g;
+
+    # Un-escape <> at this point.
+    s/&LT;/</g;
+    s/&GT;/>/g;
+
+    # Now un-nest all B<>, I<>, R<>.  Theoretically we could have
+    # indefinitely deep nesting; in practice, one level suffices.
+    1 while s/([BIR])<([^<>]*)([BIR])<([^<>]*)>/$1<$2>$3<$4>$1</g;
+
+    # Replace R<...> with bare ...; eliminate empty markup, B<>;
+    # shift white space at the ends of [BI]<...> expressions outside
+    # the expression.
+    s/R<([^<>]*)>/$1/g;
+    s/[BI]<>//g;
+    s/([BI])<(\s+)([^>]+)>/$2$1<$3>/g;
+    s/([BI])<([^>]+?)(\s+)>/$1<$2>$3/g;
+
+    # Extract footnotes.  This has to be done after all other
+    # processing because otherwise the regexp will choke on formatting
+    # inside @footnote.
+    while (/\@footnote/g) {
+	s/\@footnote\{([^\}]+)\}/[$fnno]/;
+	add_footnote($1, $fnno);
+	$fnno++;
+    }
+
+    return $_;
+}
+
+sub unmunge
+{
+    # Replace escaped symbols with their equivalents.
+    local $_ = $_[0];
+
+    s/&lt;/E<lt>/g;
+    s/&gt;/E<gt>/g;
+    s/&lbrace;/\{/g;
+    s/&rbrace;/\}/g;
+    s/&at;/\@/g;
+    s/&amp;/&/g;
+    return $_;
+}
+
+sub add_footnote
+{
+    unless (exists $sects{FOOTNOTES}) {
+	$sects{FOOTNOTES} = "\n=over 4\n\n";
+    }
+
+    $sects{FOOTNOTES} .= "=item $fnno.\n\n"; $fnno++;
+    $sects{FOOTNOTES} .= $_[0];
+    $sects{FOOTNOTES} .= "\n\n";
+}
+
+# stolen from Symbol.pm
+{
+    my $genseq = 0;
+    sub gensym
+    {
+	my $name = "GEN" . $genseq++;
+	my $ref = \*{$name};
+	delete $::{$name};
+	return $ref;
+    }
+}
Index: b/binutils-2.16.1/COPYING.LIBGLOSS
===================================================================
--- /dev/null
+++ b/binutils-2.16.1/COPYING.LIBGLOSS
@@ -0,0 +1,297 @@
+The libgloss subdirectory is a collection of software from several sources.
+Each have their own copyrights embedded in each file that they concern.
+
+(1) University of California, Berkeley
+
+[1a]
+
+Copyright (c) 1990 The Regents of the University of California.
+All rights reserved.
+
+Redistribution and use in source and binary forms are permitted
+provided that the above copyright notice and this paragraph are
+duplicated in all such forms and that any documentation,
+and other materials related to such distribution and use
+acknowledge that the software was developed
+by the University of California, Berkeley.  The name of the
+University may not be used to endorse or promote products derived
+from this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+[1b]
+
+Copyright (c) 1991, 2000 The Regents of the University of California.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+3. All advertising materials mentioning features or use of this software
+   must display the following acknowledgement:
+     This product includes software developed by the University of
+     California, Berkeley and its contributors.
+4. Neither the name of the University nor the names of its contributors
+   may be used to endorse or promote products derived from this software
+   without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+[1c]
+
+Copyright (c) 1991, 1998, 2001 The Regents of the University of California.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+3. [rescinded 22 July 1999]
+4. Neither the name of the University nor the names of its contributors
+   may be used to endorse or promote products derived from this software
+   without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+-------------------------------------------------------------
+ Please note that in some of the above alternate licenses, there is a
+ statement regarding that acknowledgement must be made in any
+ advertising materials for products using the code.  This restriction
+ no longer applies due to the following license change:
+
+  ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change
+
+ In some cases the defunct clause has been removed in modified newlib code and
+ in some cases, the clause has been left as-is.
+-------------------------------------------------------------
+
+(2) DJ Delorie
+
+Copyright (C) 1993 DJ Delorie
+All rights reserved.
+
+Redistribution and use in source and binary forms is permitted
+provided that the above copyright notice and following paragraph are
+duplicated in all such forms.
+
+This file is distributed WITHOUT ANY WARRANTY; without even the implied
+warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+(3) GPL (fr30 directory only)
+
+Copyright (C) 1998 Free Software Foundation, Inc.
+Contributed by Cygnus Solutions.
+
+This file is part of GNU CC.
+
+GNU CC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU CC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU CC; see the file COPYING.  If not, write to
+the Free Software Foundation, 59 Temple Place - Suite 330,
+Boston, MA 02111-1307, USA.
+
+(4) Advanced Micro Devices
+
+Copyright 1989, 1990 Advanced Micro Devices, Inc.
+
+This software is the property of Advanced Micro Devices, Inc  (AMD)  which
+specifically  grants the user the right to modify, use and distribute this
+software provided this notice is not removed or altered.  All other rights
+are reserved by AMD.
+
+AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS
+SOFTWARE.  IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL
+DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR
+USE OF THIS SOFTWARE.
+
+So that all may benefit from your experience, please report  any  problems
+or  suggestions about this software to the 29K Technical Support Center at
+800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131  in  the  UK,  or
+0031-11-1129 in Japan, toll free.  The direct dial number is 512-462-4118.
+
+Advanced Micro Devices, Inc.
+29K Support Products
+Mail Stop 573
+5900 E. Ben White Blvd.
+Austin, TX 78741
+800-292-9263
+
+(5) Array Technology Corporation and MIPS (mips/lsi33k-stub.h)
+
+COPYRIGHT (C) 1991, 1992 ARRAY TECHNOLOGY CORPORATION
+              All Rights Reserved
+
+This software is confidential information which is proprietary to and
+a trade secret of ARRAY Technology Corporation.  Use, duplication, or
+disclosure is subject to the terms of a separate license agreement.
+
+Copyright 1985 by MIPS Computer Systems, Inc.
+
+(6) University of Utah and the Computer Systems Laboratory (CSL)
+    [applies only to hppa*-*-pro* targets]
+
+Copyright (c) 1990,1994 The University of Utah and
+the Computer Systems Laboratory (CSL).  All rights reserved.
+
+Permission to use, copy, modify and distribute this software is hereby
+granted provided that (1) source code retains these copyright, permission,
+and disclaimer notices, and (2) redistributions including binaries
+reproduce the notices in supporting documentation, and (3) all advertising
+materials mentioning features or use of this software display the following
+acknowledgement: ``This product includes software developed by the
+Computer Systems Laboratory at the University of Utah.''
+
+THE UNIVERSITY OF UTAH AND CSL ALLOW FREE USE OF THIS SOFTWARE IN ITS "AS
+IS" CONDITION.  THE UNIVERSITY OF UTAH AND CSL DISCLAIM ANY LIABILITY OF
+ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE USE OF THIS SOFTWARE.
+
+CSL requests users of this software to return to csl-dist@cs.utah.edu any
+improvements that they make and grant CSL redistribution rights.
+
+(7) Sun Microsystems
+
+Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+
+Developed at SunPro, a Sun Microsystems, Inc. business.
+Permission to use, copy, modify, and distribute this
+software is freely granted, provided that this notice
+is preserved.
+
+(8) Hewlett Packard
+
+(c) Copyright 1986 HEWLETT-PACKARD COMPANY
+
+To anyone who acknowledges that this file is provided "AS IS"
+without any express or implied warranty:
+    permission to use, copy, modify, and distribute this file
+for any purpose is hereby granted without fee, provided that
+the above copyright notice and this notice appears in all
+copies, and that the name of Hewlett-Packard Company not be
+used in advertising or publicity pertaining to distribution
+of the software without specific, written prior permission.
+Hewlett-Packard Company makes no representations about the
+suitability of this software for any purpose.
+
+(9) Hans-Peter Nilsson
+
+Copyright (C) 2001 Hans-Peter Nilsson
+
+Permission to use, copy, modify, and distribute this software is
+freely granted, provided that the above copyright notice, this notice
+and the following disclaimer are preserved with no changes.
+
+THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.
+
+(10) No Copyright
+
+THIS SOFTWARE IS NOT COPYRIGHTED
+
+(11) Cygnus Support / Cygnus Solutions
+
+Copyright (c) 1995, 1996, 1997, 1998, 1999 Cygnus Support
+
+The authors hereby grant permission to use, copy, modify, distribute,
+and license this software and its documentation for any purpose, provided
+that existing copyright notices are retained in all copies and that this
+notice is included verbatim in any distributions. No written agreement,
+license, or royalty fee is required for any of the authorized uses.
+Modifications to this software may be copyrighted by their authors
+and need not follow the licensing terms described here, provided that
+the new terms are clearly indicated on the first page of each file where
+they apply.
+
+---------------------------------------------------------------
+ Please note that the copyright above may be used with the name
+ Cygnus Solutions instead of Cygnus Support.  Both names should
+ be considered interchangeable.  These copyrights are now owned
+ by Red Hat Incorporated.
+---------------------------------------------------------------
+
+(12) Red Hat Incorporated
+
+Copyright (c) 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
+
+The authors hereby grant permission to use, copy, modify, distribute,
+and license this software and its documentation for any purpose, provided
+that existing copyright notices are retained in all copies and that this
+notice is included verbatim in any distributions. No written agreement,
+license, or royalty fee is required for any of the authorized uses.
+Modifications to this software may be copyrighted by their authors
+and need not follow the licensing terms described here, provided that
+the new terms are clearly indicated on the first page of each file where
+they apply.
+
+(13) Default copyright
+
+Unless otherwise stated in each remaining libgloss file, the remaining
+files in the libgloss subdirectory are governed by the following copyright.
+
+Copyright (c) 1994, 1997, 2001, 2002 Red Hat Incorporated.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+    Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+    The name of Red Hat Incorporated may not be used to endorse
+    or promote products derived from this software without specific
+    prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED.  IN NO EVENT SHALL RED HAT INCORPORATED BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Index: b/binutils-2.16.1/COPYING.NEWLIB
===================================================================
--- /dev/null
+++ b/binutils-2.16.1/COPYING.NEWLIB
@@ -0,0 +1,760 @@
+The newlib subdirectory is a collection of software from several sources.
+Each file may have its own copyright/license that is embedded in the source
+file.
+
+This list documents those licenses which are more restrictive than
+a BSD-like license or require the copyright notice
+to be duplicated in documentation and/or other materials associated with
+the distribution.  Certain licenses documented here only apply to
+specific targets.  Certain clauses only apply if you are building the
+code as part of your binary.
+
+Note that this list may omit certain licenses that
+only pertain to the copying/modifying of the individual source code.
+If you are distributing the source code, then you do not need to
+worry about these omitted licenses, so long as you do not modify the
+copyright information already in place.
+
+(1) University of California, Berkeley
+
+[1a]
+
+Copyright (c) 1990 The Regents of the University of California.
+All rights reserved.
+
+Redistribution and use in source and binary forms are permitted
+provided that the above copyright notice and this paragraph are
+duplicated in all such forms and that any documentation,
+and other materials related to such distribution and use
+acknowledge that the software was developed
+by the University of California, Berkeley.  The name of the
+University may not be used to endorse or promote products derived
+from this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+[1b]
+
+Copyright (c) 1990 The Regents of the University of California.
+All rights reserved.
+
+Redistribution and use in source and binary forms are permitted
+provided that the above copyright notice and this paragraph are
+duplicated in all such forms and that any documentation,
+advertising materials, and other materials related to such
+distribution and use acknowledge that the software was developed
+by the University of California, Berkeley.  The name of the
+University may not be used to endorse or promote products derived
+from this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+[1c]
+
+Copyright (c) 1981, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
+The Regents of the University of California.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+3. All advertising materials mentioning features or use of this software
+   must display the following acknowledgement:
+     This product includes software developed by the University of
+     California, Berkeley and its contributors.
+4. Neither the name of the University nor the names of its contributors
+   may be used to endorse or promote products derived from this software
+   without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+[1d]
+
+Copyright (c) 1988, 1990, 1993 Regents of the University of California.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+3. Neither the name of the University nor the names of its contributors
+   may be used to endorse or promote products derived from this software
+   without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+[1e]
+
+Copyright (c) 1982, 1986, 1989, 1991, 1993, 1994
+The Regents of the University of California.  All rights reserved.
+(c) UNIX System Laboratories, Inc.
+All or some portions of this file are derived from material licensed
+to the University of California by American Telephone and Telegraph
+Co. or Unix System Laboratories, Inc. and are reproduced herein with
+the permission of UNIX System Laboratories, Inc.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+3. All advertising materials mentioning features or use of this software
+   must display the following acknowledgement:
+     This product includes software developed by the University of
+     California, Berkeley and its contributors.
+4. Neither the name of the University nor the names of its contributors
+   may be used to endorse or promote products derived from this software
+   without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+[1f]
+
+Copyright (c) 1987, 1988, 2000 Regents of the University of California.
+All rights reserved.
+
+Redistribution and use in source and binary forms are permitted
+provided that: (1) source distributions retain this entire copyright
+notice and comment, and (2) distributions including binaries display
+the following acknowledgement:  ``This product includes software
+developed by the University of California, Berkeley and its contributors''
+in the documentation or other materials provided with the distribution
+and in all advertising materials mentioning features or use of this
+software. Neither the name of the University nor the names of its
+contributors may be used to endorse or promote products derived
+from this software without specific prior written permission.
+THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
+
+-------------------------------------------------------------
+ Please note that in some of the above alternate licenses, there is a
+ statement regarding that acknowledgement must be made in any
+ advertising materials for products using the code.  This restriction
+ no longer applies due to the following license change:
+
+  ftp://ftp.cs.berkeley.edu/pub/4bsd/README.Impt.License.Change
+
+ In some cases the defunct clause has been removed in modified newlib code and
+ in some cases, the clause has been left as-is.
+-------------------------------------------------------------
+
+(2) Cygwin (cygwin targets only)
+
+Copyright 2001 Red Hat, Inc.
+
+This software is a copyrighted work licensed under the terms of the
+Cygwin license.  Please consult the file "CYGWIN_LICENSE" for
+details.
+
+(3) David M. Gay at AT&T
+
+The author of this software is David M. Gay.
+
+Copyright (c) 1991 by AT&T.
+
+Permission to use, copy, modify, and distribute this software for any
+purpose without fee is hereby granted, provided that this entire notice
+is included in all copies of any software which is or includes a copy
+or modification of this software and in all copies of the supporting
+documentation for such software.
+
+THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
+WARRANTY.  IN PARTICULAR, NEITHER THE AUTHOR NOR AT&T MAKES ANY
+REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY
+OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
+
+(4) Advanced Micro Devices
+
+Copyright 1989, 1990 Advanced Micro Devices, Inc.
+
+This software is the property of Advanced Micro Devices, Inc  (AMD)  which
+specifically  grants the user the right to modify, use and distribute this
+software provided this notice is not removed or altered.  All other rights
+are reserved by AMD.
+
+AMD MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO THIS
+SOFTWARE.  IN NO EVENT SHALL AMD BE LIABLE FOR INCIDENTAL OR CONSEQUENTIAL
+DAMAGES IN CONNECTION WITH OR ARISING FROM THE FURNISHING, PERFORMANCE, OR
+USE OF THIS SOFTWARE.
+
+So that all may benefit from your experience, please report  any  problems
+or  suggestions about this software to the 29K Technical Support Center at
+800-29-29-AMD (800-292-9263) in the USA, or 0800-89-1131  in  the  UK,  or
+0031-11-1129 in Japan, toll free.  The direct dial number is 512-462-4118.
+
+Advanced Micro Devices, Inc.
+29K Support Products
+Mail Stop 573
+5900 E. Ben White Blvd.
+Austin, TX 78741
+800-292-9263
+
+(5) C.W. Sandmann
+
+Copyright (C) 1993 C.W. Sandmann
+
+This file may be freely distributed as long as the author's name remains.
+
+(6) Eric Backus
+
+(C) Copyright 1992 Eric Backus
+
+This software may be used freely so long as this copyright notice is
+left intact.  There is no warrantee on this software.
+
+(7) Sun Microsystems
+
+Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
+
+Developed at SunPro, a Sun Microsystems, Inc. business.
+Permission to use, copy, modify, and distribute this
+software is freely granted, provided that this notice
+is preserved.
+
+(8) Hewlett Packard
+
+(c) Copyright 1986 HEWLETT-PACKARD COMPANY
+
+To anyone who acknowledges that this file is provided "AS IS"
+without any express or implied warranty:
+    permission to use, copy, modify, and distribute this file
+for any purpose is hereby granted without fee, provided that
+the above copyright notice and this notice appears in all
+copies, and that the name of Hewlett-Packard Company not be
+used in advertising or publicity pertaining to distribution
+of the software without specific, written prior permission.
+Hewlett-Packard Company makes no representations about the
+suitability of this software for any purpose.
+
+(9) Hans-Peter Nilsson
+
+Copyright (C) 2001 Hans-Peter Nilsson
+
+Permission to use, copy, modify, and distribute this software is
+freely granted, provided that the above copyright notice, this notice
+and the following disclaimer are preserved with no changes.
+
+THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.
+
+(10) Stephane Carrez (m68hc11-elf/m68hc12-elf targets only)
+
+Copyright (C) 1999, 2000, 2001, 2002 Stephane Carrez (stcarrez@nerim.fr)
+
+The authors hereby grant permission to use, copy, modify, distribute,
+and license this software and its documentation for any purpose, provided
+that existing copyright notices are retained in all copies and that this
+notice is included verbatim in any distributions. No written agreement,
+license, or royalty fee is required for any of the authorized uses.
+Modifications to this software may be copyrighted by their authors
+and need not follow the licensing terms described here, provided that
+the new terms are clearly indicated on the first page of each file where
+they apply.
+
+(11) Christopher G. Demetriou
+
+Copyright (c) 2001 Christopher G. Demetriou
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+3. The name of the author may not be used to endorse or promote products
+   derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+(12) SuperH, Inc.
+
+Copyright 2002 SuperH, Inc. All rights reserved
+
+This software is the property of SuperH, Inc (SuperH) which specifically
+grants the user the right to modify, use and distribute this software
+provided this notice is not removed or altered.  All other rights are
+reserved by SuperH.
+
+SUPERH MAKES NO WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, WITH REGARD TO
+THIS SOFTWARE.  IN NO EVENT SHALL SUPERH BE LIABLE FOR INDIRECT, SPECIAL,
+INCIDENTAL OR CONSEQUENTIAL DAMAGES IN CONNECTION WITH OR ARISING FROM
+THE FURNISHING, PERFORMANCE, OR USE OF THIS SOFTWARE.
+
+So that all may benefit from your experience, please report any problems
+or suggestions about this software to the SuperH Support Center via
+e-mail at softwaresupport@superh.com .
+
+SuperH, Inc.
+405 River Oaks Parkway
+San Jose
+CA 95134
+USA
+
+(13) Royal Institute of Technology
+
+Copyright (c) 1999 Kungliga Tekniska Högskolan
+(Royal Institute of Technology, Stockholm, Sweden).
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+3. Neither the name of KTH nor the names of its contributors may be
+   used to endorse or promote products derived from this software without
+   specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY KTH AND ITS CONTRIBUTORS ``AS IS'' AND ANY
+EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL KTH OR ITS CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
+BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+(14) Alexey Zelkin
+
+Copyright (c) 2000, 2001 Alexey Zelkin <phantom@FreeBSD.org>
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+(15) Andrey A. Chernov
+
+Copyright (C) 1997 by Andrey A. Chernov, Moscow, Russia.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+(16) FreeBSD
+
+Copyright (c) 1997-2002 FreeBSD Project.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+(17) S. L. Moshier
+
+Author:  S. L. Moshier.
+
+Copyright (c) 1984,2000 S.L. Moshier
+
+Permission to use, copy, modify, and distribute this software for any
+purpose without fee is hereby granted, provided that this entire notice
+is included in all copies of any software which is or includes a copy
+or modification of this software and in all copies of the supporting
+documentation for such software.
+
+THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
+WARRANTY.  IN PARTICULAR,  THE AUTHOR MAKES NO REPRESENTATION
+OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS
+SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
+
+(18) Citrus Project
+
+Copyright (c)1999 Citrus Project,
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+(19) Todd C. Miller
+
+Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+3. The name of the author may not be used to endorse or promote products
+   derived from this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
+INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
+THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+(20) DJ Delorie (i386)
+
+Copyright (C) 1991 DJ Delorie
+All rights reserved.
+
+Redistribution and use in source and binary forms is permitted
+provided that the above copyright notice and following paragraph are
+duplicated in all such forms.
+
+This file is distributed WITHOUT ANY WARRANTY; without even the implied
+warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+(21) Free Software Foundation LGPL License (*-linux* targets only)
+
+   Copyright (C) 1990-1999, 2000, 2001
+   Free Software Foundation, Inc.
+   This file is part of the GNU C Library.
+   Contributed by Mark Kettenis <kettenis@phys.uva.nl>, 1997.
+
+   The GNU C Library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The GNU C Library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the GNU C Library; if not, write to the Free
+   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.
+
+(22) Xavier Leroy LGPL License (i[3456]86-*-linux* targets only)
+
+Copyright (C) 1996 Xavier Leroy (Xavier.Leroy@inria.fr)
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU Library General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+GNU Library General Public License for more details.
+
+(23) Intel (i960)
+
+Copyright (c) 1993 Intel Corporation
+
+Intel hereby grants you permission to copy, modify, and distribute this
+software and its documentation.  Intel grants this permission provided
+that the above copyright notice appears in all copies and that both the
+copyright notice and this permission notice appear in supporting
+documentation.  In addition, Intel grants this permission provided that
+you prominently mark as "not part of the original" any modifications
+made to this software or documentation, and that the name of Intel
+Corporation not be used in advertising or publicity pertaining to
+distribution of the software or the documentation without specific,
+written prior permission.
+
+Intel Corporation provides this AS IS, WITHOUT ANY WARRANTY, EXPRESS OR
+IMPLIED, INCLUDING, WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY
+OR FITNESS FOR A PARTICULAR PURPOSE.  Intel makes no guarantee or
+representations regarding the use of, or the results of the use of,
+the software and documentation in terms of correctness, accuracy,
+reliability, currentness, or otherwise; and you rely on the software,
+documentation and results solely at your own risk.
+
+IN NO EVENT SHALL INTEL BE LIABLE FOR ANY LOSS OF USE, LOSS OF BUSINESS,
+LOSS OF PROFITS, INDIRECT, INCIDENTAL, SPECIAL OR CONSEQUENTIAL DAMAGES
+OF ANY KIND.  IN NO EVENT SHALL INTEL'S TOTAL LIABILITY EXCEED THE SUM
+PAID TO INTEL FOR THE PRODUCT LICENSED HEREUNDER.
+
+(24) Hewlett-Packard  (hppa targets only)
+
+(c) Copyright 1986 HEWLETT-PACKARD COMPANY
+
+To anyone who acknowledges that this file is provided "AS IS"
+without any express or implied warranty:
+    permission to use, copy, modify, and distribute this file
+for any purpose is hereby granted without fee, provided that
+the above copyright notice and this notice appears in all
+copies, and that the name of Hewlett-Packard Company not be
+used in advertising or publicity pertaining to distribution
+of the software without specific, written prior permission.
+Hewlett-Packard Company makes no representations about the
+suitability of this software for any purpose.
+
+(25) Henry Spencer (only *-linux targets)
+
+Copyright 1992, 1993, 1994 Henry Spencer.  All rights reserved.
+This software is not subject to any license of the American Telephone
+and Telegraph Company or of the Regents of the University of California.
+
+Permission is granted to anyone to use this software for any purpose on
+any computer system, and to alter it and redistribute it, subject
+to the following restrictions:
+
+1. The author is not responsible for the consequences of use of this
+   software, no matter how awful, even if they arise from flaws in it.
+
+2. The origin of this software must not be misrepresented, either by
+   explicit claim or by omission.  Since few users ever read sources,
+   credits must appear in the documentation.
+
+3. Altered versions must be plainly marked as such, and must not be
+   misrepresented as being the original software.  Since few users
+   ever read sources, credits must appear in the documentation.
+
+4. This notice may not be removed or altered.
+
+(26) Mike Barcroft
+
+Copyright (c) 2001 Mike Barcroft <mike@FreeBSD.org>
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+(27) Konstantin Chuguev (--enable-newlib-iconv)
+
+Copyright (c) 1999, 2000
+   Konstantin Chuguev.  All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+   iconv (Charset Conversion Library) v2.0
+
+(27) Artem Bityuckiy (--enable-newlib-iconv)
+
+Copyright (c) 2003, Artem B. Bityuckiy, SoftMine Corporation.
+Rights transferred to Franklin Electronic Publishers.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+   notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+   notice, this list of conditions and the following disclaimer in the
+   documentation and/or other materials provided with the distribution.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
+ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
+FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
+OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
+HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
+OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGE.
+
+(28) Red Hat Incorporated
+
+Unless otherwise stated in each remaining newlib file, the remaining
+files in the newlib subdirectory default to the following copyright.
+It should be noted that Red Hat Incorporated now owns copyrights
+belonging to Cygnus Solutions and Cygnus Support.
+
+Copyright (c) 1994, 1997, 2001, 2002, 2003, 2004 Red Hat Incorporated.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+    Redistributions of source code must retain the above copyright
+    notice, this list of conditions and the following disclaimer.
+
+    Redistributions in binary form must reproduce the above copyright
+    notice, this list of conditions and the following disclaimer in the
+    documentation and/or other materials provided with the distribution.
+
+    The name of Red Hat Incorporated may not be used to endorse
+    or promote products derived from this software without specific
+    prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+DISCLAIMED.  IN NO EVENT SHALL RED HAT INCORPORATED BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
Index: b/binutils-2.16.1/.cvsignore
===================================================================
--- /dev/null
+++ b/binutils-2.16.1/.cvsignore
@@ -0,0 +1,32 @@
+*-all
+*-co
+*-dirs
+*-done
+*-install-info
+*-src
+*-stamp-*
+*-tagged
+blockit
+cfg-paper.info
+config.status
+configure.aux
+configure.cp
+configure.cps
+configure.dvi
+configure.fn
+configure.fns
+configure.ky
+configure.kys
+configure.log
+configure.pg
+configure.pgs
+configure.toc
+configure.tp
+configure.tps
+configure.vr
+configure.vrs
+dir.info
+Makefile
+lost+found
+update.out
+update.sourceware
Index: b/binutils-2.16.1/depcomp
===================================================================
--- /dev/null
+++ b/binutils-2.16.1/depcomp
@@ -0,0 +1,522 @@
+#! /bin/sh
+# depcomp - compile a program generating dependencies as side-effects
+
+scriptversion=2004-05-31.23
+
+# Copyright (C) 1999, 2000, 2003, 2004 Free Software Foundation, Inc.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+# 02111-1307, USA.
+
+# As a special exception to the GNU General Public License, if you
+# distribute this file as part of a program that contains a
+# configuration script generated by Autoconf, you may include it under
+# the same distribution terms that you use for the rest of that program.
+
+# Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
+
+case $1 in
+  '')
+     echo "$0: No command.  Try \`$0 --help' for more information." 1>&2
+     exit 1;
+     ;;
+  -h | --h*)
+    cat <<\EOF
+Usage: depcomp [--help] [--version] PROGRAM [ARGS]
+
+Run PROGRAMS ARGS to compile a file, generating dependencies
+as side-effects.
+
+Environment variables:
+  depmode     Dependency tracking mode.
+  source      Source file read by `PROGRAMS ARGS'.
+  object      Object file output by `PROGRAMS ARGS'.
+  DEPDIR      directory where to store dependencies.
+  depfile     Dependency file to output.
+  tmpdepfile  Temporary file to use when outputing dependencies.
+  libtool     Whether libtool is used (yes/no).
+
+Report bugs to <bug-automake@gnu.org>.
+EOF
+    exit 0
+    ;;
+  -v | --v*)
+    echo "depcomp $scriptversion"
+    exit 0
+    ;;
+esac
+
+if test -z "$depmode" || test -z "$source" || test -z "$object"; then
+  echo "depcomp: Variables source, object and depmode must be set" 1>&2
+  exit 1
+fi
+
+# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
+depfile=${depfile-`echo "$object" |
+  sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
+tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
+
+rm -f "$tmpdepfile"
+
+# Some modes work just like other modes, but use different flags.  We
+# parameterize here, but still list the modes in the big case below,
+# to make depend.m4 easier to write.  Note that we *cannot* use a case
+# here, because this file can only contain one case statement.
+if test "$depmode" = hp; then
+  # HP compiler uses -M and no extra arg.
+  gccflag=-M
+  depmode=gcc
+fi
+
+if test "$depmode" = dashXmstdout; then
+   # This is just like dashmstdout with a different argument.
+   dashmflag=-xM
+   depmode=dashmstdout
+fi
+
+case "$depmode" in
+gcc3)
+## gcc 3 implements dependency tracking that does exactly what
+## we want.  Yay!  Note: for some reason libtool 1.4 doesn't like
+## it if -MD -MP comes after the -MF stuff.  Hmm.
+  "$@" -MT "$object" -MD -MP -MF "$tmpdepfile"
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  mv "$tmpdepfile" "$depfile"
+  ;;
+
+gcc)
+## There are various ways to get dependency output from gcc.  Here's
+## why we pick this rather obscure method:
+## - Don't want to use -MD because we'd like the dependencies to end
+##   up in a subdir.  Having to rename by hand is ugly.
+##   (We might end up doing this anyway to support other compilers.)
+## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
+##   -MM, not -M (despite what the docs say).
+## - Using -M directly means running the compiler twice (even worse
+##   than renaming).
+  if test -z "$gccflag"; then
+    gccflag=-MD,
+  fi
+  "$@" -Wp,"$gccflag$tmpdepfile"
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
+## The second -e expression handles DOS-style file names with drive letters.
+  sed -e 's/^[^:]*: / /' \
+      -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
+## This next piece of magic avoids the `deleted header file' problem.
+## The problem is that when a header file which appears in a .P file
+## is deleted, the dependency causes make to die (because there is
+## typically no way to rebuild the header).  We avoid this by adding
+## dummy dependencies for each header file.  Too bad gcc doesn't do
+## this for us directly.
+  tr ' ' '
+' < "$tmpdepfile" |
+## Some versions of gcc put a space before the `:'.  On the theory
+## that the space means something, we add a space to the output as
+## well.
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly.  Breaking it into two sed invocations is a workaround.
+    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+hp)
+  # This case exists only to let depend.m4 do its work.  It works by
+  # looking at the text of this script.  This case will never be run,
+  # since it is checked for above.
+  exit 1
+  ;;
+
+sgi)
+  if test "$libtool" = yes; then
+    "$@" "-Wp,-MDupdate,$tmpdepfile"
+  else
+    "$@" -MDupdate "$tmpdepfile"
+  fi
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+
+  if test -f "$tmpdepfile"; then  # yes, the sourcefile depend on other files
+    echo "$object : \\" > "$depfile"
+
+    # Clip off the initial element (the dependent).  Don't try to be
+    # clever and replace this with sed code, as IRIX sed won't handle
+    # lines with more than a fixed number of characters (4096 in
+    # IRIX 6.2 sed, 8192 in IRIX 6.5).  We also remove comment lines;
+    # the IRIX cc adds comments like `#:fec' to the end of the
+    # dependency line.
+    tr ' ' '
+' < "$tmpdepfile" \
+    | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
+    tr '
+' ' ' >> $depfile
+    echo >> $depfile
+
+    # The second pass generates a dummy entry for each header file.
+    tr ' ' '
+' < "$tmpdepfile" \
+   | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
+   >> $depfile
+  else
+    # The sourcefile does not contain any dependencies, so just
+    # store a dummy comment line, to avoid errors with the Makefile
+    # "include basename.Plo" scheme.
+    echo "#dummy" > "$depfile"
+  fi
+  rm -f "$tmpdepfile"
+  ;;
+
+aix)
+  # The C for AIX Compiler uses -M and outputs the dependencies
+  # in a .u file.  In older versions, this file always lives in the
+  # current directory.  Also, the AIX compiler puts `$object:' at the
+  # start of each line; $object doesn't have directory information.
+  # Version 6 uses the directory in both cases.
+  stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'`
+  tmpdepfile="$stripped.u"
+  if test "$libtool" = yes; then
+    "$@" -Wc,-M
+  else
+    "$@" -M
+  fi
+  stat=$?
+
+  if test -f "$tmpdepfile"; then :
+  else
+    stripped=`echo "$stripped" | sed 's,^.*/,,'`
+    tmpdepfile="$stripped.u"
+  fi
+
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+
+  if test -f "$tmpdepfile"; then
+    outname="$stripped.o"
+    # Each line is of the form `foo.o: dependent.h'.
+    # Do two passes, one to just change these to
+    # `$object: dependent.h' and one to simply `dependent.h:'.
+    sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile"
+    sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile"
+  else
+    # The sourcefile does not contain any dependencies, so just
+    # store a dummy comment line, to avoid errors with the Makefile
+    # "include basename.Plo" scheme.
+    echo "#dummy" > "$depfile"
+  fi
+  rm -f "$tmpdepfile"
+  ;;
+
+icc)
+  # Intel's C compiler understands `-MD -MF file'.  However on
+  #    icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
+  # ICC 7.0 will fill foo.d with something like
+  #    foo.o: sub/foo.c
+  #    foo.o: sub/foo.h
+  # which is wrong.  We want:
+  #    sub/foo.o: sub/foo.c
+  #    sub/foo.o: sub/foo.h
+  #    sub/foo.c:
+  #    sub/foo.h:
+  # ICC 7.1 will output
+  #    foo.o: sub/foo.c sub/foo.h
+  # and will wrap long lines using \ :
+  #    foo.o: sub/foo.c ... \
+  #     sub/foo.h ... \
+  #     ...
+
+  "$@" -MD -MF "$tmpdepfile"
+  stat=$?
+  if test $stat -eq 0; then :
+  else
+    rm -f "$tmpdepfile"
+    exit $stat
+  fi
+  rm -f "$depfile"
+  # Each line is of the form `foo.o: dependent.h',
+  # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
+  # Do two passes, one to just change these to
+  # `$object: dependent.h' and one to simply `dependent.h:'.
+  sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
+  # Some versions of the HPUX 10.20 sed can't process this invocation
+  # correctly.  Breaking it into two sed invocations is a workaround.
+  sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
+    sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+tru64)
+   # The Tru64 compiler uses -MD to generate dependencies as a side
+   # effect.  `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
+   # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
+   # dependencies in `foo.d' instead, so we check for that too.
+   # Subdirectories are respected.
+   dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
+   test "x$dir" = "x$object" && dir=
+   base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
+
+   if test "$libtool" = yes; then
+      # Dependencies are output in .lo.d with libtool 1.4.
+      # With libtool 1.5 they are output both in $dir.libs/$base.o.d
+      # and in $dir.libs/$base.o.d and $dir$base.o.d.  We process the
+      # latter, because the former will be cleaned when $dir.libs is
+      # erased.
+      tmpdepfile1="$dir.libs/$base.lo.d"
+      tmpdepfile2="$dir$base.o.d"
+      tmpdepfile3="$dir.libs/$base.d"
+      "$@" -Wc,-MD
+   else
+      tmpdepfile1="$dir$base.o.d"
+      tmpdepfile2="$dir$base.d"
+      tmpdepfile3="$dir$base.d"
+      "$@" -MD
+   fi
+
+   stat=$?
+   if test $stat -eq 0; then :
+   else
+      rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
+      exit $stat
+   fi
+
+   if test -f "$tmpdepfile1"; then
+      tmpdepfile="$tmpdepfile1"
+   elif test -f "$tmpdepfile2"; then
+      tmpdepfile="$tmpdepfile2"
+   else
+      tmpdepfile="$tmpdepfile3"
+   fi
+   if test -f "$tmpdepfile"; then
+      sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
+      # That's a tab and a space in the [].
+      sed -e 's,^.*\.[a-z]*:[	 ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
+   else
+      echo "#dummy" > "$depfile"
+   fi
+   rm -f "$tmpdepfile"
+   ;;
+
+#nosideeffect)
+  # This comment above is used by automake to tell side-effect
+  # dependency tracking mechanisms from slower ones.
+
+dashmstdout)
+  # Important note: in order to support this mode, a compiler *must*
+  # always write the preprocessed file to stdout, regardless of -o.
+  "$@" || exit $?
+
+  # Remove the call to Libtool.
+  if test "$libtool" = yes; then
+    while test $1 != '--mode=compile'; do
+      shift
+    done
+    shift
+  fi
+
+  # Remove `-o $object'.
+  IFS=" "
+  for arg
+  do
+    case $arg in
+    -o)
+      shift
+      ;;
+    $object)
+      shift
+      ;;
+    *)
+      set fnord "$@" "$arg"
+      shift # fnord
+      shift # $arg
+      ;;
+    esac
+  done
+
+  test -z "$dashmflag" && dashmflag=-M
+  # Require at least two characters before searching for `:'
+  # in the target name.  This is to cope with DOS-style filenames:
+  # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
+  "$@" $dashmflag |
+    sed 's:^[  ]*[^: ][^:][^:]*\:[    ]*:'"$object"'\: :' > "$tmpdepfile"
+  rm -f "$depfile"
+  cat < "$tmpdepfile" > "$depfile"
+  tr ' ' '
+' < "$tmpdepfile" | \
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly.  Breaking it into two sed invocations is a workaround.
+    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+dashXmstdout)
+  # This case only exists to satisfy depend.m4.  It is never actually
+  # run, as this mode is specially recognized in the preamble.
+  exit 1
+  ;;
+
+makedepend)
+  "$@" || exit $?
+  # Remove any Libtool call
+  if test "$libtool" = yes; then
+    while test $1 != '--mode=compile'; do
+      shift
+    done
+    shift
+  fi
+  # X makedepend
+  shift
+  cleared=no
+  for arg in "$@"; do
+    case $cleared in
+    no)
+      set ""; shift
+      cleared=yes ;;
+    esac
+    case "$arg" in
+    -D*|-I*)
+      set fnord "$@" "$arg"; shift ;;
+    # Strip any option that makedepend may not understand.  Remove
+    # the object too, otherwise makedepend will parse it as a source file.
+    -*|$object)
+      ;;
+    *)
+      set fnord "$@" "$arg"; shift ;;
+    esac
+  done
+  obj_suffix="`echo $object | sed 's/^.*\././'`"
+  touch "$tmpdepfile"
+  ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
+  rm -f "$depfile"
+  cat < "$tmpdepfile" > "$depfile"
+  sed '1,2d' "$tmpdepfile" | tr ' ' '
+' | \
+## Some versions of the HPUX 10.20 sed can't process this invocation
+## correctly.  Breaking it into two sed invocations is a workaround.
+    sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile" "$tmpdepfile".bak
+  ;;
+
+cpp)
+  # Important note: in order to support this mode, a compiler *must*
+  # always write the preprocessed file to stdout.
+  "$@" || exit $?
+
+  # Remove the call to Libtool.
+  if test "$libtool" = yes; then
+    while test $1 != '--mode=compile'; do
+      shift
+    done
+    shift
+  fi
+
+  # Remove `-o $object'.
+  IFS=" "
+  for arg
+  do
+    case $arg in
+    -o)
+      shift
+      ;;
+    $object)
+      shift
+      ;;
+    *)
+      set fnord "$@" "$arg"
+      shift # fnord
+      shift # $arg
+      ;;
+    esac
+  done
+
+  "$@" -E |
+    sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
+    sed '$ s: \\$::' > "$tmpdepfile"
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  cat < "$tmpdepfile" >> "$depfile"
+  sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+msvisualcpp)
+  # Important note: in order to support this mode, a compiler *must*
+  # always write the preprocessed file to stdout, regardless of -o,
+  # because we must use -o when running libtool.
+  "$@" || exit $?
+  IFS=" "
+  for arg
+  do
+    case "$arg" in
+    "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
+	set fnord "$@"
+	shift
+	shift
+	;;
+    *)
+	set fnord "$@" "$arg"
+	shift
+	shift
+	;;
+    esac
+  done
+  "$@" -E |
+  sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile"
+  rm -f "$depfile"
+  echo "$object : \\" > "$depfile"
+  . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::	\1 \\:p' >> "$depfile"
+  echo "	" >> "$depfile"
+  . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile"
+  rm -f "$tmpdepfile"
+  ;;
+
+none)
+  exec "$@"
+  ;;
+
+*)
+  echo "Unknown depmode $depmode" 1>&2
+  exit 1
+  ;;
+esac
+
+exit 0
+
+# Local Variables:
+# mode: shell-script
+# sh-indentation: 2
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "scriptversion="
+# time-stamp-format: "%:y-%02m-%02d.%02H"
+# time-stamp-end: "$"
+# End:
Index: b/binutils-2.16.1/etc/add-log.el
===================================================================
--- /dev/null
+++ b/binutils-2.16.1/etc/add-log.el
@@ -0,0 +1,573 @@
+;;; ============ NOTE WELL! =============
+;;;
+;;; You only need to use this file if you're using a version of Emacs
+;;; prior to 20.1 to work on GDB.  The only difference between this
+;;; and the standard add-log.el provided with 19.34 is that it
+;;; generates dates using the terser format used by Emacs 20.  This is
+;;; the format recommended for use in GDB ChangeLogs.
+;;;
+;;; To use this code, you should create a directory `~/elisp', save the code
+;;; below in `~/elisp/add-log.el', and then put something like this in
+;;; your `~/.emacs' file, to tell Emacs where to find it:
+;;;
+;;; (setq load-path
+;;;       (cons (expand-file-name "~/elisp")
+;;;             load-path))
+;;;
+;;; If you want, you can also byte-compile it --- it'll run a little
+;;; faster, and use a little less memory.  (Not that those matter much for
+;;; this file.)  To do that, after you've saved the text as
+;;; ~/elisp/add-log.el, bring it up in Emacs, and type
+;;;
+;;;     C-u M-x byte-compile-file
+;;;
+;;; --- Jim Blandy
+
+;;; add-log.el --- change log maintenance commands for Emacs
+
+;; Copyright (C) 1985, 1986, 1988, 1993, 1994 Free Software Foundation, Inc.
+
+;; Keywords: maint
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software; you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation; either version 2, or (at your option)
+;; any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs; see the file COPYING.  If not, write to the
+;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+;; Boston, MA 02111-1307, USA.
+
+;;; Commentary:
+
+;; This facility is documented in the Emacs Manual.
+
+;;; Code:
+
+(defvar change-log-default-name nil
+  "*Name of a change log file for \\[add-change-log-entry].")
+
+(defvar add-log-current-defun-function nil
+  "\
+*If non-nil, function to guess name of current function from surrounding text.
+\\[add-change-log-entry] calls this function (if nil, `add-log-current-defun'
+instead) with no arguments.  It returns a string or nil if it cannot guess.")
+
+;;;###autoload
+(defvar add-log-full-name nil
+  "*Full name of user, for inclusion in ChangeLog daily headers.
+This defaults to the value returned by the `user-full-name' function.")
+
+;;;###autoload
+(defvar add-log-mailing-address nil
+  "*Electronic mail address of user, for inclusion in ChangeLog daily headers.
+This defaults to the value of `user-mail-address'.")
+
+(defvar change-log-font-lock-keywords
+  '(("^[SMTWF].+" . font-lock-function-name-face)	; Date line.
+    ("^\t\\* \\([^ :\n]+\\)" 1 font-lock-comment-face)	; File name.
+    ("(\\([^)\n]+\\)):" 1 font-lock-keyword-face))	; Function name.
+  "Additional expressions to highlight in Change Log mode.")
+
+(defvar change-log-mode-map nil
+  "Keymap for Change Log major mode.")
+(if change-log-mode-map
+    nil
+  (setq change-log-mode-map (make-sparse-keymap))
+  (define-key change-log-mode-map "\M-q" 'change-log-fill-paragraph))
+
+(defun change-log-name ()
+  (or change-log-default-name
+      (if (eq system-type 'vax-vms)
+	  "$CHANGE_LOG$.TXT"
+	(if (or (eq system-type 'ms-dos) (eq system-type 'windows-nt))
+	    "changelo"
+	  "ChangeLog"))))
+
+;;;###autoload
+(defun prompt-for-change-log-name ()
+  "Prompt for a change log name."
+  (let* ((default (change-log-name))
+	 (name (expand-file-name
+		(read-file-name (format "Log file (default %s): " default)
+				nil default))))
+    ;; Handle something that is syntactically a directory name.
+    ;; Look for ChangeLog or whatever in that directory.
+    (if (string= (file-name-nondirectory name) "")
+	(expand-file-name (file-name-nondirectory default)
+			  name)
+      ;; Handle specifying a file that is a directory.
+      (if (file-directory-p name)
+	  (expand-file-name (file-name-nondirectory default)
+			    (file-name-as-directory name))
+	name))))
+
+;;;###autoload
+(defun find-change-log (&optional file-name)
+  "Find a change log file for \\[add-change-log-entry] and return the name.
+
+Optional arg FILE-NAME specifies the file to use.
+If FILE-NAME is nil, use the value of `change-log-default-name'.
+If 'change-log-default-name' is nil, behave as though it were 'ChangeLog'
+\(or whatever we use on this operating system).
+
+If 'change-log-default-name' contains a leading directory component, then
+simply find it in the current directory.  Otherwise, search in the current
+directory and its successive parents for a file so named.
+
+Once a file is found, `change-log-default-name' is set locally in the
+current buffer to the complete file name."
+  ;; If user specified a file name or if this buffer knows which one to use,
+  ;; just use that.
+  (or file-name
+      (setq file-name (and change-log-default-name
+			   (file-name-directory change-log-default-name)
+			   change-log-default-name))
+      (progn
+	;; Chase links in the source file
+	;; and use the change log in the dir where it points.
+	(setq file-name (or (and buffer-file-name
+				 (file-name-directory
+				  (file-chase-links buffer-file-name)))
+			    default-directory))
+	(if (file-directory-p file-name)
+	    (setq file-name (expand-file-name (change-log-name) file-name)))
+	;; Chase links before visiting the file.
+	;; This makes it easier to use a single change log file
+	;; for several related directories.
+	(setq file-name (file-chase-links file-name))
+	(setq file-name (expand-file-name file-name))
+	;; Move up in the dir hierarchy till we find a change log file.
+	(let ((file1 file-name)
+	      parent-dir)
+	  (while (and (not (or (get-file-buffer file1) (file-exists-p file1)))
+		      (progn (setq parent-dir
+				   (file-name-directory
+				    (directory-file-name
+				     (file-name-directory file1))))
+			     ;; Give up if we are already at the root dir.
+			     (not (string= (file-name-directory file1)
+					   parent-dir))))
+	    ;; Move up to the parent dir and try again.
+	    (setq file1 (expand-file-name
+			 (file-name-nondirectory (change-log-name))
+			 parent-dir)))
+	  ;; If we found a change log in a parent, use that.
+	  (if (or (get-file-buffer file1) (file-exists-p file1))
+	      (setq file-name file1)))))
+  ;; Make a local variable in this buffer so we needn't search again.
+  (set (make-local-variable 'change-log-default-name) file-name)
+  file-name)
+
+;;;###autoload
+(defun add-change-log-entry (&optional whoami file-name other-window new-entry)
+  "Find change log file and add an entry for today.
+Optional arg (interactive prefix) non-nil means prompt for user name and site.
+Second arg is file name of change log.  If nil, uses `change-log-default-name'.
+Third arg OTHER-WINDOW non-nil means visit in other window.
+Fourth arg NEW-ENTRY non-nil means always create a new entry at the front;
+never append to an existing entry."
+  (interactive (list current-prefix-arg
+		     (prompt-for-change-log-name)))
+  (or add-log-full-name
+      (setq add-log-full-name (user-full-name)))
+  (or add-log-mailing-address
+      (setq add-log-mailing-address user-mail-address))
+  (if whoami
+      (progn
+	(setq add-log-full-name (read-input "Full name: " add-log-full-name))
+	 ;; Note that some sites have room and phone number fields in
+	 ;; full name which look silly when inserted.  Rather than do
+	 ;; anything about that here, let user give prefix argument so that
+	 ;; s/he can edit the full name field in prompter if s/he wants.
+	(setq add-log-mailing-address
+	      (read-input "Mailing address: " add-log-mailing-address))))
+  (let ((defun (funcall (or add-log-current-defun-function
+			    'add-log-current-defun)))
+	paragraph-end entry)
+
+    (setq file-name (expand-file-name (find-change-log file-name)))
+
+    ;; Set ENTRY to the file name to use in the new entry.
+    (and buffer-file-name
+	 ;; Never want to add a change log entry for the ChangeLog file itself.
+	 (not (string= buffer-file-name file-name))
+	 (setq entry (if (string-match
+			  (concat "^" (regexp-quote (file-name-directory
+						     file-name)))
+			  buffer-file-name)
+			 (substring buffer-file-name (match-end 0))
+		       (file-name-nondirectory buffer-file-name))))
+
+    (if (and other-window (not (equal file-name buffer-file-name)))
+	(find-file-other-window file-name)
+      (find-file file-name))
+    (or (eq major-mode 'change-log-mode)
+	(change-log-mode))
+    (undo-boundary)
+    (goto-char (point-min))
+    (let ((heading (format "%s  %s  <%s>"
+			   (format-time-string "%Y-%m-%d")
+			   add-log-full-name
+			   add-log-mailing-address)))
+      (if (looking-at (regexp-quote heading))
+	  (forward-line 1)
+	(insert heading "\n\n")))
+
+    ;; Search only within the first paragraph.
+    (if (looking-at "\n*[^\n* \t]")
+	(skip-chars-forward "\n")
+      (forward-paragraph 1))
+    (setq paragraph-end (point))
+    (goto-char (point-min))
+
+    ;; Now insert the new line for this entry.
+    (cond ((re-search-forward "^\\s *\\*\\s *$" paragraph-end t)
+	   ;; Put this file name into the existing empty entry.
+	   (if entry
+	       (insert entry)))
+	  ((and (not new-entry)
+		(let (case-fold-search)
+		  (re-search-forward
+		   (concat (regexp-quote (concat "* " entry))
+			   ;; Don't accept `foo.bar' when
+			   ;; looking for `foo':
+			   "\\(\\s \\|[(),:]\\)")
+		   paragraph-end t)))
+	   ;; Add to the existing entry for the same file.
+	   (re-search-forward "^\\s *$\\|^\\s \\*")
+	   (goto-char (match-beginning 0))
+	   ;; Delete excess empty lines; make just 2.
+	   (while (and (not (eobp)) (looking-at "^\\s *$"))
+	     (delete-region (point) (save-excursion (forward-line 1) (point))))
+	   (insert "\n\n")
+	   (forward-line -2)
+	   (indent-relative-maybe))
+	  (t
+	   ;; Make a new entry.
+	   (forward-line 1)
+	   (while (looking-at "\\sW")
+	     (forward-line 1))
+	   (while (and (not (eobp)) (looking-at "^\\s *$"))
+	     (delete-region (point) (save-excursion (forward-line 1) (point))))
+	   (insert "\n\n\n")
+	   (forward-line -2)
+	   (indent-to left-margin)
+	   (insert "* " (or entry ""))))
+    ;; Now insert the function name, if we have one.
+    ;; Point is at the entry for this file,
+    ;; either at the end of the line or at the first blank line.
+    (if defun
+	(progn
+	  ;; Make it easy to get rid of the function name.
+	  (undo-boundary)
+	  (insert (if (save-excursion
+			(beginning-of-line 1)
+			(looking-at "\\s *$"))
+		      ""
+		    " ")
+		  "(" defun "): "))
+      ;; No function name, so put in a colon unless we have just a star.
+      (if (not (save-excursion
+		 (beginning-of-line 1)
+		 (looking-at "\\s *\\(\\*\\s *\\)?$")))
+	  (insert ": ")))))
+
+;;;###autoload
+(defun add-change-log-entry-other-window (&optional whoami file-name)
+  "Find change log file in other window and add an entry for today.
+Optional arg (interactive prefix) non-nil means prompt for user name and site.
+Second arg is file name of change log.  \
+If nil, uses `change-log-default-name'."
+  (interactive (if current-prefix-arg
+		   (list current-prefix-arg
+			 (prompt-for-change-log-name))))
+  (add-change-log-entry whoami file-name t))
+;;;###autoload (define-key ctl-x-4-map "a" 'add-change-log-entry-other-window)
+
+;;;###autoload
+(defun change-log-mode ()
+  "Major mode for editing change logs; like Indented Text Mode.
+Prevents numeric backups and sets `left-margin' to 8 and `fill-column' to 74.
+New log entries are usually made with \\[add-change-log-entry] or \\[add-change-log-entry-other-window].
+Each entry behaves as a paragraph, and the entries for one day as a page.
+Runs `change-log-mode-hook'."
+  (interactive)
+  (kill-all-local-variables)
+  (indented-text-mode)
+  (setq major-mode 'change-log-mode
+	mode-name "Change Log"
+	left-margin 8
+	fill-column 74
+    indent-tabs-mode t
+    tab-width 8)
+  (use-local-map change-log-mode-map)
+  ;; Let each entry behave as one paragraph:
+  ;; We really do want "^" in paragraph-start below: it is only the lines that
+  ;; begin at column 0 (despite the left-margin of 8) that we are looking for.
+  (set (make-local-variable 'paragraph-start) "\\s *$\\|\f\\|^\\sw")
+  (set (make-local-variable 'paragraph-separate) "\\s *$\\|\f\\|^\\sw")
+  ;; Let all entries for one day behave as one page.
+  ;; Match null string on the date-line so that the date-line
+  ;; is grouped with what follows.
+  (set (make-local-variable 'page-delimiter) "^\\<\\|^\f")
+  (set (make-local-variable 'version-control) 'never)
+  (set (make-local-variable 'adaptive-fill-regexp) "\\s *")
+  (set (make-local-variable 'font-lock-defaults)
+       '(change-log-font-lock-keywords t))
+  (run-hooks 'change-log-mode-hook))
+
+;; It might be nice to have a general feature to replace this.  The idea I
+;; have is a variable giving a regexp matching text which should not be
+;; moved from bol by filling.  change-log-mode would set this to "^\\s *\\s(".
+;; But I don't feel up to implementing that today.
+(defun change-log-fill-paragraph (&optional justify)
+  "Fill the paragraph, but preserve open parentheses at beginning of lines.
+Prefix arg means justify as well."
+  (interactive "P")
+  (let ((end (save-excursion (forward-paragraph) (point)))
+	(beg (save-excursion (backward-paragraph)(point)))
+	(paragraph-start (concat paragraph-start "\\|\\s *\\s(")))
+    (fill-region beg end justify)))
+
+(defvar add-log-current-defun-header-regexp
+  "^\\([A-Z][A-Z_ ]*[A-Z_]\\|[-_a-zA-Z]+\\)[ \t]*[:=]"
+  "*Heuristic regexp used by `add-log-current-defun' for unknown major modes.")
+
+;;;###autoload
+(defun add-log-current-defun ()
+  "Return name of function definition point is in, or nil.
+
+Understands C, Lisp, LaTeX (\"functions\" are chapters, sections, ...),
+Texinfo (@node titles), Perl, and Fortran.
+
+Other modes are handled by a heuristic that looks in the 10K before
+point for uppercase headings starting in the first column or
+identifiers followed by `:' or `=', see variable
+`add-log-current-defun-header-regexp'.
+
+Has a preference of looking backwards."
+  (condition-case nil
+      (save-excursion
+	(let ((location (point)))
+	  (cond ((memq major-mode '(emacs-lisp-mode lisp-mode scheme-mode
+						    lisp-interaction-mode))
+		 ;; If we are now precisely at the beginning of a defun,
+		 ;; make sure beginning-of-defun finds that one
+		 ;; rather than the previous one.
+		 (or (eobp) (forward-char 1))
+		 (beginning-of-defun)
+		 ;; Make sure we are really inside the defun found, not after it.
+		 (if (and (looking-at "\\s(")
+			  (progn (end-of-defun)
+				 (< location (point)))
+			  (progn (forward-sexp -1)
+				 (>= location (point))))
+		     (progn
+		       (if (looking-at "\\s(")
+			   (forward-char 1))
+		       (forward-sexp 1)
+		       (skip-chars-forward " '")
+		       (buffer-substring (point)
+					 (progn (forward-sexp 1) (point))))))
+		((and (memq major-mode '(c-mode c++-mode c++-c-mode objc-mode))
+		      (save-excursion (beginning-of-line)
+				      ;; Use eq instead of = here to avoid
+				      ;; error when at bob and char-after
+				      ;; returns nil.
+				      (while (eq (char-after (- (point) 2)) ?\\)
+					(forward-line -1))
+				      (looking-at "[ \t]*#[ \t]*define[ \t]")))
+		 ;; Handle a C macro definition.
+		 (beginning-of-line)
+		 (while (eq (char-after (- (point) 2)) ?\\) ;not =; note above
+		   (forward-line -1))
+		 (search-forward "define")
+		 (skip-chars-forward " \t")
+		 (buffer-substring (point)
+				   (progn (forward-sexp 1) (point))))
+		((memq major-mode '(c-mode c++-mode c++-c-mode objc-mode))
+		 (beginning-of-line)
+		 ;; See if we are in the beginning part of a function,
+		 ;; before the open brace.  If so, advance forward.
+		 (while (not (looking-at "{\\|\\(\\s *$\\)"))
+		   (forward-line 1))
+		 (or (eobp)
+		     (forward-char 1))
+		 (beginning-of-defun)
+		 (if (progn (end-of-defun)
+			    (< location (point)))
+		     (progn
+		       (backward-sexp 1)
+		       (let (beg tem)
+
+			 (forward-line -1)
+			 ;; Skip back over typedefs of arglist.
+			 (while (and (not (bobp))
+				     (looking-at "[ \t\n]"))
+			   (forward-line -1))
+			 ;; See if this is using the DEFUN macro used in Emacs,
+			 ;; or the DEFUN macro used by the C library.
+			 (if (condition-case nil
+				 (and (save-excursion
+					(end-of-line)
+					(while (= (preceding-char) ?\\)
+					  (end-of-line 2))
+					(backward-sexp 1)
+					(beginning-of-line)
+					(setq tem (point))
+					(looking-at "DEFUN\\b"))
+				      (>= location tem))
+			       (error nil))
+			     (progn
+			       (goto-char tem)
+			       (down-list 1)
+			       (if (= (char-after (point)) ?\")
+				   (progn
+				     (forward-sexp 1)
+				     (skip-chars-forward " ,")))
+			       (buffer-substring (point)
+						 (progn (forward-sexp 1) (point))))
+                           (if (looking-at "^[+-]")
+                               (get-method-definition)
+                             ;; Ordinary C function syntax.
+                             (setq beg (point))
+                             (if (and (condition-case nil
+					  ;; Protect against "Unbalanced parens" error.
+					  (progn
+					    (down-list 1) ; into arglist
+					    (backward-up-list 1)
+					    (skip-chars-backward " \t")
+					    t)
+					(error nil))
+				      ;; Verify initial pos was after
+				      ;; real start of function.
+				      (save-excursion
+					(goto-char beg)
+					;; For this purpose, include the line
+					;; that has the decl keywords.  This
+					;; may also include some of the
+					;; comments before the function.
+					(while (and (not (bobp))
+						    (save-excursion
+						      (forward-line -1)
+						      (looking-at "[^\n\f]")))
+					  (forward-line -1))
+					(>= location (point)))
+                                          ;; Consistency check: going down and up
+                                          ;; shouldn't take us back before BEG.
+                                          (> (point) beg))
+				 (let (end middle)
+				   ;; Don't include any final newline
+				   ;; in the name we use.
+				   (if (= (preceding-char) ?\n)
+				       (forward-char -1))
+				   (setq end (point))
+				   (backward-sexp 1)
+				   ;; Now find the right beginning of the name.
+				   ;; Include certain keywords if they
+				   ;; precede the name.
+				   (setq middle (point))
+				   (forward-word -1)
+				   ;; Ignore these subparts of a class decl
+				   ;; and move back to the class name itself.
+				   (while (looking-at "public \\|private ")
+				     (skip-chars-backward " \t:")
+				     (setq end (point))
+				     (backward-sexp 1)
+				     (setq middle (point))
+				     (forward-word -1))
+				   (and (bolp)
+					(looking-at "struct \\|union \\|class ")
+					(setq middle (point)))
+				   (buffer-substring middle end)))))))))
+		((memq major-mode
+		       '(TeX-mode plain-TeX-mode LaTeX-mode;; tex-mode.el
+				  plain-tex-mode latex-mode;; cmutex.el
+				  ))
+		 (if (re-search-backward
+		      "\\\\\\(sub\\)*\\(section\\|paragraph\\|chapter\\)" nil t)
+		     (progn
+		       (goto-char (match-beginning 0))
+		       (buffer-substring (1+ (point));; without initial backslash
+					 (progn
+					   (end-of-line)
+					   (point))))))
+		((eq major-mode 'texinfo-mode)
+		 (if (re-search-backward "^@node[ \t]+\\([^,\n]+\\)" nil t)
+		     (buffer-substring (match-beginning 1)
+				       (match-end 1))))
+		((eq major-mode 'perl-mode)
+		 (if (re-search-backward "^sub[ \t]+\\([^ \t\n]+\\)" nil t)
+		     (buffer-substring (match-beginning 1)
+				       (match-end 1))))
+                ((eq major-mode 'fortran-mode)
+                 ;; must be inside function body for this to work
+                 (beginning-of-fortran-subprogram)
+                 (let ((case-fold-search t)) ; case-insensitive
+                   ;; search for fortran subprogram start
+                   (if (re-search-forward
+			 "^[ \t]*\\(program\\|subroutine\\|function\
+\\|[ \ta-z0-9*]*[ \t]+function\\)"
+			 nil t)
+                       (progn
+                         ;; move to EOL or before first left paren
+                         (if (re-search-forward "[(\n]" nil t)
+			     (progn (forward-char -1)
+				    (skip-chars-backward " \t"))
+			   (end-of-line))
+			 ;; Use the name preceding that.
+                         (buffer-substring (point)
+                                           (progn (forward-sexp -1)
+                                                  (point)))))))
+		(t
+		 ;; If all else fails, try heuristics
+		 (let (case-fold-search)
+		   (end-of-line)
+		   (if (re-search-backward add-log-current-defun-header-regexp
+					   (- (point) 10000)
+					   t)
+		       (buffer-substring (match-beginning 1)
+					 (match-end 1))))))))
+    (error nil)))
+
+(defvar get-method-definition-md)
+
+;; Subroutine used within get-method-definition.
+;; Add the last match in the buffer to the end of `md',
+;; followed by the string END; move to the end of that match.
+(defun get-method-definition-1 (end)
+  (setq get-method-definition-md
+	(concat get-method-definition-md
+		(buffer-substring (match-beginning 1) (match-end 1))
+		end))
+  (goto-char (match-end 0)))
+
+;; For objective C, return the method name if we are in a method.
+(defun get-method-definition ()
+  (let ((get-method-definition-md "["))
+    (save-excursion
+      (if (re-search-backward "^@implementation\\s-*\\([A-Za-z_]*\\)" nil t)
+	  (get-method-definition-1 " ")))
+    (save-excursion
+      (cond
+       ((re-search-forward "^\\([-+]\\)[ \t\n\f\r]*\\(([^)]*)\\)?\\s-*" nil t)
+	(get-method-definition-1 "")
+	(while (not (looking-at "[{;]"))
+	  (looking-at
+	   "\\([A-Za-z_]*:?\\)\\s-*\\(([^)]*)\\)?[A-Za-z_]*[ \t\n\f\r]*")
+	  (get-method-definition-1 ""))
+	(concat get-method-definition-md "]"))))))
+
+
+(provide 'add-log)
+
+;;; add-log.el ends here
Index: b/binutils-2.16.1/etc/add-log.vi
===================================================================
--- /dev/null
+++ b/binutils-2.16.1/etc/add-log.vi
@@ -0,0 +1,11 @@
+Here is a vi macro to create entries in the recommended format for
+GDB's ChangeLogs.
+
+map  1GO:r !date '+\%Y-\%m-\%d'2GA  Jason Molenda  (:r !whoamikJxA@:r !hostnameA)kJxkddjO	* k$
+
+It contains control and escape sequences, so don't just cut and paste it.
+You'll need to change the "Jason Molenda" bit, of course. :-)  Put this
+in your $HOME/.exrc and when you type control-X in move-around-mode,
+you'll have a changelog template inserted.
+
+--- Jason Molenda
Index: b/binutils-2.16.1/etc/ChangeLog
===================================================================
--- /dev/null
+++ b/binutils-2.16.1/etc/ChangeLog
@@ -0,0 +1,561 @@
+2003-05-16  Kelley Cook  <kelleycook@wideopenwest.com>
+
+	* configure.texi: Use "i[3-7]86" in example.
+
+2003-01-02  H.J. Lu <hjl@gnu.org>
+
+	* Makefile.in (DESTDIR): New.
+	(install-info): Use it.
+
+2002-06-11  Nick Clifton  <nickc@cambridge.redhat.com>
+
+	Import the following patches from the FSF GCC sources:
+	2002-03-25  Zack Weinberg  <zack@codesourcery.com>
+
+	* texi2pod.pl: Handle @end ftable and @end vtable.
+
+	2001-12-12  Matthias Klose  <doko@debian.org>
+
+	* texi2pod.pl: Merge changes from binutils' texi2pod.pl. Allows
+	generation of more than one man page from one source.
+	Add '-' to set of valid chars for an identifier.
+	Let -D option accept flags of the form <flag>=<value>.
+	Use \s+ for whitespace detection in '@c man' lines.
+	Handle @set and @clear independent of $output.
+	Substitute all @value{}'s in a line.
+
+	2001-11-14  Joseph S. Myers  <jsm28@cam.ac.uk>
+
+	* texi2pod.pl: Handle @ifnottex, @iftex and @display.  Handle @var
+	in verbatim blocks specially.  Handle @unnumbered, @unnumberedsec
+	and @center.  Allow [a-z] after @enumerate.  Handle 0 and numbers
+	greater than 9 in enumerations.
+
+	2001-07-03  Joseph S. Myers  <jsm28@cam.ac.uk>
+
+	* texi2pod.pl: Handle @r inside @item.
+
+2002-02-27  Andrew Cagney  <ac131313@redhat.com>
+
+	* fdl.texi: New file.
+
+2002-02-24  Andrew Cagney  <ac131313@redhat.com>
+
+	* standards.texi: Import February 14, 2002 version.
+	* make-stds.texi: Import 2001 version.
+
+2002-01-26  Hans-Peter Nilsson  <hp@bitrange.com>
+
+	* Makefile.in (install): Depend on install-info.
+
+2001-03-25  Stephane Carrez  <Stephane.Carrez@worldnet.fr>
+
+	* texi2pod.pl: New file (from gcc/contrib).
+
+1999-04-01  Jim Blandy  <jimb@zwingli.cygnus.com>
+
+	* add-log.el, add-log.vi: New files.
+
+1999-01-20  Angela Marie Thomas (angela@cygnus.com)
+
+	* comp-tools-verify: Remove some checks that are no longer valid.
+
+1998-12-03  Nick Clifton  <nickc@cygnus.com>
+
+	* targetdoc/fr30.texi: New document.
+
+1998-10-01  Angela Marie Thomas (angela@cygnus.com)
+
+	* comp-tools-fix, cross-tools-fix: Replace /usr/include
+	with ${FIXINCDIR}.
+
+1998-08-11  Doug Evans  <devans@canuck.cygnus.com>
+
+	* make-rel-sym-tree (version): Update calculation.
+
+1998-06-12  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure.texi: Various additions.
+	* Makefile.in (TEXI2HTML, DVIPS): New variables.
+	(standards.ps): New target.
+	(configure.dvi): Copy .tin files in as well.
+	(configure.ps, configure.html): New targets.
+	(clean): Remove configdev.jpg and configbuild.jpg.
+	* configdev.fig: New file.
+	* configdev.ein: New file (EPS version of configdev.fig).
+	* configdev.jin: New file (JPEG version of configdev.fig).
+	* configbuild.fig: New file.
+	* configbuild.ein: New file (EPS version of configbuild.fig).
+	* configbuild.jin: New file (JPEG version of configbuild.fig).
+
+1998-06-10  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure.texi: New file.
+	* configdev.tin: New file.
+	* configbuild.tin: New file.
+	* Makefile.in (MAKEINFO): Use makeinfo from texinfo directory if
+	it exists.
+	(TEXI2DVI): Likewise for texi2dvi.
+	(INFOFILES): Add configure.info.
+	(DVIFILES): Add configure.dvi.
+	(info): Only build info files if the source files exist.
+	(install-info): Only install info files if they exist.
+	(dvi): Only build DVI files if the sources files exist.
+	(configure.info): New target.
+	(configure.dvi): New target.
+	(clean): Remove configdev and configbuild derived files.
+
+	Remove obsolete documentation.
+	* intro.texi: Remove.
+	* install.texi: Remove.
+	* config-names.texi: Remove.
+	* screen1.eps: Remove.
+	* screen1.obj: Remove.
+	* screen2.eps: Remove.
+	* screen2.obj: Remove.
+	* Makefile.in: Remove references to the above.
+
+Thu May 21 14:34:51 1998  Nick Clifton  <nickc@cygnus.com>
+
+	* targetdoc/arm-interwork.texi: Add note about ignoring linker
+	warning message when using --support-old-code.
+
+Mon May 18 14:27:37 1998  Angela Marie Thomas (angela@cygnus.com)
+
+	* Install.in, comp-tools-fix, comp-tools-verify, cross-tools-fix:
+	Use $GCCvn rather than substitute everywhere.
+
+Thu May 14 14:43:10 1998  Nick Clifton  <nickc@cygnus.com>
+
+	* targetdoc/arm-interwork.texi: Document dlltool support of
+	interworking.
+
+Thu May  7 16:49:38 1998  Jason Molenda  (crash@bugshack.cygnus.com)
+
+	* Install.in: Remove references to TCL_LIBRARY, TK_LIBRARY,
+	and GDBTK_FILENAME.
+
+Wed Apr  1 17:11:44 1998  Nick Clifton  <nickc@cygnus.com>
+
+	* targetdoc/arm-interwork.texi: Document ARM/thumb interworking.
+
+Tue Mar 31 15:28:20 1998  Ian Lance Taylor  <ian@cygnus.com>
+
+	* standards.texi, make-stds.texi: Update to current FSF versions.
+	* Makefile.in (standards.info): Depend upon make-std.texi.
+
+Tue Mar 24 16:13:26 1998  Stu Grossman  <grossman@bhuna.cygnus.co.uk>
+
+	* configure:  Regenerate with autoconf 2.12.1 to fix shell issues
+	for NT native builds.
+
+Mon Mar  9 16:41:04 1998  Doug Evans  <devans@canuck.cygnus.com>
+
+	* make-rel-sym-tree (binprogs): Add objcopy.
+
+Tue Feb 24 18:11:58 1998  Doug Evans  <devans@canuck.cygnus.com>
+
+	* make-rel-sym-tree: as.new -> as-new, ld.new -> ld-new
+	nm.new -> nm-new.  Make symlinks to crt*.o.
+
+Fri Nov 21 12:54:58 1997  Manfred Hollstein <manfred@s-direktnet.de>
+
+	* Makefile.in: Add --no-split argument to avoid creating files
+	with names longer than 14 characters.
+
+Thu Sep 25 13:13:11 1997  Jason Molenda  (crash@pern.cygnus.com)
+
+	* intro.texi: Add closing ifset.
+
+Mon Sep  1 10:31:32 1997  Angela Marie Thomas (angela@cygnus.com)
+
+	* Install.in: Move setting HOST and TARGET to the beginning
+	of the file for editing convenience.
+
+Mon Sep  1 10:28:37 1997  Angela Marie Thomas (angela@cygnus.com)
+
+	* Install.in.: More friendly options/messages when extracting
+	from a file instead of a tape device.
+
+Tue Jun 17 15:50:23 1997  Angela Marie Thomas (angela@cygnus.com)
+
+	* Install.in: Add /usr/bsd to PATH for Irix (home of compress)
+
+Thu Jun 12 13:47:00 1997  Angela Marie Thomas (angela@cygnus.com)
+
+        * Install.in (show_exec_prefix_msg): fix quoting
+
+Wed Jun  4 15:31:43 1997  Jason Molenda  (crash@godzilla.cygnus.co.jp)
+
+	* rebuilding.texi: Removed.
+
+Sat May 24 18:02:20 1997  Angela Marie Thomas (angela@cygnus.com)
+
+	* cross-tools-fix:  Remove host check since it doesn't matter
+	for this case.
+	* Install.in (guess_system): clean up more unused hosts.
+	* Install.in, cross-tools-fix, comp-tools-fix, comp-tools-verify:
+	Hack for host check to not warn the user for certain cases.
+
+Fri May 23 23:46:10 1997  Angela Marie Thomas (angela@cygnus.com)
+
+	* subst-strings: Remove a lot of unused code
+	* Install.in: Remove reference to TAPEdflt, use variables instead of
+	string substitution when able.
+
+Fri Apr 11 17:25:52 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* configure.in: Change file named in AC_INIT to Makefile.in.
+	* configure: Rebuild.
+
+Fri Apr 11 18:12:42 1997  Jason Molenda  (crash@godzilla.cygnus.co.jp)
+
+	* Install.in (guess_system): Back out change to INSTALLHOST to
+	call all IRIX systems "mips-sgi-irix4"
+
+	* Makefile.in: Remove references to configure.texi and cfg-paper.texi.
+
+Thu Apr 10 23:26:45 1997  Jason Molenda  (crash@godzilla.cygnus.co.jp)
+
+	* srctree.texi, emacs-relnotes.texi, cfg-paper.texi: Remove.
+	* Install.in: Remove Ultrix-specific hacks.
+	Update Cygnus phone numbers.
+	(guess_system): Remove some old systems (Ultrix, OSF1 v1 & 2,
+	m68k-HPUX, m68k SunOS, etc.)
+	(show_gnu_root_msg): Remove.
+	Removed all the remove option code.
+
+Thu Apr 10 23:23:33 1997  Jason Molenda  (crash@godzilla.cygnus.co.jp)
+
+	* configure.man, configure.texi: Remote.
+
+Mon Apr  7 18:15:00 1997  Brendan Kehoe <brendan@cygnus.com>
+
+        * Fix the version string for OSF1 4.0 to recognize either
+        V4.* or X4.*
+
+Mon Apr  7 15:34:47 1997  Ian Lance Taylor  <ian@cygnus.com>
+
+	* standards.texi, make-stds.texi: Update to current FSF versions.
+
+Tue Nov 19 15:36:14 1996  Doug Evans  <dje@canuck.cygnus.com>
+
+	* make-rel-sym-tree: New file.
+
+Wed Oct 23 00:34:07 1996  Angela Marie Thomas (angela@cygnus.com)
+
+	* Lots of patches from progressive...
+ 	* Install.in: restore DDOPTS for AIX 4.x
+ 	* Install.in, subst-strings: add case for DG Aviion
+ 	* subst-strings: fix typo in INSTALLdir var setting
+ 	* comp-tools-verify: set SHLIB_PATH for shared libs
+ 	* Install.in, subst-strings:  add case for solaris2.5
+ 	* Install.in: fix regression for hppa1.1 check
+ 	* comp-tools-fix: set LD_LIBRARY_PATH
+ 	* comp-tools-fix: If fixincludes fixes /usr/include/limits.h,
+ 	install it as syslimits.h.
+
+Wed Oct 16 19:20:42 1996  Michael Meissner  <meissner@tiktok.cygnus.com>
+
+	* Install.in (guess_system): Treat powerpc-ibm-aix4.1 the same as
+	rs6000-ibm-aix4.1, since the compiler now uses common mode by
+	default.
+
+Wed Oct  2 15:39:07 1996  Jason Molenda  (crash@godzilla.cygnus.co.jp)
+
+	* configure.in (AC_PROG_INSTALL): Added.
+	* Makefile.in (distclean): Remove config.cache.
+
+Wed Oct  2 14:33:58 1996  Jason Molenda  (crash@godzilla.cygnus.co.jp)
+
+	* configure.in: Switch to autoconf configure.in.
+	* configure: New.
+	* Makefile.in: Use autoconf-substituted values.
+
+Tue Jun 25 18:56:08 1996  Jason Molenda  (crash@godzilla.cygnus.co.jp)
+
+	* Makefile.in (datadir): Changed to $(prefix)/share.
+
+Fri Mar 29 11:38:01 1996  J.T. Conklin  (jtc@lisa.cygnus.com)
+
+	* configure.man: Changed to be recognized by catman -w on Solaris.
+
+Wed Dec  6 15:40:28 1995  Doug Evans  <dje@canuck.cygnus.com>
+
+	* comp-tools-fix (fixincludes): Define FIXPROTO_DEFINES from
+	.../install-tools/fixproto-defines.
+
+Sun Nov 12 19:31:27 1995  Jason Molenda  (crash@phydeaux.cygnus.com)
+
+	* comp-tools-verify (verify_cxx_initializers): delete argv,
+	argc declarations, add -static to compile line.
+	(verify_cxx_hello_world): delete argv, argc declarations, add
+	-static to compile line.
+
+Wed Sep 20 13:21:52 1995  Ian Lance Taylor  <ian@cygnus.com>
+
+	* Makefile.in (maintainer-clean): New target, synonym for
+	realclean.
+
+Mon Aug 28 17:25:49 1995  Jason Molenda  (crash@phydeaux.cygnus.com)
+
+	* Install.in (PATH):  add /usr/ucb to $PATH (for SunOS 4.1.x).
+
+Tue Aug 15 21:51:58 1995  Jason Molenda  (crash@phydeaux.cygnus.com)
+
+	* Install.in (guess_system): Match OSF/1 v3.x as the same as
+        v2.x--v2.x binaries are upward compatible.
+
+Tue Aug 15 21:46:54 1995  Jason Molenda  (crash@phydeaux.cygnus.com)
+
+	* Install.in (guess_system): recognize HP 9000/800 systems as the
+	same as HP 9000/700 systems.
+
+Tue Aug  8 13:11:56 1995  Brendan Kehoe  <brendan@lisa.cygnus.com>
+
+	* Install.in: For emacs, run show_emacs_alternate_msg and exit.
+	(show_emacs_alternate_msg): New message saying how emacs can't be
+	installed in an alternate prefix.
+
+Thu Jun  8 00:42:56 1995  Angela Marie Thomas  <angela@cirdan.cygnus.com>
+
+        * subst-strings: change du commands to $BINDIR/. & $SRCDIR/. just
+        in case they are symlinks.
+
+Tue Apr 18 14:23:10 1995  J.T. Conklin  <jtc@rtl.cygnus.com>
+
+	* cdk-fix: Extracted table of targets that don't need their
+	  headers fixed from gcc's configure script.
+
+	* cdk-fix, cdk-verify: Use ${HOST} instead of ||HOSTstr||
+
+	* cdk-fix, cdk-verify: New files, install script fragments used
+	  for Cygnus Developer's Kit.
+
+	* Install.in (do_mkdir): New function.
+
+	* Install.in: Added support for --with and --without options.
+	  Changed so that tape commands are not run when extracting
+	  from a file.
+	  (do_mt): Changed to take only one argument.
+
+Wed Mar 29 11:16:38 1995  Jason Molenda (crash@phydeaux.cygnus.com)
+
+	* Install.in: catch UNAME==alpha-dec-osf2.x and correct entry for
+	alpha-dec-osf1.x
+
+Fri Jan 27 12:04:29 1995  J.T. Conklin  <jtc@rtl.cygnus.com>
+
+	* subst-strings (mips-sgi-irix5): New entry in table.
+
+Thu Jan 19 12:15:44 1995  J.T. Conklin  <jtc@rtl.cygnus.com>
+
+	* Install.in: Major rewrite, bundle dependent code (for example,
+	  fixincludes for comp-tools) will be inserted into the Install
+	  script when it is generated.
+
+Tue Jan 17 16:51:32 1995  Ian Lance Taylor  <ian@sanguine.cygnus.com>
+
+	* Makefile.in (Makefile): Rebuild using $(SHELL).
+
+Thu Nov  3 19:30:33 1994  Ken Raeburn  <raeburn@cujo.cygnus.com>
+
+	* Makefile.in (install-info): Depend on info.
+
+Fri Aug 19 16:16:38 1994  Jason Molenda     (crash@phydeaux.cygnus.com)
+
+	* Install.in: set $FIX_HEADER so fixproto can find fix-header.
+
+Fri May  6 16:18:58 1994  Jason Molenda     (crash@sendai.cygnus.com)
+
+	* Makefile.in (install-info): add a semicolon in the if statement.
+
+Fri Apr 29 16:56:07 1994  David J. Mackenzie  (djm@rtl.cygnus.com)
+
+	* cfg-paper.texi: Update some outdated information.
+
+	* Makefile.in (install-info): Pass file, not directory, as last
+	arg to INSTALL_DATA.
+	(uninstall): New target.
+
+Thu Apr 28 14:42:22 1994  David J. Mackenzie  (djm@rtl.cygnus.com)
+
+	* configure.texi: Comment out @smallbook.
+
+	* Makefile.in: Define TEXI2DVI and TEXIDIR, and use the latter.
+	Remove info files in realclean, not clean, per coding standards.
+	Remove TeX output in clean.
+
+Tue Apr 26 17:18:03 1994  Jason Molenda (crash@sendai.cygnus.com)
+
+        * Install.in:  fixincludes output is actually put in fixincludes.log,
+        but echo'ed messages claim it is fixinc.log.  This is the same
+	messages as I logged in March 4 1994, but for some reason we found
+	the change hadn't been done.  I'll have to dig through the logs
+	and find out what I really did do that day. :)
+
+Mon Apr 25 20:28:19 1994  Jason Molenda   (crash@sendai.cygnus.com)
+
+	* Install.in:  use eval to call do_mt() for Ultrix brokenness.
+
+Mon Apr 25 20:00:00 1994  Jason Molenda   (crash@sendai.cygnus.com)
+
+	* Install.in(do_mt): exit with error status 1 if # of parameters
+	!= 3.
+
+Mon Apr 25 19:42:36 1994  Jason Molenda   (crash@sendai.cygnus.com)
+
+	* Install.in:  lose TAPE_FORWARD and TAPE_REWIND, add do_mt()
+	to do all tape movement operations.  Currently untested.  Addresses
+	PR # 4886 from bull.
+
+	* Install.in: add 1994 to the copyright thing.
+
+Fri Apr 22 19:05:13 1994  David J. Mackenzie  (djm@rtl.cygnus.com)
+
+	* standards.texi: Update from FSF.
+
+Fri Apr 22 15:46:10 1994  Jason Molenda (crash@cygnus.com)
+
+	* Install.in: Add $DDOPTS, has ``bs=124b'' for all systems except
+	AIX (some versions of AIX don't understand bs=124b.  Silly OS).
+
+Mon Apr  4 22:55:05 1994  Jason Molenda (crash@sendai.cygnus.com)
+
+	* Install.in: null out $TOOLS before adding stuff to it
+	non-destructively.
+
+Wed Mar 30 21:45:35 1994  David J. Mackenzie  (djm@rtl.cygnus.com)
+
+	* standards.texi: Fix typo.
+
+	* configure.texi, configure.man: Document --disable-.
+
+Mon Mar 28 13:22:15 1994  David J. Mackenzie  (djm@rtl.cygnus.com)
+
+	* standards.texi: Update from FSF.
+
+Sat Mar 26 09:21:44 1994  David J. Mackenzie  (djm@rtl.cygnus.com)
+
+	* standards.texi, make-stds.texi: Update from FSF.
+
+Fri Mar 25 22:59:45 1994  David J. Mackenzie  (djm@rtl.cygnus.com)
+
+	* configure.texi, configure.man: Document --enable-* options.
+
+Wed Mar 23 23:38:24 1994  Jason Molenda  (crash@sendai.cygnus.com)
+
+	* Install.in: set CPP to be gcc -E for fixincludes.
+
+Wed Mar 23 13:42:48 1994  Jason Molenda  (crash@sendai.cygnus.com)
+
+        * Install.in: set PATH to $PATH:/bin:/usr/bin so we can pick
+        up native tools even if the user doesn't have them in his
+        path.
+
+        * Install.in: ``hppa-1.1-hp-hpux'' -> ``hppa1.1-hp-hpux''.
+
+Tue Mar 15 22:09:20 1994  Jason Molenda  (crash@sendai.cygnus.com)
+
+        * Install.in: TAPE_REWIND and TAPE_FORWARD variables for Unixunaware,
+        added switch statement to detect if system is Unixunaware.
+
+Fri Mar  4 12:10:30 1994  Jason Molenda (crash@sendai.cygnus.com)
+
+        * Install.in:  fixincludes output is actually put in fixincludes.log,
+        but echo'ed messages claim it is fixinc.log.
+
+Wed Nov  3 02:58:02 1993  Jeffrey Osier  (jeffrey@thepub.cygnus.com)
+
+	* subst-strings:  output TEXBUNDLE for more install notes matching
+	* install-texi.in:  PRMS info now exists
+
+Tue Oct 26 16:57:12 1993  K. Richard Pixley  (rich@sendai.cygnus.com)
+
+	* subst-strings: match solaris*.  Also, add default case to catch
+	  and error out for unrecognized systems.
+
+Thu Aug 19 18:21:31 1993  david d `zoo' zuhn  (zoo@rtl.cygnus.com)
+
+	* Install.in: handle the new fixproto work
+
+Mon Jul 19 12:05:41 1993  david d `zoo' zuhn  (zoo@cirdan.cygnus.com)
+
+	* Install.in: remove "MT=tctl" for AIX (not needed, and barely
+	worked anyway)
+
+Mon Jun 14 19:09:22 1993  Jeffrey Osier  (jeffrey@cygnus.com)
+
+	* subst-strings: changed HOST to recognize Solaris for install notes
+
+Thu Jun 10 16:01:25 1993  Jeffrey Osier  (jeffrey@cygnus.com)
+
+	* dos-inst.texi:  new file.
+
+Wed Jun  9 19:23:59 1993  Jeffrey Osier  (jeffrey@rtl.cygnus.com)
+
+        * install-texi.in:        added conditionals (nearly complete)
+                                  cleaned up
+                                  added support for other releases (not done)
+
+Wed Jun  9 15:53:58 1993  Jim Kingdon  (kingdon@cygnus.com)
+
+	* Makefile.in (install-info): Use INSTALL_DATA.
+	({dist,real}clean): Also delete Makefile and config.status.
+
+Fri Jun  4 17:09:56 1993  Jeffrey Osier  (jeffrey@cygnus.com)
+
+	* subst-strings:  added data for OS_STRING
+
+	* subst-strings:  added support for OS_STRING
+
+Thu Jun  3 00:37:01 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* Install.in: pull COPYING and COPYING.LIB off of the tape
+
+Tue Jun  1 16:52:08 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* subst-strings: replace RELEASE_DIR too
+
+Mon Mar 22 23:55:27 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* Makefile.in: add installcheck target
+
+Wed Mar 17 02:21:15 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* Install.in: fix 'source only' extraction bug where it looked for
+	the src dir under H-<host>/src instead of src; also remove stray
+	reference to EMACSHIBIN
+
+Mon Mar 15 01:25:45 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* make-stds.texi: added 'installcheck' to the standard targets
+
+Tue Mar  9 19:48:28 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* standards.texi: added INFO-DIR-ENTRY, updated version from the FSF
+
+Tue Feb  9 12:40:23 1993  Ian Lance Taylor  (ian@cygnus.com)
+
+	* Makefile.in (standards.info): Added -I$(srcdir) to find
+	make-stds.texi.
+
+Mon Feb  1 16:32:56 1993  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* standards.texi: updated to latest FSF version, which includes:
+
+	* make-stds.texi: new file
+
+Mon Nov 30 01:31:40 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* install-texi.in, relnotes.texi, intro.texi: changed Cygnus phone
+	numbers from the old Palo Alto ones to the new Mtn. View numbers
+
+Mon Nov 16 16:50:43 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* Makefile.in: define $(RM) to "rm -f"
+
+Sun Oct 11 16:05:48 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)
+
+	* intro.texi: added INFO-DIR-ENTRY
+
Index: b/binutils-2.16.1/etc/configure.info
===================================================================
--- a/binutils-2.16.1/etc/configure.info
+++ /dev/null
@@ -1,2771 +0,0 @@
-This is configure.info, produced by makeinfo version 4.7 from
-.././etc/configure.texi.
-
-INFO-DIR-SECTION GNU admin
-START-INFO-DIR-ENTRY
-* configure: (configure).	The GNU configure and build system
-END-INFO-DIR-ENTRY
-
-   This file documents the GNU configure and build system.
-
-   Copyright (C) 1998 Cygnus Solutions.
-
-   Permission is granted to make and distribute verbatim copies of this
-manual provided the copyright notice and this permission notice are
-preserved on all copies.
-
-   Permission is granted to copy and distribute modified versions of
-this manual under the conditions for verbatim copying, provided that
-the entire resulting derived work is distributed under the terms of a
-permission notice identical to this one.
-
-   Permission is granted to copy and distribute translations of this
-manual into another language, under the above conditions for modified
-versions, except that this permission notice may be stated in a
-translation approved by the Foundation.
-
-
-File: configure.info,  Node: Top,  Next: Introduction,  Up: (dir)
-
-GNU configure and build system
-******************************
-
-The GNU configure and build system.
-
-* Menu:
-
-* Introduction::		Introduction.
-* Getting Started::		Getting Started.
-* Files::			Files.
-* Configuration Names::		Configuration Names.
-* Cross Compilation Tools::	Cross Compilation Tools.
-* Canadian Cross::		Canadian Cross.
-* Cygnus Configure::		Cygnus Configure.
-* Multilibs::			Multilibs.
-* FAQ::				Frequently Asked Questions.
-* Index::			Index.
-
-
-File: configure.info,  Node: Introduction,  Next: Getting Started,  Prev: Top,  Up: Top
-
-1 Introduction
-**************
-
-This document describes the GNU configure and build systems.  It
-describes how autoconf, automake, libtool, and make fit together.  It
-also includes a discussion of the older Cygnus configure system.
-
-   This document does not describe in detail how to use each of the
-tools; see the respective manuals for that.  Instead, it describes
-which files the developer must write, which files are machine generated
-and how they are generated, and where certain common problems should be
-addressed.
-
-   This document draws on several sources, including the autoconf
-manual by David MacKenzie (*note autoconf overview: (autoconf)Top.),
-the automake manual by David MacKenzie and Tom Tromey (*note automake
-overview: (automake)Top.), the libtool manual by Gordon Matzigkeit
-(*note libtool overview: (libtool)Top.), and the Cygnus configure
-manual by K. Richard Pixley.
-
-* Menu:
-
-* Goals::			Goals.
-* Tools::			The tools.
-* History::			History.
-* Building::			Building.
-
-
-File: configure.info,  Node: Goals,  Next: Tools,  Up: Introduction
-
-1.1 Goals
-=========
-
-The GNU configure and build system has two main goals.
-
-   The first is to simplify the development of portable programs.  The
-system permits the developer to concentrate on writing the program,
-simplifying many details of portability across Unix and even Windows
-systems, and permitting the developer to describe how to build the
-program using simple rules rather than complex Makefiles.
-
-   The second is to simplify the building of programs distributed as
-source code.  All programs are built using a simple, standardized, two
-step process.  The program builder need not install any special tools in
-order to build the program.
-
-
-File: configure.info,  Node: Tools,  Next: History,  Prev: Goals,  Up: Introduction
-
-1.2 Tools
-=========
-
-The GNU configure and build system is comprised of several different
-tools.  Program developers must build and install all of these tools.
-
-   People who just want to build programs from distributed sources
-normally do not need any special tools beyond a Unix shell, a make
-program, and a C compiler.
-
-autoconf
-     provides a general portability framework, based on testing the
-     features of the host system at build time.
-
-automake
-     a system for describing how to build a program, permitting the
-     developer to write a simplified `Makefile'.
-
-libtool
-     a standardized approach to building shared libraries.
-
-gettext
-     provides a framework for translation of text messages into other
-     languages; not really discussed in this document.
-
-m4
-     autoconf requires the GNU version of m4; the standard Unix m4 does
-     not suffice.
-
-perl
-     automake requires perl.
-
-
-File: configure.info,  Node: History,  Next: Building,  Prev: Tools,  Up: Introduction
-
-1.3 History
-===========
-
-This is a very brief and probably inaccurate history.
-
-   As the number of Unix variants increased during the 1980s, it became
-harder to write programs which could run on all variants.  While it was
-often possible to use `#ifdef' to identify particular systems,
-developers frequently did not have access to every system, and the
-characteristics of some systems changed from version to version.
-
-   By 1992, at least three different approaches had been developed:
-   * The Metaconfig program, by Larry Wall, Harlan Stenn, and Raphael
-     Manfredi.
-
-   * The Cygnus configure script, by K. Richard Pixley, and the gcc
-     configure script, by Richard Stallman.  These use essentially the
-     same approach, and the developers communicated regularly.
-
-   * The autoconf program, by David MacKenzie.
-
-   The Metaconfig program is still used for Perl and a few other
-programs.  It is part of the Dist package.  I do not know if it is
-being developed.
-
-   In 1994, David MacKenzie and others modified autoconf to incorporate
-all the features of Cygnus configure.  Since then, there has been a
-slow but steady conversion of GNU programs from Cygnus configure to
-autoconf. gcc has been converted, eliminating the gcc configure script.
-
-   GNU autoconf was regularly maintained until late 1996.  As of this
-writing in June, 1998, it has no public maintainer.
-
-   Most programs are built using the make program, which requires the
-developer to write Makefiles describing how to build the programs.
-Since most programs are built in pretty much the same way, this led to a
-lot of duplication.
-
-   The X Window system is built using the imake tool, which uses a
-database of rules to eliminate the duplication.  However, building a
-tool which was developed using imake requires that the builder have
-imake installed, violating one of the goals of the GNU system.
-
-   The new BSD make provides a standard library of Makefile fragments,
-which permits developers to write very simple Makefiles.  However, this
-requires that the builder install the new BSD make program.
-
-   In 1994, David MacKenzie wrote the first version of automake, which
-permitted writing a simple build description which was converted into a
-Makefile which could be used by the standard make program.  In 1995, Tom
-Tromey completely rewrote automake in Perl, and he continues to enhance
-it.
-
-   Various free packages built libraries, and by around 1995 several
-included support to build shared libraries on various platforms.
-However, there was no consistent approach.  In early 1996, Gordon
-Matzigkeit began working on libtool, which provided a standardized
-approach to building shared libraries.  This was integrated into
-automake from the start.
-
-   The development of automake and libtool was driven by the GNITS
-project, a group of GNU maintainers who designed standardized tools to
-help meet the GNU coding standards.
-
-
-File: configure.info,  Node: Building,  Prev: History,  Up: Introduction
-
-1.4 Building
-============
-
-Most readers of this document should already know how to build a tool by
-running `configure' and `make'.  This section may serve as a quick
-introduction or reminder.
-
-   Building a tool is normally as simple as running `configure'
-followed by `make'.  You should normally run `configure' from an empty
-directory, using some path to refer to the `configure' script in the
-source directory.  The directory in which you run `configure' is called
-the "object directory".
-
-   In order to use a object directory which is different from the source
-directory, you must be using the GNU version of `make', which has the
-required `VPATH' support.  Despite this restriction, using a different
-object directory is highly recommended:
-   * It keeps the files generated during the build from cluttering up
-     your sources.
-
-   * It permits you to remove the built files by simply removing the
-     entire build directory.
-
-   * It permits you to build from the same sources with several sets of
-     configure options simultaneously.
-
-   If you don't have GNU `make', you will have to run `configure' in
-the source directory.  All GNU packages should support this; in
-particular, GNU packages should not assume the presence of GNU `make'.
-
-   After running `configure', you can build the tools by running `make'.
-
-   To install the tools, run `make install'.  Installing the tools will
-copy the programs and any required support files to the "installation
-directory".  The location of the installation directory is controlled
-by `configure' options, as described below.
-
-   In the Cygnus tree at present, the info files are built and
-installed as a separate step.  To build them, run `make info'.  To
-install them, run `make install-info'.
-
-   All `configure' scripts support a wide variety of options.  The most
-interesting ones are `--with' and `--enable' options which are
-generally specific to particular tools.  You can usually use the
-`--help' option to get a list of interesting options for a particular
-configure script.
-
-   The only generic options you are likely to use are the `--prefix'
-and `--exec-prefix' options.  These options are used to specify the
-installation directory.
-
-   The directory named by the `--prefix' option will hold machine
-independent files such as info files.
-
-   The directory named by the `--exec-prefix' option, which is normally
-a subdirectory of the `--prefix' directory, will hold machine dependent
-files such as executables.
-
-   The default for `--prefix' is `/usr/local'.  The default for
-`--exec-prefix' is the value used for `--prefix'.
-
-   The convention used in Cygnus releases is to use a `--prefix' option
-of `/usr/cygnus/RELEASE', where RELEASE is the name of the release, and
-to use a `--exec-prefix' option of `/usr/cygnus/RELEASE/H-HOST', where
-HOST is the configuration name of the host system (*note Configuration
-Names::).
-
-   Do not use either the source or the object directory as the
-installation directory.  That will just lead to confusion.
-
-
-File: configure.info,  Node: Getting Started,  Next: Files,  Prev: Introduction,  Up: Top
-
-2 Getting Started
-*****************
-
-To start using the GNU configure and build system with your software
-package, you must write three files, and you must run some tools to
-manually generate additional files.
-
-* Menu:
-
-* Write configure.in::		Write configure.in.
-* Write Makefile.am::		Write Makefile.am.
-* Write acconfig.h::		Write acconfig.h.
-* Generate files::		Generate files.
-* Getting Started Example::	Example.
-
-
-File: configure.info,  Node: Write configure.in,  Next: Write Makefile.am,  Up: Getting Started
-
-2.1 Write configure.in
-======================
-
-You must first write the file `configure.in'.  This is an autoconf
-input file, and the autoconf manual describes in detail what this file
-should look like.
-
-   You will write tests in your `configure.in' file to check for
-conditions that may change from one system to another, such as the
-presence of particular header files or functions.
-
-   For example, not all systems support the `gettimeofday' function.
-If you want to use the `gettimeofday' function when it is available,
-and to use some other function when it is not, you would check for this
-by putting `AC_CHECK_FUNCS(gettimeofday)' in `configure.in'.
-
-   When the configure script is run at build time, this will arrange to
-define the preprocessor macro `HAVE_GETTIMEOFDAY' to the value 1 if the
-`gettimeofday' function is available, and to not define the macro at
-all if the function is not available.  Your code can then use `#ifdef'
-to test whether it is safe to call `gettimeofday'.
-
-   If you have an existing body of code, the `autoscan' program may
-help identify potential portability problems, and hence configure tests
-that you will want to use.  *Note Invoking autoscan: (autoconf)Invoking
-autoscan.
-
-   Another handy tool for an existing body of code is `ifnames'.  This
-will show you all the preprocessor conditionals that the code already
-uses.  *Note Invoking ifnames: (autoconf)Invoking ifnames.
-
-   Besides the portability tests which are specific to your particular
-package, every `configure.in' file should contain the following macros.
-
-`AC_INIT'
-     This macro takes a single argument, which is the name of a file in
-     your package.  For example, `AC_INIT(foo.c)'.
-
-`AC_PREREQ(VERSION)'
-     This macro is optional.  It may be used to indicate the version of
-     `autoconf' that you are using.  This will prevent users from
-     running an earlier version of `autoconf' and perhaps getting an
-     invalid `configure' script.  For example, `AC_PREREQ(2.12)'.
-
-`AM_INIT_AUTOMAKE'
-     This macro takes two arguments: the name of the package, and a
-     version number.  For example, `AM_INIT_AUTOMAKE(foo, 1.0)'.  (This
-     macro is not needed if you are not using automake).
-
-`AM_CONFIG_HEADER'
-     This macro names the header file which will hold the preprocessor
-     macro definitions at run time.  Normally this should be
-     `config.h'.  Your sources would then use `#include "config.h"' to
-     include it.
-
-     This macro may optionally name the input file for that header
-     file; by default, this is `config.h.in', but that file name works
-     poorly on DOS filesystems.  Therefore, it is often better to name
-     it explicitly as `config.in'.
-
-     This is what you should normally put in `configure.in':
-          AM_CONFIG_HEADER(config.h:config.in)
-
-     (If you are not using automake, use `AC_CONFIG_HEADER' rather than
-     `AM_CONFIG_HEADER').
-
-`AM_MAINTAINER_MODE'
-     This macro always appears in Cygnus configure scripts.  Other
-     programs may or may not use it.
-
-     If this macro is used, the `--enable-maintainer-mode' option is
-     required to enable automatic rebuilding of generated files used by
-     the configure system.  This of course requires that developers be
-     aware of, and use, that option.
-
-     If this macro is not used, then the generated files will always be
-     rebuilt automatically.  This will cause problems if the wrong
-     versions of autoconf, automake, or others are in the builder's
-     `PATH'.
-
-     (If you are not using automake, you do not need to use this macro).
-
-`AC_EXEEXT'
-     Either this macro or `AM_EXEEXT' always appears in Cygnus configure
-     files.  Other programs may or may not use one of them.
-
-     This macro looks for the executable suffix used on the host
-     system.  On Unix systems, this is the empty string.  On Windows
-     systems, this is `.exe'.  This macro directs automake to use the
-     executable suffix as appropriate when creating programs.  This
-     macro does not take any arguments.
-
-     The `AC_EXEEXT' form is new, and is part of a Cygnus patch to
-     autoconf to support compiling with Visual C++.  Older programs use
-     `AM_EXEEXT' instead.
-
-     (Programs which do not use automake use neither `AC_EXEEXT' nor
-     `AM_EXEEXT').
-
-`AC_PROG_CC'
-     If you are writing C code, you will normally want to use this
-     macro.  It locates the C compiler to use.  It does not take any
-     arguments.
-
-     However, if this `configure.in' file is for a library which is to
-     be compiled by a cross compiler which may not fully work, then you
-     will not want to use `AC_PROG_CC'.  Instead, you will want to use a
-     variant which does not call the macro `AC_PROG_CC_WORKS'.  Examples
-     can be found in various `configure.in' files for libraries that are
-     compiled with cross compilers, such as libiberty or libgloss.
-     This is essentially a bug in autoconf, and there will probably be
-     a better workaround at some point.
-
-`AC_PROG_CXX'
-     If you are writing C++ code, you will want to use this macro.  It
-     locates the C++ compiler to use.  It does not take any arguments.
-     The same cross compiler comments apply as for `AC_PROG_CC'.
-
-`AM_PROG_LIBTOOL'
-     If you want to build libraries, and you want to permit them to be
-     shared, or you want to link against libraries which were built
-     using libtool, then you will need this macro.  This macro is
-     required in order to use libtool.
-
-     By default, this will cause all libraries to be built as shared
-     libraries.  To prevent this-to change the default-use
-     `AM_DISABLE_SHARED' before `AM_PROG_LIBTOOL'.  The configure
-     options `--enable-shared' and `--disable-shared' may be used to
-     override the default at build time.
-
-`AC_DEFINE(_GNU_SOURCE)'
-     GNU packages should normally include this line before any other
-     feature tests.  This defines the macro `_GNU_SOURCE' when
-     compiling, which directs the libc header files to provide the
-     standard GNU system interfaces including all GNU extensions.  If
-     this macro is not defined, certain GNU extensions may not be
-     available.
-
-`AC_OUTPUT'
-     This macro takes a list of file names which the configure process
-     should produce.  This is normally a list of one or more `Makefile'
-     files in different directories.  If your package lives entirely in
-     a single directory, you would use simply `AC_OUTPUT(Makefile)'.
-     If you also have, for example, a `lib' subdirectory, you would use
-     `AC_OUTPUT(Makefile lib/Makefile)'.
-
-   If you want to use locally defined macros in your `configure.in'
-file, then you will need to write a `acinclude.m4' file which defines
-them (if not using automake, this file is called `aclocal.m4').
-Alternatively, you can put separate macros in an `m4' subdirectory, and
-put `ACLOCAL_AMFLAGS = -I m4' in your `Makefile.am' file so that the
-`aclocal' program will be able to find them.
-
-   The different macro prefixes indicate which tool defines the macro.
-Macros which start with `AC_' are part of autoconf.  Macros which start
-with `AM_' are provided by automake or libtool.
-
-
-File: configure.info,  Node: Write Makefile.am,  Next: Write acconfig.h,  Prev: Write configure.in,  Up: Getting Started
-
-2.2 Write Makefile.am
-=====================
-
-You must write the file `Makefile.am'.  This is an automake input file,
-and the automake manual describes in detail what this file should look
-like.
-
-   The automake commands in `Makefile.am' mostly look like variable
-assignments in a `Makefile'.  automake recognizes special variable
-names, and automatically add make rules to the output as needed.
-
-   There will be one `Makefile.am' file for each directory in your
-package.  For each directory with subdirectories, the `Makefile.am'
-file should contain the line
-     SUBDIRS = DIR DIR ...
-   where each DIR is the name of a subdirectory.
-
-   For each `Makefile.am', there should be a corresponding `Makefile'
-in the `AC_OUTPUT' macro in `configure.in'.
-
-   Every `Makefile.am' written at Cygnus should contain the line
-     AUTOMAKE_OPTIONS = cygnus
-   This puts automake into Cygnus mode.  See the automake manual for
-details.
-
-   You may to include the version number of `automake' that you are
-using on the `AUTOMAKE_OPTIONS' line.  For example,
-     AUTOMAKE_OPTIONS = cygnus 1.3
-   This will prevent users from running an earlier version of
-`automake' and perhaps getting an invalid `Makefile.in'.
-
-   If your package builds a program, then in the directory where that
-program is built you will normally want a line like
-     bin_PROGRAMS = PROGRAM
-   where PROGRAM is the name of the program.  You will then want a line
-like
-     PROGRAM_SOURCES = FILE FILE ...
-   where each FILE is the name of a source file to link into the
-program (e.g., `foo.c').
-
-   If your package builds a library, and you do not want the library to
-ever be built as a shared library, then in the directory where that
-library is built you will normally want a line like
-     lib_LIBRARIES = libNAME.a
-   where `libNAME.a' is the name of the library.  You will then want a
-line like
-     libNAME_a_SOURCES = FILE FILE ...
-   where each FILE is the name of a source file to add to the library.
-
-   If your package builds a library, and you want to permit building the
-library as a shared library, then in the directory where that library is
-built you will normally want a line like
-     lib_LTLIBRARIES = libNAME.la
-   The use of `LTLIBRARIES', and the `.la' extension, indicate a
-library to be built using libtool.  As usual, you will then want a line
-like
-     libNAME_la_SOURCES = FILE FILE ...
-
-   The strings `bin' and `lib' that appear above in `bin_PROGRAMS' and
-`lib_LIBRARIES' are not arbitrary.  They refer to particular
-directories, which may be set by the `--bindir' and `--libdir' options
-to `configure'.  If those options are not used, the default values are
-based on the `--prefix' or `--exec-prefix' options to `configure'.  It
-is possible to use other names if the program or library should be
-installed in some other directory.
-
-   The `Makefile.am' file may also contain almost anything that may
-appear in a normal `Makefile'.  automake also supports many other
-special variables, as well as conditionals.
-
-   See the automake manual for more information.
-
-
-File: configure.info,  Node: Write acconfig.h,  Next: Generate files,  Prev: Write Makefile.am,  Up: Getting Started
-
-2.3 Write acconfig.h
-====================
-
-If you are generating a portability header file, (i.e., you are using
-`AM_CONFIG_HEADER' in `configure.in'), then you will have to write a
-`acconfig.h' file.  It will have to contain the following lines.
-
-     /* Name of package.  */
-     #undef PACKAGE
-
-     /* Version of package.  */
-     #undef VERSION
-
-   This requirement is really a bug in the system, and the requirement
-may be eliminated at some later date.
-
-   The `acconfig.h' file will also similar comment and `#undef' lines
-for any unusual macros in the `configure.in' file, including any macro
-which appears in a `AC_DEFINE' macro.
-
-   In particular, if you are writing a GNU package and therefore include
-`AC_DEFINE(_GNU_SOURCE)' in `configure.in' as suggested above, you will
-need lines like this in `acconfig.h':
-     /* Enable GNU extensions.  */
-     #undef _GNU_SOURCE
-
-   Normally the `autoheader' program will inform you of any such
-requirements by printing an error message when it is run.  However, if
-you do anything particular odd in your `configure.in' file, you will
-have to make sure that the right entries appear in `acconfig.h', since
-otherwise the results of the tests may not be available in the
-`config.h' file which your code will use.
-
-   (Thee `PACKAGE' and `VERSION' lines are not required if you are not
-using automake, and in that case you may not need a `acconfig.h' file
-at all).
-
-
-File: configure.info,  Node: Generate files,  Next: Getting Started Example,  Prev: Write acconfig.h,  Up: Getting Started
-
-2.4 Generate files
-==================
-
-Once you have written `configure.in', `Makefile.am', `acconfig.h', and
-possibly `acinclude.m4', you must use autoconf and automake programs to
-produce the first versions of the generated files.  This is done by
-executing the following sequence of commands.
-
-     aclocal
-     autoconf
-     autoheader
-     automake
-
-   The `aclocal' and `automake' commands are part of the automake
-package, and the `autoconf' and `autoheader' commands are part of the
-autoconf package.
-
-   If you are using a `m4' subdirectory for your macros, you will need
-to use the `-I m4' option when you run `aclocal'.
-
-   If you are not using the Cygnus tree, use the `-a' option when
-running `automake' command in order to copy the required support files
-into your source directory.
-
-   If you are using libtool, you must build and install the libtool
-package with the same `--prefix' and `--exec-prefix' options as you
-used with the autoconf and automake packages.  You must do this before
-running any of the above commands.  If you are not using the Cygnus
-tree, you will need to run the `libtoolize' program to copy the libtool
-support files into your directory.
-
-   Once you have managed to run these commands without getting any
-errors, you should create a new empty directory, and run the `configure'
-script which will have been created by `autoconf' with the
-`--enable-maintainer-mode' option.  This will give you a set of
-Makefiles which will include rules to automatically rebuild all the
-generated files.
-
-   After doing that, whenever you have changed some of the input files
-and want to regenerated the other files, go to your object directory
-and run `make'.  Doing this is more reliable than trying to rebuild the
-files manually, because there are complex order dependencies and it is
-easy to forget something.
-
-
-File: configure.info,  Node: Getting Started Example,  Prev: Generate files,  Up: Getting Started
-
-2.5 Example
-===========
-
-Let's consider a trivial example.
-
-   Suppose we want to write a simple version of `touch'.  Our program,
-which we will call `poke', will take a single file name argument, and
-use the `utime' system call to set the modification and access times of
-the file to the current time.  We want this program to be highly
-portable.
-
-   We'll first see what this looks like without using autoconf and
-automake, and then see what it looks like with them.
-
-* Menu:
-
-* Getting Started Example 1::		First Try.
-* Getting Started Example 2::		Second Try.
-* Getting Started Example 3::		Third Try.
-* Generate Files in Example::		Generate Files.
-
-
-File: configure.info,  Node: Getting Started Example 1,  Next: Getting Started Example 2,  Up: Getting Started Example
-
-2.5.1 First Try
----------------
-
-Here is our first try at `poke.c'.  Note that we've written it without
-ANSI/ISO C prototypes, since we want it to be highly portable.
-
-     #include <stdio.h>
-     #include <stdlib.h>
-     #include <sys/types.h>
-     #include <utime.h>
-
-     int
-     main (argc, argv)
-          int argc;
-          char **argv;
-     {
-       if (argc != 2)
-         {
-           fprintf (stderr, "Usage: poke file\n");
-           exit (1);
-         }
-
-       if (utime (argv[1], NULL) < 0)
-         {
-           perror ("utime");
-           exit (1);
-         }
-
-       exit (0);
-     }
-
-   We also write a simple `Makefile'.
-
-     CC = gcc
-     CFLAGS = -g -O2
-
-     all: poke
-
-     poke: poke.o
-     	$(CC) -o poke $(CFLAGS) $(LDFLAGS) poke.o
-
-   So far, so good.
-
-   Unfortunately, there are a few problems.
-
-   On older Unix systems derived from BSD 4.3, the `utime' system call
-does not accept a second argument of `NULL'.  On those systems, we need
-to pass a pointer to `struct utimbuf' structure.  Unfortunately, even
-older systems don't define that structure; on those systems, we need to
-pass an array of two `long' values.
-
-   The header file `stdlib.h' was invented by ANSI C, and older systems
-don't have a copy.  We included it above to get a declaration of `exit'.
-
-   We can find some of these portability problems by running
-`autoscan', which will create a `configure.scan' file which we can use
-as a prototype for our `configure.in' file.  I won't show the output,
-but it will notice the potential problems with `utime' and `stdlib.h'.
-
-   In our `Makefile', we don't provide any way to install the program.
-This doesn't matter much for such a simple example, but a real program
-will need an `install' target.  For that matter, we will also want a
-`clean' target.
-
-
-File: configure.info,  Node: Getting Started Example 2,  Next: Getting Started Example 3,  Prev: Getting Started Example 1,  Up: Getting Started Example
-
-2.5.2 Second Try
-----------------
-
-Here is our second try at this program.
-
-   We modify `poke.c' to use preprocessor macros to control what
-features are available.  (I've cheated a bit by using the same macro
-names which autoconf will use).
-
-     #include <stdio.h>
-
-     #ifdef STDC_HEADERS
-     #include <stdlib.h>
-     #endif
-
-     #include <sys/types.h>
-
-     #ifdef HAVE_UTIME_H
-     #include <utime.h>
-     #endif
-
-     #ifndef HAVE_UTIME_NULL
-
-     #include <time.h>
-
-     #ifndef HAVE_STRUCT_UTIMBUF
-
-     struct utimbuf
-     {
-       long actime;
-       long modtime;
-     };
-
-     #endif
-
-     static int
-     utime_now (file)
-          char *file;
-     {
-       struct utimbuf now;
-
-       now.actime = now.modtime = time (NULL);
-       return utime (file, &now);
-     }
-
-     #define utime(f, p) utime_now (f)
-
-     #endif /* HAVE_UTIME_NULL  */
-
-     int
-     main (argc, argv)
-          int argc;
-          char **argv;
-     {
-       if (argc != 2)
-         {
-           fprintf (stderr, "Usage: poke file\n");
-           exit (1);
-         }
-
-       if (utime (argv[1], NULL) < 0)
-         {
-           perror ("utime");
-           exit (1);
-         }
-
-       exit (0);
-     }
-
-   Here is the associated `Makefile'.  We've added support for the
-preprocessor flags we use.  We've also added `install' and `clean'
-targets.
-
-     # Set this to your installation directory.
-     bindir = /usr/local/bin
-
-     # Uncomment this if you have the standard ANSI/ISO C header files.
-     # STDC_HDRS = -DSTDC_HEADERS
-
-     # Uncomment this if you have utime.h.
-     # UTIME_H = -DHAVE_UTIME_H
-
-     # Uncomment this if utime (FILE, NULL) works on your system.
-     # UTIME_NULL = -DHAVE_UTIME_NULL
-
-     # Uncomment this if struct utimbuf is defined in utime.h.
-     # UTIMBUF = -DHAVE_STRUCT_UTIMBUF
-
-     CC = gcc
-     CFLAGS = -g -O2
-
-     ALL_CFLAGS = $(STDC_HDRS) $(UTIME_H) $(UTIME_NULL) $(UTIMBUF) $(CFLAGS)
-
-     all: poke
-
-     poke: poke.o
-     	$(CC) -o poke $(ALL_CFLAGS) $(LDFLAGS) poke.o
-
-     .c.o:
-     	$(CC) -c $(ALL_CFLAGS) poke.c
-
-     install: poke
-     	cp poke $(bindir)/poke
-
-     clean:
-     	rm poke poke.o
-
-   Some problems with this approach should be clear.
-
-   Users who want to compile poke will have to know how `utime' works
-on their systems, so that they can uncomment the `Makefile' correctly.
-
-   The installation is done using `cp', but many systems have an
-`install' program which may be used, and which supports optional
-features such as stripping debugging information out of the installed
-binary.
-
-   The use of `Makefile' variables like `CC', `CFLAGS' and `LDFLAGS'
-follows the requirements of the GNU standards.  This is convenient for
-all packages, since it reduces surprises for users.  However, it is
-easy to get the details wrong, and wind up with a slightly nonstandard
-distribution.
-
-
-File: configure.info,  Node: Getting Started Example 3,  Next: Generate Files in Example,  Prev: Getting Started Example 2,  Up: Getting Started Example
-
-2.5.3 Third Try
----------------
-
-For our third try at this program, we will write a `configure.in'
-script to discover the configuration features on the host system, rather
-than requiring the user to edit the `Makefile'.  We will also write a
-`Makefile.am' rather than a `Makefile'.
-
-   The only change to `poke.c' is to add a line at the start of the
-file:
-     #include "config.h"
-
-   The new `configure.in' file is as follows.
-
-     AC_INIT(poke.c)
-     AM_INIT_AUTOMAKE(poke, 1.0)
-     AM_CONFIG_HEADER(config.h:config.in)
-     AC_PROG_CC
-     AC_HEADER_STDC
-     AC_CHECK_HEADERS(utime.h)
-     AC_EGREP_HEADER(utimbuf, utime.h, AC_DEFINE(HAVE_STRUCT_UTIMBUF))
-     AC_FUNC_UTIME_NULL
-     AC_OUTPUT(Makefile)
-
-   The first four macros in this file, and the last one, were described
-above; see *Note Write configure.in::.  If we omit these macros, then
-when we run `automake' we will get a reminder that we need them.
-
-   The other macros are standard autoconf macros.
-
-`AC_HEADER_STDC'
-     Check for standard C headers.
-
-`AC_CHECK_HEADERS'
-     Check whether a particular header file exists.
-
-`AC_EGREP_HEADER'
-     Check for a particular string in a particular header file, in this
-     case checking for `utimbuf' in `utime.h'.
-
-`AC_FUNC_UTIME_NULL'
-     Check whether `utime' accepts a NULL second argument to set the
-     file change time to the current time.
-
-   See the autoconf manual for a more complete description.
-
-   The new `Makefile.am' file is as follows.  Note how simple this is
-compared to our earlier `Makefile'.
-
-     bin_PROGRAMS = poke
-
-     poke_SOURCES = poke.c
-
-   This means that we should build a single program name `poke'.  It
-should be installed in the binary directory, which we called `bindir'
-earlier.  The program `poke' is built from the source file `poke.c'.
-
-   We must also write a `acconfig.h' file.  Besides `PACKAGE' and
-`VERSION', which must be mentioned for all packages which use automake,
-we must include `HAVE_STRUCT_UTIMBUF', since we mentioned it in an
-`AC_DEFINE'.
-
-     /* Name of package.  */
-     #undef PACKAGE
-
-     /* Version of package.  */
-     #undef VERSION
-
-     /* Whether utime.h defines struct utimbuf.  */
-     #undef HAVE_STRUCT_UTIMBUF
-
-
-File: configure.info,  Node: Generate Files in Example,  Prev: Getting Started Example 3,  Up: Getting Started Example
-
-2.5.4 Generate Files
---------------------
-
-We must now generate the other files, using the following commands.
-
-     aclocal
-     autoconf
-     autoheader
-     automake
-
-   When we run `autoheader', it will remind us of any macros we forgot
-to add to `acconfig.h'.
-
-   When we run `automake', it will want to add some files to our
-distribution.  It will add them automatically if we use the
-`--add-missing' option.
-
-   By default, `automake' will run in GNU mode, which means that it
-will want us to create certain additional files; as of this writing, it
-will want `NEWS', `README', `AUTHORS', and `ChangeLog', all of which
-are files which should appear in a standard GNU distribution.  We can
-either add those files, or run `automake' with the `--foreign' option.
-
-   Running these tools will generate the following files, all of which
-are described in the next chapter.
-
-   * `aclocal.m4'
-
-   * `configure'
-
-   * `config.in'
-
-   * `Makefile.in'
-
-   * `stamp-h.in'
-
-
-File: configure.info,  Node: Files,  Next: Configuration Names,  Prev: Getting Started,  Up: Top
-
-3 Files
-*******
-
-As was seen in the previous chapter, the GNU configure and build system
-uses a number of different files.  The developer must write a few files.
-The others are generated by various tools.
-
-   The system is rather flexible, and can be used in many different
-ways.  In describing the files that it uses, I will describe the common
-case, and mention some other cases that may arise.
-
-* Menu:
-
-* Developer Files::		Developer Files.
-* Build Files::			Build Files.
-* Support Files::		Support Files.
-
-
-File: configure.info,  Node: Developer Files,  Next: Build Files,  Up: Files
-
-3.1 Developer Files
-===================
-
-This section describes the files written or generated by the developer
-of a package.
-
-* Menu:
-
-* Developer Files Picture::	Developer Files Picture.
-* Written Developer Files::	Written Developer Files.
-* Generated Developer Files::	Generated Developer Files.
-
-
-File: configure.info,  Node: Developer Files Picture,  Next: Written Developer Files,  Up: Developer Files
-
-3.1.1 Developer Files Picture
------------------------------
-
-Here is a picture of the files which are written by the developer, the
-generated files which would be included with a complete source
-distribution, and the tools which create those files.  The file names
-are plain text and the tool names are enclosed by `*' characters (e.g.,
-`autoheader' is the name of a tool, not the name of a file).
-
-   acconfig.h       configure.in                 Makefile.am
-       |                |                           |
-       |  --------------+----------------------     |
-       |  |             |                     |     |
-       v  v             |    acinclude.m4     |     |
-   *autoheader*         |         |           v     v
-       |                |         v      --->*automake*
-       v                |--->*aclocal*   |       |
-   config.in            |         |      |       v
-                        |         v      |   Makefile.in
-                        |    aclocal.m4---
-                        |     |
-                        v     v
-                       *autoconf*
-                           |
-                           v
-                       configure
-
-
-File: configure.info,  Node: Written Developer Files,  Next: Generated Developer Files,  Prev: Developer Files Picture,  Up: Developer Files
-
-3.1.2 Written Developer Files
------------------------------
-
-The following files would be written by the developer.
-
-`configure.in'
-     This is the configuration script.  This script contains
-     invocations of autoconf macros.  It may also contain ordinary
-     shell script code.  This file will contain feature tests for
-     portability issues.  The last thing in the file will normally be
-     an `AC_OUTPUT' macro listing which files to create when the
-     builder runs the configure script.  This file is always required
-     when using the GNU configure system.  *Note Write configure.in::.
-
-`Makefile.am'
-     This is the automake input file.  It describes how the code should
-     be built.  It consists of definitions of automake variables.  It
-     may also contain ordinary Makefile targets.  This file is only
-     needed when using automake (newer tools normally use automake, but
-     there are still older tools which have not been converted, in
-     which the developer writes `Makefile.in' directly).  *Note Write
-     Makefile.am::.
-
-`acconfig.h'
-     When the configure script creates a portability header file, by
-     using `AM_CONFIG_HEADER' (or, if not using automake,
-     `AC_CONFIG_HEADER'), this file is used to describe macros which are
-     not recognized by the `autoheader' command.  This is normally a
-     fairly uninteresting file, consisting of a collection of `#undef'
-     lines with comments.  Normally any call to `AC_DEFINE' in
-     `configure.in' will require a line in this file. *Note Write
-     acconfig.h::.
-
-`acinclude.m4'
-     This file is not always required.  It defines local autoconf
-     macros.  These macros may then be used in `configure.in'.  If you
-     don't need any local autoconf macros, then you don't need this
-     file at all.  In fact, in general, you never need local autoconf
-     macros, since you can put everything in `configure.in', but
-     sometimes a local macro is convenient.
-
-     Newer tools may omit `acinclude.m4', and instead use a
-     subdirectory, typically named `m4', and define `ACLOCAL_AMFLAGS =
-     -I m4' in `Makefile.am' to force `aclocal' to look there for macro
-     definitions.  The macro definitions are then placed in separate
-     files in that directory.
-
-     The `acinclude.m4' file is only used when using automake; in older
-     tools, the developer writes `aclocal.m4' directly, if it is needed.
-
-
-File: configure.info,  Node: Generated Developer Files,  Prev: Written Developer Files,  Up: Developer Files
-
-3.1.3 Generated Developer Files
--------------------------------
-
-The following files would be generated by the developer.
-
-   When using automake, these files are normally not generated manually
-after the first time.  Instead, the generated `Makefile' contains rules
-to automatically rebuild the files as required.  When
-`AM_MAINTAINER_MODE' is used in `configure.in' (the normal case in
-Cygnus code), the automatic rebuilding rules will only be defined if
-you configure using the `--enable-maintainer-mode' option.
-
-   When using automatic rebuilding, it is important to ensure that all
-the various tools have been built and installed on your `PATH'.  Using
-automatic rebuilding is highly recommended, so much so that I'm not
-going to explain what you have to do if you don't use it.
-
-`configure'
-     This is the configure script which will be run when building the
-     package.  This is generated by `autoconf' from `configure.in' and
-     `aclocal.m4'.  This is a shell script.
-
-`Makefile.in'
-     This is the file which the configure script will turn into the
-     `Makefile' at build time.  This file is generated by `automake'
-     from `Makefile.am'.  If you aren't using automake, you must write
-     this file yourself.  This file is pretty much a normal `Makefile',
-     with some configure substitutions for certain variables.
-
-`aclocal.m4'
-     This file is created by the `aclocal' program, based on the
-     contents of `configure.in' and `acinclude.m4' (or, as noted in the
-     description of `acinclude.m4' above, on the contents of an `m4'
-     subdirectory).  This file contains definitions of autoconf macros
-     which `autoconf' will use when generating the file `configure'.
-     These autoconf macros may be defined by you in `acinclude.m4' or
-     they may be defined by other packages such as automake, libtool or
-     gettext.  If you aren't using automake, you will normally write
-     this file yourself; in that case, if `configure.in' uses only
-     standard autoconf macros, this file will not be needed at all.
-
-`config.in'
-     This file is created by `autoheader' based on `acconfig.h' and
-     `configure.in'.  At build time, the configure script will define
-     some of the macros in it to create `config.h', which may then be
-     included by your program.  This permits your C code to use
-     preprocessor conditionals to change its behaviour based on the
-     characteristics of the host system.  This file may also be called
-     `config.h.in'.
-
-`stamp.h-in'
-     This rather uninteresting file, which I omitted from the picture,
-     is generated by `automake'.  It always contains the string
-     `timestamp'.  It is used as a timestamp file indicating whether
-     `config.in' is up to date.  Using a timestamp file means that
-     `config.in' can be marked as up to date without actually changing
-     its modification time.  This is useful since `config.in' depends
-     upon `configure.in', but it is easy to change `configure.in' in a
-     way which does not affect `config.in'.
-
-
-File: configure.info,  Node: Build Files,  Next: Support Files,  Prev: Developer Files,  Up: Files
-
-3.2 Build Files
-===============
-
-This section describes the files which are created at configure and
-build time.  These are the files which somebody who builds the package
-will see.
-
-   Of course, the developer will also build the package.  The
-distinction between developer files and build files is not that the
-developer does not see the build files, but that somebody who only
-builds the package does not have to worry about the developer files.
-
-* Menu:
-
-* Build Files Picture::		Build Files Picture.
-* Build Files Description::	Build Files Description.
-
-
-File: configure.info,  Node: Build Files Picture,  Next: Build Files Description,  Up: Build Files
-
-3.2.1 Build Files Picture
--------------------------
-
-Here is a picture of the files which will be created at build time.
-`config.status' is both a created file and a shell script which is run
-to create other files, and the picture attempts to show that.
-
-   config.in        *configure*      Makefile.in
-      |                  |               |
-      |                  v               |
-      |             config.status        |
-      |                  |               |
-   *config.status*<======+==========>*config.status*
-      |                                  |
-      v                                  v
-   config.h                          Makefile
-
-
-File: configure.info,  Node: Build Files Description,  Prev: Build Files Picture,  Up: Build Files
-
-3.2.2 Build Files Description
------------------------------
-
-This is a description of the files which are created at build time.
-
-`config.status'
-     The first step in building a package is to run the `configure'
-     script.  The `configure' script will create the file
-     `config.status', which is itself a shell script.  When you first
-     run `configure', it will automatically run `config.status'.  An
-     `Makefile' derived from an automake generated `Makefile.in' will
-     contain rules to automatically run `config.status' again when
-     necessary to recreate certain files if their inputs change.
-
-`Makefile'
-     This is the file which make will read to build the program.  The
-     `config.status' script will transform `Makefile.in' into
-     `Makefile'.
-
-`config.h'
-     This file defines C preprocessor macros which C code can use to
-     adjust its behaviour on different systems.  The `config.status'
-     script will transform `config.in' into `config.h'.
-
-`config.cache'
-     This file did not fit neatly into the picture, and I omitted it.
-     It is used by the `configure' script to cache results between
-     runs.  This can be an important speedup.  If you modify
-     `configure.in' in such a way that the results of old tests should
-     change (perhaps you have added a new library to `LDFLAGS'), then
-     you will have to remove `config.cache' to force the tests to be
-     rerun.
-
-     The autoconf manual explains how to set up a site specific cache
-     file.  This can speed up running `configure' scripts on your
-     system.
-
-`stamp.h'
-     This file, which I omitted from the picture, is similar to
-     `stamp-h.in'.  It is used as a timestamp file indicating whether
-     `config.h' is up to date.  This is useful since `config.h' depends
-     upon `config.status', but it is easy for `config.status' to change
-     in a way which does not affect `config.h'.
-
-
-File: configure.info,  Node: Support Files,  Prev: Build Files,  Up: Files
-
-3.3 Support Files
-=================
-
-The GNU configure and build system requires several support files to be
-included with your distribution.  You do not normally need to concern
-yourself with these.  If you are using the Cygnus tree, most are already
-present.  Otherwise, they will be installed with your source by
-`automake' (with the `--add-missing' option) and `libtoolize'.
-
-   You don't have to put the support files in the top level directory.
-You can put them in a subdirectory, and use the `AC_CONFIG_AUX_DIR'
-macro in `configure.in' to tell `automake' and the `configure' script
-where they are.
-
-   In this section, I describe the support files, so that you can know
-what they are and why they are there.
-
-`ABOUT-NLS'
-     Added by automake if you are using gettext.  This is a
-     documentation file about the gettext project.
-
-`ansi2knr.c'
-     Used by an automake generated `Makefile' if you put `ansi2knr' in
-     `AUTOMAKE_OPTIONS' in `Makefile.am'.  This permits compiling ANSI
-     C code with a K&R C compiler.
-
-`ansi2knr.1'
-     The man page which goes with `ansi2knr.c'.
-
-`config.guess'
-     A shell script which determines the configuration name for the
-     system on which it is run.
-
-`config.sub'
-     A shell script which canonicalizes a configuration name entered by
-     a user.
-
-`elisp-comp'
-     Used to compile Emacs LISP files.
-
-`install-sh'
-     A shell script which installs a program.  This is used if the
-     configure script can not find an install binary.
-
-`ltconfig'
-     Used by libtool.  This is a shell script which configures libtool
-     for the particular system on which it is used.
-
-`ltmain.sh'
-     Used by libtool.  This is the actual libtool script which is used,
-     after it is configured by `ltconfig' to build a library.
-
-`mdate-sh'
-     A shell script used by an automake generated `Makefile' to pretty
-     print the modification time of a file.  This is used to maintain
-     version numbers for texinfo files.
-
-`missing'
-     A shell script used if some tool is missing entirely.  This is
-     used by an automake generated `Makefile' to avoid certain sorts of
-     timestamp problems.
-
-`mkinstalldirs'
-     A shell script which creates a directory, including all parent
-     directories.  This is used by an automake generated `Makefile'
-     during installation.
-
-`texinfo.tex'
-     Required if you have any texinfo files.  This is used when
-     converting Texinfo files into DVI using `texi2dvi' and TeX.
-
-`ylwrap'
-     A shell script used by an automake generated `Makefile' to run
-     programs like `bison', `yacc', `flex', and `lex'.  These programs
-     default to producing output files with a fixed name, and the
-     `ylwrap' script runs them in a subdirectory to avoid file name
-     conflicts when using a parallel make program.
-
-
-File: configure.info,  Node: Configuration Names,  Next: Cross Compilation Tools,  Prev: Files,  Up: Top
-
-4 Configuration Names
-*********************
-
-The GNU configure system names all systems using a "configuration
-name".  All such names used to be triplets (they may now contain four
-parts in certain cases), and the term "configuration triplet" is still
-seen.
-
-* Menu:
-
-* Configuration Name Definition::	Configuration Name Definition.
-* Using Configuration Names::		Using Configuration Names.
-
-
-File: configure.info,  Node: Configuration Name Definition,  Next: Using Configuration Names,  Up: Configuration Names
-
-4.1 Configuration Name Definition
-=================================
-
-This is a string of the form CPU-MANUFACTURER-OPERATING_SYSTEM.  In
-some cases, this is extended to a four part form:
-CPU-MANUFACTURER-KERNEL-OPERATING_SYSTEM.
-
-   When using a configuration name in a configure option, it is normally
-not necessary to specify an entire name.  In particular, the
-MANUFACTURER field is often omitted, leading to strings such as
-`i386-linux' or `sparc-sunos'.  The shell script `config.sub' will
-translate these shortened strings into the canonical form.  autoconf
-will arrange for `config.sub' to be run automatically when it is needed.
-
-   The fields of a configuration name are as follows:
-
-CPU
-     The type of processor.  This is typically something like `i386' or
-     `sparc'.  More specific variants are used as well, such as
-     `mipsel' to indicate a little endian MIPS processor.
-
-MANUFACTURER
-     A somewhat freeform field which indicates the manufacturer of the
-     system.  This is often simply `unknown'.  Other common strings are
-     `pc' for an IBM PC compatible system, or the name of a workstation
-     vendor, such as `sun'.
-
-OPERATING_SYSTEM
-     The name of the operating system which is run on the system.  This
-     will be something like `solaris2.5' or `irix6.3'.  There is no
-     particular restriction on the version number, and strings like
-     `aix4.1.4.0' are seen.  For an embedded system, which has no
-     operating system, this field normally indicates the type of object
-     file format, such as `elf' or `coff'.
-
-KERNEL
-     This is used mainly for GNU/Linux.  A typical GNU/Linux
-     configuration name is `i586-pc-linux-gnulibc1'.  In this case the
-     kernel, `linux', is separated from the operating system,
-     `gnulibc1'.
-
-   The shell script `config.guess' will normally print the correct
-configuration name for the system on which it is run.  It does by
-running `uname' and by examining other characteristics of the system.
-
-   Because `config.guess' can normally determine the configuration name
-for a machine, it is normally only necessary to specify a configuration
-name when building a cross-compiler or when building using a
-cross-compiler.
-
-
-File: configure.info,  Node: Using Configuration Names,  Prev: Configuration Name Definition,  Up: Configuration Names
-
-4.2 Using Configuration Names
-=============================
-
-A configure script will sometimes have to make a decision based on a
-configuration name.  You will need to do this if you have to compile
-code differently based on something which can not be tested using a
-standard autoconf feature test.
-
-   It is normally better to test for particular features, rather than to
-test for a particular system.  This is because as Unix evolves,
-different systems copy features from one another.  Even if you need to
-determine whether the feature is supported based on a configuration
-name, you should define a macro which describes the feature, rather than
-defining a macro which describes the particular system you are on.
-
-   Testing for a particular system is normally done using a case
-statement in `configure.in'.  The case statement might look something
-like the following, assuming that `host' is a shell variable holding a
-canonical configuration name (which will be the case if `configure.in'
-uses the `AC_CANONICAL_HOST' or `AC_CANONICAL_SYSTEM' macro).
-
-     case "${host}" in
-     i[3-7]86-*-linux-gnu*) do something ;;
-     sparc*-sun-solaris2.[56789]*) do something ;;
-     sparc*-sun-solaris*) do something ;;
-     mips*-*-elf*) do something ;;
-     esac
-
-   It is particularly important to use `*' after the operating system
-field, in order to match the version number which will be generated by
-`config.guess'.
-
-   In most cases you must be careful to match a range of processor
-types.  For most processor families, a trailing `*' suffices, as in
-`mips*' above.  For the i386 family, something along the lines of
-`i[3-7]86' suffices at present.  For the m68k family, you will need
-something like `m68*'.  Of course, if you do not need to match on the
-processor, it is simpler to just replace the entire field by a `*', as
-in `*-*-irix*'.
-
-
-File: configure.info,  Node: Cross Compilation Tools,  Next: Canadian Cross,  Prev: Configuration Names,  Up: Top
-
-5 Cross Compilation Tools
-*************************
-
-The GNU configure and build system can be used to build "cross
-compilation" tools.  A cross compilation tool is a tool which runs on
-one system and produces code which runs on another system.
-
-* Menu:
-
-* Cross Compilation Concepts::		Cross Compilation Concepts.
-* Host and Target::			Host and Target.
-* Using the Host Type::			Using the Host Type.
-* Specifying the Target::       	Specifying the Target.
-* Using the Target Type::		Using the Target Type.
-* Cross Tools in the Cygnus Tree::	Cross Tools in the Cygnus Tree
-
-
-File: configure.info,  Node: Cross Compilation Concepts,  Next: Host and Target,  Up: Cross Compilation Tools
-
-5.1 Cross Compilation Concepts
-==============================
-
-A compiler which produces programs which run on a different system is a
-cross compilation compiler, or simply a "cross compiler".  Similarly,
-we speak of cross assemblers, cross linkers, etc.
-
-   In the normal case, a compiler produces code which runs on the same
-system as the one on which the compiler runs.  When it is necessary to
-distinguish this case from the cross compilation case, such a compiler
-is called a "native compiler".  Similarly, we speak of native
-assemblers, etc.
-
-   Although the debugger is not strictly speaking a compilation tool,
-it is nevertheless meaningful to speak of a cross debugger: a debugger
-which is used to debug code which runs on another system.  Everything
-that is said below about configuring cross compilation tools applies to
-the debugger as well.
-
-
-File: configure.info,  Node: Host and Target,  Next: Using the Host Type,  Prev: Cross Compilation Concepts,  Up: Cross Compilation Tools
-
-5.2 Host and Target
-===================
-
-When building cross compilation tools, there are two different systems
-involved: the system on which the tools will run, and the system for
-which the tools generate code.
-
-   The system on which the tools will run is called the "host" system.
-
-   The system for which the tools generate code is called the "target"
-system.
-
-   For example, suppose you have a compiler which runs on a GNU/Linux
-system and generates ELF programs for a MIPS embedded system.  In this
-case the GNU/Linux system is the host, and the MIPS ELF system is the
-target.  Such a compiler could be called a GNU/Linux cross MIPS ELF
-compiler, or, equivalently, a `i386-linux-gnu' cross `mips-elf'
-compiler.
-
-   Naturally, most programs are not cross compilation tools.  For those
-programs, it does not make sense to speak of a target.  It only makes
-sense to speak of a target for tools like `gcc' or the `binutils' which
-actually produce running code.  For example, it does not make sense to
-speak of the target of a tool like `bison' or `make'.
-
-   Most cross compilation tools can also serve as native tools.  For a
-native compilation tool, it is still meaningful to speak of a target.
-For a native tool, the target is the same as the host.  For example, for
-a GNU/Linux native compiler, the host is GNU/Linux, and the target is
-also GNU/Linux.
-
-
-File: configure.info,  Node: Using the Host Type,  Next: Specifying the Target,  Prev: Host and Target,  Up: Cross Compilation Tools
-
-5.3 Using the Host Type
-=======================
-
-In almost all cases the host system is the system on which you run the
-`configure' script, and on which you build the tools (for the case when
-they differ, *note Canadian Cross::).
-
-   If your configure script needs to know the configuration name of the
-host system, and the package is not a cross compilation tool and
-therefore does not have a target, put `AC_CANONICAL_HOST' in
-`configure.in'.  This macro will arrange to define a few shell
-variables when the `configure' script is run.
-
-`host'
-     The canonical configuration name of the host.  This will normally
-     be determined by running the `config.guess' shell script, although
-     the user is permitted to override this by using an explicit
-     `--host' option.
-
-`host_alias'
-     In the unusual case that the user used an explicit `--host' option,
-     this will be the argument to `--host'.  In the normal case, this
-     will be the same as the `host' variable.
-
-`host_cpu'
-`host_vendor'
-`host_os'
-     The first three parts of the canonical configuration name.
-
-   The shell variables may be used by putting shell code in
-`configure.in'.  For an example, see *Note Using Configuration Names::.
-
-
-File: configure.info,  Node: Specifying the Target,  Next: Using the Target Type,  Prev: Using the Host Type,  Up: Cross Compilation Tools
-
-5.4 Specifying the Target
-=========================
-
-By default, the `configure' script will assume that the target is the
-same as the host.  This is the more common case; for example, it leads
-to a native compiler rather than a cross compiler.
-
-   If you want to build a cross compilation tool, you must specify the
-target explicitly by using the `--target' option when you run
-`configure'.  The argument to `--target' is the configuration name of
-the system for which you wish to generate code.  *Note Configuration
-Names::.
-
-   For example, to build tools which generate code for a MIPS ELF
-embedded system, you would use `--target mips-elf'.
-
-
-File: configure.info,  Node: Using the Target Type,  Next: Cross Tools in the Cygnus Tree,  Prev: Specifying the Target,  Up: Cross Compilation Tools
-
-5.5 Using the Target Type
-=========================
-
-When writing `configure.in' for a cross compilation tool, you will need
-to use information about the target.  To do this, put
-`AC_CANONICAL_SYSTEM' in `configure.in'.
-
-   `AC_CANONICAL_SYSTEM' will look for a `--target' option and
-canonicalize it using the `config.sub' shell script.  It will also run
-`AC_CANONICAL_HOST' (*note Using the Host Type::).
-
-   The target type will be recorded in the following shell variables.
-Note that the host versions of these variables will also be defined by
-`AC_CANONICAL_HOST'.
-
-`target'
-     The canonical configuration name of the target.
-
-`target_alias'
-     The argument to the `--target' option.  If the user did not specify
-     a `--target' option, this will be the same as `host_alias'.
-
-`target_cpu'
-`target_vendor'
-`target_os'
-     The first three parts of the canonical target configuration name.
-
-   Note that if `host' and `target' are the same string, you can assume
-a native configuration.  If they are different, you can assume a cross
-configuration.
-
-   It is arguably possible for `host' and `target' to represent the
-same system, but for the strings to not be identical.  For example, if
-`config.guess' returns `sparc-sun-sunos4.1.4', and somebody configures
-with `--target sparc-sun-sunos4.1', then the slight differences between
-the two versions of SunOS may be unimportant for your tool.  However,
-in the general case it can be quite difficult to determine whether the
-differences between two configuration names are significant or not.
-Therefore, by convention, if the user specifies a `--target' option
-without specifying a `--host' option, it is assumed that the user wants
-to configure a cross compilation tool.
-
-   The variables `target' and `target_alias' should be handled
-differently.
-
-   In general, whenever the user may actually see a string,
-`target_alias' should be used.  This includes anything which may appear
-in the file system, such as a directory name or part of a tool name.
-It also includes any tool output, unless it is clearly labelled as the
-canonical target configuration name.  This permits the user to use the
-`--target' option to specify how the tool will appear to the outside
-world.
-
-   On the other hand, when checking for characteristics of the target
-system, `target' should be used.  This is because a wide variety of
-`--target' options may map into the same canonical configuration name.
-You should not attempt to duplicate the canonicalization done by
-`config.sub' in your own code.
-
-   By convention, cross tools are installed with a prefix of the
-argument used with the `--target' option, also known as `target_alias'
-(*note Using the Target Type::).  If the user does not use the
-`--target' option, and thus is building a native tool, no prefix is
-used.
-
-   For example, if gcc is configured with `--target mips-elf', then the
-installed binary will be named `mips-elf-gcc'.  If gcc is configured
-without a `--target' option, then the installed binary will be named
-`gcc'.
-
-   The autoconf macro `AC_ARG_PROGRAM' will handle this for you.  If
-you are using automake, no more need be done; the programs will
-automatically be installed with the correct prefixes.  Otherwise, see
-the autoconf documentation for `AC_ARG_PROGRAM'.
-
-
-File: configure.info,  Node: Cross Tools in the Cygnus Tree,  Prev: Using the Target Type,  Up: Cross Compilation Tools
-
-5.6 Cross Tools in the Cygnus Tree
-==================================
-
-The Cygnus tree is used for various packages including gdb, the GNU
-binutils, and egcs.  It is also, of course, used for Cygnus releases.
-
-   In the Cygnus tree, the top level `configure' script uses the old
-Cygnus configure system, not autoconf.  The top level `Makefile.in' is
-written to build packages based on what is in the source tree, and
-supports building a large number of tools in a single
-`configure'/`make' step.
-
-   The Cygnus tree may be configured with a `--target' option.  The
-`--target' option applies recursively to every subdirectory, and
-permits building an entire set of cross tools at once.
-
-* Menu:
-
-* Host and Target Libraries::		Host and Target Libraries.
-* Target Library Configure Scripts::	Target Library Configure Scripts.
-* Make Targets in Cygnus Tree::         Make Targets in Cygnus Tree.
-* Target libiberty::			Target libiberty
-
-
-File: configure.info,  Node: Host and Target Libraries,  Next: Target Library Configure Scripts,  Up: Cross Tools in the Cygnus Tree
-
-5.6.1 Host and Target Libraries
--------------------------------
-
-The Cygnus tree distinguishes host libraries from target libraries.
-
-   Host libraries are built with the compiler used to build the programs
-which run on the host, which is called the host compiler.  This includes
-libraries such as `bfd' and `tcl'.  These libraries are built with the
-host compiler, and are linked into programs like the binutils or gcc
-which run on the host.
-
-   Target libraries are built with the target compiler.  If gcc is
-present in the source tree, then the target compiler is the gcc that is
-built using the host compiler.  Target libraries are libraries such as
-`newlib' and `libstdc++'.  These libraries are not linked into the host
-programs, but are instead made available for use with programs built
-with the target compiler.
-
-   For the rest of this section, assume that gcc is present in the
-source tree, so that it will be used to build the target libraries.
-
-   There is a complication here.  The configure process needs to know
-which compiler you are going to use to build a tool; otherwise, the
-feature tests will not work correctly.  The Cygnus tree handles this by
-not configuring the target libraries until the target compiler is
-built.  In order to permit everything to build using a single
-`configure'/`make', the configuration of the target libraries is
-actually triggered during the make step.
-
-   When the target libraries are configured, the `--target' option is
-not used.  Instead, the `--host' option is used with the argument of
-the `--target' option for the overall configuration.  If no `--target'
-option was used for the overall configuration, the `--host' option will
-be passed with the output of the `config.guess' shell script.  Any
-`--build' option is passed down unchanged.
-
-   This translation of configuration options is done because since the
-target libraries are compiled with the target compiler, they are being
-built in order to run on the target of the overall configuration.  By
-the definition of host, this means that their host system is the same as
-the target system of the overall configuration.
-
-   The same process is used for both a native configuration and a cross
-configuration.  Even when using a native configuration, the target
-libraries will be configured and built using the newly built compiler.
-This is particularly important for the C++ libraries, since there is no
-reason to assume that the C++ compiler used to build the host tools (if
-there even is one) uses the same ABI as the g++ compiler which will be
-used to build the target libraries.
-
-   There is one difference between a native configuration and a cross
-configuration.  In a native configuration, the target libraries are
-normally configured and built as siblings of the host tools.  In a cross
-configuration, the target libraries are normally built in a subdirectory
-whose name is the argument to `--target'.  This is mainly for
-historical reasons.
-
-   To summarize, running `configure' in the Cygnus tree configures all
-the host libraries and tools, but does not configure any of the target
-libraries.  Running `make' then does the following steps:
-
-   * Build the host libraries.
-
-   * Build the host programs, including gcc.  Note that we call gcc
-     both a host program (since it runs on the host) and a target
-     compiler (since it generates code for the target).
-
-   * Using the newly built target compiler, configure the target
-     libraries.
-
-   * Build the target libraries.
-
-   The steps need not be done in precisely this order, since they are
-actually controlled by `Makefile' targets.
-
-
-File: configure.info,  Node: Target Library Configure Scripts,  Next: Make Targets in Cygnus Tree,  Prev: Host and Target Libraries,  Up: Cross Tools in the Cygnus Tree
-
-5.6.2 Target Library Configure Scripts
---------------------------------------
-
-There are a few things you must know in order to write a configure
-script for a target library.  This is just a quick sketch, and beginners
-shouldn't worry if they don't follow everything here.
-
-   The target libraries are configured and built using a newly built
-target compiler.  There may not be any startup files or libraries for
-this target compiler.  In fact, those files will probably be built as
-part of some target library, which naturally means that they will not
-exist when your target library is configured.
-
-   This means that the configure script for a target library may not use
-any test which requires doing a link.  This unfortunately includes many
-useful autoconf macros, such as `AC_CHECK_FUNCS'.  autoconf macros
-which do a compile but not a link, such as `AC_CHECK_HEADERS', may be
-used.
-
-   This is a severe restriction, but normally not a fatal one, as target
-libraries can often assume the presence of other target libraries, and
-thus know which functions will be available.
-
-   As of this writing, the autoconf macro `AC_PROG_CC' does a link to
-make sure that the compiler works.  This may fail in a target library,
-so target libraries must use a different set of macros to locate the
-compiler.  See the `configure.in' file in a directory like `libiberty'
-or `libgloss' for an example.
-
-   As noted in the previous section, target libraries are sometimes
-built in directories which are siblings to the host tools, and are
-sometimes built in a subdirectory.  The `--with-target-subdir' configure
-option will be passed when the library is configured.  Its value will be
-an empty string if the target library is a sibling.  Its value will be
-the name of the subdirectory if the target library is in a subdirectory.
-
-   If the overall build is not a native build (i.e., the overall
-configure used the `--target' option), then the library will be
-configured with the `--with-cross-host' option.  The value of this
-option will be the host system of the overall build.  Recall that the
-host system of the library will be the target of the overall build.  If
-the overall build is a native build, the `--with-cross-host' option
-will not be used.
-
-   A library which can be built both standalone and as a target library
-may want to install itself into different directories depending upon the
-case.  When built standalone, or when built native, the library should
-be installed in `$(libdir)'.  When built as a target library which is
-not native, the library should be installed in `$(tooldir)/lib'.  The
-`--with-cross-host' option may be used to distinguish these cases.
-
-   This same test of `--with-cross-host' may be used to see whether it
-is OK to use link tests in the configure script.  If the
-`--with-cross-host' option is not used, then the library is being built
-either standalone or native, and a link should work.
-
-
-File: configure.info,  Node: Make Targets in Cygnus Tree,  Next: Target libiberty,  Prev: Target Library Configure Scripts,  Up: Cross Tools in the Cygnus Tree
-
-5.6.3 Make Targets in Cygnus Tree
----------------------------------
-
-The top level `Makefile' in the Cygnus tree defines targets for every
-known subdirectory.
-
-   For every subdirectory DIR which holds a host library or program,
-the `Makefile' target `all-DIR' will build that library or program.
-
-   There are dependencies among host tools.  For example, building gcc
-requires first building gas, because the gcc build process invokes the
-target assembler.  These dependencies are reflected in the top level
-`Makefile'.
-
-   For every subdirectory DIR which holds a target library, the
-`Makefile' target `configure-target-DIR' will configure that library.
-The `Makefile' target `all-target-DIR' will build that library.
-
-   Every `configure-target-DIR' target depends upon `all-gcc', since
-gcc, the target compiler, is required to configure the tool.  Every
-`all-target-DIR' target depends upon the corresponding
-`configure-target-DIR' target.
-
-   There are several other targets which may be of interest for each
-directory: `install-DIR', `clean-DIR', and `check-DIR'.  There are also
-corresponding `target' versions of these for the target libraries ,
-such as `install-target-DIR'.
-
-
-File: configure.info,  Node: Target libiberty,  Prev: Make Targets in Cygnus Tree,  Up: Cross Tools in the Cygnus Tree
-
-5.6.4 Target libiberty
-----------------------
-
-The `libiberty' subdirectory is currently a special case, in that it is
-the only directory which is built both using the host compiler and
-using the target compiler.
-
-   This is because the files in `libiberty' are used when building the
-host tools, and they are also incorporated into the `libstdc++' target
-library as support code.
-
-   This duality does not pose any particular difficulties.  It means
-that there are targets for both `all-libiberty' and
-`all-target-libiberty'.
-
-   In a native configuration, when target libraries are not built in a
-subdirectory, the same objects are normally used as both the host build
-and the target build.  This is normally OK, since libiberty contains
-only C code, and in a native configuration the results of the host
-compiler and the target compiler are normally interoperable.
-
-   Irix 6 is again an exception here, since the SGI native compiler
-defaults to using the `O32' ABI, and gcc defaults to using the `N32'
-ABI.  On Irix 6, the target libraries are built in a subdirectory even
-for a native configuration, avoiding this problem.
-
-   There are currently no other libraries built for both the host and
-the target, but there is no conceptual problem with adding more.
-
-
-File: configure.info,  Node: Canadian Cross,  Next: Cygnus Configure,  Prev: Cross Compilation Tools,  Up: Top
-
-6 Canadian Cross
-****************
-
-It is possible to use the GNU configure and build system to build a
-program which will run on a system which is different from the system on
-which the tools are built.  In other words, it is possible to build
-programs using a cross compiler.
-
-   This is referred to as a "Canadian Cross".
-
-* Menu:
-
-* Canadian Cross Example::		Canadian Cross Example.
-* Canadian Cross Concepts::		Canadian Cross Concepts.
-* Build Cross Host Tools::		Build Cross Host Tools.
-* Build and Host Options::		Build and Host Options.
-* CCross not in Cygnus Tree::		Canadian Cross not in Cygnus Tree.
-* CCross in Cygnus Tree::		Canadian Cross in Cygnus Tree.
-* Supporting Canadian Cross::		Supporting Canadian Cross.
-
-
-File: configure.info,  Node: Canadian Cross Example,  Next: Canadian Cross Concepts,  Up: Canadian Cross
-
-6.1 Canadian Cross Example
-==========================
-
-Here is an example of a Canadian Cross.
-
-   While running on a GNU/Linux, you can build a program which will run
-on a Solaris system.  You would use a GNU/Linux cross Solaris compiler
-to build the program.
-
-   Of course, you could not run the resulting program on your GNU/Linux
-system.  You would have to copy it over to a Solaris system before you
-would run it.
-
-   Of course, you could also simply build the programs on the Solaris
-system in the first place.  However, perhaps the Solaris system is not
-available for some reason; perhaps you actually don't have one, but you
-want to build the tools for somebody else to use.  Or perhaps your
-GNU/Linux system is much faster than your Solaris system.
-
-   A Canadian Cross build is most frequently used when building
-programs to run on a non-Unix system, such as DOS or Windows.  It may
-be simpler to configure and build on a Unix system than to support the
-configuration machinery on a non-Unix system.
-
-
-File: configure.info,  Node: Canadian Cross Concepts,  Next: Build Cross Host Tools,  Prev: Canadian Cross Example,  Up: Canadian Cross
-
-6.2 Canadian Cross Concepts
-===========================
-
-When building a Canadian Cross, there are at least two different systems
-involved: the system on which the tools are being built, and the system
-on which the tools will run.
-
-   The system on which the tools are being built is called the "build"
-system.
-
-   The system on which the tools will run is called the host system.
-
-   For example, if you are building a Solaris program on a GNU/Linux
-system, as in the previous section, the build system would be GNU/Linux,
-and the host system would be Solaris.
-
-   It is, of course, possible to build a cross compiler using a Canadian
-Cross (i.e., build a cross compiler using a cross compiler).  In this
-case, the system for which the resulting cross compiler generates code
-is called the target system.  (For a more complete discussion of host
-and target systems, *note Host and Target::).
-
-   An example of building a cross compiler using a Canadian Cross would
-be building a Windows cross MIPS ELF compiler on a GNU/Linux system.  In
-this case the build system would be GNU/Linux, the host system would be
-Windows, and the target system would be MIPS ELF.
-
-   The name Canadian Cross comes from the case when the build, host, and
-target systems are all different.  At the time that these issues were
-all being hashed out, Canada had three national political parties.
-
-
-File: configure.info,  Node: Build Cross Host Tools,  Next: Build and Host Options,  Prev: Canadian Cross Concepts,  Up: Canadian Cross
-
-6.3 Build Cross Host Tools
-==========================
-
-In order to configure a program for a Canadian Cross build, you must
-first build and install the set of cross tools you will use to build the
-program.
-
-   These tools will be build cross host tools.  That is, they will run
-on the build system, and will produce code that runs on the host system.
-
-   It is easy to confuse the meaning of build and host here.  Always
-remember that the build system is where you are doing the build, and the
-host system is where the resulting program will run.  Therefore, you
-need a build cross host compiler.
-
-   In general, you must have a complete cross environment in order to do
-the build.  This normally means a cross compiler, cross assembler, and
-so forth, as well as libraries and include files for the host system.
-
-
-File: configure.info,  Node: Build and Host Options,  Next: CCross not in Cygnus Tree,  Prev: Build Cross Host Tools,  Up: Canadian Cross
-
-6.4 Build and Host Options
-==========================
-
-When you run `configure', you must use both the `--build' and `--host'
-options.
-
-   The `--build' option is used to specify the configuration name of
-the build system.  This can normally be the result of running the
-`config.guess' shell script, and it is reasonable to use
-`--build=`config.guess`'.
-
-   The `--host' option is used to specify the configuration name of the
-host system.
-
-   As we explained earlier, `config.guess' is used to set the default
-value for the `--host' option (*note Using the Host Type::).  We can
-now see that since `config.guess' returns the type of system on which
-it is run, it really identifies the build system.  Since the host
-system is normally the same as the build system (i.e., people do not
-normally build using a cross compiler), it is reasonable to use the
-result of `config.guess' as the default for the host system when the
-`--host' option is not used.
-
-   It might seem that if the `--host' option were used without the
-`--build' option that the configure script could run `config.guess' to
-determine the build system, and presume a Canadian Cross if the result
-of `config.guess' differed from the `--host' option.  However, for
-historical reasons, some configure scripts are routinely run using an
-explicit `--host' option, rather than using the default from
-`config.guess'.  As noted earlier, it is difficult or impossible to
-reliably compare configuration names (*note Using the Target Type::).
-Therefore, by convention, if the `--host' option is used, but the
-`--build' option is not used, then the build system defaults to the
-host system.
-
-
-File: configure.info,  Node: CCross not in Cygnus Tree,  Next: CCross in Cygnus Tree,  Prev: Build and Host Options,  Up: Canadian Cross
-
-6.5 Canadian Cross not in Cygnus Tree.
-======================================
-
-If you are not using the Cygnus tree, you must explicitly specify the
-cross tools which you want to use to build the program.  This is done by
-setting environment variables before running the `configure' script.
-
-   You must normally set at least the environment variables `CC', `AR',
-and `RANLIB' to the cross tools which you want to use to build.
-
-   For some programs, you must set additional cross tools as well, such
-as `AS', `LD', or `NM'.
-
-   You would set these environment variables to the build cross tools
-which you are going to use.
-
-   For example, if you are building a Solaris program on a GNU/Linux
-system, and your GNU/Linux cross Solaris compiler were named
-`solaris-gcc', then you would set the environment variable `CC' to
-`solaris-gcc'.
-
-
-File: configure.info,  Node: CCross in Cygnus Tree,  Next: Supporting Canadian Cross,  Prev: CCross not in Cygnus Tree,  Up: Canadian Cross
-
-6.6 Canadian Cross in Cygnus Tree
-=================================
-
-This section describes configuring and building a Canadian Cross when
-using the Cygnus tree.
-
-* Menu:
-
-* Standard Cygnus CCross::	Building a Normal Program.
-* Cross Cygnus CCross::		Building a Cross Program.
-
-
-File: configure.info,  Node: Standard Cygnus CCross,  Next: Cross Cygnus CCross,  Up: CCross in Cygnus Tree
-
-6.6.1 Building a Normal Program
--------------------------------
-
-When configuring a Canadian Cross in the Cygnus tree, all the
-appropriate environment variables are automatically set to `HOST-TOOL',
-where HOST is the value used for the `--host' option, and TOOL is the
-name of the tool (e.g., `gcc', `as', etc.).  These tools must be on
-your `PATH'.
-
-   Adding a prefix of HOST will give the usual name for the build cross
-host tools.  To see this, consider that when these cross tools were
-built, they were configured to run on the build system and to produce
-code for the host system.  That is, they were configured with a
-`--target' option that is the same as the system which we are now
-calling the host.  Recall that the default name for installed cross
-tools uses the target system as a prefix (*note Using the Target
-Type::).  Since that is the system which we are now calling the host,
-HOST is the right prefix to use.
-
-   For example, if you configure with `--build=i386-linux-gnu' and
-`--host=solaris', then the Cygnus tree will automatically default to
-using the compiler `solaris-gcc'.  You must have previously built and
-installed this compiler, probably by doing a build with no `--host'
-option and with a `--target' option of `solaris'.
-
-
-File: configure.info,  Node: Cross Cygnus CCross,  Prev: Standard Cygnus CCross,  Up: CCross in Cygnus Tree
-
-6.6.2 Building a Cross Program
-------------------------------
-
-There are additional considerations if you want to build a cross
-compiler, rather than a native compiler, in the Cygnus tree using a
-Canadian Cross.
-
-   When you build a cross compiler using the Cygnus tree, then the
-target libraries will normally be built with the newly built target
-compiler (*note Host and Target Libraries::).  However, this will not
-work when building with a Canadian Cross.  This is because the newly
-built target compiler will be a program which runs on the host system,
-and therefore will not be able to run on the build system.
-
-   Therefore, when building a cross compiler with the Cygnus tree, you
-must first install a set of build cross target tools.  These tools will
-be used when building the target libraries.
-
-   Note that this is not a requirement of a Canadian Cross in general.
-For example, it would be possible to build just the host cross target
-tools on the build system, to copy the tools to the host system, and to
-build the target libraries on the host system.  The requirement for
-build cross target tools is imposed by the Cygnus tree, which expects
-to be able to build both host programs and target libraries in a single
-`configure'/`make' step.  Because it builds these in a single step, it
-expects to be able to build the target libraries on the build system,
-which means that it must use a build cross target toolchain.
-
-   For example, suppose you want to build a Windows cross MIPS ELF
-compiler on a GNU/Linux system.  You must have previously installed
-both a GNU/Linux cross Windows compiler and a GNU/Linux cross MIPS ELF
-compiler.
-
-   In order to build the Windows (configuration name `i386-cygwin32')
-cross MIPS ELF (configure name `mips-elf') compiler, you might execute
-the following commands (long command lines are broken across lines with
-a trailing backslash as a continuation character).
-
-     mkdir linux-x-cygwin32
-     cd linux-x-cygwin32
-     SRCDIR/configure --target i386-cygwin32 --prefix=INSTALLDIR \
-       --exec-prefix=INSTALLDIR/H-i386-linux
-     make
-     make install
-     cd ..
-     mkdir linux-x-mips-elf
-     cd linux-x-mips-elf
-     SRCDIR/configure --target mips-elf --prefix=INSTALLDIR \
-       --exec-prefix=INSTALLDIR/H-i386-linux
-     make
-     make install
-     cd ..
-     mkdir cygwin32-x-mips-elf
-     cd cygwin32-x-mips-elf
-     SRCDIR/configure --build=i386-linux-gnu --host=i386-cygwin32 \
-       --target=mips-elf --prefix=WININSTALLDIR \
-       --exec-prefix=WININSTALLDIR/H-i386-cygwin32
-     make
-     make install
-
-   You would then copy the contents of WININSTALLDIR over to the
-Windows machine, and run the resulting programs.
-
-
-File: configure.info,  Node: Supporting Canadian Cross,  Prev: CCross in Cygnus Tree,  Up: Canadian Cross
-
-6.7 Supporting Canadian Cross
-=============================
-
-If you want to make it possible to build a program you are developing
-using a Canadian Cross, you must take some care when writing your
-configure and make rules.  Simple cases will normally work correctly.
-However, it is not hard to write configure and make tests which will
-fail in a Canadian Cross.
-
-* Menu:
-
-* CCross in Configure::		Supporting Canadian Cross in Configure Scripts.
-* CCross in Make::		Supporting Canadian Cross in Makefiles.
-
-
-File: configure.info,  Node: CCross in Configure,  Next: CCross in Make,  Up: Supporting Canadian Cross
-
-6.7.1 Supporting Canadian Cross in Configure Scripts
-----------------------------------------------------
-
-In a `configure.in' file, after calling `AC_PROG_CC', you can find out
-whether this is a Canadian Cross configure by examining the shell
-variable `cross_compiling'.  In a Canadian Cross, which means that the
-compiler is a cross compiler, `cross_compiling' will be `yes'.  In a
-normal configuration, `cross_compiling' will be `no'.
-
-   You ordinarily do not need to know the type of the build system in a
-configure script.  However, if you do need that information, you can get
-it by using the macro `AC_CANONICAL_SYSTEM', the same macro that is
-used to determine the target system.  This macro will set the variables
-`build', `build_alias', `build_cpu', `build_vendor', and `build_os',
-which correspond to the similar `target' and `host' variables, except
-that they describe the build system.
-
-   When writing tests in `configure.in', you must remember that you
-want to test the host environment, not the build environment.
-
-   Macros like `AC_CHECK_FUNCS' which use the compiler will test the
-host environment.  That is because the tests will be done by running the
-compiler, which is actually a build cross host compiler.  If the
-compiler can find the function, that means that the function is present
-in the host environment.
-
-   Tests like `test -f /dev/ptyp0', on the other hand, will test the
-build environment.  Remember that the configure script is running on the
-build system, not the host system.  If your configure scripts examines
-files, those files will be on the build system.  Whatever you determine
-based on those files may or may not be the case on the host system.
-
-   Most autoconf macros will work correctly for a Canadian Cross.  The
-main exception is `AC_TRY_RUN'.  This macro tries to compile and run a
-test program.  This will fail in a Canadian Cross, because the program
-will be compiled for the host system, which means that it will not run
-on the build system.
-
-   The `AC_TRY_RUN' macro provides an optional argument to tell the
-configure script what to do in a Canadian Cross.  If that argument is
-not present, you will get a warning when you run `autoconf':
-     warning: AC_TRY_RUN called without default to allow cross compiling
-   This tells you that the resulting `configure' script will not work
-with a Canadian Cross.
-
-   In some cases while it may better to perform a test at configure
-time, it is also possible to perform the test at run time.  In such a
-case you can use the cross compiling argument to `AC_TRY_RUN' to tell
-your program that the test could not be performed at configure time.
-
-   There are a few other autoconf macros which will not work correctly
-with a Canadian Cross: a partial list is `AC_FUNC_GETPGRP',
-`AC_FUNC_SETPGRP', `AC_FUNC_SETVBUF_REVERSED', and
-`AC_SYS_RESTARTABLE_SYSCALLS'.  The `AC_CHECK_SIZEOF' macro is
-generally not very useful with a Canadian Cross; it permits an optional
-argument indicating the default size, but there is no way to know what
-the correct default should be.
-
-
-File: configure.info,  Node: CCross in Make,  Prev: CCross in Configure,  Up: Supporting Canadian Cross
-
-6.7.2 Supporting Canadian Cross in Makefiles.
----------------------------------------------
-
-The main Canadian Cross issue in a `Makefile' arises when you want to
-use a subsidiary program to generate code or data which you will then
-include in your real program.
-
-   If you compile this subsidiary program using `$(CC)' in the usual
-way, you will not be able to run it.  This is because `$(CC)' will
-build a program for the host system, but the program is being built on
-the build system.
-
-   You must instead use a compiler for the build system, rather than the
-host system.  In the Cygnus tree, this make variable `$(CC_FOR_BUILD)'
-will hold a compiler for the build system.
-
-   Note that you should not include `config.h' in a file you are
-compiling with `$(CC_FOR_BUILD)'.  The `configure' script will build
-`config.h' with information for the host system.  However, you are
-compiling the file using a compiler for the build system (a native
-compiler).  Subsidiary programs are normally simple filters which do no
-user interaction, and it is normally possible to write them in a highly
-portable fashion so that the absence of `config.h' is not crucial.
-
-   The gcc `Makefile.in' shows a complex situation in which certain
-files, such as `rtl.c', must be compiled into both subsidiary programs
-run on the build system and into the final program.  This approach may
-be of interest for advanced build system hackers.  Note that the build
-system compiler is rather confusingly called `HOST_CC'.
-
-
-File: configure.info,  Node: Cygnus Configure,  Next: Multilibs,  Prev: Canadian Cross,  Up: Top
-
-7 Cygnus Configure
-******************
-
-The Cygnus configure script predates autoconf.  All of its interesting
-features have been incorporated into autoconf.  No new programs should
-be written to use the Cygnus configure script.
-
-   However, the Cygnus configure script is still used in a few places:
-at the top of the Cygnus tree and in a few target libraries in the
-Cygnus tree.  Until those uses have been replaced with autoconf, some
-brief notes are appropriate here.  This is not complete documentation,
-but it should be possible to use this as a guide while examining the
-scripts themselves.
-
-* Menu:
-
-* Cygnus Configure Basics::		Cygnus Configure Basics.
-* Cygnus Configure in C++ Libraries::	Cygnus Configure in C++ Libraries.
-
-
-File: configure.info,  Node: Cygnus Configure Basics,  Next: Cygnus Configure in C++ Libraries,  Up: Cygnus Configure
-
-7.1 Cygnus Configure Basics
-===========================
-
-Cygnus configure does not use any generated files; there is no program
-corresponding to `autoconf'.  Instead, there is a single shell script
-named `configure' which may be found at the top of the Cygnus tree.
-This shell script was written by hand; it was not generated by
-autoconf, and it is incorrect, and indeed harmful, to run `autoconf' in
-the top level of a Cygnus tree.
-
-   Cygnus configure works in a particular directory by examining the
-file `configure.in' in that directory.  That file is broken into four
-separate shell scripts.
-
-   The first is the contents of `configure.in' up to a line that starts
-with `# per-host:'.  This is the common part.
-
-   The second is the rest of `configure.in' up to a line that starts
-with `# per-target:'.  This is the per host part.
-
-   The third is the rest of `configure.in' up to a line that starts
-with `# post-target:'.  This is the per target part.
-
-   The fourth is the remainder of `configure.in'.  This is the post
-target part.
-
-   If any of these comment lines are missing, the corresponding shell
-script is empty.
-
-   Cygnus configure will first execute the common part.  This must set
-the shell variable `srctrigger' to the name of a source file, to
-confirm that Cygnus configure is looking at the right directory.  This
-may set the shell variables `package_makefile_frag' and
-`package_makefile_rules_frag'.
-
-   Cygnus configure will next set the `build' and `host' shell
-variables, and execute the per host part.  This may set the shell
-variable `host_makefile_frag'.
-
-   Cygnus configure will next set the `target' variable, and execute
-the per target part.  This may set the shell variable
-`target_makefile_frag'.
-
-   Any of these scripts may set the `subdirs' shell variable.  This
-variable is a list of subdirectories where a `Makefile.in' file may be
-found.  Cygnus configure will automatically look for a `Makefile.in'
-file in the current directory.  The `subdirs' shell variable is not
-normally used, and I believe that the only directory which uses it at
-present is `newlib'.
-
-   For each `Makefile.in', Cygnus configure will automatically create a
-`Makefile' by adding definitions for `make' variables such as `host'
-and `target', and automatically editing the values of `make' variables
-such as `prefix' if they are present.
-
-   Also, if any of the `makefile_frag' shell variables are set, Cygnus
-configure will interpret them as file names relative to either the
-working directory or the source directory, and will read the contents of
-the file into the generated `Makefile'.  The file contents will be read
-in after the first line in `Makefile.in' which starts with `####'.
-
-   These `Makefile' fragments are used to customize behaviour for a
-particular host or target.  They serve to select particular files to
-compile, and to define particular preprocessor macros by providing
-values for `make' variables which are then used during compilation.
-Cygnus configure, unlike autoconf, normally does not do feature tests,
-and normally requires support to be added manually for each new host.
-
-   The `Makefile' fragment support is similar to the autoconf
-`AC_SUBST_FILE' macro.
-
-   After creating each `Makefile', the post target script will be run
-(i.e., it may be run several times).  This script may further customize
-the `Makefile'.  When it is run, the shell variable `Makefile' will
-hold the name of the `Makefile', including the appropriate directory
-component.
-
-   Like an autoconf generated `configure' script, Cygnus configure will
-create a file named `config.status' which, when run, will automatically
-recreate the configuration.  The `config.status' file will simply
-execute the Cygnus configure script again with the appropriate
-arguments.
-
-   Any of the parts of `configure.in' may set the shell variables
-`files' and `links'.  Cygnus configure will set up symlinks from the
-names in `links' to the files named in `files'.  This is similar to the
-autoconf `AC_LINK_FILES' macro.
-
-   Finally, any of the parts of `configure.in' may set the shell
-variable `configdirs' to a set of subdirectories.  If it is set, Cygnus
-configure will recursively run the configure process in each
-subdirectory.  If the subdirectory uses Cygnus configure, it will
-contain a `configure.in' file but no `configure' file, in which case
-Cygnus configure will invoke itself recursively.  If the subdirectory
-has a `configure' file, Cygnus configure assumes that it is an autoconf
-generated `configure' script, and simply invokes it directly.
-
-
-File: configure.info,  Node: Cygnus Configure in C++ Libraries,  Prev: Cygnus Configure Basics,  Up: Cygnus Configure
-
-7.2 Cygnus Configure in C++ Libraries
-=====================================
-
-The C++ library configure system, written by Per Bothner, deserves
-special mention.  It uses Cygnus configure, but it does feature testing
-like that done by autoconf generated `configure' scripts.  This
-approach is used in the libraries `libio', `libstdc++', and `libg++'.
-
-   Most of the `Makefile' information is written out by the shell
-script `libio/config.shared'.  Each `configure.in' file sets certain
-shell variables, and then invokes `config.shared' to create two package
-`Makefile' fragments.  These fragments are then incorporated into the
-resulting `Makefile' by the Cygnus configure script.
-
-   The file `_G_config.h' is created in the `libio' object directory by
-running the shell script `libio/gen-params'.  This shell script uses
-feature tests to define macros and typedefs in `_G_config.h'.
-
-
-File: configure.info,  Node: Multilibs,  Next: FAQ,  Prev: Cygnus Configure,  Up: Top
-
-8 Multilibs
-***********
-
-For some targets gcc may have different processor requirements depending
-upon command line options.  An obvious example is the `-msoft-float'
-option supported on several processors.  This option means that the
-floating point registers are not available, which means that floating
-point operations must be done by calling an emulation subroutine rather
-than by using machine instructions.
-
-   For such options, gcc is often configured to compile target libraries
-twice: once with `-msoft-float' and once without.  When gcc compiles
-target libraries more than once, the resulting libraries are called
-"multilibs".
-
-   Multilibs are not really part of the GNU configure and build system,
-but we discuss them here since they require support in the `configure'
-scripts and `Makefile's used for target libraries.
-
-* Menu:
-
-* Multilibs in gcc::		        Multilibs in gcc.
-* Multilibs in Target Libraries::	Multilibs in Target Libraries.
-
-
-File: configure.info,  Node: Multilibs in gcc,  Next: Multilibs in Target Libraries,  Up: Multilibs
-
-8.1 Multilibs in gcc
-====================
-
-In gcc, multilibs are defined by setting the variable
-`MULTILIB_OPTIONS' in the target `Makefile' fragment.  Several other
-`MULTILIB' variables may also be defined there.  *Note The Target
-Makefile Fragment: (gcc)Target Fragment.
-
-   If you have built gcc, you can see what multilibs it uses by running
-it with the `-print-multi-lib' option.  The output `.;' means that no
-multilibs are used.  In general, the output is a sequence of lines, one
-per multilib.  The first part of each line, up to the `;', is the name
-of the multilib directory.  The second part is a list of compiler
-options separated by `@' characters.
-
-   Multilibs are built in a tree of directories.  The top of the tree,
-represented by `.' in the list of multilib directories, is the default
-library to use when no special compiler options are used.  The
-subdirectories of the tree hold versions of the library to use when
-particular compiler options are used.
-
-
-File: configure.info,  Node: Multilibs in Target Libraries,  Prev: Multilibs in gcc,  Up: Multilibs
-
-8.2 Multilibs in Target Libraries
-=================================
-
-The target libraries in the Cygnus tree are automatically built with
-multilibs.  That means that each library is built multiple times.
-
-   This default is set in the top level `configure.in' file, by adding
-`--enable-multilib' to the list of arguments passed to configure when
-it is run for the target libraries (*note Host and Target Libraries::).
-
-   Each target library uses the shell script `config-ml.in', written by
-Doug Evans, to prepare to build target libraries.  This shell script is
-invoked after the `Makefile' has been created by the `configure'
-script.  If multilibs are not enabled, it does nothing, otherwise it
-modifies the `Makefile' to support multilibs.
-
-   The `config-ml.in' script makes one copy of the `Makefile' for each
-multilib in the appropriate subdirectory.  When configuring in the
-source directory (which is not recommended), it will build a symlink
-tree of the sources in each subdirectory.
-
-   The `config-ml.in' script sets several variables in the various
-`Makefile's.  The `Makefile.in' must have definitions for these
-variables already; `config-ml.in' simply changes the existing values.
-The `Makefile' should use default values for these variables which will
-do the right thing in the subdirectories.
-
-`MULTISRCTOP'
-     `config-ml.in' will set this to a sequence of `../' strings, where
-     the number of strings is the number of multilib levels in the
-     source tree.  The default value should be the empty string.
-
-`MULTIBUILDTOP'
-     `config-ml.in' will set this to a sequence of `../' strings, where
-     the number of strings is number of multilib levels in the object
-     directory.  The default value should be the empty string.  This
-     will differ from `MULTISRCTOP' when configuring in the source tree
-     (which is not recommended).
-
-`MULTIDIRS'
-     In the top level `Makefile' only, `config-ml.in' will set this to
-     the list of multilib subdirectories.  The default value should be
-     the empty string.
-
-`MULTISUBDIR'
-     `config-ml.in' will set this to the installed subdirectory name to
-     use for this subdirectory, with a leading `/'.  The default value
-     shold be the empty string.
-
-`MULTIDO'
-`MULTICLEAN'
-     In the top level `Makefile' only, `config-ml.in' will set these
-     variables to commands to use when doing a recursive make.  These
-     variables should both default to the string `true', so that by
-     default nothing happens.
-
-   All references to the parent of the source directory should use the
-variable `MULTISRCTOP'.  Instead of writing `$(srcdir)/..', you must
-write `$(srcdir)/$(MULTISRCTOP)..'.
-
-   Similarly, references to the parent of the object directory should
-use the variable `MULTIBUILDTOP'.
-
-   In the installation target, the libraries should be installed in the
-subdirectory `MULTISUBDIR'.  Instead of installing
-`$(libdir)/libfoo.a', install `$(libdir)$(MULTISUBDIR)/libfoo.a'.
-
-   The `config-ml.in' script also modifies the top level `Makefile' to
-add `multi-do' and `multi-clean' targets which are used when building
-multilibs.
-
-   The default target of the `Makefile' should include the following
-command:
-     @$(MULTIDO) $(FLAGS_TO_PASS) DO=all multi-do
-   This assumes that `$(FLAGS_TO_PASS)' is defined as a set of
-variables to pass to a recursive invocation of `make'.  This will build
-all the multilibs.  Note that the default value of `MULTIDO' is `true',
-so by default this command will do nothing.  It will only do something
-in the top level `Makefile' if multilibs were enabled.
-
-   The `install' target of the `Makefile' should include the following
-command:
-     @$(MULTIDO) $(FLAGS_TO_PASS) DO=install multi-do
-
-   In general, any operation, other than clean, which should be
-performed on all the multilibs should use a `$(MULTIDO)' line, setting
-the variable `DO' to the target of each recursive call to `make'.
-
-   The `clean' targets (`clean', `mostlyclean', etc.) should use
-`$(MULTICLEAN)'.  For example, the `clean' target should do this:
-     @$(MULTICLEAN) DO=clean multi-clean
-
-
-File: configure.info,  Node: FAQ,  Next: Index,  Prev: Multilibs,  Up: Top
-
-9 Frequently Asked Questions
-****************************
-
-Which do I run first, `autoconf' or `automake'?
-     Except when you first add autoconf or automake support to a
-     package, you shouldn't run either by hand.  Instead, configure
-     with the `--enable-maintainer-mode' option, and let `make' take
-     care of it.
-
-`autoconf' says something about undefined macros.
-     This means that you have macros in your `configure.in' which are
-     not defined by `autoconf'.  You may be using an old version of
-     `autoconf'; try building and installing a newer one.  Make sure the
-     newly installled `autoconf' is first on your `PATH'.  Also, see
-     the next question.
-
-My `configure' script has stuff like `CY_GNU_GETTEXT' in it.
-     This means that you have macros in your `configure.in' which should
-     be defined in your `aclocal.m4' file, but aren't.  This usually
-     means that `aclocal' was not able to appropriate definitions of the
-     macros.  Make sure that you have installed all the packages you
-     need.  In particular, make sure that you have installed libtool
-     (this is where `AM_PROG_LIBTOOL' is defined) and gettext (this is
-     where `CY_GNU_GETTEXT' is defined, at least in the Cygnus version
-     of gettext).
-
-My `Makefile' has `@' characters in it.
-     This may mean that you tried to use an autoconf substitution in
-     your `Makefile.in' without adding the appropriate `AC_SUBST' call
-     to your `configure' script.  Or it may just mean that you need to
-     rebuild `Makefile' in your build directory.  To rebuild `Makefile'
-     from `Makefile.in', run the shell script `config.status' with no
-     arguments.  If you need to force `configure' to run again, first
-     run `config.status --recheck'.  These runs are normally done
-     automatically by `Makefile' targets, but if your `Makefile' has
-     gotten messed up you'll need to help them along.
-
-Why do I have to run both `config.status --recheck' and `config.status'?
-     Normally, you don't; they will be run automatically by `Makefile'
-     targets.  If you do need to run them, use `config.status --recheck'
-     to run the `configure' script again with the same arguments as the
-     first time you ran it.  Use `config.status' (with no arguments) to
-     regenerate all files (`Makefile', `config.h', etc.) based on the
-     results of the configure script.  The two cases are separate
-     because it isn't always necessary to regenerate all the files
-     after running `config.status --recheck'.  The `Makefile' targets
-     generated by automake will use the environment variables
-     `CONFIG_FILES' and `CONFIG_HEADERS' to only regenerate files as
-     they are needed.
-
-What is the Cygnus tree?
-     The Cygnus tree is used for various packages including gdb, the GNU
-     binutils, and egcs.  It is also, of course, used for Cygnus
-     releases.  It is the build system which was developed at Cygnus,
-     using the Cygnus configure script.  It permits building many
-     different packages with a single configure and make.  The
-     configure scripts in the tree are being converted to autoconf, but
-     the general build structure remains intact.
-
-Why do I have to keep rebuilding and reinstalling the tools?
-     I know, it's a pain.  Unfortunately, there are bugs in the tools
-     themselves which need to be fixed, and each time that happens
-     everybody who uses the tools need to reinstall new versions of
-     them.  I don't know if there is going to be a clever fix until the
-     tools stabilize.
-
-Why not just have a Cygnus tree `make' target to update the tools?
-     The tools unfortunately need to be installed before they can be
-     used.  That means that they must be built using an appropriate
-     prefix, and it seems unwise to assume that every configuration
-     uses an appropriate prefix.  It might be possible to make them
-     work in place, or it might be possible to install them in some
-     subdirectory; so far these approaches have not been implemented.
-
-
-File: configure.info,  Node: Index,  Prev: FAQ,  Up: Top
-
-Index
-*****
-
- [index ]
-* Menu:
-
-* --build option:                        Build and Host Options.
-                                                              (line   9)
-* --host option:                         Build and Host Options.
-                                                              (line  14)
-* --target option:                       Specifying the Target.
-                                                              (line  10)
-* _GNU_SOURCE:                           Write configure.in.  (line 134)
-* AC_CANONICAL_HOST:                     Using the Host Type. (line  10)
-* AC_CANONICAL_SYSTEM:                   Using the Target Type.
-                                                              (line   6)
-* AC_CONFIG_HEADER:                      Write configure.in.  (line  66)
-* AC_EXEEXT:                             Write configure.in.  (line  86)
-* AC_INIT:                               Write configure.in.  (line  38)
-* AC_OUTPUT:                             Write configure.in.  (line 142)
-* AC_PREREQ:                             Write configure.in.  (line  42)
-* AC_PROG_CC:                            Write configure.in.  (line 103)
-* AC_PROG_CXX:                           Write configure.in.  (line 117)
-* acconfig.h:                            Written Developer Files.
-                                                              (line  27)
-* acconfig.h, writing:                   Write acconfig.h.    (line   6)
-* acinclude.m4:                          Written Developer Files.
-                                                              (line  37)
-* aclocal.m4:                            Generated Developer Files.
-                                                              (line  33)
-* AM_CONFIG_HEADER:                      Write configure.in.  (line  53)
-* AM_DISABLE_SHARED:                     Write configure.in.  (line 127)
-* AM_EXEEXT:                             Write configure.in.  (line  86)
-* AM_INIT_AUTOMAKE:                      Write configure.in.  (line  48)
-* AM_MAINTAINER_MODE:                    Write configure.in.  (line  70)
-* AM_PROG_LIBTOOL:                       Write configure.in.  (line 122)
-* AM_PROG_LIBTOOL in configure:          FAQ.                 (line  19)
-* build option:                          Build and Host Options.
-                                                              (line   9)
-* building with a cross compiler:        Canadian Cross.      (line   6)
-* canadian cross:                        Canadian Cross.      (line   6)
-* canadian cross in configure:           CCross in Configure. (line   6)
-* canadian cross in cygnus tree:         CCross in Cygnus Tree.
-                                                              (line   6)
-* canadian cross in makefile:            CCross in Make.      (line   6)
-* canadian cross, configuring:           Build and Host Options.
-                                                              (line   6)
-* canonical system names:                Configuration Names. (line   6)
-* config.cache:                          Build Files Description.
-                                                              (line  28)
-* config.h:                              Build Files Description.
-                                                              (line  23)
-* config.h.in:                           Generated Developer Files.
-                                                              (line  45)
-* config.in:                             Generated Developer Files.
-                                                              (line  45)
-* config.status:                         Build Files Description.
-                                                              (line   9)
-* config.status --recheck:               FAQ.                 (line  40)
-* configuration names:                   Configuration Names. (line   6)
-* configuration triplets:                Configuration Names. (line   6)
-* configure:                             Generated Developer Files.
-                                                              (line  21)
-* configure build system:                Build and Host Options.
-                                                              (line   9)
-* configure host:                        Build and Host Options.
-                                                              (line  14)
-* configure target:                      Specifying the Target.
-                                                              (line  10)
-* configure.in:                          Written Developer Files.
-                                                              (line   9)
-* configure.in, writing:                 Write configure.in.  (line   6)
-* configuring a canadian cross:          Build and Host Options.
-                                                              (line   6)
-* cross compiler:                        Cross Compilation Concepts.
-                                                              (line   6)
-* cross compiler, building with:         Canadian Cross.      (line   6)
-* cross tools:                           Cross Compilation Tools.
-                                                              (line   6)
-* CY_GNU_GETTEXT in configure:           FAQ.                 (line  19)
-* cygnus configure:                      Cygnus Configure.    (line   6)
-* goals:                                 Goals.               (line   6)
-* history:                               History.             (line   6)
-* host names:                            Configuration Names. (line   6)
-* host option:                           Build and Host Options.
-                                                              (line  14)
-* host system:                           Host and Target.     (line   6)
-* host triplets:                         Configuration Names. (line   6)
-* HOST_CC:                               CCross in Make.      (line  27)
-* libg++ configure:                      Cygnus Configure in C++ Libraries.
-                                                              (line   6)
-* libio configure:                       Cygnus Configure in C++ Libraries.
-                                                              (line   6)
-* libstdc++ configure:                   Cygnus Configure in C++ Libraries.
-                                                              (line   6)
-* Makefile:                              Build Files Description.
-                                                              (line  18)
-* Makefile, garbage characters:          FAQ.                 (line  29)
-* Makefile.am:                           Written Developer Files.
-                                                              (line  18)
-* Makefile.am, writing:                  Write Makefile.am.   (line   6)
-* Makefile.in:                           Generated Developer Files.
-                                                              (line  26)
-* multilibs:                             Multilibs.           (line   6)
-* stamp-h:                               Build Files Description.
-                                                              (line  41)
-* stamp-h.in:                            Generated Developer Files.
-                                                              (line  54)
-* system names:                          Configuration Names. (line   6)
-* system types:                          Configuration Names. (line   6)
-* target option:                         Specifying the Target.
-                                                              (line  10)
-* target system:                         Host and Target.     (line   6)
-* triplets:                              Configuration Names. (line   6)
-* undefined macros:                      FAQ.                 (line  12)
-
-
-
-Tag Table:
-Node: Top978
-Node: Introduction1506
-Node: Goals2588
-Node: Tools3312
-Node: History4306
-Node: Building7304
-Node: Getting Started10399
-Node: Write configure.in10912
-Node: Write Makefile.am18163
-Node: Write acconfig.h21340
-Node: Generate files22877
-Node: Getting Started Example24843
-Node: Getting Started Example 125598
-Node: Getting Started Example 227519
-Node: Getting Started Example 330514
-Node: Generate Files in Example32878
-Node: Files33968
-Node: Developer Files34579
-Node: Developer Files Picture34959
-Node: Written Developer Files36247
-Node: Generated Developer Files38799
-Node: Build Files41943
-Node: Build Files Picture42604
-Node: Build Files Description43368
-Node: Support Files45374
-Node: Configuration Names48256
-Node: Configuration Name Definition48756
-Node: Using Configuration Names51079
-Node: Cross Compilation Tools53049
-Node: Cross Compilation Concepts53740
-Node: Host and Target54708
-Node: Using the Host Type56209
-Node: Specifying the Target57558
-Node: Using the Target Type58347
-Node: Cross Tools in the Cygnus Tree61778
-Node: Host and Target Libraries62835
-Node: Target Library Configure Scripts66584
-Node: Make Targets in Cygnus Tree69676
-Node: Target libiberty71024
-Node: Canadian Cross72411
-Node: Canadian Cross Example73252
-Node: Canadian Cross Concepts74371
-Node: Build Cross Host Tools75883
-Node: Build and Host Options76835
-Node: CCross not in Cygnus Tree78621
-Node: CCross in Cygnus Tree79599
-Node: Standard Cygnus CCross80020
-Node: Cross Cygnus CCross81384
-Node: Supporting Canadian Cross84184
-Node: CCross in Configure84799
-Node: CCross in Make87967
-Node: Cygnus Configure89570
-Node: Cygnus Configure Basics90405
-Node: Cygnus Configure in C++ Libraries95083
-Node: Multilibs96090
-Node: Multilibs in gcc97135
-Node: Multilibs in Target Libraries98213
-Node: FAQ102404
-Node: Index106504
-
-End Tag Table
Index: b/binutils-2.16.1/etc/standards.info
===================================================================
--- a/binutils-2.16.1/etc/standards.info
+++ /dev/null
@@ -1,4930 +0,0 @@
-This is standards.info, produced by makeinfo version 4.7 from
-.././etc/standards.texi.
-
-START-INFO-DIR-ENTRY
-* Standards: (standards).        GNU coding standards.
-END-INFO-DIR-ENTRY
-
-   GNU Coding Standards Copyright (C) 1992, 1993, 1994, 1995, 1996,
-1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
-
-   Permission is granted to copy, distribute and/or modify this document
-under the terms of the GNU Free Documentation License, Version 1.1 or
-any later version published by the Free Software Foundation; with no
-Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
-Texts.  A copy of the license is included in the section entitled "GNU
-Free Documentation License".
-
-
-File: standards.info,  Node: Top,  Next: Preface,  Prev: (dir),  Up: (dir)
-
-Version
-*******
-
-Last updated February 14, 2002.
-
-* Menu:
-
-* Preface::                     About the GNU Coding Standards
-* Legal Issues::                Keeping Free Software Free
-* Design Advice::               General Program Design
-* Program Behavior::            Program Behavior for All Programs
-* Writing C::                   Making The Best Use of C
-* Documentation::               Documenting Programs
-* Managing Releases::           The Release Process
-* References::                  References to Non-Free Software or Documentation
-* Copying This Manual::         How to Make Copies of This Manual
-* Index::
-
-
-File: standards.info,  Node: Preface,  Next: Legal Issues,  Prev: Top,  Up: Top
-
-1 About the GNU Coding Standards
-********************************
-
-The GNU Coding Standards were written by Richard Stallman and other GNU
-Project volunteers.  Their purpose is to make the GNU system clean,
-consistent, and easy to install.  This document can also be read as a
-guide to writing portable, robust and reliable programs.  It focuses on
-programs written in C, but many of the rules and principles are useful
-even if you write in another programming language.  The rules often
-state reasons for writing in a certain way.
-
-   This release of the GNU Coding Standards was last updated February
-14, 2002.
-
-   If you did not obtain this file directly from the GNU project and
-recently, please check for a newer version.  You can ftp the GNU Coding
-Standards from any GNU FTP host in the directory `/pub/gnu/standards/'.
-The GNU Coding Standards are available there in several different
-formats: `standards.text', `standards.info', and `standards.dvi', as
-well as the Texinfo "source" which is divided in two files:
-`standards.texi' and `make-stds.texi'.  The GNU Coding Standards are
-also available on the GNU World Wide Web server:
-`http://www.gnu.org/prep/standards_toc.html'.
-
-   Corrections or suggestions for this document should be sent to
-<bug-standards@gnu.org>.  If you make a suggestion, please include a
-suggested new wording for it; our time is limited.  We prefer a context
-diff to the `standards.texi' or `make-stds.texi' files, but if you
-don't have those files, please mail your suggestion anyway.
-
-   These standards cover the minimum of what is important when writing a
-GNU package.  Likely, the needs for additional standards will come up.
-Sometimes, you might suggest that such standards be added to this
-document.  If you think your standards would be generally useful, please
-do suggest them.
-
-   You should also set standards for your package on many questions not
-addressed or not firmly specified here.  The most important point is to
-be self-consistent--try to stick to the conventions you pick, and try
-to document them as much as possible.  That way, your program will be
-more maintainable by others.
-
-
-File: standards.info,  Node: Legal Issues,  Next: Design Advice,  Prev: Preface,  Up: Top
-
-2 Keeping Free Software Free
-****************************
-
-This node discusses how you can make sure that GNU software avoids
-legal difficulties, and other related issues.
-
-* Menu:
-
-* Reading Non-Free Code::       Referring to Proprietary Programs
-* Contributions::               Accepting Contributions
-* Trademarks::                  How We Deal with Trademark Issues
-
-
-File: standards.info,  Node: Reading Non-Free Code,  Next: Contributions,  Up: Legal Issues
-
-2.1 Referring to Proprietary Programs
-=====================================
-
-Don't in any circumstances refer to Unix source code for or during your
-work on GNU!  (Or to any other proprietary programs.)
-
-   If you have a vague recollection of the internals of a Unix program,
-this does not absolutely mean you can't write an imitation of it, but
-do try to organize the imitation internally along different lines,
-because this is likely to make the details of the Unix version
-irrelevant and dissimilar to your results.
-
-   For example, Unix utilities were generally optimized to minimize
-memory use; if you go for speed instead, your program will be very
-different.  You could keep the entire input file in core and scan it
-there instead of using stdio.  Use a smarter algorithm discovered more
-recently than the Unix program.  Eliminate use of temporary files.  Do
-it in one pass instead of two (we did this in the assembler).
-
-   Or, on the contrary, emphasize simplicity instead of speed.  For some
-applications, the speed of today's computers makes simpler algorithms
-adequate.
-
-   Or go for generality.  For example, Unix programs often have static
-tables or fixed-size strings, which make for arbitrary limits; use
-dynamic allocation instead.  Make sure your program handles NULs and
-other funny characters in the input files.  Add a programming language
-for extensibility and write part of the program in that language.
-
-   Or turn some parts of the program into independently usable
-libraries.  Or use a simple garbage collector instead of tracking
-precisely when to free memory, or use a new GNU facility such as
-obstacks.
-
-
-File: standards.info,  Node: Contributions,  Next: Trademarks,  Prev: Reading Non-Free Code,  Up: Legal Issues
-
-2.2 Accepting Contributions
-===========================
-
-If the program you are working on is copyrighted by the Free Software
-Foundation, then when someone else sends you a piece of code to add to
-the program, we need legal papers to use it--just as we asked you to
-sign papers initially.  _Each_ person who makes a nontrivial
-contribution to a program must sign some sort of legal papers in order
-for us to have clear title to the program; the main author alone is not
-enough.
-
-   So, before adding in any contributions from other people, please tell
-us, so we can arrange to get the papers.  Then wait until we tell you
-that we have received the signed papers, before you actually use the
-contribution.
-
-   This applies both before you release the program and afterward.  If
-you receive diffs to fix a bug, and they make significant changes, we
-need legal papers for that change.
-
-   This also applies to comments and documentation files.  For copyright
-law, comments and code are just text.  Copyright applies to all kinds of
-text, so we need legal papers for all kinds.
-
-   We know it is frustrating to ask for legal papers; it's frustrating
-for us as well.  But if you don't wait, you are going out on a limb--for
-example, what if the contributor's employer won't sign a disclaimer?
-You might have to take that code out again!
-
-   You don't need papers for changes of a few lines here or there, since
-they are not significant for copyright purposes.  Also, you don't need
-papers if all you get from the suggestion is some ideas, not actual code
-which you use.  For example, if someone send you one implementation, but
-you write a different implementation of the same idea, you don't need to
-get papers.
-
-   The very worst thing is if you forget to tell us about the other
-contributor.  We could be very embarrassed in court some day as a
-result.
-
-   We have more detailed advice for maintainers of programs; if you have
-reached the stage of actually maintaining a program for GNU (whether
-released or not), please ask us for a copy.
-
-
-File: standards.info,  Node: Trademarks,  Prev: Contributions,  Up: Legal Issues
-
-2.3 Trademarks
-==============
-
-Please do not include any trademark acknowledgements in GNU software
-packages or documentation.
-
-   Trademark acknowledgements are the statements that such-and-such is a
-trademark of so-and-so.  The GNU Project has no objection to the basic
-idea of trademarks, but these acknowledgements feel like kowtowing, so
-we don't use them.  There is no legal requirement for them.
-
-   What is legally required, as regards other people's trademarks, is to
-avoid using them in ways which a reader might read as naming or labeling
-our own programs or activities.  For example, since "Objective C" is
-(or at least was) a trademark, we made sure to say that we provide a
-"compiler for the Objective C language" rather than an "Objective C
-compiler".  The latter is meant to be short for the former, but it does
-not explicitly state the relationship, so it could be misinterpreted as
-using "Objective C" as a label for the compiler rather than for the
-language.
-
-
-File: standards.info,  Node: Design Advice,  Next: Program Behavior,  Prev: Legal Issues,  Up: Top
-
-3 General Program Design
-************************
-
-This node discusses some of the issues you should take into account
-when designing your program.
-
-* Menu:
-
-* Source Language::             Which languges to use.
-* Compatibility::               Compatibility with other implementations
-* Using Extensions::            Using non-standard features
-* Standard C::                  Using Standard C features
-* Conditional Compilation::     Compiling Code Only If A Conditional is True
-
-
-File: standards.info,  Node: Source Language,  Next: Compatibility,  Up: Design Advice
-
-3.1 Which Languages to Use
-==========================
-
-When you want to use a language that gets compiled and runs at high
-speed, the best language to use is C.  Using another language is like
-using a non-standard feature: it will cause trouble for users.  Even if
-GCC supports the other language, users may find it inconvenient to have
-to install the compiler for that other language in order to build your
-program.  For example, if you write your program in C++, people will
-have to install the GNU C++ compiler in order to compile your program.
-
-   C has one other advantage over C++ and other compiled languages: more
-people know C, so more people will find it easy to read and modify the
-program if it is written in C.
-
-   So in general it is much better to use C, rather than the comparable
-alternatives.
-
-   But there are two exceptions to that conclusion:
-
-   * It is no problem to use another language to write a tool
-     specifically intended for use with that language.  That is because
-     the only people who want to build the tool will be those who have
-     installed the other language anyway.
-
-   * If an application is of interest only to a narrow part of the
-     community, then the question of which language it is written in
-     has less effect on other people, so you may as well please
-     yourself.
-
-   Many programs are designed to be extensible: they include an
-interpreter for a language that is higher level than C.  Often much of
-the program is written in that language, too.  The Emacs editor
-pioneered this technique.
-
-   The standard extensibility interpreter for GNU software is GUILE,
-which implements the language Scheme (an especially clean and simple
-dialect of Lisp).  `http://www.gnu.org/software/guile/'.  We don't
-reject programs written in other "scripting languages" such as Perl and
-Python, but using GUILE is very important for the overall consistency of
-the GNU system.
-
-
-File: standards.info,  Node: Compatibility,  Next: Using Extensions,  Prev: Source Language,  Up: Design Advice
-
-3.2 Compatibility with Other Implementations
-============================================
-
-With occasional exceptions, utility programs and libraries for GNU
-should be upward compatible with those in Berkeley Unix, and upward
-compatible with Standard C if Standard C specifies their behavior, and
-upward compatible with POSIX if POSIX specifies their behavior.
-
-   When these standards conflict, it is useful to offer compatibility
-modes for each of them.
-
-   Standard C and POSIX prohibit many kinds of extensions.  Feel free
-to make the extensions anyway, and include a `--ansi', `--posix', or
-`--compatible' option to turn them off.  However, if the extension has
-a significant chance of breaking any real programs or scripts, then it
-is not really upward compatible.  So you should try to redesign its
-interface to make it upward compatible.
-
-   Many GNU programs suppress extensions that conflict with POSIX if the
-environment variable `POSIXLY_CORRECT' is defined (even if it is
-defined with a null value).  Please make your program recognize this
-variable if appropriate.
-
-   When a feature is used only by users (not by programs or command
-files), and it is done poorly in Unix, feel free to replace it
-completely with something totally different and better.  (For example,
-`vi' is replaced with Emacs.)  But it is nice to offer a compatible
-feature as well.  (There is a free `vi' clone, so we offer it.)
-
-   Additional useful features are welcome regardless of whether there
-is any precedent for them.
-
-
-File: standards.info,  Node: Using Extensions,  Next: Standard C,  Prev: Compatibility,  Up: Design Advice
-
-3.3 Using Non-standard Features
-===============================
-
-Many GNU facilities that already exist support a number of convenient
-extensions over the comparable Unix facilities.  Whether to use these
-extensions in implementing your program is a difficult question.
-
-   On the one hand, using the extensions can make a cleaner program.
-On the other hand, people will not be able to build the program unless
-the other GNU tools are available.  This might cause the program to
-work on fewer kinds of machines.
-
-   With some extensions, it might be easy to provide both alternatives.
-For example, you can define functions with a "keyword" `INLINE' and
-define that as a macro to expand into either `inline' or nothing,
-depending on the compiler.
-
-   In general, perhaps it is best not to use the extensions if you can
-straightforwardly do without them, but to use the extensions if they
-are a big improvement.
-
-   An exception to this rule are the large, established programs (such
-as Emacs) which run on a great variety of systems.  Using GNU
-extensions in such programs would make many users unhappy, so we don't
-do that.
-
-   Another exception is for programs that are used as part of
-compilation: anything that must be compiled with other compilers in
-order to bootstrap the GNU compilation facilities.  If these require
-the GNU compiler, then no one can compile them without having them
-installed already.  That would be extremely troublesome in certain
-cases.
-
-
-File: standards.info,  Node: Standard C,  Next: Conditional Compilation,  Prev: Using Extensions,  Up: Design Advice
-
-3.4 Standard C and Pre-Standard C
-=================================
-
-1989 Standard C is widespread enough now that it is ok to use its
-features in new programs.  There is one exception: do not ever use the
-"trigraph" feature of Standard C.
-
-   1999 Standard C is not widespread yet, so please do not require its
-features in programs.  It is ok to use its features if they are present.
-
-   However, it is easy to support pre-standard compilers in most
-programs, so if you know how to do that, feel free.  If a program you
-are maintaining has such support, you should try to keep it working.
-
-   To support pre-standard C, instead of writing function definitions in
-standard prototype form,
-
-     int
-     foo (int x, int y)
-     ...
-
-write the definition in pre-standard style like this,
-
-     int
-     foo (x, y)
-          int x, y;
-     ...
-
-and use a separate declaration to specify the argument prototype:
-
-     int foo (int, int);
-
-   You need such a declaration anyway, in a header file, to get the
-benefit of prototypes in all the files where the function is called.
-And once you have the declaration, you normally lose nothing by writing
-the function definition in the pre-standard style.
-
-   This technique does not work for integer types narrower than `int'.
-If you think of an argument as being of a type narrower than `int',
-declare it as `int' instead.
-
-   There are a few special cases where this technique is hard to use.
-For example, if a function argument needs to hold the system type
-`dev_t', you run into trouble, because `dev_t' is shorter than `int' on
-some machines; but you cannot use `int' instead, because `dev_t' is
-wider than `int' on some machines.  There is no type you can safely use
-on all machines in a non-standard definition.  The only way to support
-non-standard C and pass such an argument is to check the width of
-`dev_t' using Autoconf and choose the argument type accordingly.  This
-may not be worth the trouble.
-
-   In order to support pre-standard compilers that do not recognize
-prototypes, you may want to use a preprocessor macro like this:
-
-     /* Declare the prototype for a general external function.  */
-     #if defined (__STDC__) || defined (WINDOWSNT)
-     #define P_(proto) proto
-     #else
-     #define P_(proto) ()
-     #endif
-
-
-File: standards.info,  Node: Conditional Compilation,  Prev: Standard C,  Up: Design Advice
-
-3.5 Conditional Compilation
-===========================
-
-When supporting configuration options already known when building your
-program we prefer using `if (... )' over conditional compilation, as in
-the former case the compiler is able to perform more extensive checking
-of all possible code paths.
-
-   For example, please write
-
-       if (HAS_FOO)
-         ...
-       else
-         ...
-
-   instead of:
-
-       #ifdef HAS_FOO
-         ...
-       #else
-         ...
-       #endif
-
-   A modern compiler such as GCC will generate exactly the same code in
-both cases, and we have been using similar techniques with good success
-in several projects.
-
-   While this is not a silver bullet solving all portability problems,
-following this policy would have saved the GCC project alone many person
-hours if not days per year.
-
-   In the case of function-like macros like `REVERSIBLE_CC_MODE' in GCC
-which cannot be simply used in `if( ...)' statements, there is an easy
-workaround.  Simply introduce another macro `HAS_REVERSIBLE_CC_MODE' as
-in the following example:
-
-       #ifdef REVERSIBLE_CC_MODE
-       #define HAS_REVERSIBLE_CC_MODE 1
-       #else
-       #define HAS_REVERSIBLE_CC_MODE 0
-       #endif
-
-
-File: standards.info,  Node: Program Behavior,  Next: Writing C,  Prev: Design Advice,  Up: Top
-
-4 Program Behavior for All Programs
-***********************************
-
-This node describes conventions for writing robust software.  It also
-describes general standards for error messages, the command line
-interface, and how libraries should behave.
-
-* Menu:
-
-* Semantics::                   Writing robust programs
-* Libraries::                   Library behavior
-* Errors::                      Formatting error messages
-* User Interfaces::             Standards about interfaces generally
-* Graphical Interfaces::        Standards for graphical interfaces
-* Command-Line Interfaces::     Standards for command line interfaces
-* Option Table::                Table of long options
-* Memory Usage::                When and how to care about memory needs
-* File Usage::                  Which files to use, and where
-
-
-File: standards.info,  Node: Semantics,  Next: Libraries,  Up: Program Behavior
-
-4.1 Writing Robust Programs
-===========================
-
-Avoid arbitrary limits on the length or number of _any_ data structure,
-including file names, lines, files, and symbols, by allocating all data
-structures dynamically.  In most Unix utilities, "long lines are
-silently truncated".  This is not acceptable in a GNU utility.
-
-   Utilities reading files should not drop NUL characters, or any other
-nonprinting characters _including those with codes above 0177_.  The
-only sensible exceptions would be utilities specifically intended for
-interface to certain types of terminals or printers that can't handle
-those characters.  Whenever possible, try to make programs work
-properly with sequences of bytes that represent multibyte characters,
-using encodings such as UTF-8 and others.
-
-   Check every system call for an error return, unless you know you
-wish to ignore errors.  Include the system error text (from `perror' or
-equivalent) in _every_ error message resulting from a failing system
-call, as well as the name of the file if any and the name of the
-utility.  Just "cannot open foo.c" or "stat failed" is not sufficient.
-
-   Check every call to `malloc' or `realloc' to see if it returned
-zero.  Check `realloc' even if you are making the block smaller; in a
-system that rounds block sizes to a power of 2, `realloc' may get a
-different block if you ask for less space.
-
-   In Unix, `realloc' can destroy the storage block if it returns zero.
-GNU `realloc' does not have this bug: if it fails, the original block
-is unchanged.  Feel free to assume the bug is fixed.  If you wish to
-run your program on Unix, and wish to avoid lossage in this case, you
-can use the GNU `malloc'.
-
-   You must expect `free' to alter the contents of the block that was
-freed.  Anything you want to fetch from the block, you must fetch before
-calling `free'.
-
-   If `malloc' fails in a noninteractive program, make that a fatal
-error.  In an interactive program (one that reads commands from the
-user), it is better to abort the command and return to the command
-reader loop.  This allows the user to kill other processes to free up
-virtual memory, and then try the command again.
-
-   Use `getopt_long' to decode arguments, unless the argument syntax
-makes this unreasonable.
-
-   When static storage is to be written in during program execution, use
-explicit C code to initialize it.  Reserve C initialized declarations
-for data that will not be changed.
-
-   Try to avoid low-level interfaces to obscure Unix data structures
-(such as file directories, utmp, or the layout of kernel memory), since
-these are less likely to work compatibly.  If you need to find all the
-files in a directory, use `readdir' or some other high-level interface.
-These are supported compatibly by GNU.
-
-   The preferred signal handling facilities are the BSD variant of
-`signal', and the POSIX `sigaction' function; the alternative USG
-`signal' interface is an inferior design.
-
-   Nowadays, using the POSIX signal functions may be the easiest way to
-make a program portable.  If you use `signal', then on GNU/Linux
-systems running GNU libc version 1, you should include `bsd/signal.h'
-instead of `signal.h', so as to get BSD behavior.  It is up to you
-whether to support systems where `signal' has only the USG behavior, or
-give up on them.
-
-   In error checks that detect "impossible" conditions, just abort.
-There is usually no point in printing any message.  These checks
-indicate the existence of bugs.  Whoever wants to fix the bugs will have
-to read the source code and run a debugger.  So explain the problem with
-comments in the source.  The relevant data will be in variables, which
-are easy to examine with the debugger, so there is no point moving them
-elsewhere.
-
-   Do not use a count of errors as the exit status for a program.
-_That does not work_, because exit status values are limited to 8 bits
-(0 through 255).  A single run of the program might have 256 errors; if
-you try to return 256 as the exit status, the parent process will see 0
-as the status, and it will appear that the program succeeded.
-
-   If you make temporary files, check the `TMPDIR' environment
-variable; if that variable is defined, use the specified directory
-instead of `/tmp'.
-
-   In addition, be aware that there is a possible security problem when
-creating temporary files in world-writable directories.  In C, you can
-avoid this problem by creating temporary files in this manner:
-
-     fd = open(filename, O_WRONLY | O_CREAT | O_EXCL, 0600);
-
-or by using the `mkstemps' function from libiberty.
-
-   In bash, use `set -C' to avoid this problem.
-
-
-File: standards.info,  Node: Libraries,  Next: Errors,  Prev: Semantics,  Up: Program Behavior
-
-4.2 Library Behavior
-====================
-
-Try to make library functions reentrant.  If they need to do dynamic
-storage allocation, at least try to avoid any nonreentrancy aside from
-that of `malloc' itself.
-
-   Here are certain name conventions for libraries, to avoid name
-conflicts.
-
-   Choose a name prefix for the library, more than two characters long.
-All external function and variable names should start with this prefix.
-In addition, there should only be one of these in any given library
-member.  This usually means putting each one in a separate source file.
-
-   An exception can be made when two external symbols are always used
-together, so that no reasonable program could use one without the
-other; then they can both go in the same file.
-
-   External symbols that are not documented entry points for the user
-should have names beginning with `_'.  The `_' should be followed by
-the chosen name prefix for the library, to prevent collisions with
-other libraries.  These can go in the same files with user entry points
-if you like.
-
-   Static functions and variables can be used as you like and need not
-fit any naming convention.
-
-
-File: standards.info,  Node: Errors,  Next: User Interfaces,  Prev: Libraries,  Up: Program Behavior
-
-4.3 Formatting Error Messages
-=============================
-
-Error messages from compilers should look like this:
-
-     SOURCE-FILE-NAME:LINENO: MESSAGE
-
-If you want to mention the column number, use this format:
-
-     SOURCE-FILE-NAME:LINENO:COLUMN: MESSAGE
-
-Line numbers should start from 1 at the beginning of the file, and
-column numbers should start from 1 at the beginning of the line.  (Both
-of these conventions are chosen for compatibility.)  Calculate column
-numbers assuming that space and all ASCII printing characters have
-equal width, and assuming tab stops every 8 columns.
-
-   Error messages from other noninteractive programs should look like
-this:
-
-     PROGRAM:SOURCE-FILE-NAME:LINENO: MESSAGE
-
-when there is an appropriate source file, or like this:
-
-     PROGRAM: MESSAGE
-
-when there is no relevant source file.
-
-   If you want to mention the column number, use this format:
-
-     PROGRAM:SOURCE-FILE-NAME:LINENO:COLUMN: MESSAGE
-
-   In an interactive program (one that is reading commands from a
-terminal), it is better not to include the program name in an error
-message.  The place to indicate which program is running is in the
-prompt or with the screen layout.  (When the same program runs with
-input from a source other than a terminal, it is not interactive and
-would do best to print error messages using the noninteractive style.)
-
-   The string MESSAGE should not begin with a capital letter when it
-follows a program name and/or file name.  Also, it should not end with
-a period.
-
-   Error messages from interactive programs, and other messages such as
-usage messages, should start with a capital letter.  But they should not
-end with a period.
-
-
-File: standards.info,  Node: User Interfaces,  Next: Graphical Interfaces,  Prev: Errors,  Up: Program Behavior
-
-4.4 Standards for Interfaces Generally
-======================================
-
-Please don't make the behavior of a utility depend on the name used to
-invoke it.  It is useful sometimes to make a link to a utility with a
-different name, and that should not change what it does.
-
-   Instead, use a run time option or a compilation switch or both to
-select among the alternate behaviors.
-
-   Likewise, please don't make the behavior of the program depend on the
-type of output device it is used with.  Device independence is an
-important principle of the system's design; do not compromise it merely
-to save someone from typing an option now and then.  (Variation in error
-message syntax when using a terminal is ok, because that is a side issue
-that people do not depend on.)
-
-   If you think one behavior is most useful when the output is to a
-terminal, and another is most useful when the output is a file or a
-pipe, then it is usually best to make the default behavior the one that
-is useful with output to a terminal, and have an option for the other
-behavior.
-
-   Compatibility requires certain programs to depend on the type of
-output device.  It would be disastrous if `ls' or `sh' did not do so in
-the way all users expect.  In some of these cases, we supplement the
-program with a preferred alternate version that does not depend on the
-output device type.  For example, we provide a `dir' program much like
-`ls' except that its default output format is always multi-column
-format.
-
-
-File: standards.info,  Node: Graphical Interfaces,  Next: Command-Line Interfaces,  Prev: User Interfaces,  Up: Program Behavior
-
-4.5 Standards for Graphical Interfaces
-======================================
-
-When you write a program that provides a graphical user interface,
-please make it work with X Windows and the GTK toolkit unless the
-functionality specifically requires some alternative (for example,
-"displaying jpeg images while in console mode").
-
-   In addition, please provide a command-line interface to control the
-functionality.  (In many cases, the graphical user interface can be a
-separate program which invokes the command-line program.)  This is so
-that the same jobs can be done from scripts.
-
-   Please also consider providing a CORBA interface (for use from
-GNOME), a library interface (for use from C), and perhaps a
-keyboard-driven console interface (for use by users from console mode).
-Once you are doing the work to provide the functionality and the
-graphical interface, these won't be much extra work.
-
-
-File: standards.info,  Node: Command-Line Interfaces,  Next: Option Table,  Prev: Graphical Interfaces,  Up: Program Behavior
-
-4.6 Standards for Command Line Interfaces
-=========================================
-
-It is a good idea to follow the POSIX guidelines for the command-line
-options of a program.  The easiest way to do this is to use `getopt' to
-parse them.  Note that the GNU version of `getopt' will normally permit
-options anywhere among the arguments unless the special argument `--'
-is used.  This is not what POSIX specifies; it is a GNU extension.
-
-   Please define long-named options that are equivalent to the
-single-letter Unix-style options.  We hope to make GNU more user
-friendly this way.  This is easy to do with the GNU function
-`getopt_long'.
-
-   One of the advantages of long-named options is that they can be
-consistent from program to program.  For example, users should be able
-to expect the "verbose" option of any GNU program which has one, to be
-spelled precisely `--verbose'.  To achieve this uniformity, look at the
-table of common long-option names when you choose the option names for
-your program (*note Option Table::).
-
-   It is usually a good idea for file names given as ordinary arguments
-to be input files only; any output files would be specified using
-options (preferably `-o' or `--output').  Even if you allow an output
-file name as an ordinary argument for compatibility, try to provide an
-option as another way to specify it.  This will lead to more consistency
-among GNU utilities, and fewer idiosyncracies for users to remember.
-
-   All programs should support two standard options: `--version' and
-`--help'.
-
-`--version'
-     This option should direct the program to print information about
-     its name, version, origin and legal status, all on standard
-     output, and then exit successfully.  Other options and arguments
-     should be ignored once this is seen, and the program should not
-     perform its normal function.
-
-     The first line is meant to be easy for a program to parse; the
-     version number proper starts after the last space.  In addition,
-     it contains the canonical name for this program, in this format:
-
-          GNU Emacs 19.30
-
-     The program's name should be a constant string; _don't_ compute it
-     from `argv[0]'.  The idea is to state the standard or canonical
-     name for the program, not its file name.  There are other ways to
-     find out the precise file name where a command is found in `PATH'.
-
-     If the program is a subsidiary part of a larger package, mention
-     the package name in parentheses, like this:
-
-          emacsserver (GNU Emacs) 19.30
-
-     If the package has a version number which is different from this
-     program's version number, you can mention the package version
-     number just before the close-parenthesis.
-
-     If you *need* to mention the version numbers of libraries which
-     are distributed separately from the package which contains this
-     program, you can do so by printing an additional line of version
-     info for each library you want to mention.  Use the same format
-     for these lines as for the first line.
-
-     Please do not mention all of the libraries that the program uses
-     "just for completeness"--that would produce a lot of unhelpful
-     clutter.  Please mention library version numbers only if you find
-     in practice that they are very important to you in debugging.
-
-     The following line, after the version number line or lines, should
-     be a copyright notice.  If more than one copyright notice is
-     called for, put each on a separate line.
-
-     Next should follow a brief statement that the program is free
-     software, and that users are free to copy and change it on certain
-     conditions.  If the program is covered by the GNU GPL, say so
-     here.  Also mention that there is no warranty, to the extent
-     permitted by law.
-
-     It is ok to finish the output with a list of the major authors of
-     the program, as a way of giving credit.
-
-     Here's an example of output that follows these rules:
-
-          GNU Emacs 19.34.5
-          Copyright (C) 1996 Free Software Foundation, Inc.
-          GNU Emacs comes with NO WARRANTY,
-          to the extent permitted by law.
-          You may redistribute copies of GNU Emacs
-          under the terms of the GNU General Public License.
-          For more information about these matters,
-          see the files named COPYING.
-
-     You should adapt this to your program, of course, filling in the
-     proper year, copyright holder, name of program, and the references
-     to distribution terms, and changing the rest of the wording as
-     necessary.
-
-     This copyright notice only needs to mention the most recent year in
-     which changes were made--there's no need to list the years for
-     previous versions' changes.  You don't have to mention the name of
-     the program in these notices, if that is inconvenient, since it
-     appeared in the first line.
-
-     Translations of the above lines must preserve the validity of the
-     copyright notices (*note Internationalization::).  If the
-     translation's character set supports it, the `(C)' should be
-     replaced with the copyright symbol, as follows:
-
-     (the official copyright symbol, which is the letter C in a circle);
-
-     Write the word "Copyright" exactly like that, in English.  Do not
-     translate it into another language.  International treaties
-     recognize the English word "Copyright"; translations into other
-     languages do not have legal significance.
-
-`--help'
-     This option should output brief documentation for how to invoke the
-     program, on standard output, then exit successfully.  Other
-     options and arguments should be ignored once this is seen, and the
-     program should not perform its normal function.
-
-     Near the end of the `--help' option's output there should be a line
-     that says where to mail bug reports.  It should have this format:
-
-          Report bugs to MAILING-ADDRESS.
-
-
-File: standards.info,  Node: Option Table,  Next: Memory Usage,  Prev: Command-Line Interfaces,  Up: Program Behavior
-
-4.7 Table of Long Options
-=========================
-
-Here is a table of long options used by GNU programs.  It is surely
-incomplete, but we aim to list all the options that a new program might
-want to be compatible with.  If you use names not already in the table,
-please send <bug-standards@gnu.org> a list of them, with their
-meanings, so we can update the table.
-
-`after-date'
-     `-N' in `tar'.
-
-`all'
-     `-a' in `du', `ls', `nm', `stty', `uname', and `unexpand'.
-
-`all-text'
-     `-a' in `diff'.
-
-`almost-all'
-     `-A' in `ls'.
-
-`append'
-     `-a' in `etags', `tee', `time'; `-r' in `tar'.
-
-`archive'
-     `-a' in `cp'.
-
-`archive-name'
-     `-n' in `shar'.
-
-`arglength'
-     `-l' in `m4'.
-
-`ascii'
-     `-a' in `diff'.
-
-`assign'
-     `-v' in `gawk'.
-
-`assume-new'
-     `-W' in Make.
-
-`assume-old'
-     `-o' in Make.
-
-`auto-check'
-     `-a' in `recode'.
-
-`auto-pager'
-     `-a' in `wdiff'.
-
-`auto-reference'
-     `-A' in `ptx'.
-
-`avoid-wraps'
-     `-n' in `wdiff'.
-
-`background'
-     For server programs, run in the background.
-
-`backward-search'
-     `-B' in `ctags'.
-
-`basename'
-     `-f' in `shar'.
-
-`batch'
-     Used in GDB.
-
-`baud'
-     Used in GDB.
-
-`before'
-     `-b' in `tac'.
-
-`binary'
-     `-b' in `cpio' and `diff'.
-
-`bits-per-code'
-     `-b' in `shar'.
-
-`block-size'
-     Used in `cpio' and `tar'.
-
-`blocks'
-     `-b' in `head' and `tail'.
-
-`break-file'
-     `-b' in `ptx'.
-
-`brief'
-     Used in various programs to make output shorter.
-
-`bytes'
-     `-c' in `head', `split', and `tail'.
-
-`c++'
-     `-C' in `etags'.
-
-`catenate'
-     `-A' in `tar'.
-
-`cd'
-     Used in various programs to specify the directory to use.
-
-`changes'
-     `-c' in `chgrp' and `chown'.
-
-`classify'
-     `-F' in `ls'.
-
-`colons'
-     `-c' in `recode'.
-
-`command'
-     `-c' in `su'; `-x' in GDB.
-
-`compare'
-     `-d' in `tar'.
-
-`compat'
-     Used in `gawk'.
-
-`compress'
-     `-Z' in `tar' and `shar'.
-
-`concatenate'
-     `-A' in `tar'.
-
-`confirmation'
-     `-w' in `tar'.
-
-`context'
-     Used in `diff'.
-
-`copyleft'
-     `-W copyleft' in `gawk'.
-
-`copyright'
-     `-C' in `ptx', `recode', and `wdiff'; `-W copyright' in `gawk'.
-
-`core'
-     Used in GDB.
-
-`count'
-     `-q' in `who'.
-
-`count-links'
-     `-l' in `du'.
-
-`create'
-     Used in `tar' and `cpio'.
-
-`cut-mark'
-     `-c' in `shar'.
-
-`cxref'
-     `-x' in `ctags'.
-
-`date'
-     `-d' in `touch'.
-
-`debug'
-     `-d' in Make and `m4'; `-t' in Bison.
-
-`define'
-     `-D' in `m4'.
-
-`defines'
-     `-d' in Bison and `ctags'.
-
-`delete'
-     `-D' in `tar'.
-
-`dereference'
-     `-L' in `chgrp', `chown', `cpio', `du', `ls', and `tar'.
-
-`dereference-args'
-     `-D' in `du'.
-
-`device'
-     Specify an I/O device (special file name).
-
-`diacritics'
-     `-d' in `recode'.
-
-`dictionary-order'
-     `-d' in `look'.
-
-`diff'
-     `-d' in `tar'.
-
-`digits'
-     `-n' in `csplit'.
-
-`directory'
-     Specify the directory to use, in various programs.  In `ls', it
-     means to show directories themselves rather than their contents.
-     In `rm' and `ln', it means to not treat links to directories
-     specially.
-
-`discard-all'
-     `-x' in `strip'.
-
-`discard-locals'
-     `-X' in `strip'.
-
-`dry-run'
-     `-n' in Make.
-
-`ed'
-     `-e' in `diff'.
-
-`elide-empty-files'
-     `-z' in `csplit'.
-
-`end-delete'
-     `-x' in `wdiff'.
-
-`end-insert'
-     `-z' in `wdiff'.
-
-`entire-new-file'
-     `-N' in `diff'.
-
-`environment-overrides'
-     `-e' in Make.
-
-`eof'
-     `-e' in `xargs'.
-
-`epoch'
-     Used in GDB.
-
-`error-limit'
-     Used in `makeinfo'.
-
-`error-output'
-     `-o' in `m4'.
-
-`escape'
-     `-b' in `ls'.
-
-`exclude-from'
-     `-X' in `tar'.
-
-`exec'
-     Used in GDB.
-
-`exit'
-     `-x' in `xargs'.
-
-`exit-0'
-     `-e' in `unshar'.
-
-`expand-tabs'
-     `-t' in `diff'.
-
-`expression'
-     `-e' in `sed'.
-
-`extern-only'
-     `-g' in `nm'.
-
-`extract'
-     `-i' in `cpio'; `-x' in `tar'.
-
-`faces'
-     `-f' in `finger'.
-
-`fast'
-     `-f' in `su'.
-
-`fatal-warnings'
-     `-E' in `m4'.
-
-`file'
-     `-f' in `info', `gawk', Make, `mt', and `tar'; `-n' in `sed'; `-r'
-     in `touch'.
-
-`field-separator'
-     `-F' in `gawk'.
-
-`file-prefix'
-     `-b' in Bison.
-
-`file-type'
-     `-F' in `ls'.
-
-`files-from'
-     `-T' in `tar'.
-
-`fill-column'
-     Used in `makeinfo'.
-
-`flag-truncation'
-     `-F' in `ptx'.
-
-`fixed-output-files'
-     `-y' in Bison.
-
-`follow'
-     `-f' in `tail'.
-
-`footnote-style'
-     Used in `makeinfo'.
-
-`force'
-     `-f' in `cp', `ln', `mv', and `rm'.
-
-`force-prefix'
-     `-F' in `shar'.
-
-`foreground'
-     For server programs, run in the foreground; in other words, don't
-     do anything special to run the server in the background.
-
-`format'
-     Used in `ls', `time', and `ptx'.
-
-`freeze-state'
-     `-F' in `m4'.
-
-`fullname'
-     Used in GDB.
-
-`gap-size'
-     `-g' in `ptx'.
-
-`get'
-     `-x' in `tar'.
-
-`graphic'
-     `-i' in `ul'.
-
-`graphics'
-     `-g' in `recode'.
-
-`group'
-     `-g' in `install'.
-
-`gzip'
-     `-z' in `tar' and `shar'.
-
-`hashsize'
-     `-H' in `m4'.
-
-`header'
-     `-h' in `objdump' and `recode'
-
-`heading'
-     `-H' in `who'.
-
-`help'
-     Used to ask for brief usage information.
-
-`here-delimiter'
-     `-d' in `shar'.
-
-`hide-control-chars'
-     `-q' in `ls'.
-
-`html'
-     In `makeinfo', output HTML.
-
-`idle'
-     `-u' in `who'.
-
-`ifdef'
-     `-D' in `diff'.
-
-`ignore'
-     `-I' in `ls'; `-x' in `recode'.
-
-`ignore-all-space'
-     `-w' in `diff'.
-
-`ignore-backups'
-     `-B' in `ls'.
-
-`ignore-blank-lines'
-     `-B' in `diff'.
-
-`ignore-case'
-     `-f' in `look' and `ptx'; `-i' in `diff' and `wdiff'.
-
-`ignore-errors'
-     `-i' in Make.
-
-`ignore-file'
-     `-i' in `ptx'.
-
-`ignore-indentation'
-     `-I' in `etags'.
-
-`ignore-init-file'
-     `-f' in Oleo.
-
-`ignore-interrupts'
-     `-i' in `tee'.
-
-`ignore-matching-lines'
-     `-I' in `diff'.
-
-`ignore-space-change'
-     `-b' in `diff'.
-
-`ignore-zeros'
-     `-i' in `tar'.
-
-`include'
-     `-i' in `etags'; `-I' in `m4'.
-
-`include-dir'
-     `-I' in Make.
-
-`incremental'
-     `-G' in `tar'.
-
-`info'
-     `-i', `-l', and `-m' in Finger.
-
-`init-file'
-     In some programs, specify the name of the file to read as the
-     user's init file.
-
-`initial'
-     `-i' in `expand'.
-
-`initial-tab'
-     `-T' in `diff'.
-
-`inode'
-     `-i' in `ls'.
-
-`interactive'
-     `-i' in `cp', `ln', `mv', `rm'; `-e' in `m4'; `-p' in `xargs';
-     `-w' in `tar'.
-
-`intermix-type'
-     `-p' in `shar'.
-
-`iso-8601'
-     Used in `date'
-
-`jobs'
-     `-j' in Make.
-
-`just-print'
-     `-n' in Make.
-
-`keep-going'
-     `-k' in Make.
-
-`keep-files'
-     `-k' in `csplit'.
-
-`kilobytes'
-     `-k' in `du' and `ls'.
-
-`language'
-     `-l' in `etags'.
-
-`less-mode'
-     `-l' in `wdiff'.
-
-`level-for-gzip'
-     `-g' in `shar'.
-
-`line-bytes'
-     `-C' in `split'.
-
-`lines'
-     Used in `split', `head', and `tail'.
-
-`link'
-     `-l' in `cpio'.
-
-`lint'
-`lint-old'
-     Used in `gawk'.
-
-`list'
-     `-t' in `cpio'; `-l' in `recode'.
-
-`list'
-     `-t' in `tar'.
-
-`literal'
-     `-N' in `ls'.
-
-`load-average'
-     `-l' in Make.
-
-`login'
-     Used in `su'.
-
-`machine'
-     No listing of which programs already use this; someone should
-     check to see if any actually do, and tell <gnu@gnu.org>.
-
-`macro-name'
-     `-M' in `ptx'.
-
-`mail'
-     `-m' in `hello' and `uname'.
-
-`make-directories'
-     `-d' in `cpio'.
-
-`makefile'
-     `-f' in Make.
-
-`mapped'
-     Used in GDB.
-
-`max-args'
-     `-n' in `xargs'.
-
-`max-chars'
-     `-n' in `xargs'.
-
-`max-lines'
-     `-l' in `xargs'.
-
-`max-load'
-     `-l' in Make.
-
-`max-procs'
-     `-P' in `xargs'.
-
-`mesg'
-     `-T' in `who'.
-
-`message'
-     `-T' in `who'.
-
-`minimal'
-     `-d' in `diff'.
-
-`mixed-uuencode'
-     `-M' in `shar'.
-
-`mode'
-     `-m' in `install', `mkdir', and `mkfifo'.
-
-`modification-time'
-     `-m' in `tar'.
-
-`multi-volume'
-     `-M' in `tar'.
-
-`name-prefix'
-     `-a' in Bison.
-
-`nesting-limit'
-     `-L' in `m4'.
-
-`net-headers'
-     `-a' in `shar'.
-
-`new-file'
-     `-W' in Make.
-
-`no-builtin-rules'
-     `-r' in Make.
-
-`no-character-count'
-     `-w' in `shar'.
-
-`no-check-existing'
-     `-x' in `shar'.
-
-`no-common'
-     `-3' in `wdiff'.
-
-`no-create'
-     `-c' in `touch'.
-
-`no-defines'
-     `-D' in `etags'.
-
-`no-deleted'
-     `-1' in `wdiff'.
-
-`no-dereference'
-     `-d' in `cp'.
-
-`no-inserted'
-     `-2' in `wdiff'.
-
-`no-keep-going'
-     `-S' in Make.
-
-`no-lines'
-     `-l' in Bison.
-
-`no-piping'
-     `-P' in `shar'.
-
-`no-prof'
-     `-e' in `gprof'.
-
-`no-regex'
-     `-R' in `etags'.
-
-`no-sort'
-     `-p' in `nm'.
-
-`no-split'
-     Used in `makeinfo'.
-
-`no-static'
-     `-a' in `gprof'.
-
-`no-time'
-     `-E' in `gprof'.
-
-`no-timestamp'
-     `-m' in `shar'.
-
-`no-validate'
-     Used in `makeinfo'.
-
-`no-wait'
-     Used in `emacsclient'.
-
-`no-warn'
-     Used in various programs to inhibit warnings.
-
-`node'
-     `-n' in `info'.
-
-`nodename'
-     `-n' in `uname'.
-
-`nonmatching'
-     `-f' in `cpio'.
-
-`nstuff'
-     `-n' in `objdump'.
-
-`null'
-     `-0' in `xargs'.
-
-`number'
-     `-n' in `cat'.
-
-`number-nonblank'
-     `-b' in `cat'.
-
-`numeric-sort'
-     `-n' in `nm'.
-
-`numeric-uid-gid'
-     `-n' in `cpio' and `ls'.
-
-`nx'
-     Used in GDB.
-
-`old-archive'
-     `-o' in `tar'.
-
-`old-file'
-     `-o' in Make.
-
-`one-file-system'
-     `-l' in `tar', `cp', and `du'.
-
-`only-file'
-     `-o' in `ptx'.
-
-`only-prof'
-     `-f' in `gprof'.
-
-`only-time'
-     `-F' in `gprof'.
-
-`options'
-     `-o' in `getopt', `fdlist', `fdmount', `fdmountd', and `fdumount'.
-
-`output'
-     In various programs, specify the output file name.
-
-`output-prefix'
-     `-o' in `shar'.
-
-`override'
-     `-o' in `rm'.
-
-`overwrite'
-     `-c' in `unshar'.
-
-`owner'
-     `-o' in `install'.
-
-`paginate'
-     `-l' in `diff'.
-
-`paragraph-indent'
-     Used in `makeinfo'.
-
-`parents'
-     `-p' in `mkdir' and `rmdir'.
-
-`pass-all'
-     `-p' in `ul'.
-
-`pass-through'
-     `-p' in `cpio'.
-
-`port'
-     `-P' in `finger'.
-
-`portability'
-     `-c' in `cpio' and `tar'.
-
-`posix'
-     Used in `gawk'.
-
-`prefix-builtins'
-     `-P' in `m4'.
-
-`prefix'
-     `-f' in `csplit'.
-
-`preserve'
-     Used in `tar' and `cp'.
-
-`preserve-environment'
-     `-p' in `su'.
-
-`preserve-modification-time'
-     `-m' in `cpio'.
-
-`preserve-order'
-     `-s' in `tar'.
-
-`preserve-permissions'
-     `-p' in `tar'.
-
-`print'
-     `-l' in `diff'.
-
-`print-chars'
-     `-L' in `cmp'.
-
-`print-data-base'
-     `-p' in Make.
-
-`print-directory'
-     `-w' in Make.
-
-`print-file-name'
-     `-o' in `nm'.
-
-`print-symdefs'
-     `-s' in `nm'.
-
-`printer'
-     `-p' in `wdiff'.
-
-`prompt'
-     `-p' in `ed'.
-
-`proxy'
-     Specify an HTTP proxy.
-
-`query-user'
-     `-X' in `shar'.
-
-`question'
-     `-q' in Make.
-
-`quiet'
-     Used in many programs to inhibit the usual output.  *Note:* every
-     program accepting `--quiet' should accept `--silent' as a synonym.
-
-`quiet-unshar'
-     `-Q' in `shar'
-
-`quote-name'
-     `-Q' in `ls'.
-
-`rcs'
-     `-n' in `diff'.
-
-`re-interval'
-     Used in `gawk'.
-
-`read-full-blocks'
-     `-B' in `tar'.
-
-`readnow'
-     Used in GDB.
-
-`recon'
-     `-n' in Make.
-
-`record-number'
-     `-R' in `tar'.
-
-`recursive'
-     Used in `chgrp', `chown', `cp', `ls', `diff', and `rm'.
-
-`reference-limit'
-     Used in `makeinfo'.
-
-`references'
-     `-r' in `ptx'.
-
-`regex'
-     `-r' in `tac' and `etags'.
-
-`release'
-     `-r' in `uname'.
-
-`reload-state'
-     `-R' in `m4'.
-
-`relocation'
-     `-r' in `objdump'.
-
-`rename'
-     `-r' in `cpio'.
-
-`replace'
-     `-i' in `xargs'.
-
-`report-identical-files'
-     `-s' in `diff'.
-
-`reset-access-time'
-     `-a' in `cpio'.
-
-`reverse'
-     `-r' in `ls' and `nm'.
-
-`reversed-ed'
-     `-f' in `diff'.
-
-`right-side-defs'
-     `-R' in `ptx'.
-
-`same-order'
-     `-s' in `tar'.
-
-`same-permissions'
-     `-p' in `tar'.
-
-`save'
-     `-g' in `stty'.
-
-`se'
-     Used in GDB.
-
-`sentence-regexp'
-     `-S' in `ptx'.
-
-`separate-dirs'
-     `-S' in `du'.
-
-`separator'
-     `-s' in `tac'.
-
-`sequence'
-     Used by `recode' to chose files or pipes for sequencing passes.
-
-`shell'
-     `-s' in `su'.
-
-`show-all'
-     `-A' in `cat'.
-
-`show-c-function'
-     `-p' in `diff'.
-
-`show-ends'
-     `-E' in `cat'.
-
-`show-function-line'
-     `-F' in `diff'.
-
-`show-tabs'
-     `-T' in `cat'.
-
-`silent'
-     Used in many programs to inhibit the usual output.  *Note:* every
-     program accepting `--silent' should accept `--quiet' as a synonym.
-
-`size'
-     `-s' in `ls'.
-
-`socket'
-     Specify a file descriptor for a network server to use for its
-     socket, instead of opening and binding a new socket.  This
-     provides a way to run, in a nonpriveledged process, a server that
-     normally needs a reserved port number.
-
-`sort'
-     Used in `ls'.
-
-`source'
-     `-W source' in `gawk'.
-
-`sparse'
-     `-S' in `tar'.
-
-`speed-large-files'
-     `-H' in `diff'.
-
-`split-at'
-     `-E' in `unshar'.
-
-`split-size-limit'
-     `-L' in `shar'.
-
-`squeeze-blank'
-     `-s' in `cat'.
-
-`start-delete'
-     `-w' in `wdiff'.
-
-`start-insert'
-     `-y' in `wdiff'.
-
-`starting-file'
-     Used in `tar' and `diff' to specify which file within a directory
-     to start processing with.
-
-`statistics'
-     `-s' in `wdiff'.
-
-`stdin-file-list'
-     `-S' in `shar'.
-
-`stop'
-     `-S' in Make.
-
-`strict'
-     `-s' in `recode'.
-
-`strip'
-     `-s' in `install'.
-
-`strip-all'
-     `-s' in `strip'.
-
-`strip-debug'
-     `-S' in `strip'.
-
-`submitter'
-     `-s' in `shar'.
-
-`suffix'
-     `-S' in `cp', `ln', `mv'.
-
-`suffix-format'
-     `-b' in `csplit'.
-
-`sum'
-     `-s' in `gprof'.
-
-`summarize'
-     `-s' in `du'.
-
-`symbolic'
-     `-s' in `ln'.
-
-`symbols'
-     Used in GDB and `objdump'.
-
-`synclines'
-     `-s' in `m4'.
-
-`sysname'
-     `-s' in `uname'.
-
-`tabs'
-     `-t' in `expand' and `unexpand'.
-
-`tabsize'
-     `-T' in `ls'.
-
-`terminal'
-     `-T' in `tput' and `ul'.  `-t' in `wdiff'.
-
-`text'
-     `-a' in `diff'.
-
-`text-files'
-     `-T' in `shar'.
-
-`time'
-     Used in `ls' and `touch'.
-
-`timeout'
-     Specify how long to wait before giving up on some operation.
-
-`to-stdout'
-     `-O' in `tar'.
-
-`total'
-     `-c' in `du'.
-
-`touch'
-     `-t' in Make, `ranlib', and `recode'.
-
-`trace'
-     `-t' in `m4'.
-
-`traditional'
-     `-t' in `hello'; `-W traditional' in `gawk'; `-G' in `ed', `m4',
-     and `ptx'.
-
-`tty'
-     Used in GDB.
-
-`typedefs'
-     `-t' in `ctags'.
-
-`typedefs-and-c++'
-     `-T' in `ctags'.
-
-`typeset-mode'
-     `-t' in `ptx'.
-
-`uncompress'
-     `-z' in `tar'.
-
-`unconditional'
-     `-u' in `cpio'.
-
-`undefine'
-     `-U' in `m4'.
-
-`undefined-only'
-     `-u' in `nm'.
-
-`update'
-     `-u' in `cp', `ctags', `mv', `tar'.
-
-`usage'
-     Used in `gawk'; same as `--help'.
-
-`uuencode'
-     `-B' in `shar'.
-
-`vanilla-operation'
-     `-V' in `shar'.
-
-`verbose'
-     Print more information about progress.  Many programs support this.
-
-`verify'
-     `-W' in `tar'.
-
-`version'
-     Print the version number.
-
-`version-control'
-     `-V' in `cp', `ln', `mv'.
-
-`vgrind'
-     `-v' in `ctags'.
-
-`volume'
-     `-V' in `tar'.
-
-`what-if'
-     `-W' in Make.
-
-`whole-size-limit'
-     `-l' in `shar'.
-
-`width'
-     `-w' in `ls' and `ptx'.
-
-`word-regexp'
-     `-W' in `ptx'.
-
-`writable'
-     `-T' in `who'.
-
-`zeros'
-     `-z' in `gprof'.
-
-
-File: standards.info,  Node: Memory Usage,  Next: File Usage,  Prev: Option Table,  Up: Program Behavior
-
-4.8 Memory Usage
-================
-
-If a program typically uses just a few meg of memory, don't bother
-making any effort to reduce memory usage.  For example, if it is
-impractical for other reasons to operate on files more than a few meg
-long, it is reasonable to read entire input files into core to operate
-on them.
-
-   However, for programs such as `cat' or `tail', that can usefully
-operate on very large files, it is important to avoid using a technique
-that would artificially limit the size of files it can handle.  If a
-program works by lines and could be applied to arbitrary user-supplied
-input files, it should keep only a line in memory, because this is not
-very hard and users will want to be able to operate on input files that
-are bigger than will fit in core all at once.
-
-   If your program creates complicated data structures, just make them
-in core and give a fatal error if `malloc' returns zero.
-
-
-File: standards.info,  Node: File Usage,  Prev: Memory Usage,  Up: Program Behavior
-
-4.9 File Usage
-==============
-
-Programs should be prepared to operate when `/usr' and `/etc' are
-read-only file systems.  Thus, if the program manages log files, lock
-files, backup files, score files, or any other files which are modified
-for internal purposes, these files should not be stored in `/usr' or
-`/etc'.
-
-   There are two exceptions.  `/etc' is used to store system
-configuration information; it is reasonable for a program to modify
-files in `/etc' when its job is to update the system configuration.
-Also, if the user explicitly asks to modify one file in a directory, it
-is reasonable for the program to store other files in the same
-directory.
-
-
-File: standards.info,  Node: Writing C,  Next: Documentation,  Prev: Program Behavior,  Up: Top
-
-5 Making The Best Use of C
-**************************
-
-This node provides advice on how best to use the C language when
-writing GNU software.
-
-* Menu:
-
-* Formatting::                  Formatting Your Source Code
-* Comments::                    Commenting Your Work
-* Syntactic Conventions::       Clean Use of C Constructs
-* Names::                       Naming Variables, Functions, and Files
-* System Portability::          Portability between different operating systems
-* CPU Portability::             Supporting the range of CPU types
-* System Functions::            Portability and ``standard'' library functions
-* Internationalization::        Techniques for internationalization
-* Mmap::                        How you can safely use `mmap'.
-
-
-File: standards.info,  Node: Formatting,  Next: Comments,  Up: Writing C
-
-5.1 Formatting Your Source Code
-===============================
-
-It is important to put the open-brace that starts the body of a C
-function in column zero, and avoid putting any other open-brace or
-open-parenthesis or open-bracket in column zero.  Several tools look
-for open-braces in column zero to find the beginnings of C functions.
-These tools will not work on code not formatted that way.
-
-   It is also important for function definitions to start the name of
-the function in column zero.  This helps people to search for function
-definitions, and may also help certain tools recognize them.  Thus, the
-proper format is this:
-
-     static char *
-     concat (s1, s2)        /* Name starts in column zero here */
-          char *s1, *s2;
-     {                     /* Open brace in column zero here */
-       ...
-     }
-
-or, if you want to use Standard C syntax, format the definition like
-this:
-
-     static char *
-     concat (char *s1, char *s2)
-     {
-       ...
-     }
-
-   In Standard C, if the arguments don't fit nicely on one line, split
-it like this:
-
-     int
-     lots_of_args (int an_integer, long a_long, short a_short,
-                   double a_double, float a_float)
-     ...
-
-   The rest of this section gives our recommendations for other aspects
-of C formatting style, which is also the default style of the `indent'
-program in version 1.2 and newer.  It corresponds to the options
-
-     -nbad -bap -nbc -bbo -bl -bli2 -bls -ncdb -nce -cp1 -cs -di2
-     -ndj -nfc1 -nfca -hnl -i2 -ip5 -lp -pcs -psl -nsc -nsob
-
-   We don't think of these recommendations as requirements, because it
-causes no problems for users if two different programs have different
-formatting styles.
-
-   But whatever style you use, please use it consistently, since a
-mixture of styles within one program tends to look ugly.  If you are
-contributing changes to an existing program, please follow the style of
-that program.
-
-   For the body of the function, our recommended style looks like this:
-
-     if (x < foo (y, z))
-       haha = bar[4] + 5;
-     else
-       {
-         while (z)
-           {
-             haha += foo (z, z);
-             z--;
-           }
-         return ++x + bar ();
-       }
-
-   We find it easier to read a program when it has spaces before the
-open-parentheses and after the commas.  Especially after the commas.
-
-   When you split an expression into multiple lines, split it before an
-operator, not after one.  Here is the right way:
-
-     if (foo_this_is_long && bar > win (x, y, z)
-         && remaining_condition)
-
-   Try to avoid having two operators of different precedence at the same
-level of indentation.  For example, don't write this:
-
-     mode = (inmode[j] == VOIDmode
-             || GET_MODE_SIZE (outmode[j]) > GET_MODE_SIZE (inmode[j])
-             ? outmode[j] : inmode[j]);
-
-   Instead, use extra parentheses so that the indentation shows the
-nesting:
-
-     mode = ((inmode[j] == VOIDmode
-              || (GET_MODE_SIZE (outmode[j]) > GET_MODE_SIZE (inmode[j])))
-             ? outmode[j] : inmode[j]);
-
-   Insert extra parentheses so that Emacs will indent the code properly.
-For example, the following indentation looks nice if you do it by hand,
-
-     v = rup->ru_utime.tv_sec*1000 + rup->ru_utime.tv_usec/1000
-         + rup->ru_stime.tv_sec*1000 + rup->ru_stime.tv_usec/1000;
-
-but Emacs would alter it.  Adding a set of parentheses produces
-something that looks equally nice, and which Emacs will preserve:
-
-     v = (rup->ru_utime.tv_sec*1000 + rup->ru_utime.tv_usec/1000
-          + rup->ru_stime.tv_sec*1000 + rup->ru_stime.tv_usec/1000);
-
-   Format do-while statements like this:
-
-     do
-       {
-         a = foo (a);
-       }
-     while (a > 0);
-
-   Please use formfeed characters (control-L) to divide the program into
-pages at logical places (but not within a function).  It does not matter
-just how long the pages are, since they do not have to fit on a printed
-page.  The formfeeds should appear alone on lines by themselves.
-
-
-File: standards.info,  Node: Comments,  Next: Syntactic Conventions,  Prev: Formatting,  Up: Writing C
-
-5.2 Commenting Your Work
-========================
-
-Every program should start with a comment saying briefly what it is for.
-Example: `fmt - filter for simple filling of text'.
-
-   Please write the comments in a GNU program in English, because
-English is the one language that nearly all programmers in all
-countries can read.  If you do not write English well, please write
-comments in English as well as you can, then ask other people to help
-rewrite them.  If you can't write comments in English, please find
-someone to work with you and translate your comments into English.
-
-   Please put a comment on each function saying what the function does,
-what sorts of arguments it gets, and what the possible values of
-arguments mean and are used for.  It is not necessary to duplicate in
-words the meaning of the C argument declarations, if a C type is being
-used in its customary fashion.  If there is anything nonstandard about
-its use (such as an argument of type `char *' which is really the
-address of the second character of a string, not the first), or any
-possible values that would not work the way one would expect (such as,
-that strings containing newlines are not guaranteed to work), be sure
-to say so.
-
-   Also explain the significance of the return value, if there is one.
-
-   Please put two spaces after the end of a sentence in your comments,
-so that the Emacs sentence commands will work.  Also, please write
-complete sentences and capitalize the first word.  If a lower-case
-identifier comes at the beginning of a sentence, don't capitalize it!
-Changing the spelling makes it a different identifier.  If you don't
-like starting a sentence with a lower case letter, write the sentence
-differently (e.g., "The identifier lower-case is ...").
-
-   The comment on a function is much clearer if you use the argument
-names to speak about the argument values.  The variable name itself
-should be lower case, but write it in upper case when you are speaking
-about the value rather than the variable itself.  Thus, "the inode
-number NODE_NUM" rather than "an inode".
-
-   There is usually no purpose in restating the name of the function in
-the comment before it, because the reader can see that for himself.
-There might be an exception when the comment is so long that the
-function itself would be off the bottom of the screen.
-
-   There should be a comment on each static variable as well, like this:
-
-     /* Nonzero means truncate lines in the display;
-        zero means continue them.  */
-     int truncate_lines;
-
-   Every `#endif' should have a comment, except in the case of short
-conditionals (just a few lines) that are not nested.  The comment should
-state the condition of the conditional that is ending, _including its
-sense_.  `#else' should have a comment describing the condition _and
-sense_ of the code that follows.  For example:
-
-     #ifdef foo
-       ...
-     #else /* not foo */
-       ...
-     #endif /* not foo */
-     #ifdef foo
-       ...
-     #endif /* foo */
-
-but, by contrast, write the comments this way for a `#ifndef':
-
-     #ifndef foo
-       ...
-     #else /* foo */
-       ...
-     #endif /* foo */
-     #ifndef foo
-       ...
-     #endif /* not foo */
-
-
-File: standards.info,  Node: Syntactic Conventions,  Next: Names,  Prev: Comments,  Up: Writing C
-
-5.3 Clean Use of C Constructs
-=============================
-
-Please explicitly declare the types of all objects.  For example, you
-should explicitly declare all arguments to functions, and you should
-declare functions to return `int' rather than omitting the `int'.
-
-   Some programmers like to use the GCC `-Wall' option, and change the
-code whenever it issues a warning.  If you want to do this, then do.
-Other programmers prefer not to use `-Wall', because it gives warnings
-for valid and legitimate code which they do not want to change.  If you
-want to do this, then do.  The compiler should be your servant, not
-your master.
-
-   Declarations of external functions and functions to appear later in
-the source file should all go in one place near the beginning of the
-file (somewhere before the first function definition in the file), or
-else should go in a header file.  Don't put `extern' declarations inside
-functions.
-
-   It used to be common practice to use the same local variables (with
-names like `tem') over and over for different values within one
-function.  Instead of doing this, it is better declare a separate local
-variable for each distinct purpose, and give it a name which is
-meaningful.  This not only makes programs easier to understand, it also
-facilitates optimization by good compilers.  You can also move the
-declaration of each local variable into the smallest scope that includes
-all its uses.  This makes the program even cleaner.
-
-   Don't use local variables or parameters that shadow global
-identifiers.
-
-   Don't declare multiple variables in one declaration that spans lines.
-Start a new declaration on each line, instead.  For example, instead of
-this:
-
-     int    foo,
-            bar;
-
-write either this:
-
-     int foo, bar;
-
-or this:
-
-     int foo;
-     int bar;
-
-(If they are global variables, each should have a comment preceding it
-anyway.)
-
-   When you have an `if'-`else' statement nested in another `if'
-statement, always put braces around the `if'-`else'.  Thus, never write
-like this:
-
-     if (foo)
-       if (bar)
-         win ();
-       else
-         lose ();
-
-always like this:
-
-     if (foo)
-       {
-         if (bar)
-           win ();
-         else
-           lose ();
-       }
-
-   If you have an `if' statement nested inside of an `else' statement,
-either write `else if' on one line, like this,
-
-     if (foo)
-       ...
-     else if (bar)
-       ...
-
-with its `then'-part indented like the preceding `then'-part, or write
-the nested `if' within braces like this:
-
-     if (foo)
-       ...
-     else
-       {
-         if (bar)
-           ...
-       }
-
-   Don't declare both a structure tag and variables or typedefs in the
-same declaration.  Instead, declare the structure tag separately and
-then use it to declare the variables or typedefs.
-
-   Try to avoid assignments inside `if'-conditions.  For example, don't
-write this:
-
-     if ((foo = (char *) malloc (sizeof *foo)) == 0)
-       fatal ("virtual memory exhausted");
-
-instead, write this:
-
-     foo = (char *) malloc (sizeof *foo);
-     if (foo == 0)
-       fatal ("virtual memory exhausted");
-
-   Don't make the program ugly to placate `lint'.  Please don't insert
-any casts to `void'.  Zero without a cast is perfectly fine as a null
-pointer constant, except when calling a varargs function.
-
-
-File: standards.info,  Node: Names,  Next: System Portability,  Prev: Syntactic Conventions,  Up: Writing C
-
-5.4 Naming Variables, Functions, and Files
-==========================================
-
-The names of global variables and functions in a program serve as
-comments of a sort.  So don't choose terse names--instead, look for
-names that give useful information about the meaning of the variable or
-function.  In a GNU program, names should be English, like other
-comments.
-
-   Local variable names can be shorter, because they are used only
-within one context, where (presumably) comments explain their purpose.
-
-   Try to limit your use of abbreviations in symbol names.  It is ok to
-make a few abbreviations, explain what they mean, and then use them
-frequently, but don't use lots of obscure abbreviations.
-
-   Please use underscores to separate words in a name, so that the Emacs
-word commands can be useful within them.  Stick to lower case; reserve
-upper case for macros and `enum' constants, and for name-prefixes that
-follow a uniform convention.
-
-   For example, you should use names like `ignore_space_change_flag';
-don't use names like `iCantReadThis'.
-
-   Variables that indicate whether command-line options have been
-specified should be named after the meaning of the option, not after
-the option-letter.  A comment should state both the exact meaning of
-the option and its letter.  For example,
-
-     /* Ignore changes in horizontal whitespace (-b).  */
-     int ignore_space_change_flag;
-
-   When you want to define names with constant integer values, use
-`enum' rather than `#define'.  GDB knows about enumeration constants.
-
-   You might want to make sure that none of the file names would
-conflict the files were loaded onto an MS-DOS file system which
-shortens the names.  You can use the program `doschk' to test for this.
-
-   Some GNU programs were designed to limit themselves to file names of
-14 characters or less, to avoid file name conflicts if they are read
-into older System V systems.  Please preserve this feature in the
-existing GNU programs that have it, but there is no need to do this in
-new GNU programs.  `doschk' also reports file names longer than 14
-characters.
-
-
-File: standards.info,  Node: System Portability,  Next: CPU Portability,  Prev: Names,  Up: Writing C
-
-5.5 Portability between System Types
-====================================
-
-In the Unix world, "portability" refers to porting to different Unix
-versions.  For a GNU program, this kind of portability is desirable, but
-not paramount.
-
-   The primary purpose of GNU software is to run on top of the GNU
-kernel, compiled with the GNU C compiler, on various types of CPU.  So
-the kinds of portability that are absolutely necessary are quite
-limited.  But it is important to support Linux-based GNU systems, since
-they are the form of GNU that is popular.
-
-   Beyond that, it is good to support the other free operating systems
-(*BSD), and it is nice to support other Unix-like systems if you want
-to.  Supporting a variety of Unix-like systems is desirable, although
-not paramount.  It is usually not too hard, so you may as well do it.
-But you don't have to consider it an obligation, if it does turn out to
-be hard.
-
-   The easiest way to achieve portability to most Unix-like systems is
-to use Autoconf.  It's unlikely that your program needs to know more
-information about the host platform than Autoconf can provide, simply
-because most of the programs that need such knowledge have already been
-written.
-
-   Avoid using the format of semi-internal data bases (e.g.,
-directories) when there is a higher-level alternative (`readdir').
-
-   As for systems that are not like Unix, such as MSDOS, Windows, the
-Macintosh, VMS, and MVS, supporting them is often a lot of work.  When
-that is the case, it is better to spend your time adding features that
-will be useful on GNU and GNU/Linux, rather than on supporting other
-incompatible systems.
-
-   It is a good idea to define the "feature test macro" `_GNU_SOURCE'
-when compiling your C files.  When you compile on GNU or GNU/Linux,
-this will enable the declarations of GNU library extension functions,
-and that will usually give you a compiler error message if you define
-the same function names in some other way in your program.  (You don't
-have to actually _use_ these functions, if you prefer to make the
-program more portable to other systems.)
-
-   But whether or not you use these GNU extensions, you should avoid
-using their names for any other meanings.  Doing so would make it hard
-to move your code into other GNU programs.
-
-
-File: standards.info,  Node: CPU Portability,  Next: System Functions,  Prev: System Portability,  Up: Writing C
-
-5.6 Portability between CPUs
-============================
-
-Even GNU systems will differ because of differences among CPU
-types--for example, difference in byte ordering and alignment
-requirements.  It is absolutely essential to handle these differences.
-However, don't make any effort to cater to the possibility that an
-`int' will be less than 32 bits.  We don't support 16-bit machines in
-GNU.
-
-   Similarly, don't make any effort to cater to the possibility that
-`long' will be smaller than predefined types like `size_t'.  For
-example, the following code is ok:
-
-     printf ("size = %lu\n", (unsigned long) sizeof array);
-     printf ("diff = %ld\n", (long) (pointer2 - pointer1));
-
-   1989 Standard C requires this to work, and we know of only one
-counterexample: 64-bit programs on Microsoft Windows IA-64.  We will
-leave it to those who want to port GNU programs to that environment to
-figure out how to do it.
-
-   Predefined file-size types like `off_t' are an exception: they are
-longer than `long' on many platforms, so code like the above won't work
-with them.  One way to print an `off_t' value portably is to print its
-digits yourself, one by one.
-
-   Don't assume that the address of an `int' object is also the address
-of its least-significant byte.  This is false on big-endian machines.
-Thus, don't make the following mistake:
-
-     int c;
-     ...
-     while ((c = getchar()) != EOF)
-       write(file_descriptor, &c, 1);
-
-   When calling functions, you need not worry about the difference
-between pointers of various types, or between pointers and integers.
-On most machines, there's no difference anyway.  As for the few
-machines where there is a difference, all of them support Standard C
-prototypes, so you can use prototypes (perhaps conditionalized to be
-active only in Standard C) to make the code work on those systems.
-
-   In certain cases, it is ok to pass integer and pointer arguments
-indiscriminately to the same function, and use no prototype on any
-system.  For example, many GNU programs have error-reporting functions
-that pass their arguments along to `printf' and friends:
-
-     error (s, a1, a2, a3)
-          char *s;
-          char *a1, *a2, *a3;
-     {
-       fprintf (stderr, "error: ");
-       fprintf (stderr, s, a1, a2, a3);
-     }
-
-In practice, this works on all machines, since a pointer is generally
-the widest possible kind of argument; it is much simpler than any
-"correct" alternative.  Be sure _not_ to use a prototype for such
-functions.
-
-   If you have decided to use Standard C, then you can instead define
-`error' using `stdarg.h', and pass the arguments along to `vfprintf'.
-
-   Avoid casting pointers to integers if you can.  Such casts greatly
-reduce portability, and in most programs they are easy to avoid.  In the
-cases where casting pointers to integers is essential--such as, a Lisp
-interpreter which stores type information as well as an address in one
-word--you'll have to make explicit provisions to handle different word
-sizes.  You will also need to make provision for systems in which the
-normal range of addresses you can get from `malloc' starts far away
-from zero.
-
-
-File: standards.info,  Node: System Functions,  Next: Internationalization,  Prev: CPU Portability,  Up: Writing C
-
-5.7 Calling System Functions
-============================
-
-C implementations differ substantially.  Standard C reduces but does
-not eliminate the incompatibilities; meanwhile, many GNU packages still
-support pre-standard compilers because this is not hard to do.  This
-chapter gives recommendations for how to use the more-or-less standard C
-library functions to avoid unnecessary loss of portability.
-
-   * Don't use the return value of `sprintf'.  It returns the number of
-     characters written on some systems, but not on all systems.
-
-   * Be aware that `vfprintf' is not always available.
-
-   * `main' should be declared to return type `int'.  It should
-     terminate either by calling `exit' or by returning the integer
-     status code; make sure it cannot ever return an undefined value.
-
-   * Don't declare system functions explicitly.
-
-     Almost any declaration for a system function is wrong on some
-     system.  To minimize conflicts, leave it to the system header
-     files to declare system functions.  If the headers don't declare a
-     function, let it remain undeclared.
-
-     While it may seem unclean to use a function without declaring it,
-     in practice this works fine for most system library functions on
-     the systems where this really happens; thus, the disadvantage is
-     only theoretical.  By contrast, actual declarations have
-     frequently caused actual conflicts.
-
-   * If you must declare a system function, don't specify the argument
-     types.  Use an old-style declaration, not a Standard C prototype.
-     The more you specify about the function, the more likely a
-     conflict.
-
-   * In particular, don't unconditionally declare `malloc' or `realloc'.
-
-     Most GNU programs use those functions just once, in functions
-     conventionally named `xmalloc' and `xrealloc'.  These functions
-     call `malloc' and `realloc', respectively, and check the results.
-
-     Because `xmalloc' and `xrealloc' are defined in your program, you
-     can declare them in other files without any risk of type conflict.
-
-     On most systems, `int' is the same length as a pointer; thus, the
-     calls to `malloc' and `realloc' work fine.  For the few
-     exceptional systems (mostly 64-bit machines), you can use
-     *conditionalized* declarations of `malloc' and `realloc'--or put
-     these declarations in configuration files specific to those
-     systems.
-
-   * The string functions require special treatment.  Some Unix systems
-     have a header file `string.h'; others have `strings.h'.  Neither
-     file name is portable.  There are two things you can do: use
-     Autoconf to figure out which file to include, or don't include
-     either file.
-
-   * If you don't include either strings file, you can't get
-     declarations for the string functions from the header file in the
-     usual way.
-
-     That causes less of a problem than you might think.  The newer
-     standard string functions should be avoided anyway because many
-     systems still don't support them.  The string functions you can
-     use are these:
-
-          strcpy   strncpy   strcat   strncat
-          strlen   strcmp    strncmp
-          strchr   strrchr
-
-     The copy and concatenate functions work fine without a declaration
-     as long as you don't use their values.  Using their values without
-     a declaration fails on systems where the width of a pointer
-     differs from the width of `int', and perhaps in other cases.  It
-     is trivial to avoid using their values, so do that.
-
-     The compare functions and `strlen' work fine without a declaration
-     on most systems, possibly all the ones that GNU software runs on.
-     You may find it necessary to declare them *conditionally* on a few
-     systems.
-
-     The search functions must be declared to return `char *'.  Luckily,
-     there is no variation in the data type they return.  But there is
-     variation in their names.  Some systems give these functions the
-     names `index' and `rindex'; other systems use the names `strchr'
-     and `strrchr'.  Some systems support both pairs of names, but
-     neither pair works on all systems.
-
-     You should pick a single pair of names and use it throughout your
-     program.  (Nowadays, it is better to choose `strchr' and `strrchr'
-     for new programs, since those are the standard names.)  Declare
-     both of those names as functions returning `char *'.  On systems
-     which don't support those names, define them as macros in terms of
-     the other pair.  For example, here is what to put at the beginning
-     of your file (or in a header) if you want to use the names
-     `strchr' and `strrchr' throughout:
-
-          #ifndef HAVE_STRCHR
-          #define strchr index
-          #endif
-          #ifndef HAVE_STRRCHR
-          #define strrchr rindex
-          #endif
-
-          char *strchr ();
-          char *strrchr ();
-
-   Here we assume that `HAVE_STRCHR' and `HAVE_STRRCHR' are macros
-defined in systems where the corresponding functions exist.  One way to
-get them properly defined is to use Autoconf.
-
-
-File: standards.info,  Node: Internationalization,  Next: Mmap,  Prev: System Functions,  Up: Writing C
-
-5.8 Internationalization
-========================
-
-GNU has a library called GNU gettext that makes it easy to translate the
-messages in a program into various languages.  You should use this
-library in every program.  Use English for the messages as they appear
-in the program, and let gettext provide the way to translate them into
-other languages.
-
-   Using GNU gettext involves putting a call to the `gettext' macro
-around each string that might need translation--like this:
-
-     printf (gettext ("Processing file `%s'..."));
-
-This permits GNU gettext to replace the string `"Processing file
-`%s'..."' with a translated version.
-
-   Once a program uses gettext, please make a point of writing calls to
-`gettext' when you add new strings that call for translation.
-
-   Using GNU gettext in a package involves specifying a "text domain
-name" for the package.  The text domain name is used to separate the
-translations for this package from the translations for other packages.
-Normally, the text domain name should be the same as the name of the
-package--for example, `fileutils' for the GNU file utilities.
-
-   To enable gettext to work well, avoid writing code that makes
-assumptions about the structure of words or sentences.  When you want
-the precise text of a sentence to vary depending on the data, use two or
-more alternative string constants each containing a complete sentences,
-rather than inserting conditionalized words or phrases into a single
-sentence framework.
-
-   Here is an example of what not to do:
-
-     printf ("%d file%s processed", nfiles,
-             nfiles != 1 ? "s" : "");
-
-The problem with that example is that it assumes that plurals are made
-by adding `s'.  If you apply gettext to the format string, like this,
-
-     printf (gettext ("%d file%s processed"), nfiles,
-             nfiles != 1 ? "s" : "");
-
-the message can use different words, but it will still be forced to use
-`s' for the plural.  Here is a better way:
-
-     printf ((nfiles != 1 ? "%d files processed"
-              : "%d file processed"),
-             nfiles);
-
-This way, you can apply gettext to each of the two strings
-independently:
-
-     printf ((nfiles != 1 ? gettext ("%d files processed")
-              : gettext ("%d file processed")),
-             nfiles);
-
-This can be any method of forming the plural of the word for "file", and
-also handles languages that require agreement in the word for
-"processed".
-
-   A similar problem appears at the level of sentence structure with
-this code:
-
-     printf ("#  Implicit rule search has%s been done.\n",
-             f->tried_implicit ? "" : " not");
-
-Adding `gettext' calls to this code cannot give correct results for all
-languages, because negation in some languages requires adding words at
-more than one place in the sentence.  By contrast, adding `gettext'
-calls does the job straightfowardly if the code starts out like this:
-
-     printf (f->tried_implicit
-             ? "#  Implicit rule search has been done.\n",
-             : "#  Implicit rule search has not been done.\n");
-
-
-File: standards.info,  Node: Mmap,  Prev: Internationalization,  Up: Writing C
-
-5.9 Mmap
-========
-
-Don't assume that `mmap' either works on all files or fails for all
-files.  It may work on some files and fail on others.
-
-   The proper way to use `mmap' is to try it on the specific file for
-which you want to use it--and if `mmap' doesn't work, fall back on
-doing the job in another way using `read' and `write'.
-
-   The reason this precaution is needed is that the GNU kernel (the
-HURD) provides a user-extensible file system, in which there can be many
-different kinds of "ordinary files."  Many of them support `mmap', but
-some do not.  It is important to make programs handle all these kinds
-of files.
-
-
-File: standards.info,  Node: Documentation,  Next: Managing Releases,  Prev: Writing C,  Up: Top
-
-6 Documenting Programs
-**********************
-
-A GNU program should ideally come with full free documentation, adequate
-for both reference and tutorial purposes.  If the package can be
-programmed or extended, the documentation should cover programming or
-extending it, as well as just using it.
-
-* Menu:
-
-* GNU Manuals::                 Writing proper manuals.
-* Doc Strings and Manuals::     Compiling doc strings doesn't make a manual.
-* Manual Structure Details::    Specific structure conventions.
-* License for Manuals::         Writing the distribution terms for a manual.
-* Manual Credits::              Giving credit to documentation contributors.
-* Printed Manuals::             Mentioning the printed manual.
-* NEWS File::                   NEWS files supplement manuals.
-* Change Logs::                 Recording Changes
-* Man Pages::                   Man pages are secondary.
-* Reading other Manuals::       How far you can go in learning
-                                from other manuals.
-
-
-File: standards.info,  Node: GNU Manuals,  Next: Doc Strings and Manuals,  Up: Documentation
-
-6.1 GNU Manuals
-===============
-
-The preferred document format for the GNU system is the Texinfo
-formatting language.  Every GNU package should (ideally) have
-documentation in Texinfo both for reference and for learners.  Texinfo
-makes it possible to produce a good quality formatted book, using TeX,
-and to generate an Info file.  It is also possible to generate HTML
-output from Texinfo source.  See the Texinfo manual, either the
-hardcopy, or the on-line version available through `info' or the Emacs
-Info subsystem (`C-h i').
-
-   Nowadays some other formats such as Docbook and Sgmltexi can be
-converted automatically into Texinfo.  It is ok to produce the Texinfo
-documentation by conversion this way, as long as it gives good results.
-
-   Programmers often find it most natural to structure the documentation
-following the structure of the implementation, which they know.  But
-this structure is not necessarily good for explaining how to use the
-program; it may be irrelevant and confusing for a user.
-
-   At every level, from the sentences in a paragraph to the grouping of
-topics into separate manuals, the right way to structure documentation
-is according to the concepts and questions that a user will have in mind
-when reading it.  Sometimes this structure of ideas matches the
-structure of the implementation of the software being documented--but
-often they are different.  Often the most important part of learning to
-write good documentation is learning to notice when you are structuring
-the documentation like the implementation, and think about better
-alternatives.
-
-   For example, each program in the GNU system probably ought to be
-documented in one manual; but this does not mean each program should
-have its own manual.  That would be following the structure of the
-implementation, rather than the structure that helps the user
-understand.
-
-   Instead, each manual should cover a coherent _topic_.  For example,
-instead of a manual for `diff' and a manual for `diff3', we have one
-manual for "comparison of files" which covers both of those programs,
-as well as `cmp'.  By documenting these programs together, we can make
-the whole subject clearer.
-
-   The manual which discusses a program should certainly document all of
-the program's command-line options and all of its commands.  It should
-give examples of their use.  But don't organize the manual as a list of
-features.  Instead, organize it logically, by subtopics.  Address the
-questions that a user will ask when thinking about the job that the
-program does.
-
-   In general, a GNU manual should serve both as tutorial and reference.
-It should be set up for convenient access to each topic through Info,
-and for reading straight through (appendixes aside).  A GNU manual
-should give a good introduction to a beginner reading through from the
-start, and should also provide all the details that hackers want.  The
-Bison manual is a good example of this--please take a look at it to see
-what we mean.
-
-   That is not as hard as it first sounds.  Arrange each chapter as a
-logical breakdown of its topic, but order the sections, and write their
-text, so that reading the chapter straight through makes sense.  Do
-likewise when structuring the book into chapters, and when structuring a
-section into paragraphs.  The watchword is, _at each point, address the
-most fundamental and important issue raised by the preceding text._
-
-   If necessary, add extra chapters at the beginning of the manual which
-are purely tutorial and cover the basics of the subject.  These provide
-the framework for a beginner to understand the rest of the manual.  The
-Bison manual provides a good example of how to do this.
-
-   To serve as a reference, a manual should have an Index that list all
-the functions, variables, options, and important concepts that are part
-of the program.  One combined Index should do for a short manual, but
-sometimes for a complex package it is better to use multiple indices.
-The Texinfo manual includes advice on preparing good index entries, see
-*Note Making Index Entries: (texinfo)Index Entries, and see *Note
-Defining the Entries of an Index: (texinfo)Indexing Commands.
-
-   Don't use Unix man pages as a model for how to write GNU
-documentation; most of them are terse, badly structured, and give
-inadequate explanation of the underlying concepts.  (There are, of
-course, some exceptions.)  Also, Unix man pages use a particular format
-which is different from what we use in GNU manuals.
-
-   Please include an email address in the manual for where to report
-bugs _in the manual_.
-
-   Please do not use the term "pathname" that is used in Unix
-documentation; use "file name" (two words) instead.  We use the term
-"path" only for search paths, which are lists of directory names.
-
-   Please do not use the term "illegal" to refer to erroneous input to a
-computer program.  Please use "invalid" for this, and reserve the term
-"illegal" for activities punishable by law.
-
-
-File: standards.info,  Node: Doc Strings and Manuals,  Next: Manual Structure Details,  Prev: GNU Manuals,  Up: Documentation
-
-6.2 Doc Strings and Manuals
-===========================
-
-Some programming systems, such as Emacs, provide a documentation string
-for each function, command or variable.  You may be tempted to write a
-reference manual by compiling the documentation strings and writing a
-little additional text to go around them--but you must not do it.  That
-approach is a fundamental mistake.  The text of well-written
-documentation strings will be entirely wrong for a manual.
-
-   A documentation string needs to stand alone--when it appears on the
-screen, there will be no other text to introduce or explain it.
-Meanwhile, it can be rather informal in style.
-
-   The text describing a function or variable in a manual must not stand
-alone; it appears in the context of a section or subsection.  Other text
-at the beginning of the section should explain some of the concepts, and
-should often make some general points that apply to several functions or
-variables.  The previous descriptions of functions and variables in the
-section will also have given information about the topic.  A description
-written to stand alone would repeat some of that information; this
-redundance looks bad.  Meanwhile, the informality that is acceptable in
-a documentation string is totally unacceptable in a manual.
-
-   The only good way to use documentation strings in writing a good
-manual is to use them as a source of information for writing good text.
-
-
-File: standards.info,  Node: Manual Structure Details,  Next: License for Manuals,  Prev: Doc Strings and Manuals,  Up: Documentation
-
-6.3 Manual Structure Details
-============================
-
-The title page of the manual should state the version of the programs or
-packages documented in the manual.  The Top node of the manual should
-also contain this information.  If the manual is changing more
-frequently than or independent of the program, also state a version
-number for the manual in both of these places.
-
-   Each program documented in the manual should have a node named
-`PROGRAM Invocation' or `Invoking PROGRAM'.  This node (together with
-its subnodes, if any) should describe the program's command line
-arguments and how to run it (the sort of information people would look
-in a man page for).  Start with an `@example' containing a template for
-all the options and arguments that the program uses.
-
-   Alternatively, put a menu item in some menu whose item name fits one
-of the above patterns.  This identifies the node which that item points
-to as the node for this purpose, regardless of the node's actual name.
-
-   The `--usage' feature of the Info reader looks for such a node or
-menu item in order to find the relevant text, so it is essential for
-every Texinfo file to have one.
-
-   If one manual describes several programs, it should have such a node
-for each program described in the manual.
-
-
-File: standards.info,  Node: License for Manuals,  Next: Manual Credits,  Prev: Manual Structure Details,  Up: Documentation
-
-6.4 License for Manuals
-=======================
-
-Please use the GNU Free Documentation License for all GNU manuals that
-are more than a few pages long.  Likewise for a collection of short
-documents--you only need one copy of the GNU FDL for the whole
-collection.  For a single short document, you can use a very permissive
-non-copyleft license, to avoid taking up space with a long license.
-
-   See `http://www.gnu.org/copyleft/fdl-howto.html' for more explanation
-of how to employ the GFDL.
-
-   Note that it is not obligatory to include a copy of the GNU GPL or
-GNU LGPL in a manual whose license is neither the GPL nor the LGPL.  It
-can be a good idea to include the program's license in a large manual;
-in a short manual, whose size would be increased considerably by
-including the program's license, it is probably better not to include
-it.
-
-
-File: standards.info,  Node: Manual Credits,  Next: Printed Manuals,  Prev: License for Manuals,  Up: Documentation
-
-6.5 Manual Credits
-==================
-
-Please credit the principal human writers of the manual as the authors,
-on the title page of the manual.  If a company sponsored the work, thank
-the company in a suitable place in the manual, but do not cite the
-company as an author.
-
-
-File: standards.info,  Node: Printed Manuals,  Next: NEWS File,  Prev: Manual Credits,  Up: Documentation
-
-6.6 Printed Manuals
-===================
-
-The FSF publishes some GNU manuals in printed form.  To encourage sales
-of these manuals, the on-line versions of the manual should mention at
-the very start that the printed manual is available and should point at
-information for getting it--for instance, with a link to the page
-`http://www.gnu.org/order/order.html'.  This should not be included in
-the printed manual, though, because there it is redundant.
-
-   It is also useful to explain in the on-line forms of the manual how
-the user can print out the manual from the sources.
-
-
-File: standards.info,  Node: NEWS File,  Next: Change Logs,  Prev: Printed Manuals,  Up: Documentation
-
-6.7 The NEWS File
-=================
-
-In addition to its manual, the package should have a file named `NEWS'
-which contains a list of user-visible changes worth mentioning.  In
-each new release, add items to the front of the file and identify the
-version they pertain to.  Don't discard old items; leave them in the
-file after the newer items.  This way, a user upgrading from any
-previous version can see what is new.
-
-   If the `NEWS' file gets very long, move some of the older items into
-a file named `ONEWS' and put a note at the end referring the user to
-that file.
-
-
-File: standards.info,  Node: Change Logs,  Next: Man Pages,  Prev: NEWS File,  Up: Documentation
-
-6.8 Change Logs
-===============
-
-Keep a change log to describe all the changes made to program source
-files.  The purpose of this is so that people investigating bugs in the
-future will know about the changes that might have introduced the bug.
-Often a new bug can be found by looking at what was recently changed.
-More importantly, change logs can help you eliminate conceptual
-inconsistencies between different parts of a program, by giving you a
-history of how the conflicting concepts arose and who they came from.
-
-* Menu:
-
-* Change Log Concepts::
-* Style of Change Logs::
-* Simple Changes::
-* Conditional Changes::
-* Indicating the Part Changed::
-
-
-File: standards.info,  Node: Change Log Concepts,  Next: Style of Change Logs,  Up: Change Logs
-
-6.8.1 Change Log Concepts
--------------------------
-
-You can think of the change log as a conceptual "undo list" which
-explains how earlier versions were different from the current version.
-People can see the current version; they don't need the change log to
-tell them what is in it.  What they want from a change log is a clear
-explanation of how the earlier version differed.
-
-   The change log file is normally called `ChangeLog' and covers an
-entire directory.  Each directory can have its own change log, or a
-directory can use the change log of its parent directory-it's up to you.
-
-   Another alternative is to record change log information with a
-version control system such as RCS or CVS.  This can be converted
-automatically to a `ChangeLog' file using `rcs2log'; in Emacs, the
-command `C-x v a' (`vc-update-change-log') does the job.
-
-   There's no need to describe the full purpose of the changes or how
-they work together.  If you think that a change calls for explanation,
-you're probably right.  Please do explain it--but please put the
-explanation in comments in the code, where people will see it whenever
-they see the code.  For example, "New function" is enough for the
-change log when you add a function, because there should be a comment
-before the function definition to explain what it does.
-
-   However, sometimes it is useful to write one line to describe the
-overall purpose of a batch of changes.
-
-   The easiest way to add an entry to `ChangeLog' is with the Emacs
-command `M-x add-change-log-entry'.  An entry should have an asterisk,
-the name of the changed file, and then in parentheses the name of the
-changed functions, variables or whatever, followed by a colon.  Then
-describe the changes you made to that function or variable.
-
-
-File: standards.info,  Node: Style of Change Logs,  Next: Simple Changes,  Prev: Change Log Concepts,  Up: Change Logs
-
-6.8.2 Style of Change Logs
---------------------------
-
-Here are some simple examples of change log entries, starting with the
-header line that says who made the change and when, followed by
-descriptions of specific changes.  (These examples are drawn from Emacs
-and GCC.)
-
-     1998-08-17  Richard Stallman  <rms@gnu.org>
-
-     * register.el (insert-register): Return nil.
-     (jump-to-register): Likewise.
-
-     * sort.el (sort-subr): Return nil.
-
-     * tex-mode.el (tex-bibtex-file, tex-file, tex-region):
-     Restart the tex shell if process is gone or stopped.
-     (tex-shell-running): New function.
-
-     * expr.c (store_one_arg): Round size up for move_block_to_reg.
-     (expand_call): Round up when emitting USE insns.
-     * stmt.c (assign_parms): Round size up for move_block_from_reg.
-
-   It's important to name the changed function or variable in full.
-Don't abbreviate function or variable names, and don't combine them.
-Subsequent maintainers will often search for a function name to find all
-the change log entries that pertain to it; if you abbreviate the name,
-they won't find it when they search.
-
-   For example, some people are tempted to abbreviate groups of function
-names by writing `* register.el ({insert,jump-to}-register)'; this is
-not a good idea, since searching for `jump-to-register' or
-`insert-register' would not find that entry.
-
-   Separate unrelated change log entries with blank lines.  When two
-entries represent parts of the same change, so that they work together,
-then don't put blank lines between them.  Then you can omit the file
-name and the asterisk when successive entries are in the same file.
-
-   Break long lists of function names by closing continued lines with
-`)', rather than `,', and opening the continuation with `(' as in this
-example:
-
-     * keyboard.c (menu_bar_items, tool_bar_items)
-     (Fexecute_extended_command): Deal with `keymap' property.
-
-
-File: standards.info,  Node: Simple Changes,  Next: Conditional Changes,  Prev: Style of Change Logs,  Up: Change Logs
-
-6.8.3 Simple Changes
---------------------
-
-Certain simple kinds of changes don't need much detail in the change
-log.
-
-   When you change the calling sequence of a function in a simple
-fashion, and you change all the callers of the function to use the new
-calling sequence, there is no need to make individual entries for all
-the callers that you changed.  Just write in the entry for the function
-being called, "All callers changed"--like this:
-
-     * keyboard.c (Fcommand_execute): New arg SPECIAL.
-     All callers changed.
-
-   When you change just comments or doc strings, it is enough to write
-an entry for the file, without mentioning the functions.  Just "Doc
-fixes" is enough for the change log.
-
-   There's no need to make change log entries for documentation files.
-This is because documentation is not susceptible to bugs that are hard
-to fix.  Documentation does not consist of parts that must interact in a
-precisely engineered fashion.  To correct an error, you need not know
-the history of the erroneous passage; it is enough to compare what the
-documentation says with the way the program actually works.
-
-
-File: standards.info,  Node: Conditional Changes,  Next: Indicating the Part Changed,  Prev: Simple Changes,  Up: Change Logs
-
-6.8.4 Conditional Changes
--------------------------
-
-C programs often contain compile-time `#if' conditionals.  Many changes
-are conditional; sometimes you add a new definition which is entirely
-contained in a conditional.  It is very useful to indicate in the
-change log the conditions for which the change applies.
-
-   Our convention for indicating conditional changes is to use square
-brackets around the name of the condition.
-
-   Here is a simple example, describing a change which is conditional
-but does not have a function or entity name associated with it:
-
-     * xterm.c [SOLARIS2]: Include string.h.
-
-   Here is an entry describing a new definition which is entirely
-conditional.  This new definition for the macro `FRAME_WINDOW_P' is
-used only when `HAVE_X_WINDOWS' is defined:
-
-     * frame.h [HAVE_X_WINDOWS] (FRAME_WINDOW_P): Macro defined.
-
-   Here is an entry for a change within the function `init_display',
-whose definition as a whole is unconditional, but the changes themselves
-are contained in a `#ifdef HAVE_LIBNCURSES' conditional:
-
-     * dispnew.c (init_display) [HAVE_LIBNCURSES]: If X, call tgetent.
-
-   Here is an entry for a change that takes affect only when a certain
-macro is _not_ defined:
-
-     (gethostname) [!HAVE_SOCKETS]: Replace with winsock version.
-
-
-File: standards.info,  Node: Indicating the Part Changed,  Prev: Conditional Changes,  Up: Change Logs
-
-6.8.5 Indicating the Part Changed
----------------------------------
-
-Indicate the part of a function which changed by using angle brackets
-enclosing an indication of what the changed part does.  Here is an entry
-for a change in the part of the function `sh-while-getopts' that deals
-with `sh' commands:
-
-     * progmodes/sh-script.el (sh-while-getopts) <sh>: Handle case that
-     user-specified option string is empty.
-
-
-File: standards.info,  Node: Man Pages,  Next: Reading other Manuals,  Prev: Change Logs,  Up: Documentation
-
-6.9 Man Pages
-=============
-
-In the GNU project, man pages are secondary.  It is not necessary or
-expected for every GNU program to have a man page, but some of them do.
-It's your choice whether to include a man page in your program.
-
-   When you make this decision, consider that supporting a man page
-requires continual effort each time the program is changed.  The time
-you spend on the man page is time taken away from more useful work.
-
-   For a simple program which changes little, updating the man page may
-be a small job.  Then there is little reason not to include a man page,
-if you have one.
-
-   For a large program that changes a great deal, updating a man page
-may be a substantial burden.  If a user offers to donate a man page,
-you may find this gift costly to accept.  It may be better to refuse
-the man page unless the same person agrees to take full responsibility
-for maintaining it--so that you can wash your hands of it entirely.  If
-this volunteer later ceases to do the job, then don't feel obliged to
-pick it up yourself; it may be better to withdraw the man page from the
-distribution until someone else agrees to update it.
-
-   When a program changes only a little, you may feel that the
-discrepancies are small enough that the man page remains useful without
-updating.  If so, put a prominent note near the beginning of the man
-page explaining that you don't maintain it and that the Texinfo manual
-is more authoritative.  The note should say how to access the Texinfo
-documentation.
-
-
-File: standards.info,  Node: Reading other Manuals,  Prev: Man Pages,  Up: Documentation
-
-6.10 Reading other Manuals
-==========================
-
-There may be non-free books or documentation files that describe the
-program you are documenting.
-
-   It is ok to use these documents for reference, just as the author of
-a new algebra textbook can read other books on algebra.  A large portion
-of any non-fiction book consists of facts, in this case facts about how
-a certain program works, and these facts are necessarily the same for
-everyone who writes about the subject.  But be careful not to copy your
-outline structure, wording, tables or examples from preexisting non-free
-documentation.  Copying from free documentation may be ok; please check
-with the FSF about the individual case.
-
-
-File: standards.info,  Node: Managing Releases,  Next: References,  Prev: Documentation,  Up: Top
-
-7 The Release Process
-*********************
-
-Making a release is more than just bundling up your source files in a
-tar file and putting it up for FTP.  You should set up your software so
-that it can be configured to run on a variety of systems.  Your Makefile
-should conform to the GNU standards described below, and your directory
-layout should also conform to the standards discussed below.  Doing so
-makes it easy to include your package into the larger framework of all
-GNU software.
-
-* Menu:
-
-* Configuration::               How Configuration Should Work
-* Makefile Conventions::        Makefile Conventions
-* Releases::                    Making Releases
-
-
-File: standards.info,  Node: Configuration,  Next: Makefile Conventions,  Up: Managing Releases
-
-7.1 How Configuration Should Work
-=================================
-
-Each GNU distribution should come with a shell script named
-`configure'.  This script is given arguments which describe the kind of
-machine and system you want to compile the program for.
-
-   The `configure' script must record the configuration options so that
-they affect compilation.
-
-   One way to do this is to make a link from a standard name such as
-`config.h' to the proper configuration file for the chosen system.  If
-you use this technique, the distribution should _not_ contain a file
-named `config.h'.  This is so that people won't be able to build the
-program without configuring it first.
-
-   Another thing that `configure' can do is to edit the Makefile.  If
-you do this, the distribution should _not_ contain a file named
-`Makefile'.  Instead, it should include a file `Makefile.in' which
-contains the input used for editing.  Once again, this is so that people
-won't be able to build the program without configuring it first.
-
-   If `configure' does write the `Makefile', then `Makefile' should
-have a target named `Makefile' which causes `configure' to be rerun,
-setting up the same configuration that was set up last time.  The files
-that `configure' reads should be listed as dependencies of `Makefile'.
-
-   All the files which are output from the `configure' script should
-have comments at the beginning explaining that they were generated
-automatically using `configure'.  This is so that users won't think of
-trying to edit them by hand.
-
-   The `configure' script should write a file named `config.status'
-which describes which configuration options were specified when the
-program was last configured.  This file should be a shell script which,
-if run, will recreate the same configuration.
-
-   The `configure' script should accept an option of the form
-`--srcdir=DIRNAME' to specify the directory where sources are found (if
-it is not the current directory).  This makes it possible to build the
-program in a separate directory, so that the actual source directory is
-not modified.
-
-   If the user does not specify `--srcdir', then `configure' should
-check both `.' and `..' to see if it can find the sources.  If it finds
-the sources in one of these places, it should use them from there.
-Otherwise, it should report that it cannot find the sources, and should
-exit with nonzero status.
-
-   Usually the easy way to support `--srcdir' is by editing a
-definition of `VPATH' into the Makefile.  Some rules may need to refer
-explicitly to the specified source directory.  To make this possible,
-`configure' can add to the Makefile a variable named `srcdir' whose
-value is precisely the specified directory.
-
-   The `configure' script should also take an argument which specifies
-the type of system to build the program for.  This argument should look
-like this:
-
-     CPU-COMPANY-SYSTEM
-
-   For example, a Sun 3 might be `m68k-sun-sunos4.1'.
-
-   The `configure' script needs to be able to decode all plausible
-alternatives for how to describe a machine.  Thus, `sun3-sunos4.1'
-would be a valid alias.  For many programs, `vax-dec-ultrix' would be
-an alias for `vax-dec-bsd', simply because the differences between
-Ultrix and BSD are rarely noticeable, but a few programs might need to
-distinguish them.
-
-   There is a shell script called `config.sub' that you can use as a
-subroutine to validate system types and canonicalize aliases.
-
-   Other options are permitted to specify in more detail the software
-or hardware present on the machine, and include or exclude optional
-parts of the package:
-
-`--enable-FEATURE[=PARAMETER]'
-     Configure the package to build and install an optional user-level
-     facility called FEATURE.  This allows users to choose which
-     optional features to include.  Giving an optional PARAMETER of
-     `no' should omit FEATURE, if it is built by default.
-
-     No `--enable' option should *ever* cause one feature to replace
-     another.  No `--enable' option should ever substitute one useful
-     behavior for another useful behavior.  The only proper use for
-     `--enable' is for questions of whether to build part of the program
-     or exclude it.
-
-`--with-PACKAGE'
-     The package PACKAGE will be installed, so configure this package
-     to work with PACKAGE.
-
-     Possible values of PACKAGE include `gnu-as' (or `gas'), `gnu-ld',
-     `gnu-libc', `gdb', `x', and `x-toolkit'.
-
-     Do not use a `--with' option to specify the file name to use to
-     find certain files.  That is outside the scope of what `--with'
-     options are for.
-
-   All `configure' scripts should accept all of these "detail" options,
-whether or not they make any difference to the particular package at
-hand.  In particular, they should accept any option that starts with
-`--with-' or `--enable-'.  This is so users will be able to configure
-an entire GNU source tree at once with a single set of options.
-
-   You will note that the categories `--with-' and `--enable-' are
-narrow: they *do not* provide a place for any sort of option you might
-think of.  That is deliberate.  We want to limit the possible
-configuration options in GNU software.  We do not want GNU programs to
-have idiosyncratic configuration options.
-
-   Packages that perform part of the compilation process may support
-cross-compilation.  In such a case, the host and target machines for the
-program may be different.
-
-   The `configure' script should normally treat the specified type of
-system as both the host and the target, thus producing a program which
-works for the same type of machine that it runs on.
-
-   To configure a cross-compiler, cross-assembler, or what have you, you
-should specify a target different from the host, using the configure
-option `--target=TARGETTYPE'.  The syntax for TARGETTYPE is the same as
-for the host type.  So the command would look like this:
-
-     ./configure HOSTTYPE --target=TARGETTYPE
-
-   Programs for which cross-operation is not meaningful need not accept
-the `--target' option, because configuring an entire operating system
-for cross-operation is not a meaningful operation.
-
-   Bootstrapping a cross-compiler requires compiling it on a machine
-other than the host it will run on.  Compilation packages accept a
-configuration option `--build=BUILDTYPE' for specifying the
-configuration on which you will compile them, but the configure script
-should normally guess the build machine type (using `config.guess'), so
-this option is probably not necessary.  The host and target types
-normally default from the build type, so in bootstrapping a
-cross-compiler you must specify them both explicitly.
-
-   Some programs have ways of configuring themselves automatically.  If
-your program is set up to do this, your `configure' script can simply
-ignore most of its arguments.
-
-
-File: standards.info,  Node: Makefile Conventions,  Next: Releases,  Prev: Configuration,  Up: Managing Releases
-
-7.2 Makefile Conventions
-========================
-
-This node describes conventions for writing the Makefiles for GNU
-programs.  Using Automake will help you write a Makefile that follows
-these conventions.
-
-* Menu:
-
-* Makefile Basics::             General Conventions for Makefiles
-* Utilities in Makefiles::      Utilities in Makefiles
-* Command Variables::           Variables for Specifying Commands
-* Directory Variables::         Variables for Installation Directories
-* Standard Targets::            Standard Targets for Users
-* Install Command Categories::  Three categories of commands in the `install'
-                                  rule: normal, pre-install and post-install.
-
-
-File: standards.info,  Node: Makefile Basics,  Next: Utilities in Makefiles,  Up: Makefile Conventions
-
-7.2.1 General Conventions for Makefiles
----------------------------------------
-
-Every Makefile should contain this line:
-
-     SHELL = /bin/sh
-
-to avoid trouble on systems where the `SHELL' variable might be
-inherited from the environment.  (This is never a problem with GNU
-`make'.)
-
-   Different `make' programs have incompatible suffix lists and
-implicit rules, and this sometimes creates confusion or misbehavior.  So
-it is a good idea to set the suffix list explicitly using only the
-suffixes you need in the particular Makefile, like this:
-
-     .SUFFIXES:
-     .SUFFIXES: .c .o
-
-The first line clears out the suffix list, the second introduces all
-suffixes which may be subject to implicit rules in this Makefile.
-
-   Don't assume that `.' is in the path for command execution.  When
-you need to run programs that are a part of your package during the
-make, please make sure that it uses `./' if the program is built as
-part of the make or `$(srcdir)/' if the file is an unchanging part of
-the source code.  Without one of these prefixes, the current search
-path is used.
-
-   The distinction between `./' (the "build directory") and
-`$(srcdir)/' (the "source directory") is important because users can
-build in a separate directory using the `--srcdir' option to
-`configure'.  A rule of the form:
-
-     foo.1 : foo.man sedscript
-             sed -e sedscript foo.man > foo.1
-
-will fail when the build directory is not the source directory, because
-`foo.man' and `sedscript' are in the source directory.
-
-   When using GNU `make', relying on `VPATH' to find the source file
-will work in the case where there is a single dependency file, since
-the `make' automatic variable `$<' will represent the source file
-wherever it is.  (Many versions of `make' set `$<' only in implicit
-rules.)  A Makefile target like
-
-     foo.o : bar.c
-             $(CC) -I. -I$(srcdir) $(CFLAGS) -c bar.c -o foo.o
-
-should instead be written as
-
-     foo.o : bar.c
-             $(CC) -I. -I$(srcdir) $(CFLAGS) -c $< -o $@
-
-in order to allow `VPATH' to work correctly.  When the target has
-multiple dependencies, using an explicit `$(srcdir)' is the easiest way
-to make the rule work well.  For example, the target above for `foo.1'
-is best written as:
-
-     foo.1 : foo.man sedscript
-             sed -e $(srcdir)/sedscript $(srcdir)/foo.man > $@
-
-   GNU distributions usually contain some files which are not source
-files--for example, Info files, and the output from Autoconf, Automake,
-Bison or Flex.  Since these files normally appear in the source
-directory, they should always appear in the source directory, not in the
-build directory.  So Makefile rules to update them should put the
-updated files in the source directory.
-
-   However, if a file does not appear in the distribution, then the
-Makefile should not put it in the source directory, because building a
-program in ordinary circumstances should not modify the source directory
-in any way.
-
-   Try to make the build and installation targets, at least (and all
-their subtargets) work correctly with a parallel `make'.
-
-
-File: standards.info,  Node: Utilities in Makefiles,  Next: Command Variables,  Prev: Makefile Basics,  Up: Makefile Conventions
-
-7.2.2 Utilities in Makefiles
-----------------------------
-
-Write the Makefile commands (and any shell scripts, such as
-`configure') to run in `sh', not in `csh'.  Don't use any special
-features of `ksh' or `bash'.
-
-   The `configure' script and the Makefile rules for building and
-installation should not use any utilities directly except these:
-
-     cat cmp cp diff echo egrep expr false grep install-info
-     ln ls mkdir mv pwd rm rmdir sed sleep sort tar test touch true
-
-   The compression program `gzip' can be used in the `dist' rule.
-
-   Stick to the generally supported options for these programs.  For
-example, don't use `mkdir -p', convenient as it may be, because most
-systems don't support it.
-
-   It is a good idea to avoid creating symbolic links in makefiles,
-since a few systems don't support them.
-
-   The Makefile rules for building and installation can also use
-compilers and related programs, but should do so via `make' variables
-so that the user can substitute alternatives.  Here are some of the
-programs we mean:
-
-     ar bison cc flex install ld ldconfig lex
-     make makeinfo ranlib texi2dvi yacc
-
-   Use the following `make' variables to run those programs:
-
-     $(AR) $(BISON) $(CC) $(FLEX) $(INSTALL) $(LD) $(LDCONFIG) $(LEX)
-     $(MAKE) $(MAKEINFO) $(RANLIB) $(TEXI2DVI) $(YACC)
-
-   When you use `ranlib' or `ldconfig', you should make sure nothing
-bad happens if the system does not have the program in question.
-Arrange to ignore an error from that command, and print a message before
-the command to tell the user that failure of this command does not mean
-a problem.  (The Autoconf `AC_PROG_RANLIB' macro can help with this.)
-
-   If you use symbolic links, you should implement a fallback for
-systems that don't have symbolic links.
-
-   Additional utilities that can be used via Make variables are:
-
-     chgrp chmod chown mknod
-
-   It is ok to use other utilities in Makefile portions (or scripts)
-intended only for particular systems where you know those utilities
-exist.
-
-
-File: standards.info,  Node: Command Variables,  Next: Directory Variables,  Prev: Utilities in Makefiles,  Up: Makefile Conventions
-
-7.2.3 Variables for Specifying Commands
----------------------------------------
-
-Makefiles should provide variables for overriding certain commands,
-options, and so on.
-
-   In particular, you should run most utility programs via variables.
-Thus, if you use Bison, have a variable named `BISON' whose default
-value is set with `BISON = bison', and refer to it with `$(BISON)'
-whenever you need to use Bison.
-
-   File management utilities such as `ln', `rm', `mv', and so on, need
-not be referred to through variables in this way, since users don't
-need to replace them with other programs.
-
-   Each program-name variable should come with an options variable that
-is used to supply options to the program.  Append `FLAGS' to the
-program-name variable name to get the options variable name--for
-example, `BISONFLAGS'.  (The names `CFLAGS' for the C compiler,
-`YFLAGS' for yacc, and `LFLAGS' for lex, are exceptions to this rule,
-but we keep them because they are standard.)  Use `CPPFLAGS' in any
-compilation command that runs the preprocessor, and use `LDFLAGS' in
-any compilation command that does linking as well as in any direct use
-of `ld'.
-
-   If there are C compiler options that _must_ be used for proper
-compilation of certain files, do not include them in `CFLAGS'.  Users
-expect to be able to specify `CFLAGS' freely themselves.  Instead,
-arrange to pass the necessary options to the C compiler independently
-of `CFLAGS', by writing them explicitly in the compilation commands or
-by defining an implicit rule, like this:
-
-     CFLAGS = -g
-     ALL_CFLAGS = -I. $(CFLAGS)
-     .c.o:
-             $(CC) -c $(CPPFLAGS) $(ALL_CFLAGS) $<
-
-   Do include the `-g' option in `CFLAGS', because that is not
-_required_ for proper compilation.  You can consider it a default that
-is only recommended.  If the package is set up so that it is compiled
-with GCC by default, then you might as well include `-O' in the default
-value of `CFLAGS' as well.
-
-   Put `CFLAGS' last in the compilation command, after other variables
-containing compiler options, so the user can use `CFLAGS' to override
-the others.
-
-   `CFLAGS' should be used in every invocation of the C compiler, both
-those which do compilation and those which do linking.
-
-   Every Makefile should define the variable `INSTALL', which is the
-basic command for installing a file into the system.
-
-   Every Makefile should also define the variables `INSTALL_PROGRAM'
-and `INSTALL_DATA'.  (The default for `INSTALL_PROGRAM' should be
-`$(INSTALL)'; the default for `INSTALL_DATA' should be `${INSTALL} -m
-644'.)  Then it should use those variables as the commands for actual
-installation, for executables and nonexecutables respectively.  Use
-these variables as follows:
-
-     $(INSTALL_PROGRAM) foo $(bindir)/foo
-     $(INSTALL_DATA) libfoo.a $(libdir)/libfoo.a
-
-   Optionally, you may prepend the value of `DESTDIR' to the target
-filename.  Doing this allows the installer to create a snapshot of the
-installation to be copied onto the real target filesystem later.  Do not
-set the value of `DESTDIR' in your Makefile, and do not include it in
-any installed files.  With support for `DESTDIR', the above examples
-become:
-
-     $(INSTALL_PROGRAM) foo $(DESTDIR)$(bindir)/foo
-     $(INSTALL_DATA) libfoo.a $(DESTDIR)$(libdir)/libfoo.a
-
-Always use a file name, not a directory name, as the second argument of
-the installation commands.  Use a separate command for each file to be
-installed.
-
-
-File: standards.info,  Node: Directory Variables,  Next: Standard Targets,  Prev: Command Variables,  Up: Makefile Conventions
-
-7.2.4 Variables for Installation Directories
---------------------------------------------
-
-Installation directories should always be named by variables, so it is
-easy to install in a nonstandard place.  The standard names for these
-variables are described below.  They are based on a standard filesystem
-layout; variants of it are used in SVR4, 4.4BSD, GNU/Linux, Ultrix v4,
-and other modern operating systems.
-
-   These two variables set the root for the installation.  All the other
-installation directories should be subdirectories of one of these two,
-and nothing should be directly installed into these two directories.
-
-`prefix'
-     A prefix used in constructing the default values of the variables
-     listed below.  The default value of `prefix' should be
-     `/usr/local'.  When building the complete GNU system, the prefix
-     will be empty and `/usr' will be a symbolic link to `/'.  (If you
-     are using Autoconf, write it as `@prefix@'.)
-
-     Running `make install' with a different value of `prefix' from the
-     one used to build the program should _not_ recompile the program.
-
-`exec_prefix'
-     A prefix used in constructing the default values of some of the
-     variables listed below.  The default value of `exec_prefix' should
-     be `$(prefix)'.  (If you are using Autoconf, write it as
-     `@exec_prefix@'.)
-
-     Generally, `$(exec_prefix)' is used for directories that contain
-     machine-specific files (such as executables and subroutine
-     libraries), while `$(prefix)' is used directly for other
-     directories.
-
-     Running `make install' with a different value of `exec_prefix'
-     from the one used to build the program should _not_ recompile the
-     program.
-
-   Executable programs are installed in one of the following
-directories.
-
-`bindir'
-     The directory for installing executable programs that users can
-     run.  This should normally be `/usr/local/bin', but write it as
-     `$(exec_prefix)/bin'.  (If you are using Autoconf, write it as
-     `@bindir@'.)
-
-`sbindir'
-     The directory for installing executable programs that can be run
-     from the shell, but are only generally useful to system
-     administrators.  This should normally be `/usr/local/sbin', but
-     write it as `$(exec_prefix)/sbin'.  (If you are using Autoconf,
-     write it as `@sbindir@'.)
-
-`libexecdir'
-     The directory for installing executable programs to be run by other
-     programs rather than by users.  This directory should normally be
-     `/usr/local/libexec', but write it as `$(exec_prefix)/libexec'.
-     (If you are using Autoconf, write it as `@libexecdir@'.)
-
-   Data files used by the program during its execution are divided into
-categories in two ways.
-
-   * Some files are normally modified by programs; others are never
-     normally modified (though users may edit some of these).
-
-   * Some files are architecture-independent and can be shared by all
-     machines at a site; some are architecture-dependent and can be
-     shared only by machines of the same kind and operating system;
-     others may never be shared between two machines.
-
-   This makes for six different possibilities.  However, we want to
-discourage the use of architecture-dependent files, aside from object
-files and libraries.  It is much cleaner to make other data files
-architecture-independent, and it is generally not hard.
-
-   Therefore, here are the variables Makefiles should use to specify
-directories:
-
-`datadir'
-     The directory for installing read-only architecture independent
-     data files.  This should normally be `/usr/local/share', but write
-     it as `$(prefix)/share'.  (If you are using Autoconf, write it as
-     `@datadir@'.)  As a special exception, see `$(infodir)' and
-     `$(includedir)' below.
-
-`sysconfdir'
-     The directory for installing read-only data files that pertain to a
-     single machine-that is to say, files for configuring a host.
-     Mailer and network configuration files, `/etc/passwd', and so
-     forth belong here.  All the files in this directory should be
-     ordinary ASCII text files.  This directory should normally be
-     `/usr/local/etc', but write it as `$(prefix)/etc'.  (If you are
-     using Autoconf, write it as `@sysconfdir@'.)
-
-     Do not install executables here in this directory (they probably
-     belong in `$(libexecdir)' or `$(sbindir)').  Also do not install
-     files that are modified in the normal course of their use (programs
-     whose purpose is to change the configuration of the system
-     excluded).  Those probably belong in `$(localstatedir)'.
-
-`sharedstatedir'
-     The directory for installing architecture-independent data files
-     which the programs modify while they run.  This should normally be
-     `/usr/local/com', but write it as `$(prefix)/com'.  (If you are
-     using Autoconf, write it as `@sharedstatedir@'.)
-
-`localstatedir'
-     The directory for installing data files which the programs modify
-     while they run, and that pertain to one specific machine.  Users
-     should never need to modify files in this directory to configure
-     the package's operation; put such configuration information in
-     separate files that go in `$(datadir)' or `$(sysconfdir)'.
-     `$(localstatedir)' should normally be `/usr/local/var', but write
-     it as `$(prefix)/var'.  (If you are using Autoconf, write it as
-     `@localstatedir@'.)
-
-`libdir'
-     The directory for object files and libraries of object code.  Do
-     not install executables here, they probably ought to go in
-     `$(libexecdir)' instead.  The value of `libdir' should normally be
-     `/usr/local/lib', but write it as `$(exec_prefix)/lib'.  (If you
-     are using Autoconf, write it as `@libdir@'.)
-
-`infodir'
-     The directory for installing the Info files for this package.  By
-     default, it should be `/usr/local/info', but it should be written
-     as `$(prefix)/info'.  (If you are using Autoconf, write it as
-     `@infodir@'.)
-
-`lispdir'
-     The directory for installing any Emacs Lisp files in this package.
-     By default, it should be `/usr/local/share/emacs/site-lisp', but
-     it should be written as `$(prefix)/share/emacs/site-lisp'.
-
-     If you are using Autoconf, write the default as `@lispdir@'.  In
-     order to make `@lispdir@' work, you need the following lines in
-     your `configure.in' file:
-
-          lispdir='${datadir}/emacs/site-lisp'
-          AC_SUBST(lispdir)
-
-`includedir'
-     The directory for installing header files to be included by user
-     programs with the C `#include' preprocessor directive.  This
-     should normally be `/usr/local/include', but write it as
-     `$(prefix)/include'.  (If you are using Autoconf, write it as
-     `@includedir@'.)
-
-     Most compilers other than GCC do not look for header files in
-     directory `/usr/local/include'.  So installing the header files
-     this way is only useful with GCC.  Sometimes this is not a problem
-     because some libraries are only really intended to work with GCC.
-     But some libraries are intended to work with other compilers.
-     They should install their header files in two places, one
-     specified by `includedir' and one specified by `oldincludedir'.
-
-`oldincludedir'
-     The directory for installing `#include' header files for use with
-     compilers other than GCC.  This should normally be `/usr/include'.
-     (If you are using Autoconf, you can write it as `@oldincludedir@'.)
-
-     The Makefile commands should check whether the value of
-     `oldincludedir' is empty.  If it is, they should not try to use
-     it; they should cancel the second installation of the header files.
-
-     A package should not replace an existing header in this directory
-     unless the header came from the same package.  Thus, if your Foo
-     package provides a header file `foo.h', then it should install the
-     header file in the `oldincludedir' directory if either (1) there
-     is no `foo.h' there or (2) the `foo.h' that exists came from the
-     Foo package.
-
-     To tell whether `foo.h' came from the Foo package, put a magic
-     string in the file--part of a comment--and `grep' for that string.
-
-   Unix-style man pages are installed in one of the following:
-
-`mandir'
-     The top-level directory for installing the man pages (if any) for
-     this package.  It will normally be `/usr/local/man', but you should
-     write it as `$(prefix)/man'.  (If you are using Autoconf, write it
-     as `@mandir@'.)
-
-`man1dir'
-     The directory for installing section 1 man pages.  Write it as
-     `$(mandir)/man1'.
-
-`man2dir'
-     The directory for installing section 2 man pages.  Write it as
-     `$(mandir)/man2'
-
-`...'
-     *Don't make the primary documentation for any GNU software be a
-     man page.  Write a manual in Texinfo instead.  Man pages are just
-     for the sake of people running GNU software on Unix, which is a
-     secondary application only.*
-
-`manext'
-     The file name extension for the installed man page.  This should
-     contain a period followed by the appropriate digit; it should
-     normally be `.1'.
-
-`man1ext'
-     The file name extension for installed section 1 man pages.
-
-`man2ext'
-     The file name extension for installed section 2 man pages.
-
-`...'
-     Use these names instead of `manext' if the package needs to
-     install man pages in more than one section of the manual.
-
-   And finally, you should set the following variable:
-
-`srcdir'
-     The directory for the sources being compiled.  The value of this
-     variable is normally inserted by the `configure' shell script.
-     (If you are using Autconf, use `srcdir = @srcdir@'.)
-
-   For example:
-
-     # Common prefix for installation directories.
-     # NOTE: This directory must exist when you start the install.
-     prefix = /usr/local
-     exec_prefix = $(prefix)
-     # Where to put the executable for the command `gcc'.
-     bindir = $(exec_prefix)/bin
-     # Where to put the directories used by the compiler.
-     libexecdir = $(exec_prefix)/libexec
-     # Where to put the Info files.
-     infodir = $(prefix)/info
-
-   If your program installs a large number of files into one of the
-standard user-specified directories, it might be useful to group them
-into a subdirectory particular to that program.  If you do this, you
-should write the `install' rule to create these subdirectories.
-
-   Do not expect the user to include the subdirectory name in the value
-of any of the variables listed above.  The idea of having a uniform set
-of variable names for installation directories is to enable the user to
-specify the exact same values for several different GNU packages.  In
-order for this to be useful, all the packages must be designed so that
-they will work sensibly when the user does so.
-
-
-File: standards.info,  Node: Standard Targets,  Next: Install Command Categories,  Prev: Directory Variables,  Up: Makefile Conventions
-
-7.2.5 Standard Targets for Users
---------------------------------
-
-All GNU programs should have the following targets in their Makefiles:
-
-`all'
-     Compile the entire program.  This should be the default target.
-     This target need not rebuild any documentation files; Info files
-     should normally be included in the distribution, and DVI files
-     should be made only when explicitly asked for.
-
-     By default, the Make rules should compile and link with `-g', so
-     that executable programs have debugging symbols.  Users who don't
-     mind being helpless can strip the executables later if they wish.
-
-`install'
-     Compile the program and copy the executables, libraries, and so on
-     to the file names where they should reside for actual use.  If
-     there is a simple test to verify that a program is properly
-     installed, this target should run that test.
-
-     Do not strip executables when installing them.  Devil-may-care
-     users can use the `install-strip' target to do that.
-
-     If possible, write the `install' target rule so that it does not
-     modify anything in the directory where the program was built,
-     provided `make all' has just been done.  This is convenient for
-     building the program under one user name and installing it under
-     another.
-
-     The commands should create all the directories in which files are
-     to be installed, if they don't already exist.  This includes the
-     directories specified as the values of the variables `prefix' and
-     `exec_prefix', as well as all subdirectories that are needed.  One
-     way to do this is by means of an `installdirs' target as described
-     below.
-
-     Use `-' before any command for installing a man page, so that
-     `make' will ignore any errors.  This is in case there are systems
-     that don't have the Unix man page documentation system installed.
-
-     The way to install Info files is to copy them into `$(infodir)'
-     with `$(INSTALL_DATA)' (*note Command Variables::), and then run
-     the `install-info' program if it is present.  `install-info' is a
-     program that edits the Info `dir' file to add or update the menu
-     entry for the given Info file; it is part of the Texinfo package.
-     Here is a sample rule to install an Info file:
-
-          $(DESTDIR)$(infodir)/foo.info: foo.info
-                  $(POST_INSTALL)
-          # There may be a newer info file in . than in srcdir.
-                  -if test -f foo.info; then d=.; \
-                   else d=$(srcdir); fi; \
-                  $(INSTALL_DATA) $$d/foo.info $(DESTDIR)$@; \
-          # Run install-info only if it exists.
-          # Use `if' instead of just prepending `-' to the
-          # line so we notice real errors from install-info.
-          # We use `$(SHELL) -c' because some shells do not
-          # fail gracefully when there is an unknown command.
-                  if $(SHELL) -c 'install-info --version' \
-                     >/dev/null 2>&1; then \
-                    install-info --dir-file=$(DESTDIR)$(infodir)/dir \
-                                 $(DESTDIR)$(infodir)/foo.info; \
-                  else true; fi
-
-     When writing the `install' target, you must classify all the
-     commands into three categories: normal ones, "pre-installation"
-     commands and "post-installation" commands.  *Note Install Command
-     Categories::.
-
-`uninstall'
-     Delete all the installed files--the copies that the `install'
-     target creates.
-
-     This rule should not modify the directories where compilation is
-     done, only the directories where files are installed.
-
-     The uninstallation commands are divided into three categories,
-     just like the installation commands.  *Note Install Command
-     Categories::.
-
-`install-strip'
-     Like `install', but strip the executable files while installing
-     them.  In simple cases, this target can use the `install' target in
-     a simple way:
-
-          install-strip:
-                  $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' \
-                          install
-
-     But if the package installs scripts as well as real executables,
-     the `install-strip' target can't just refer to the `install'
-     target; it has to strip the executables but not the scripts.
-
-     `install-strip' should not strip the executables in the build
-     directory which are being copied for installation.  It should only
-     strip the copies that are installed.
-
-     Normally we do not recommend stripping an executable unless you
-     are sure the program has no bugs.  However, it can be reasonable
-     to install a stripped executable for actual execution while saving
-     the unstripped executable elsewhere in case there is a bug.
-
-`clean'
-     Delete all files from the current directory that are normally
-     created by building the program.  Don't delete the files that
-     record the configuration.  Also preserve files that could be made
-     by building, but normally aren't because the distribution comes
-     with them.
-
-     Delete `.dvi' files here if they are not part of the distribution.
-
-`distclean'
-     Delete all files from the current directory that are created by
-     configuring or building the program.  If you have unpacked the
-     source and built the program without creating any other files,
-     `make distclean' should leave only the files that were in the
-     distribution.
-
-`mostlyclean'
-     Like `clean', but may refrain from deleting a few files that people
-     normally don't want to recompile.  For example, the `mostlyclean'
-     target for GCC does not delete `libgcc.a', because recompiling it
-     is rarely necessary and takes a lot of time.
-
-`maintainer-clean'
-     Delete almost everything from the current directory that can be
-     reconstructed with this Makefile.  This typically includes
-     everything deleted by `distclean', plus more: C source files
-     produced by Bison, tags tables, Info files, and so on.
-
-     The reason we say "almost everything" is that running the command
-     `make maintainer-clean' should not delete `configure' even if
-     `configure' can be remade using a rule in the Makefile.  More
-     generally, `make maintainer-clean' should not delete anything that
-     needs to exist in order to run `configure' and then begin to build
-     the program.  This is the only exception; `maintainer-clean' should
-     delete everything else that can be rebuilt.
-
-     The `maintainer-clean' target is intended to be used by a
-     maintainer of the package, not by ordinary users.  You may need
-     special tools to reconstruct some of the files that `make
-     maintainer-clean' deletes.  Since these files are normally
-     included in the distribution, we don't take care to make them easy
-     to reconstruct.  If you find you need to unpack the full
-     distribution again, don't blame us.
-
-     To help make users aware of this, the commands for the special
-     `maintainer-clean' target should start with these two:
-
-          @echo 'This command is intended for maintainers to use; it'
-          @echo 'deletes files that may need special tools to rebuild.'
-
-`TAGS'
-     Update a tags table for this program.
-
-`info'
-     Generate any Info files needed.  The best way to write the rules
-     is as follows:
-
-          info: foo.info
-
-          foo.info: foo.texi chap1.texi chap2.texi
-                  $(MAKEINFO) $(srcdir)/foo.texi
-
-     You must define the variable `MAKEINFO' in the Makefile.  It should
-     run the `makeinfo' program, which is part of the Texinfo
-     distribution.
-
-     Normally a GNU distribution comes with Info files, and that means
-     the Info files are present in the source directory.  Therefore,
-     the Make rule for an info file should update it in the source
-     directory.  When users build the package, ordinarily Make will not
-     update the Info files because they will already be up to date.
-
-`dvi'
-     Generate DVI files for all Texinfo documentation.  For example:
-
-          dvi: foo.dvi
-
-          foo.dvi: foo.texi chap1.texi chap2.texi
-                  $(TEXI2DVI) $(srcdir)/foo.texi
-
-     You must define the variable `TEXI2DVI' in the Makefile.  It should
-     run the program `texi2dvi', which is part of the Texinfo
-     distribution.(1)  Alternatively, write just the dependencies, and
-     allow GNU `make' to provide the command.
-
-`dist'
-     Create a distribution tar file for this program.  The tar file
-     should be set up so that the file names in the tar file start with
-     a subdirectory name which is the name of the package it is a
-     distribution for.  This name can include the version number.
-
-     For example, the distribution tar file of GCC version 1.40 unpacks
-     into a subdirectory named `gcc-1.40'.
-
-     The easiest way to do this is to create a subdirectory
-     appropriately named, use `ln' or `cp' to install the proper files
-     in it, and then `tar' that subdirectory.
-
-     Compress the tar file with `gzip'.  For example, the actual
-     distribution file for GCC version 1.40 is called `gcc-1.40.tar.gz'.
-
-     The `dist' target should explicitly depend on all non-source files
-     that are in the distribution, to make sure they are up to date in
-     the distribution.  *Note Making Releases: Releases.
-
-`check'
-     Perform self-tests (if any).  The user must build the program
-     before running the tests, but need not install the program; you
-     should write the self-tests so that they work when the program is
-     built but not installed.
-
-   The following targets are suggested as conventional names, for
-programs in which they are useful.
-
-`installcheck'
-     Perform installation tests (if any).  The user must build and
-     install the program before running the tests.  You should not
-     assume that `$(bindir)' is in the search path.
-
-`installdirs'
-     It's useful to add a target named `installdirs' to create the
-     directories where files are installed, and their parent
-     directories.  There is a script called `mkinstalldirs' which is
-     convenient for this; you can find it in the Texinfo package.  You
-     can use a rule like this:
-
-          # Make sure all installation directories (e.g. $(bindir))
-          # actually exist by making them if necessary.
-          installdirs: mkinstalldirs
-                  $(srcdir)/mkinstalldirs $(bindir) $(datadir) \
-                                          $(libdir) $(infodir) \
-                                          $(mandir)
-
-     or, if you wish to support `DESTDIR',
-
-          # Make sure all installation directories (e.g. $(bindir))
-          # actually exist by making them if necessary.
-          installdirs: mkinstalldirs
-                  $(srcdir)/mkinstalldirs \
-                      $(DESTDIR)$(bindir) $(DESTDIR)$(datadir) \
-                      $(DESTDIR)$(libdir) $(DESTDIR)$(infodir) \
-                      $(DESTDIR)$(mandir)
-
-     This rule should not modify the directories where compilation is
-     done.  It should do nothing but create installation directories.
-
-   ---------- Footnotes ----------
-
-   (1) `texi2dvi' uses TeX to do the real work of formatting. TeX is
-not distributed with Texinfo.
-
-
-File: standards.info,  Node: Install Command Categories,  Prev: Standard Targets,  Up: Makefile Conventions
-
-7.2.6 Install Command Categories
---------------------------------
-
-When writing the `install' target, you must classify all the commands
-into three categories: normal ones, "pre-installation" commands and
-"post-installation" commands.
-
-   Normal commands move files into their proper places, and set their
-modes.  They may not alter any files except the ones that come entirely
-from the package they belong to.
-
-   Pre-installation and post-installation commands may alter other
-files; in particular, they can edit global configuration files or data
-bases.
-
-   Pre-installation commands are typically executed before the normal
-commands, and post-installation commands are typically run after the
-normal commands.
-
-   The most common use for a post-installation command is to run
-`install-info'.  This cannot be done with a normal command, since it
-alters a file (the Info directory) which does not come entirely and
-solely from the package being installed.  It is a post-installation
-command because it needs to be done after the normal command which
-installs the package's Info files.
-
-   Most programs don't need any pre-installation commands, but we have
-the feature just in case it is needed.
-
-   To classify the commands in the `install' rule into these three
-categories, insert "category lines" among them.  A category line
-specifies the category for the commands that follow.
-
-   A category line consists of a tab and a reference to a special Make
-variable, plus an optional comment at the end.  There are three
-variables you can use, one for each category; the variable name
-specifies the category.  Category lines are no-ops in ordinary execution
-because these three Make variables are normally undefined (and you
-_should not_ define them in the makefile).
-
-   Here are the three possible category lines, each with a comment that
-explains what it means:
-
-             $(PRE_INSTALL)     # Pre-install commands follow.
-             $(POST_INSTALL)    # Post-install commands follow.
-             $(NORMAL_INSTALL)  # Normal commands follow.
-
-   If you don't use a category line at the beginning of the `install'
-rule, all the commands are classified as normal until the first category
-line.  If you don't use any category lines, all the commands are
-classified as normal.
-
-   These are the category lines for `uninstall':
-
-             $(PRE_UNINSTALL)     # Pre-uninstall commands follow.
-             $(POST_UNINSTALL)    # Post-uninstall commands follow.
-             $(NORMAL_UNINSTALL)  # Normal commands follow.
-
-   Typically, a pre-uninstall command would be used for deleting entries
-from the Info directory.
-
-   If the `install' or `uninstall' target has any dependencies which
-act as subroutines of installation, then you should start _each_
-dependency's commands with a category line, and start the main target's
-commands with a category line also.  This way, you can ensure that each
-command is placed in the right category regardless of which of the
-dependencies actually run.
-
-   Pre-installation and post-installation commands should not run any
-programs except for these:
-
-     [ basename bash cat chgrp chmod chown cmp cp dd diff echo
-     egrep expand expr false fgrep find getopt grep gunzip gzip
-     hostname install install-info kill ldconfig ln ls md5sum
-     mkdir mkfifo mknod mv printenv pwd rm rmdir sed sort tee
-     test touch true uname xargs yes
-
-   The reason for distinguishing the commands in this way is for the
-sake of making binary packages.  Typically a binary package contains
-all the executables and other files that need to be installed, and has
-its own method of installing them--so it does not need to run the normal
-installation commands.  But installing the binary package does need to
-execute the pre-installation and post-installation commands.
-
-   Programs to build binary packages work by extracting the
-pre-installation and post-installation commands.  Here is one way of
-extracting the pre-installation commands:
-
-     make -n install -o all \
-           PRE_INSTALL=pre-install \
-           POST_INSTALL=post-install \
-           NORMAL_INSTALL=normal-install \
-       | gawk -f pre-install.awk
-
-where the file `pre-install.awk' could contain this:
-
-     $0 ~ /^\t[ \t]*(normal_install|post_install)[ \t]*$/ {on = 0}
-     on {print $0}
-     $0 ~ /^\t[ \t]*pre_install[ \t]*$/ {on = 1}
-
-   The resulting file of pre-installation commands is executed as a
-shell script as part of installing the binary package.
-
-
-File: standards.info,  Node: Releases,  Prev: Makefile Conventions,  Up: Managing Releases
-
-7.3 Making Releases
-===================
-
-Package the distribution of `Foo version 69.96' up in a gzipped tar
-file with the name `foo-69.96.tar.gz'.  It should unpack into a
-subdirectory named `foo-69.96'.
-
-   Building and installing the program should never modify any of the
-files contained in the distribution.  This means that all the files
-that form part of the program in any way must be classified into "source
-files" and "non-source files".  Source files are written by humans and
-never changed automatically; non-source files are produced from source
-files by programs under the control of the Makefile.
-
-   The distribution should contain a file named `README' which gives
-the name of the package, and a general description of what it does.  It
-is also good to explain the purpose of each of the first-level
-subdirectories in the package, if there are any.  The `README' file
-should either state the version number of the package, or refer to where
-in the package it can be found.
-
-   The `README' file should refer to the file `INSTALL', which should
-contain an explanation of the installation procedure.
-
-   The `README' file should also refer to the file which contains the
-copying conditions.  The GNU GPL, if used, should be in a file called
-`COPYING'.  If the GNU LGPL is used, it should be in a file called
-`COPYING.LIB'.
-
-   Naturally, all the source files must be in the distribution.  It is
-okay to include non-source files in the distribution, provided they are
-up-to-date and machine-independent, so that building the distribution
-normally will never modify them.  We commonly include non-source files
-produced by Bison, `lex', TeX, and `makeinfo'; this helps avoid
-unnecessary dependencies between our distributions, so that users can
-install whichever packages they want to install.
-
-   Non-source files that might actually be modified by building and
-installing the program should *never* be included in the distribution.
-So if you do distribute non-source files, always make sure they are up
-to date when you make a new distribution.
-
-   Make sure that the directory into which the distribution unpacks (as
-well as any subdirectories) are all world-writable (octal mode 777).
-This is so that old versions of `tar' which preserve the ownership and
-permissions of the files from the tar archive will be able to extract
-all the files even if the user is unprivileged.
-
-   Make sure that all the files in the distribution are world-readable.
-
-   Make sure that no file name in the distribution is more than 14
-characters long.  Likewise, no file created by building the program
-should have a name longer than 14 characters.  The reason for this is
-that some systems adhere to a foolish interpretation of the POSIX
-standard, and refuse to open a longer name, rather than truncating as
-they did in the past.
-
-   Don't include any symbolic links in the distribution itself.  If the
-tar file contains symbolic links, then people cannot even unpack it on
-systems that don't support symbolic links.  Also, don't use multiple
-names for one file in different directories, because certain file
-systems cannot handle this and that prevents unpacking the distribution.
-
-   Try to make sure that all the file names will be unique on MS-DOS.  A
-name on MS-DOS consists of up to 8 characters, optionally followed by a
-period and up to three characters.  MS-DOS will truncate extra
-characters both before and after the period.  Thus, `foobarhacker.c'
-and `foobarhacker.o' are not ambiguous; they are truncated to
-`foobarha.c' and `foobarha.o', which are distinct.
-
-   Include in your distribution a copy of the `texinfo.tex' you used to
-test print any `*.texinfo' or `*.texi' files.
-
-   Likewise, if your program uses small GNU software packages like
-regex, getopt, obstack, or termcap, include them in the distribution
-file.  Leaving them out would make the distribution file a little
-smaller at the expense of possible inconvenience to a user who doesn't
-know what other files to get.
-
-
-File: standards.info,  Node: References,  Next: Copying This Manual,  Prev: Managing Releases,  Up: Top
-
-8 References to Non-Free Software and Documentation
-***************************************************
-
-A GNU program should not recommend use of any non-free program.  We
-can't stop some people from writing proprietary programs, or stop other
-people from using them, but we can and should avoid helping to
-advertise them to new potential customers.  Proprietary software is a
-social and ethical problem, and the point of GNU is to solve that
-problem.
-
-   When a non-free program or system is well known, you can mention it
-in passing--that is harmless, since users who might want to use it
-probably already know about it.  For instance, it is fine to explain
-how to build your package on top of some non-free operating system, or
-how to use it together with some widely used non-free program.
-
-   However, you should give only the necessary information to help those
-who already use the non-free program to use your program with it--don't
-give, or refer to, any further information about the proprietary
-program, and don't imply that the proprietary program enhances your
-program, or that its existence is in any way a good thing.  The goal
-should be that people already using the proprietary program will get
-the advice they need about how to use your free program, while people
-who don't already use the proprietary program will not see anything to
-lead them to take an interest in it.
-
-   If a non-free program or system is obscure in your program's domain,
-your program should not mention or support it at all, since doing so
-would tend to popularize the non-free program more than it popularizes
-your program.  (You cannot hope to find many additional users among the
-users of Foobar if the users of Foobar are few.)
-
-   A GNU package should not refer the user to any non-free documentation
-for free software.  Free documentation that can be included in free
-operating systems is essential for completing the GNU system, so it is
-a major focus of the GNU Project; to recommend use of documentation
-that we are not allowed to use in GNU would undermine the efforts to
-get documentation that we can include.  So GNU packages should never
-recommend non-free documentation.
-
-
-File: standards.info,  Node: Copying This Manual,  Next: Index,  Prev: References,  Up: Top
-
-Appendix A Copying This Manual
-******************************
-
-* Menu:
-
-* GNU Free Documentation License::  License for copying this manual
-
-
-File: standards.info,  Node: GNU Free Documentation License,  Up: Copying This Manual
-
-Appendix B GNU Free Documentation License
-*****************************************
-
-                        Version 1.1, March 2000
-
-     Copyright (C) 2000  Free Software Foundation, Inc.
-     59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
-
-     Everyone is permitted to copy and distribute verbatim copies
-     of this license document, but changing it is not allowed.
-
-
-  0. PREAMBLE
-
-     The purpose of this License is to make a manual, textbook, or other
-     written document "free" in the sense of freedom: to assure everyone
-     the effective freedom to copy and redistribute it, with or without
-     modifying it, either commercially or noncommercially.  Secondarily,
-     this License preserves for the author and publisher a way to get
-     credit for their work, while not being considered responsible for
-     modifications made by others.
-
-     This License is a kind of "copyleft", which means that derivative
-     works of the document must themselves be free in the same sense.
-     It complements the GNU General Public License, which is a copyleft
-     license designed for free software.
-
-     We have designed this License in order to use it for manuals for
-     free software, because free software needs free documentation: a
-     free program should come with manuals providing the same freedoms
-     that the software does.  But this License is not limited to
-     software manuals; it can be used for any textual work, regardless
-     of subject matter or whether it is published as a printed book.
-     We recommend this License principally for works whose purpose is
-     instruction or reference.
-
-
-  1. APPLICABILITY AND DEFINITIONS
-
-     This License applies to any manual or other work that contains a
-     notice placed by the copyright holder saying it can be distributed
-     under the terms of this License.  The "Document", below, refers to
-     any such manual or work.  Any member of the public is a licensee,
-     and is addressed as "you."
-
-     A "Modified Version" of the Document means any work containing the
-     Document or a portion of it, either copied verbatim, or with
-     modifications and/or translated into another language.
-
-     A "Secondary Section" is a named appendix or a front-matter
-     section of the Document that deals exclusively with the
-     relationship of the publishers or authors of the Document to the
-     Document's overall subject (or to related matters) and contains
-     nothing that could fall directly within that overall subject.
-     (For example, if the Document is in part a textbook of
-     mathematics, a Secondary Section may not explain any mathematics.)
-     The relationship could be a matter of historical connection with
-     the subject or with related matters, or of legal, commercial,
-     philosophical, ethical or political position regarding them.
-
-     The "Invariant Sections" are certain Secondary Sections whose
-     titles are designated, as being those of Invariant Sections, in
-     the notice that says that the Document is released under this
-     License.
-
-     The "Cover Texts" are certain short passages of text that are
-     listed, as Front-Cover Texts or Back-Cover Texts, in the notice
-     that says that the Document is released under this License.
-
-     A "Transparent" copy of the Document means a machine-readable copy,
-     represented in a format whose specification is available to the
-     general public, whose contents can be viewed and edited directly
-     and straightforwardly with generic text editors or (for images
-     composed of pixels) generic paint programs or (for drawings) some
-     widely available drawing editor, and that is suitable for input to
-     text formatters or for automatic translation to a variety of
-     formats suitable for input to text formatters.  A copy made in an
-     otherwise Transparent file format whose markup has been designed
-     to thwart or discourage subsequent modification by readers is not
-     Transparent.  A copy that is not "Transparent" is called "Opaque."
-
-     Examples of suitable formats for Transparent copies include plain
-     ASCII without markup, Texinfo input format, LaTeX input format,
-     SGML or XML using a publicly available DTD, and
-     standard-conforming simple HTML designed for human modification.
-     Opaque formats include PostScript, PDF, proprietary formats that
-     can be read and edited only by proprietary word processors, SGML
-     or XML for which the DTD and/or processing tools are not generally
-     available, and the machine-generated HTML produced by some word
-     processors for output purposes only.
-
-     The "Title Page" means, for a printed book, the title page itself,
-     plus such following pages as are needed to hold, legibly, the
-     material this License requires to appear in the title page.  For
-     works in formats which do not have any title page as such, "Title
-     Page" means the text near the most prominent appearance of the
-     work's title, preceding the beginning of the body of the text.
-
-  2. VERBATIM COPYING
-
-     You may copy and distribute the Document in any medium, either
-     commercially or noncommercially, provided that this License, the
-     copyright notices, and the license notice saying this License
-     applies to the Document are reproduced in all copies, and that you
-     add no other conditions whatsoever to those of this License.  You
-     may not use technical measures to obstruct or control the reading
-     or further copying of the copies you make or distribute.  However,
-     you may accept compensation in exchange for copies.  If you
-     distribute a large enough number of copies you must also follow
-     the conditions in section 3.
-
-     You may also lend copies, under the same conditions stated above,
-     and you may publicly display copies.
-
-  3. COPYING IN QUANTITY
-
-     If you publish printed copies of the Document numbering more than
-     100, and the Document's license notice requires Cover Texts, you
-     must enclose the copies in covers that carry, clearly and legibly,
-     all these Cover Texts: Front-Cover Texts on the front cover, and
-     Back-Cover Texts on the back cover.  Both covers must also clearly
-     and legibly identify you as the publisher of these copies.  The
-     front cover must present the full title with all words of the
-     title equally prominent and visible.  You may add other material
-     on the covers in addition.  Copying with changes limited to the
-     covers, as long as they preserve the title of the Document and
-     satisfy these conditions, can be treated as verbatim copying in
-     other respects.
-
-     If the required texts for either cover are too voluminous to fit
-     legibly, you should put the first ones listed (as many as fit
-     reasonably) on the actual cover, and continue the rest onto
-     adjacent pages.
-
-     If you publish or distribute Opaque copies of the Document
-     numbering more than 100, you must either include a
-     machine-readable Transparent copy along with each Opaque copy, or
-     state in or with each Opaque copy a publicly-accessible
-     computer-network location containing a complete Transparent copy
-     of the Document, free of added material, which the general
-     network-using public has access to download anonymously at no
-     charge using public-standard network protocols.  If you use the
-     latter option, you must take reasonably prudent steps, when you
-     begin distribution of Opaque copies in quantity, to ensure that
-     this Transparent copy will remain thus accessible at the stated
-     location until at least one year after the last time you
-     distribute an Opaque copy (directly or through your agents or
-     retailers) of that edition to the public.
-
-     It is requested, but not required, that you contact the authors of
-     the Document well before redistributing any large number of
-     copies, to give them a chance to provide you with an updated
-     version of the Document.
-
-  4. MODIFICATIONS
-
-     You may copy and distribute a Modified Version of the Document
-     under the conditions of sections 2 and 3 above, provided that you
-     release the Modified Version under precisely this License, with
-     the Modified Version filling the role of the Document, thus
-     licensing distribution and modification of the Modified Version to
-     whoever possesses a copy of it.  In addition, you must do these
-     things in the Modified Version:
-
-     A. Use in the Title Page (and on the covers, if any) a title
-     distinct    from that of the Document, and from those of previous
-     versions    (which should, if there were any, be listed in the
-     History section    of the Document).  You may use the same title
-     as a previous version    if the original publisher of that version
-     gives permission.
-     B. List on the Title Page, as authors, one or more persons or
-     entities    responsible for authorship of the modifications in the
-     Modified    Version, together with at least five of the principal
-     authors of the    Document (all of its principal authors, if it
-     has less than five).
-     C. State on the Title page the name of the publisher of the
-     Modified Version, as the publisher.
-     D. Preserve all the copyright notices of the Document.
-     E. Add an appropriate copyright notice for your modifications
-     adjacent to the other copyright notices.
-     F. Include, immediately after the copyright notices, a license
-     notice    giving the public permission to use the Modified Version
-     under the    terms of this License, in the form shown in the
-     Addendum below.
-     G. Preserve in that license notice the full lists of Invariant
-     Sections    and required Cover Texts given in the Document's
-     license notice.
-     H. Include an unaltered copy of this License.
-     I. Preserve the section entitled "History", and its title, and add
-     to    it an item stating at least the title, year, new authors, and
-       publisher of the Modified Version as given on the Title Page.
-     If    there is no section entitled "History" in the Document,
-     create one    stating the title, year, authors, and publisher of
-     the Document as    given on its Title Page, then add an item
-     describing the Modified    Version as stated in the previous
-     sentence.
-     J. Preserve the network location, if any, given in the Document for
-       public access to a Transparent copy of the Document, and
-     likewise    the network locations given in the Document for
-     previous versions    it was based on.  These may be placed in the
-     "History" section.     You may omit a network location for a work
-     that was published at    least four years before the Document
-     itself, or if the original    publisher of the version it refers
-     to gives permission.
-     K. In any section entitled "Acknowledgements" or "Dedications",
-     preserve the section's title, and preserve in the section all the
-      substance and tone of each of the contributor acknowledgements
-     and/or dedications given therein.
-     L. Preserve all the Invariant Sections of the Document,
-     unaltered in their text and in their titles.  Section numbers
-     or the equivalent are not considered part of the section titles.
-     M. Delete any section entitled "Endorsements."  Such a section
-     may not be included in the Modified Version.
-     N. Do not retitle any existing section as "Endorsements"    or to
-     conflict in title with any Invariant Section.
-
-     If the Modified Version includes new front-matter sections or
-     appendices that qualify as Secondary Sections and contain no
-     material copied from the Document, you may at your option
-     designate some or all of these sections as invariant.  To do this,
-     add their titles to the list of Invariant Sections in the Modified
-     Version's license notice.  These titles must be distinct from any
-     other section titles.
-
-     You may add a section entitled "Endorsements", provided it contains
-     nothing but endorsements of your Modified Version by various
-     parties-for example, statements of peer review or that the text has
-     been approved by an organization as the authoritative definition
-     of a standard.
-
-     You may add a passage of up to five words as a Front-Cover Text,
-     and a passage of up to 25 words as a Back-Cover Text, to the end
-     of the list of Cover Texts in the Modified Version.  Only one
-     passage of Front-Cover Text and one of Back-Cover Text may be
-     added by (or through arrangements made by) any one entity.  If the
-     Document already includes a cover text for the same cover,
-     previously added by you or by arrangement made by the same entity
-     you are acting on behalf of, you may not add another; but you may
-     replace the old one, on explicit permission from the previous
-     publisher that added the old one.
-
-     The author(s) and publisher(s) of the Document do not by this
-     License give permission to use their names for publicity for or to
-     assert or imply endorsement of any Modified Version.
-
-  5. COMBINING DOCUMENTS
-
-     You may combine the Document with other documents released under
-     this License, under the terms defined in section 4 above for
-     modified versions, provided that you include in the combination
-     all of the Invariant Sections of all of the original documents,
-     unmodified, and list them all as Invariant Sections of your
-     combined work in its license notice.
-
-     The combined work need only contain one copy of this License, and
-     multiple identical Invariant Sections may be replaced with a single
-     copy.  If there are multiple Invariant Sections with the same name
-     but different contents, make the title of each such section unique
-     by adding at the end of it, in parentheses, the name of the
-     original author or publisher of that section if known, or else a
-     unique number.  Make the same adjustment to the section titles in
-     the list of Invariant Sections in the license notice of the
-     combined work.
-
-     In the combination, you must combine any sections entitled
-     "History" in the various original documents, forming one section
-     entitled "History"; likewise combine any sections entitled
-     "Acknowledgements", and any sections entitled "Dedications."  You
-     must delete all sections entitled "Endorsements."
-
-  6. COLLECTIONS OF DOCUMENTS
-
-     You may make a collection consisting of the Document and other
-     documents released under this License, and replace the individual
-     copies of this License in the various documents with a single copy
-     that is included in the collection, provided that you follow the
-     rules of this License for verbatim copying of each of the
-     documents in all other respects.
-
-     You may extract a single document from such a collection, and
-     distribute it individually under this License, provided you insert
-     a copy of this License into the extracted document, and follow
-     this License in all other respects regarding verbatim copying of
-     that document.
-
-  7. AGGREGATION WITH INDEPENDENT WORKS
-
-     A compilation of the Document or its derivatives with other
-     separate and independent documents or works, in or on a volume of
-     a storage or distribution medium, does not as a whole count as a
-     Modified Version of the Document, provided no compilation
-     copyright is claimed for the compilation.  Such a compilation is
-     called an "aggregate", and this License does not apply to the
-     other self-contained works thus compiled with the Document, on
-     account of their being thus compiled, if they are not themselves
-     derivative works of the Document.
-
-     If the Cover Text requirement of section 3 is applicable to these
-     copies of the Document, then if the Document is less than one
-     quarter of the entire aggregate, the Document's Cover Texts may be
-     placed on covers that surround only the Document within the
-     aggregate.  Otherwise they must appear on covers around the whole
-     aggregate.
-
-  8. TRANSLATION
-
-     Translation is considered a kind of modification, so you may
-     distribute translations of the Document under the terms of section
-     4.  Replacing Invariant Sections with translations requires special
-     permission from their copyright holders, but you may include
-     translations of some or all Invariant Sections in addition to the
-     original versions of these Invariant Sections.  You may include a
-     translation of this License provided that you also include the
-     original English version of this License.  In case of a
-     disagreement between the translation and the original English
-     version of this License, the original English version will prevail.
-
-  9. TERMINATION
-
-     You may not copy, modify, sublicense, or distribute the Document
-     except as expressly provided for under this License.  Any other
-     attempt to copy, modify, sublicense or distribute the Document is
-     void, and will automatically terminate your rights under this
-     License.  However, parties who have received copies, or rights,
-     from you under this License will not have their licenses
-     terminated so long as such parties remain in full compliance.
-
- 10. FUTURE REVISIONS OF THIS LICENSE
-
-     The Free Software Foundation may publish new, revised versions of
-     the GNU Free Documentation License from time to time.  Such new
-     versions will be similar in spirit to the present version, but may
-     differ in detail to address new problems or concerns.  See
-     http://www.gnu.org/copyleft/.
-
-     Each version of the License is given a distinguishing version
-     number.  If the Document specifies that a particular numbered
-     version of this License "or any later version" applies to it, you
-     have the option of following the terms and conditions either of
-     that specified version or of any later version that has been
-     published (not as a draft) by the Free Software Foundation.  If
-     the Document does not specify a version number of this License,
-     you may choose any version ever published (not as a draft) by the
-     Free Software Foundation.
-
-
-ADDENDUM: How to use this License for your documents
-====================================================
-
-To use this License in a document you have written, include a copy of
-the License in the document and put the following copyright and license
-notices just after the title page:
-
-     Copyright (C)  YEAR  YOUR NAME.
-     Permission is granted to copy, distribute and/or modify this document
-     under the terms of the GNU Free Documentation License, Version 1.1
-     or any later version published by the Free Software Foundation;
-     with the Invariant Sections being LIST THEIR TITLES, with the
-     Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
-     A copy of the license is included in the section entitled "GNU
-     Free Documentation License."
-
-   If you have no Invariant Sections, write "with no Invariant Sections"
-instead of saying which ones are invariant.  If you have no Front-Cover
-Texts, write "no Front-Cover Texts" instead of "Front-Cover Texts being
-LIST"; likewise for Back-Cover Texts.
-
-   If your document contains nontrivial examples of program code, we
-recommend releasing these examples in parallel under your choice of
-free software license, such as the GNU General Public License, to
-permit their use in free software.
-
-
-File: standards.info,  Node: Index,  Prev: Copying This Manual,  Up: Top
-
-Index
-*****
-
- [index ]
-* Menu:
-
-* #endif, commenting:                    Comments.            (line  54)
-* --help option:                         Command-Line Interfaces.
-                                                              (line 119)
-* --version option:                      Command-Line Interfaces.
-                                                              (line  34)
-* -Wall compiler option:                 Syntactic Conventions.
-                                                              (line  10)
-* accepting contributions:               Contributions.       (line   6)
-* address for bug reports:               Command-Line Interfaces.
-                                                              (line 125)
-* ANSI C standard:                       Standard C.          (line   6)
-* arbitrary limits on data:              Semantics.           (line   6)
-* autoconf:                              System Portability.  (line  23)
-* avoiding proprietary code:             Reading Non-Free Code.
-                                                              (line   6)
-* behavior, dependent on program's name: User Interfaces.     (line   6)
-* binary packages:                       Install Command Categories.
-                                                              (line  80)
-* bindir:                                Directory Variables. (line  45)
-* braces, in C source:                   Formatting.          (line   6)
-* bug reports:                           Command-Line Interfaces.
-                                                              (line 125)
-* canonical name of a program:           Command-Line Interfaces.
-                                                              (line  41)
-* casting pointers to integers:          CPU Portability.     (line  67)
-* change logs:                           Change Logs.         (line   6)
-* change logs, conditional changes:      Conditional Changes. (line   6)
-* change logs, style:                    Style of Change Logs.
-                                                              (line   6)
-* command-line arguments, decoding:      Semantics.           (line  46)
-* command-line interface:                Command-Line Interfaces.
-                                                              (line   6)
-* commenting:                            Comments.            (line   6)
-* compatibility with C and POSIX standards: Compatibility.    (line   6)
-* compiler warnings:                     Syntactic Conventions.
-                                                              (line  10)
-* conditional changes, and change logs:  Conditional Changes. (line   6)
-* conditionals, comments for:            Comments.            (line  54)
-* configure:                             Configuration.       (line   6)
-* control-L:                             Formatting.          (line 114)
-* conventions for makefiles:             Makefile Conventions.
-                                                              (line   6)
-* corba:                                 Graphical Interfaces.
-                                                              (line  16)
-* credits for manuals:                   Manual Credits.      (line   6)
-* data types, and portability:           CPU Portability.     (line   6)
-* declaration for system functions:      System Functions.    (line  21)
-* documentation:                         Documentation.       (line   6)
-* doschk:                                Names.               (line  38)
-* downloading this manual:               Preface.             (line  17)
-* error messages:                        Semantics.           (line  19)
-* error messages, formatting:            Errors.              (line   6)
-* exec_prefix:                           Directory Variables. (line  27)
-* expressions, splitting:                Formatting.          (line  77)
-* file usage:                            File Usage.          (line   6)
-* file-name limitations:                 Names.               (line  38)
-* formatting error messages:             Errors.              (line   6)
-* formatting source code:                Formatting.          (line   6)
-* formfeed:                              Formatting.          (line 114)
-* function argument, declaring:          Syntactic Conventions.
-                                                              (line   6)
-* function prototypes:                   Standard C.          (line  17)
-* getopt:                                Command-Line Interfaces.
-                                                              (line   6)
-* gettext:                               Internationalization.
-                                                              (line   6)
-* gnome:                                 Graphical Interfaces.
-                                                              (line  16)
-* graphical user interface:              Graphical Interfaces.
-                                                              (line   6)
-* gtk:                                   Graphical Interfaces.
-                                                              (line   6)
-* GUILE:                                 Source Language.     (line  38)
-* implicit int:                          Syntactic Conventions.
-                                                              (line   6)
-* impossible conditions:                 Semantics.           (line  70)
-* internationalization:                  Internationalization.
-                                                              (line   6)
-* legal aspects:                         Legal Issues.        (line   6)
-* legal papers:                          Contributions.       (line   6)
-* libexecdir:                            Directory Variables. (line  58)
-* libraries:                             Libraries.           (line   6)
-* library functions, and portability:    System Functions.    (line   6)
-* license for manuals:                   License for Manuals. (line   6)
-* lint:                                  Syntactic Conventions.
-                                                              (line 109)
-* long option names:                     Option Table.        (line   6)
-* long-named options:                    Command-Line Interfaces.
-                                                              (line  12)
-* makefile, conventions for:             Makefile Conventions.
-                                                              (line   6)
-* malloc return value:                   Semantics.           (line  25)
-* man pages:                             Man Pages.           (line   6)
-* manual structure:                      Manual Structure Details.
-                                                              (line   6)
-* memory allocation failure:             Semantics.           (line  25)
-* memory usage:                          Memory Usage.        (line   6)
-* message text, and internationalization: Internationalization.
-                                                              (line  29)
-* mmap:                                  Mmap.                (line   6)
-* multiple variables in a line:          Syntactic Conventions.
-                                                              (line  35)
-* names of variables, functions, and files: Names.            (line   6)
-* NEWS file:                             NEWS File.           (line   6)
-* non-POSIX systems, and portability:    System Portability.  (line  32)
-* non-standard extensions:               Using Extensions.    (line   6)
-* NUL characters:                        Semantics.           (line  11)
-* open brace:                            Formatting.          (line   6)
-* optional features, configure-time:     Configuration.       (line  76)
-* options for compatibility:             Compatibility.       (line  14)
-* output device and program's behavior:  User Interfaces.     (line  13)
-* packaging:                             Releases.            (line   6)
-* portability, and data types:           CPU Portability.     (line   6)
-* portability, and library functions:    System Functions.    (line   6)
-* portability, between system types:     System Portability.  (line   6)
-* POSIX compatibility:                   Compatibility.       (line   6)
-* POSIXLY_CORRECT, environment variable: Compatibility.       (line  21)
-* post-installation commands:            Install Command Categories.
-                                                              (line   6)
-* pre-installation commands:             Install Command Categories.
-                                                              (line   6)
-* prefix:                                Directory Variables. (line  17)
-* program configuration:                 Configuration.       (line   6)
-* program design:                        Design Advice.       (line   6)
-* program name and its behavior:         User Interfaces.     (line   6)
-* program's canonical name:              Command-Line Interfaces.
-                                                              (line  41)
-* programming languges:                  Source Language.     (line   6)
-* proprietary programs:                  Reading Non-Free Code.
-                                                              (line   6)
-* README file:                           Releases.            (line  17)
-* references to non-free material:       References.          (line   6)
-* releasing:                             Managing Releases.   (line   6)
-* sbindir:                               Directory Variables. (line  51)
-* signal handling:                       Semantics.           (line  59)
-* spaces before open-paren:              Formatting.          (line  71)
-* standard command-line options:         Command-Line Interfaces.
-                                                              (line  31)
-* standards for makefiles:               Makefile Conventions.
-                                                              (line   6)
-* string library functions:              System Functions.    (line  55)
-* syntactic conventions:                 Syntactic Conventions.
-                                                              (line   6)
-* table of long options:                 Option Table.        (line   6)
-* temporary files:                       Semantics.           (line  84)
-* temporary variables:                   Syntactic Conventions.
-                                                              (line  23)
-* texinfo.tex, in a distribution:        Releases.            (line  73)
-* TMPDIR environment variable:           Semantics.           (line  84)
-* trademarks:                            Trademarks.          (line   6)
-* where to obtain standards.texi:        Preface.             (line  17)
-
-
-
-Tag Table:
-Node: Top696
-Node: Preface1396
-Node: Legal Issues3616
-Node: Reading Non-Free Code4080
-Node: Contributions5808
-Node: Trademarks7962
-Node: Design Advice9025
-Node: Source Language9609
-Node: Compatibility11621
-Node: Using Extensions13249
-Node: Standard C14825
-Node: Conditional Compilation17228
-Node: Program Behavior18527
-Node: Semantics19446
-Node: Libraries24139
-Node: Errors25384
-Node: User Interfaces27165
-Node: Graphical Interfaces28770
-Node: Command-Line Interfaces29805
-Node: Option Table35876
-Node: Memory Usage50885
-Node: File Usage51910
-Node: Writing C52658
-Node: Formatting53508
-Node: Comments57571
-Node: Syntactic Conventions60873
-Node: Names64285
-Node: System Portability66494
-Node: CPU Portability68879
-Node: System Functions72135
-Node: Internationalization77332
-Node: Mmap80485
-Node: Documentation81195
-Node: GNU Manuals82300
-Node: Doc Strings and Manuals87357
-Node: Manual Structure Details88910
-Node: License for Manuals90328
-Node: Manual Credits91302
-Node: Printed Manuals91695
-Node: NEWS File92381
-Node: Change Logs93059
-Node: Change Log Concepts93813
-Node: Style of Change Logs95677
-Node: Simple Changes97712
-Node: Conditional Changes98956
-Node: Indicating the Part Changed100378
-Node: Man Pages100905
-Node: Reading other Manuals102529
-Node: Managing Releases103320
-Node: Configuration104083
-Node: Makefile Conventions110988
-Node: Makefile Basics111794
-Node: Utilities in Makefiles114968
-Node: Command Variables117113
-Node: Directory Variables120690
-Node: Standard Targets131584
-Ref: Standard Targets-Footnote-1142824
-Node: Install Command Categories142924
-Node: Releases147506
-Node: References151594
-Node: Copying This Manual153879
-Node: GNU Free Documentation License154115
-Node: Index173816
-
-End Tag Table
Index: b/binutils-2.16.1/gas/as.h
===================================================================
--- a/binutils-2.16.1/gas/as.h
+++ b/binutils-2.16.1/gas/as.h
@@ -321,13 +321,10 @@ extern segT text_section, data_section, 
 
 enum _relax_state
 {
-  /* Dummy frag used by listing code.  */
-  rs_dummy = 0,
-
   /* Variable chars to be repeated fr_offset times.
      Fr_symbol unused. Used with fr_offset == 0 for a
      constant length frag.  */
-  rs_fill,
+  rs_fill = 1,
 
   /* Align.  The fr_offset field holds the power of 2 to which to
      align.  The fr_var field holds the number of characters in the
Index: b/binutils-2.16.1/gas/ChangeLog
===================================================================
--- a/binutils-2.16.1/gas/ChangeLog
+++ b/binutils-2.16.1/gas/ChangeLog
@@ -1,198 +1,24 @@
-2005-06-12  Daniel Jacobowitz  <dan@codesourcery.com>
+2005-03-30  Julian Brown  <julian@codesourcery.com>
 
-	Backport from mainline:
-	2005-06-01  Maciej W. Rozycki  <macro@linux-mips.org>
-	* config/tc-mips.c (load_register): Add leading "0x" to the
-	output of sprintf_vma().
-	(macro): Likewise.
-
-2005-06-08  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
-
-	* config/tc-m32r.c (use_parallel): Change default value from 1 to 0.
-
-2005-05-19  Jan Beulich  <jbeulich@novell.com>
-
-	* config/tc-ia64.c (dot_endp): Don't use global symbol for unwind
-	relocations in unwind section.
-
-2005-05-17  Daniel Jacobowitz  <dan@codesourcery.com>
-
-	Backport from mainline:
-	2005-05-05  Nick Clifton  <nickc@redhat.com>
-	* config/tc-arm.c (arm_opts): Make -mlittle-endian switch set
-	the target_big_endian variable to false.
-
-2005-05-17  Daniel Jacobowitz  <dan@codesourcery.com>
-
-	* doc/Makefile.am (gasver.texi): Don't use $<.
-	* doc/Makefile.in: Regenerated.
-
-2005-05-02  Daniel Jacobowitz  <dan@codesourcery.com>
-
-	* doc/Makefile.am (gasver.texi): Correct quoting.
-	* doc/Makefile.in: Regenerated.
-
-2005-04-29  Daniel Jacobowitz  <dan@codesourcery.com>
-
-	* doc/Makefile.am (gasver.texi): Depend on bfd/configure instead
-	of Makefile.
-	(DISTCLEANFILES): Remove.
-	(MAINTAINERCLEANFILES): Add asconfig.texi.
-	* doc/Makefile.in: Regenerated.
-
-2005-04-28  Christian Groessler  <chris@groessler.org>
-
-	* config/tc-z8k.c (md_assemble): Fix buffer overrun in operand[]
-	array.
-
-2005-04-20  Nick Clifton  <nickc@redhat.com>
-
-	* config/tc-mips.c (macro): Use sprintf_vma to convert a > 32 bit
-	number into a readable string.
-	(load_register): Likewise.
-
-2005-04-20  Jan Beulich  <jbeulich@novell.com>
-
-	PR/847
-	* config/tc-ia64.c (ia64_canonicalize_symbol_name): Re-allow zero-
-	length symbols.
-
-2005-04-18  Maciej W. Rozycki  <macro@linux-mips.org>
-
-	* config/tc-mips.c (normalize_constant_expr): Don't check for
-	HAVE_32BIT_GPRS.
-	(check_absolute_expr): Only call normalize_constant_expr() if
-	HAVE_32BIT_GPRS.
-	(mips_ip): Likewise.
-
-	* config/tc-mips.c (check_absolute_expr): Fix formatting.
-
-2005-04-15  Maciej W. Rozycki  <macro@linux-mips.org>
-
-	* config/tc-mips.c (normalize_constant_expr): Fix formatting.
-
-2005-04-14  Bob Wilson  <bob.wilson@acm.org>
-	    Sterling Augustine  <sterling@tensilica.com>
-
-	* config/tc-xtensa.c (get_aligned_diff): Handle target_size larger
-	than the section alignment.
-
-2005-04-14  Bob Wilson  <bob.wilson@acm.org>
-	    H.J. Lu  <hongjiu.lu@intel.com>
-
-	* config/tc-xtensa.h (struct xtensa_frag_type): Add lit_frchain field.
-	* config/tc-xtensa.c (xg_translate_sysreg_op,
-	xtensa_translate_old_userregs_ops,
-	xtensa_find_unaligned_branch_targets,
-	xtensa_find_unaligned_loops, xtensa_fix_close_loop_end_frags,
-	relax_frag_add_nop): Support 64-bit host.
-	(xtensa_mark_literal_pool_location, xtensa_move_literals): Use
-	tc_frag_data lit_frchain and lit_seg fields instead of fr_var.
-
-2005-04-14  Maciej W. Rozycki  <macro@linux-mips.org>
-
-	* config/tc-mips.c (macro) [ldd_std]: Don't attempt the GP
-	optimization for constant addresses.
-
-2005-04-13  Maciej W. Rozycki  <macro@linux-mips.org>
-
-	* config/tc-mips.c (IS_ZEXT_32BIT_NUM): New macro.
-	(normalize_address_expr): New function to sign-extend address
-	offsets that fit into 32 bits in 32-bit mode.
-	(macro_build_ldst_constoffset): Use normalize_address_expr()
-	instead of a handcoded sequence.
-	(load_register): Likewise.  Report oversized numbers in a useful
-	way.
-	(macro) [ld_st, ldd_std]: Reject all oversized offsets, not only
-	for constant addresses.  Report oversized numbers in a useful way.
-	(mips_ip): Use normalize_address_expr() for addresses.
-
-2005-04-13  Jan Beulich  <jbeulich@novell.com>
-            H.J. Lu  <hongjiu.lu@intel.com>
-
-	* config/tc-i386.c (md_apply_fix3): Also handle BFD_RELOC_X86_64_32S.
-	(tc_gen_reloc): Handle BFD_RELOC_X86_64_32S specially.
-
-2005-04-12  Alan Modra  <amodra@bigpond.net.au>
-
-	PR gas/827
-	* as.h (rs_dummy): Define.
-	* symbols.c (symbol_X_add_number): New function.
-	* symbols.h (symbol_X_add_number): Declare.
-	* stabs.c (aout_process_stab): Tidy symbol frag setting.
-	* read.c (assign_symbol): New function, split out from s_set.
-	Use symbol_find_or_make.  Leave fr_type of dummy frag as rs_dummy.
-	(s_set): Call assign_symbol.  Remove "register" keyword.
-	(set_zero_frag): New function.
-	(pseudo_set): Always check for assignment to section syms.
-	Always set segment and frag of symbol, and likewise extern for
-	aout/bout.  Handle assignment of sym=sym+/-const specially.  Don't
-	special case exp.X_add_number non-zero for O_symbol expressions.
-	(equals): Use assign_symbol.
-
-2005-04-11  Sterling Augustine  <sterling@tensilica.com>
-	    Bob Wilson  <bob.wilson@acm.org>
-
-	* config/tc-xtensa.c (check_t1_t2_reads_and_writes): Fix typo.
-
-2005-04-08  Bob Wilson  <bob.wilson@acm.org>
-
-	* config/tc-xtensa.c (xtensa_create_xproperty_segments): Skip
-	SEC_MERGE sections.
-
-2005-04-05  Sterling Augustine  <sterling@tensilica.com>
-	    Bob Wilson  <bob.wilson@acm.org>
-
-	* config/tc-xtensa.c (branch_align_power): New.
-	(xtensa_find_unaligned_branch_targets, get_aligned_diff,
-	future_alignment_required): Use branch_align_power to check section
-	alignment as well as xtensa_fetch_width when aligning branch targets.
-
-2005-04-05  Bob Wilson  <bob.wilson@acm.org>
-
-	* config/tc-xtensa.c: Warning fixes throughout.
-	(xtensa_fetch_width): Change to unsigned.
-	(assemble_nop, xtensa_find_unaligned_branch_targets,
-	xtensa_find_unaligned_loops, xg_assemble_vliw_tokens,
-	is_narrow_branch_guaranteed_in_range, xtensa_fix_close_loop_end_frags,
-	min_bytes_to_other_loop_end, unrelaxed_frag_min_size,
-	unrelaxed_frag_max_size, xtensa_fix_short_loop_frags,
-	count_insns_to_loop_end, unrelaxed_frag_min_insn_count,
-	get_text_align_max_fill_size, get_text_align_nop_count,
-	get_text_align_nth_nop_size, get_noop_aligned_address,
-	get_aligned_diff, convert_frag_align_next_opcode,
-	convert_frag_immed_finish_loop, xtensa_create_property_segments,
-	xtensa_create_xproperty_segments, xt_block_aligned_size): Clean up
-	types, avoiding size_t and using offsetT and addressT appropriately.
-	(get_text_align_power): Clean up types.  Avoid incorrect bound.
-	(get_text_align_fill_size): Clean up types.  Restructure for clarity.
-
-2005-03-28  Sterling Augustine  <sterling@tensilica.com>
-	    Bob Wilson  <bob.wilson@acm.org>
-
-	* config/tc-xtensa.c (do_align_targets): Update comment.
-	(xtensa_frob_label): Compute "freq" before possibly switching frags.
-	Insert a LOOP_END frag before every loop target, and do not overload
-	DESIRE_ALIGN_IF_TARGET frags with loop end information.
-	(xg_assemble_vliw_tokens): Use do_align_targets.
-	(xtensa_fix_target_frags): Remove code to convert a
-	DESIRE_ALIGN_IF_TARGET frag to a LOOP_END frag when there is a
-	negatable branch at the end of a loop.
-	(frag_can_negate_branch): Delete.
-
-2005-03-25  Bob Wilson  <bob.wilson@acm.org>
-
-	* config/tc-xtensa.c (use_longcalls): Delete.
-	(xg_symbolic_immeds_fit): Check for direct calls and return TRUE if
-	the use_longcalls flag is set.  Do this before checking the segment.
-	(xg_expand_assembly_insn): Rearrange to use new do_expand flag.  Never
-	expand direct calls at this point.
-	(xtensa_set_frag_assembly_state): Set use_longcalls flag.
-	(xtensa_find_unmarked_state_frags): Likewise.
-	(md_assemble): Do not disable longcalls by setting is_specific_opcode.
-	(xg_assemble_vliw_tokens): Switch frags when use_longcalls changes.
-	(convert_frag_immed): Remove unnecessary check of is_specific_opcode.
-	* config/tc-xtensa.h (xtensa_frag_type): Add use_longcalls flag.
+	* config/tc-arm.c (mapping_state): Change documentation in function
+	comment to cross-reference spec instead. Change type of mapping symbols
+	to BSF_NO_TYPE.
+	(arm_adjust_symtab): Don't change type of mapping symbols here.
+
+2005-03-29  Julian Brown  <julian@codesourcery.com>
+
+	* config/tc-arm.c (marked_pr_dependency): New bitmap, bit N indicates
+	whether personality routine index N has been output for this section.
+	(mapping_state): tc_segment_info_data now struct not enum.
+	(arm_elf_change_section): Likewise, and marked_pr_dependency is now
+	handled on section change.
+	(create_unwind_entry): Previous code to output dependency removed.
+	(s_arm_unwind_fnend): Output dependency if it hasn't been done already
+	for this section.
+	* config/tc-arm.h (TC_SEGMENT_INFO_TYPE): Redefined as struct
+	arm_segment_info_type.
+	(arm_segment_info_type): New struct.
+	* testsuite/gas/arm/unwind.d: Update expected output.
 
 2005-03-21  Bob Wilson  <bob.wilson@acm.org>
 
@@ -249,8 +75,7 @@
 
 	* po/tr.po: Commit new Turkish translation.
 
-2005-03-10  Sterling Augustine  <sterling@tensilica.com>
-	    Bob Wilson  <bob.wilson@acm.org>
+2005-03-10  Bob Wilson  <bob.wilson@acm.org>
 
 	* config/tc-xtensa.c (finish_vinsn): Include the last instruction slot
 	when checking if xg_resolve_literals needs to be called.
Index: b/binutils-2.16.1/gas/config/tc-arm.c
===================================================================
--- a/binutils-2.16.1/gas/config/tc-arm.c
+++ b/binutils-2.16.1/gas/config/tc-arm.c
@@ -17,7 +17,7 @@
 
    GAS is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.	 See the
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
@@ -26,7 +26,7 @@
    02111-1307, USA.  */
 
 #include <string.h>
-#define  NO_RELOC 0
+#define	 NO_RELOC 0
 #include "as.h"
 #include "safe-ctype.h"
 
@@ -56,33 +56,38 @@
 
 static struct
 {
-  symbolS *       proc_start;
-  symbolS *       table_entry;
-  symbolS *       personality_routine;
-  int             personality_index;
+  symbolS *	  proc_start;
+  symbolS *	  table_entry;
+  symbolS *	  personality_routine;
+  int		  personality_index;
   /* The segment containing the function.  */
-  segT            saved_seg;
-  subsegT         saved_subseg;
+  segT		  saved_seg;
+  subsegT	  saved_subseg;
   /* Opcodes generated from this function.  */
   unsigned char * opcodes;
-  int             opcode_count;
-  int             opcode_alloc;
+  int		  opcode_count;
+  int		  opcode_alloc;
   /* The number of bytes pushed to the stack.  */
-  offsetT         frame_size;
+  offsetT	  frame_size;
   /* We don't add stack adjustment opcodes immediately so that we can merge
      multiple adjustments.  We can also omit the final adjustment
      when using a frame pointer.  */
-  offsetT         pending_offset;
+  offsetT	  pending_offset;
   /* These two fields are set by both unwind_movsp and unwind_setfp.  They
-     hold the reg+offset to use when restoring sp from a frame pointer.  */
-  offsetT         fp_offset;
-  int             fp_reg;
+     hold the reg+offset to use when restoring sp from a frame pointer.	 */
+  offsetT	  fp_offset;
+  int		  fp_reg;
   /* Nonzero if an unwind_setfp directive has been seen.  */
-  unsigned        fp_used:1;
+  unsigned	  fp_used:1;
   /* Nonzero if the last opcode restores sp from fp_reg.  */
-  unsigned        sp_restored:1;
+  unsigned	  sp_restored:1;
 } unwind;
 
+/* Bit N indicates that an R_ARM_NONE relocation has been output for
+   __aeabi_unwind_cpp_prN already if set. This enables dependencies to be
+   emitted only once per section, to save unnecessary bloat.  */
+static unsigned int marked_pr_dependency = 0;
+
 #endif /* OBJ_ELF */
 
 enum arm_float_abi
@@ -92,7 +97,7 @@ enum arm_float_abi
   ARM_FLOAT_ABI_SOFT
 };
 
-/* Types of processor to assemble for.  */
+/* Types of processor to assemble for.	*/
 #define ARM_1		ARM_ARCH_V1
 #define ARM_2		ARM_ARCH_V2
 #define ARM_3		ARM_ARCH_V2S
@@ -102,16 +107,16 @@ enum arm_float_abi
 #define ARM_8		ARM_ARCH_V4
 #define ARM_9		ARM_ARCH_V4T
 #define ARM_STRONG	ARM_ARCH_V4
-#define ARM_CPU_MASK	0x0000000f              /* XXX? */
+#define ARM_CPU_MASK	0x0000000f		/* XXX? */
 
 #ifndef CPU_DEFAULT
 #if defined __XSCALE__
 #define CPU_DEFAULT	(ARM_ARCH_XSCALE)
 #else
 #if defined __thumb__
-#define CPU_DEFAULT 	(ARM_ARCH_V5T)
+#define CPU_DEFAULT	(ARM_ARCH_V5T)
 #else
-#define CPU_DEFAULT 	ARM_ANY
+#define CPU_DEFAULT	ARM_ANY
 #endif
 #endif
 #endif
@@ -134,17 +139,16 @@ enum arm_float_abi
 # endif
 #endif /* ifndef FPU_DEFAULT */
 
-#define streq(a, b)           (strcmp (a, b) == 0)
-#define skip_whitespace(str)  while (*(str) == ' ') ++(str)
+#define streq(a, b)	      (strcmp (a, b) == 0)
 
 static unsigned long cpu_variant;
 
 /* Flags stored in private area of BFD structure.  */
-static int uses_apcs_26      = FALSE;
-static int atpcs             = FALSE;
+static int uses_apcs_26	     = FALSE;
+static int atpcs	     = FALSE;
 static int support_interwork = FALSE;
 static int uses_apcs_float   = FALSE;
-static int pic_code          = FALSE;
+static int pic_code	     = FALSE;
 
 /* Variables that we set while parsing command-line options.  Once all
    options have been read we re-process these values to set the real
@@ -159,40 +163,15 @@ static int march_fpu_opt = -1;
 static int mfpu_opt = -1;
 static int mfloat_abi_opt = -1;
 #ifdef OBJ_ELF
+# ifdef EABI_DEFAULT
+static int meabi_flags = EABI_DEFAULT;
+# else
 static int meabi_flags = EF_ARM_EABI_UNKNOWN;
+# endif
 #endif
 
-/* This array holds the chars that always start a comment.  If the
-   pre-processor is disabled, these aren't very useful.  */
-const char comment_chars[] = "@";
-
-/* This array holds the chars that only start a comment at the beginning of
-   a line.  If the line seems to have the form '# 123 filename'
-   .line and .file directives will appear in the pre-processed output.  */
-/* Note that input_file.c hand checks for '#' at the beginning of the
-   first line of the input file.  This is because the compiler outputs
-   #NO_APP at the beginning of its output.  */
-/* Also note that comments like this one will always work.  */
-const char line_comment_chars[] = "#";
-
-const char line_separator_chars[] = ";";
-
-/* Chars that can be used to separate mant
-   from exp in floating point numbers.  */
-const char EXP_CHARS[] = "eE";
-
-/* Chars that mean this number is a floating point constant.  */
-/* As in 0f12.456  */
-/* or    0d1.2345e12  */
-
-const char FLT_CHARS[] = "rRsSfFdDxXeEpP";
-
-/* Prefix characters that indicate the start of an immediate
-   value.  */
-#define is_immediate_prefix(C) ((C) == '#' || (C) == '$')
-
 #ifdef OBJ_ELF
-/* Pre-defined "_GLOBAL_OFFSET_TABLE_"  */
+/* Pre-defined "_GLOBAL_OFFSET_TABLE_"	*/
 symbolS * GOT_symbol;
 #endif
 
@@ -205,84 +184,63 @@ const int md_reloc_size = 8;
       instructions.  */
 static int thumb_mode = 0;
 
-typedef struct arm_fix
-{
-  int thumb_mode;
-} arm_fix_data;
+/* If unified_syntax is true, we are processing the new unified
+   ARM/Thumb syntax.  Important differences from the old ARM mode:
+
+     - Immediate operands do not require a # prefix.
+     - Conditional affixes always appear at the end of the
+       instruction.  (For backward compatibility, those instructions
+       that formerly had them in the middle, continue to accept them
+       there.)
+     - The IT instruction may appear, and if it does is validated
+       against subsequent conditional affixes.  It does not generate
+       machine code.
+
+   Important differences from the old Thumb mode:
+
+     - Immediate operands do not require a # prefix.
+     - Most of the V6T2 instructions are only available in unified mode.
+     - The .N and .W suffixes are recognized and honored (it is an error
+       if they cannot be honored).
+     - All instructions set the flags if and only if they have an 's' affix.
+     - Conditional affixes may be used.  They are validated against
+       preceding IT instructions.  Unlike ARM mode, you cannot use a
+       conditional affix except in the scope of an IT instruction.  */
+
+static bfd_boolean unified_syntax = FALSE;
 
 struct arm_it
 {
-  const char *  error;
+  const char *	error;
   unsigned long instruction;
-  int           size;
+  int		size;
+  int		size_req;
+  int		cond;
   struct
   {
     bfd_reloc_code_real_type type;
-    expressionS              exp;
-    int                      pc_rel;
+    expressionS		     exp;
+    int			     pc_rel;
   } reloc;
-};
 
-struct arm_it inst;
-
-enum asm_shift_index
-{
-  SHIFT_LSL = 0,
-  SHIFT_LSR,
-  SHIFT_ASR,
-  SHIFT_ROR,
-  SHIFT_RRX
-};
-
-struct asm_shift_properties
-{
-  enum asm_shift_index index;
-  unsigned long        bit_field;
-  unsigned int         allows_0  : 1;
-  unsigned int         allows_32 : 1;
-};
-
-static const struct asm_shift_properties shift_properties [] =
-{
-  { SHIFT_LSL, 0,    1, 0},
-  { SHIFT_LSR, 0x20, 0, 1},
-  { SHIFT_ASR, 0x40, 0, 1},
-  { SHIFT_ROR, 0x60, 0, 0},
-  { SHIFT_RRX, 0x60, 0, 0}
-};
-
-struct asm_shift_name
-{
-  const char *                        name;
-  const struct asm_shift_properties * properties;
-};
-
-static const struct asm_shift_name shift_names [] =
-{
-  { "asl", shift_properties + SHIFT_LSL },
-  { "lsl", shift_properties + SHIFT_LSL },
-  { "lsr", shift_properties + SHIFT_LSR },
-  { "asr", shift_properties + SHIFT_ASR },
-  { "ror", shift_properties + SHIFT_ROR },
-  { "rrx", shift_properties + SHIFT_RRX },
-  { "ASL", shift_properties + SHIFT_LSL },
-  { "LSL", shift_properties + SHIFT_LSL },
-  { "LSR", shift_properties + SHIFT_LSR },
-  { "ASR", shift_properties + SHIFT_ASR },
-  { "ROR", shift_properties + SHIFT_ROR },
-  { "RRX", shift_properties + SHIFT_RRX }
+  struct
+  {
+    unsigned reg;
+    unsigned imm;
+    unsigned present	: 1;  /* operand present */
+    unsigned isreg	: 1;  /* operand was a register */
+    unsigned immisreg	: 1;  /* .imm field is a second register */
+    unsigned hasreloc	: 1;  /* operand has relocation suffix */
+    unsigned writeback	: 1;  /* operand has trailing ! */
+    unsigned preind	: 1;  /* preindexed address */
+    unsigned postind	: 1;  /* postindexed address */
+    unsigned negative	: 1;  /* index register was negated */
+    unsigned shifted	: 1;  /* shift applied to operation */
+    unsigned shift_kind : 3;  /* shift operation (enum shift_kind) */
+  } operands[6];
 };
 
-/* Any kind of shift is accepted.  */
-#define NO_SHIFT_RESTRICT 1
-/* The shift operand must be an immediate value, not a register.  */
-#define SHIFT_IMMEDIATE	  0
-/* The shift must be LSL or ASR and the operand must be an immediate.  */
-#define SHIFT_LSL_OR_ASR_IMMEDIATE 2
-/* The shift must be ASR and the operand must be an immediate.  */
-#define SHIFT_ASR_IMMEDIATE 3
-/* The shift must be LSL and the operand must be an immediate.  */
-#define SHIFT_LSL_IMMEDIATE 4
+static struct arm_it inst;
 
 #define NUM_FLOAT_VALS 8
 
@@ -291,7 +249,7 @@ const char * fp_const[] =
   "0.0", "1.0", "2.0", "3.0", "4.0", "5.0", "0.5", "10.0", 0
 };
 
-/* Number of littlenums required to hold an extended precision number.  */
+/* Number of littlenums required to hold an extended precision number.	*/
 #define MAX_LITTLENUMS 6
 
 LITTLENUM_TYPE fp_values[NUM_FLOAT_VALS][MAX_LITTLENUMS];
@@ -299,246 +257,46 @@ LITTLENUM_TYPE fp_values[NUM_FLOAT_VALS]
 #define FAIL	(-1)
 #define SUCCESS (0)
 
-/* Whether a Co-processor load/store operation accepts write-back forms.  */
-#define CP_WB_OK 1
-#define CP_NO_WB 0
-
 #define SUFF_S 1
 #define SUFF_D 2
 #define SUFF_E 3
 #define SUFF_P 4
 
-#define CP_T_X   0x00008000
-#define CP_T_Y   0x00400000
-#define CP_T_Pre 0x01000000
-#define CP_T_UD  0x00800000
-#define CP_T_WB  0x00200000
+#define CP_T_X	 0x00008000
+#define CP_T_Y	 0x00400000
 
-#define CONDS_BIT        0x00100000
-#define LOAD_BIT         0x00100000
+#define CONDS_BIT	 0x00100000
+#define LOAD_BIT	 0x00100000
 
 #define DOUBLE_LOAD_FLAG 0x00000001
 
 struct asm_cond
 {
-  const char *  template;
+  const char *	template;
   unsigned long value;
 };
 
-#define COND_ALWAYS 0xe0000000
-#define COND_MASK   0xf0000000
-
-static const struct asm_cond conds[] =
-{
-  {"eq", 0x00000000},
-  {"ne", 0x10000000},
-  {"cs", 0x20000000}, {"hs", 0x20000000},
-  {"cc", 0x30000000}, {"ul", 0x30000000}, {"lo", 0x30000000},
-  {"mi", 0x40000000},
-  {"pl", 0x50000000},
-  {"vs", 0x60000000},
-  {"vc", 0x70000000},
-  {"hi", 0x80000000},
-  {"ls", 0x90000000},
-  {"ge", 0xa0000000},
-  {"lt", 0xb0000000},
-  {"gt", 0xc0000000},
-  {"le", 0xd0000000},
-  {"al", 0xe0000000},
-  {"nv", 0xf0000000}
-};
+#define COND_ALWAYS 0xE
 
 struct asm_psr
 {
   const char *template;
-  bfd_boolean cpsr;
   unsigned long field;
 };
 
 /* The bit that distinguishes CPSR and SPSR.  */
 #define SPSR_BIT   (1 << 22)
 
-/* How many bits to shift the PSR_xxx bits up by.  */
-#define PSR_SHIFT  16
-
-#define PSR_c   (1 << 0)
-#define PSR_x   (1 << 1)
-#define PSR_s   (1 << 2)
-#define PSR_f   (1 << 3)
-
-static const struct asm_psr psrs[] =
-{
-  {"CPSR",	TRUE,  PSR_c | PSR_f},
-  {"CPSR_all",	TRUE,  PSR_c | PSR_f},
-  {"SPSR",	FALSE, PSR_c | PSR_f},
-  {"SPSR_all",	FALSE, PSR_c | PSR_f},
-  {"CPSR_flg",	TRUE,  PSR_f},
-  {"CPSR_f",    TRUE,  PSR_f},
-  {"SPSR_flg",	FALSE, PSR_f},
-  {"SPSR_f",    FALSE, PSR_f},
-  {"CPSR_c",	TRUE,  PSR_c},
-  {"CPSR_ctl",	TRUE,  PSR_c},
-  {"SPSR_c",	FALSE, PSR_c},
-  {"SPSR_ctl",	FALSE, PSR_c},
-  {"CPSR_x",    TRUE,  PSR_x},
-  {"CPSR_s",    TRUE,  PSR_s},
-  {"SPSR_x",    FALSE, PSR_x},
-  {"SPSR_s",    FALSE, PSR_s},
-  /* Combinations of flags.  */
-  {"CPSR_fs",	TRUE, PSR_f | PSR_s},
-  {"CPSR_fx",	TRUE, PSR_f | PSR_x},
-  {"CPSR_fc",	TRUE, PSR_f | PSR_c},
-  {"CPSR_sf",	TRUE, PSR_s | PSR_f},
-  {"CPSR_sx",	TRUE, PSR_s | PSR_x},
-  {"CPSR_sc",	TRUE, PSR_s | PSR_c},
-  {"CPSR_xf",	TRUE, PSR_x | PSR_f},
-  {"CPSR_xs",	TRUE, PSR_x | PSR_s},
-  {"CPSR_xc",	TRUE, PSR_x | PSR_c},
-  {"CPSR_cf",	TRUE, PSR_c | PSR_f},
-  {"CPSR_cs",	TRUE, PSR_c | PSR_s},
-  {"CPSR_cx",	TRUE, PSR_c | PSR_x},
-  {"CPSR_fsx",	TRUE, PSR_f | PSR_s | PSR_x},
-  {"CPSR_fsc",	TRUE, PSR_f | PSR_s | PSR_c},
-  {"CPSR_fxs",	TRUE, PSR_f | PSR_x | PSR_s},
-  {"CPSR_fxc",	TRUE, PSR_f | PSR_x | PSR_c},
-  {"CPSR_fcs",	TRUE, PSR_f | PSR_c | PSR_s},
-  {"CPSR_fcx",	TRUE, PSR_f | PSR_c | PSR_x},
-  {"CPSR_sfx",	TRUE, PSR_s | PSR_f | PSR_x},
-  {"CPSR_sfc",	TRUE, PSR_s | PSR_f | PSR_c},
-  {"CPSR_sxf",	TRUE, PSR_s | PSR_x | PSR_f},
-  {"CPSR_sxc",	TRUE, PSR_s | PSR_x | PSR_c},
-  {"CPSR_scf",	TRUE, PSR_s | PSR_c | PSR_f},
-  {"CPSR_scx",	TRUE, PSR_s | PSR_c | PSR_x},
-  {"CPSR_xfs",	TRUE, PSR_x | PSR_f | PSR_s},
-  {"CPSR_xfc",	TRUE, PSR_x | PSR_f | PSR_c},
-  {"CPSR_xsf",	TRUE, PSR_x | PSR_s | PSR_f},
-  {"CPSR_xsc",	TRUE, PSR_x | PSR_s | PSR_c},
-  {"CPSR_xcf",	TRUE, PSR_x | PSR_c | PSR_f},
-  {"CPSR_xcs",	TRUE, PSR_x | PSR_c | PSR_s},
-  {"CPSR_cfs",	TRUE, PSR_c | PSR_f | PSR_s},
-  {"CPSR_cfx",	TRUE, PSR_c | PSR_f | PSR_x},
-  {"CPSR_csf",	TRUE, PSR_c | PSR_s | PSR_f},
-  {"CPSR_csx",	TRUE, PSR_c | PSR_s | PSR_x},
-  {"CPSR_cxf",	TRUE, PSR_c | PSR_x | PSR_f},
-  {"CPSR_cxs",	TRUE, PSR_c | PSR_x | PSR_s},
-  {"CPSR_fsxc",	TRUE, PSR_f | PSR_s | PSR_x | PSR_c},
-  {"CPSR_fscx",	TRUE, PSR_f | PSR_s | PSR_c | PSR_x},
-  {"CPSR_fxsc",	TRUE, PSR_f | PSR_x | PSR_s | PSR_c},
-  {"CPSR_fxcs",	TRUE, PSR_f | PSR_x | PSR_c | PSR_s},
-  {"CPSR_fcsx",	TRUE, PSR_f | PSR_c | PSR_s | PSR_x},
-  {"CPSR_fcxs",	TRUE, PSR_f | PSR_c | PSR_x | PSR_s},
-  {"CPSR_sfxc",	TRUE, PSR_s | PSR_f | PSR_x | PSR_c},
-  {"CPSR_sfcx",	TRUE, PSR_s | PSR_f | PSR_c | PSR_x},
-  {"CPSR_sxfc",	TRUE, PSR_s | PSR_x | PSR_f | PSR_c},
-  {"CPSR_sxcf",	TRUE, PSR_s | PSR_x | PSR_c | PSR_f},
-  {"CPSR_scfx",	TRUE, PSR_s | PSR_c | PSR_f | PSR_x},
-  {"CPSR_scxf",	TRUE, PSR_s | PSR_c | PSR_x | PSR_f},
-  {"CPSR_xfsc",	TRUE, PSR_x | PSR_f | PSR_s | PSR_c},
-  {"CPSR_xfcs",	TRUE, PSR_x | PSR_f | PSR_c | PSR_s},
-  {"CPSR_xsfc",	TRUE, PSR_x | PSR_s | PSR_f | PSR_c},
-  {"CPSR_xscf",	TRUE, PSR_x | PSR_s | PSR_c | PSR_f},
-  {"CPSR_xcfs",	TRUE, PSR_x | PSR_c | PSR_f | PSR_s},
-  {"CPSR_xcsf",	TRUE, PSR_x | PSR_c | PSR_s | PSR_f},
-  {"CPSR_cfsx",	TRUE, PSR_c | PSR_f | PSR_s | PSR_x},
-  {"CPSR_cfxs",	TRUE, PSR_c | PSR_f | PSR_x | PSR_s},
-  {"CPSR_csfx",	TRUE, PSR_c | PSR_s | PSR_f | PSR_x},
-  {"CPSR_csxf",	TRUE, PSR_c | PSR_s | PSR_x | PSR_f},
-  {"CPSR_cxfs",	TRUE, PSR_c | PSR_x | PSR_f | PSR_s},
-  {"CPSR_cxsf",	TRUE, PSR_c | PSR_x | PSR_s | PSR_f},
-  {"SPSR_fs",	FALSE, PSR_f | PSR_s},
-  {"SPSR_fx",	FALSE, PSR_f | PSR_x},
-  {"SPSR_fc",	FALSE, PSR_f | PSR_c},
-  {"SPSR_sf",	FALSE, PSR_s | PSR_f},
-  {"SPSR_sx",	FALSE, PSR_s | PSR_x},
-  {"SPSR_sc",	FALSE, PSR_s | PSR_c},
-  {"SPSR_xf",	FALSE, PSR_x | PSR_f},
-  {"SPSR_xs",	FALSE, PSR_x | PSR_s},
-  {"SPSR_xc",	FALSE, PSR_x | PSR_c},
-  {"SPSR_cf",	FALSE, PSR_c | PSR_f},
-  {"SPSR_cs",	FALSE, PSR_c | PSR_s},
-  {"SPSR_cx",	FALSE, PSR_c | PSR_x},
-  {"SPSR_fsx",	FALSE, PSR_f | PSR_s | PSR_x},
-  {"SPSR_fsc",	FALSE, PSR_f | PSR_s | PSR_c},
-  {"SPSR_fxs",	FALSE, PSR_f | PSR_x | PSR_s},
-  {"SPSR_fxc",	FALSE, PSR_f | PSR_x | PSR_c},
-  {"SPSR_fcs",	FALSE, PSR_f | PSR_c | PSR_s},
-  {"SPSR_fcx",	FALSE, PSR_f | PSR_c | PSR_x},
-  {"SPSR_sfx",	FALSE, PSR_s | PSR_f | PSR_x},
-  {"SPSR_sfc",	FALSE, PSR_s | PSR_f | PSR_c},
-  {"SPSR_sxf",	FALSE, PSR_s | PSR_x | PSR_f},
-  {"SPSR_sxc",	FALSE, PSR_s | PSR_x | PSR_c},
-  {"SPSR_scf",	FALSE, PSR_s | PSR_c | PSR_f},
-  {"SPSR_scx",	FALSE, PSR_s | PSR_c | PSR_x},
-  {"SPSR_xfs",	FALSE, PSR_x | PSR_f | PSR_s},
-  {"SPSR_xfc",	FALSE, PSR_x | PSR_f | PSR_c},
-  {"SPSR_xsf",	FALSE, PSR_x | PSR_s | PSR_f},
-  {"SPSR_xsc",	FALSE, PSR_x | PSR_s | PSR_c},
-  {"SPSR_xcf",	FALSE, PSR_x | PSR_c | PSR_f},
-  {"SPSR_xcs",	FALSE, PSR_x | PSR_c | PSR_s},
-  {"SPSR_cfs",	FALSE, PSR_c | PSR_f | PSR_s},
-  {"SPSR_cfx",	FALSE, PSR_c | PSR_f | PSR_x},
-  {"SPSR_csf",	FALSE, PSR_c | PSR_s | PSR_f},
-  {"SPSR_csx",	FALSE, PSR_c | PSR_s | PSR_x},
-  {"SPSR_cxf",	FALSE, PSR_c | PSR_x | PSR_f},
-  {"SPSR_cxs",	FALSE, PSR_c | PSR_x | PSR_s},
-  {"SPSR_fsxc",	FALSE, PSR_f | PSR_s | PSR_x | PSR_c},
-  {"SPSR_fscx",	FALSE, PSR_f | PSR_s | PSR_c | PSR_x},
-  {"SPSR_fxsc",	FALSE, PSR_f | PSR_x | PSR_s | PSR_c},
-  {"SPSR_fxcs",	FALSE, PSR_f | PSR_x | PSR_c | PSR_s},
-  {"SPSR_fcsx",	FALSE, PSR_f | PSR_c | PSR_s | PSR_x},
-  {"SPSR_fcxs",	FALSE, PSR_f | PSR_c | PSR_x | PSR_s},
-  {"SPSR_sfxc",	FALSE, PSR_s | PSR_f | PSR_x | PSR_c},
-  {"SPSR_sfcx",	FALSE, PSR_s | PSR_f | PSR_c | PSR_x},
-  {"SPSR_sxfc",	FALSE, PSR_s | PSR_x | PSR_f | PSR_c},
-  {"SPSR_sxcf",	FALSE, PSR_s | PSR_x | PSR_c | PSR_f},
-  {"SPSR_scfx",	FALSE, PSR_s | PSR_c | PSR_f | PSR_x},
-  {"SPSR_scxf",	FALSE, PSR_s | PSR_c | PSR_x | PSR_f},
-  {"SPSR_xfsc",	FALSE, PSR_x | PSR_f | PSR_s | PSR_c},
-  {"SPSR_xfcs",	FALSE, PSR_x | PSR_f | PSR_c | PSR_s},
-  {"SPSR_xsfc",	FALSE, PSR_x | PSR_s | PSR_f | PSR_c},
-  {"SPSR_xscf",	FALSE, PSR_x | PSR_s | PSR_c | PSR_f},
-  {"SPSR_xcfs",	FALSE, PSR_x | PSR_c | PSR_f | PSR_s},
-  {"SPSR_xcsf",	FALSE, PSR_x | PSR_c | PSR_s | PSR_f},
-  {"SPSR_cfsx",	FALSE, PSR_c | PSR_f | PSR_s | PSR_x},
-  {"SPSR_cfxs",	FALSE, PSR_c | PSR_f | PSR_x | PSR_s},
-  {"SPSR_csfx",	FALSE, PSR_c | PSR_s | PSR_f | PSR_x},
-  {"SPSR_csxf",	FALSE, PSR_c | PSR_s | PSR_x | PSR_f},
-  {"SPSR_cxfs",	FALSE, PSR_c | PSR_x | PSR_f | PSR_s},
-  {"SPSR_cxsf",	FALSE, PSR_c | PSR_x | PSR_s | PSR_f},
-};
-
-enum wreg_type
-  {
-    IWMMXT_REG_WR = 0,
-    IWMMXT_REG_WC = 1,
-    IWMMXT_REG_WR_OR_WC = 2,
-    IWMMXT_REG_WCG
-  };
-
-enum iwmmxt_insn_type
-{
-  check_rd,
-  check_wr,
-  check_wrwr,
-  check_wrwrwr,
-  check_wrwrwcg,
-  check_tbcst,
-  check_tmovmsk,
-  check_tmia,
-  check_tmcrr,
-  check_tmrrc,
-  check_tmcr,
-  check_tmrc,
-  check_tinsr,
-  check_textrc,
-  check_waligni,
-  check_textrm,
-  check_wshufh
-};
+/* The individual PSR flag bits.  */
+#define PSR_c	(1 << 16)
+#define PSR_x	(1 << 17)
+#define PSR_s	(1 << 18)
+#define PSR_f	(1 << 19)
 
-enum vfp_dp_reg_pos
+struct reloc_entry
 {
-  VFP_REG_Dd, VFP_REG_Dm, VFP_REG_Dn
+  char *name;
+  bfd_reloc_code_real_type reloc;
 };
 
 enum vfp_sp_reg_pos
@@ -551,291 +309,101 @@ enum vfp_ldstm_type
   VFP_LDSTMIA, VFP_LDSTMDB, VFP_LDSTMIAX, VFP_LDSTMDBX
 };
 
-/* VFP system registers.  */
-struct vfp_reg
-{
-  const char *name;
-  unsigned long regno;
-};
-
-static const struct vfp_reg vfp_regs[] =
+/* ARM register categories.  This includes coprocessor numbers and various
+   architecture extensions' registers.	*/
+enum arm_reg_type
 {
-  {"fpsid", 0x00000000},
-  {"FPSID", 0x00000000},
-  {"fpscr", 0x00010000},
-  {"FPSCR", 0x00010000},
-  {"fpexc", 0x00080000},
-  {"FPEXC", 0x00080000}
+  REG_TYPE_RN,
+  REG_TYPE_CP,
+  REG_TYPE_CN,
+  REG_TYPE_FN,
+  REG_TYPE_VFS,
+  REG_TYPE_VFD,
+  REG_TYPE_VFC,
+  REG_TYPE_MVF,
+  REG_TYPE_MVD,
+  REG_TYPE_MVFX,
+  REG_TYPE_MVDX,
+  REG_TYPE_MVAX,
+  REG_TYPE_DSPSC,
+  REG_TYPE_MMXWR,
+  REG_TYPE_MMXWC,
+  REG_TYPE_MMXWCG,
+  REG_TYPE_XSCALE,
 };
 
 /* Structure for a hash table entry for a register.  */
 struct reg_entry
 {
-  const char * name;
-  int          number;
-  bfd_boolean  builtin;
+  const char   *name;
+  unsigned char number;
+  unsigned char type;
+  unsigned char builtin;
+};
+
+/* Diagnostics used when we don't get a register of the expected type.	*/
+const char *const reg_expected_msgs[] =
+{
+  N_("ARM register expected"),
+  N_("bad or missing co-processor number"),
+  N_("co-processor register expected"),
+  N_("FPA register expected"),
+  N_("VFP single precision register expected"),
+  N_("VFP double precision register expected"),
+  N_("VFP system register expected"),
+  N_("Maverick MVF register expected"),
+  N_("Maverick MVD register expected"),
+  N_("Maverick MVFX register expected"),
+  N_("Maverick MVDX register expected"),
+  N_("Maverick MVAX register expected"),
+  N_("Maverick DSPSC register expected"),
+  N_("iWMMXt data register expected"),
+  N_("iWMMXt control register expected"),
+  N_("iWMMXt scalar register expected"),
+  N_("XScale accumulator register expected"),
 };
 
 /* Some well known registers that we refer to directly elsewhere.  */
-#define REG_SP  13
-#define REG_LR  14
+#define REG_SP	13
+#define REG_LR	14
 #define REG_PC	15
 
-#define wr_register(reg)  ((reg ^ WR_PREFIX) >= 0 && (reg ^ WR_PREFIX) <= 15)
-#define wc_register(reg)  ((reg ^ WC_PREFIX) >= 0 && (reg ^ WC_PREFIX) <= 15)
-#define wcg_register(reg) ((reg ^ WC_PREFIX) >= 8 && (reg ^ WC_PREFIX) <= 11)
-
-/* These are the standard names.  Users can add aliases with .req.
-   and delete them with .unreq.  */
-
-/* Integer Register Numbers.  */
-static const struct reg_entry rn_table[] =
-{
-  {"r0",  0, TRUE},  {"r1",  1, TRUE},      {"r2",  2, TRUE},      {"r3",  3, TRUE},
-  {"r4",  4, TRUE},  {"r5",  5, TRUE},      {"r6",  6, TRUE},      {"r7",  7, TRUE},
-  {"r8",  8, TRUE},  {"r9",  9, TRUE},      {"r10", 10, TRUE},     {"r11", 11, TRUE},
-  {"r12", 12, TRUE}, {"r13", REG_SP, TRUE}, {"r14", REG_LR, TRUE}, {"r15", REG_PC, TRUE},
-  /* ATPCS Synonyms.  */
-  {"a1",  0, TRUE},  {"a2",  1, TRUE},      {"a3",  2, TRUE},      {"a4",  3, TRUE},
-  {"v1",  4, TRUE},  {"v2",  5, TRUE},      {"v3",  6, TRUE},      {"v4",  7, TRUE},
-  {"v5",  8, TRUE},  {"v6",  9, TRUE},      {"v7",  10, TRUE},     {"v8",  11, TRUE},
-  /* Well-known aliases.  */
-  {"wr",  7, TRUE},  {"sb",  9, TRUE},      {"sl",  10, TRUE},     {"fp",  11, TRUE},
-  {"ip",  12, TRUE}, {"sp",  REG_SP, TRUE}, {"lr",  REG_LR, TRUE}, {"pc",  REG_PC, TRUE},
-  {NULL, 0, TRUE}
-};
-
-#define WR_PREFIX 0x200
-#define WC_PREFIX 0x400
-
-static const struct reg_entry iwmmxt_table[] =
-{
-  /* Intel Wireless MMX technology register names.  */
-  {  "wr0", 0x0 | WR_PREFIX, TRUE},   {"wr1", 0x1 | WR_PREFIX, TRUE},
-  {  "wr2", 0x2 | WR_PREFIX, TRUE},   {"wr3", 0x3 | WR_PREFIX, TRUE},
-  {  "wr4", 0x4 | WR_PREFIX, TRUE},   {"wr5", 0x5 | WR_PREFIX, TRUE},
-  {  "wr6", 0x6 | WR_PREFIX, TRUE},   {"wr7", 0x7 | WR_PREFIX, TRUE},
-  {  "wr8", 0x8 | WR_PREFIX, TRUE},   {"wr9", 0x9 | WR_PREFIX, TRUE},
-  { "wr10", 0xa | WR_PREFIX, TRUE},  {"wr11", 0xb | WR_PREFIX, TRUE},
-  { "wr12", 0xc | WR_PREFIX, TRUE},  {"wr13", 0xd | WR_PREFIX, TRUE},
-  { "wr14", 0xe | WR_PREFIX, TRUE},  {"wr15", 0xf | WR_PREFIX, TRUE},
-  { "wcid", 0x0 | WC_PREFIX, TRUE},  {"wcon", 0x1 | WC_PREFIX, TRUE},
-  {"wcssf", 0x2 | WC_PREFIX, TRUE}, {"wcasf", 0x3 | WC_PREFIX, TRUE},
-  {"wcgr0", 0x8 | WC_PREFIX, TRUE}, {"wcgr1", 0x9 | WC_PREFIX, TRUE},
-  {"wcgr2", 0xa | WC_PREFIX, TRUE}, {"wcgr3", 0xb | WC_PREFIX, TRUE},
-
-  {  "wR0", 0x0 | WR_PREFIX, TRUE},   {"wR1", 0x1 | WR_PREFIX, TRUE},
-  {  "wR2", 0x2 | WR_PREFIX, TRUE},   {"wR3", 0x3 | WR_PREFIX, TRUE},
-  {  "wR4", 0x4 | WR_PREFIX, TRUE},   {"wR5", 0x5 | WR_PREFIX, TRUE},
-  {  "wR6", 0x6 | WR_PREFIX, TRUE},   {"wR7", 0x7 | WR_PREFIX, TRUE},
-  {  "wR8", 0x8 | WR_PREFIX, TRUE},   {"wR9", 0x9 | WR_PREFIX, TRUE},
-  { "wR10", 0xa | WR_PREFIX, TRUE},  {"wR11", 0xb | WR_PREFIX, TRUE},
-  { "wR12", 0xc | WR_PREFIX, TRUE},  {"wR13", 0xd | WR_PREFIX, TRUE},
-  { "wR14", 0xe | WR_PREFIX, TRUE},  {"wR15", 0xf | WR_PREFIX, TRUE},
-  { "wCID", 0x0 | WC_PREFIX, TRUE},  {"wCon", 0x1 | WC_PREFIX, TRUE},
-  {"wCSSF", 0x2 | WC_PREFIX, TRUE}, {"wCASF", 0x3 | WC_PREFIX, TRUE},
-  {"wCGR0", 0x8 | WC_PREFIX, TRUE}, {"wCGR1", 0x9 | WC_PREFIX, TRUE},
-  {"wCGR2", 0xa | WC_PREFIX, TRUE}, {"wCGR3", 0xb | WC_PREFIX, TRUE},
-  {NULL, 0, TRUE}
-};
-
-/* Co-processor Numbers.  */
-static const struct reg_entry cp_table[] =
-{
-  {"p0",  0, TRUE},  {"p1",  1, TRUE},  {"p2",  2, TRUE},  {"p3", 3, TRUE},
-  {"p4",  4, TRUE},  {"p5",  5, TRUE},  {"p6",  6, TRUE},  {"p7", 7, TRUE},
-  {"p8",  8, TRUE},  {"p9",  9, TRUE},  {"p10", 10, TRUE}, {"p11", 11, TRUE},
-  {"p12", 12, TRUE}, {"p13", 13, TRUE}, {"p14", 14, TRUE}, {"p15", 15, TRUE},
-  {NULL, 0, TRUE}
-};
-
-/* Co-processor Register Numbers.  */
-static const struct reg_entry cn_table[] =
-{
-  {"c0",   0, TRUE},  {"c1",   1, TRUE},  {"c2",   2, TRUE},  {"c3",   3, TRUE},
-  {"c4",   4, TRUE},  {"c5",   5, TRUE},  {"c6",   6, TRUE},  {"c7",   7, TRUE},
-  {"c8",   8, TRUE},  {"c9",   9, TRUE},  {"c10",  10, TRUE}, {"c11",  11, TRUE},
-  {"c12",  12, TRUE}, {"c13",  13, TRUE}, {"c14",  14, TRUE}, {"c15",  15, TRUE},
-  /* Not really valid, but kept for back-wards compatibility.  */
-  {"cr0",  0, TRUE},  {"cr1",  1, TRUE},  {"cr2",  2, TRUE},  {"cr3",  3, TRUE},
-  {"cr4",  4, TRUE},  {"cr5",  5, TRUE},  {"cr6",  6, TRUE},  {"cr7",  7, TRUE},
-  {"cr8",  8, TRUE},  {"cr9",  9, TRUE},  {"cr10", 10, TRUE}, {"cr11", 11, TRUE},
-  {"cr12", 12, TRUE}, {"cr13", 13, TRUE}, {"cr14", 14, TRUE}, {"cr15", 15, TRUE},
-  {NULL, 0, TRUE}
-};
-
-/* FPA Registers.  */
-static const struct reg_entry fn_table[] =
-{
-  {"f0", 0, TRUE},   {"f1", 1, TRUE},   {"f2", 2, TRUE},   {"f3", 3, TRUE},
-  {"f4", 4, TRUE},   {"f5", 5, TRUE},   {"f6", 6, TRUE},   {"f7", 7, TRUE},
-  {NULL, 0, TRUE}
-};
-
-/* VFP SP Registers.  */
-static const struct reg_entry sn_table[] =
-{
-  {"s0",  0, TRUE},  {"s1",  1, TRUE},  {"s2",  2, TRUE},  {"s3", 3, TRUE},
-  {"s4",  4, TRUE},  {"s5",  5, TRUE},  {"s6",  6, TRUE},  {"s7", 7, TRUE},
-  {"s8",  8, TRUE},  {"s9",  9, TRUE},  {"s10", 10, TRUE}, {"s11", 11, TRUE},
-  {"s12", 12, TRUE}, {"s13", 13, TRUE}, {"s14", 14, TRUE}, {"s15", 15, TRUE},
-  {"s16", 16, TRUE}, {"s17", 17, TRUE}, {"s18", 18, TRUE}, {"s19", 19, TRUE},
-  {"s20", 20, TRUE}, {"s21", 21, TRUE}, {"s22", 22, TRUE}, {"s23", 23, TRUE},
-  {"s24", 24, TRUE}, {"s25", 25, TRUE}, {"s26", 26, TRUE}, {"s27", 27, TRUE},
-  {"s28", 28, TRUE}, {"s29", 29, TRUE}, {"s30", 30, TRUE}, {"s31", 31, TRUE},
-  {NULL, 0, TRUE}
-};
-
-/* VFP DP Registers.  */
-static const struct reg_entry dn_table[] =
-{
-  {"d0",  0, TRUE},  {"d1",  1, TRUE},  {"d2",  2, TRUE},  {"d3", 3, TRUE},
-  {"d4",  4, TRUE},  {"d5",  5, TRUE},  {"d6",  6, TRUE},  {"d7", 7, TRUE},
-  {"d8",  8, TRUE},  {"d9",  9, TRUE},  {"d10", 10, TRUE}, {"d11", 11, TRUE},
-  {"d12", 12, TRUE}, {"d13", 13, TRUE}, {"d14", 14, TRUE}, {"d15", 15, TRUE},
-  {NULL, 0, TRUE}
-};
-
-/* Maverick DSP coprocessor registers.  */
-static const struct reg_entry mav_mvf_table[] =
-{
-  {"mvf0",  0, TRUE},  {"mvf1",  1, TRUE},  {"mvf2",  2, TRUE},  {"mvf3",  3, TRUE},
-  {"mvf4",  4, TRUE},  {"mvf5",  5, TRUE},  {"mvf6",  6, TRUE},  {"mvf7",  7, TRUE},
-  {"mvf8",  8, TRUE},  {"mvf9",  9, TRUE},  {"mvf10", 10, TRUE}, {"mvf11", 11, TRUE},
-  {"mvf12", 12, TRUE}, {"mvf13", 13, TRUE}, {"mvf14", 14, TRUE}, {"mvf15", 15, TRUE},
-  {NULL, 0, TRUE}
-};
-
-static const struct reg_entry mav_mvd_table[] =
-{
-  {"mvd0",  0, TRUE},  {"mvd1",  1, TRUE},  {"mvd2",  2, TRUE},  {"mvd3",  3, TRUE},
-  {"mvd4",  4, TRUE},  {"mvd5",  5, TRUE},  {"mvd6",  6, TRUE},  {"mvd7",  7, TRUE},
-  {"mvd8",  8, TRUE},  {"mvd9",  9, TRUE},  {"mvd10", 10, TRUE}, {"mvd11", 11, TRUE},
-  {"mvd12", 12, TRUE}, {"mvd13", 13, TRUE}, {"mvd14", 14, TRUE}, {"mvd15", 15, TRUE},
-  {NULL, 0, TRUE}
-};
-
-static const struct reg_entry mav_mvfx_table[] =
-{
-  {"mvfx0",  0, TRUE},  {"mvfx1",  1, TRUE},  {"mvfx2",  2, TRUE},  {"mvfx3",  3, TRUE},
-  {"mvfx4",  4, TRUE},  {"mvfx5",  5, TRUE},  {"mvfx6",  6, TRUE},  {"mvfx7",  7, TRUE},
-  {"mvfx8",  8, TRUE},  {"mvfx9",  9, TRUE},  {"mvfx10", 10, TRUE}, {"mvfx11", 11, TRUE},
-  {"mvfx12", 12, TRUE}, {"mvfx13", 13, TRUE}, {"mvfx14", 14, TRUE}, {"mvfx15", 15, TRUE},
-  {NULL, 0, TRUE}
-};
-
-static const struct reg_entry mav_mvdx_table[] =
-{
-  {"mvdx0",  0, TRUE},  {"mvdx1",  1, TRUE},  {"mvdx2",  2, TRUE},  {"mvdx3",  3, TRUE},
-  {"mvdx4",  4, TRUE},  {"mvdx5",  5, TRUE},  {"mvdx6",  6, TRUE},  {"mvdx7",  7, TRUE},
-  {"mvdx8",  8, TRUE},  {"mvdx9",  9, TRUE},  {"mvdx10", 10, TRUE}, {"mvdx11", 11, TRUE},
-  {"mvdx12", 12, TRUE}, {"mvdx13", 13, TRUE}, {"mvdx14", 14, TRUE}, {"mvdx15", 15, TRUE},
-  {NULL, 0, TRUE}
-};
-
-static const struct reg_entry mav_mvax_table[] =
-{
-  {"mvax0", 0, TRUE}, {"mvax1", 1, TRUE}, {"mvax2", 2, TRUE}, {"mvax3", 3, TRUE},
-  {NULL, 0, TRUE}
-};
-
-static const struct reg_entry mav_dspsc_table[] =
-{
-  {"dspsc", 0, TRUE},
-  {NULL, 0, TRUE}
-};
-
-struct reg_map
-{
-  const struct reg_entry * names;
-  int                      max_regno;
-  struct hash_control *    htab;
-  const char *             expected;
-};
-
-struct reg_map all_reg_maps[] =
-{
-  {rn_table,        15, NULL, N_("ARM register expected")},
-  {cp_table,        15, NULL, N_("bad or missing co-processor number")},
-  {cn_table,        15, NULL, N_("co-processor register expected")},
-  {fn_table,         7, NULL, N_("FPA register expected")},
-  {sn_table,	    31, NULL, N_("VFP single precision register expected")},
-  {dn_table,	    15, NULL, N_("VFP double precision register expected")},
-  {mav_mvf_table,   15, NULL, N_("Maverick MVF register expected")},
-  {mav_mvd_table,   15, NULL, N_("Maverick MVD register expected")},
-  {mav_mvfx_table,  15, NULL, N_("Maverick MVFX register expected")},
-  {mav_mvdx_table,  15, NULL, N_("Maverick MVDX register expected")},
-  {mav_mvax_table,   3, NULL, N_("Maverick MVAX register expected")},
-  {mav_dspsc_table,  0, NULL, N_("Maverick DSPSC register expected")},
-  {iwmmxt_table,    23, NULL, N_("Intel Wireless MMX technology register expected")},
-};
-
-/* Enumeration matching entries in table above.  */
-enum arm_reg_type
-{
-  REG_TYPE_RN = 0,
-#define REG_TYPE_FIRST REG_TYPE_RN
-  REG_TYPE_CP = 1,
-  REG_TYPE_CN = 2,
-  REG_TYPE_FN = 3,
-  REG_TYPE_SN = 4,
-  REG_TYPE_DN = 5,
-  REG_TYPE_MVF = 6,
-  REG_TYPE_MVD = 7,
-  REG_TYPE_MVFX = 8,
-  REG_TYPE_MVDX = 9,
-  REG_TYPE_MVAX = 10,
-  REG_TYPE_DSPSC = 11,
-  REG_TYPE_IWMMXT = 12,
-
-  REG_TYPE_MAX = 13
-};
-
 /* ARM instructions take 4bytes in the object file, Thumb instructions
    take 2:  */
-#define INSN_SIZE       4
-
-/* "INSN<cond> X,Y" where X:bit12, Y:bit16.  */
-#define MAV_MODE1	0x100c
-
-/* "INSN<cond> X,Y" where X:bit16, Y:bit12.  */
-#define MAV_MODE2	0x0c10
-
-/* "INSN<cond> X,Y" where X:bit12, Y:bit16.  */
-#define MAV_MODE3	0x100c
-
-/* "INSN<cond> X,Y,Z" where X:16, Y:0, Z:12.  */
-#define MAV_MODE4	0x0c0010
-
-/* "INSN<cond> X,Y,Z" where X:12, Y:16, Z:0.  */
-#define MAV_MODE5	0x00100c
-
-/* "INSN<cond> W,X,Y,Z" where W:5, X:12, Y:16, Z:0.  */
-#define MAV_MODE6	0x00100c05
+#define INSN_SIZE	4
 
 struct asm_opcode
 {
   /* Basic string to match.  */
-  const char * template;
+  const char *template;
+
+  /* Parameters to instruction.	 */
+  unsigned char operands[8];
+
+  /* Conditional tag - see opcode_lookup.  */
+  unsigned int tag : 4;
 
   /* Basic instruction code.  */
-  unsigne
