Remove auot generated man pages
authorNick Clifton <nickc@redhat.com>
Tue, 19 Jun 2001 11:57:29 +0000 (11:57 +0000)
committerNick Clifton <nickc@redhat.com>
Tue, 19 Jun 2001 11:57:29 +0000 (11:57 +0000)
42 files changed:
binutils/ChangeLog
binutils/Makefile.am
binutils/Makefile.in
binutils/addr2line.1 [deleted file]
binutils/ar.1 [deleted file]
binutils/binutils.texi [deleted file]
binutils/configure
binutils/configure.in
binutils/cxxfilt.man [deleted file]
binutils/dlltool.1 [deleted file]
binutils/doc/Makefile.am [new file with mode: 0644]
binutils/doc/Makefile.in [new file with mode: 0644]
binutils/doc/binutils.texi [new file with mode: 0644]
binutils/nlmconv.1 [deleted file]
binutils/nm.1 [deleted file]
binutils/objcopy.1 [deleted file]
binutils/objdump.1 [deleted file]
binutils/po/binutils.pot
binutils/ranlib.1 [deleted file]
binutils/readelf.1 [deleted file]
binutils/readelf.c
binutils/size.1 [deleted file]
binutils/strings.1 [deleted file]
binutils/strip.1 [deleted file]
binutils/windres.1 [deleted file]
gas/ChangeLog
gas/Makefile.am
gas/Makefile.in
gas/config/tc-arm.c [deleted file]
gas/doc/Makefile.am
gas/doc/Makefile.in
gas/doc/as.1 [deleted file]
gas/po/POTFILES.in
gas/po/gas.pot
gprof/ChangeLog
gprof/Makefile.am
gprof/Makefile.in
gprof/gprof.1 [deleted file]
ld/ChangeLog
ld/Makefile.am
ld/Makefile.in
ld/ld.1 [deleted file]

index 47beabf7a32407b401457067c8f24eb169cb3592..53aeb365f28b682c7a667ed8c7ae0d6d0e966cc2 100644 (file)
@@ -1,3 +1,30 @@
+2001-06-19  Nick Clifton  <nickc@cambridge.redhat.com>
+
+       * readelf.c: Restore formatting.
+
+2001-06-18  H.J. Lu <hjl@gnu.org> & Nick Clifton <nickc@redhat.com>
+
+        * Makefile.am: Move documentation into doc subdirectory.
+        * Makefile.in: Regenerated.
+       * binutils.texi: Move into doc subdirectory.
+        * addr2line.1: Removed.
+        * ar.1: Likewise.
+        * dlltool.1: Likewise.
+        * nlmconv.1: Likewise.
+        * nm.1: Likewise.
+        * objcopy.1: Likewise.
+        * objdump.1: Likewise.
+        * ranlib.1: Likewise.
+        * readelf.1: Likewise.
+        * size.1: Likewise.
+        * strings.1: Likewise.
+        * strip.1: Likewise.
+        * windres.1: Likewise.
+        * cxxfilt.man: Likewise.
+       * doc: New Directory.
+       * doc/Makefile.am: New file.
+       * doc/Makefile.in: Generate.
+
 2001-06-09  Alan Modra  <amodra@bigpond.net.au>
 
        * NEWS: Fix a typo.  Mention hppa64-elf.  Add binutils-2.11 marker.
 2001-06-09  Alan Modra  <amodra@bigpond.net.au>
 
        * NEWS: Fix a typo.  Mention hppa64-elf.  Add binutils-2.11 marker.
index ebe32f460f1a3aa14c114e837c29e65fec459cd1..27a70a801eb114422b16acec7a8e95f26ad5f43d 100644 (file)
@@ -5,7 +5,7 @@ INTLLIBS = @INTLLIBS@
 
 AUTOMAKE_OPTIONS = cygnus dejagnu
 
 
 AUTOMAKE_OPTIONS = cygnus dejagnu
 
-SUBDIRS = po
+SUBDIRS = doc po
 
 tooldir = $(exec_prefix)/$(target_alias)
 
 
 tooldir = $(exec_prefix)/$(target_alias)
 
@@ -52,29 +52,6 @@ DLLWRAP_PROG=dllwrap
 
 SRCONV_PROG=srconv$(EXEEXT) sysdump$(EXEEXT) coffdump$(EXEEXT) 
 
 
 SRCONV_PROG=srconv$(EXEEXT) sysdump$(EXEEXT) coffdump$(EXEEXT) 
 
-MANCONF  = -Dman
-
-TEXI2POD = perl $(srcdir)/../etc/texi2pod.pl
-
-POD2MAN = pod2man --center="GNU" --release="binutils-$(VERSION)" --section=1
-
-# List of man pages generated from binutils.texi
-man_MANS = \
-       addr2line.1 \
-       ar.1 \
-       dlltool.1 \
-       nlmconv.1 \
-       nm.1 \
-       objcopy.1 \
-       objdump.1 \
-       ranlib.1 \
-       readelf.1 \
-       size.1 \
-       strings.1 \
-       strip.1 \
-       windres.1 \
-       $(DEMANGLER_NAME).1
-
 PROGS = $(SIZE_PROG) $(OBJDUMP_PROG) $(NM_PROG) $(AR_PROG) $(STRINGS_PROG) $(STRIP_PROG) $(RANLIB_PROG) $(DEMANGLER_PROG) $(OBJCOPY_PROG) @BUILD_NLMCONV@ @BUILD_SRCONV@ @BUILD_DLLTOOL@ @BUILD_WINDRES@ $(ADDR2LINE_PROG) $(READELF_PROG) @BUILD_DLLWRAP@ @BUILD_MISC@
 
 bin_PROGRAMS = $(SIZE_PROG) $(OBJDUMP_PROG) $(AR_PROG) $(STRINGS_PROG) $(RANLIB_PROG) $(OBJCOPY_PROG) @BUILD_NLMCONV@ @BUILD_SRCONV@ @BUILD_DLLTOOL@ @BUILD_WINDRES@ $(ADDR2LINE_PROG) $(READELF_PROG) @BUILD_DLLWRAP@ @BUILD_MISC@
 PROGS = $(SIZE_PROG) $(OBJDUMP_PROG) $(NM_PROG) $(AR_PROG) $(STRINGS_PROG) $(STRIP_PROG) $(RANLIB_PROG) $(DEMANGLER_PROG) $(OBJCOPY_PROG) @BUILD_NLMCONV@ @BUILD_SRCONV@ @BUILD_DLLTOOL@ @BUILD_WINDRES@ $(ADDR2LINE_PROG) $(READELF_PROG) @BUILD_DLLWRAP@ @BUILD_MISC@
 
 bin_PROGRAMS = $(SIZE_PROG) $(OBJDUMP_PROG) $(AR_PROG) $(STRINGS_PROG) $(RANLIB_PROG) $(OBJCOPY_PROG) @BUILD_NLMCONV@ @BUILD_SRCONV@ @BUILD_DLLTOOL@ @BUILD_WINDRES@ $(ADDR2LINE_PROG) $(READELF_PROG) @BUILD_DLLWRAP@ @BUILD_MISC@
@@ -171,8 +148,6 @@ check-DEJAGNU: site.exp
 installcheck:
        /bin/sh $(srcdir)/sanity.sh $(bindir)
 
 installcheck:
        /bin/sh $(srcdir)/sanity.sh $(bindir)
 
-info_TEXINFOS = binutils.texi
-
 LDADD = $(BFDLIB) $(LIBIBERTY) $(INTLLIBS)
 
 size_SOURCES = size.c $(BULIBS)
 LDADD = $(BFDLIB) $(LIBIBERTY) $(INTLLIBS)
 
 size_SOURCES = size.c $(BULIBS)
@@ -297,10 +272,10 @@ dllwrap_SOURCES = dllwrap.c version.c
 dllwrap_LDADD = $(LIBIBERTY) $(INTLLIBS)
 
 
 dllwrap_LDADD = $(LIBIBERTY) $(INTLLIBS)
 
 
-DISTSTUFF = arparse.c arparse.h arlex.c nlmheader.c sysinfo.c sysinfo.h \
+EXTRA_DIST = arparse.c arparse.h arlex.c nlmheader.c sysinfo.c sysinfo.h \
        syslex.c deflex.c defparse.h defparse.c rclex.c rcparse.h rcparse.c
 
        syslex.c deflex.c defparse.h defparse.c rclex.c rcparse.h rcparse.c
 
-diststuff: $(DISTSTUFF) info
+diststuff: $(EXTRA_DIST) info
 
 DISTCLEANFILES = stamp-under sysinfo underscore.c sysroff.c sysroff.h \
        site.exp site.bak
 
 DISTCLEANFILES = stamp-under sysinfo underscore.c sysroff.c sysroff.h \
        site.exp site.bak
@@ -350,122 +325,8 @@ dep-am: DEP
 .PHONY: dep dep-in dep-am
 
 ###
 .PHONY: dep dep-in dep-am
 
 ###
-# DOCUMENTATION TARGETS
-config.texi: Makefile
-       rm -f config.texi
-       echo '@set VERSION $(VERSION)' > config.texi
-
-binutils.dvi: $(srcdir)/binutils.texi config.texi
-
-binutils.info: $(srcdir)/binutils.texi config.texi
-
-# Man page generation from texinfo
-$(srcdir)/addr2line.1: $(srcdir)/binutils.texi
-       touch $@
-       -$(TEXI2POD) $(MANCONF) -Daddr2line < $< > $@.pod
-       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
-               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
-       rm -f $@.pod
-
-$(srcdir)/ar.1:        $(srcdir)/binutils.texi
-       touch $@
-       -$(TEXI2POD) $(MANCONF) -Dar < $< > $@.pod
-       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
-               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
-       rm -f $@.pod
-
-$(srcdir)/dlltool.1:   $(srcdir)/binutils.texi
-       touch $@
-       -$(TEXI2POD) $(MANCONF) -Ddlltool < $< > $@.pod
-       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
-               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
-       rm -f $@.pod
-
-$(srcdir)/nlmconv.1:   $(srcdir)/binutils.texi
-       touch $@
-       -$(TEXI2POD) $(MANCONF) -Dnlmconv < $< > $@.pod
-       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
-               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
-       rm -f $@.pod
-
-$(srcdir)/nm.1:        $(srcdir)/binutils.texi
-       touch $@
-       -$(TEXI2POD) $(MANCONF) -Dnm < $< > $@.pod
-       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
-               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
-       rm -f $@.pod
-
-$(srcdir)/objcopy.1:   $(srcdir)/binutils.texi
-       touch $@
-       -$(TEXI2POD) $(MANCONF) -Dobjcopy < $< > $@.pod
-       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
-               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
-       rm -f $@.pod
-
-$(srcdir)/objdump.1:   $(srcdir)/binutils.texi
-       touch $@
-       -$(TEXI2POD) $(MANCONF) -Dobjdump < $< > $@.pod
-       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
-               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
-       rm -f $@.pod
-
-$(srcdir)/ranlib.1:    $(srcdir)/binutils.texi
-       touch $@
-       -$(TEXI2POD) $(MANCONF) -Dranlib < $< > $@.pod
-       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
-               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
-       rm -f $@.pod
-
-$(srcdir)/readelf.1:   $(srcdir)/binutils.texi
-       touch $@
-       -$(TEXI2POD) $(MANCONF) -Dreadelf < $< > $@.pod
-       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
-               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
-       rm -f $@.pod
-
-$(srcdir)/size.1:      $(srcdir)/binutils.texi
-       touch $@
-       -$(TEXI2POD) $(MANCONF) -Dsize < $< > $@.pod
-       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
-               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
-       rm -f $@.pod
-
-$(srcdir)/strings.1:   $(srcdir)/binutils.texi
-       touch $@
-       -$(TEXI2POD) $(MANCONF) -Dstrings < $< > $@.pod
-       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
-               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
-       rm -f $@.pod
-
-$(srcdir)/strip.1:     $(srcdir)/binutils.texi
-       touch $@
-       -$(TEXI2POD) $(MANCONF) -Dstrip < $< > $@.pod
-       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
-               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
-       rm -f $@.pod
-
-$(srcdir)/windres.1:   $(srcdir)/binutils.texi
-       touch $@
-       -$(TEXI2POD) $(MANCONF) -Dwindres < $< > $@.pod
-       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
-               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
-       rm -f $@.pod
-
-$(srcdir)/cxxfilt.man: $(srcdir)/binutils.texi
-       touch $@
-       -$(TEXI2POD) $(MANCONF) -Dcxxfilt < $< > $@.pod
-       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
-               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
-       rm -f $@.pod
-
-MAINTAINERCLEANFILES = config.texi
-
-$(DEMANGLER_NAME).1: cxxfilt.man Makefile
-       sed -e 's/@PROGRAM@/$(DEMANGLER_NAME)/' < $(srcdir)/cxxfilt.man \
-               > $(DEMANGLER_NAME).1
-
-MOSTLYCLEANFILES = sysinfo $(DEMANGLER_NAME).1 binutils.log binutils.sum \
-       abcdefgh*
+
+MOSTLYCLEANFILES = sysinfo binutils.log binutils.sum abcdefgh*
 mostlyclean-local:
        -rm -rf tmpdir
 
 mostlyclean-local:
        -rm -rf tmpdir
 
index a61e1c45b550b40f20ea0cb5e27d1194e447af8e..df7ddddabaaf221d03aeecb160dde651f50d1a31 100644 (file)
@@ -117,7 +117,7 @@ INTLLIBS = @INTLLIBS@
 
 AUTOMAKE_OPTIONS = cygnus dejagnu
 
 
 AUTOMAKE_OPTIONS = cygnus dejagnu
 
-SUBDIRS = po
+SUBDIRS = doc po
 
 tooldir = $(exec_prefix)/$(target_alias)
 
 
 tooldir = $(exec_prefix)/$(target_alias)
 
@@ -161,16 +161,6 @@ DLLWRAP_PROG = dllwrap
 
 SRCONV_PROG = srconv$(EXEEXT) sysdump$(EXEEXT) coffdump$(EXEEXT) 
 
 
 SRCONV_PROG = srconv$(EXEEXT) sysdump$(EXEEXT) coffdump$(EXEEXT) 
 
-MANCONF = -Dman
-
-TEXI2POD = perl $(srcdir)/../etc/texi2pod.pl
-
-POD2MAN = pod2man --center="GNU" --release="binutils-$(VERSION)" --section=1
-
-# List of man pages generated from binutils.texi
-man_MANS =     addr2line.1     ar.1    dlltool.1       nlmconv.1       nm.1    objcopy.1       objdump.1       ranlib.1        readelf.1       size.1  strings.1       strip.1         windres.1       $(DEMANGLER_NAME).1
-
-
 PROGS = $(SIZE_PROG) $(OBJDUMP_PROG) $(NM_PROG) $(AR_PROG) $(STRINGS_PROG) $(STRIP_PROG) $(RANLIB_PROG) $(DEMANGLER_PROG) $(OBJCOPY_PROG) @BUILD_NLMCONV@ @BUILD_SRCONV@ @BUILD_DLLTOOL@ @BUILD_WINDRES@ $(ADDR2LINE_PROG) $(READELF_PROG) @BUILD_DLLWRAP@ @BUILD_MISC@
 
 bin_PROGRAMS = $(SIZE_PROG) $(OBJDUMP_PROG) $(AR_PROG) $(STRINGS_PROG) $(RANLIB_PROG) $(OBJCOPY_PROG) @BUILD_NLMCONV@ @BUILD_SRCONV@ @BUILD_DLLTOOL@ @BUILD_WINDRES@ $(ADDR2LINE_PROG) $(READELF_PROG) @BUILD_DLLWRAP@ @BUILD_MISC@
 PROGS = $(SIZE_PROG) $(OBJDUMP_PROG) $(NM_PROG) $(AR_PROG) $(STRINGS_PROG) $(STRIP_PROG) $(RANLIB_PROG) $(DEMANGLER_PROG) $(OBJCOPY_PROG) @BUILD_NLMCONV@ @BUILD_SRCONV@ @BUILD_DLLTOOL@ @BUILD_WINDRES@ $(ADDR2LINE_PROG) $(READELF_PROG) @BUILD_DLLWRAP@ @BUILD_MISC@
 
 bin_PROGRAMS = $(SIZE_PROG) $(OBJDUMP_PROG) $(AR_PROG) $(STRINGS_PROG) $(RANLIB_PROG) $(OBJCOPY_PROG) @BUILD_NLMCONV@ @BUILD_SRCONV@ @BUILD_DLLTOOL@ @BUILD_WINDRES@ $(ADDR2LINE_PROG) $(READELF_PROG) @BUILD_DLLWRAP@ @BUILD_MISC@
@@ -190,15 +180,24 @@ MKDEP = gcc -MM
 
 INCLUDES = -D_GNU_SOURCE -I. -I$(srcdir) -I../bfd -I$(BFDDIR) -I$(INCDIR) @HDEFINES@ -I$(srcdir)/../intl -I../intl -DLOCALEDIR="\"$(prefix)/share/locale\""
 
 
 INCLUDES = -D_GNU_SOURCE -I. -I$(srcdir) -I../bfd -I$(BFDDIR) -I$(INCDIR) @HDEFINES@ -I$(srcdir)/../intl -I../intl -DLOCALEDIR="\"$(prefix)/share/locale\""
 
-HFILES = arsup.h bucomm.h budbg.h coffgrok.h debug.h nlmconv.h dlltool.h       windres.h winduni.h
+HFILES = arsup.h bucomm.h budbg.h coffgrok.h debug.h nlmconv.h dlltool.h \
+       windres.h winduni.h
 
 
 GENERATED_HFILES = arparse.h sysroff.h sysinfo.h defparse.h rcparse.h
 
 
 
 GENERATED_HFILES = arparse.h sysroff.h sysinfo.h defparse.h rcparse.h
 
-CFILES = addr2line.c ar.c arsup.c bucomm.c coffdump.c coffgrok.c debug.c       dlltool.c filemode.c ieee.c is-ranlib.c is-strip.c maybe-ranlib.c       maybe-strip.c nlmconv.c nm.c not-ranlib.c not-strip.c   objcopy.c objdump.c prdbg.c rdcoff.c rddbg.c size.c srconv.c    stabs.c strings.c sysdump.c version.c wrstabs.c         windres.c resrc.c rescoff.c resbin.c winduni.c readelf.c        resres.c dllwrap.c rename.c
+CFILES = addr2line.c ar.c arsup.c bucomm.c coffdump.c coffgrok.c debug.c \
+       dlltool.c filemode.c ieee.c is-ranlib.c is-strip.c maybe-ranlib.c \
+       maybe-strip.c nlmconv.c nm.c not-ranlib.c not-strip.c \
+       objcopy.c objdump.c prdbg.c rdcoff.c rddbg.c size.c srconv.c \
+       stabs.c strings.c sysdump.c version.c wrstabs.c \
+       windres.c resrc.c rescoff.c resbin.c winduni.c readelf.c \
+       resres.c dllwrap.c rename.c
 
 
 
 
-GENERATED_CFILES =     underscore.c arparse.c arlex.c sysroff.c sysinfo.c syslex.c     defparse.c deflex.c nlmheader.c rcparse.c rclex.c
+GENERATED_CFILES = \
+       underscore.c arparse.c arlex.c sysroff.c sysinfo.c syslex.c \
+       defparse.c deflex.c nlmheader.c rcparse.c rclex.c
 
 
 DEBUG_SRCS = rddbg.c debug.c stabs.c ieee.c rdcoff.c
 
 
 DEBUG_SRCS = rddbg.c debug.c stabs.c ieee.c rdcoff.c
@@ -215,15 +214,30 @@ LIBIBERTY = ../libiberty/libiberty.a
 
 POTFILES = $(CFILES) $(DEBUG_SRCS) $(HFILES)
 
 
 POTFILES = $(CFILES) $(DEBUG_SRCS) $(HFILES)
 
-EXPECT = `if [ -f $$r/../expect/expect ] ; then           echo $$r/../expect/expect ;           else echo expect ; fi`
-
-RUNTEST = `if [ -f ${srcdir}/../dejagnu/runtest ] ; then            echo ${srcdir}/../dejagnu/runtest ;            else echo runtest ;  fi`
+EXPECT = `if [ -f $$r/../expect/expect ] ; then \
+          echo $$r/../expect/expect ; \
+          else echo expect ; fi`
 
 
+RUNTEST = `if [ -f ${srcdir}/../dejagnu/runtest ] ; then \
+           echo ${srcdir}/../dejagnu/runtest ; \
+           else echo runtest ;  fi`
 
 
-CC_FOR_TARGET = `   if [ -f $$r/../gcc/xgcc ] ; then     if [ -f $$r/../newlib/Makefile ] ; then       echo $$r/../gcc/xgcc -B$$r/../gcc/ -idirafter $$r/../newlib/targ-include -idirafter $${srcroot}/../newlib/libc/include -nostdinc;     else       echo $$r/../gcc/xgcc -B$$r/../gcc/;     fi;   else     if [ "@host@" = "@target@" ] ; then       echo $(CC);     else       echo gcc | sed '$(transform)';     fi;   fi`
 
 
+CC_FOR_TARGET = ` \
+  if [ -f $$r/../gcc/xgcc ] ; then \
+    if [ -f $$r/../newlib/Makefile ] ; then \
+      echo $$r/../gcc/xgcc -B$$r/../gcc/ -idirafter $$r/../newlib/targ-include -idirafter $${srcroot}/../newlib/libc/include -nostdinc; \
+    else \
+      echo $$r/../gcc/xgcc -B$$r/../gcc/; \
+    fi; \
+  else \
+    if [ "@host@" = "@target@" ] ; then \
+      echo $(CC); \
+    else \
+      echo gcc | sed '$(transform)'; \
+    fi; \
+  fi`
 
 
-info_TEXINFOS = binutils.texi
 
 LDADD = $(BFDLIB) $(LIBIBERTY) $(INTLLIBS)
 
 
 LDADD = $(BFDLIB) $(LIBIBERTY) $(INTLLIBS)
 
@@ -265,23 +279,25 @@ sysdump_SOURCES = sysdump.c $(BULIBS)
 
 nlmconv_SOURCES = nlmconv.c nlmheader.y $(BULIBS)
 
 
 nlmconv_SOURCES = nlmconv.c nlmheader.y $(BULIBS)
 
-windres_SOURCES = windres.c resrc.c rescoff.c resbin.c rcparse.y rclex.l       winduni.c resres.c $(BULIBS)
+windres_SOURCES = windres.c resrc.c rescoff.c resbin.c rcparse.y rclex.l \
+       winduni.c resres.c $(BULIBS)
 
 windres_LDADD = $(BFDLIB) $(LIBIBERTY) @LEXLIB@ $(INTLLIBS)
 
 dllwrap_SOURCES = dllwrap.c version.c
 dllwrap_LDADD = $(LIBIBERTY) $(INTLLIBS)
 
 
 windres_LDADD = $(BFDLIB) $(LIBIBERTY) @LEXLIB@ $(INTLLIBS)
 
 dllwrap_SOURCES = dllwrap.c version.c
 dllwrap_LDADD = $(LIBIBERTY) $(INTLLIBS)
 
-DISTSTUFF = arparse.c arparse.h arlex.c nlmheader.c sysinfo.c sysinfo.h        syslex.c deflex.c defparse.h defparse.c rclex.c rcparse.h rcparse.c
+EXTRA_DIST = arparse.c arparse.h arlex.c nlmheader.c sysinfo.c sysinfo.h \
+       syslex.c deflex.c defparse.h defparse.c rclex.c rcparse.h rcparse.c
 
 
 
 
-DISTCLEANFILES = stamp-under sysinfo underscore.c sysroff.c sysroff.h  site.exp site.bak
+DISTCLEANFILES = stamp-under sysinfo underscore.c sysroff.c sysroff.h \
+       site.exp site.bak
 
 
 
 
-MAINTAINERCLEANFILES = config.texi
-
-MOSTLYCLEANFILES = sysinfo $(DEMANGLER_NAME).1 binutils.log binutils.sum       abcdefgh*
+###
 
 
+MOSTLYCLEANFILES = sysinfo binutils.log binutils.sum abcdefgh*
 
 CLEANFILES = dep.sed DEP DEPA DEP1 DEP2
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 
 CLEANFILES = dep.sed DEP DEPA DEP1 DEP2
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -398,15 +414,6 @@ COMPILE = $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CF
 LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
 LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
 LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
 CCLD = $(CC)
 LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@
-TEXI2DVI = `if test -f $(top_srcdir)/../texinfo/util/texi2dvi; then echo $(top_srcdir)/../texinfo/util/texi2dvi; else echo texi2dvi; fi`
-TEXINFO_TEX = $(top_srcdir)/../texinfo/texinfo.tex
-INFO_DEPS = binutils.info
-DVIS = binutils.dvi
-TEXINFOS = binutils.texi
-man1dir = $(mandir)/man1
-MANS = $(man_MANS)
-
-NROFF = nroff
 DIST_COMMON =  README ./stamp-h.in ChangeLog Makefile.am Makefile.in \
 NEWS acinclude.m4 aclocal.m4 arlex.c arparse.c config.in configure \
 configure.in deflex.c defparse.c nlmheader.c rclex.c rcparse.c
 DIST_COMMON =  README ./stamp-h.in ChangeLog Makefile.am Makefile.in \
 NEWS acinclude.m4 aclocal.m4 arlex.c arparse.c config.in configure \
 configure.in deflex.c defparse.c nlmheader.c rclex.c rcparse.c
@@ -421,7 +428,7 @@ OBJECTS = $(nlmconv_OBJECTS) $(srconv_OBJECTS) $(sysdump_OBJECTS) $(coffdump_OBJ
 
 all: all-redirect
 .SUFFIXES:
 
 all: all-redirect
 .SUFFIXES:
-.SUFFIXES: .S .c .dvi .info .l .lo .o .obj .ps .s .texi .texinfo .txi .y
+.SUFFIXES: .S .c .l .lo .o .obj .s .y
 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
        cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile
 
 $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
        cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile
 
@@ -624,158 +631,6 @@ nlmheader.h: nlmheader.c
 rcparse.h: rcparse.c
 
 
 rcparse.h: rcparse.c
 
 
-binutils.info: binutils.texi
-binutils.dvi: binutils.texi
-
-
-DVIPS = dvips
-
-.texi.info:
-       @rm -f $@ $@-[0-9] $@-[0-9][0-9]
-       $(MAKEINFO) -I $(srcdir) $<
-
-.texi.dvi:
-       TEXINPUTS=$(top_srcdir)/../texinfo/texinfo.tex:$$TEXINPUTS \
-         MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
-
-.texi:
-       @rm -f $@ $@-[0-9] $@-[0-9][0-9]
-       $(MAKEINFO) -I $(srcdir) $<
-
-.texinfo.info:
-       @rm -f $@ $@-[0-9] $@-[0-9][0-9]
-       $(MAKEINFO) -I $(srcdir) $<
-
-.texinfo:
-       @rm -f $@ $@-[0-9] $@-[0-9][0-9]
-       $(MAKEINFO) -I $(srcdir) $<
-
-.texinfo.dvi:
-       TEXINPUTS=$(top_srcdir)/../texinfo/texinfo.tex:$$TEXINPUTS \
-         MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
-
-.txi.info:
-       @rm -f $@ $@-[0-9] $@-[0-9][0-9]
-       $(MAKEINFO) -I $(srcdir) $<
-
-.txi.dvi:
-       TEXINPUTS=$(top_srcdir)/../texinfo/texinfo.tex:$$TEXINPUTS \
-         MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
-
-.txi:
-       @rm -f $@ $@-[0-9] $@-[0-9][0-9]
-       $(MAKEINFO) -I $(srcdir) $<
-.dvi.ps:
-       $(DVIPS) $< -o $@
-
-install-info-am: $(INFO_DEPS)
-       @$(NORMAL_INSTALL)
-       $(mkinstalldirs) $(DESTDIR)$(infodir)
-       @list='$(INFO_DEPS)'; \
-       for file in $$list; do \
-         if test -f $$file; then d=.; else d=$(srcdir); fi; \
-         for ifile in `cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \
-           if test -f $$d/$$ifile; then \
-             echo " $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile"; \
-             $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile; \
-           else : ; fi; \
-         done; \
-       done
-       @$(POST_INSTALL)
-       @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
-         list='$(INFO_DEPS)'; \
-         for file in $$list; do \
-           echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file";\
-           install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file || :;\
-         done; \
-       else : ; fi
-
-uninstall-info:
-       $(PRE_UNINSTALL)
-       @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
-         ii=yes; \
-       else ii=; fi; \
-       list='$(INFO_DEPS)'; \
-       for file in $$list; do \
-         test -z "$ii" \
-           || install-info --info-dir=$(DESTDIR)$(infodir) --remove $$file; \
-       done
-       @$(NORMAL_UNINSTALL)
-       list='$(INFO_DEPS)'; \
-       for file in $$list; do \
-         (cd $(DESTDIR)$(infodir) && rm -f $$file $$file-[0-9] $$file-[0-9][0-9]); \
-       done
-
-dist-info: $(INFO_DEPS)
-       list='$(INFO_DEPS)'; \
-       for base in $$list; do \
-         if test -f $$base; then d=.; else d=$(srcdir); fi; \
-         for file in `cd $$d && eval echo $$base*`; do \
-           test -f $(distdir)/$$file \
-           || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
-           || cp -p $$d/$$file $(distdir)/$$file; \
-         done; \
-       done
-
-mostlyclean-aminfo:
-       -rm -f binutils.aux binutils.cp binutils.cps binutils.dvi binutils.fn \
-         binutils.fns binutils.ky binutils.kys binutils.ps \
-         binutils.log binutils.pg binutils.toc binutils.tp \
-         binutils.tps binutils.vr binutils.vrs binutils.op binutils.tr \
-         binutils.cv binutils.cn
-
-clean-aminfo:
-
-distclean-aminfo:
-
-maintainer-clean-aminfo:
-       for i in $(INFO_DEPS); do \
-         rm -f $$i; \
-         if test "`echo $$i-[0-9]*`" != "$$i-[0-9]*"; then \
-           rm -f $$i-[0-9]*; \
-         fi; \
-       done
-clean-info: mostlyclean-aminfo
-
-install-man1:
-       $(mkinstalldirs) $(DESTDIR)$(man1dir)
-       @list='$(man1_MANS)'; \
-       l2='$(man_MANS)'; for i in $$l2; do \
-         case "$$i" in \
-           *.1*) list="$$list $$i" ;; \
-         esac; \
-       done; \
-       for i in $$list; do \
-         if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
-         else file=$$i; fi; \
-         ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-         inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-         inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-         echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst"; \
-         $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst; \
-       done
-
-uninstall-man1:
-       @list='$(man1_MANS)'; \
-       l2='$(man_MANS)'; for i in $$l2; do \
-         case "$$i" in \
-           *.1*) list="$$list $$i" ;; \
-         esac; \
-       done; \
-       for i in $$list; do \
-         ext=`echo $$i | sed -e 's/^.*\\.//'`; \
-         inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
-         inst=`echo $$inst | sed '$(transform)'`.$$ext; \
-         echo " rm -f $(DESTDIR)$(man1dir)/$$inst"; \
-         rm -f $(DESTDIR)$(man1dir)/$$inst; \
-       done
-install-man: $(MANS)
-       @$(NORMAL_INSTALL)
-       $(MAKE) $(AM_MAKEFLAGS) install-man1
-uninstall-man:
-       @$(NORMAL_UNINSTALL)
-       $(MAKE) $(AM_MAKEFLAGS) uninstall-man1
-
 # This directory's subdirectories are mostly independent; you can cd
 # into them and run `make' without going through this Makefile.
 # To change the values of `make' variables: instead of editing Makefiles,
 # This directory's subdirectories are mostly independent; you can cd
 # into them and run `make' without going through this Makefile.
 # To change the values of `make' variables: instead of editing Makefiles,
@@ -923,7 +778,6 @@ distdir: $(DISTFILES)
              || exit 1; \
          fi; \
        done
              || exit 1; \
          fi; \
        done
-       $(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-info
 
 RUNTESTFLAGS =
 
 
 RUNTESTFLAGS =
 
@@ -949,9 +803,9 @@ site.exp: Makefile
        @test ! -f site.exp || sed '1,/^## All variables above are.*##/ d' site.exp >> $@-t
        @test ! -f site.exp || mv site.exp site.bak
        @mv $@-t site.exp
        @test ! -f site.exp || sed '1,/^## All variables above are.*##/ d' site.exp >> $@-t
        @test ! -f site.exp || mv site.exp site.bak
        @mv $@-t site.exp
-info-am: $(INFO_DEPS)
+info-am:
 info: info-recursive
 info: info-recursive
-dvi-am: $(DVIS)
+dvi-am:
 dvi: dvi-recursive
 check-am:
        $(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU
 dvi: dvi-recursive
 check-am:
        $(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU
@@ -966,21 +820,21 @@ all-recursive-am: config.h
 install-exec-am: install-binPROGRAMS install-exec-local
 install-exec: install-exec-recursive
 
 install-exec-am: install-binPROGRAMS install-exec-local
 install-exec: install-exec-recursive
 
-install-data-am: install-man
+install-data-am:
 install-data: install-data-recursive
 
 install-am: all-am
        @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
 install: install-recursive
 install-data: install-data-recursive
 
 install-am: all-am
        @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
 install: install-recursive
-uninstall-am: uninstall-binPROGRAMS uninstall-man
+uninstall-am: uninstall-binPROGRAMS
 uninstall: uninstall-recursive
 uninstall: uninstall-recursive
-all-am: Makefile $(PROGRAMS) $(MANS) config.h
+all-am: Makefile $(PROGRAMS) config.h
 all-redirect: all-recursive-am
 install-strip:
        $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
 installdirs: installdirs-recursive
 installdirs-am:
 all-redirect: all-recursive-am
 install-strip:
        $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
 installdirs: installdirs-recursive
 installdirs-am:
-       $(mkinstalldirs)  $(DESTDIR)$(bindir) $(DESTDIR)$(mandir)/man1
+       $(mkinstalldirs)  $(DESTDIR)$(bindir)
 
 
 mostlyclean-generic:
 
 
 mostlyclean-generic:
@@ -995,24 +849,24 @@ distclean-generic:
        -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
 
 maintainer-clean-generic:
        -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
 
 maintainer-clean-generic:
-       -test -z "arlexldeflexlrclexlarparseharparsecdefparsehdefparsecnlmheaderhnlmheadercrcparsehrcparsec$(MAINTAINERCLEANFILES)" || rm -f arlexl deflexl rclexl arparseh arparsec defparseh defparsec nlmheaderh nlmheaderc rcparseh rcparsec $(MAINTAINERCLEANFILES)
+       -test -z "arlexldeflexlrclexlarparseharparsecdefparsehdefparsecnlmheaderhnlmheadercrcparsehrcparsec" || rm -f arlexl deflexl rclexl arparseh arparsec defparseh defparsec nlmheaderh nlmheaderc rcparseh rcparsec
 mostlyclean-am:  mostlyclean-hdr mostlyclean-binPROGRAMS \
                mostlyclean-noinstPROGRAMS mostlyclean-compile \
 mostlyclean-am:  mostlyclean-hdr mostlyclean-binPROGRAMS \
                mostlyclean-noinstPROGRAMS mostlyclean-compile \
-               mostlyclean-libtool mostlyclean-aminfo mostlyclean-tags \
+               mostlyclean-libtool mostlyclean-tags \
                mostlyclean-generic mostlyclean-local
 
 mostlyclean: mostlyclean-recursive
 
 clean-am:  clean-hdr clean-binPROGRAMS clean-noinstPROGRAMS \
                mostlyclean-generic mostlyclean-local
 
 mostlyclean: mostlyclean-recursive
 
 clean-am:  clean-hdr clean-binPROGRAMS clean-noinstPROGRAMS \
-               clean-compile clean-libtool clean-aminfo clean-tags \
-               clean-generic mostlyclean-am
+               clean-compile clean-libtool clean-tags clean-generic \
+               mostlyclean-am
 
 clean: clean-recursive
 
 distclean-am:  distclean-hdr distclean-binPROGRAMS \
                distclean-noinstPROGRAMS distclean-compile \
 
 clean: clean-recursive
 
 distclean-am:  distclean-hdr distclean-binPROGRAMS \
                distclean-noinstPROGRAMS distclean-compile \
-               distclean-libtool distclean-aminfo distclean-tags \
-               distclean-generic clean-am
+               distclean-libtool distclean-tags distclean-generic \
+               clean-am
        -rm -f libtool
 
 distclean: distclean-recursive
        -rm -f libtool
 
 distclean: distclean-recursive
@@ -1021,8 +875,8 @@ distclean: distclean-recursive
 maintainer-clean-am:  maintainer-clean-hdr maintainer-clean-binPROGRAMS \
                maintainer-clean-noinstPROGRAMS \
                maintainer-clean-compile maintainer-clean-libtool \
 maintainer-clean-am:  maintainer-clean-hdr maintainer-clean-binPROGRAMS \
                maintainer-clean-noinstPROGRAMS \
                maintainer-clean-compile maintainer-clean-libtool \
-               maintainer-clean-aminfo maintainer-clean-tags \
-               maintainer-clean-generic distclean-am
+               maintainer-clean-tags maintainer-clean-generic \
+               distclean-am
        @echo "This command is intended for maintainers to use;"
        @echo "it deletes files that may require special tools to rebuild."
 
        @echo "This command is intended for maintainers to use;"
        @echo "it deletes files that may require special tools to rebuild."
 
@@ -1036,14 +890,11 @@ mostlyclean-noinstPROGRAMS distclean-noinstPROGRAMS \
 clean-noinstPROGRAMS maintainer-clean-noinstPROGRAMS \
 mostlyclean-compile distclean-compile clean-compile \
 maintainer-clean-compile mostlyclean-libtool distclean-libtool \
 clean-noinstPROGRAMS maintainer-clean-noinstPROGRAMS \
 mostlyclean-compile distclean-compile clean-compile \
 maintainer-clean-compile mostlyclean-libtool distclean-libtool \
-clean-libtool maintainer-clean-libtool install-info-am uninstall-info \
-mostlyclean-aminfo distclean-aminfo clean-aminfo \
-maintainer-clean-aminfo install-man1 uninstall-man1 install-man \
-uninstall-man install-data-recursive uninstall-data-recursive \
-install-exec-recursive uninstall-exec-recursive installdirs-recursive \
-uninstalldirs-recursive all-recursive check-recursive \
-installcheck-recursive info-recursive dvi-recursive \
-mostlyclean-recursive distclean-recursive clean-recursive \
+clean-libtool maintainer-clean-libtool install-data-recursive \
+uninstall-data-recursive install-exec-recursive \
+uninstall-exec-recursive installdirs-recursive uninstalldirs-recursive \
+all-recursive check-recursive installcheck-recursive info-recursive \
+dvi-recursive mostlyclean-recursive distclean-recursive clean-recursive \
 maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
 distclean-tags clean-tags maintainer-clean-tags distdir check-DEJAGNU \
 info-am info dvi-am dvi check check-am installcheck-am installcheck \
 maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
 distclean-tags clean-tags maintainer-clean-tags distdir check-DEJAGNU \
 info-am info dvi-am dvi check check-am installcheck-am installcheck \
@@ -1152,7 +1003,7 @@ nlmconv.o: nlmconv.c $(INCDIR)/coff/sym.h $(INCDIR)/coff/ecoff.h
        ldname=`echo ld | sed '$(transform)'`; \
        $(COMPILE) -c -DLD_NAME="\"$${ldname}\"" @NLMCONV_DEFS@ $(srcdir)/nlmconv.c
 
        ldname=`echo ld | sed '$(transform)'`; \
        $(COMPILE) -c -DLD_NAME="\"$${ldname}\"" @NLMCONV_DEFS@ $(srcdir)/nlmconv.c
 
-diststuff: $(DISTSTUFF) info
+diststuff: $(EXTRA_DIST) info
 
 # Targets to rebuild dependencies in this Makefile.
 # Have to get rid of DEP1 here so that "$?" later includes all of $(CFILES).
 
 # Targets to rebuild dependencies in this Makefile.
 # Have to get rid of DEP1 here so that "$?" later includes all of $(CFILES).
@@ -1197,119 +1048,6 @@ dep-am: DEP
        $(SHELL) $(srcdir)/../move-if-change tmp-Makefile.am $(srcdir)/Makefile.am
 
 .PHONY: dep dep-in dep-am
        $(SHELL) $(srcdir)/../move-if-change tmp-Makefile.am $(srcdir)/Makefile.am
 
 .PHONY: dep dep-in dep-am
-
-###
-# DOCUMENTATION TARGETS
-config.texi: Makefile
-       rm -f config.texi
-       echo '@set VERSION $(VERSION)' > config.texi
-
-binutils.dvi: $(srcdir)/binutils.texi config.texi
-
-binutils.info: $(srcdir)/binutils.texi config.texi
-
-# Man page generation from texinfo
-$(srcdir)/addr2line.1: $(srcdir)/binutils.texi
-       touch $@
-       -$(TEXI2POD) $(MANCONF) -Daddr2line < $< > $@.pod
-       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
-               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
-       rm -f $@.pod
-
-$(srcdir)/ar.1:        $(srcdir)/binutils.texi
-       touch $@
-       -$(TEXI2POD) $(MANCONF) -Dar < $< > $@.pod
-       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
-               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
-       rm -f $@.pod
-
-$(srcdir)/dlltool.1:   $(srcdir)/binutils.texi
-       touch $@
-       -$(TEXI2POD) $(MANCONF) -Ddlltool < $< > $@.pod
-       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
-               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
-       rm -f $@.pod
-
-$(srcdir)/nlmconv.1:   $(srcdir)/binutils.texi
-       touch $@
-       -$(TEXI2POD) $(MANCONF) -Dnlmconv < $< > $@.pod
-       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
-               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
-       rm -f $@.pod
-
-$(srcdir)/nm.1:        $(srcdir)/binutils.texi
-       touch $@
-       -$(TEXI2POD) $(MANCONF) -Dnm < $< > $@.pod
-       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
-               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
-       rm -f $@.pod
-
-$(srcdir)/objcopy.1:   $(srcdir)/binutils.texi
-       touch $@
-       -$(TEXI2POD) $(MANCONF) -Dobjcopy < $< > $@.pod
-       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
-               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
-       rm -f $@.pod
-
-$(srcdir)/objdump.1:   $(srcdir)/binutils.texi
-       touch $@
-       -$(TEXI2POD) $(MANCONF) -Dobjdump < $< > $@.pod
-       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
-               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
-       rm -f $@.pod
-
-$(srcdir)/ranlib.1:    $(srcdir)/binutils.texi
-       touch $@
-       -$(TEXI2POD) $(MANCONF) -Dranlib < $< > $@.pod
-       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
-               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
-       rm -f $@.pod
-
-$(srcdir)/readelf.1:   $(srcdir)/binutils.texi
-       touch $@
-       -$(TEXI2POD) $(MANCONF) -Dreadelf < $< > $@.pod
-       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
-               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
-       rm -f $@.pod
-
-$(srcdir)/size.1:      $(srcdir)/binutils.texi
-       touch $@
-       -$(TEXI2POD) $(MANCONF) -Dsize < $< > $@.pod
-       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
-               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
-       rm -f $@.pod
-
-$(srcdir)/strings.1:   $(srcdir)/binutils.texi
-       touch $@
-       -$(TEXI2POD) $(MANCONF) -Dstrings < $< > $@.pod
-       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
-               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
-       rm -f $@.pod
-
-$(srcdir)/strip.1:     $(srcdir)/binutils.texi
-       touch $@
-       -$(TEXI2POD) $(MANCONF) -Dstrip < $< > $@.pod
-       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
-               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
-       rm -f $@.pod
-
-$(srcdir)/windres.1:   $(srcdir)/binutils.texi
-       touch $@
-       -$(TEXI2POD) $(MANCONF) -Dwindres < $< > $@.pod
-       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
-               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
-       rm -f $@.pod
-
-$(srcdir)/cxxfilt.man: $(srcdir)/binutils.texi
-       touch $@
-       -$(TEXI2POD) $(MANCONF) -Dcxxfilt < $< > $@.pod
-       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
-               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
-       rm -f $@.pod
-
-$(DEMANGLER_NAME).1: cxxfilt.man Makefile
-       sed -e 's/@PROGRAM@/$(DEMANGLER_NAME)/' < $(srcdir)/cxxfilt.man \
-               > $(DEMANGLER_NAME).1
 mostlyclean-local:
        -rm -rf tmpdir
 
 mostlyclean-local:
        -rm -rf tmpdir
 
diff --git a/binutils/addr2line.1 b/binutils/addr2line.1
deleted file mode 100644 (file)
index 4ab0d94..0000000
+++ /dev/null
@@ -1,229 +0,0 @@
-.\" Automatically generated by Pod::Man version 1.02
-.\" Wed May 30 12:24:26 2001
-.\"
-.\" 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 Ip \" List item
-.br
-.ie \\n(.$>=3 .ne \\$3
-.el .ne 3
-.IP "\\$1" \\$2
-..
-.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.
-.bd B 3
-.    \" 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 1"
-.TH ADDR2LINE.1 1 "binutils-2.11.90" "2001-05-30" "GNU"
-.UC
-.SH "NAME"
-addr2line \- convert addresses into file names and line numbers.
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-addr2line [ \-b \fIbfdname\fR | \-\-target=\fIbfdname\fR ]
-          [ \-C | \-\-demangle[=\fIstyle\fR ]
-          [ \-e \fIfilename\fR | \-\-exe=\fIfilename\fR ]
-          [ \-f | \-\-functions ] [ \-s | \-\-basename ]
-          [ \-H | \-\-help ] [ \-V | \-\-version ]
-          [ addr addr ... ]
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-\&\f(CW\*(C`addr2line\*(C'\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 \f(CW\*(C`\-e\*(C'\fR option.  The
-default is the file \fIa.out\fR.
-.PP
-\&\f(CW\*(C`addr2line\*(C'\fR has two modes of operation.
-.PP
-In the first, hexadecimal addresses are specified on the command line,
-and \f(CW\*(C`addr2line\*(C'\fR displays the file name and line number for each
-address.
-.PP
-In the second, \f(CW\*(C`addr2line\*(C'\fR reads hexadecimal addresses from
-standard input, and prints the file name and line number for each
-address on standard output.  In this mode, \f(CW\*(C`addr2line\*(C'\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
-\&\f(CW\*(C`\-f\*(C'\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,
-\&\f(CW\*(C`addr2line\*(C'\fR will print two question marks in their place.  If the
-line number can not be determined, \f(CW\*(C`addr2line\*(C'\fR will print 0.
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-The long and short forms of options, shown here as alternatives, are
-equivalent.
-.Ip "\f(CW\*(C`\-b \f(CIbfdname\f(CW\*(C'\fR" 4
-.IX Item "-b bfdname"
-.Ip "\f(CW\*(C`\-\-target=\f(CIbfdname\f(CW\*(C'\fR" 4
-.IX Item "--target=bfdname"
-Specify that the object-code format for the object files is
-\&\fIbfdname\fR.
-.Ip "\f(CW\*(C`\-C\*(C'\fR" 4
-.IX Item "-C"
-.Ip "\f(CW\*(C`\-\-demangle[=\f(CIstyle\f(CW]\*(C'\fR" 4
-.IX Item "--demangle[=style]"
-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 "\f(CW\*(C`\-e \f(CIfilename\f(CW\*(C'\fR" 4
-.IX Item "-e filename"
-.Ip "\f(CW\*(C`\-\-exe=\f(CIfilename\f(CW\*(C'\fR" 4
-.IX Item "--exe=filename"
-Specify the name of the executable for which addresses should be
-translated.  The default file is \fIa.out\fR.
-.Ip "\f(CW\*(C`\-f\*(C'\fR" 4
-.IX Item "-f"
-.Ip "\f(CW\*(C`\-\-functions\*(C'\fR" 4
-.IX Item "--functions"
-Display function names as well as file and line number information.
-.Ip "\f(CW\*(C`\-s\*(C'\fR" 4
-.IX Item "-s"
-.Ip "\f(CW\*(C`\-\-basenames\*(C'\fR" 4
-.IX Item "--basenames"
-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, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001 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 \*(L"\s-1GNU\s0 Free Documentation License\*(R".
diff --git a/binutils/ar.1 b/binutils/ar.1
deleted file mode 100644 (file)
index a1cf6e6..0000000
+++ /dev/null
@@ -1,386 +0,0 @@
-.\" Automatically generated by Pod::Man version 1.02
-.\" Wed May 30 12:24:26 2001
-.\"
-.\" 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 Ip \" List item
-.br
-.ie \\n(.$>=3 .ne \\$3
-.el .ne 3
-.IP "\\$1" \\$2
-..
-.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.
-.bd B 3
-.    \" 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 1"
-.TH AR.1 1 "binutils-2.11.90" "2001-05-30" "GNU"
-.UC
-.SH "NAME"
-ar \- create, modify, and extract from archives
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-ar [\-X32_64] [\-]\fIp\fR[\fImod\fR [\fIrelpos\fR] [\fIcount\fR]] \fIarchive\fR [\fImember\fR...]
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-The \s-1GNU\s0 \f(CW\*(C`ar\*(C'\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 \f(CW\*(C`ar\*(C'\fR can maintain archives whose members have names of any
-length; however, depending on how \f(CW\*(C`ar\*(C'\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
-\&\f(CW\*(C`ar\*(C'\fR is considered a binary utility because archives of this sort
-are most often used as \fIlibraries\fR holding commonly needed
-subroutines.
-.PP
-\&\f(CW\*(C`ar\*(C'\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 \f(CW\*(C`ar\*(C'\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 \f(CW\*(C`ar\*(C'\fR called
-\&\f(CW\*(C`ranlib\*(C'\fR can be used to add just the table.
-.PP
-\&\s-1GNU\s0 \f(CW\*(C`ar\*(C'\fR is designed to be compatible with two different
-facilities.  You can control its activity using command-line options,
-like the different varieties of \f(CW\*(C`ar\*(C'\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 \f(CW\*(C`ar\*(C'\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 "\f(CW\*(C`d\*(C'\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, \f(CW\*(C`ar\*(C'\fR lists each module
-as it is deleted.
-.Ip "\f(CW\*(C`m\*(C'\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 "\f(CW\*(C`p\*(C'\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 "\f(CW\*(C`q\*(C'\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 \f(CW\*(C`ar\*(C'\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
-\&\f(CW\*(C`ranlib\*(C'\fR explicitly to update the symbol table index.
-.Sp
-However, too many different systems assume quick append rebuilds the
-index, so \s-1GNU\s0 ar implements \f(CW\*(C`q\*(C'\fR as a synonym for \f(CW\*(C`r\*(C'\fR.
-.Ip "\f(CW\*(C`r\*(C'\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, \f(CW\*(C`ar\*(C'\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 "\f(CW\*(C`t\*(C'\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 "\f(CW\*(C`x\*(C'\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
-\&\f(CW\*(C`ar\*(C'\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 "\f(CW\*(C`a\*(C'\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 "\f(CW\*(C`b\*(C'\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 "\f(CW\*(C`c\*(C'\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 "\f(CW\*(C`f\*(C'\fR" 4
-.IX Item "f"
-Truncate names in the archive.  \s-1GNU\s0 \f(CW\*(C`ar\*(C'\fR will normally permit file
-names of any length.  This will cause it to create archives which are
-not compatible with the native \f(CW\*(C`ar\*(C'\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 "\f(CW\*(C`i\*(C'\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 "\f(CW\*(C`l\*(C'\fR" 4
-.IX Item "l"
-This modifier is accepted but not used.
-.Ip "\f(CW\*(C`N\*(C'\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 "\f(CW\*(C`o\*(C'\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 "\f(CW\*(C`P\*(C'\fR" 4
-.IX Item "P"
-Use the full path name when matching names in the archive.  \s-1GNU\s0
-\&\f(CW\*(C`ar\*(C'\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 \f(CW\*(C`ar\*(C'\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 "\f(CW\*(C`s\*(C'\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 "\f(CW\*(C`S\*(C'\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 "\f(CW\*(C`u\*(C'\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 "\f(CW\*(C`v\*(C'\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 "\f(CW\*(C`V\*(C'\fR" 4
-.IX Item "V"
-This modifier shows the version number of \f(CW\*(C`ar\*(C'\fR.
-.PP
-\&\f(CW\*(C`ar\*(C'\fR ignores an initial option spelt \f(CW\*(C`\-X32_64\*(C'\fR, for
-compatibility with \s-1AIX\s0.  The behaviour produced by this option is the
-default for \s-1GNU\s0 \f(CW\*(C`ar\*(C'\fR.  \f(CW\*(C`ar\*(C'\fR does not support any of the other
-\&\f(CW\*(C`\-X\*(C'\fR options; in particular, it does not support \f(CW\*(C`\-X32\*(C'\fR
-which is the default for \s-1AIX\s0 \f(CW\*(C`ar\*(C'\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, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001 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 \*(L"\s-1GNU\s0 Free Documentation License\*(R".
diff --git a/binutils/binutils.texi b/binutils/binutils.texi
deleted file mode 100644 (file)
index 0011b11..0000000
+++ /dev/null
@@ -1,3749 +0,0 @@
-\input texinfo       @c                    -*- Texinfo -*-
-@setfilename binutils.info
-@c Copyright 2001 Free Software Foundation, Inc.
-
-@include config.texi
-
-@ifinfo
-@format
-START-INFO-DIR-ENTRY
-* Binutils: (binutils).         The GNU binary utilities.
-* ar: (binutils)ar.               Create, modify, and extract from archives
-* nm: (binutils)nm.               List symbols from object files
-* objcopy: (binutils)objcopy.    Copy and translate object files
-* objdump: (binutils)objdump.     Display information from object files
-* ranlib: (binutils)ranlib.       Generate index to archive contents
-* readelf: (binutils)readelf.    Display the contents of ELF format files.
-* size: (binutils)size.           List section sizes and total size
-* strings: (binutils)strings.     List printable strings from files
-* strip: (binutils)strip.         Discard symbols
-* c++filt: (binutils)c++filt.    Filter to demangle encoded C++ symbols
-* cxxfilt: (binutils)c++filt.     MS-DOS name for c++filt
-* addr2line: (binutils)addr2line. Convert addresses to file and line
-* nlmconv: (binutils)nlmconv.     Converts object code into an NLM
-* windres: (binutils)windres.    Manipulate Windows resources
-* dlltool: (binutils)dlltool.    Create files needed to build and use DLLs
-END-INFO-DIR-ENTRY
-@end format
-@end ifinfo
-
-@ifinfo
-@c man begin COPYRIGHT
-Copyright @copyright{} 1991, 92, 93, 94, 95, 96, 97, 98, 99, 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".
-
-@c man end
-@ignore
-Permission is granted to process this file through TeX and print the
-results, provided the printed document carries a copying permission
-notice identical to this one except for the removal of this paragraph
-(this paragraph not being relevant to the printed manual).
-
-@end ignore
-@end ifinfo
-
-@synindex ky cp
-@c
-@c This file documents the GNU binary utilities "ar", "ld", "objcopy",
-@c  "objdump", "nm", "size", "strings", "strip", "readelf" and "ranlib".
-@c
-@c Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001 Free Software Foundation, Inc.
-@c 
-@c This text may be freely distributed under the terms of the GNU
-@c Free Documentation License.
-@c
-
-@setchapternewpage odd
-@settitle @sc{gnu} Binary Utilities
-@titlepage
-@finalout
-@title The @sc{gnu} Binary Utilities
-@subtitle Version @value{VERSION}
-@sp 1
-@subtitle May 1993
-@author Roland H. Pesch
-@author Jeffrey M. Osier
-@author Cygnus Support
-@page
-
-@tex
-{\parskip=0pt \hfill Cygnus Support\par \hfill
-\TeX{}info \texinfoversion\par }
-@end tex
-
-@vskip 0pt plus 1filll
-Copyright @copyright{} 1991, 92, 93, 94, 95, 96, 97, 1998, 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".
-
-@end titlepage
-
-@node Top
-@top Introduction
-
-@cindex version
-This brief manual contains preliminary documentation for the @sc{gnu} binary
-utilities (collectively version @value{VERSION}): 
-
-@iftex
-@table @code
-@item ar
-Create, modify, and extract from archives
-
-@item nm
-List symbols from object files
-
-@item objcopy
-Copy and translate object files
-
-@item objdump
-Display information from object files
-
-@item ranlib
-Generate index to archive contents
-
-@item readelf
-Display the contents of ELF format files.
-
-@item size
-List file section sizes and total size
-
-@item strings
-List printable strings from files
-
-@item strip
-Discard symbols
-
-@item c++filt
-Demangle encoded C++ symbols (on MS-DOS, this program is named
-@code{cxxfilt})
-
-@item addr2line
-Convert addresses into file names and line numbers
-
-@item nlmconv
-Convert object code into a Netware Loadable Module
-
-@item windres
-Manipulate Windows resources
-
-@item dlltool
-Create the files needed to build and use Dynamic Link Libraries
-@end table
-@end iftex
-
-This document is distributed under the terms of the GNU Free
-Documentation License.  A copy of the license is included in the
-section entitled "GNU Free Documentation License".
-
-@menu
-* ar::                          Create, modify, and extract from archives
-* nm::                          List symbols from object files
-* objcopy::                    Copy and translate object files
-* objdump::                     Display information from object files
-* ranlib::                      Generate index to archive contents
-* readelf::                    Display the contents of ELF format files.
-* size::                        List section sizes and total size
-* strings::                     List printable strings from files
-* strip::                       Discard symbols
-* c++filt::                    Filter to demangle encoded C++ symbols
-* cxxfilt: c++filt.             MS-DOS name for c++filt
-* addr2line::                  Convert addresses to file and line
-* nlmconv::                     Converts object code into an NLM
-* windres::                    Manipulate Windows resources
-* dlltool::                    Create files needed to build and use DLLs
-* Selecting The Target System:: How these utilities determine the target.
-* Reporting Bugs::              Reporting Bugs
-* GNU Free Documentation License::  GNU Free Documentation License
-* Index::                       Index
-@end menu
-
-@node ar
-@chapter ar
-
-@kindex ar
-@cindex archives
-@cindex collections of files
-
-@c man title ar create, modify, and extract from archives
-
-@smallexample
-ar [-]@var{p}[@var{mod} [@var{relpos}] [@var{count}]] @var{archive} [@var{member}@dots{}]
-ar -M [ <mri-script ]
-@end smallexample
-
-@c man begin DESCRIPTION ar
-
-The @sc{gnu} @code{ar} program creates, modifies, and extracts from
-archives.  An @dfn{archive} is a single file holding a collection of
-other files in a structure that makes it possible to retrieve
-the original individual files (called @dfn{members} of the archive).
-
-The original files' contents, mode (permissions), timestamp, owner, and
-group are preserved in the archive, and can be restored on
-extraction.  
-
-@cindex name length
-@sc{gnu} @code{ar} can maintain archives whose members have names of any
-length; however, depending on how @code{ar} 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).
-
-@cindex libraries
-@code{ar} is considered a binary utility because archives of this sort
-are most often used as @dfn{libraries} holding commonly needed
-subroutines.
-
-@cindex symbol index
-@code{ar} creates an index to the symbols defined in relocatable
-object modules in the archive when you specify the modifier @samp{s}.
-Once created, this index is updated in the archive whenever @code{ar}
-makes a change to its contents (save for the @samp{q} 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.
-
-You may use @samp{nm -s} or @samp{nm --print-armap} to list this index
-table.  If an archive lacks the table, another form of @code{ar} called
-@code{ranlib} can be used to add just the table.
-
-@cindex compatibility, @code{ar}
-@cindex @code{ar} compatibility
-@sc{gnu} @code{ar} is designed to be compatible with two different
-facilities.  You can control its activity using command-line options,
-like the different varieties of @code{ar} on Unix systems; or, if you
-specify the single command-line option @samp{-M}, you can control it
-with a script supplied via standard input, like the MRI ``librarian''
-program.
-
-@c man end
-
-@menu
-* ar cmdline::                  Controlling @code{ar} on the command line
-* ar scripts::                  Controlling @code{ar} with a script
-@end menu
-
-@page
-@node ar cmdline
-@section Controlling @code{ar} on the command line
-
-@smallexample
-@c man begin SYNOPSIS ar
-ar [-X32_64] [-]@var{p}[@var{mod} [@var{relpos}] [@var{count}]] @var{archive} [@var{member}@dots{}]
-@c man end
-@end smallexample
-
-@cindex Unix compatibility, @code{ar}
-When you use @code{ar} in the Unix style, @code{ar} insists on at least two
-arguments to execute: one keyletter specifying the @emph{operation}
-(optionally accompanied by other keyletters specifying
-@emph{modifiers}), and the archive name to act on.
-
-Most operations can also accept further @var{member} arguments,
-specifying particular files to operate on.
-
-@c man begin OPTIONS ar
-
-@sc{gnu} @code{ar} allows you to mix the operation code @var{p} and modifier
-flags @var{mod} in any order, within the first command-line argument.
-
-If you wish, you may begin the first command-line argument with a
-dash.
-
-@cindex operations on archive
-The @var{p} keyletter specifies what operation to execute; it may be
-any of the following, but you must specify only one of them:
-
-@table @code
-@item d
-@cindex deleting from archive
-@emph{Delete} modules from the archive.  Specify the names of modules to
-be deleted as @var{member}@dots{}; the archive is untouched if you
-specify no files to delete.
-
-If you specify the @samp{v} modifier, @code{ar} lists each module
-as it is deleted.
-
-@item m
-@cindex moving in archive
-Use this operation to @emph{move} members in an archive.
-
-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.  
-
-If no modifiers are used with @code{m}, any members you name in the
-@var{member} arguments are moved to the @emph{end} of the archive;
-you can use the @samp{a}, @samp{b}, or @samp{i} modifiers to move them to a
-specified place instead.
-
-@item p
-@cindex printing from archive
-@emph{Print} the specified members of the archive, to the standard
-output file.  If the @samp{v} modifier is specified, show the member
-name before copying its contents to standard output.
-
-If you specify no @var{member} arguments, all the files in the archive are
-printed.
-
-@item q
-@cindex quick append to archive
-@emph{Quick append}; Historically, add the files @var{member}@dots{} to the end of
-@var{archive}, without checking for replacement.
-
-The modifiers @samp{a}, @samp{b}, and @samp{i} do @emph{not} affect this
-operation; new members are always placed at the end of the archive.
-
-The modifier @samp{v} makes @code{ar} list each file as it is appended.
-
-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 @samp{ar s} or
-@code{ranlib} explicitly to update the symbol table index.
-
-However, too many different systems assume quick append rebuilds the
-index, so GNU ar implements @code{q} as a synonym for @code{r}.
-
-@item r
-@cindex replacement in archive
-Insert the files @var{member}@dots{} into @var{archive} (with
-@emph{replacement}). This operation differs from @samp{q} in that any
-previously existing members are deleted if their names match those being
-added.
-
-If one of the files named in @var{member}@dots{} does not exist, @code{ar}
-displays an error message, and leaves undisturbed any existing members
-of the archive matching that name.
-
-By default, new members are added at the end of the file; but you may
-use one of the modifiers @samp{a}, @samp{b}, or @samp{i} to request
-placement relative to some existing member.
-
-The modifier @samp{v} used with this operation elicits a line of
-output for each file inserted, along with one of the letters @samp{a} or
-@samp{r} to indicate whether the file was appended (no old member
-deleted) or replaced.
-
-@item t
-@cindex contents of archive
-Display a @emph{table} listing the contents of @var{archive}, or those
-of the files listed in @var{member}@dots{} 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 @samp{v} modifier.
-
-If you do not specify a @var{member}, all files in the archive
-are listed.
-
-@cindex repeated names in archive
-@cindex name duplication in archive
-If there is more than one file with the same name (say, @samp{fie}) in
-an archive (say @samp{b.a}), @samp{ar t b.a fie} lists only the
-first instance; to see them all, you must ask for a complete
-listing---in our example, @samp{ar t b.a}.
-@c WRS only; per Gumby, this is implementation-dependent, and in a more
-@c recent case in fact works the other way.
-
-@item x
-@cindex extract from archive
-@emph{Extract} members (named @var{member}) from the archive.  You can
-use the @samp{v} modifier with this operation, to request that
-@code{ar} list each name as it extracts it.
-
-If you do not specify a @var{member}, all files in the archive
-are extracted.
-
-@end table
-
-A number of modifiers (@var{mod}) may immediately follow the @var{p}
-keyletter, to specify variations on an operation's behavior:
-
-@table @code
-@item a
-@cindex relative placement in archive
-Add new files @emph{after} an existing member of the
-archive.  If you use the modifier @samp{a}, the name of an existing archive
-member must be present as the @var{relpos} argument, before the
-@var{archive} specification.
-
-@item b
-Add new files @emph{before} an existing member of the
-archive.  If you use the modifier @samp{b}, the name of an existing archive
-member must be present as the @var{relpos} argument, before the
-@var{archive} specification.  (same as @samp{i}).
-
-@item c
-@cindex creating archives
-@emph{Create} the archive.  The specified @var{archive} 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.
-
-@item f
-Truncate names in the archive.  @sc{gnu} @code{ar} will normally permit file
-names of any length.  This will cause it to create archives which are
-not compatible with the native @code{ar} program on some systems.  If
-this is a concern, the @samp{f} modifier may be used to truncate file
-names when putting them in the archive.
-
-@item i
-Insert new files @emph{before} an existing member of the
-archive.  If you use the modifier @samp{i}, the name of an existing archive
-member must be present as the @var{relpos} argument, before the
-@var{archive} specification.  (same as @samp{b}).
-
-@item l
-This modifier is accepted but not used.
-@c whaffor ar l modifier??? presumably compat; with
-@c what???---doc@@cygnus.com, 25jan91 
-
-@item N
-Uses the @var{count} parameter.  This is used if there are multiple
-entries in the archive with the same name.  Extract or delete instance
-@var{count} of the given name from the archive.
-
-@item o
-@cindex dates in archive
-Preserve the @emph{original} 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.
-
-@item P
-Use the full path name when matching names in the archive.  @sc{gnu}
-@code{ar} can not create an archive with a full path name (such archives
-are not POSIX complaint), but other archive creators can.  This option
-will cause @sc{gnu} @code{ar} 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.
-
-@item s
-@cindex writing archive index
-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 @samp{ar s} on an
-archive is equivalent to running @samp{ranlib} on it.
-
-@item S
-@cindex not writing archive index
-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
-@samp{S} modifier on the last execution of @samp{ar}, or you must run
-@samp{ranlib} on the archive.
-
-@item u
-@cindex updating an archive
-Normally, @samp{ar r}@dots{} inserts all files
-listed into the archive.  If you would like to insert @emph{only} those
-of the files you list that are newer than existing members of the same
-names, use this modifier.  The @samp{u} modifier is allowed only for the
-operation @samp{r} (replace).  In particular, the combination @samp{qu} is
-not allowed, since checking the timestamps would lose any speed
-advantage from the operation @samp{q}.
-
-@item v
-This modifier requests the @emph{verbose} version of an operation.  Many
-operations display additional information, such as filenames processed,
-when the modifier @samp{v} is appended.
-
-@item V
-This modifier shows the version number of @code{ar}.
-@end table
-
-@code{ar} ignores an initial option spelt @code{-X32_64}, for
-compatibility with AIX.  The behaviour produced by this option is the
-default for GNU @code{ar}.  @code{ar} does not support any of the other
-@code{-X} options; in particular, it does not support @code{-X32}
-which is the default for AIX @code{ar}.
-
-@c man end
-
-@ignore
-@c man begin SEEALSO ar
-nm(1), ranlib(1), and the Info entries for @file{binutils}.
-@c man end
-@end ignore
-
-@node ar scripts
-@section Controlling @code{ar} with a script
-
-@smallexample
-ar -M [ <@var{script} ]
-@end smallexample
-
-@cindex MRI compatibility, @code{ar}
-@cindex scripts, @code{ar}
-If you use the single command-line option @samp{-M} with @code{ar}, you
-can control its operation with a rudimentary command language.  This
-form of @code{ar} operates interactively if standard input is coming
-directly from a terminal.  During interactive use, @code{ar} prompts for
-input (the prompt is @samp{AR >}), and continues executing even after
-errors.  If you redirect standard input to a script file, no prompts are
-issued, and @code{ar} abandons execution (with a nonzero exit code)
-on any error.
-
-The @code{ar} command language is @emph{not} designed to be equivalent
-to the command-line options; in fact, it provides somewhat less control
-over archives.  The only purpose of the command language is to ease the
-transition to @sc{gnu} @code{ar} for developers who already have scripts
-written for the MRI ``librarian'' program.
-
-The syntax for the @code{ar} command language is straightforward:
-@itemize @bullet
-@item
-commands are recognized in upper or lower case; for example, @code{LIST}
-is the same as @code{list}.  In the following descriptions, commands are
-shown in upper case for clarity.
-
-@item
-a single command may appear on each line; it is the first word on the
-line.
-
-@item
-empty lines are allowed, and have no effect.
-
-@item
-comments are allowed; text after either of the characters @samp{*}
-or @samp{;} is ignored.
-
-@item
-Whenever you use a list of names as part of the argument to an @code{ar}
-command, you can separate the individual names with either commas or
-blanks.  Commas are shown in the explanations below, for clarity.
-
-@item
-@samp{+} is used as a line continuation character; if @samp{+} appears
-at the end of a line, the text on the following line is considered part
-of the current command.
-@end itemize
-
-Here are the commands you can use in @code{ar} scripts, or when using
-@code{ar} interactively.  Three of them have special significance:
-
-@code{OPEN} or @code{CREATE} specify a @dfn{current archive}, which is
-a temporary file required for most of the other commands.
-
-@code{SAVE} commits the changes so far specified by the script.  Prior
-to @code{SAVE}, commands affect only the temporary copy of the current
-archive.
-
-@table @code
-@item ADDLIB @var{archive} 
-@itemx ADDLIB @var{archive} (@var{module}, @var{module}, @dots{} @var{module})
-Add all the contents of @var{archive} (or, if specified, each named
-@var{module} from @var{archive}) to the current archive.
-
-Requires prior use of @code{OPEN} or @code{CREATE}.
-
-@item ADDMOD @var{member}, @var{member}, @dots{} @var{member}
-@c FIXME! w/Replacement??  If so, like "ar r @var{archive} @var{names}"
-@c        else like "ar q..."
-Add each named @var{member} as a module in the current archive.
-
-Requires prior use of @code{OPEN} or @code{CREATE}.
-
-@item CLEAR
-Discard the contents of the current archive, canceling the effect of
-any operations since the last @code{SAVE}.  May be executed (with no
-effect) even if  no current archive is specified.
-
-@item CREATE @var{archive}
-Creates an archive, and makes it the current archive (required for many
-other commands).  The new archive is created with a temporary name; it
-is not actually saved as @var{archive} until you use @code{SAVE}.
-You can overwrite existing archives; similarly, the contents of any
-existing file named @var{archive} will not be destroyed until @code{SAVE}.
-
-@item DELETE @var{module}, @var{module}, @dots{} @var{module}
-Delete each listed @var{module} from the current archive; equivalent to
-@samp{ar -d @var{archive} @var{module} @dots{} @var{module}}.
-
-Requires prior use of @code{OPEN} or @code{CREATE}.
-
-@item DIRECTORY @var{archive} (@var{module}, @dots{} @var{module})
-@itemx DIRECTORY @var{archive} (@var{module}, @dots{} @var{module}) @var{outputfile}
-List each named @var{module} present in @var{archive}.  The separate
-command @code{VERBOSE} specifies the form of the output: when verbose
-output is off, output is like that of @samp{ar -t @var{archive}
-@var{module}@dots{}}.  When verbose output is on, the listing is like
-@samp{ar -tv @var{archive} @var{module}@dots{}}.
-
-Output normally goes to the standard output stream; however, if you
-specify @var{outputfile} as a final argument, @code{ar} directs the
-output to that file.
-
-@item END
-Exit from @code{ar}, with a @code{0} exit code to indicate successful
-completion.  This command does not save the output file; if you have
-changed the current archive since the last @code{SAVE} command, those
-changes are lost.
-
-@item EXTRACT @var{module}, @var{module}, @dots{} @var{module}
-Extract each named @var{module} from the current archive, writing them
-into the current directory as separate files.  Equivalent to @samp{ar -x
-@var{archive} @var{module}@dots{}}.
-
-Requires prior use of @code{OPEN} or @code{CREATE}.
-
-@ignore
-@c FIXME Tokens but no commands???
-@item FULLDIR
-
-@item HELP
-@end ignore
-
-@item LIST
-Display full contents of the current archive, in ``verbose'' style
-regardless of the state of @code{VERBOSE}.  The effect is like @samp{ar
-tv @var{archive}}.  (This single command is a @sc{gnu} @code{ar}
-enhancement, rather than present for MRI compatibility.)
-
-Requires prior use of @code{OPEN} or @code{CREATE}.
-
-@item OPEN @var{archive}
-Opens an existing archive for use as the current archive (required for
-many other commands).  Any changes as the result of subsequent commands
-will not actually affect @var{archive} until you next use @code{SAVE}.
-
-@item REPLACE @var{module}, @var{module}, @dots{} @var{module}
-In the current archive, replace each existing @var{module} (named in
-the @code{REPLACE} arguments) from files in the current working directory.
-To execute this command without errors, both the file, and the module in
-the current archive, must exist. 
-
-Requires prior use of @code{OPEN} or @code{CREATE}.
-
-@item VERBOSE
-Toggle an internal flag governing the output from @code{DIRECTORY}.
-When the flag is on, @code{DIRECTORY} output matches output from
-@samp{ar -tv }@dots{}.
-
-@item SAVE
-Commit your changes to the current archive, and actually save it as a
-file with the name specified in the last @code{CREATE} or @code{OPEN}
-command. 
-
-Requires prior use of @code{OPEN} or @code{CREATE}.
-
-@end table
-
-@iftex
-@node ld
-@chapter ld
-@cindex linker
-@kindex ld
-The @sc{gnu} linker @code{ld} is now described in a separate manual.
-@xref{Top,, Overview,, Using LD: the @sc{gnu} linker}.
-@end iftex
-
-@node nm
-@chapter nm
-@cindex symbols
-@kindex nm
-
-@c man title nm list symbols from object files
-
-@smallexample
-@c man begin SYNOPSIS nm
-nm [ -a | --debug-syms ]  [ -g | --extern-only ]
-   [ -B ]  [ -C | --demangle[=@var{style}] ] [ -D | --dynamic ]
-   [ -s | --print-armap ]  [ -A | -o | --print-file-name ]
-   [ -n | -v | --numeric-sort ]  [ -p | --no-sort ]
-   [ -r | --reverse-sort ]  [ --size-sort ] [ -u | --undefined-only ]
-   [ -t @var{radix} | --radix=@var{radix} ] [ -P | --portability ]
-   [ --target=@var{bfdname} ] [ -f @var{format} | --format=@var{format} ]
-   [ --defined-only ] [-l | --line-numbers ]  [ --no-demangle ]
-   [ -V | --version ]  [ -X 32_64 ]  [ --help ]  [ @var{objfile}@dots{} ]
-@c man end
-@end smallexample
-
-@c man begin DESCRIPTION nm
-@sc{gnu} @code{nm} lists the symbols from object files @var{objfile}@dots{}.
-If no object files are listed as arguments, @code{nm} assumes the file
-@file{a.out}.
-
-For each symbol, @code{nm} shows:
-
-@itemize @bullet
-@item
-The symbol value, in the radix selected by options (see below), or
-hexadecimal by default.
-
-@item
-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).
-
-@c Some more detail on exactly what these symbol types are used for
-@c would be nice.
-@table @code
-@item A
-The symbol's value is absolute, and will not be changed by further
-linking.
-
-@item B
-The symbol is in the uninitialized data section (known as BSS).
-
-@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.
-@ifclear man
-For more details on common symbols, see the discussion of
---warn-common in @ref{Options,,Linker options,ld.info,The GNU linker}.
-@end ifclear
-
-@item D
-The symbol is in the initialized data section.
-
-@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.
-
-@item I
-The symbol is an indirect reference to another symbol.  This is a GNU
-extension to the a.out object file format which is rarely used.
-
-@item N
-The symbol is a debugging symbol.
-
-@item R
-The symbol is in a read only data section.
-
-@item S
-The symbol is in an uninitialized data section for small objects.
-
-@item T
-The symbol is in the text (code) section.
-
-@item U
-The symbol is undefined.
-
-@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.
-
-@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 weak symbol becomes zero with no error.
-
-@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;
-for more information, see @ref{Top,Stabs,Stabs Overview,stabs.info, The
-``stabs'' debug format}.
-
-@item ?
-The symbol type is unknown, or object file format specific.
-@end table
-
-@item
-The symbol name.
-@end itemize
-
-@c man end
-
-@c man begin OPTIONS nm
-The long and short forms of options, shown here as alternatives, are
-equivalent.
-
-@table @code
-@item -A
-@itemx -o
-@itemx --print-file-name 
-@cindex input file name
-@cindex file name
-@cindex source file name
-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.
-
-@item -a
-@itemx --debug-syms 
-@cindex debugging symbols
-Display all symbols, even debugger-only symbols; normally these are not
-listed.
-
-@item -B
-@cindex @code{nm} format
-@cindex @code{nm} compatibility
-The same as @samp{--format=bsd} (for compatibility with the MIPS @code{nm}).
-
-@item -C
-@itemx --demangle[=@var{style}]
-@cindex demangling in nm
-Decode (@dfn{demangle}) 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. @xref{c++filt}, 
-for more information on demangling.
-
-@item --no-demangle
-Do not demangle low-level symbol names.  This is the default.
-
-@item -D
-@itemx --dynamic
-@cindex dynamic symbols
-Display the dynamic symbols rather than the normal symbols.  This is
-only meaningful for dynamic objects, such as certain types of shared
-libraries.
-
-@item -f @var{format}
-@itemx --format=@var{format}
-@cindex @code{nm} format
-@cindex @code{nm} compatibility
-Use the output format @var{format}, which can be @code{bsd},
-@code{sysv}, or @code{posix}.  The default is @code{bsd}.
-Only the first character of @var{format} is significant; it can be
-either upper or lower case.
-
-@item -g
-@itemx --extern-only 
-@cindex external symbols
-Display only external symbols.
-
-@item -l
-@itemx --line-numbers
-@cindex symbol line numbers
-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.
-
-@item -n
-@itemx -v
-@itemx --numeric-sort 
-Sort symbols numerically by their addresses, rather than alphabetically
-by their names. 
-
-@item -p
-@itemx --no-sort 
-@cindex sorting symbols
-Do not bother to sort the symbols in any order; print them in the order
-encountered.
-
-@item -P
-@itemx --portability
-Use the POSIX.2 standard output format instead of the default format.
-Equivalent to @samp{-f posix}.
-
-@item -s
-@itemx --print-armap
-@cindex symbol index, listing
-When listing symbols from archive members, include the index: a mapping
-(stored in the archive by @code{ar} or @code{ranlib}) of which modules
-contain definitions for which names.
-
-@item -r
-@itemx --reverse-sort 
-Reverse the order of the sort (whether numeric or alphabetic); let the
-last come first.
-
-@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.  The size of the symbol is printed, rather than the value.
-
-@item -t @var{radix}
-@itemx --radix=@var{radix}
-Use @var{radix} as the radix for printing the symbol values.  It must be
-@samp{d} for decimal, @samp{o} for octal, or @samp{x} for hexadecimal.
-
-@item --target=@var{bfdname}
-@cindex object code format
-Specify an object code format other than your system's default format.
-@xref{Target Selection}, for more information.
-
-@item -u
-@itemx --undefined-only 
-@cindex external symbols
-@cindex undefined symbols
-Display only undefined symbols (those external to each object file).
-
-@item --defined-only
-@cindex external symbols
-@cindex undefined symbols
-Display only defined symbols for each object file.
-
-@item -V
-@itemx --version
-Show the version number of @code{nm} and exit.
-
-@item -X
-This option is ignored for compatibility with the AIX version of
-@code{nm}.  It takes one parameter which must be the string
-@code{32_64}.  The default mode of AIX @code{nm} corresponds
-to @code{-X 32}, which is not supported by @sc{gnu} @code{nm}.
-
-@item --help
-Show a summary of the options to @code{nm} and exit.
-@end table
-
-@c man end
-
-@ignore
-@c man begin SEEALSO nm
-ar(1), objdump(1), ranlib(1), and the Info entries for @file{binutils}.
-@c man end
-@end ignore
-
-@node objcopy
-@chapter objcopy
-
-@c man title objcopy copy and translate object files
-
-@smallexample
-@c man begin SYNOPSIS objcopy
-objcopy [ -F @var{bfdname} | --target=@var{bfdname} ]
-        [ -I @var{bfdname} | --input-target=@var{bfdname} ]
-        [ -O @var{bfdname} | --output-target=@var{bfdname} ]
-        [ -B @var{bfdarch} | --binary-architecture=@var{bfdarch} ]
-        [ -S | --strip-all ]  [ -g | --strip-debug ]
-        [ -K @var{symbolname} | --keep-symbol=@var{symbolname} ]
-        [ -N @var{symbolname} | --strip-symbol=@var{symbolname} ]
-        [ -G @var{symbolname} | --keep-global-symbol=@var{symbolname}]
-        [ -L @var{symbolname} | --localize-symbol=@var{symbolname} ]
-        [ -W @var{symbolname} | --weaken-symbol=@var{symbolname} ]
-        [ -x | --discard-all ]  [ -X | --discard-locals ]
-        [ -b @var{byte} | --byte=@var{byte} ]
-        [ -i @var{interleave} | --interleave=@var{interleave} ]
-        [ -j @var{sectionname} | --only-section=@var{sectionname} ]
-        [ -R @var{sectionname} | --remove-section=@var{sectionname} ]
-        [ -p | --preserve-dates ] [ --debugging ]
-        [ --gap-fill=@var{val} ] [ --pad-to=@var{address} ]
-        [ --set-start=@var{val} ] [ --adjust-start=@var{incr} ]
-        [ --change-addresses=@var{incr} ]
-        [ --change-section-address @var{section}@{=,+,-@}@var{val} ]
-        [ --change-section-lma @var{section}@{=,+,-@}@var{val} ]
-        [ --change-section-vma @var{section}@{=,+,-@}@var{val} ]
-        [ --change-warnings ] [ --no-change-warnings ]
-        [ --set-section-flags @var{section}=@var{flags} ]
-        [ --add-section @var{sectionname}=@var{filename} ]
-        [ --change-leading-char ] [ --remove-leading-char ]
-        [ --srec-len=@var{ival} ] [ --srec-forceS3 ]
-        [ --redefine-sym @var{old}=@var{new} ] [ --weaken ]
-        [ --keep-symbols=@var{filename} ]
-        [ --strip-symbols=@var{filename} ]
-        [ --keep-global-symbols=@var{filename} ]
-        [ --localize-symbols=@var{filename} ]
-        [ --weaken-symbols=@var{filename} ]
-        [ -v | --verbose ] [ -V | --version ]  [ --help ]
-        @var{infile} [@var{outfile}]
-@c man end
-@end smallexample
-
-@c man begin DESCRIPTION objcopy
-The @sc{gnu} @code{objcopy} utility copies the contents of an object
-file to another.  @code{objcopy} uses the @sc{gnu} @sc{bfd} 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 @code{objcopy} is controlled by command-line options.
-Note that @code{objcopy} 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.
-
-@code{objcopy} creates temporary files to do its translations and
-deletes them afterward.  @code{objcopy} uses @sc{bfd} to do all its
-translation work; it has access to all the formats described in @sc{bfd}
-and thus is able to recognize most formats without being told
-explicitly.  @xref{BFD,,BFD,ld.info,Using LD}.
-
-@code{objcopy} can be used to generate S-records by using an output
-target of @samp{srec} (e.g., use @samp{-O srec}).
-
-@code{objcopy} can be used to generate a raw binary file by using an
-output target of @samp{binary} (e.g., use @samp{-O binary}).  When
-@code{objcopy} 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.
-
-When generating an S-record or a raw binary file, it may be helpful to
-use @samp{-S} to remove sections containing debugging information.  In
-some cases @samp{-R} will be useful to remove sections which contain
-information that is not needed by the binary file.
-
-Note - @code{objcopy} is not able to change the endianness of its input
-files.  If the input format has an endianness, (some formats do not),
-@code{objcopy} can only copy the inputs into file formats that have the
-same endianness or which have no endianness (eg @samp{srec}).
-
-@c man end
-
-@c man begin OPTIONS objcopy
-
-@table @code
-@item @var{infile}
-@itemx @var{outfile}
-The input and output files, respectively.
-If you do not specify @var{outfile}, @code{objcopy} creates a
-temporary file and destructively renames the result with
-the name of @var{infile}.
-
-@item -I @var{bfdname} 
-@itemx --input-target=@var{bfdname}
-Consider the source file's object format to be @var{bfdname}, rather than
-attempting to deduce it.  @xref{Target Selection}, for more information.
-
-@item -O @var{bfdname}
-@itemx --output-target=@var{bfdname}
-Write the output file using the object format @var{bfdname}.
-@xref{Target Selection}, for more information.
-
-@item -F @var{bfdname}
-@itemx --target=@var{bfdname}
-Use @var{bfdname} as the object format for both the input and the output
-file; i.e., simply transfer data from source to destination with no
-translation.  @xref{Target Selection}, for more information.
-
-@item -B @var{bfdarch}
-@itemx --binary-architecture=@var{bfdarch}
-Useful when transforming a raw binary input file into an object file.
-In this case the output architecture can be set to @var{bfdarch}. This
-option will be ignored if the input file has a known @var{bfdarch}. 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_@var{objfile}_start, _binary_@var{objfile}_end and
-_binary_@var{objfile}_size.  e.g. you can transform a picture file into
-an object file and then access it in your code using these symbols. 
-
-@item -j @var{sectionname}
-@itemx --only-section=@var{sectionname}
-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.
-
-@item -R @var{sectionname}
-@itemx --remove-section=@var{sectionname}
-Remove any section named @var{sectionname} from the output file.  This
-option may be given more than once.  Note that using this option
-inappropriately may make the output file unusable.
-
-@item -S
-@itemx --strip-all
-Do not copy relocation and symbol information from the source file.
-
-@item -g
-@itemx --strip-debug
-Do not copy debugging symbols from the source file.
-
-@item --strip-unneeded
-Strip all symbols that are not needed for relocation processing.
-
-@item -K @var{symbolname}
-@itemx --keep-symbol=@var{symbolname}
-Copy only symbol @var{symbolname} from the source file.  This option may
-be given more than once.
-
-@item -N @var{symbolname}
-@itemx --strip-symbol=@var{symbolname}
-Do not copy symbol @var{symbolname} from the source file.  This option
-may be given more than once.
-
-@item -G @var{symbolname}
-@itemx --keep-global-symbol=@var{symbolname}
-Keep only symbol @var{symbolname} global.  Make all other symbols local
-to the file, so that they are not visible externally.  This option may
-be given more than once.
-
-@item -L @var{symbolname}
-@itemx --localize-symbol=@var{symbolname}
-Make symbol @var{symbolname} local to the file, so that it is not
-visible externally.  This option may be given more than once.
-
-@item -W @var{symbolname}
-@itemx --weaken-symbol=@var{symbolname}
-Make symbol @var{symbolname} weak. This option may be given more than once.
-
-@item -x
-@itemx --discard-all
-Do not copy non-global symbols from the source file.
-@c FIXME any reason to prefer "non-global" to "local" here?
-
-@item -X
-@itemx --discard-locals
-Do not copy compiler-generated local symbols.
-(These usually start with @samp{L} or @samp{.}.)
-
-@item -b @var{byte}
-@itemx --byte=@var{byte}
-Keep only every @var{byte}th byte of the input file (header data is not
-affected).  @var{byte} can be in the range from 0 to @var{interleave}-1,
-where @var{interleave} is given by the @samp{-i} or @samp{--interleave}
-option, or the default of 4.  This option is useful for creating files
-to program @sc{rom}.  It is typically used with an @code{srec} output
-target.
-
-@item -i @var{interleave}
-@itemx --interleave=@var{interleave}
-Only copy one out of every @var{interleave} bytes.  Select which byte to
-copy with the @var{-b} or @samp{--byte} option.  The default is 4.
-@code{objcopy} ignores this option if you do not specify either @samp{-b} or
-@samp{--byte}.
-
-@item -p
-@itemx --preserve-dates
-Set the access and modification dates of the output file to be the same
-as those of the input file.
-
-@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.
-
-@item --gap-fill @var{val}
-Fill gaps between sections with @var{val}.  This operation applies to
-the @emph{load address} (LMA) 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 @var{val}.
-
-@item --pad-to @var{address}
-Pad the output file up to the load address @var{address}.  This is
-done by increasing the size of the last section.  The extra space is
-filled in with the value specified by @samp{--gap-fill} (default zero).
-
-@item --set-start @var{val}
-Set the start address of the new file to @var{val}.  Not all object file
-formats support setting the start address.
-
-@item --change-start @var{incr}
-@itemx --adjust-start @var{incr}
-@cindex changing start address
-Change the start address by adding @var{incr}.  Not all object file
-formats support setting the start address.
-
-@item --change-addresses @var{incr}
-@itemx --adjust-vma @var{incr}
-@cindex changing object addresses
-Change the VMA and LMA addresses of all sections, as well as the start
-address, by adding @var{incr}.  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. 
-
-@item --change-section-address @var{section}@{=,+,-@}@var{val}
-@itemx --adjust-section-vma @var{section}@{=,+,-@}@var{val}
-@cindex changing section address
-Set or change both the VMA address and the LMA address of the named
-@var{section}.  If @samp{=} is used, the section address is set to
-@var{val}.  Otherwise, @var{val} is added to or subtracted from the
-section address.  See the comments under @samp{--change-addresses},
-above. If @var{section} does not exist in the input file, a warning will
-be issued, unless @samp{--no-change-warnings} is used.
-
-@item --change-section-lma @var{section}@{=,+,-@}@var{val}
-@cindex changing section LMA
-Set or change the LMA address of the named @var{section}.  The LMA
-address is the address where the section will be loaded into memory at
-program load time.  Normally this is the same as the VMA address, which
-is the address of the section at program run time, but on some systems,
-especially those where a program is held in ROM, the two can be
-different.  If @samp{=} is used, the section address is set to
-@var{val}.  Otherwise, @var{val} is added to or subtracted from the
-section address.  See the comments under @samp{--change-addresses},
-above.  If @var{section} does not exist in the input file, a warning
-will be issued, unless @samp{--no-change-warnings} is used.  
-
-@item --change-section-vma @var{section}@{=,+,-@}@var{val}
-@cindex changing section VMA
-Set or change the VMA address of the named @var{section}.  The VMA
-address is the address where the section will be located once the
-program has started executing.  Normally this is the same as the LMA
-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
-ROM, the two can be different.  If @samp{=} is used, the section address
-is set to @var{val}.  Otherwise, @var{val} is added to or subtracted
-from the section address.  See the comments under
-@samp{--change-addresses}, above.  If @var{section} does not exist in
-the input file, a warning will be issued, unless
-@samp{--no-change-warnings} is used.   
-
-@item --change-warnings
-@itemx --adjust-warnings
-If @samp{--change-section-address} or @samp{--change-section-lma} or
-@samp{--change-section-vma} is used, and the named section does not
-exist, issue a warning.  This is the default. 
-
-@item --no-change-warnings
-@itemx --no-adjust-warnings
-Do not issue a warning if @samp{--change-section-address} or
-@samp{--adjust-section-lma} or @samp{--adjust-section-vma} is used, even
-if the named section does not exist. 
-
-@item --set-section-flags @var{section}=@var{flags}
-Set the flags for the named section.  The @var{flags} argument is a
-comma separated string of flag names.  The recognized names are
-@samp{alloc}, @samp{contents}, @samp{load}, @samp{noload},
-@samp{readonly}, @samp{code}, @samp{data}, @samp{rom}, @samp{share}, and
-@samp{debug}.  You can set the @samp{contents} flag for a section which
-does not have contents, but it is not meaningful to clear the
-@samp{contents} flag of a section which does have contents--just remove
-the section instead.  Not all flags are meaningful for all object file
-formats.
-
-@item --add-section @var{sectionname}=@var{filename}
-Add a new section named @var{sectionname} while copying the file.  The
-contents of the new section are taken from the file @var{filename}.  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.
-
-@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 @code{objcopy} 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.
-
-@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
-@code{--change-leading-char} because it always changes the symbol name
-when appropriate, regardless of the object file format of the output
-file.
-
-@item --srec-len=@var{ival}
-Meaningful only for srec output.  Set the maximum length of the Srecords
-being produced to @var{ival}.  This length covers both address, data and
-crc fields.
-
-@item --srec-forceS3
-Meaningful only for srec output.  Avoid generation of S1/S2 records, 
-creating S3-only record format.
-
-@item --redefine-sym @var{old}=@var{new}
-Change the name of a symbol @var{old}, to @var{new}.  This can be useful
-when one is trying link two things together for which you have no
-source, and there are name collisions.
-
-@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 @code{-R} option to the linker.  This option is only effective when
-using an object file format which supports weak symbols.
-
-@item --keep-symbols=@var{filename}
-Apply @samp{--keep-symbol} option to each symbol listed in the file
-@var{filename}.  @var{filename} 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.
-
-@item --strip-symbols=@var{filename}
-Apply @samp{--strip-symbol} option to each symbol listed in the file
-@var{filename}.  @var{filename} 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.
-
-@item --keep-global-symbols=@var{filename}
-Apply @samp{--keep-global-symbol} option to each symbol listed in the
-file @var{filename}.  @var{filename} 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.
-
-@item --localize-symbols=@var{filename}
-Apply @samp{--localize-symbol} option to each symbol listed in the file
-@var{filename}.  @var{filename} 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.
-
-@item --weaken-symbols=@var{filename}
-Apply @samp{--weaken-symbol} option to each symbol listed in the file
-@var{filename}.  @var{filename} 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.
-
-@item -V
-@itemx --version
-Show the version number of @code{objcopy}.
-
-@item -v
-@itemx --verbose
-Verbose output: list all object files modified.  In the case of
-archives, @samp{objcopy -V} lists all members of the archive.
-
-@item --help
-Show a summary of the options to @code{objcopy}.
-@end table
-
-@c man end
-
-@ignore
-@c man begin SEEALSO objcopy
-ld(1), objdump(1), and the Info entries for @file{binutils}.
-@c man end
-@end ignore
-
-@node objdump
-@chapter objdump
-
-@cindex object file information
-@kindex objdump
-
-@c man title objdump display information from object files.
-
-@smallexample
-@c man begin SYNOPSIS objdump
-objdump [ -a | --archive-headers ] 
-        [ -b @var{bfdname} | --target=@var{bfdname} ] 
-        [ -C | --demangle[=@var{style}] ]
-        [ -d | --disassemble ]
-        [ -D | --disassemble-all ]
-        [ -z | --disassemble-zeroes ]
-        [ -EB | -EL | --endian=@{big | little @} ]
-        [ -f | --file-headers ]
-        [ --file-start-context ]
-        [ -g | --debugging ]
-        [ -h | --section-headers | --headers ]
-        [ -i | --info ]
-        [ -j @var{section} | --section=@var{section} ]
-        [ -l | --line-numbers ]
-        [ -S | --source ]
-        [ -m @var{machine} | --architecture=@var{machine} ]
-        [ -M @var{options} | --disassembler-options=@var{options}]
-        [ -p | --private-headers ]
-        [ -r | --reloc ]
-        [ -R | --dynamic-reloc ]
-        [ -s | --full-contents ]
-        [ -G | --stabs ]
-        [ -t | --syms ]
-        [ -T | --dynamic-syms ]
-        [ -x | --all-headers ]
-        [ -w | --wide ]
-        [ --start-address=@var{address} ]
-        [ --stop-address=@var{address} ]
-        [ --prefix-addresses]
-        [ --[no-]show-raw-insn ]
-        [ --adjust-vma=@var{offset} ]
-        [ -V | --version ]
-        [ -H | --help ]
-        @var{objfile}@dots{}
-@c man end
-@end smallexample
-
-@c man begin DESCRIPTION objdump
-
-@code{objdump} 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.
-
-@var{objfile}@dots{} are the object files to be examined.  When you
-specify archives, @code{objdump} shows information on each of the member
-object files.
-
-@c man end
-
-@c man begin OPTIONS objdump
-
-The long and short forms of options, shown here as alternatives, are
-equivalent.  At least one option from the list
-@samp{-a,-d,-D,-f,-g,-G,-h,-H,-p,-r,-R,-S,-t,-T,-V,-x} must be given. 
-
-@table @code
-@item -a
-@itemx --archive-header
-@cindex archive headers
-If any of the @var{objfile} files are archives, display the archive
-header information (in a format similar to @samp{ls -l}).  Besides the
-information you could list with @samp{ar tv}, @samp{objdump -a} shows
-the object file format of each archive member.
-
-@item --adjust-vma=@var{offset}
-@cindex section addresses in objdump
-@cindex VMA in objdump
-When dumping information, first add @var{offset} 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.
-
-@item -b @var{bfdname}
-@itemx --target=@var{bfdname}
-@cindex object code format
-Specify that the object-code format for the object files is
-@var{bfdname}.  This option may not be necessary; @var{objdump} can
-automatically recognize many formats.
-
-For example,
-@example
-objdump -b oasys -m vax -h fu.o
-@end example
-@noindent
-displays summary information from the section headers (@samp{-h}) of
-@file{fu.o}, which is explicitly identified (@samp{-m}) as a VAX object
-file in the format produced by Oasys compilers.  You can list the
-formats available with the @samp{-i} option.
-@xref{Target Selection}, for more information.
-
-@item -C
-@itemx --demangle[=@var{style}]
-@cindex demangling in objdump
-Decode (@dfn{demangle}) 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. @xref{c++filt}, 
-for more information on demangling.
-
-@item -G
-@item --debugging
-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.
-
-@item -d
-@itemx --disassemble
-@cindex disassembling object code
-@cindex machine instructions
-Display the assembler mnemonics for the machine instructions from
-@var{objfile}.  This option only disassembles those sections which are
-expected to contain instructions.
-
-@item -D
-@itemx --disassemble-all
-Like @samp{-d}, but disassemble the contents of all sections, not just
-those expected to contain instructions.
-
-@item --prefix-addresses
-When disassembling, print the complete address on each line.  This is
-the older disassembly format.
-
-@item --disassemble-zeroes
-Normally the disassembly output will skip blocks of zeroes.  This
-option directs the disassembler to disassemble those blocks, just like
-any other data.
-
-@item -EB
-@itemx -EL
-@itemx --endian=@{big|little@}
-@cindex endianness
-@cindex disassembly endianness
-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.
-
-@item -f
-@itemx --file-header
-@cindex object file header
-Display summary information from the overall header of
-each of the @var{objfile} files.
-
-@item --file-start-context
-@cindex source code context
-Specify that when displaying interlisted source code/disassembly
-(assumes '-S') from a file that has not yet been displayed, extend the
-context to the start of the file.
-
-@item -h
-@itemx --section-header
-@itemx --header
-@cindex section headers
-Display summary information from the section headers of the
-object file.
-
-File segments may be relocated to nonstandard addresses, for example by
-using the @samp{-Ttext}, @samp{-Tdata}, or @samp{-Tbss} options to
-@code{ld}.  However, some object file formats, such as a.out, do not
-store the starting address of the file segments.  In those situations,
-although @code{ld} relocates the sections correctly, using @samp{objdump
--h} to list the file section headers cannot show the correct addresses.
-Instead, it shows the usual addresses, which are implicit for the
-target.
-
-@item --help
-Print a summary of the options to @code{objdump} and exit.
-
-@item -i
-@itemx --info
-@cindex architectures available
-@cindex object formats available
-Display a list showing all architectures and object formats available
-for specification with @samp{-b} or @samp{-m}.
-
-@item -j @var{name}
-@itemx --section=@var{name}
-@cindex section information
-Display information only for section @var{name}.
-
-@item -l
-@itemx --line-numbers
-@cindex source filenames for object files
-Label the display (using debugging information) with the filename and
-source line numbers corresponding to the object code or relocs shown.
-Only useful with @samp{-d}, @samp{-D}, or @samp{-r}.
-
-@item -m @var{machine}
-@itemx --architecture=@var{machine}
-@cindex architecture
-@cindex disassembly architecture
-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 @samp{-i} option.
-
-@item -M @var{options}
-@itemx --disassembler-options=@var{options}
-Pass target specific information to the disassembler.  Only supported on
-some targets.
-
-If the target is an ARM architecture then this switch can be used to
-select which register name set is used during disassembler.  Specifying
-@samp{-M reg-name-std} (the default) will select the register names as
-used in ARM's instruction set documentation, but with register 13 called
-'sp', register 14 called 'lr' and register 15 called 'pc'.  Specifying
-@samp{-M reg-names-apcs} will select the name set used by the ARM
-Procedure Call Standard, whilst specifying @samp{-M reg-names-raw} will
-just use @samp{r} followed by the register number.
-
-There are also two variants on the APCS register naming scheme enabled
-by @samp{-M reg-names-atpcs} and @samp{-M reg-names-special-atpcs} which
-use the ARM/Thumb Procedure Call Standard naming conventions.  (Eiuther
-with the normal register name sor the special register names).
-
-This option can also be used for ARM architectures to force the
-disassembler to interpret all instructions as THUMB instructions by
-using the switch @samp{--disassembler-options=force-thumb}.  This can be
-useful when attempting to disassemble thumb code produced by other
-compilers.
-
-@item -p
-@itemx --private-headers
-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.
-
-@item -r
-@itemx --reloc
-@cindex relocation entries, in object file
-Print the relocation entries of the file.  If used with @samp{-d} or
-@samp{-D}, the relocations are printed interspersed with the
-disassembly.
-
-@item -R
-@itemx --dynamic-reloc
-@cindex dynamic relocation entries, in object file
-Print the dynamic relocation entries of the file.  This is only
-meaningful for dynamic objects, such as certain types of shared
-libraries.
-
-@item -s
-@itemx --full-contents
-@cindex sections, full contents
-@cindex object file sections
-Display the full contents of any sections requested.
-
-@item -S
-@itemx --source
-@cindex source disassembly
-@cindex disassembly, with source
-Display source code intermixed with disassembly, if possible.  Implies
-@samp{-d}.
-
-@item --show-raw-insn
-When disassembling instructions, print the instruction in hex as well as
-in symbolic form.  This is the default except when
-@code{--prefix-addresses} is used.
-
-@item --no-show-raw-insn
-When disassembling instructions, do not print the instruction bytes.
-This is the default when @code{--prefix-addresses} is used.
-
-@item -G
-@item --stabs
-@cindex stab
-@cindex .stab
-@cindex debug symbols
-@cindex ELF object file format
-Display the full contents of any sections requested.  Display the
-contents of the .stab and .stab.index and .stab.excl sections from an
-ELF file.  This is only useful on systems (such as Solaris 2.0) in which
-@code{.stab} debugging symbol-table entries are carried in an ELF
-section.  In most other file formats, debugging symbol-table entries are
-interleaved with linkage symbols, and are visible in the @samp{--syms}
-output.
-@ifclear man
-For more information on stabs symbols, see @ref{Top,Stabs,Stabs
-Overview,stabs.info, The ``stabs'' debug format}.
-@end ifclear
-
-@item --start-address=@var{address}
-@cindex start-address
-Start displaying data at the specified address.  This affects the output
-of the @code{-d}, @code{-r} and @code{-s} options.
-
-@item --stop-address=@var{address}
-@cindex stop-address
-Stop displaying data at the specified address.  This affects the output
-of the @code{-d}, @code{-r} and @code{-s} options.
-
-@item -t
-@itemx --syms
-@cindex symbol table entries, printing
-Print the symbol table entries of the file.
-This is similar to the information provided by the @samp{nm} program.
-
-@item -T
-@itemx --dynamic-syms
-@cindex dynamic symbol table entries, printing
-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 @samp{nm}
-program when given the @samp{-D} (@samp{--dynamic}) option.
-
-@item --version
-Print the version number of @code{objdump} and exit.
-
-@item -x
-@itemx --all-header
-@cindex all header information, object file
-@cindex header information, all
-Display all available header information, including the symbol table and
-relocation entries.  Using @samp{-x} is equivalent to specifying all of
-@samp{-a -f -h -r -t}.
-
-@item -w
-@itemx --wide
-@cindex wide output, printing
-Format some lines for output devices that have more than 80 columns.
-@end table
-
-@c man end
-
-@ignore
-@c man begin SEEALSO objdump
-nm(1), readelf(1), and the Info entries for @file{binutils}.
-@c man end
-@end ignore
-
-@node ranlib
-@chapter ranlib
-
-@kindex ranlib
-@cindex archive contents
-@cindex symbol index
-
-@c man title ranlib generate index to archive.
-
-@smallexample
-@c man begin SYNOPSIS ranlib
-ranlib [-vV] @var{archive}
-@c man end
-@end smallexample
-
-@c man begin DESCRIPTION ranlib
-
-@code{ranlib} 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.  
-
-You may use @samp{nm -s} or @samp{nm --print-armap} to list this index.
-
-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.
-
-The @sc{gnu} @code{ranlib} program is another form of @sc{gnu} @code{ar}; running
-@code{ranlib} is completely equivalent to executing @samp{ar -s}.
-@xref{ar}.
-
-@c man end
-
-@c man begin OPTIONS ranlib
-
-@table @code
-@item -v
-@itemx -V
-@itemx --version
-Show the version number of @code{ranlib}.
-@end table
-
-@c man end
-
-@ignore
-@c man begin SEEALSO ranlib
-ar(1), nm(1), and the Info entries for @file{binutils}.
-@c man end
-@end ignore
-
-@node size
-@chapter size
-
-@kindex size
-@cindex section sizes
-
-@c man title size list section sizes and total size.
-
-@smallexample
-@c man begin SYNOPSIS size
-size [ -A | -B | --format=@var{compatibility} ]
-     [ --help ]  [ -d | -o | -x | --radix=@var{number} ]
-     [ --target=@var{bfdname} ]  [ -V | --version ]  
-     [ @var{objfile}@dots{} ]
-@c man end
-@end smallexample
-
-@c man begin DESCRIPTION size
-
-The @sc{gnu} @code{size} utility lists the section sizes---and the total
-size---for each of the object or archive files @var{objfile} in its
-argument list.  By default, one line of output is generated for each
-object file or each module in an archive.
-
-@var{objfile}@dots{} are the object files to be examined.
-If none are specified, the file @code{a.out} will be used.
-
-@c man end
-
-@c man begin OPTIONS size
-
-The command line options have the following meanings:
-
-@table @code
-@item -A
-@itemx -B
-@itemx --format=@var{compatibility}
-@cindex @code{size} display format
-Using one of these options, you can choose whether the output from @sc{gnu}
-@code{size} resembles output from System V @code{size} (using @samp{-A},
-or @samp{--format=sysv}), or Berkeley @code{size} (using @samp{-B}, or
-@samp{--format=berkeley}).  The default is the one-line format similar to
-Berkeley's.  
-@c Bonus for doc-source readers: you can also say --format=strange (or
-@c anything else that starts with 's') for sysv, and --format=boring (or
-@c anything else that starts with 'b') for Berkeley.
-
-Here is an example of the Berkeley (default) format of output from
-@code{size}: 
-@smallexample
-$ size --format=Berkeley ranlib size
-text    data    bss     dec     hex     filename
-294880  81920   11592   388392  5ed28   ranlib
-294880  81920   11888   388688  5ee50   size
-@end smallexample
-
-@noindent
-This is the same data, but displayed closer to System V conventions:
-
-@smallexample
-$ size --format=SysV ranlib size
-ranlib  :
-section         size         addr
-.text         294880         8192       
-.data          81920       303104       
-.bss           11592       385024       
-Total         388392    
-
-
-size  :
-section         size         addr
-.text         294880         8192       
-.data          81920       303104       
-.bss           11888       385024       
-Total         388688    
-@end smallexample
-
-@item --help
-Show a summary of acceptable arguments and options.
-
-@item -d
-@itemx -o
-@itemx -x
-@itemx --radix=@var{number}
-@cindex @code{size} number format
-@cindex radix for section sizes
-Using one of these options, you can control whether the size of each
-section is given in decimal (@samp{-d}, or @samp{--radix=10}); octal
-(@samp{-o}, or @samp{--radix=8}); or hexadecimal (@samp{-x}, or
-@samp{--radix=16}).  In @samp{--radix=@var{number}}, only the three
-values (8, 10, 16) are supported.  The total size is always given in two
-radices; decimal and hexadecimal for @samp{-d} or @samp{-x} output, or
-octal and hexadecimal if you're using @samp{-o}.
-
-@item --target=@var{bfdname}
-@cindex object code format
-Specify that the object-code format for @var{objfile} is
-@var{bfdname}.  This option may not be necessary; @code{size} can
-automatically recognize many formats.
-@xref{Target Selection}, for more information.
-
-@item -V
-@itemx --version
-Display the version number of @code{size}.
-@end table
-
-@c man end
-
-@ignore
-@c man begin SEEALSO size
-ar(1), objdump(1), readelf(1), and the Info entries for @file{binutils}.
-@c man end
-@end ignore
-
-@node strings
-@chapter strings
-@kindex strings
-@cindex listings strings
-@cindex printing strings
-@cindex strings, printing
-
-@c man title strings print the strings of printable characters in files.
-
-@smallexample
-@c man begin SYNOPSIS strings
-strings [-afov] [-@var{min-len}] [-n @var{min-len}] [-t @var{radix}] [-]
-        [--all] [--print-file-name] [--bytes=@var{min-len}]
-        [--radix=@var{radix}] [--target=@var{bfdname}]
-        [--help] [--version] @var{file}@dots{}
-@c man end
-@end smallexample
-
-@c man begin DESCRIPTION strings
-
-For each @var{file} given, @sc{gnu} @code{strings} 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.
-
-@code{strings} is mainly useful for determining the contents of non-text
-files.
-
-@c man end
-
-@c man begin OPTIONS strings
-
-@table @code
-@item -a
-@itemx --all
-@itemx -
-Do not scan only the initialized and loaded sections of object files;
-scan the whole files.
-
-@item -f
-@itemx --print-file-name
-Print the name of the file before each string.
-
-@item --help
-Print a summary of the program usage on the standard output and exit.
-
-@item -@var{min-len}
-@itemx -n @var{min-len}
-@itemx --bytes=@var{min-len}
-Print sequences of characters that are at least @var{min-len} characters
-long, instead of the default 4.
-
-@item -o
-Like @samp{-t o}.  Some other versions of @code{strings} have @samp{-o}
-act like @samp{-t d} instead.  Since we can not be compatible with both
-ways, we simply chose one.
-
-@item -t @var{radix}
-@itemx --radix=@var{radix}
-Print the offset within the file before each string.  The single
-character argument specifies the radix of the offset---@samp{o} for
-octal, @samp{x} for hexadecimal, or @samp{d} for decimal.
-
-@item --target=@var{bfdname}
-@cindex object code format
-Specify an object code format other than your system's default format.
-@xref{Target Selection}, for more information.
-
-@item -v
-@itemx --version
-Print the program version number on the standard output and exit.
-@end table
-
-@c man end
-
-@ignore
-@c man begin SEEALSO strings
-ar(1), nm(1), objdump(1), ranlib(1), readelf(1)
-and the Info entries for @file{binutils}.
-@c man end
-@end ignore
-
-@node strip
-@chapter strip
-
-@kindex strip
-@cindex removing symbols
-@cindex discarding symbols
-@cindex symbols, discarding
-
-@c man title strip Discard symbols from object files.
-
-@smallexample
-@c man begin SYNOPSIS strip
-strip [ -F @var{bfdname} | --target=@var{bfdname} ]
-      [ -I @var{bfdname} | --input-target=@var{bfdname} ]
-      [ -O @var{bfdname} | --output-target=@var{bfdname} ]
-      [ -s | --strip-all ] [ -S | -g | --strip-debug ]
-      [ -K @var{symbolname} | --keep-symbol=@var{symbolname} ]
-      [ -N @var{symbolname} | --strip-symbol=@var{symbolname} ]
-      [ -x | --discard-all ] [ -X | --discard-locals ]
-      [ -R @var{sectionname} | --remove-section=@var{sectionname} ]
-      [ -o @var{file} ] [ -p | --preserve-dates ]
-      [ -v | --verbose ]  [ -V | --version ]  [ --help ]
-      @var{objfile}@dots{}
-@c man end
-@end smallexample
-
-@c man begin DESCRIPTION strip
-
-@sc{gnu} @code{strip} discards all symbols from object files
-@var{objfile}.  The list of object files may include archives.
-At least one object file must be given.
-
-@code{strip} modifies the files named in its argument,
-rather than writing modified copies under different names.
-
-@c man end
-
-@c man begin OPTIONS strip
-
-@table @code
-@item -F @var{bfdname}
-@itemx --target=@var{bfdname}
-Treat the original @var{objfile} as a file with the object
-code format @var{bfdname}, and rewrite it in the same format.
-@xref{Target Selection}, for more information.
-
-@item --help
-Show a summary of the options to @code{strip} and exit.
-
-@item -I @var{bfdname} 
-@itemx --input-target=@var{bfdname}
-Treat the original @var{objfile} as a file with the object
-code format @var{bfdname}.
-@xref{Target Selection}, for more information.
-
-@item -O @var{bfdname}
-@itemx --output-target=@var{bfdname}
-Replace @var{objfile} with a file in the output format @var{bfdname}.
-@xref{Target Selection}, for more information.
-
-@item -R @var{sectionname}
-@itemx --remove-section=@var{sectionname}
-Remove any section named @var{sectionname} from the output file.  This
-option may be given more than once.  Note that using this option
-inappropriately may make the output file unusable.
-
-@item -s
-@itemx --strip-all
-Remove all symbols.
-
-@item -g
-@itemx -S
-@itemx --strip-debug
-Remove debugging symbols only.
-
-@item --strip-unneeded
-Remove all symbols that are not needed for relocation processing.
-
-@item -K @var{symbolname}
-@itemx --keep-symbol=@var{symbolname}
-Keep only symbol @var{symbolname} from the source file.  This option may
-be given more than once.
-
-@item -N @var{symbolname}
-@itemx --strip-symbol=@var{symbolname}
-Remove symbol @var{symbolname} from the source file. This option may be
-given more than once, and may be combined with strip options other than
-@code{-K}.
-
-@item -o @var{file}
-Put the stripped output in @var{file}, rather than replacing the
-existing file.  When this argument is used, only one @var{objfile}
-argument may be specified.
-
-@item -p
-@itemx --preserve-dates
-Preserve the access and modification dates of the file.
-
-@item -x
-@itemx --discard-all
-Remove non-global symbols.
-
-@item -X
-@itemx --discard-locals
-Remove compiler-generated local symbols.
-(These usually start with @samp{L} or @samp{.}.)
-
-@item -V
-@itemx --version
-Show the version number for @code{strip}.
-
-@item -v
-@itemx --verbose
-Verbose output: list all object files modified.  In the case of
-archives, @samp{strip -v} lists all members of the archive.
-@end table
-
-@c man end
-
-@ignore
-@c man begin SEEALSO strip
-the Info entries for @file{binutils}.
-@c man end
-@end ignore
-
-@node c++filt, addr2line, strip, Top
-@chapter c++filt
-
-@kindex c++filt
-@cindex demangling C++ symbols
-
-@c man title cxxfilt Demangle C++ and Java symbols.
-
-@smallexample
-@c man begin SYNOPSIS cxxfilt
-c++filt [ -_ | --strip-underscores ]
-        [ -j | --java ]
-       [ -n | --no-strip-underscores ]
-        [ -s @var{format} | --format=@var{format} ]
-        [ --help ]  [ --version ]  [ @var{symbol}@dots{} ]
-@c man end
-@end smallexample
-
-@c man begin DESCRIPTION cxxfilt
-
-@kindex cxxfilt
-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
-@dfn{mangling}). The @code{c++filt}
-@footnote{MS-DOS does not allow @kbd{+} characters in file names, so on
-MS-DOS this program is named @code{cxxfilt}.}
-program does the inverse mapping: it decodes (@dfn{demangles}) low-level
-names into user-level names so that the linker can keep these overloaded
-functions from clashing.
-
-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.
-
-You can use @code{c++filt} to decipher individual symbols:
-
-@example
-c++filt @var{symbol}
-@end example
-
-If no @var{symbol} arguments are given, @code{c++filt} reads symbol
-names from the standard input and writes the demangled names to the
-standard output.  All results are printed on the standard output.
-
-@c man end
-
-@c man begin OPTIONS cxxfilt
-
-@table @code
-@item -_
-@itemx --strip-underscores
-On some systems, both the C and C++ compilers put an underscore in front
-of every name.  For example, the C name @code{foo} gets the low-level
-name @code{_foo}.  This option removes the initial underscore.  Whether
-@code{c++filt} removes the underscore by default is target dependent.
-
-@item -j
-@itemx --java
-Prints demangled names using Java syntax.  The default is to use C++
-syntax.
-
-@item -n
-@itemx --no-strip-underscores
-Do not remove the initial underscore.
-
-@item -s @var{format}
-@itemx --format=@var{format}
-@sc{gnu} @code{nm} can decode three different methods of mangling, used by
-different C++ compilers.  The argument to this option selects which
-method it uses:
-
-@table @code
-@item gnu
-the one used by the @sc{gnu} compiler (the default method)
-@item lucid
-the one used by the Lucid compiler
-@item arm
-the one specified by the C++ Annotated Reference Manual
-@item hp
-the one used by the HP compiler
-@item edg
-the one used by the EDG compiler
-@item gnu-new-abi
-the one used by the @sc{gnu} compiler with the new ABI.
-@end table
-
-@item --help
-Print a summary of the options to @code{c++filt} and exit.
-
-@item --version
-Print the version number of @code{c++filt} and exit.
-@end table
-
-@c man end
-
-@ignore
-@c man begin SEEALSO cxxfilt
-the Info entries for @file{binutils}.
-@c man end
-@end ignore
-
-@quotation
-@emph{Warning:} @code{c++filt} is a new utility, and the details of its
-user interface are subject to change in future releases.  In particular,
-a command-line option may be required in the the future to decode a name
-passed as an argument on the command line; in other words, 
-
-@example
-c++filt @var{symbol}
-@end example
-
-@noindent
-may in a future release become
-
-@example
-c++filt @var{option} @var{symbol}
-@end example
-@end quotation
-
-@node addr2line
-@chapter addr2line
-
-@kindex addr2line
-@cindex address to file name and line number
-
-@c man title addr2line convert addresses into file names and line numbers.
-
-@smallexample
-@c man begin SYNOPSIS addr2line
-addr2line [ -b @var{bfdname} | --target=@var{bfdname} ]
-          [ -C | --demangle[=@var{style} ]
-          [ -e @var{filename} | --exe=@var{filename} ]
-          [ -f | --functions ] [ -s | --basename ]
-          [ -H | --help ] [ -V | --version ]
-          [ addr addr ... ]
-@c man end
-@end smallexample
-
-@c man begin DESCRIPTION addr2line
-
-@code{addr2line} 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.
-
-The executable to use is specified with the @code{-e} option.  The
-default is the file @file{a.out}.
-
-@code{addr2line} has two modes of operation.
-
-In the first, hexadecimal addresses are specified on the command line,
-and @code{addr2line} displays the file name and line number for each
-address.
-
-In the second, @code{addr2line} reads hexadecimal addresses from
-standard input, and prints the file name and line number for each
-address on standard output.  In this mode, @code{addr2line} may be used
-in a pipe to convert dynamically chosen addresses.
-
-The format of the output is @samp{FILENAME:LINENO}.  The file name and
-line number for each address is printed on a separate line.  If the
-@code{-f} option is used, then each @samp{FILENAME:LINENO} line is
-preceded by a @samp{FUNCTIONNAME} line which is the name of the function
-containing the address.
-
-If the file name or function name can not be determined,
-@code{addr2line} will print two question marks in their place.  If the
-line number can not be determined, @code{addr2line} will print 0.
-
-@c man end
-
-@c man begin OPTIONS addr2line
-
-The long and short forms of options, shown here as alternatives, are
-equivalent.
-
-@table @code
-@item -b @var{bfdname}
-@itemx --target=@var{bfdname}
-@cindex object code format
-Specify that the object-code format for the object files is
-@var{bfdname}.
-
-@item -C
-@itemx --demangle[=@var{style}]
-@cindex demangling in objdump
-Decode (@dfn{demangle}) 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. @xref{c++filt}, 
-for more information on demangling.
-
-@item -e @var{filename}
-@itemx --exe=@var{filename}
-Specify the name of the executable for which addresses should be
-translated.  The default file is @file{a.out}.
-
-@item -f
-@itemx --functions
-Display function names as well as file and line number information.
-
-@item -s
-@itemx --basenames
-Display only the base of each file name.
-@end table
-
-@c man end
-
-@ignore
-@c man begin SEEALSO addr2line
-Info entries for @file{binutils}.
-@c man end
-@end ignore
-
-@node nlmconv
-@chapter nlmconv
-
-@code{nlmconv} converts a relocatable object file into a NetWare
-Loadable Module.
-
-@ignore
-@code{nlmconv} currently works with @samp{i386} object
-files in @code{coff}, @sc{elf}, or @code{a.out} format, and @sc{SPARC}
-object files in @sc{elf}, or @code{a.out} format@footnote{
-@code{nlmconv} should work with any @samp{i386} or @sc{sparc} object
-format in the Binary File Descriptor library.  It has only been tested
-with the above formats.}.
-@end ignore
-
-@quotation
-@emph{Warning:} @code{nlmconv} is not always built as part of the binary
-utilities, since it is only useful for NLM targets.
-@end quotation
-
-@c man title nlmconv converts object code into an NLM.
-
-@smallexample
-@c man begin SYNOPSIS nlmconv
-nlmconv [ -I @var{bfdname} | --input-target=@var{bfdname} ]
-        [ -O @var{bfdname} | --output-target=@var{bfdname} ]
-        [ -T @var{headerfile} | --header-file=@var{headerfile} ]
-        [ -d | --debug]  [ -l @var{linker} | --linker=@var{linker} ]
-        [ -h | --help ]  [ -V | --version ]
-        @var{infile} @var{outfile}
-@c man end
-@end smallexample
-
-@c man begin DESCRIPTION nlmconv
-
-@code{nlmconv} converts the relocatable @samp{i386} object file
-@var{infile} into the NetWare Loadable Module @var{outfile}, optionally
-reading @var{headerfile} for NLM header information.  For instructions
-on writing the NLM command file language used in header files, see the
-@samp{linkers} section, @samp{NLMLINK} in particular, of the @cite{NLM
-Development and Tools Overview}, which is part of the NLM Software
-Developer's Kit (``NLM SDK''), available from Novell, Inc.
-@code{nlmconv} uses the @sc{gnu} Binary File Descriptor library to read
-@var{infile};
-@ifclear man
-see @ref{BFD,,BFD,ld.info,Using LD}, for more information.
-@end ifclear
-
-@code{nlmconv} 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, @code{nlmconv} calls the linker for you.
-
-@c man end
-
-@c man begin OPTIONS nlmconv
-
-@table @code
-@item -I @var{bfdname}
-@itemx --input-target=@var{bfdname}
-Object format of the input file.  @code{nlmconv} can usually determine
-the format of a given file (so no default is necessary).
-@xref{Target Selection}, for more information.
-
-@item -O @var{bfdname}
-@itemx --output-target=@var{bfdname}
-Object format of the output file.  @code{nlmconv} infers the output
-format based on the input format, e.g. for a @samp{i386} input file the
-output format is @samp{nlm32-i386}.
-@xref{Target Selection}, for more information.
-
-@item -T @var{headerfile}
-@itemx --header-file=@var{headerfile}
-Reads @var{headerfile} for NLM header information.  For instructions on
-writing the NLM command file language used in header files, see@ see the
-@samp{linkers} section, of the @cite{NLM Development and Tools
-Overview}, which is part of the NLM Software Developer's Kit, available
-from Novell, Inc.
-
-@item -d
-@itemx --debug
-Displays (on standard error) the linker command line used by @code{nlmconv}.
-
-@item -l @var{linker}
-@itemx --linker=@var{linker}
-Use @var{linker} for any linking.  @var{linker} can be an absolute or a
-relative pathname.
-
-@item -h
-@itemx --help
-Prints a usage summary.
-
-@item -V
-@itemx --version
-Prints the version number for @code{nlmconv}.
-@end table
-
-@c man end
-
-@ignore
-@c man begin SEEALSO nlmconv
-the Info entries for @file{binutils}.
-@c man end
-@end ignore
-
-@node windres
-@chapter windres
-
-@code{windres} may be used to manipulate Windows resources.
-
-@quotation
-@emph{Warning:} @code{windres} is not always built as part of the binary
-utilities, since it is only useful for Windows targets.
-@end quotation
-
-@c man title windres manipulate Windows resources.
-
-@smallexample
-@c man begin SYNOPSIS windres
-windres [options] [input-file] [output-file]
-@c man end
-@end smallexample
-
-@c man begin DESCRIPTION windres
-
-@code{windres} reads resources from an input file and copies them into
-an output file.  Either file may be in one of three formats:
-
-@table @code
-@item rc
-A text format read by the Resource Compiler.
-
-@item res
-A binary format generated by the Resource Compiler.
-
-@item coff
-A COFF object or executable.
-@end table
-
-The exact description of these different formats is available in
-documentation from Microsoft.
-
-When @code{windres} converts from the @code{rc} format to the @code{res}
-format, it is acting like the Windows Resource Compiler.  When
-@code{windres} converts from the @code{res} format to the @code{coff}
-format, it is acting like the Windows @code{CVTRES} program.
-
-When @code{windres} generates an @code{rc} file, the output is similar
-but not identical to the format expected for the input.  When an input
-@code{rc} file refers to an external filename, an output @code{rc} file
-will instead include the file contents.
-
-If the input or output format is not specified, @code{windres} will
-guess based on the file name, or, for the input file, the file contents.
-A file with an extension of @file{.rc} will be treated as an @code{rc}
-file, a file with an extension of @file{.res} will be treated as a
-@code{res} file, and a file with an extension of @file{.o} or
-@file{.exe} will be treated as a @code{coff} file.
-
-If no output file is specified, @code{windres} will print the resources
-in @code{rc} format to standard output.
-
-The normal use is for you to write an @code{rc} file, use @code{windres}
-to convert it to a COFF object file, and then link the COFF file into
-your application.  This will make the resources described in the
-@code{rc} file available to Windows.
-
-@c man end
-
-@c man begin OPTIONS windres
-
-@table @code
-@item -i @var{filename}
-@itemx --input @var{filename}
-The name of the input file.  If this option is not used, then
-@code{windres} will use the first non-option argument as the input file
-name.  If there are no non-option arguments, then @code{windres} will
-read from standard input.  @code{windres} can not read a COFF file from
-standard input.
-
-@item -o @var{filename}
-@itemx --output @var{filename}
-The name of the output file.  If this option is not used, then
-@code{windres} 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 @code{windres} will write to standard output.
-@code{windres} can not write a COFF file to standard output.
-
-@item -I @var{format}
-@itemx --input-format @var{format}
-The input format to read.  @var{format} may be @samp{res}, @samp{rc}, or
-@samp{coff}.  If no input format is specified, @code{windres} will
-guess, as described above.
-
-@item -O @var{format}
-@itemx --output-format @var{format}
-The output format to generate.  @var{format} may be @samp{res},
-@samp{rc}, or @samp{coff}.  If no output format is specified,
-@code{windres} will guess, as described above.
-
-@item -F @var{target}
-@itemx --target @var{target}
-Specify the BFD format to use for a COFF file as input or output.  This
-is a BFD target name; you can use the @code{--help} option to see a list
-of supported targets.  Normally @code{windres} will use the default
-format, which is the first one listed by the @code{--help} option.
-@ref{Target Selection}.
-
-@item --preprocessor @var{program}
-When @code{windres} reads an @code{rc} 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 @code{gcc -E -xc-header -DRC_INVOKED}.
-
-@item --include-dir @var{directory}
-Specify an include directory to use when reading an @code{rc} file.
-@code{windres} will pass this to the preprocessor as an @code{-I}
-option.  @code{windres} will also search this directory when looking for
-files named in the @code{rc} file.
-
-@item -D @var{target}
-@itemx --define @var{sym}[=@var{val}]
-Specify a @code{-D} option to pass to the preprocessor when reading an
-@code{rc} file.
-
-@item -v
-Enable verbose mode.  This tells you what the preprocessor is if you
-didn't specify one.
-
-@item --language @var{val}
-Specify the default language to use when reading an @code{rc} file.
-@var{val} should be a hexadecimal language code.  The low eight bits are
-the language, and the high eight bits are the sublanguage.
-
-@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).
-
-@item --no-use-temp-file
-Use popen, not a temporary file, to read the output of the preprocessor.
-This is the default behaviour.
-
-@item --help
-Prints a usage summary.
-
-@item --version
-Prints the version number for @code{windres}.
-
-@item --yydebug
-If @code{windres} is compiled with @code{YYDEBUG} defined as @code{1},
-this will turn on parser debugging.
-@end table
-
-@c man end
-
-@ignore
-@c man begin SEEALSO windres
-the Info entries for @file{binutils}.
-@c man end
-@end ignore
-
-@node dlltool
-@chapter Create files needed to build and use DLLs
-@cindex DLL
-@kindex dlltool
-
-@code{dlltool} may be used to create the files needed to build and use
-dynamic link libraries (DLLs).
-
-@quotation
-@emph{Warning:} @code{dlltool} is not always built as part of the binary
-utilities, since it is only useful for those targets which support DLLs.
-@end quotation
-
-@c man title dlltool Create files needed to build and use DLLs.
-
-@smallexample
-@c man begin SYNOPSIS dlltool
-dlltool [-d|--input-def @var{def-file-name}]
-        [-b|--base-file @var{base-file-name}]
-        [-e|--output-exp @var{exports-file-name}]
-        [-z|--output-def @var{def-file-name}]
-        [-l|--output-lib @var{library-file-name}]        
-        [--export-all-symbols] [--no-export-all-symbols]
-        [--exclude-symbols @var{list}]
-        [--no-default-excludes]
-        [-S|--as @var{path-to-assembler}] [-f|--as-flags @var{options}]
-        [-D|--dllname @var{name}] [-m|--machine @var{machine}]
-        [-a|--add-indirect] [-U|--add-underscore] [-k|--kill-at]
-        [-A|--add-stdcall-alias]
-        [-x|--no-idata4] [-c|--no-idata5] [-i|--interwork]
-        [-n|--nodelete] [-v|--verbose] [-h|--help] [-V|--version]
-        [object-file @dots{}]
-@c man end
-@end smallexample
-
-@c man begin DESCRIPTION dlltool
-
-@code{dlltool} reads its inputs, which can come from the @samp{-d} and
-@samp{-b} options as well as object files specified on the command
-line.  It then processes these inputs and if the @samp{-e} option has
-been specified it creates a exports file.  If the @samp{-l} option
-has been specified it creates a library file and if the @samp{-z} option
-has been specified it creates a def file.  Any or all of the -e, -l
-and -z options can be present in one invocation of dlltool.
-
-When creating a DLL, along with the source for the DLL, it is necessary
-to have three other files.  @code{dlltool} can help with the creation of
-these files.
-
-The first file is a @samp{.def} file which specifies which functions are
-exported from the DLL, which functions the DLL imports, and so on.  This
-is a text file and can be created by hand, or @code{dlltool} can be used
-to create it using the @samp{-z} option.  In this case @code{dlltool}
-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 .def file it creates.
-
-In order to mark a function as being exported from a DLL, it needs to
-have an @samp{-export:<name_of_function>} entry in the @samp{.drectve}
-section of the object file.  This can be done in C by using the
-asm() operator:
-
-@smallexample
-  asm (".section .drectve");  
-  asm (".ascii \"-export:my_func\"");
-
-  int my_func (void) @{ @dots{} @}
-@end smallexample
-
-The second file needed for DLL creation is an exports file.  This file
-is linked with the object files that make up the body of the DLL and it
-handles the interface between the DLL and the outside world.  This is a
-binary file and it can be created by giving the @samp{-e} option to
-@code{dlltool} when it is creating or reading in a .def file. 
-
-The third file needed for DLL creation is the library file that programs
-will link with in order to access the functions in the DLL.  This file
-can be created by giving the @samp{-l} option to dlltool when it
-is creating or reading in a .def file.
-
-@code{dlltool} builds the library file by hand, but it builds the
-exports file by creating temporary files containing assembler statements
-and then assembling these.  The @samp{-S} command line option can be
-used to specify the path to the assembler that dlltool will use,
-and the @samp{-f} option can be used to pass specific flags to that
-assembler.  The @samp{-n} can be used to prevent dlltool from deleting
-these temporary assembler files when it is done, and if @samp{-n} is
-specified twice then this will prevent dlltool from deleting the
-temporary object files it used to build the library.
-
-Here is an example of creating a DLL from a source file @samp{dll.c} and
-also creating a program (from an object file called @samp{program.o})
-that uses that DLL:
-
-@smallexample
-  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
-@end smallexample
-
-@c man end
-
-@c man begin OPTIONS dlltool
-
-The command line options have the following meanings:
-
-@table @code
-
-@item -d @var{filename}
-@itemx --input-def @var{filename}
-@cindex input .def file
-Specifies the name of a .def file to be read in and processed.
-
-@item -b @var{filename}
-@itemx --base-file @var{filename}
-@cindex base files
-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.
-
-@item -e @var{filename}
-@itemx --output-exp @var{filename}
-Specifies the name of the export file to be created by dlltool.
-
-@item -z @var{filename}
-@itemx --output-def @var{filename}
-Specifies the name of the .def file to be created by dlltool.
-
-@item -l @var{filename}
-@itemx --output-lib @var{filename}
-Specifies the name of the library file to be created by dlltool.
-
-@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 @code{--no-default-excludes}
-option.  You may add to the list of symbols to not export by using the
-@code{--exclude-symbols} option.
-
-@item --no-export-all-symbols
-Only export symbols explicitly listed in an input .def file or in
-@samp{.drectve} sections in the input object files.  This is the default
-behaviour.  The @samp{.drectve} sections are created by @samp{dllexport}
-attributes in the source code.
-
-@item --exclude-symbols @var{list}
-Do not export the symbols in @var{list}.  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
-@code{--export-all-symbols} is used.
-
-@item --no-default-excludes
-When @code{--export-all-symbols} is used, it will by default avoid
-exporting certain special symbols.  The current list of symbols to avoid
-exporting is @samp{DllMain@@12}, @samp{DllEntryPoint@@0},
-@samp{impure_ptr}.  You may use the @code{--no-default-excludes} option
-to go ahead and export these special symbols.  This is only meaningful
-when @code{--export-all-symbols} is used.
-
-@item -S @var{path}
-@itemx --as @var{path}
-Specifies the path, including the filename, of the assembler to be used
-to create the exports file.
-
-@item -f @var{switches}
-@itemx --as-flags @var{switches}
-Specifies any specific command line switches to be passed to the
-assembler when building the exports file.  This option will work even if
-the @samp{-S} 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 switches to the assembler they should be enclosed in
-double quotes.
-
-@item -D @var{name}
-@itemx --dll-name @var{name}
-Specifies the name to be stored in the .def file as the name of the DLL
-when the @samp{-e} option is used.  If this option is not present, then
-the filename given to the @samp{-e} option will be used as the name of
-the DLL.
-
-@item -m @var{machine}
-@itemx -machine @var{machine}
-Specifies the type of machine for which the library file should be
-built.  @code{dlltool} 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 ARM processor, when the
-contents of the DLL are actually encode using THUMB instructions.
-
-@item -a
-@itemx --add-indirect
-Specifies that when @code{dlltool} 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! 
-
-@item -U
-@itemx --add-underscore
-Specifies that when @code{dlltool} is creating the exports file it
-should prepend an underscore to the names of the exported functions. 
-
-@item -k
-@itemx --kill-at
-Specifies that when @code{dlltool} is creating the exports file it
-should not append the string @samp{@@ <number>}.  These numbers are
-called ordinal numbers and they represent another way of accessing the
-function in a DLL, other than by name.
-
-@item -A
-@itemx --add-stdcall-alias
-Specifies that when @code{dlltool} is creating the exports file it
-should add aliases for stdcall symbols without @samp{@@ <number>}
-in addition to the symbols with @samp{@@ <number>}.
-
-@item -x
-@itemx --no-idata4
-Specifies that when @code{dlltool} is creating the exports and library
-files it should omit the .idata4 section.  This is for compatibility
-with certain operating systems.
-
-@item -c
-@itemx --no-idata5
-Specifies that when @code{dlltool} is creating the exports and library
-files it should omit the .idata5 section.  This is for compatibility
-with certain operating systems.
-
-@item -i
-@itemx --interwork
-Specifies that @code{dlltool} should mark the objects in the library
-file and exports file that it produces as supporting interworking
-between ARM and THUMB code.
-
-@item -n
-@itemx --nodelete
-Makes @code{dlltool} 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. 
-
-@item -v
-@itemx --verbose
-Make dlltool describe what it is doing.
-
-@item -h
-@itemx --help
-Displays a list of command line options and then exits.
-
-@item -V
-@itemx --version
-Displays dlltool's version number and then exits.
-
-@end table
-
-@c man end
-
-@ignore
-@c man begin SEEALSO dlltool
-the Info entries for @file{binutils}.
-@c man end
-@end ignore
-
-@node readelf
-@chapter readelf
-
-@cindex ELF file information
-@kindex readelf
-
-@c man title readelf Displays information about ELF files.
-
-@smallexample
-@c man begin SYNOPSIS readelf
-readelf [ -a | --all ] 
-        [ -h | --file-header]
-        [ -l | --program-headers | --segments]
-        [ -S | --section-headers | --sections]
-        [ -e | --headers]
-        [ -s | --syms | --symbols]
-        [ -n | --notes]
-        [ -r | --relocs]
-        [ -u | --unwind]
-        [ -d | --dynamic]
-        [ -V | --version-info]
-        [ -D | --use-dynamic]
-        [ -x <number> | --hex-dump=<number>]
-        [ -w[liaprf] | --debug-dump[=info,=line,=abbrev,=pubnames,=ranges,=frames]]
-        [      --histogram]
-        [ -v | --version]
-        [ -H | --help]
-        @var{elffile}@dots{}
-@c man end
-@end smallexample
-
-@c man begin DESCRIPTION readelf
-
-@code{readelf} displays information about one or more ELF format object
-files.  The options control what particular information to display.
-
-@var{elffile}@dots{} are the object files to be examined.  At the
-moment, @code{readelf} does not support examining archives, nor does it
-support examing 64 bit ELF files.
-
-@c man end
-
-@c man begin OPTIONS readelf
-
-The long and short forms of options, shown here as alternatives, are
-equivalent.  At least one option besides @samp{-v} or @samp{-H} must be
-given. 
-
-@table @code
-@item -a
-@itemx --all
-Equivalent to specifiying @samp{--file-header},
-@samp{--program-headers}, @samp{--sections}, @samp{--symbols},
-@samp{--relocs}, @samp{--dynamic}, @samp{--notes} and
-@samp{--version-info}. 
-
-@item -h
-@itemx --file-header
-@cindex ELF file header information
-Displays the information contained in the ELF header at the start of the
-file.
-
-@item -l
-@itemx --program-headers
-@itemx --segments
-@cindex ELF program header information
-@cindex ELF segment information
-Displays the information contained in the file's segment headers, if it
-has any.
-
-@item -S
-@itemx --sections
-@itemx --section-headers
-@cindex ELF section information
-Displays the information contained in the file's section headers, if it
-has any.
-
-@item -s
-@itemx --symbols
-@itemx --syms
-@cindex ELF symbol table information
-Displays the entries in symbol table section of the file, if it has one.
-
-@item -e
-@itemx --headers
-Display all the headers in the file.  Equivalent to @samp{-h -l -S}.
-
-@item -n
-@itemx --notes
-@cindex ELF core notes
-Displays the contents of the NOTE segment, if it exists.
-
-@item -r
-@itemx --relocs
-@cindex ELF reloc information
-Displays the contents of the file's relocation section, if it has one.
-
-@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
-Displays the contents of the file's dynamic section, if it has one.
-
-@item -V
-@itemx --version-info
-@cindex ELF version sections informations
-Displays the contents of the version sections in the file, it they
-exist.
-
-@item -D
-@itemx --use-dynamic
-When displaying symbols, this option makes @code{readelf} use the
-symbol table in the file's dynamic section, rather than the one in the
-symbols section.
-
-@item -x <number>
-@itemx --hex-dump=<number>
-Displays the contents of the indicated section as a hexadecimal dump.
-
-@item -w[liaprf]
-@itemx --debug-dump[=line,=info,=abbrev,=pubnames,=ranges,=frames]
-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.
-
-@item --histogram
-Display a histogram of bucket list lengths when displaying the contents
-of the symbol tables.
-
-@item -v
-@itemx --version
-Display the version number of readelf.
-
-@item -H
-@itemx --help
-Display the command line options understood by @code{readelf}.
-
-@end table
-
-@c man end
-
-@ignore
-@c man begin SEEALSO readelf
-objdump(1), and the Info entries for @file{binutils}.
-@c man end
-@end ignore
-
-@node Selecting The Target System
-@chapter Selecting the target system
-
-You can specify three aspects of the target system to the @sc{gnu}
-binary file utilities, each in several ways:
-
-@itemize @bullet
-@item
-the target
-
-@item
-the architecture
-
-@item
-the linker emulation (which applies to the linker only)
-@end itemize
-
-In the following summaries, the lists of ways to specify values are in
-order of decreasing precedence.  The ways listed first override those
-listed later.
-
-The commands to list valid values only list the values for which the
-programs you are running were configured.  If they were configured with
-@samp{--enable-targets=all}, the commands list most of the available
-values, but a few are left out; not all targets can be configured in at
-once because some of them can only be configured @dfn{native} (on hosts
-with the same type as the target system).
-
-@menu
-* Target Selection::            
-* Architecture Selection::      
-* Linker Emulation Selection::  
-@end menu
-
-@node Target Selection
-@section Target Selection
-
-A @dfn{target} is an object file format.  A given target may be
-supported for multiple architectures (@pxref{Architecture Selection}).
-A target selection may also have variations for different operating
-systems or architectures.
-
-The command to list valid target values is @samp{objdump -i}
-(the first column of output contains the relevant information).
-
-Some sample values are: @samp{a.out-hp300bsd}, @samp{ecoff-littlemips},
-@samp{a.out-sunos-big}.
-
-You can also specify a target using a configuration triplet.  This is
-the same sort of name that is passed to @file{configure} to specify a
-target.  When you use a configuration triplet as an argument, it must be
-fully canonicalized.  You can see the canonical version of a triplet by
-running the shell script @file{config.sub} which is included with the
-sources.
-
-Some sample configuration triplets are: @samp{m68k-hp-bsd},
-@samp{mips-dec-ultrix}, @samp{sparc-sun-sunos}.
-
-@subheading @code{objdump} Target
-
-Ways to specify:
-
-@enumerate
-@item
-command line option: @samp{-b} or @samp{--target}
-
-@item
-environment variable @code{GNUTARGET}
-
-@item
-deduced from the input file
-@end enumerate
-
-@subheading @code{objcopy} and @code{strip} Input Target
-
-Ways to specify:
-
-@enumerate
-@item
-command line options: @samp{-I} or @samp{--input-target}, or @samp{-F} or @samp{--target}
-
-@item
-environment variable @code{GNUTARGET}
-
-@item
-deduced from the input file
-@end enumerate
-
-@subheading @code{objcopy} and @code{strip} Output Target
-
-Ways to specify:
-
-@enumerate
-@item
-command line options: @samp{-O} or @samp{--output-target}, or @samp{-F} or @samp{--target}
-
-@item
-the input target (see ``@code{objcopy} and @code{strip} Input Target'' above)
-
-@item
-environment variable @code{GNUTARGET}
-
-@item
-deduced from the input file
-@end enumerate
-
-@subheading @code{nm}, @code{size}, and @code{strings} Target
-
-Ways to specify:
-
-@enumerate
-@item
-command line option: @samp{--target}
-
-@item
-environment variable @code{GNUTARGET}
-
-@item
-deduced from the input file
-@end enumerate
-
-@subheading Linker Input Target
-
-Ways to specify:
-
-@enumerate
-@item
-command line option: @samp{-b} or @samp{--format}
-(@pxref{Options,,Options,ld.info,Using LD})
-
-@item
-script command @code{TARGET}
-(@pxref{Option Commands,,Option Commands,ld.info,Using LD})
-
-@item
-environment variable @code{GNUTARGET}
-(@pxref{Environment,,Environment,ld.info,Using LD})
-
-@item
-the default target of the selected linker emulation
-(@pxref{Linker Emulation Selection})
-@end enumerate
-
-@subheading Linker Output Target
-
-Ways to specify:
-
-@enumerate
-@item
-command line option: @samp{-oformat}
-(@pxref{Options,,Options,ld.info,Using LD})
-
-@item
-script command @code{OUTPUT_FORMAT}
-(@pxref{Option Commands,,Option Commands,ld.info,Using LD})
-
-@item
-the linker input target (see ``Linker Input Target'' above)
-@end enumerate
-
-@node Architecture Selection
-@section Architecture selection
-
-An @dfn{architecture} is a type of @sc{cpu} on which an object file is
-to run.  Its name may contain a colon, separating the name of the
-processor family from the name of the particular @sc{cpu}.
-
-The command to list valid architecture values is @samp{objdump -i} (the
-second column contains the relevant information).
-
-Sample values: @samp{m68k:68020}, @samp{mips:3000}, @samp{sparc}.
-
-@subheading @code{objdump} Architecture
-
-Ways to specify:
-
-@enumerate
-@item
-command line option: @samp{-m} or @samp{--architecture}
-
-@item
-deduced from the input file
-@end enumerate
-
-@subheading @code{objcopy}, @code{nm}, @code{size}, @code{strings} Architecture
-
-Ways to specify:
-
-@enumerate
-@item
-deduced from the input file
-@end enumerate
-
-@subheading Linker Input Architecture
-
-Ways to specify:
-
-@enumerate
-@item
-deduced from the input file
-@end enumerate
-
-@subheading Linker Output Architecture
-
-Ways to specify:
-
-@enumerate
-@item
-script command @code{OUTPUT_ARCH}
-(@pxref{Option Commands,,Option Commands,ld.info,Using LD})
-
-@item
-the default architecture from the linker output target
-(@pxref{Target Selection})
-@end enumerate
-
-@node Linker Emulation Selection
-@section Linker emulation selection
-
-A linker @dfn{emulation} is a ``personality'' of the linker, which gives
-the linker default values for the other aspects of the target system.
-In particular, it consists of
-
-@itemize @bullet
-@item
-the linker script
-
-@item
-the target
-
-@item
-several ``hook'' functions that are run at certain stages of the linking
-process to do special things that some targets require
-@end itemize
-
-The command to list valid linker emulation values is @samp{ld -V}.
-
-Sample values: @samp{hp300bsd}, @samp{mipslit}, @samp{sun4}.
-
-Ways to specify:
-
-@enumerate
-@item
-command line option: @samp{-m}
-(@pxref{Options,,Options,ld.info,Using LD})
-
-@item
-environment variable @code{LDEMULATION}
-
-@item
-compiled-in @code{DEFAULT_EMULATION} from @file{Makefile},
-which comes from @code{EMUL} in @file{config/@var{target}.mt}
-@end enumerate
-
-@node Reporting Bugs
-@chapter Reporting Bugs
-@cindex bugs
-@cindex reporting bugs
-
-Your bug reports play an essential role in making the binary utilities
-reliable.
-
-Reporting a bug may help you by bringing a solution to your problem, or
-it may not.  But in any case the principal function of a bug report is
-to help the entire community by making the next version of the binary
-utilities work better.  Bug reports are your contribution to their
-maintenance.
-
-In order for a bug report to serve its purpose, you must include the
-information that enables us to fix the bug.
-
-@menu
-* Bug Criteria::                Have you found a bug?
-* Bug Reporting::               How to report bugs
-@end menu
-
-@node Bug Criteria
-@section Have you found a bug?
-@cindex bug criteria
-
-If you are not sure whether you have found a bug, here are some guidelines:
-
-@itemize @bullet
-@cindex fatal signal
-@cindex crash
-@item
-If a binary utility gets a fatal signal, for any input whatever, that is
-a bug.  Reliable utilities never crash.
-
-@cindex error on valid input
-@item
-If a binary utility produces an error message for valid input, that is a
-bug.
-
-@item
-If you are an experienced user of binary utilities, your suggestions for
-improvement are welcome in any case.
-@end itemize
-
-@node Bug Reporting
-@section How to report bugs
-@cindex bug reports
-@cindex bugs, reporting
-
-A number of companies and individuals offer support for @sc{gnu}
-products.  If you obtained the binary utilities from a support
-organization, we recommend you contact that organization first.
-
-You can find contact information for many support companies and
-individuals in the file @file{etc/SERVICE} in the @sc{gnu} Emacs
-distribution.
-
-In any event, we also recommend that you send bug reports for the binary
-utilities to @samp{bug-binutils@@gnu.org}.
-
-The fundamental principle of reporting bugs usefully is this:
-@strong{report all the facts}.  If you are not sure whether to state a
-fact or leave it out, state it!
-
-Often people omit facts because they think they know what causes the
-problem and assume that some details do not matter.  Thus, you might
-assume that the name of a file you use in an example does not matter.
-Well, probably it does not, but one cannot be sure.  Perhaps the bug is
-a stray memory reference which happens to fetch from the location where
-that pathname is stored in memory; perhaps, if the pathname were
-different, the contents of that location would fool the utility into
-doing the right thing despite the bug.  Play it safe and give a
-specific, complete example.  That is the easiest thing for you to do,
-and the most helpful.
-
-Keep in mind that the purpose of a bug report is to enable us to fix the bug if
-it is new to us.  Therefore, always write your bug reports on the assumption
-that the bug has not been reported previously.
-
-Sometimes people give a few sketchy facts and ask, ``Does this ring a
-bell?''  Those bug reports are useless, and we urge everyone to
-@emph{refuse to respond to them} except to chide the sender to report
-bugs properly.
-
-To enable us to fix the bug, you should include all these things:
-
-@itemize @bullet
-@item
-The version of the utility.  Each utility announces it if you start it
-with the @samp{--version} argument.
-
-Without this, we will not know whether there is any point in looking for
-the bug in the current version of the binary utilities.
-
-@item
-Any patches you may have applied to the source, including any patches
-made to the @code{BFD} library.
-
-@item
-The type of machine you are using, and the operating system name and
-version number.
-
-@item
-What compiler (and its version) was used to compile the utilities---e.g.
-``@code{gcc-2.7}''.
-
-@item
-The command arguments you gave the utility to observe the bug.  To
-guarantee you will not omit something important, list them all.  A copy
-of the Makefile (or the output from make) is sufficient.
-
-If we were to try to guess the arguments, we would probably guess wrong
-and then we might not encounter the bug.
-
-@item
-A complete input file, or set of input files, that will reproduce the
-bug.  If the utility is reading an object file or files, then it is
-generally most helpful to send the actual object files, uuencoded if
-necessary to get them through the mail system.  Note that
-@samp{bug-binutils@@gnu.org} is a mailing list, so you should avoid
-sending very large files to it.  Making the files available for
-anonymous FTP is OK.
-
-If the source files were produced exclusively using @sc{gnu} programs
-(e.g., @code{gcc}, @code{gas}, and/or the @sc{gnu} @code{ld}), then it
-may be OK to send the source files rather than the object files.  In
-this case, be sure to say exactly what version of @code{gcc}, or
-whatever, was used to produce the object files.  Also say how
-@code{gcc}, or whatever, was configured.
-
-@item
-A description of what behavior you observe that you believe is
-incorrect.  For example, ``It gets a fatal signal.''
-
-Of course, if the bug is that the utility gets a fatal signal, then we
-will certainly notice it.  But if the bug is incorrect output, we might
-not notice unless it is glaringly wrong.  You might as well not give us
-a chance to make a mistake.
-
-Even if the problem you experience is a fatal signal, you should still
-say so explicitly.  Suppose something strange is going on, such as your
-copy of the utility is out of synch, or you have encountered a bug in
-the C library on your system.  (This has happened!)  Your copy might
-crash and ours would not.  If you told us to expect a crash, then when
-ours fails to crash, we would know that the bug was not happening for
-us.  If you had not told us to expect a crash, then we would not be able
-to draw any conclusion from our observations.
-
-@item
-If you wish to suggest changes to the source, send us context diffs, as
-generated by @code{diff} with the @samp{-u}, @samp{-c}, or @samp{-p}
-option.  Always send diffs from the old file to the new file.  If you
-wish to discuss something in the @code{ld} source, refer to it by
-context, not by line number.
-
-The line numbers in our development sources will not match those in your
-sources.  Your line numbers would convey no useful information to us.
-@end itemize
-
-Here are some things that are not necessary:
-
-@itemize @bullet
-@item
-A description of the envelope of the bug.
-
-Often people who encounter a bug spend a lot of time investigating
-which changes to the input file will make the bug go away and which
-changes will not affect it.
-
-This is often time consuming and not very useful, because the way we
-will find the bug is by running a single example under the debugger
-with breakpoints, not by pure deduction from a series of examples.
-We recommend that you save your time for something else.
-
-Of course, if you can find a simpler example to report @emph{instead}
-of the original one, that is a convenience for us.  Errors in the
-output will be easier to spot, running under the debugger will take
-less time, and so on.
-
-However, simplification is not vital; if you do not want to do this,
-report the bug anyway and send us the entire test case you used.
-
-@item
-A patch for the bug.
-
-A patch for the bug does help us if it is a good one.  But do not omit
-the necessary information, such as the test case, on the assumption that
-a patch is all we need.  We might see problems with your patch and decide
-to fix the problem another way, or we might not understand it at all.
-
-Sometimes with programs as complicated as the binary utilities it is
-very hard to construct an example that will make the program follow a
-certain path through the code.  If you do not send us the example, we
-will not be able to construct one, so we will not be able to verify that
-the bug is fixed.
-
-And if we cannot understand what bug you are trying to fix, or why your
-patch should be an improvement, we will not install it.  A test case will
-help us to understand.
-
-@item
-A guess about what the bug is or what it depends on.
-
-Such guesses are usually wrong.  Even we cannot guess right about such
-things without first using the debugger to find the facts.
-@end itemize
-
-@node GNU Free Documentation License
-@chapter GNU Free Documentation License
-@cindex GNU Free Documentation License
-
-                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:
-
-@smallexample
-    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".
-@end smallexample
-
-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.
-
-@node Index
-@unnumbered Index
-
-@printindex cp
-
-@contents
-@bye
index 2726d8cb2ff5fe07173948d79370e758ff316b1d..bb04e3ca716ead106b08bb5361a25bfb12ba147f 100755 (executable)
@@ -5605,7 +5605,7 @@ done
 ac_given_srcdir=$srcdir
 ac_given_INSTALL="$INSTALL"
 
 ac_given_srcdir=$srcdir
 ac_given_INSTALL="$INSTALL"
 
-trap 'rm -fr `echo "Makefile po/Makefile.in:po/Make-in config.h:config.in" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+trap 'rm -fr `echo "Makefile doc/Makefile po/Makefile.in:po/Make-in config.h:config.in" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
 EOF
 cat >> $CONFIG_STATUS <<EOF
 
 EOF
 cat >> $CONFIG_STATUS <<EOF
 
@@ -5756,7 +5756,7 @@ EOF
 
 cat >> $CONFIG_STATUS <<EOF
 
 
 cat >> $CONFIG_STATUS <<EOF
 
-CONFIG_FILES=\${CONFIG_FILES-"Makefile po/Makefile.in:po/Make-in"}
+CONFIG_FILES=\${CONFIG_FILES-"Makefile doc/Makefile po/Makefile.in:po/Make-in"}
 EOF
 cat >> $CONFIG_STATUS <<\EOF
 for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
 EOF
 cat >> $CONFIG_STATUS <<\EOF
 for ac_file in .. $CONFIG_FILES; do if test "x$ac_file" != x..; then
index e2fed827d22b60923e7ce19a6a2bde6de0e1a9a4..303a7da2a21aff25df81f5a9fba3554ab84c4842 100644 (file)
@@ -287,7 +287,7 @@ else
 fi
 AC_SUBST(UNDERSCORE)
 
 fi
 AC_SUBST(UNDERSCORE)
 
-AC_OUTPUT(Makefile po/Makefile.in:po/Make-in,
+AC_OUTPUT(Makefile doc/Makefile po/Makefile.in:po/Make-in,
 [
 case "x$CONFIG_FILES" in
 *) sed -e '/POTFILES =/r po/POTFILES' po/Makefile.in > po/Makefile ;;
 [
 case "x$CONFIG_FILES" in
 *) sed -e '/POTFILES =/r po/POTFILES' po/Makefile.in > po/Makefile ;;
diff --git a/binutils/cxxfilt.man b/binutils/cxxfilt.man
deleted file mode 100644 (file)
index 6cb20b1..0000000
+++ /dev/null
@@ -1,249 +0,0 @@
-.\" Automatically generated by Pod::Man version 1.02
-.\" Wed May 30 12:24:30 2001
-.\"
-.\" 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 Ip \" List item
-.br
-.ie \\n(.$>=3 .ne \\$3
-.el .ne 3
-.IP "\\$1" \\$2
-..
-.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.
-.bd B 3
-.    \" 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 "CXXFILT.MAN 1"
-.TH CXXFILT.MAN 1 "binutils-2.11.90" "2001-05-30" "GNU"
-.UC
-.SH "NAME"
-cxxfilt \- Demangle \*(C+ and Java symbols.
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-c++filt [ \-_ | \-\-strip-underscores ]
-        [ \-j | \-\-java ]
-       [ \-n | \-\-no-strip-underscores ]
-        [ \-s \fIformat\fR | \-\-format=\fIformat\fR ]
-        [ \-\-help ]  [ \-\-version ]  [ \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 \f(CW\*(C`c++filt\*(C'\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 \f(CW\*(C`c++filt\*(C'\fR to decipher individual symbols:
-.PP
-.Vb 1
-\&        c++filt I<symbol>
-.Ve
-If no \fIsymbol\fR arguments are given, \f(CW\*(C`c++filt\*(C'\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 "\f(CW\*(C`\-_\*(C'\fR" 4
-.IX Item "-_"
-.Ip "\f(CW\*(C`\-\-strip\-underscores\*(C'\fR" 4
-.IX Item "--strip-underscores"
-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
-\&\f(CW\*(C`c++filt\*(C'\fR removes the underscore by default is target dependent.
-.Ip "\f(CW\*(C`\-j\*(C'\fR" 4
-.IX Item "-j"
-.Ip "\f(CW\*(C`\-\-java\*(C'\fR" 4
-.IX Item "--java"
-Prints demangled names using Java syntax.  The default is to use \*(C+
-syntax.
-.Ip "\f(CW\*(C`\-n\*(C'\fR" 4
-.IX Item "-n"
-.Ip "\f(CW\*(C`\-\-no\-strip\-underscores\*(C'\fR" 4
-.IX Item "--no-strip-underscores"
-Do not remove the initial underscore.
-.Ip "\f(CW\*(C`\-s \f(CIformat\f(CW\*(C'\fR" 4
-.IX Item "-s format"
-.Ip "\f(CW\*(C`\-\-format=\f(CIformat\f(CW\*(C'\fR" 4
-.IX Item "--format=format"
-\&\s-1GNU\s0 \f(CW\*(C`nm\*(C'\fR can decode three different methods of mangling, used by
-different \*(C+ compilers.  The argument to this option selects which
-method it uses:
-.RS 4
-.Ip "\f(CW\*(C`gnu\*(C'\fR" 4
-.IX Item "gnu"
-the one used by the \s-1GNU\s0 compiler (the default method)
-.Ip "\f(CW\*(C`lucid\*(C'\fR" 4
-.IX Item "lucid"
-the one used by the Lucid compiler
-.Ip "\f(CW\*(C`arm\*(C'\fR" 4
-.IX Item "arm"
-the one specified by the \*(C+ Annotated Reference Manual
-.Ip "\f(CW\*(C`hp\*(C'\fR" 4
-.IX Item "hp"
-the one used by the \s-1HP\s0 compiler
-.Ip "\f(CW\*(C`edg\*(C'\fR" 4
-.IX Item "edg"
-the one used by the \s-1EDG\s0 compiler
-.Ip "\f(CW\*(C`gnu\-new\-abi\*(C'\fR" 4
-.IX Item "gnu-new-abi"
-the one used by the \s-1GNU\s0 compiler with the new \s-1ABI\s0.
-.RE
-.RS 4
-.RE
-.Ip "\f(CW\*(C`\-\-help\*(C'\fR" 4
-.IX Item "--help"
-Print a summary of the options to \f(CW\*(C`c++filt\*(C'\fR and exit.
-.Ip "\f(CW\*(C`\-\-version\*(C'\fR" 4
-.IX Item "--version"
-Print the version number of \f(CW\*(C`c++filt\*(C'\fR and exit.
-.SH "FOOTNOTES"
-.IX Header "FOOTNOTES"
-.Ip "1." 4
-\&\s-1MS-DOS\s0 does not allow \f(CW\*(C`+\*(C'\fR characters in file names, so on
-\&\s-1MS-DOS\s0 this program is named \f(CW\*(C`cxxfilt\*(C'\fR.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-the Info entries for \fIbinutils\fR.
-.SH "COPYRIGHT"
-.IX Header "COPYRIGHT"
-Copyright (c) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001 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 \*(L"\s-1GNU\s0 Free Documentation License\*(R".
diff --git a/binutils/dlltool.1 b/binutils/dlltool.1
deleted file mode 100644 (file)
index 01e1ac4..0000000
+++ /dev/null
@@ -1,402 +0,0 @@
-.\" Automatically generated by Pod::Man version 1.02
-.\" Wed May 30 12:24:27 2001
-.\"
-.\" 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 Ip \" List item
-.br
-.ie \\n(.$>=3 .ne \\$3
-.el .ne 3
-.IP "\\$1" \\$2
-..
-.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.
-.bd B 3
-.    \" 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 1"
-.TH DLLTOOL.1 1 "binutils-2.11.90" "2001-05-30" "GNU"
-.UC
-.SH "NAME"
-dlltool \- Create files needed to build and use DLLs.
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-dlltool [\-d|\-\-input-def \fIdef-file-name\fR]
-        [\-b|\-\-base-file \fIbase-file-name\fR]
-        [\-e|\-\-output-exp \fIexports-file-name\fR]
-        [\-z|\-\-output-def \fIdef-file-name\fR]
-        [\-l|\-\-output-lib \fIlibrary-file-name\fR]        
-        [\-\-export-all-symbols] [\-\-no-export-all-symbols]
-        [\-\-exclude-symbols \fIlist\fR]
-        [\-\-no-default-excludes]
-        [\-S|\-\-as \fIpath-to-assembler\fR] [\-f|\-\-as-flags \fIoptions\fR]
-        [\-D|\-\-dllname \fIname\fR] [\-m|\-\-machine \fImachine\fR]
-        [\-a|\-\-add-indirect] [\-U|\-\-add-underscore] [\-k|\-\-kill-at]
-        [\-A|\-\-add-stdcall-alias]
-        [\-x|\-\-no-idata4] [\-c|\-\-no-idata5] [\-i|\-\-interwork]
-        [\-n|\-\-nodelete] [\-v|\-\-verbose] [\-h|\-\-help] [\-V|\-\-version]
-        [object-file ...]
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-\&\f(CW\*(C`dlltool\*(C'\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 \-e, \-l
-and \-z 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.  \f(CW\*(C`dlltool\*(C'\fR can help with the creation of
-these files.
-.PP
-The first file is a \fB.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 \f(CW\*(C`dlltool\*(C'\fR can be used
-to create it using the \fB\-z\fR option.  In this case \f(CW\*(C`dlltool\*(C'\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 .def 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
-.Vb 1
-\&          int my_func (void) { ... }
-.Ve
-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
-\&\f(CW\*(C`dlltool\*(C'\fR when it is creating or reading in a .def 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 .def file.
-.PP
-\&\f(CW\*(C`dlltool\*(C'\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 "\f(CW\*(C`\-d \f(CIfilename\f(CW\*(C'\fR" 4
-.IX Item "-d filename"
-.Ip "\f(CW\*(C`\-\-input\-def \f(CIfilename\f(CW\*(C'\fR" 4
-.IX Item "--input-def filename"
-Specifies the name of a .def file to be read in and processed.
-.Ip "\f(CW\*(C`\-b \f(CIfilename\f(CW\*(C'\fR" 4
-.IX Item "-b filename"
-.Ip "\f(CW\*(C`\-\-base\-file \f(CIfilename\f(CW\*(C'\fR" 4
-.IX Item "--base-file filename"
-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 "\f(CW\*(C`\-e \f(CIfilename\f(CW\*(C'\fR" 4
-.IX Item "-e filename"
-.Ip "\f(CW\*(C`\-\-output\-exp \f(CIfilename\f(CW\*(C'\fR" 4
-.IX Item "--output-exp filename"
-Specifies the name of the export file to be created by dlltool.
-.Ip "\f(CW\*(C`\-z \f(CIfilename\f(CW\*(C'\fR" 4
-.IX Item "-z filename"
-.Ip "\f(CW\*(C`\-\-output\-def \f(CIfilename\f(CW\*(C'\fR" 4
-.IX Item "--output-def filename"
-Specifies the name of the .def file to be created by dlltool.
-.Ip "\f(CW\*(C`\-l \f(CIfilename\f(CW\*(C'\fR" 4
-.IX Item "-l filename"
-.Ip "\f(CW\*(C`\-\-output\-lib \f(CIfilename\f(CW\*(C'\fR" 4
-.IX Item "--output-lib filename"
-Specifies the name of the library file to be created by dlltool.
-.Ip "\f(CW\*(C`\-\-export\-all\-symbols\*(C'\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 \f(CW\*(C`\-\-no\-default\-excludes\*(C'\fR
-option.  You may add to the list of symbols to not export by using the
-\&\f(CW\*(C`\-\-exclude\-symbols\*(C'\fR option.
-.Ip "\f(CW\*(C`\-\-no\-export\-all\-symbols\*(C'\fR" 4
-.IX Item "--no-export-all-symbols"
-Only export symbols explicitly listed in an input .def 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 "\f(CW\*(C`\-\-exclude\-symbols \f(CIlist\f(CW\*(C'\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
-\&\f(CW\*(C`\-\-export\-all\-symbols\*(C'\fR is used.
-.Ip "\f(CW\*(C`\-\-no\-default\-excludes\*(C'\fR" 4
-.IX Item "--no-default-excludes"
-When \f(CW\*(C`\-\-export\-all\-symbols\*(C'\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 \f(CW\*(C`\-\-no\-default\-excludes\*(C'\fR option
-to go ahead and export these special symbols.  This is only meaningful
-when \f(CW\*(C`\-\-export\-all\-symbols\*(C'\fR is used.
-.Ip "\f(CW\*(C`\-S \f(CIpath\f(CW\*(C'\fR" 4
-.IX Item "-S path"
-.Ip "\f(CW\*(C`\-\-as \f(CIpath\f(CW\*(C'\fR" 4
-.IX Item "--as path"
-Specifies the path, including the filename, of the assembler to be used
-to create the exports file.
-.Ip "\f(CW\*(C`\-f \f(CIswitches\f(CW\*(C'\fR" 4
-.IX Item "-f switches"
-.Ip "\f(CW\*(C`\-\-as\-flags \f(CIswitches\f(CW\*(C'\fR" 4
-.IX Item "--as-flags switches"
-Specifies any specific command line switches 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 switches to the assembler they should be enclosed in
-double quotes.
-.Ip "\f(CW\*(C`\-D \f(CIname\f(CW\*(C'\fR" 4
-.IX Item "-D name"
-.Ip "\f(CW\*(C`\-\-dll\-name \f(CIname\f(CW\*(C'\fR" 4
-.IX Item "--dll-name name"
-Specifies the name to be stored in the .def 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 "\f(CW\*(C`\-m \f(CImachine\f(CW\*(C'\fR" 4
-.IX Item "-m machine"
-.Ip "\f(CW\*(C`\-machine \f(CImachine\f(CW\*(C'\fR" 4
-.IX Item "-machine machine"
-Specifies the type of machine for which the library file should be
-built.  \f(CW\*(C`dlltool\*(C'\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 \s-1THUMB\s0 instructions.
-.Ip "\f(CW\*(C`\-a\*(C'\fR" 4
-.IX Item "-a"
-.Ip "\f(CW\*(C`\-\-add\-indirect\*(C'\fR" 4
-.IX Item "--add-indirect"
-Specifies that when \f(CW\*(C`dlltool\*(C'\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 "\f(CW\*(C`\-U\*(C'\fR" 4
-.IX Item "-U"
-.Ip "\f(CW\*(C`\-\-add\-underscore\*(C'\fR" 4
-.IX Item "--add-underscore"
-Specifies that when \f(CW\*(C`dlltool\*(C'\fR is creating the exports file it
-should prepend an underscore to the names of the exported functions. 
-.Ip "\f(CW\*(C`\-k\*(C'\fR" 4
-.IX Item "-k"
-.Ip "\f(CW\*(C`\-\-kill\-at\*(C'\fR" 4
-.IX Item "--kill-at"
-Specifies that when \f(CW\*(C`dlltool\*(C'\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 "\f(CW\*(C`\-A\*(C'\fR" 4
-.IX Item "-A"
-.Ip "\f(CW\*(C`\-\-add\-stdcall\-alias\*(C'\fR" 4
-.IX Item "--add-stdcall-alias"
-Specifies that when \f(CW\*(C`dlltool\*(C'\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 "\f(CW\*(C`\-x\*(C'\fR" 4
-.IX Item "-x"
-.Ip "\f(CW\*(C`\-\-no\-idata4\*(C'\fR" 4
-.IX Item "--no-idata4"
-Specifies that when \f(CW\*(C`dlltool\*(C'\fR is creating the exports and library
-files it should omit the .idata4 section.  This is for compatibility
-with certain operating systems.
-.Ip "\f(CW\*(C`\-c\*(C'\fR" 4
-.IX Item "-c"
-.Ip "\f(CW\*(C`\-\-no\-idata5\*(C'\fR" 4
-.IX Item "--no-idata5"
-Specifies that when \f(CW\*(C`dlltool\*(C'\fR is creating the exports and library
-files it should omit the .idata5 section.  This is for compatibility
-with certain operating systems.
-.Ip "\f(CW\*(C`\-i\*(C'\fR" 4
-.IX Item "-i"
-.Ip "\f(CW\*(C`\-\-interwork\*(C'\fR" 4
-.IX Item "--interwork"
-Specifies that \f(CW\*(C`dlltool\*(C'\fR should mark the objects in the library
-file and exports file that it produces as supporting interworking
-between \s-1ARM\s0 and \s-1THUMB\s0 code.
-.Ip "\f(CW\*(C`\-n\*(C'\fR" 4
-.IX Item "-n"
-.Ip "\f(CW\*(C`\-\-nodelete\*(C'\fR" 4
-.IX Item "--nodelete"
-Makes \f(CW\*(C`dlltool\*(C'\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 "\f(CW\*(C`\-v\*(C'\fR" 4
-.IX Item "-v"
-.Ip "\f(CW\*(C`\-\-verbose\*(C'\fR" 4
-.IX Item "--verbose"
-Make dlltool describe what it is doing.
-.Ip "\f(CW\*(C`\-h\*(C'\fR" 4
-.IX Item "-h"
-.Ip "\f(CW\*(C`\-\-help\*(C'\fR" 4
-.IX Item "--help"
-Displays a list of command line options and then exits.
-.Ip "\f(CW\*(C`\-V\*(C'\fR" 4
-.IX Item "-V"
-.Ip "\f(CW\*(C`\-\-version\*(C'\fR" 4
-.IX Item "--version"
-Displays dlltool's version number and then exits.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-the Info entries for \fIbinutils\fR.
-.SH "COPYRIGHT"
-.IX Header "COPYRIGHT"
-Copyright (c) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001 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 \*(L"\s-1GNU\s0 Free Documentation License\*(R".
diff --git a/binutils/doc/Makefile.am b/binutils/doc/Makefile.am
new file mode 100644 (file)
index 0000000..aee1079
--- /dev/null
@@ -0,0 +1,166 @@
+## Process this file with automake to generate Makefile.in
+
+AUTOMAKE_OPTIONS = cygnus
+
+# What version of the manual you want; "all" includes everything
+CONFIG=all
+
+# Options to extract the man page from as.texinfo
+MANCONF = -Dman
+
+TEXI2POD = perl $(top_srcdir)/../etc/texi2pod.pl
+
+POD2MAN = pod2man --center="GNU" --release="binutils-$(VERSION)" --section=1
+
+# List of man pages generated from binutils.texi
+man_MANS = \
+       addr2line.1 \
+       ar.1 \
+       dlltool.1 \
+       nlmconv.1 \
+       nm.1 \
+       objcopy.1 \
+       objdump.1 \
+       ranlib.1 \
+       readelf.1 \
+       size.1 \
+       strings.1 \
+       strip.1 \
+       windres.1 \
+       $(DEMANGLER_NAME).1
+
+info_TEXINFOS = binutils.texi
+
+config.texi: Makefile
+       rm -f config.texi
+       echo '@set VERSION $(VERSION)' > config.texi
+
+binutils_TEXI = $(srcdir)/binutils.texi
+
+binutils.dvi:  $(binutils_TEXI) config.texi
+
+binutils.info: $(binutils_TEXI) config.texi
+
+# Man page generation from texinfo
+addr2line.1:   $(binutils_TEXI)
+       touch $@
+       -$(TEXI2POD) $(MANCONF) -Daddr2line < $< > $@.pod
+       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
+               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
+       rm -f $@.pod
+
+ar.1:  $(binutils_TEXI)
+       touch $@
+       -$(TEXI2POD) $(MANCONF) -Dar < $< > $@.pod
+       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
+               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
+       rm -f $@.pod
+
+dlltool.1:     $(binutils_TEXI)
+       touch $@
+       -$(TEXI2POD) $(MANCONF) -Ddlltool < $< > $@.pod
+       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
+               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
+       rm -f $@.pod
+
+nlmconv.1:     $(binutils_TEXI)
+       touch $@
+       -$(TEXI2POD) $(MANCONF) -Dnlmconv < $< > $@.pod
+       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
+               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
+       rm -f $@.pod
+
+nm.1:  $(binutils_TEXI)
+       touch $@
+       -$(TEXI2POD) $(MANCONF) -Dnm < $< > $@.pod
+       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
+               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
+       rm -f $@.pod
+
+objcopy.1:     $(binutils_TEXI)
+       touch $@
+       -$(TEXI2POD) $(MANCONF) -Dobjcopy < $< > $@.pod
+       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
+               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
+       rm -f $@.pod
+
+objdump.1:     $(binutils_TEXI)
+       touch $@
+       -$(TEXI2POD) $(MANCONF) -Dobjdump < $< > $@.pod
+       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
+               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
+       rm -f $@.pod
+
+ranlib.1:      $(binutils_TEXI)
+       touch $@
+       -$(TEXI2POD) $(MANCONF) -Dranlib < $< > $@.pod
+       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
+               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
+       rm -f $@.pod
+
+readelf.1:     $(binutils_TEXI)
+       touch $@
+       -$(TEXI2POD) $(MANCONF) -Dreadelf < $< > $@.pod
+       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
+               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
+       rm -f $@.pod
+
+size.1:        $(binutils_TEXI)
+       touch $@
+       -$(TEXI2POD) $(MANCONF) -Dsize < $< > $@.pod
+       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
+               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
+       rm -f $@.pod
+
+strings.1:     $(binutils_TEXI)
+       touch $@
+       -$(TEXI2POD) $(MANCONF) -Dstrings < $< > $@.pod
+       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
+               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
+       rm -f $@.pod
+
+strip.1:       $(binutils_TEXI)
+       touch $@
+       -$(TEXI2POD) $(MANCONF) -Dstrip < $< > $@.pod
+       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
+               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
+       rm -f $@.pod
+
+windres.1:     $(binutils_TEXI)
+       touch $@
+       -$(TEXI2POD) $(MANCONF) -Dwindres < $< > $@.pod
+       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
+               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
+       rm -f $@.pod
+
+cxxfilt.man:   $(binutils_TEXI)
+       touch $@
+       -$(TEXI2POD) $(MANCONF) -Dcxxfilt < $< > $@.pod
+       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
+               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
+       rm -f $@.pod
+
+MAINTAINERCLEANFILES = config.texi
+DISTCLEANFILES       = config.texi
+MOSTLYCLEANFILES     = $(DEMANGLER_NAME).1
+
+$(DEMANGLER_NAME).1: cxxfilt.man Makefile
+       sed -e 's/@PROGRAM@/$(DEMANGLER_NAME)/' < cxxfilt.man \
+               > $(DEMANGLER_NAME).1
+
+# Maintenance
+
+# We need it for the taz target in ../../Makefile.in.
+info: $(MANS)
+
+# Build the man page from the texinfo file
+# The sed command removes the no-adjust Nroff command so that
+# the man output looks standard.
+as.1: $(srcdir)/as.texinfo
+       touch $@
+       -$(TEXI2POD) $(MANCONF) < $(srcdir)/as.texinfo > as.pod
+       -($(POD2MAN) as.pod | \
+               sed -e '/^.if n .na/d' > $@.T$$$$ && \
+               mv -f $@.T$$$$ $@) || \
+               (rm -f $@.T$$$$ && exit 1)
+       rm -f as.pod
diff --git a/binutils/doc/Makefile.in b/binutils/doc/Makefile.in
new file mode 100644 (file)
index 0000000..1029427
--- /dev/null
@@ -0,0 +1,544 @@
+# Makefile.in generated automatically by automake 1.4 from Makefile.am
+
+# Copyright (C) 1994, 1995-8, 1999 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.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+
+SHELL = @SHELL@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+
+bindir = @bindir@
+sbindir = @sbindir@
+libexecdir = @libexecdir@
+datadir = @datadir@
+sysconfdir = @sysconfdir@
+sharedstatedir = @sharedstatedir@
+localstatedir = @localstatedir@
+libdir = @libdir@
+infodir = @infodir@
+mandir = @mandir@
+includedir = @includedir@
+oldincludedir = /usr/include
+
+DESTDIR =
+
+pkgdatadir = $(datadir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+
+top_builddir = ..
+
+ACLOCAL = @ACLOCAL@
+AUTOCONF = @AUTOCONF@
+AUTOMAKE = @AUTOMAKE@
+AUTOHEADER = @AUTOHEADER@
+
+INSTALL = @INSTALL@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@ $(AM_INSTALL_PROGRAM_FLAGS)
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+transform = @program_transform_name@
+
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_alias = @build_alias@
+build_triplet = @build@
+host_alias = @host_alias@
+host_triplet = @host@
+target_alias = @target_alias@
+target_triplet = @target@
+CC = @CC@
+EXEEXT = @EXEEXT@
+LIBTOOL = @LIBTOOL@
+RANLIB = @RANLIB@
+
+AUTOMAKE_OPTIONS = cygnus
+
+# What version of the manual you want; "all" includes everything
+CONFIG = all
+
+# Options to extract the man page from as.texinfo
+MANCONF = -Dman
+
+TEXI2POD = perl $(top_srcdir)/../etc/texi2pod.pl
+
+POD2MAN = pod2man --center="GNU" --release="binutils-$(VERSION)" --section=1
+
+# List of man pages generated from binutils.texi
+man_MANS = \
+       addr2line.1 \
+       ar.1 \
+       dlltool.1 \
+       nlmconv.1 \
+       nm.1 \
+       objcopy.1 \
+       objdump.1 \
+       ranlib.1 \
+       readelf.1 \
+       size.1 \
+       strings.1 \
+       strip.1 \
+       windres.1 \
+       $(DEMANGLER_NAME).1
+
+
+info_TEXINFOS = binutils.texi
+
+BINUTILS_TEXI = $(srcdir)/binutils.texi
+
+MAINTAINERCLEANFILES = config.texi
+DISTCLEANFILES = config.texi
+MOSTLYCLEANFILES = $(DEMANGLER_NAME).1
+mkinstalldirs = $(SHELL) $(top_srcdir)/../mkinstalldirs
+CONFIG_CLEAN_FILES = 
+MAKEINFO = `if test -f $(top_builddir)/../texinfo/makeinfo/makeinfo; then echo $(top_builddir)/../texinfo/makeinfo/makeinfo; else echo makeinfo; fi`
+TEXI2DVI = `if test -f $(top_srcdir)/../texinfo/util/texi2dvi; then echo $(top_srcdir)/../texinfo/util/texi2dvi; else echo texi2dvi; fi`
+TEXINFO_TEX = $(top_srcdir)/../texinfo/texinfo.tex
+INFO_DEPS = binutils.info
+DVIS = binutils.dvi
+TEXINFOS = binutils.texi
+man1dir = $(mandir)/man1
+MANS = $(man_MANS)
+
+NROFF = nroff
+DIST_COMMON =  Makefile.am Makefile.in
+
+
+DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
+
+TAR = gtar
+GZIP_ENV = --best
+all: all-redirect
+.SUFFIXES:
+.SUFFIXES: .dvi .info .ps .texi .texinfo .txi
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+       cd $(top_srcdir) && $(AUTOMAKE) --cygnus doc/Makefile
+
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
+       cd $(top_builddir) \
+         && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status
+
+
+binutils.info: binutils.texi
+binutils.dvi: binutils.texi
+
+
+DVIPS = dvips
+
+.texi.info:
+       @rm -f $@ $@-[0-9] $@-[0-9][0-9]
+       $(MAKEINFO) -I $(srcdir) $<
+
+.texi.dvi:
+       TEXINPUTS=$(top_srcdir)/../texinfo/texinfo.tex:$$TEXINPUTS \
+         MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
+
+.texi:
+       @rm -f $@ $@-[0-9] $@-[0-9][0-9]
+       $(MAKEINFO) -I $(srcdir) $<
+
+.texinfo.info:
+       @rm -f $@ $@-[0-9] $@-[0-9][0-9]
+       $(MAKEINFO) -I $(srcdir) $<
+
+.texinfo:
+       @rm -f $@ $@-[0-9] $@-[0-9][0-9]
+       $(MAKEINFO) -I $(srcdir) $<
+
+.texinfo.dvi:
+       TEXINPUTS=$(top_srcdir)/../texinfo/texinfo.tex:$$TEXINPUTS \
+         MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
+
+.txi.info:
+       @rm -f $@ $@-[0-9] $@-[0-9][0-9]
+       $(MAKEINFO) -I $(srcdir) $<
+
+.txi.dvi:
+       TEXINPUTS=$(top_srcdir)/../texinfo/texinfo.tex:$$TEXINPUTS \
+         MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
+
+.txi:
+       @rm -f $@ $@-[0-9] $@-[0-9][0-9]
+       $(MAKEINFO) -I $(srcdir) $<
+.dvi.ps:
+       $(DVIPS) $< -o $@
+
+install-info-am: $(INFO_DEPS)
+       @$(NORMAL_INSTALL)
+       $(mkinstalldirs) $(DESTDIR)$(infodir)
+       @list='$(INFO_DEPS)'; \
+       for file in $$list; do \
+         if test -f $$file; then d=.; else d=$(srcdir); fi; \
+         for ifile in `cd $$d && echo $$file $$file-[0-9] $$file-[0-9][0-9]`; do \
+           if test -f $$d/$$ifile; then \
+             echo " $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile"; \
+             $(INSTALL_DATA) $$d/$$ifile $(DESTDIR)$(infodir)/$$ifile; \
+           else : ; fi; \
+         done; \
+       done
+       @$(POST_INSTALL)
+       @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
+         list='$(INFO_DEPS)'; \
+         for file in $$list; do \
+           echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file";\
+           install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file || :;\
+         done; \
+       else : ; fi
+
+uninstall-info:
+       $(PRE_UNINSTALL)
+       @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
+         ii=yes; \
+       else ii=; fi; \
+       list='$(INFO_DEPS)'; \
+       for file in $$list; do \
+         test -z "$ii" \
+           || install-info --info-dir=$(DESTDIR)$(infodir) --remove $$file; \
+       done
+       @$(NORMAL_UNINSTALL)
+       list='$(INFO_DEPS)'; \
+       for file in $$list; do \
+         (cd $(DESTDIR)$(infodir) && rm -f $$file $$file-[0-9] $$file-[0-9][0-9]); \
+       done
+
+dist-info: $(INFO_DEPS)
+       list='$(INFO_DEPS)'; \
+       for base in $$list; do \
+         if test -f $$base; then d=.; else d=$(srcdir); fi; \
+         for file in `cd $$d && eval echo $$base*`; do \
+           test -f $(distdir)/$$file \
+           || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+           || cp -p $$d/$$file $(distdir)/$$file; \
+         done; \
+       done
+
+mostlyclean-aminfo:
+       -rm -f binutils.aux binutils.cp binutils.cps binutils.dvi binutils.fn \
+         binutils.fns binutils.ky binutils.kys binutils.ps \
+         binutils.log binutils.pg binutils.toc binutils.tp \
+         binutils.tps binutils.vr binutils.vrs binutils.op binutils.tr \
+         binutils.cv binutils.cn
+
+clean-aminfo:
+
+distclean-aminfo:
+
+maintainer-clean-aminfo:
+       for i in $(INFO_DEPS); do \
+         rm -f $$i; \
+         if test "`echo $$i-[0-9]*`" != "$$i-[0-9]*"; then \
+           rm -f $$i-[0-9]*; \
+         fi; \
+       done
+clean-info: mostlyclean-aminfo
+
+install-man1:
+       $(mkinstalldirs) $(DESTDIR)$(man1dir)
+       @list='$(man1_MANS)'; \
+       l2='$(man_MANS)'; for i in $$l2; do \
+         case "$$i" in \
+           *.1*) list="$$list $$i" ;; \
+         esac; \
+       done; \
+       for i in $$list; do \
+         if test -f $(srcdir)/$$i; then file=$(srcdir)/$$i; \
+         else file=$$i; fi; \
+         ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+         inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+         inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+         echo " $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst"; \
+         $(INSTALL_DATA) $$file $(DESTDIR)$(man1dir)/$$inst; \
+       done
+
+uninstall-man1:
+       @list='$(man1_MANS)'; \
+       l2='$(man_MANS)'; for i in $$l2; do \
+         case "$$i" in \
+           *.1*) list="$$list $$i" ;; \
+         esac; \
+       done; \
+       for i in $$list; do \
+         ext=`echo $$i | sed -e 's/^.*\\.//'`; \
+         inst=`echo $$i | sed -e 's/\\.[0-9a-z]*$$//'`; \
+         inst=`echo $$inst | sed '$(transform)'`.$$ext; \
+         echo " rm -f $(DESTDIR)$(man1dir)/$$inst"; \
+         rm -f $(DESTDIR)$(man1dir)/$$inst; \
+       done
+install-man: $(MANS)
+       @$(NORMAL_INSTALL)
+       $(MAKE) $(AM_MAKEFLAGS) install-man1
+uninstall-man:
+       @$(NORMAL_UNINSTALL)
+       $(MAKE) $(AM_MAKEFLAGS) uninstall-man1
+tags: TAGS
+TAGS:
+
+
+distdir = $(top_builddir)/$(PACKAGE)-$(VERSION)/$(subdir)
+
+subdir = doc
+
+# This target untars the dist file and tries a VPATH configuration.  Then
+# it guarantees that the distribution is self-contained by making another
+# tarfile.
+distcheck: dist
+       -rm -rf $(distdir)
+       GZIP=$(GZIP_ENV) $(TAR) zxf $(distdir).tar.gz
+       mkdir $(distdir)/=build
+       mkdir $(distdir)/=inst
+       dc_install_base=`cd $(distdir)/=inst && pwd`; \
+       cd $(distdir)/=build \
+         && ../configure --srcdir=.. --prefix=$$dc_install_base \
+         && $(MAKE) $(AM_MAKEFLAGS) \
+         && $(MAKE) $(AM_MAKEFLAGS) dvi \
+         && $(MAKE) $(AM_MAKEFLAGS) check \
+         && $(MAKE) $(AM_MAKEFLAGS) install \
+         && $(MAKE) $(AM_MAKEFLAGS) installcheck \
+         && $(MAKE) $(AM_MAKEFLAGS) dist
+       -rm -rf $(distdir)
+       @banner="$(distdir).tar.gz is ready for distribution"; \
+       dashes=`echo "$$banner" | sed s/./=/g`; \
+       echo "$$dashes"; \
+       echo "$$banner"; \
+       echo "$$dashes"
+dist: distdir
+       -chmod -R a+r $(distdir)
+       GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
+       -rm -rf $(distdir)
+dist-all: distdir
+       -chmod -R a+r $(distdir)
+       GZIP=$(GZIP_ENV) $(TAR) chozf $(distdir).tar.gz $(distdir)
+       -rm -rf $(distdir)
+distdir: $(DISTFILES)
+       -rm -rf $(distdir)
+       mkdir $(distdir)
+       -chmod 777 $(distdir)
+       @for file in $(DISTFILES); do \
+         if test -f $$file; then d=.; else d=$(srcdir); fi; \
+         if test -d $$d/$$file; then \
+           cp -pr $$d/$$file $(distdir)/$$file; \
+         else \
+           test -f $(distdir)/$$file \
+           || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
+           || cp -p $$d/$$file $(distdir)/$$file || :; \
+         fi; \
+       done
+       $(MAKE) $(AM_MAKEFLAGS) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-info
+info-am: $(INFO_DEPS)
+info: info-am
+dvi-am: $(DVIS)
+dvi: dvi-am
+check-am:
+check: check-am
+installcheck-am:
+installcheck: installcheck-am
+install-info-am: 
+install-info: install-info-am
+install-exec-am:
+install-exec: install-exec-am
+
+install-data-am: install-man
+install-data: install-data-am
+
+install-am: all-am
+       @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+install: install-am
+uninstall-am: uninstall-man
+uninstall: uninstall-am
+all-am: Makefile $(MANS)
+all-redirect: all-am
+install-strip:
+       $(MAKE) $(AM_MAKEFLAGS) AM_INSTALL_PROGRAM_FLAGS=-s install
+installdirs:
+       $(mkinstalldirs)  $(DESTDIR)$(mandir)/man1
+
+
+mostlyclean-generic:
+       -test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
+
+clean-generic:
+
+distclean-generic:
+       -rm -f Makefile $(CONFIG_CLEAN_FILES)
+       -rm -f config.cache config.log stamp-h stamp-h[0-9]*
+       -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
+
+maintainer-clean-generic:
+       -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
+mostlyclean-am:  mostlyclean-aminfo mostlyclean-generic
+
+mostlyclean: mostlyclean-am
+
+clean-am:  clean-aminfo clean-generic mostlyclean-am
+
+clean: clean-am
+
+distclean-am:  distclean-aminfo distclean-generic clean-am
+       -rm -f libtool
+
+distclean: distclean-am
+
+maintainer-clean-am:  maintainer-clean-aminfo maintainer-clean-generic \
+               distclean-am
+       @echo "This command is intended for maintainers to use;"
+       @echo "it deletes files that may require special tools to rebuild."
+
+maintainer-clean: maintainer-clean-am
+
+.PHONY: install-info-am uninstall-info mostlyclean-aminfo \
+distclean-aminfo clean-aminfo maintainer-clean-aminfo install-man1 \
+uninstall-man1 install-man uninstall-man tags distdir info-am info \
+dvi-am dvi check check-am installcheck-am installcheck install-info-am \
+install-info install-exec-am install-exec install-data-am install-data \
+install-am install uninstall-am uninstall all-redirect all-am all \
+installdirs mostlyclean-generic distclean-generic clean-generic \
+maintainer-clean-generic clean mostlyclean distclean maintainer-clean
+
+
+config.texi: Makefile
+       rm -f config.texi
+       echo '@set VERSION $(VERSION)' > config.texi
+
+binutils.dvi: $(BINUTILS_TEXI) config.texi
+
+binutils.info: $(BINUTILS_TEXI) config.texi
+
+# Man page generation from texinfo
+addr2line.1:   $(BINUTILS_TEXI)
+       touch $@
+       -$(TEXI2POD) $(MANCONF) -Daddr2line < $< > $@.pod
+       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
+               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
+       rm -f $@.pod
+
+ar.1:  $(BINUTILS_TEXI)
+       touch $@
+       -$(TEXI2POD) $(MANCONF) -Dar < $< > $@.pod
+       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
+               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
+       rm -f $@.pod
+
+dlltool.1:     $(BINUTILS_TEXI)
+       touch $@
+       -$(TEXI2POD) $(MANCONF) -Ddlltool < $< > $@.pod
+       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
+               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
+       rm -f $@.pod
+
+nlmconv.1:     $(BINUTILS_TEXI)
+       touch $@
+       -$(TEXI2POD) $(MANCONF) -Dnlmconv < $< > $@.pod
+       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
+               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
+       rm -f $@.pod
+
+nm.1:  $(BINUTILS_TEXI)
+       touch $@
+       -$(TEXI2POD) $(MANCONF) -Dnm < $< > $@.pod
+       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
+               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
+       rm -f $@.pod
+
+objcopy.1:     $(BINUTILS_TEXI)
+       touch $@
+       -$(TEXI2POD) $(MANCONF) -Dobjcopy < $< > $@.pod
+       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
+               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
+       rm -f $@.pod
+
+objdump.1:     $(BINUTILS_TEXI)
+       touch $@
+       -$(TEXI2POD) $(MANCONF) -Dobjdump < $< > $@.pod
+       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
+               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
+       rm -f $@.pod
+
+ranlib.1:      $(BINUTILS_TEXI)
+       touch $@
+       -$(TEXI2POD) $(MANCONF) -Dranlib < $< > $@.pod
+       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
+               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
+       rm -f $@.pod
+
+readelf.1:     $(BINUTILS_TEXI)
+       touch $@
+       -$(TEXI2POD) $(MANCONF) -Dreadelf < $< > $@.pod
+       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
+               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
+       rm -f $@.pod
+
+size.1:        $(BINUTILS_TEXI)
+       touch $@
+       -$(TEXI2POD) $(MANCONF) -Dsize < $< > $@.pod
+       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
+               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
+       rm -f $@.pod
+
+strings.1:     $(BINUTILS_TEXI)
+       touch $@
+       -$(TEXI2POD) $(MANCONF) -Dstrings < $< > $@.pod
+       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
+               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
+       rm -f $@.pod
+
+strip.1:       $(BINUTILS_TEXI)
+       touch $@
+       -$(TEXI2POD) $(MANCONF) -Dstrip < $< > $@.pod
+       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
+               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
+       rm -f $@.pod
+
+windres.1:     $(BINUTILS_TEXI)
+       touch $@
+       -$(TEXI2POD) $(MANCONF) -Dwindres < $< > $@.pod
+       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
+               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
+       rm -f $@.pod
+
+cxxfilt.man:   $(BINUTILS_TEXI)
+       touch $@
+       -$(TEXI2POD) $(MANCONF) -Dcxxfilt < $< > $@.pod
+       -($(POD2MAN) $@.pod | sed -e '/^.if n .na/d' > $@.T$$$$ && \
+               mv -f $@.T$$$$ $@) || (rm -f $@.T$$$$ && exit 1)
+       rm -f $@.pod
+
+$(DEMANGLER_NAME).1: cxxfilt.man Makefile
+       sed -e 's/@PROGRAM@/$(DEMANGLER_NAME)/' < cxxfilt.man \
+               > $(DEMANGLER_NAME).1
+
+# Maintenance
+
+# We need it for the taz target in ../../Makefile.in.
+info: $(MANS)
+
+# Build the man page from the texinfo file
+# The sed command removes the no-adjust Nroff command so that
+# the man output looks standard.
+as.1: $(srcdir)/as.texinfo
+       touch $@
+       -$(TEXI2POD) $(MANCONF) < $(srcdir)/as.texinfo > as.pod
+       -($(POD2MAN) as.pod | \
+               sed -e '/^.if n .na/d' > $@.T$$$$ && \
+               mv -f $@.T$$$$ $@) || \
+               (rm -f $@.T$$$$ && exit 1)
+       rm -f as.pod
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/binutils/doc/binutils.texi b/binutils/doc/binutils.texi
new file mode 100644 (file)
index 0000000..0011b11
--- /dev/null
@@ -0,0 +1,3749 @@
+\input texinfo       @c                    -*- Texinfo -*-
+@setfilename binutils.info
+@c Copyright 2001 Free Software Foundation, Inc.
+
+@include config.texi
+
+@ifinfo
+@format
+START-INFO-DIR-ENTRY
+* Binutils: (binutils).         The GNU binary utilities.
+* ar: (binutils)ar.               Create, modify, and extract from archives
+* nm: (binutils)nm.               List symbols from object files
+* objcopy: (binutils)objcopy.    Copy and translate object files
+* objdump: (binutils)objdump.     Display information from object files
+* ranlib: (binutils)ranlib.       Generate index to archive contents
+* readelf: (binutils)readelf.    Display the contents of ELF format files.
+* size: (binutils)size.           List section sizes and total size
+* strings: (binutils)strings.     List printable strings from files
+* strip: (binutils)strip.         Discard symbols
+* c++filt: (binutils)c++filt.    Filter to demangle encoded C++ symbols
+* cxxfilt: (binutils)c++filt.     MS-DOS name for c++filt
+* addr2line: (binutils)addr2line. Convert addresses to file and line
+* nlmconv: (binutils)nlmconv.     Converts object code into an NLM
+* windres: (binutils)windres.    Manipulate Windows resources
+* dlltool: (binutils)dlltool.    Create files needed to build and use DLLs
+END-INFO-DIR-ENTRY
+@end format
+@end ifinfo
+
+@ifinfo
+@c man begin COPYRIGHT
+Copyright @copyright{} 1991, 92, 93, 94, 95, 96, 97, 98, 99, 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".
+
+@c man end
+@ignore
+Permission is granted to process this file through TeX and print the
+results, provided the printed document carries a copying permission
+notice identical to this one except for the removal of this paragraph
+(this paragraph not being relevant to the printed manual).
+
+@end ignore
+@end ifinfo
+
+@synindex ky cp
+@c
+@c This file documents the GNU binary utilities "ar", "ld", "objcopy",
+@c  "objdump", "nm", "size", "strings", "strip", "readelf" and "ranlib".
+@c
+@c Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001 Free Software Foundation, Inc.
+@c 
+@c This text may be freely distributed under the terms of the GNU
+@c Free Documentation License.
+@c
+
+@setchapternewpage odd
+@settitle @sc{gnu} Binary Utilities
+@titlepage
+@finalout
+@title The @sc{gnu} Binary Utilities
+@subtitle Version @value{VERSION}
+@sp 1
+@subtitle May 1993
+@author Roland H. Pesch
+@author Jeffrey M. Osier
+@author Cygnus Support
+@page
+
+@tex
+{\parskip=0pt \hfill Cygnus Support\par \hfill
+\TeX{}info \texinfoversion\par }
+@end tex
+
+@vskip 0pt plus 1filll
+Copyright @copyright{} 1991, 92, 93, 94, 95, 96, 97, 1998, 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".
+
+@end titlepage
+
+@node Top
+@top Introduction
+
+@cindex version
+This brief manual contains preliminary documentation for the @sc{gnu} binary
+utilities (collectively version @value{VERSION}): 
+
+@iftex
+@table @code
+@item ar
+Create, modify, and extract from archives
+
+@item nm
+List symbols from object files
+
+@item objcopy
+Copy and translate object files
+
+@item objdump
+Display information from object files
+
+@item ranlib
+Generate index to archive contents
+
+@item readelf
+Display the contents of ELF format files.
+
+@item size
+List file section sizes and total size
+
+@item strings
+List printable strings from files
+
+@item strip
+Discard symbols
+
+@item c++filt
+Demangle encoded C++ symbols (on MS-DOS, this program is named
+@code{cxxfilt})
+
+@item addr2line
+Convert addresses into file names and line numbers
+
+@item nlmconv
+Convert object code into a Netware Loadable Module
+
+@item windres
+Manipulate Windows resources
+
+@item dlltool
+Create the files needed to build and use Dynamic Link Libraries
+@end table
+@end iftex
+
+This document is distributed under the terms of the GNU Free
+Documentation License.  A copy of the license is included in the
+section entitled "GNU Free Documentation License".
+
+@menu
+* ar::                          Create, modify, and extract from archives
+* nm::                          List symbols from object files
+* objcopy::                    Copy and translate object files
+* objdump::                     Display information from object files
+* ranlib::                      Generate index to archive contents
+* readelf::                    Display the contents of ELF format files.
+* size::                        List section sizes and total size
+* strings::                     List printable strings from files
+* strip::                       Discard symbols
+* c++filt::                    Filter to demangle encoded C++ symbols
+* cxxfilt: c++filt.             MS-DOS name for c++filt
+* addr2line::                  Convert addresses to file and line
+* nlmconv::                     Converts object code into an NLM
+* windres::                    Manipulate Windows resources
+* dlltool::                    Create files needed to build and use DLLs
+* Selecting The Target System:: How these utilities determine the target.
+* Reporting Bugs::              Reporting Bugs
+* GNU Free Documentation License::  GNU Free Documentation License
+* Index::                       Index
+@end menu
+
+@node ar
+@chapter ar
+
+@kindex ar
+@cindex archives
+@cindex collections of files
+
+@c man title ar create, modify, and extract from archives
+
+@smallexample
+ar [-]@var{p}[@var{mod} [@var{relpos}] [@var{count}]] @var{archive} [@var{member}@dots{}]
+ar -M [ <mri-script ]
+@end smallexample
+
+@c man begin DESCRIPTION ar
+
+The @sc{gnu} @code{ar} program creates, modifies, and extracts from
+archives.  An @dfn{archive} is a single file holding a collection of
+other files in a structure that makes it possible to retrieve
+the original individual files (called @dfn{members} of the archive).
+
+The original files' contents, mode (permissions), timestamp, owner, and
+group are preserved in the archive, and can be restored on
+extraction.  
+
+@cindex name length
+@sc{gnu} @code{ar} can maintain archives whose members have names of any
+length; however, depending on how @code{ar} 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).
+
+@cindex libraries
+@code{ar} is considered a binary utility because archives of this sort
+are most often used as @dfn{libraries} holding commonly needed
+subroutines.
+
+@cindex symbol index
+@code{ar} creates an index to the symbols defined in relocatable
+object modules in the archive when you specify the modifier @samp{s}.
+Once created, this index is updated in the archive whenever @code{ar}
+makes a change to its contents (save for the @samp{q} 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.
+
+You may use @samp{nm -s} or @samp{nm --print-armap} to list this index
+table.  If an archive lacks the table, another form of @code{ar} called
+@code{ranlib} can be used to add just the table.
+
+@cindex compatibility, @code{ar}
+@cindex @code{ar} compatibility
+@sc{gnu} @code{ar} is designed to be compatible with two different
+facilities.  You can control its activity using command-line options,
+like the different varieties of @code{ar} on Unix systems; or, if you
+specify the single command-line option @samp{-M}, you can control it
+with a script supplied via standard input, like the MRI ``librarian''
+program.
+
+@c man end
+
+@menu
+* ar cmdline::                  Controlling @code{ar} on the command line
+* ar scripts::                  Controlling @code{ar} with a script
+@end menu
+
+@page
+@node ar cmdline
+@section Controlling @code{ar} on the command line
+
+@smallexample
+@c man begin SYNOPSIS ar
+ar [-X32_64] [-]@var{p}[@var{mod} [@var{relpos}] [@var{count}]] @var{archive} [@var{member}@dots{}]
+@c man end
+@end smallexample
+
+@cindex Unix compatibility, @code{ar}
+When you use @code{ar} in the Unix style, @code{ar} insists on at least two
+arguments to execute: one keyletter specifying the @emph{operation}
+(optionally accompanied by other keyletters specifying
+@emph{modifiers}), and the archive name to act on.
+
+Most operations can also accept further @var{member} arguments,
+specifying particular files to operate on.
+
+@c man begin OPTIONS ar
+
+@sc{gnu} @code{ar} allows you to mix the operation code @var{p} and modifier
+flags @var{mod} in any order, within the first command-line argument.
+
+If you wish, you may begin the first command-line argument with a
+dash.
+
+@cindex operations on archive
+The @var{p} keyletter specifies what operation to execute; it may be
+any of the following, but you must specify only one of them:
+
+@table @code
+@item d
+@cindex deleting from archive
+@emph{Delete} modules from the archive.  Specify the names of modules to
+be deleted as @var{member}@dots{}; the archive is untouched if you
+specify no files to delete.
+
+If you specify the @samp{v} modifier, @code{ar} lists each module
+as it is deleted.
+
+@item m
+@cindex moving in archive
+Use this operation to @emph{move} members in an archive.
+
+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.  
+
+If no modifiers are used with @code{m}, any members you name in the
+@var{member} arguments are moved to the @emph{end} of the archive;
+you can use the @samp{a}, @samp{b}, or @samp{i} modifiers to move them to a
+specified place instead.
+
+@item p
+@cindex printing from archive
+@emph{Print} the specified members of the archive, to the standard
+output file.  If the @samp{v} modifier is specified, show the member
+name before copying its contents to standard output.
+
+If you specify no @var{member} arguments, all the files in the archive are
+printed.
+
+@item q
+@cindex quick append to archive
+@emph{Quick append}; Historically, add the files @var{member}@dots{} to the end of
+@var{archive}, without checking for replacement.
+
+The modifiers @samp{a}, @samp{b}, and @samp{i} do @emph{not} affect this
+operation; new members are always placed at the end of the archive.
+
+The modifier @samp{v} makes @code{ar} list each file as it is appended.
+
+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 @samp{ar s} or
+@code{ranlib} explicitly to update the symbol table index.
+
+However, too many different systems assume quick append rebuilds the
+index, so GNU ar implements @code{q} as a synonym for @code{r}.
+
+@item r
+@cindex replacement in archive
+Insert the files @var{member}@dots{} into @var{archive} (with
+@emph{replacement}). This operation differs from @samp{q} in that any
+previously existing members are deleted if their names match those being
+added.
+
+If one of the files named in @var{member}@dots{} does not exist, @code{ar}
+displays an error message, and leaves undisturbed any existing members
+of the archive matching that name.
+
+By default, new members are added at the end of the file; but you may
+use one of the modifiers @samp{a}, @samp{b}, or @samp{i} to request
+placement relative to some existing member.
+
+The modifier @samp{v} used with this operation elicits a line of
+output for each file inserted, along with one of the letters @samp{a} or
+@samp{r} to indicate whether the file was appended (no old member
+deleted) or replaced.
+
+@item t
+@cindex contents of archive
+Display a @emph{table} listing the contents of @var{archive}, or those
+of the files listed in @var{member}@dots{} 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 @samp{v} modifier.
+
+If you do not specify a @var{member}, all files in the archive
+are listed.
+
+@cindex repeated names in archive
+@cindex name duplication in archive
+If there is more than one file with the same name (say, @samp{fie}) in
+an archive (say @samp{b.a}), @samp{ar t b.a fie} lists only the
+first instance; to see them all, you must ask for a complete
+listing---in our example, @samp{ar t b.a}.
+@c WRS only; per Gumby, this is implementation-dependent, and in a more
+@c recent case in fact works the other way.
+
+@item x
+@cindex extract from archive
+@emph{Extract} members (named @var{member}) from the archive.  You can
+use the @samp{v} modifier with this operation, to request that
+@code{ar} list each name as it extracts it.
+
+If you do not specify a @var{member}, all files in the archive
+are extracted.
+
+@end table
+
+A number of modifiers (@var{mod}) may immediately follow the @var{p}
+keyletter, to specify variations on an operation's behavior:
+
+@table @code
+@item a
+@cindex relative placement in archive
+Add new files @emph{after} an existing member of the
+archive.  If you use the modifier @samp{a}, the name of an existing archive
+member must be present as the @var{relpos} argument, before the
+@var{archive} specification.
+
+@item b
+Add new files @emph{before} an existing member of the
+archive.  If you use the modifier @samp{b}, the name of an existing archive
+member must be present as the @var{relpos} argument, before the
+@var{archive} specification.  (same as @samp{i}).
+
+@item c
+@cindex creating archives
+@emph{Create} the archive.  The specified @var{archive} 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.
+
+@item f
+Truncate names in the archive.  @sc{gnu} @code{ar} will normally permit file
+names of any length.  This will cause it to create archives which are
+not compatible with the native @code{ar} program on some systems.  If
+this is a concern, the @samp{f} modifier may be used to truncate file
+names when putting them in the archive.
+
+@item i
+Insert new files @emph{before} an existing member of the
+archive.  If you use the modifier @samp{i}, the name of an existing archive
+member must be present as the @var{relpos} argument, before the
+@var{archive} specification.  (same as @samp{b}).
+
+@item l
+This modifier is accepted but not used.
+@c whaffor ar l modifier??? presumably compat; with
+@c what???---doc@@cygnus.com, 25jan91 
+
+@item N
+Uses the @var{count} parameter.  This is used if there are multiple
+entries in the archive with the same name.  Extract or delete instance
+@var{count} of the given name from the archive.
+
+@item o
+@cindex dates in archive
+Preserve the @emph{original} 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.
+
+@item P
+Use the full path name when matching names in the archive.  @sc{gnu}
+@code{ar} can not create an archive with a full path name (such archives
+are not POSIX complaint), but other archive creators can.  This option
+will cause @sc{gnu} @code{ar} 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.
+
+@item s
+@cindex writing archive index
+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 @samp{ar s} on an
+archive is equivalent to running @samp{ranlib} on it.
+
+@item S
+@cindex not writing archive index
+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
+@samp{S} modifier on the last execution of @samp{ar}, or you must run
+@samp{ranlib} on the archive.
+
+@item u
+@cindex updating an archive
+Normally, @samp{ar r}@dots{} inserts all files
+listed into the archive.  If you would like to insert @emph{only} those
+of the files you list that are newer than existing members of the same
+names, use this modifier.  The @samp{u} modifier is allowed only for the
+operation @samp{r} (replace).  In particular, the combination @samp{qu} is
+not allowed, since checking the timestamps would lose any speed
+advantage from the operation @samp{q}.
+
+@item v
+This modifier requests the @emph{verbose} version of an operation.  Many
+operations display additional information, such as filenames processed,
+when the modifier @samp{v} is appended.
+
+@item V
+This modifier shows the version number of @code{ar}.
+@end table
+
+@code{ar} ignores an initial option spelt @code{-X32_64}, for
+compatibility with AIX.  The behaviour produced by this option is the
+default for GNU @code{ar}.  @code{ar} does not support any of the other
+@code{-X} options; in particular, it does not support @code{-X32}
+which is the default for AIX @code{ar}.
+
+@c man end
+
+@ignore
+@c man begin SEEALSO ar
+nm(1), ranlib(1), and the Info entries for @file{binutils}.
+@c man end
+@end ignore
+
+@node ar scripts
+@section Controlling @code{ar} with a script
+
+@smallexample
+ar -M [ <@var{script} ]
+@end smallexample
+
+@cindex MRI compatibility, @code{ar}
+@cindex scripts, @code{ar}
+If you use the single command-line option @samp{-M} with @code{ar}, you
+can control its operation with a rudimentary command language.  This
+form of @code{ar} operates interactively if standard input is coming
+directly from a terminal.  During interactive use, @code{ar} prompts for
+input (the prompt is @samp{AR >}), and continues executing even after
+errors.  If you redirect standard input to a script file, no prompts are
+issued, and @code{ar} abandons execution (with a nonzero exit code)
+on any error.
+
+The @code{ar} command language is @emph{not} designed to be equivalent
+to the command-line options; in fact, it provides somewhat less control
+over archives.  The only purpose of the command language is to ease the
+transition to @sc{gnu} @code{ar} for developers who already have scripts
+written for the MRI ``librarian'' program.
+
+The syntax for the @code{ar} command language is straightforward:
+@itemize @bullet
+@item
+commands are recognized in upper or lower case; for example, @code{LIST}
+is the same as @code{list}.  In the following descriptions, commands are
+shown in upper case for clarity.
+
+@item
+a single command may appear on each line; it is the first word on the
+line.
+
+@item
+empty lines are allowed, and have no effect.
+
+@item
+comments are allowed; text after either of the characters @samp{*}
+or @samp{;} is ignored.
+
+@item
+Whenever you use a list of names as part of the argument to an @code{ar}
+command, you can separate the individual names with either commas or
+blanks.  Commas are shown in the explanations below, for clarity.
+
+@item
+@samp{+} is used as a line continuation character; if @samp{+} appears
+at the end of a line, the text on the following line is considered part
+of the current command.
+@end itemize
+
+Here are the commands you can use in @code{ar} scripts, or when using
+@code{ar} interactively.  Three of them have special significance:
+
+@code{OPEN} or @code{CREATE} specify a @dfn{current archive}, which is
+a temporary file required for most of the other commands.
+
+@code{SAVE} commits the changes so far specified by the script.  Prior
+to @code{SAVE}, commands affect only the temporary copy of the current
+archive.
+
+@table @code
+@item ADDLIB @var{archive} 
+@itemx ADDLIB @var{archive} (@var{module}, @var{module}, @dots{} @var{module})
+Add all the contents of @var{archive} (or, if specified, each named
+@var{module} from @var{archive}) to the current archive.
+
+Requires prior use of @code{OPEN} or @code{CREATE}.
+
+@item ADDMOD @var{member}, @var{member}, @dots{} @var{member}
+@c FIXME! w/Replacement??  If so, like "ar r @var{archive} @var{names}"
+@c        else like "ar q..."
+Add each named @var{member} as a module in the current archive.
+
+Requires prior use of @code{OPEN} or @code{CREATE}.
+
+@item CLEAR
+Discard the contents of the current archive, canceling the effect of
+any operations since the last @code{SAVE}.  May be executed (with no
+effect) even if  no current archive is specified.
+
+@item CREATE @var{archive}
+Creates an archive, and makes it the current archive (required for many
+other commands).  The new archive is created with a temporary name; it
+is not actually saved as @var{archive} until you use @code{SAVE}.
+You can overwrite existing archives; similarly, the contents of any
+existing file named @var{archive} will not be destroyed until @code{SAVE}.
+
+@item DELETE @var{module}, @var{module}, @dots{} @var{module}
+Delete each listed @var{module} from the current archive; equivalent to
+@samp{ar -d @var{archive} @var{module} @dots{} @var{module}}.
+
+Requires prior use of @code{OPEN} or @code{CREATE}.
+
+@item DIRECTORY @var{archive} (@var{module}, @dots{} @var{module})
+@itemx DIRECTORY @var{archive} (@var{module}, @dots{} @var{module}) @var{outputfile}
+List each named @var{module} present in @var{archive}.  The separate
+command @code{VERBOSE} specifies the form of the output: when verbose
+output is off, output is like that of @samp{ar -t @var{archive}
+@var{module}@dots{}}.  When verbose output is on, the listing is like
+@samp{ar -tv @var{archive} @var{module}@dots{}}.
+
+Output normally goes to the standard output stream; however, if you
+specify @var{outputfile} as a final argument, @code{ar} directs the
+output to that file.
+
+@item END
+Exit from @code{ar}, with a @code{0} exit code to indicate successful
+completion.  This command does not save the output file; if you have
+changed the current archive since the last @code{SAVE} command, those
+changes are lost.
+
+@item EXTRACT @var{module}, @var{module}, @dots{} @var{module}
+Extract each named @var{module} from the current archive, writing them
+into the current directory as separate files.  Equivalent to @samp{ar -x
+@var{archive} @var{module}@dots{}}.
+
+Requires prior use of @code{OPEN} or @code{CREATE}.
+
+@ignore
+@c FIXME Tokens but no commands???
+@item FULLDIR
+
+@item HELP
+@end ignore
+
+@item LIST
+Display full contents of the current archive, in ``verbose'' style
+regardless of the state of @code{VERBOSE}.  The effect is like @samp{ar
+tv @var{archive}}.  (This single command is a @sc{gnu} @code{ar}
+enhancement, rather than present for MRI compatibility.)
+
+Requires prior use of @code{OPEN} or @code{CREATE}.
+
+@item OPEN @var{archive}
+Opens an existing archive for use as the current archive (required for
+many other commands).  Any changes as the result of subsequent commands
+will not actually affect @var{archive} until you next use @code{SAVE}.
+
+@item REPLACE @var{module}, @var{module}, @dots{} @var{module}
+In the current archive, replace each existing @var{module} (named in
+the @code{REPLACE} arguments) from files in the current working directory.
+To execute this command without errors, both the file, and the module in
+the current archive, must exist. 
+
+Requires prior use of @code{OPEN} or @code{CREATE}.
+
+@item VERBOSE
+Toggle an internal flag governing the output from @code{DIRECTORY}.
+When the flag is on, @code{DIRECTORY} output matches output from
+@samp{ar -tv }@dots{}.
+
+@item SAVE
+Commit your changes to the current archive, and actually save it as a
+file with the name specified in the last @code{CREATE} or @code{OPEN}
+command. 
+
+Requires prior use of @code{OPEN} or @code{CREATE}.
+
+@end table
+
+@iftex
+@node ld
+@chapter ld
+@cindex linker
+@kindex ld
+The @sc{gnu} linker @code{ld} is now described in a separate manual.
+@xref{Top,, Overview,, Using LD: the @sc{gnu} linker}.
+@end iftex
+
+@node nm
+@chapter nm
+@cindex symbols
+@kindex nm
+
+@c man title nm list symbols from object files
+
+@smallexample
+@c man begin SYNOPSIS nm
+nm [ -a | --debug-syms ]  [ -g | --extern-only ]
+   [ -B ]  [ -C | --demangle[=@var{style}] ] [ -D | --dynamic ]
+   [ -s | --print-armap ]  [ -A | -o | --print-file-name ]
+   [ -n | -v | --numeric-sort ]  [ -p | --no-sort ]
+   [ -r | --reverse-sort ]  [ --size-sort ] [ -u | --undefined-only ]
+   [ -t @var{radix} | --radix=@var{radix} ] [ -P | --portability ]
+   [ --target=@var{bfdname} ] [ -f @var{format} | --format=@var{format} ]
+   [ --defined-only ] [-l | --line-numbers ]  [ --no-demangle ]
+   [ -V | --version ]  [ -X 32_64 ]  [ --help ]  [ @var{objfile}@dots{} ]
+@c man end
+@end smallexample
+
+@c man begin DESCRIPTION nm
+@sc{gnu} @code{nm} lists the symbols from object files @var{objfile}@dots{}.
+If no object files are listed as arguments, @code{nm} assumes the file
+@file{a.out}.
+
+For each symbol, @code{nm} shows:
+
+@itemize @bullet
+@item
+The symbol value, in the radix selected by options (see below), or
+hexadecimal by default.
+
+@item
+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).
+
+@c Some more detail on exactly what these symbol types are used for
+@c would be nice.
+@table @code
+@item A
+The symbol's value is absolute, and will not be changed by further
+linking.
+
+@item B
+The symbol is in the uninitialized data section (known as BSS).
+
+@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.
+@ifclear man
+For more details on common symbols, see the discussion of
+--warn-common in @ref{Options,,Linker options,ld.info,The GNU linker}.
+@end ifclear
+
+@item D
+The symbol is in the initialized data section.
+
+@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.
+
+@item I
+The symbol is an indirect reference to another symbol.  This is a GNU
+extension to the a.out object file format which is rarely used.
+
+@item N
+The symbol is a debugging symbol.
+
+@item R
+The symbol is in a read only data section.
+
+@item S
+The symbol is in an uninitialized data section for small objects.
+
+@item T
+The symbol is in the text (code) section.
+
+@item U
+The symbol is undefined.
+
+@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.
+
+@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 weak symbol becomes zero with no error.
+
+@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;
+for more information, see @ref{Top,Stabs,Stabs Overview,stabs.info, The
+``stabs'' debug format}.
+
+@item ?
+The symbol type is unknown, or object file format specific.
+@end table
+
+@item
+The symbol name.
+@end itemize
+
+@c man end
+
+@c man begin OPTIONS nm
+The long and short forms of options, shown here as alternatives, are
+equivalent.
+
+@table @code
+@item -A
+@itemx -o
+@itemx --print-file-name 
+@cindex input file name
+@cindex file name
+@cindex source file name
+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.
+
+@item -a
+@itemx --debug-syms 
+@cindex debugging symbols
+Display all symbols, even debugger-only symbols; normally these are not
+listed.
+
+@item -B
+@cindex @code{nm} format
+@cindex @code{nm} compatibility
+The same as @samp{--format=bsd} (for compatibility with the MIPS @code{nm}).
+
+@item -C
+@itemx --demangle[=@var{style}]
+@cindex demangling in nm
+Decode (@dfn{demangle}) 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. @xref{c++filt}, 
+for more information on demangling.
+
+@item --no-demangle
+Do not demangle low-level symbol names.  This is the default.
+
+@item -D
+@itemx --dynamic
+@cindex dynamic symbols
+Display the dynamic symbols rather than the normal symbols.  This is
+only meaningful for dynamic objects, such as certain types of shared
+libraries.
+
+@item -f @var{format}
+@itemx --format=@var{format}
+@cindex @code{nm} format
+@cindex @code{nm} compatibility
+Use the output format @var{format}, which can be @code{bsd},
+@code{sysv}, or @code{posix}.  The default is @code{bsd}.
+Only the first character of @var{format} is significant; it can be
+either upper or lower case.
+
+@item -g
+@itemx --extern-only 
+@cindex external symbols
+Display only external symbols.
+
+@item -l
+@itemx --line-numbers
+@cindex symbol line numbers
+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.
+
+@item -n
+@itemx -v
+@itemx --numeric-sort 
+Sort symbols numerically by their addresses, rather than alphabetically
+by their names. 
+
+@item -p
+@itemx --no-sort 
+@cindex sorting symbols
+Do not bother to sort the symbols in any order; print them in the order
+encountered.
+
+@item -P
+@itemx --portability
+Use the POSIX.2 standard output format instead of the default format.
+Equivalent to @samp{-f posix}.
+
+@item -s
+@itemx --print-armap
+@cindex symbol index, listing
+When listing symbols from archive members, include the index: a mapping
+(stored in the archive by @code{ar} or @code{ranlib}) of which modules
+contain definitions for which names.
+
+@item -r
+@itemx --reverse-sort 
+Reverse the order of the sort (whether numeric or alphabetic); let the
+last come first.
+
+@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.  The size of the symbol is printed, rather than the value.
+
+@item -t @var{radix}
+@itemx --radix=@var{radix}
+Use @var{radix} as the radix for printing the symbol values.  It must be
+@samp{d} for decimal, @samp{o} for octal, or @samp{x} for hexadecimal.
+
+@item --target=@var{bfdname}
+@cindex object code format
+Specify an object code format other than your system's default format.
+@xref{Target Selection}, for more information.
+
+@item -u
+@itemx --undefined-only 
+@cindex external symbols
+@cindex undefined symbols
+Display only undefined symbols (those external to each object file).
+
+@item --defined-only
+@cindex external symbols
+@cindex undefined symbols
+Display only defined symbols for each object file.
+
+@item -V
+@itemx --version
+Show the version number of @code{nm} and exit.
+
+@item -X
+This option is ignored for compatibility with the AIX version of
+@code{nm}.  It takes one parameter which must be the string
+@code{32_64}.  The default mode of AIX @code{nm} corresponds
+to @code{-X 32}, which is not supported by @sc{gnu} @code{nm}.
+
+@item --help
+Show a summary of the options to @code{nm} and exit.
+@end table
+
+@c man end
+
+@ignore
+@c man begin SEEALSO nm
+ar(1), objdump(1), ranlib(1), and the Info entries for @file{binutils}.
+@c man end
+@end ignore
+
+@node objcopy
+@chapter objcopy
+
+@c man title objcopy copy and translate object files
+
+@smallexample
+@c man begin SYNOPSIS objcopy
+objcopy [ -F @var{bfdname} | --target=@var{bfdname} ]
+        [ -I @var{bfdname} | --input-target=@var{bfdname} ]
+        [ -O @var{bfdname} | --output-target=@var{bfdname} ]
+        [ -B @var{bfdarch} | --binary-architecture=@var{bfdarch} ]
+        [ -S | --strip-all ]  [ -g | --strip-debug ]
+        [ -K @var{symbolname} | --keep-symbol=@var{symbolname} ]
+        [ -N @var{symbolname} | --strip-symbol=@var{symbolname} ]
+        [ -G @var{symbolname} | --keep-global-symbol=@var{symbolname}]
+        [ -L @var{symbolname} | --localize-symbol=@var{symbolname} ]
+        [ -W @var{symbolname} | --weaken-symbol=@var{symbolname} ]
+        [ -x | --discard-all ]  [ -X | --discard-locals ]
+        [ -b @var{byte} | --byte=@var{byte} ]
+        [ -i @var{interleave} | --interleave=@var{interleave} ]
+        [ -j @var{sectionname} | --only-section=@var{sectionname} ]
+        [ -R @var{sectionname} | --remove-section=@var{sectionname} ]
+        [ -p | --preserve-dates ] [ --debugging ]
+        [ --gap-fill=@var{val} ] [ --pad-to=@var{address} ]
+        [ --set-start=@var{val} ] [ --adjust-start=@var{incr} ]
+        [ --change-addresses=@var{incr} ]
+        [ --change-section-address @var{section}@{=,+,-@}@var{val} ]
+        [ --change-section-lma @var{section}@{=,+,-@}@var{val} ]
+        [ --change-section-vma @var{section}@{=,+,-@}@var{val} ]
+        [ --change-warnings ] [ --no-change-warnings ]
+        [ --set-section-flags @var{section}=@var{flags} ]
+        [ --add-section @var{sectionname}=@var{filename} ]
+        [ --change-leading-char ] [ --remove-leading-char ]
+        [ --srec-len=@var{ival} ] [ --srec-forceS3 ]
+        [ --redefine-sym @var{old}=@var{new} ] [ --weaken ]
+        [ --keep-symbols=@var{filename} ]
+        [ --strip-symbols=@var{filename} ]
+        [ --keep-global-symbols=@var{filename} ]
+        [ --localize-symbols=@var{filename} ]
+        [ --weaken-symbols=@var{filename} ]
+        [ -v | --verbose ] [ -V | --version ]  [ --help ]
+        @var{infile} [@var{outfile}]
+@c man end
+@end smallexample
+
+@c man begin DESCRIPTION objcopy
+The @sc{gnu} @code{objcopy} utility copies the contents of an object
+file to another.  @code{objcopy} uses the @sc{gnu} @sc{bfd} 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 @code{objcopy} is controlled by command-line options.
+Note that @code{objcopy} 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.
+
+@code{objcopy} creates temporary files to do its translations and
+deletes them afterward.  @code{objcopy} uses @sc{bfd} to do all its
+translation work; it has access to all the formats described in @sc{bfd}
+and thus is able to recognize most formats without being told
+explicitly.  @xref{BFD,,BFD,ld.info,Using LD}.
+
+@code{objcopy} can be used to generate S-records by using an output
+target of @samp{srec} (e.g., use @samp{-O srec}).
+
+@code{objcopy} can be used to generate a raw binary file by using an
+output target of @samp{binary} (e.g., use @samp{-O binary}).  When
+@code{objcopy} 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.
+
+When generating an S-record or a raw binary file, it may be helpful to
+use @samp{-S} to remove sections containing debugging information.  In
+some cases @samp{-R} will be useful to remove sections which contain
+information that is not needed by the binary file.
+
+Note - @code{objcopy} is not able to change the endianness of its input
+files.  If the input format has an endianness, (some formats do not),
+@code{objcopy} can only copy the inputs into file formats that have the
+same endianness or which have no endianness (eg @samp{srec}).
+
+@c man end
+
+@c man begin OPTIONS objcopy
+
+@table @code
+@item @var{infile}
+@itemx @var{outfile}
+The input and output files, respectively.
+If you do not specify @var{outfile}, @code{objcopy} creates a
+temporary file and destructively renames the result with
+the name of @var{infile}.
+
+@item -I @var{bfdname} 
+@itemx --input-target=@var{bfdname}
+Consider the source file's object format to be @var{bfdname}, rather than
+attempting to deduce it.  @xref{Target Selection}, for more information.
+
+@item -O @var{bfdname}
+@itemx --output-target=@var{bfdname}
+Write the output file using the object format @var{bfdname}.
+@xref{Target Selection}, for more information.
+
+@item -F @var{bfdname}
+@itemx --target=@var{bfdname}
+Use @var{bfdname} as the object format for both the input and the output
+file; i.e., simply transfer data from source to destination with no
+translation.  @xref{Target Selection}, for more information.
+
+@item -B @var{bfdarch}
+@itemx --binary-architecture=@var{bfdarch}
+Useful when transforming a raw binary input file into an object file.
+In this case the output architecture can be set to @var{bfdarch}. This
+option will be ignored if the input file has a known @var{bfdarch}. 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_@var{objfile}_start, _binary_@var{objfile}_end and
+_binary_@var{objfile}_size.  e.g. you can transform a picture file into
+an object file and then access it in your code using these symbols. 
+
+@item -j @var{sectionname}
+@itemx --only-section=@var{sectionname}
+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.
+
+@item -R @var{sectionname}
+@itemx --remove-section=@var{sectionname}
+Remove any section named @var{sectionname} from the output file.  This
+option may be given more than once.  Note that using this option
+inappropriately may make the output file unusable.
+
+@item -S
+@itemx --strip-all
+Do not copy relocation and symbol information from the source file.
+
+@item -g
+@itemx --strip-debug
+Do not copy debugging symbols from the source file.
+
+@item --strip-unneeded
+Strip all symbols that are not needed for relocation processing.
+
+@item -K @var{symbolname}
+@itemx --keep-symbol=@var{symbolname}
+Copy only symbol @var{symbolname} from the source file.  This option may
+be given more than once.
+
+@item -N @var{symbolname}
+@itemx --strip-symbol=@var{symbolname}
+Do not copy symbol @var{symbolname} from the source file.  This option
+may be given more than once.
+
+@item -G @var{symbolname}
+@itemx --keep-global-symbol=@var{symbolname}
+Keep only symbol @var{symbolname} global.  Make all other symbols local
+to the file, so that they are not visible externally.  This option may
+be given more than once.
+
+@item -L @var{symbolname}
+@itemx --localize-symbol=@var{symbolname}
+Make symbol @var{symbolname} local to the file, so that it is not
+visible externally.  This option may be given more than once.
+
+@item -W @var{symbolname}
+@itemx --weaken-symbol=@var{symbolname}
+Make symbol @var{symbolname} weak. This option may be given more than once.
+
+@item -x
+@itemx --discard-all
+Do not copy non-global symbols from the source file.
+@c FIXME any reason to prefer "non-global" to "local" here?
+
+@item -X
+@itemx --discard-locals
+Do not copy compiler-generated local symbols.
+(These usually start with @samp{L} or @samp{.}.)
+
+@item -b @var{byte}
+@itemx --byte=@var{byte}
+Keep only every @var{byte}th byte of the input file (header data is not
+affected).  @var{byte} can be in the range from 0 to @var{interleave}-1,
+where @var{interleave} is given by the @samp{-i} or @samp{--interleave}
+option, or the default of 4.  This option is useful for creating files
+to program @sc{rom}.  It is typically used with an @code{srec} output
+target.
+
+@item -i @var{interleave}
+@itemx --interleave=@var{interleave}
+Only copy one out of every @var{interleave} bytes.  Select which byte to
+copy with the @var{-b} or @samp{--byte} option.  The default is 4.
+@code{objcopy} ignores this option if you do not specify either @samp{-b} or
+@samp{--byte}.
+
+@item -p
+@itemx --preserve-dates
+Set the access and modification dates of the output file to be the same
+as those of the input file.
+
+@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.
+
+@item --gap-fill @var{val}
+Fill gaps between sections with @var{val}.  This operation applies to
+the @emph{load address} (LMA) 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 @var{val}.
+
+@item --pad-to @var{address}
+Pad the output file up to the load address @var{address}.  This is
+done by increasing the size of the last section.  The extra space is
+filled in with the value specified by @samp{--gap-fill} (default zero).
+
+@item --set-start @var{val}
+Set the start address of the new file to @var{val}.  Not all object file
+formats support setting the start address.
+
+@item --change-start @var{incr}
+@itemx --adjust-start @var{incr}
+@cindex changing start address
+Change the start address by adding @var{incr}.  Not all object file
+formats support setting the start address.
+
+@item --change-addresses @var{incr}
+@itemx --adjust-vma @var{incr}
+@cindex changing object addresses
+Change the VMA and LMA addresses of all sections, as well as the start
+address, by adding @var{incr}.  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. 
+
+@item --change-section-address @var{section}@{=,+,-@}@var{val}
+@itemx --adjust-section-vma @var{section}@{=,+,-@}@var{val}
+@cindex changing section address
+Set or change both the VMA address and the LMA address of the named
+@var{section}.  If @samp{=} is used, the section address is set to
+@var{val}.  Otherwise, @var{val} is added to or subtracted from the
+section address.  See the comments under @samp{--change-addresses},
+above. If @var{section} does not exist in the input file, a warning will
+be issued, unless @samp{--no-change-warnings} is used.
+
+@item --change-section-lma @var{section}@{=,+,-@}@var{val}
+@cindex changing section LMA
+Set or change the LMA address of the named @var{section}.  The LMA
+address is the address where the section will be loaded into memory at
+program load time.  Normally this is the same as the VMA address, which
+is the address of the section at program run time, but on some systems,
+especially those where a program is held in ROM, the two can be
+different.  If @samp{=} is used, the section address is set to
+@var{val}.  Otherwise, @var{val} is added to or subtracted from the
+section address.  See the comments under @samp{--change-addresses},
+above.  If @var{section} does not exist in the input file, a warning
+will be issued, unless @samp{--no-change-warnings} is used.  
+
+@item --change-section-vma @var{section}@{=,+,-@}@var{val}
+@cindex changing section VMA
+Set or change the VMA address of the named @var{section}.  The VMA
+address is the address where the section will be located once the
+program has started executing.  Normally this is the same as the LMA
+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
+ROM, the two can be different.  If @samp{=} is used, the section address
+is set to @var{val}.  Otherwise, @var{val} is added to or subtracted
+from the section address.  See the comments under
+@samp{--change-addresses}, above.  If @var{section} does not exist in
+the input file, a warning will be issued, unless
+@samp{--no-change-warnings} is used.   
+
+@item --change-warnings
+@itemx --adjust-warnings
+If @samp{--change-section-address} or @samp{--change-section-lma} or
+@samp{--change-section-vma} is used, and the named section does not
+exist, issue a warning.  This is the default. 
+
+@item --no-change-warnings
+@itemx --no-adjust-warnings
+Do not issue a warning if @samp{--change-section-address} or
+@samp{--adjust-section-lma} or @samp{--adjust-section-vma} is used, even
+if the named section does not exist. 
+
+@item --set-section-flags @var{section}=@var{flags}
+Set the flags for the named section.  The @var{flags} argument is a
+comma separated string of flag names.  The recognized names are
+@samp{alloc}, @samp{contents}, @samp{load}, @samp{noload},
+@samp{readonly}, @samp{code}, @samp{data}, @samp{rom}, @samp{share}, and
+@samp{debug}.  You can set the @samp{contents} flag for a section which
+does not have contents, but it is not meaningful to clear the
+@samp{contents} flag of a section which does have contents--just remove
+the section instead.  Not all flags are meaningful for all object file
+formats.
+
+@item --add-section @var{sectionname}=@var{filename}
+Add a new section named @var{sectionname} while copying the file.  The
+contents of the new section are taken from the file @var{filename}.  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.
+
+@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 @code{objcopy} 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.
+
+@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
+@code{--change-leading-char} because it always changes the symbol name
+when appropriate, regardless of the object file format of the output
+file.
+
+@item --srec-len=@var{ival}
+Meaningful only for srec output.  Set the maximum length of the Srecords
+being produced to @var{ival}.  This length covers both address, data and
+crc fields.
+
+@item --srec-forceS3
+Meaningful only for srec output.  Avoid generation of S1/S2 records, 
+creating S3-only record format.
+
+@item --redefine-sym @var{old}=@var{new}
+Change the name of a symbol @var{old}, to @var{new}.  This can be useful
+when one is trying link two things together for which you have no
+source, and there are name collisions.
+
+@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 @code{-R} option to the linker.  This option is only effective when
+using an object file format which supports weak symbols.
+
+@item --keep-symbols=@var{filename}
+Apply @samp{--keep-symbol} option to each symbol listed in the file
+@var{filename}.  @var{filename} 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.
+
+@item --strip-symbols=@var{filename}
+Apply @samp{--strip-symbol} option to each symbol listed in the file
+@var{filename}.  @var{filename} 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.
+
+@item --keep-global-symbols=@var{filename}
+Apply @samp{--keep-global-symbol} option to each symbol listed in the
+file @var{filename}.  @var{filename} 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.
+
+@item --localize-symbols=@var{filename}
+Apply @samp{--localize-symbol} option to each symbol listed in the file
+@var{filename}.  @var{filename} 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.
+
+@item --weaken-symbols=@var{filename}
+Apply @samp{--weaken-symbol} option to each symbol listed in the file
+@var{filename}.  @var{filename} 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.
+
+@item -V
+@itemx --version
+Show the version number of @code{objcopy}.
+
+@item -v
+@itemx --verbose
+Verbose output: list all object files modified.  In the case of
+archives, @samp{objcopy -V} lists all members of the archive.
+
+@item --help
+Show a summary of the options to @code{objcopy}.
+@end table
+
+@c man end
+
+@ignore
+@c man begin SEEALSO objcopy
+ld(1), objdump(1), and the Info entries for @file{binutils}.
+@c man end
+@end ignore
+
+@node objdump
+@chapter objdump
+
+@cindex object file information
+@kindex objdump
+
+@c man title objdump display information from object files.
+
+@smallexample
+@c man begin SYNOPSIS objdump
+objdump [ -a | --archive-headers ] 
+        [ -b @var{bfdname} | --target=@var{bfdname} ] 
+        [ -C | --demangle[=@var{style}] ]
+        [ -d | --disassemble ]
+        [ -D | --disassemble-all ]
+        [ -z | --disassemble-zeroes ]
+        [ -EB | -EL | --endian=@{big | little @} ]
+        [ -f | --file-headers ]
+        [ --file-start-context ]
+        [ -g | --debugging ]
+        [ -h | --section-headers | --headers ]
+        [ -i | --info ]
+        [ -j @var{section} | --section=@var{section} ]
+        [ -l | --line-numbers ]
+        [ -S | --source ]
+        [ -m @var{machine} | --architecture=@var{machine} ]
+        [ -M @var{options} | --disassembler-options=@var{options}]
+        [ -p | --private-headers ]
+        [ -r | --reloc ]
+        [ -R | --dynamic-reloc ]
+        [ -s | --full-contents ]
+        [ -G | --stabs ]
+        [ -t | --syms ]
+        [ -T | --dynamic-syms ]
+        [ -x | --all-headers ]
+        [ -w | --wide ]
+        [ --start-address=@var{address} ]
+        [ --stop-address=@var{address} ]
+        [ --prefix-addresses]
+        [ --[no-]show-raw-insn ]
+        [ --adjust-vma=@var{offset} ]
+        [ -V | --version ]
+        [ -H | --help ]
+        @var{objfile}@dots{}
+@c man end
+@end smallexample
+
+@c man begin DESCRIPTION objdump
+
+@code{objdump} 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.
+
+@var{objfile}@dots{} are the object files to be examined.  When you
+specify archives, @code{objdump} shows information on each of the member
+object files.
+
+@c man end
+
+@c man begin OPTIONS objdump
+
+The long and short forms of options, shown here as alternatives, are
+equivalent.  At least one option from the list
+@samp{-a,-d,-D,-f,-g,-G,-h,-H,-p,-r,-R,-S,-t,-T,-V,-x} must be given. 
+
+@table @code
+@item -a
+@itemx --archive-header
+@cindex archive headers
+If any of the @var{objfile} files are archives, display the archive
+header information (in a format similar to @samp{ls -l}).  Besides the
+information you could list with @samp{ar tv}, @samp{objdump -a} shows
+the object file format of each archive member.
+
+@item --adjust-vma=@var{offset}
+@cindex section addresses in objdump
+@cindex VMA in objdump
+When dumping information, first add @var{offset} 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.
+
+@item -b @var{bfdname}
+@itemx --target=@var{bfdname}
+@cindex object code format
+Specify that the object-code format for the object files is
+@var{bfdname}.  This option may not be necessary; @var{objdump} can
+automatically recognize many formats.
+
+For example,
+@example
+objdump -b oasys -m vax -h fu.o
+@end example
+@noindent
+displays summary information from the section headers (@samp{-h}) of
+@file{fu.o}, which is explicitly identified (@samp{-m}) as a VAX object
+file in the format produced by Oasys compilers.  You can list the
+formats available with the @samp{-i} option.
+@xref{Target Selection}, for more information.
+
+@item -C
+@itemx --demangle[=@var{style}]
+@cindex demangling in objdump
+Decode (@dfn{demangle}) 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. @xref{c++filt}, 
+for more information on demangling.
+
+@item -G
+@item --debugging
+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.
+
+@item -d
+@itemx --disassemble
+@cindex disassembling object code
+@cindex machine instructions
+Display the assembler mnemonics for the machine instructions from
+@var{objfile}.  This option only disassembles those sections which are
+expected to contain instructions.
+
+@item -D
+@itemx --disassemble-all
+Like @samp{-d}, but disassemble the contents of all sections, not just
+those expected to contain instructions.
+
+@item --prefix-addresses
+When disassembling, print the complete address on each line.  This is
+the older disassembly format.
+
+@item --disassemble-zeroes
+Normally the disassembly output will skip blocks of zeroes.  This
+option directs the disassembler to disassemble those blocks, just like
+any other data.
+
+@item -EB
+@itemx -EL
+@itemx --endian=@{big|little@}
+@cindex endianness
+@cindex disassembly endianness
+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.
+
+@item -f
+@itemx --file-header
+@cindex object file header
+Display summary information from the overall header of
+each of the @var{objfile} files.
+
+@item --file-start-context
+@cindex source code context
+Specify that when displaying interlisted source code/disassembly
+(assumes '-S') from a file that has not yet been displayed, extend the
+context to the start of the file.
+
+@item -h
+@itemx --section-header
+@itemx --header
+@cindex section headers
+Display summary information from the section headers of the
+object file.
+
+File segments may be relocated to nonstandard addresses, for example by
+using the @samp{-Ttext}, @samp{-Tdata}, or @samp{-Tbss} options to
+@code{ld}.  However, some object file formats, such as a.out, do not
+store the starting address of the file segments.  In those situations,
+although @code{ld} relocates the sections correctly, using @samp{objdump
+-h} to list the file section headers cannot show the correct addresses.
+Instead, it shows the usual addresses, which are implicit for the
+target.
+
+@item --help
+Print a summary of the options to @code{objdump} and exit.
+
+@item -i
+@itemx --info
+@cindex architectures available
+@cindex object formats available
+Display a list showing all architectures and object formats available
+for specification with @samp{-b} or @samp{-m}.
+
+@item -j @var{name}
+@itemx --section=@var{name}
+@cindex section information
+Display information only for section @var{name}.
+
+@item -l
+@itemx --line-numbers
+@cindex source filenames for object files
+Label the display (using debugging information) with the filename and
+source line numbers corresponding to the object code or relocs shown.
+Only useful with @samp{-d}, @samp{-D}, or @samp{-r}.
+
+@item -m @var{machine}
+@itemx --architecture=@var{machine}
+@cindex architecture
+@cindex disassembly architecture
+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 @samp{-i} option.
+
+@item -M @var{options}
+@itemx --disassembler-options=@var{options}
+Pass target specific information to the disassembler.  Only supported on
+some targets.
+
+If the target is an ARM architecture then this switch can be used to
+select which register name set is used during disassembler.  Specifying
+@samp{-M reg-name-std} (the default) will select the register names as
+used in ARM's instruction set documentation, but with register 13 called
+'sp', register 14 called 'lr' and register 15 called 'pc'.  Specifying
+@samp{-M reg-names-apcs} will select the name set used by the ARM
+Procedure Call Standard, whilst specifying @samp{-M reg-names-raw} will
+just use @samp{r} followed by the register number.
+
+There are also two variants on the APCS register naming scheme enabled
+by @samp{-M reg-names-atpcs} and @samp{-M reg-names-special-atpcs} which
+use the ARM/Thumb Procedure Call Standard naming conventions.  (Eiuther
+with the normal register name sor the special register names).
+
+This option can also be used for ARM architectures to force the
+disassembler to interpret all instructions as THUMB instructions by
+using the switch @samp{--disassembler-options=force-thumb}.  This can be
+useful when attempting to disassemble thumb code produced by other
+compilers.
+
+@item -p
+@itemx --private-headers
+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.
+
+@item -r
+@itemx --reloc
+@cindex relocation entries, in object file
+Print the relocation entries of the file.  If used with @samp{-d} or
+@samp{-D}, the relocations are printed interspersed with the
+disassembly.
+
+@item -R
+@itemx --dynamic-reloc
+@cindex dynamic relocation entries, in object file
+Print the dynamic relocation entries of the file.  This is only
+meaningful for dynamic objects, such as certain types of shared
+libraries.
+
+@item -s
+@itemx --full-contents
+@cindex sections, full contents
+@cindex object file sections
+Display the full contents of any sections requested.
+
+@item -S
+@itemx --source
+@cindex source disassembly
+@cindex disassembly, with source
+Display source code intermixed with disassembly, if possible.  Implies
+@samp{-d}.
+
+@item --show-raw-insn
+When disassembling instructions, print the instruction in hex as well as
+in symbolic form.  This is the default except when
+@code{--prefix-addresses} is used.
+
+@item --no-show-raw-insn
+When disassembling instructions, do not print the instruction bytes.
+This is the default when @code{--prefix-addresses} is used.
+
+@item -G
+@item --stabs
+@cindex stab
+@cindex .stab
+@cindex debug symbols
+@cindex ELF object file format
+Display the full contents of any sections requested.  Display the
+contents of the .stab and .stab.index and .stab.excl sections from an
+ELF file.  This is only useful on systems (such as Solaris 2.0) in which
+@code{.stab} debugging symbol-table entries are carried in an ELF
+section.  In most other file formats, debugging symbol-table entries are
+interleaved with linkage symbols, and are visible in the @samp{--syms}
+output.
+@ifclear man
+For more information on stabs symbols, see @ref{Top,Stabs,Stabs
+Overview,stabs.info, The ``stabs'' debug format}.
+@end ifclear
+
+@item --start-address=@var{address}
+@cindex start-address
+Start displaying data at the specified address.  This affects the output
+of the @code{-d}, @code{-r} and @code{-s} options.
+
+@item --stop-address=@var{address}
+@cindex stop-address
+Stop displaying data at the specified address.  This affects the output
+of the @code{-d}, @code{-r} and @code{-s} options.
+
+@item -t
+@itemx --syms
+@cindex symbol table entries, printing
+Print the symbol table entries of the file.
+This is similar to the information provided by the @samp{nm} program.
+
+@item -T
+@itemx --dynamic-syms
+@cindex dynamic symbol table entries, printing
+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 @samp{nm}
+program when given the @samp{-D} (@samp{--dynamic}) option.
+
+@item --version
+Print the version number of @code{objdump} and exit.
+
+@item -x
+@itemx --all-header
+@cindex all header information, object file
+@cindex header information, all
+Display all available header information, including the symbol table and
+relocation entries.  Using @samp{-x} is equivalent to specifying all of
+@samp{-a -f -h -r -t}.
+
+@item -w
+@itemx --wide
+@cindex wide output, printing
+Format some lines for output devices that have more than 80 columns.
+@end table
+
+@c man end
+
+@ignore
+@c man begin SEEALSO objdump
+nm(1), readelf(1), and the Info entries for @file{binutils}.
+@c man end
+@end ignore
+
+@node ranlib
+@chapter ranlib
+
+@kindex ranlib
+@cindex archive contents
+@cindex symbol index
+
+@c man title ranlib generate index to archive.
+
+@smallexample
+@c man begin SYNOPSIS ranlib
+ranlib [-vV] @var{archive}
+@c man end
+@end smallexample
+
+@c man begin DESCRIPTION ranlib
+
+@code{ranlib} 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.  
+
+You may use @samp{nm -s} or @samp{nm --print-armap} to list this index.
+
+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.
+
+The @sc{gnu} @code{ranlib} program is another form of @sc{gnu} @code{ar}; running
+@code{ranlib} is completely equivalent to executing @samp{ar -s}.
+@xref{ar}.
+
+@c man end
+
+@c man begin OPTIONS ranlib
+
+@table @code
+@item -v
+@itemx -V
+@itemx --version
+Show the version number of @code{ranlib}.
+@end table
+
+@c man end
+
+@ignore
+@c man begin SEEALSO ranlib
+ar(1), nm(1), and the Info entries for @file{binutils}.
+@c man end
+@end ignore
+
+@node size
+@chapter size
+
+@kindex size
+@cindex section sizes
+
+@c man title size list section sizes and total size.
+
+@smallexample
+@c man begin SYNOPSIS size
+size [ -A | -B | --format=@var{compatibility} ]
+     [ --help ]  [ -d | -o | -x | --radix=@var{number} ]
+     [ --target=@var{bfdname} ]  [ -V | --version ]  
+     [ @var{objfile}@dots{} ]
+@c man end
+@end smallexample
+
+@c man begin DESCRIPTION size
+
+The @sc{gnu} @code{size} utility lists the section sizes---and the total
+size---for each of the object or archive files @var{objfile} in its
+argument list.  By default, one line of output is generated for each
+object file or each module in an archive.
+
+@var{objfile}@dots{} are the object files to be examined.
+If none are specified, the file @code{a.out} will be used.
+
+@c man end
+
+@c man begin OPTIONS size
+
+The command line options have the following meanings:
+
+@table @code
+@item -A
+@itemx -B
+@itemx --format=@var{compatibility}
+@cindex @code{size} display format
+Using one of these options, you can choose whether the output from @sc{gnu}
+@code{size} resembles output from System V @code{size} (using @samp{-A},
+or @samp{--format=sysv}), or Berkeley @code{size} (using @samp{-B}, or
+@samp{--format=berkeley}).  The default is the one-line format similar to
+Berkeley's.  
+@c Bonus for doc-source readers: you can also say --format=strange (or
+@c anything else that starts with 's') for sysv, and --format=boring (or
+@c anything else that starts with 'b') for Berkeley.
+
+Here is an example of the Berkeley (default) format of output from
+@code{size}: 
+@smallexample
+$ size --format=Berkeley ranlib size
+text    data    bss     dec     hex     filename
+294880  81920   11592   388392  5ed28   ranlib
+294880  81920   11888   388688  5ee50   size
+@end smallexample
+
+@noindent
+This is the same data, but displayed closer to System V conventions:
+
+@smallexample
+$ size --format=SysV ranlib size
+ranlib  :
+section         size         addr
+.text         294880         8192       
+.data          81920       303104       
+.bss           11592       385024       
+Total         388392    
+
+
+size  :
+section         size         addr
+.text         294880         8192       
+.data          81920       303104       
+.bss           11888       385024       
+Total         388688    
+@end smallexample
+
+@item --help
+Show a summary of acceptable arguments and options.
+
+@item -d
+@itemx -o
+@itemx -x
+@itemx --radix=@var{number}
+@cindex @code{size} number format
+@cindex radix for section sizes
+Using one of these options, you can control whether the size of each
+section is given in decimal (@samp{-d}, or @samp{--radix=10}); octal
+(@samp{-o}, or @samp{--radix=8}); or hexadecimal (@samp{-x}, or
+@samp{--radix=16}).  In @samp{--radix=@var{number}}, only the three
+values (8, 10, 16) are supported.  The total size is always given in two
+radices; decimal and hexadecimal for @samp{-d} or @samp{-x} output, or
+octal and hexadecimal if you're using @samp{-o}.
+
+@item --target=@var{bfdname}
+@cindex object code format
+Specify that the object-code format for @var{objfile} is
+@var{bfdname}.  This option may not be necessary; @code{size} can
+automatically recognize many formats.
+@xref{Target Selection}, for more information.
+
+@item -V
+@itemx --version
+Display the version number of @code{size}.
+@end table
+
+@c man end
+
+@ignore
+@c man begin SEEALSO size
+ar(1), objdump(1), readelf(1), and the Info entries for @file{binutils}.
+@c man end
+@end ignore
+
+@node strings
+@chapter strings
+@kindex strings
+@cindex listings strings
+@cindex printing strings
+@cindex strings, printing
+
+@c man title strings print the strings of printable characters in files.
+
+@smallexample
+@c man begin SYNOPSIS strings
+strings [-afov] [-@var{min-len}] [-n @var{min-len}] [-t @var{radix}] [-]
+        [--all] [--print-file-name] [--bytes=@var{min-len}]
+        [--radix=@var{radix}] [--target=@var{bfdname}]
+        [--help] [--version] @var{file}@dots{}
+@c man end
+@end smallexample
+
+@c man begin DESCRIPTION strings
+
+For each @var{file} given, @sc{gnu} @code{strings} 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.
+
+@code{strings} is mainly useful for determining the contents of non-text
+files.
+
+@c man end
+
+@c man begin OPTIONS strings
+
+@table @code
+@item -a
+@itemx --all
+@itemx -
+Do not scan only the initialized and loaded sections of object files;
+scan the whole files.
+
+@item -f
+@itemx --print-file-name
+Print the name of the file before each string.
+
+@item --help
+Print a summary of the program usage on the standard output and exit.
+
+@item -@var{min-len}
+@itemx -n @var{min-len}
+@itemx --bytes=@var{min-len}
+Print sequences of characters that are at least @var{min-len} characters
+long, instead of the default 4.
+
+@item -o
+Like @samp{-t o}.  Some other versions of @code{strings} have @samp{-o}
+act like @samp{-t d} instead.  Since we can not be compatible with both
+ways, we simply chose one.
+
+@item -t @var{radix}
+@itemx --radix=@var{radix}
+Print the offset within the file before each string.  The single
+character argument specifies the radix of the offset---@samp{o} for
+octal, @samp{x} for hexadecimal, or @samp{d} for decimal.
+
+@item --target=@var{bfdname}
+@cindex object code format
+Specify an object code format other than your system's default format.
+@xref{Target Selection}, for more information.
+
+@item -v
+@itemx --version
+Print the program version number on the standard output and exit.
+@end table
+
+@c man end
+
+@ignore
+@c man begin SEEALSO strings
+ar(1), nm(1), objdump(1), ranlib(1), readelf(1)
+and the Info entries for @file{binutils}.
+@c man end
+@end ignore
+
+@node strip
+@chapter strip
+
+@kindex strip
+@cindex removing symbols
+@cindex discarding symbols
+@cindex symbols, discarding
+
+@c man title strip Discard symbols from object files.
+
+@smallexample
+@c man begin SYNOPSIS strip
+strip [ -F @var{bfdname} | --target=@var{bfdname} ]
+      [ -I @var{bfdname} | --input-target=@var{bfdname} ]
+      [ -O @var{bfdname} | --output-target=@var{bfdname} ]
+      [ -s | --strip-all ] [ -S | -g | --strip-debug ]
+      [ -K @var{symbolname} | --keep-symbol=@var{symbolname} ]
+      [ -N @var{symbolname} | --strip-symbol=@var{symbolname} ]
+      [ -x | --discard-all ] [ -X | --discard-locals ]
+      [ -R @var{sectionname} | --remove-section=@var{sectionname} ]
+      [ -o @var{file} ] [ -p | --preserve-dates ]
+      [ -v | --verbose ]  [ -V | --version ]  [ --help ]
+      @var{objfile}@dots{}
+@c man end
+@end smallexample
+
+@c man begin DESCRIPTION strip
+
+@sc{gnu} @code{strip} discards all symbols from object files
+@var{objfile}.  The list of object files may include archives.
+At least one object file must be given.
+
+@code{strip} modifies the files named in its argument,
+rather than writing modified copies under different names.
+
+@c man end
+
+@c man begin OPTIONS strip
+
+@table @code
+@item -F @var{bfdname}
+@itemx --target=@var{bfdname}
+Treat the original @var{objfile} as a file with the object
+code format @var{bfdname}, and rewrite it in the same format.
+@xref{Target Selection}, for more information.
+
+@item --help
+Show a summary of the options to @code{strip} and exit.
+
+@item -I @var{bfdname} 
+@itemx --input-target=@var{bfdname}
+Treat the original @var{objfile} as a file with the object
+code format @var{bfdname}.
+@xref{Target Selection}, for more information.
+
+@item -O @var{bfdname}
+@itemx --output-target=@var{bfdname}
+Replace @var{objfile} with a file in the output format @var{bfdname}.
+@xref{Target Selection}, for more information.
+
+@item -R @var{sectionname}
+@itemx --remove-section=@var{sectionname}
+Remove any section named @var{sectionname} from the output file.  This
+option may be given more than once.  Note that using this option
+inappropriately may make the output file unusable.
+
+@item -s
+@itemx --strip-all
+Remove all symbols.
+
+@item -g
+@itemx -S
+@itemx --strip-debug
+Remove debugging symbols only.
+
+@item --strip-unneeded
+Remove all symbols that are not needed for relocation processing.
+
+@item -K @var{symbolname}
+@itemx --keep-symbol=@var{symbolname}
+Keep only symbol @var{symbolname} from the source file.  This option may
+be given more than once.
+
+@item -N @var{symbolname}
+@itemx --strip-symbol=@var{symbolname}
+Remove symbol @var{symbolname} from the source file. This option may be
+given more than once, and may be combined with strip options other than
+@code{-K}.
+
+@item -o @var{file}
+Put the stripped output in @var{file}, rather than replacing the
+existing file.  When this argument is used, only one @var{objfile}
+argument may be specified.
+
+@item -p
+@itemx --preserve-dates
+Preserve the access and modification dates of the file.
+
+@item -x
+@itemx --discard-all
+Remove non-global symbols.
+
+@item -X
+@itemx --discard-locals
+Remove compiler-generated local symbols.
+(These usually start with @samp{L} or @samp{.}.)
+
+@item -V
+@itemx --version
+Show the version number for @code{strip}.
+
+@item -v
+@itemx --verbose
+Verbose output: list all object files modified.  In the case of
+archives, @samp{strip -v} lists all members of the archive.
+@end table
+
+@c man end
+
+@ignore
+@c man begin SEEALSO strip
+the Info entries for @file{binutils}.
+@c man end
+@end ignore
+
+@node c++filt, addr2line, strip, Top
+@chapter c++filt
+
+@kindex c++filt
+@cindex demangling C++ symbols
+
+@c man title cxxfilt Demangle C++ and Java symbols.
+
+@smallexample
+@c man begin SYNOPSIS cxxfilt
+c++filt [ -_ | --strip-underscores ]
+        [ -j | --java ]
+       [ -n | --no-strip-underscores ]
+        [ -s @var{format} | --format=@var{format} ]
+        [ --help ]  [ --version ]  [ @var{symbol}@dots{} ]
+@c man end
+@end smallexample
+
+@c man begin DESCRIPTION cxxfilt
+
+@kindex cxxfilt
+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
+@dfn{mangling}). The @code{c++filt}
+@footnote{MS-DOS does not allow @kbd{+} characters in file names, so on
+MS-DOS this program is named @code{cxxfilt}.}
+program does the inverse mapping: it decodes (@dfn{demangles}) low-level
+names into user-level names so that the linker can keep these overloaded
+functions from clashing.
+
+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.
+
+You can use @code{c++filt} to decipher individual symbols:
+
+@example
+c++filt @var{symbol}
+@end example
+
+If no @var{symbol} arguments are given, @code{c++filt} reads symbol
+names from the standard input and writes the demangled names to the
+standard output.  All results are printed on the standard output.
+
+@c man end
+
+@c man begin OPTIONS cxxfilt
+
+@table @code
+@item -_
+@itemx --strip-underscores
+On some systems, both the C and C++ compilers put an underscore in front
+of every name.  For example, the C name @code{foo} gets the low-level
+name @code{_foo}.  This option removes the initial underscore.  Whether
+@code{c++filt} removes the underscore by default is target dependent.
+
+@item -j
+@itemx --java
+Prints demangled names using Java syntax.  The default is to use C++
+syntax.
+
+@item -n
+@itemx --no-strip-underscores
+Do not remove the initial underscore.
+
+@item -s @var{format}
+@itemx --format=@var{format}
+@sc{gnu} @code{nm} can decode three different methods of mangling, used by
+different C++ compilers.  The argument to this option selects which
+method it uses:
+
+@table @code
+@item gnu
+the one used by the @sc{gnu} compiler (the default method)
+@item lucid
+the one used by the Lucid compiler
+@item arm
+the one specified by the C++ Annotated Reference Manual
+@item hp
+the one used by the HP compiler
+@item edg
+the one used by the EDG compiler
+@item gnu-new-abi
+the one used by the @sc{gnu} compiler with the new ABI.
+@end table
+
+@item --help
+Print a summary of the options to @code{c++filt} and exit.
+
+@item --version
+Print the version number of @code{c++filt} and exit.
+@end table
+
+@c man end
+
+@ignore
+@c man begin SEEALSO cxxfilt
+the Info entries for @file{binutils}.
+@c man end
+@end ignore
+
+@quotation
+@emph{Warning:} @code{c++filt} is a new utility, and the details of its
+user interface are subject to change in future releases.  In particular,
+a command-line option may be required in the the future to decode a name
+passed as an argument on the command line; in other words, 
+
+@example
+c++filt @var{symbol}
+@end example
+
+@noindent
+may in a future release become
+
+@example
+c++filt @var{option} @var{symbol}
+@end example
+@end quotation
+
+@node addr2line
+@chapter addr2line
+
+@kindex addr2line
+@cindex address to file name and line number
+
+@c man title addr2line convert addresses into file names and line numbers.
+
+@smallexample
+@c man begin SYNOPSIS addr2line
+addr2line [ -b @var{bfdname} | --target=@var{bfdname} ]
+          [ -C | --demangle[=@var{style} ]
+          [ -e @var{filename} | --exe=@var{filename} ]
+          [ -f | --functions ] [ -s | --basename ]
+          [ -H | --help ] [ -V | --version ]
+          [ addr addr ... ]
+@c man end
+@end smallexample
+
+@c man begin DESCRIPTION addr2line
+
+@code{addr2line} 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.
+
+The executable to use is specified with the @code{-e} option.  The
+default is the file @file{a.out}.
+
+@code{addr2line} has two modes of operation.
+
+In the first, hexadecimal addresses are specified on the command line,
+and @code{addr2line} displays the file name and line number for each
+address.
+
+In the second, @code{addr2line} reads hexadecimal addresses from
+standard input, and prints the file name and line number for each
+address on standard output.  In this mode, @code{addr2line} may be used
+in a pipe to convert dynamically chosen addresses.
+
+The format of the output is @samp{FILENAME:LINENO}.  The file name and
+line number for each address is printed on a separate line.  If the
+@code{-f} option is used, then each @samp{FILENAME:LINENO} line is
+preceded by a @samp{FUNCTIONNAME} line which is the name of the function
+containing the address.
+
+If the file name or function name can not be determined,
+@code{addr2line} will print two question marks in their place.  If the
+line number can not be determined, @code{addr2line} will print 0.
+
+@c man end
+
+@c man begin OPTIONS addr2line
+
+The long and short forms of options, shown here as alternatives, are
+equivalent.
+
+@table @code
+@item -b @var{bfdname}
+@itemx --target=@var{bfdname}
+@cindex object code format
+Specify that the object-code format for the object files is
+@var{bfdname}.
+
+@item -C
+@itemx --demangle[=@var{style}]
+@cindex demangling in objdump
+Decode (@dfn{demangle}) 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. @xref{c++filt}, 
+for more information on demangling.
+
+@item -e @var{filename}
+@itemx --exe=@var{filename}
+Specify the name of the executable for which addresses should be
+translated.  The default file is @file{a.out}.
+
+@item -f
+@itemx --functions
+Display function names as well as file and line number information.
+
+@item -s
+@itemx --basenames
+Display only the base of each file name.
+@end table
+
+@c man end
+
+@ignore
+@c man begin SEEALSO addr2line
+Info entries for @file{binutils}.
+@c man end
+@end ignore
+
+@node nlmconv
+@chapter nlmconv
+
+@code{nlmconv} converts a relocatable object file into a NetWare
+Loadable Module.
+
+@ignore
+@code{nlmconv} currently works with @samp{i386} object
+files in @code{coff}, @sc{elf}, or @code{a.out} format, and @sc{SPARC}
+object files in @sc{elf}, or @code{a.out} format@footnote{
+@code{nlmconv} should work with any @samp{i386} or @sc{sparc} object
+format in the Binary File Descriptor library.  It has only been tested
+with the above formats.}.
+@end ignore
+
+@quotation
+@emph{Warning:} @code{nlmconv} is not always built as part of the binary
+utilities, since it is only useful for NLM targets.
+@end quotation
+
+@c man title nlmconv converts object code into an NLM.
+
+@smallexample
+@c man begin SYNOPSIS nlmconv
+nlmconv [ -I @var{bfdname} | --input-target=@var{bfdname} ]
+        [ -O @var{bfdname} | --output-target=@var{bfdname} ]
+        [ -T @var{headerfile} | --header-file=@var{headerfile} ]
+        [ -d | --debug]  [ -l @var{linker} | --linker=@var{linker} ]
+        [ -h | --help ]  [ -V | --version ]
+        @var{infile} @var{outfile}
+@c man end
+@end smallexample
+
+@c man begin DESCRIPTION nlmconv
+
+@code{nlmconv} converts the relocatable @samp{i386} object file
+@var{infile} into the NetWare Loadable Module @var{outfile}, optionally
+reading @var{headerfile} for NLM header information.  For instructions
+on writing the NLM command file language used in header files, see the
+@samp{linkers} section, @samp{NLMLINK} in particular, of the @cite{NLM
+Development and Tools Overview}, which is part of the NLM Software
+Developer's Kit (``NLM SDK''), available from Novell, Inc.
+@code{nlmconv} uses the @sc{gnu} Binary File Descriptor library to read
+@var{infile};
+@ifclear man
+see @ref{BFD,,BFD,ld.info,Using LD}, for more information.
+@end ifclear
+
+@code{nlmconv} 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, @code{nlmconv} calls the linker for you.
+
+@c man end
+
+@c man begin OPTIONS nlmconv
+
+@table @code
+@item -I @var{bfdname}
+@itemx --input-target=@var{bfdname}
+Object format of the input file.  @code{nlmconv} can usually determine
+the format of a given file (so no default is necessary).
+@xref{Target Selection}, for more information.
+
+@item -O @var{bfdname}
+@itemx --output-target=@var{bfdname}
+Object format of the output file.  @code{nlmconv} infers the output
+format based on the input format, e.g. for a @samp{i386} input file the
+output format is @samp{nlm32-i386}.
+@xref{Target Selection}, for more information.
+
+@item -T @var{headerfile}
+@itemx --header-file=@var{headerfile}
+Reads @var{headerfile} for NLM header information.  For instructions on
+writing the NLM command file language used in header files, see@ see the
+@samp{linkers} section, of the @cite{NLM Development and Tools
+Overview}, which is part of the NLM Software Developer's Kit, available
+from Novell, Inc.
+
+@item -d
+@itemx --debug
+Displays (on standard error) the linker command line used by @code{nlmconv}.
+
+@item -l @var{linker}
+@itemx --linker=@var{linker}
+Use @var{linker} for any linking.  @var{linker} can be an absolute or a
+relative pathname.
+
+@item -h
+@itemx --help
+Prints a usage summary.
+
+@item -V
+@itemx --version
+Prints the version number for @code{nlmconv}.
+@end table
+
+@c man end
+
+@ignore
+@c man begin SEEALSO nlmconv
+the Info entries for @file{binutils}.
+@c man end
+@end ignore
+
+@node windres
+@chapter windres
+
+@code{windres} may be used to manipulate Windows resources.
+
+@quotation
+@emph{Warning:} @code{windres} is not always built as part of the binary
+utilities, since it is only useful for Windows targets.
+@end quotation
+
+@c man title windres manipulate Windows resources.
+
+@smallexample
+@c man begin SYNOPSIS windres
+windres [options] [input-file] [output-file]
+@c man end
+@end smallexample
+
+@c man begin DESCRIPTION windres
+
+@code{windres} reads resources from an input file and copies them into
+an output file.  Either file may be in one of three formats:
+
+@table @code
+@item rc
+A text format read by the Resource Compiler.
+
+@item res
+A binary format generated by the Resource Compiler.
+
+@item coff
+A COFF object or executable.
+@end table
+
+The exact description of these different formats is available in
+documentation from Microsoft.
+
+When @code{windres} converts from the @code{rc} format to the @code{res}
+format, it is acting like the Windows Resource Compiler.  When
+@code{windres} converts from the @code{res} format to the @code{coff}
+format, it is acting like the Windows @code{CVTRES} program.
+
+When @code{windres} generates an @code{rc} file, the output is similar
+but not identical to the format expected for the input.  When an input
+@code{rc} file refers to an external filename, an output @code{rc} file
+will instead include the file contents.
+
+If the input or output format is not specified, @code{windres} will
+guess based on the file name, or, for the input file, the file contents.
+A file with an extension of @file{.rc} will be treated as an @code{rc}
+file, a file with an extension of @file{.res} will be treated as a
+@code{res} file, and a file with an extension of @file{.o} or
+@file{.exe} will be treated as a @code{coff} file.
+
+If no output file is specified, @code{windres} will print the resources
+in @code{rc} format to standard output.
+
+The normal use is for you to write an @code{rc} file, use @code{windres}
+to convert it to a COFF object file, and then link the COFF file into
+your application.  This will make the resources described in the
+@code{rc} file available to Windows.
+
+@c man end
+
+@c man begin OPTIONS windres
+
+@table @code
+@item -i @var{filename}
+@itemx --input @var{filename}
+The name of the input file.  If this option is not used, then
+@code{windres} will use the first non-option argument as the input file
+name.  If there are no non-option arguments, then @code{windres} will
+read from standard input.  @code{windres} can not read a COFF file from
+standard input.
+
+@item -o @var{filename}
+@itemx --output @var{filename}
+The name of the output file.  If this option is not used, then
+@code{windres} 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 @code{windres} will write to standard output.
+@code{windres} can not write a COFF file to standard output.
+
+@item -I @var{format}
+@itemx --input-format @var{format}
+The input format to read.  @var{format} may be @samp{res}, @samp{rc}, or
+@samp{coff}.  If no input format is specified, @code{windres} will
+guess, as described above.
+
+@item -O @var{format}
+@itemx --output-format @var{format}
+The output format to generate.  @var{format} may be @samp{res},
+@samp{rc}, or @samp{coff}.  If no output format is specified,
+@code{windres} will guess, as described above.
+
+@item -F @var{target}
+@itemx --target @var{target}
+Specify the BFD format to use for a COFF file as input or output.  This
+is a BFD target name; you can use the @code{--help} option to see a list
+of supported targets.  Normally @code{windres} will use the default
+format, which is the first one listed by the @code{--help} option.
+@ref{Target Selection}.
+
+@item --preprocessor @var{program}
+When @code{windres} reads an @code{rc} 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 @code{gcc -E -xc-header -DRC_INVOKED}.
+
+@item --include-dir @var{directory}
+Specify an include directory to use when reading an @code{rc} file.
+@code{windres} will pass this to the preprocessor as an @code{-I}
+option.  @code{windres} will also search this directory when looking for
+files named in the @code{rc} file.
+
+@item -D @var{target}
+@itemx --define @var{sym}[=@var{val}]
+Specify a @code{-D} option to pass to the preprocessor when reading an
+@code{rc} file.
+
+@item -v
+Enable verbose mode.  This tells you what the preprocessor is if you
+didn't specify one.
+
+@item --language @var{val}
+Specify the default language to use when reading an @code{rc} file.
+@var{val} should be a hexadecimal language code.  The low eight bits are
+the language, and the high eight bits are the sublanguage.
+
+@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).
+
+@item --no-use-temp-file
+Use popen, not a temporary file, to read the output of the preprocessor.
+This is the default behaviour.
+
+@item --help
+Prints a usage summary.
+
+@item --version
+Prints the version number for @code{windres}.
+
+@item --yydebug
+If @code{windres} is compiled with @code{YYDEBUG} defined as @code{1},
+this will turn on parser debugging.
+@end table
+
+@c man end
+
+@ignore
+@c man begin SEEALSO windres
+the Info entries for @file{binutils}.
+@c man end
+@end ignore
+
+@node dlltool
+@chapter Create files needed to build and use DLLs
+@cindex DLL
+@kindex dlltool
+
+@code{dlltool} may be used to create the files needed to build and use
+dynamic link libraries (DLLs).
+
+@quotation
+@emph{Warning:} @code{dlltool} is not always built as part of the binary
+utilities, since it is only useful for those targets which support DLLs.
+@end quotation
+
+@c man title dlltool Create files needed to build and use DLLs.
+
+@smallexample
+@c man begin SYNOPSIS dlltool
+dlltool [-d|--input-def @var{def-file-name}]
+        [-b|--base-file @var{base-file-name}]
+        [-e|--output-exp @var{exports-file-name}]
+        [-z|--output-def @var{def-file-name}]
+        [-l|--output-lib @var{library-file-name}]        
+        [--export-all-symbols] [--no-export-all-symbols]
+        [--exclude-symbols @var{list}]
+        [--no-default-excludes]
+        [-S|--as @var{path-to-assembler}] [-f|--as-flags @var{options}]
+        [-D|--dllname @var{name}] [-m|--machine @var{machine}]
+        [-a|--add-indirect] [-U|--add-underscore] [-k|--kill-at]
+        [-A|--add-stdcall-alias]
+        [-x|--no-idata4] [-c|--no-idata5] [-i|--interwork]
+        [-n|--nodelete] [-v|--verbose] [-h|--help] [-V|--version]
+        [object-file @dots{}]
+@c man end
+@end smallexample
+
+@c man begin DESCRIPTION dlltool
+
+@code{dlltool} reads its inputs, which can come from the @samp{-d} and
+@samp{-b} options as well as object files specified on the command
+line.  It then processes these inputs and if the @samp{-e} option has
+been specified it creates a exports file.  If the @samp{-l} option
+has been specified it creates a library file and if the @samp{-z} option
+has been specified it creates a def file.  Any or all of the -e, -l
+and -z options can be present in one invocation of dlltool.
+
+When creating a DLL, along with the source for the DLL, it is necessary
+to have three other files.  @code{dlltool} can help with the creation of
+these files.
+
+The first file is a @samp{.def} file which specifies which functions are
+exported from the DLL, which functions the DLL imports, and so on.  This
+is a text file and can be created by hand, or @code{dlltool} can be used
+to create it using the @samp{-z} option.  In this case @code{dlltool}
+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 .def file it creates.
+
+In order to mark a function as being exported from a DLL, it needs to
+have an @samp{-export:<name_of_function>} entry in the @samp{.drectve}
+section of the object file.  This can be done in C by using the
+asm() operator:
+
+@smallexample
+  asm (".section .drectve");  
+  asm (".ascii \"-export:my_func\"");
+
+  int my_func (void) @{ @dots{} @}
+@end smallexample
+
+The second file needed for DLL creation is an exports file.  This file
+is linked with the object files that make up the body of the DLL and it
+handles the interface between the DLL and the outside world.  This is a
+binary file and it can be created by giving the @samp{-e} option to
+@code{dlltool} when it is creating or reading in a .def file. 
+
+The third file needed for DLL creation is the library file that programs
+will link with in order to access the functions in the DLL.  This file
+can be created by giving the @samp{-l} option to dlltool when it
+is creating or reading in a .def file.
+
+@code{dlltool} builds the library file by hand, but it builds the
+exports file by creating temporary files containing assembler statements
+and then assembling these.  The @samp{-S} command line option can be
+used to specify the path to the assembler that dlltool will use,
+and the @samp{-f} option can be used to pass specific flags to that
+assembler.  The @samp{-n} can be used to prevent dlltool from deleting
+these temporary assembler files when it is done, and if @samp{-n} is
+specified twice then this will prevent dlltool from deleting the
+temporary object files it used to build the library.
+
+Here is an example of creating a DLL from a source file @samp{dll.c} and
+also creating a program (from an object file called @samp{program.o})
+that uses that DLL:
+
+@smallexample
+  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
+@end smallexample
+
+@c man end
+
+@c man begin OPTIONS dlltool
+
+The command line options have the following meanings:
+
+@table @code
+
+@item -d @var{filename}
+@itemx --input-def @var{filename}
+@cindex input .def file
+Specifies the name of a .def file to be read in and processed.
+
+@item -b @var{filename}
+@itemx --base-file @var{filename}
+@cindex base files
+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.
+
+@item -e @var{filename}
+@itemx --output-exp @var{filename}
+Specifies the name of the export file to be created by dlltool.
+
+@item -z @var{filename}
+@itemx --output-def @var{filename}
+Specifies the name of the .def file to be created by dlltool.
+
+@item -l @var{filename}
+@itemx --output-lib @var{filename}
+Specifies the name of the library file to be created by dlltool.
+
+@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 @code{--no-default-excludes}
+option.  You may add to the list of symbols to not export by using the
+@code{--exclude-symbols} option.
+
+@item --no-export-all-symbols
+Only export symbols explicitly listed in an input .def file or in
+@samp{.drectve} sections in the input object files.  This is the default
+behaviour.  The @samp{.drectve} sections are created by @samp{dllexport}
+attributes in the source code.
+
+@item --exclude-symbols @var{list}
+Do not export the symbols in @var{list}.  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
+@code{--export-all-symbols} is used.
+
+@item --no-default-excludes
+When @code{--export-all-symbols} is used, it will by default avoid
+exporting certain special symbols.  The current list of symbols to avoid
+exporting is @samp{DllMain@@12}, @samp{DllEntryPoint@@0},
+@samp{impure_ptr}.  You may use the @code{--no-default-excludes} option
+to go ahead and export these special symbols.  This is only meaningful
+when @code{--export-all-symbols} is used.
+
+@item -S @var{path}
+@itemx --as @var{path}
+Specifies the path, including the filename, of the assembler to be used
+to create the exports file.
+
+@item -f @var{switches}
+@itemx --as-flags @var{switches}
+Specifies any specific command line switches to be passed to the
+assembler when building the exports file.  This option will work even if
+the @samp{-S} 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 switches to the assembler they should be enclosed in
+double quotes.
+
+@item -D @var{name}
+@itemx --dll-name @var{name}
+Specifies the name to be stored in the .def file as the name of the DLL
+when the @samp{-e} option is used.  If this option is not present, then
+the filename given to the @samp{-e} option will be used as the name of
+the DLL.
+
+@item -m @var{machine}
+@itemx -machine @var{machine}
+Specifies the type of machine for which the library file should be
+built.  @code{dlltool} 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 ARM processor, when the
+contents of the DLL are actually encode using THUMB instructions.
+
+@item -a
+@itemx --add-indirect
+Specifies that when @code{dlltool} 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! 
+
+@item -U
+@itemx --add-underscore
+Specifies that when @code{dlltool} is creating the exports file it
+should prepend an underscore to the names of the exported functions. 
+
+@item -k
+@itemx --kill-at
+Specifies that when @code{dlltool} is creating the exports file it
+should not append the string @samp{@@ <number>}.  These numbers are
+called ordinal numbers and they represent another way of accessing the
+function in a DLL, other than by name.
+
+@item -A
+@itemx --add-stdcall-alias
+Specifies that when @code{dlltool} is creating the exports file it
+should add aliases for stdcall symbols without @samp{@@ <number>}
+in addition to the symbols with @samp{@@ <number>}.
+
+@item -x
+@itemx --no-idata4
+Specifies that when @code{dlltool} is creating the exports and library
+files it should omit the .idata4 section.  This is for compatibility
+with certain operating systems.
+
+@item -c
+@itemx --no-idata5
+Specifies that when @code{dlltool} is creating the exports and library
+files it should omit the .idata5 section.  This is for compatibility
+with certain operating systems.
+
+@item -i
+@itemx --interwork
+Specifies that @code{dlltool} should mark the objects in the library
+file and exports file that it produces as supporting interworking
+between ARM and THUMB code.
+
+@item -n
+@itemx --nodelete
+Makes @code{dlltool} 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. 
+
+@item -v
+@itemx --verbose
+Make dlltool describe what it is doing.
+
+@item -h
+@itemx --help
+Displays a list of command line options and then exits.
+
+@item -V
+@itemx --version
+Displays dlltool's version number and then exits.
+
+@end table
+
+@c man end
+
+@ignore
+@c man begin SEEALSO dlltool
+the Info entries for @file{binutils}.
+@c man end
+@end ignore
+
+@node readelf
+@chapter readelf
+
+@cindex ELF file information
+@kindex readelf
+
+@c man title readelf Displays information about ELF files.
+
+@smallexample
+@c man begin SYNOPSIS readelf
+readelf [ -a | --all ] 
+        [ -h | --file-header]
+        [ -l | --program-headers | --segments]
+        [ -S | --section-headers | --sections]
+        [ -e | --headers]
+        [ -s | --syms | --symbols]
+        [ -n | --notes]
+        [ -r | --relocs]
+        [ -u | --unwind]
+        [ -d | --dynamic]
+        [ -V | --version-info]
+        [ -D | --use-dynamic]
+        [ -x <number> | --hex-dump=<number>]
+        [ -w[liaprf] | --debug-dump[=info,=line,=abbrev,=pubnames,=ranges,=frames]]
+        [      --histogram]
+        [ -v | --version]
+        [ -H | --help]
+        @var{elffile}@dots{}
+@c man end
+@end smallexample
+
+@c man begin DESCRIPTION readelf
+
+@code{readelf} displays information about one or more ELF format object
+files.  The options control what particular information to display.
+
+@var{elffile}@dots{} are the object files to be examined.  At the
+moment, @code{readelf} does not support examining archives, nor does it
+support examing 64 bit ELF files.
+
+@c man end
+
+@c man begin OPTIONS readelf
+
+The long and short forms of options, shown here as alternatives, are
+equivalent.  At least one option besides @samp{-v} or @samp{-H} must be
+given. 
+
+@table @code
+@item -a
+@itemx --all
+Equivalent to specifiying @samp{--file-header},
+@samp{--program-headers}, @samp{--sections}, @samp{--symbols},
+@samp{--relocs}, @samp{--dynamic}, @samp{--notes} and
+@samp{--version-info}. 
+
+@item -h
+@itemx --file-header
+@cindex ELF file header information
+Displays the information contained in the ELF header at the start of the
+file.
+
+@item -l
+@itemx --program-headers
+@itemx --segments
+@cindex ELF program header information
+@cindex ELF segment information
+Displays the information contained in the file's segment headers, if it
+has any.
+
+@item -S
+@itemx --sections
+@itemx --section-headers
+@cindex ELF section information
+Displays the information contained in the file's section headers, if it
+has any.
+
+@item -s
+@itemx --symbols
+@itemx --syms
+@cindex ELF symbol table information
+Displays the entries in symbol table section of the file, if it has one.
+
+@item -e
+@itemx --headers
+Display all the headers in the file.  Equivalent to @samp{-h -l -S}.
+
+@item -n
+@itemx --notes
+@cindex ELF core notes
+Displays the contents of the NOTE segment, if it exists.
+
+@item -r
+@itemx --relocs
+@cindex ELF reloc information
+Displays the contents of the file's relocation section, if it has one.
+
+@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
+Displays the contents of the file's dynamic section, if it has one.
+
+@item -V
+@itemx --version-info
+@cindex ELF version sections informations
+Displays the contents of the version sections in the file, it they
+exist.
+
+@item -D
+@itemx --use-dynamic
+When displaying symbols, this option makes @code{readelf} use the
+symbol table in the file's dynamic section, rather than the one in the
+symbols section.
+
+@item -x <number>
+@itemx --hex-dump=<number>
+Displays the contents of the indicated section as a hexadecimal dump.
+
+@item -w[liaprf]
+@itemx --debug-dump[=line,=info,=abbrev,=pubnames,=ranges,=frames]
+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.
+
+@item --histogram
+Display a histogram of bucket list lengths when displaying the contents
+of the symbol tables.
+
+@item -v
+@itemx --version
+Display the version number of readelf.
+
+@item -H
+@itemx --help
+Display the command line options understood by @code{readelf}.
+
+@end table
+
+@c man end
+
+@ignore
+@c man begin SEEALSO readelf
+objdump(1), and the Info entries for @file{binutils}.
+@c man end
+@end ignore
+
+@node Selecting The Target System
+@chapter Selecting the target system
+
+You can specify three aspects of the target system to the @sc{gnu}
+binary file utilities, each in several ways:
+
+@itemize @bullet
+@item
+the target
+
+@item
+the architecture
+
+@item
+the linker emulation (which applies to the linker only)
+@end itemize
+
+In the following summaries, the lists of ways to specify values are in
+order of decreasing precedence.  The ways listed first override those
+listed later.
+
+The commands to list valid values only list the values for which the
+programs you are running were configured.  If they were configured with
+@samp{--enable-targets=all}, the commands list most of the available
+values, but a few are left out; not all targets can be configured in at
+once because some of them can only be configured @dfn{native} (on hosts
+with the same type as the target system).
+
+@menu
+* Target Selection::            
+* Architecture Selection::      
+* Linker Emulation Selection::  
+@end menu
+
+@node Target Selection
+@section Target Selection
+
+A @dfn{target} is an object file format.  A given target may be
+supported for multiple architectures (@pxref{Architecture Selection}).
+A target selection may also have variations for different operating
+systems or architectures.
+
+The command to list valid target values is @samp{objdump -i}
+(the first column of output contains the relevant information).
+
+Some sample values are: @samp{a.out-hp300bsd}, @samp{ecoff-littlemips},
+@samp{a.out-sunos-big}.
+
+You can also specify a target using a configuration triplet.  This is
+the same sort of name that is passed to @file{configure} to specify a
+target.  When you use a configuration triplet as an argument, it must be
+fully canonicalized.  You can see the canonical version of a triplet by
+running the shell script @file{config.sub} which is included with the
+sources.
+
+Some sample configuration triplets are: @samp{m68k-hp-bsd},
+@samp{mips-dec-ultrix}, @samp{sparc-sun-sunos}.
+
+@subheading @code{objdump} Target
+
+Ways to specify:
+
+@enumerate
+@item
+command line option: @samp{-b} or @samp{--target}
+
+@item
+environment variable @code{GNUTARGET}
+
+@item
+deduced from the input file
+@end enumerate
+
+@subheading @code{objcopy} and @code{strip} Input Target
+
+Ways to specify:
+
+@enumerate
+@item
+command line options: @samp{-I} or @samp{--input-target}, or @samp{-F} or @samp{--target}
+
+@item
+environment variable @code{GNUTARGET}
+
+@item
+deduced from the input file
+@end enumerate
+
+@subheading @code{objcopy} and @code{strip} Output Target
+
+Ways to specify:
+
+@enumerate
+@item
+command line options: @samp{-O} or @samp{--output-target}, or @samp{-F} or @samp{--target}
+
+@item
+the input target (see ``@code{objcopy} and @code{strip} Input Target'' above)
+
+@item
+environment variable @code{GNUTARGET}
+
+@item
+deduced from the input file
+@end enumerate
+
+@subheading @code{nm}, @code{size}, and @code{strings} Target
+
+Ways to specify:
+
+@enumerate
+@item
+command line option: @samp{--target}
+
+@item
+environment variable @code{GNUTARGET}
+
+@item
+deduced from the input file
+@end enumerate
+
+@subheading Linker Input Target
+
+Ways to specify:
+
+@enumerate
+@item
+command line option: @samp{-b} or @samp{--format}
+(@pxref{Options,,Options,ld.info,Using LD})
+
+@item
+script command @code{TARGET}
+(@pxref{Option Commands,,Option Commands,ld.info,Using LD})
+
+@item
+environment variable @code{GNUTARGET}
+(@pxref{Environment,,Environment,ld.info,Using LD})
+
+@item
+the default target of the selected linker emulation
+(@pxref{Linker Emulation Selection})
+@end enumerate
+
+@subheading Linker Output Target
+
+Ways to specify:
+
+@enumerate
+@item
+command line option: @samp{-oformat}
+(@pxref{Options,,Options,ld.info,Using LD})
+
+@item
+script command @code{OUTPUT_FORMAT}
+(@pxref{Option Commands,,Option Commands,ld.info,Using LD})
+
+@item
+the linker input target (see ``Linker Input Target'' above)
+@end enumerate
+
+@node Architecture Selection
+@section Architecture selection
+
+An @dfn{architecture} is a type of @sc{cpu} on which an object file is
+to run.  Its name may contain a colon, separating the name of the
+processor family from the name of the particular @sc{cpu}.
+
+The command to list valid architecture values is @samp{objdump -i} (the
+second column contains the relevant information).
+
+Sample values: @samp{m68k:68020}, @samp{mips:3000}, @samp{sparc}.
+
+@subheading @code{objdump} Architecture
+
+Ways to specify:
+
+@enumerate
+@item
+command line option: @samp{-m} or @samp{--architecture}
+
+@item
+deduced from the input file
+@end enumerate
+
+@subheading @code{objcopy}, @code{nm}, @code{size}, @code{strings} Architecture
+
+Ways to specify:
+
+@enumerate
+@item
+deduced from the input file
+@end enumerate
+
+@subheading Linker Input Architecture
+
+Ways to specify:
+
+@enumerate
+@item
+deduced from the input file
+@end enumerate
+
+@subheading Linker Output Architecture
+
+Ways to specify:
+
+@enumerate
+@item
+script command @code{OUTPUT_ARCH}
+(@pxref{Option Commands,,Option Commands,ld.info,Using LD})
+
+@item
+the default architecture from the linker output target
+(@pxref{Target Selection})
+@end enumerate
+
+@node Linker Emulation Selection
+@section Linker emulation selection
+
+A linker @dfn{emulation} is a ``personality'' of the linker, which gives
+the linker default values for the other aspects of the target system.
+In particular, it consists of
+
+@itemize @bullet
+@item
+the linker script
+
+@item
+the target
+
+@item
+several ``hook'' functions that are run at certain stages of the linking
+process to do special things that some targets require
+@end itemize
+
+The command to list valid linker emulation values is @samp{ld -V}.
+
+Sample values: @samp{hp300bsd}, @samp{mipslit}, @samp{sun4}.
+
+Ways to specify:
+
+@enumerate
+@item
+command line option: @samp{-m}
+(@pxref{Options,,Options,ld.info,Using LD})
+
+@item
+environment variable @code{LDEMULATION}
+
+@item
+compiled-in @code{DEFAULT_EMULATION} from @file{Makefile},
+which comes from @code{EMUL} in @file{config/@var{target}.mt}
+@end enumerate
+
+@node Reporting Bugs
+@chapter Reporting Bugs
+@cindex bugs
+@cindex reporting bugs
+
+Your bug reports play an essential role in making the binary utilities
+reliable.
+
+Reporting a bug may help you by bringing a solution to your problem, or
+it may not.  But in any case the principal function of a bug report is
+to help the entire community by making the next version of the binary
+utilities work better.  Bug reports are your contribution to their
+maintenance.
+
+In order for a bug report to serve its purpose, you must include the
+information that enables us to fix the bug.
+
+@menu
+* Bug Criteria::                Have you found a bug?
+* Bug Reporting::               How to report bugs
+@end menu
+
+@node Bug Criteria
+@section Have you found a bug?
+@cindex bug criteria
+
+If you are not sure whether you have found a bug, here are some guidelines:
+
+@itemize @bullet
+@cindex fatal signal
+@cindex crash
+@item
+If a binary utility gets a fatal signal, for any input whatever, that is
+a bug.  Reliable utilities never crash.
+
+@cindex error on valid input
+@item
+If a binary utility produces an error message for valid input, that is a
+bug.
+
+@item
+If you are an experienced user of binary utilities, your suggestions for
+improvement are welcome in any case.
+@end itemize
+
+@node Bug Reporting
+@section How to report bugs
+@cindex bug reports
+@cindex bugs, reporting
+
+A number of companies and individuals offer support for @sc{gnu}
+products.  If you obtained the binary utilities from a support
+organization, we recommend you contact that organization first.
+
+You can find contact information for many support companies and
+individuals in the file @file{etc/SERVICE} in the @sc{gnu} Emacs
+distribution.
+
+In any event, we also recommend that you send bug reports for the binary
+utilities to @samp{bug-binutils@@gnu.org}.
+
+The fundamental principle of reporting bugs usefully is this:
+@strong{report all the facts}.  If you are not sure whether to state a
+fact or leave it out, state it!
+
+Often people omit facts because they think they know what causes the
+problem and assume that some details do not matter.  Thus, you might
+assume that the name of a file you use in an example does not matter.
+Well, probably it does not, but one cannot be sure.  Perhaps the bug is
+a stray memory reference which happens to fetch from the location where
+that pathname is stored in memory; perhaps, if the pathname were
+different, the contents of that location would fool the utility into
+doing the right thing despite the bug.  Play it safe and give a
+specific, complete example.  That is the easiest thing for you to do,
+and the most helpful.
+
+Keep in mind that the purpose of a bug report is to enable us to fix the bug if
+it is new to us.  Therefore, always write your bug reports on the assumption
+that the bug has not been reported previously.
+
+Sometimes people give a few sketchy facts and ask, ``Does this ring a
+bell?''  Those bug reports are useless, and we urge everyone to
+@emph{refuse to respond to them} except to chide the sender to report
+bugs properly.
+
+To enable us to fix the bug, you should include all these things:
+
+@itemize @bullet
+@item
+The version of the utility.  Each utility announces it if you start it
+with the @samp{--version} argument.
+
+Without this, we will not know whether there is any point in looking for
+the bug in the current version of the binary utilities.
+
+@item
+Any patches you may have applied to the source, including any patches
+made to the @code{BFD} library.
+
+@item
+The type of machine you are using, and the operating system name and
+version number.
+
+@item
+What compiler (and its version) was used to compile the utilities---e.g.
+``@code{gcc-2.7}''.
+
+@item
+The command arguments you gave the utility to observe the bug.  To
+guarantee you will not omit something important, list them all.  A copy
+of the Makefile (or the output from make) is sufficient.
+
+If we were to try to guess the arguments, we would probably guess wrong
+and then we might not encounter the bug.
+
+@item
+A complete input file, or set of input files, that will reproduce the
+bug.  If the utility is reading an object file or files, then it is
+generally most helpful to send the actual object files, uuencoded if
+necessary to get them through the mail system.  Note that
+@samp{bug-binutils@@gnu.org} is a mailing list, so you should avoid
+sending very large files to it.  Making the files available for
+anonymous FTP is OK.
+
+If the source files were produced exclusively using @sc{gnu} programs
+(e.g., @code{gcc}, @code{gas}, and/or the @sc{gnu} @code{ld}), then it
+may be OK to send the source files rather than the object files.  In
+this case, be sure to say exactly what version of @code{gcc}, or
+whatever, was used to produce the object files.  Also say how
+@code{gcc}, or whatever, was configured.
+
+@item
+A description of what behavior you observe that you believe is
+incorrect.  For example, ``It gets a fatal signal.''
+
+Of course, if the bug is that the utility gets a fatal signal, then we
+will certainly notice it.  But if the bug is incorrect output, we might
+not notice unless it is glaringly wrong.  You might as well not give us
+a chance to make a mistake.
+
+Even if the problem you experience is a fatal signal, you should still
+say so explicitly.  Suppose something strange is going on, such as your
+copy of the utility is out of synch, or you have encountered a bug in
+the C library on your system.  (This has happened!)  Your copy might
+crash and ours would not.  If you told us to expect a crash, then when
+ours fails to crash, we would know that the bug was not happening for
+us.  If you had not told us to expect a crash, then we would not be able
+to draw any conclusion from our observations.
+
+@item
+If you wish to suggest changes to the source, send us context diffs, as
+generated by @code{diff} with the @samp{-u}, @samp{-c}, or @samp{-p}
+option.  Always send diffs from the old file to the new file.  If you
+wish to discuss something in the @code{ld} source, refer to it by
+context, not by line number.
+
+The line numbers in our development sources will not match those in your
+sources.  Your line numbers would convey no useful information to us.
+@end itemize
+
+Here are some things that are not necessary:
+
+@itemize @bullet
+@item
+A description of the envelope of the bug.
+
+Often people who encounter a bug spend a lot of time investigating
+which changes to the input file will make the bug go away and which
+changes will not affect it.
+
+This is often time consuming and not very useful, because the way we
+will find the bug is by running a single example under the debugger
+with breakpoints, not by pure deduction from a series of examples.
+We recommend that you save your time for something else.
+
+Of course, if you can find a simpler example to report @emph{instead}
+of the original one, that is a convenience for us.  Errors in the
+output will be easier to spot, running under the debugger will take
+less time, and so on.
+
+However, simplification is not vital; if you do not want to do this,
+report the bug anyway and send us the entire test case you used.
+
+@item
+A patch for the bug.
+
+A patch for the bug does help us if it is a good one.  But do not omit
+the necessary information, such as the test case, on the assumption that
+a patch is all we need.  We might see problems with your patch and decide
+to fix the problem another way, or we might not understand it at all.
+
+Sometimes with programs as complicated as the binary utilities it is
+very hard to construct an example that will make the program follow a
+certain path through the code.  If you do not send us the example, we
+will not be able to construct one, so we will not be able to verify that
+the bug is fixed.
+
+And if we cannot understand what bug you are trying to fix, or why your
+patch should be an improvement, we will not install it.  A test case will
+help us to understand.
+
+@item
+A guess about what the bug is or what it depends on.
+
+Such guesses are usually wrong.  Even we cannot guess right about such
+things without first using the debugger to find the facts.
+@end itemize
+
+@node GNU Free Documentation License
+@chapter GNU Free Documentation License
+@cindex GNU Free Documentation License
+
+                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:
+
+@smallexample
+    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".
+@end smallexample
+
+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.
+
+@node Index
+@unnumbered Index
+
+@printindex cp
+
+@contents
+@bye
diff --git a/binutils/nlmconv.1 b/binutils/nlmconv.1
deleted file mode 100644 (file)
index ecd8bfe..0000000
+++ /dev/null
@@ -1,225 +0,0 @@
-.\" Automatically generated by Pod::Man version 1.02
-.\" Wed May 30 12:24:27 2001
-.\"
-.\" 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 Ip \" List item
-.br
-.ie \\n(.$>=3 .ne \\$3
-.el .ne 3
-.IP "\\$1" \\$2
-..
-.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.
-.bd B 3
-.    \" 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 1"
-.TH NLMCONV.1 1 "binutils-2.11.90" "2001-05-30" "GNU"
-.UC
-.SH "NAME"
-nlmconv \- converts object code into an \s-1NLM\s0.
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-nlmconv [ \-I \fIbfdname\fR | \-\-input-target=\fIbfdname\fR ]
-        [ \-O \fIbfdname\fR | \-\-output-target=\fIbfdname\fR ]
-        [ \-T \fIheaderfile\fR | \-\-header-file=\fIheaderfile\fR ]
-        [ \-d | \-\-debug]  [ \-l \fIlinker\fR | \-\-linker=\fIlinker\fR ]
-        [ \-h | \-\-help ]  [ \-V | \-\-version ]
-        \fIinfile\fR \fIoutfile\fR
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-\&\f(CW\*(C`nlmconv\*(C'\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.
-\&\f(CW\*(C`nlmconv\*(C'\fR uses the \s-1GNU\s0 Binary File Descriptor library to read
-\&\fIinfile\fR;
-.PP
-\&\f(CW\*(C`nlmconv\*(C'\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, \f(CW\*(C`nlmconv\*(C'\fR calls the linker for you.
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-.Ip "\f(CW\*(C`\-I \f(CIbfdname\f(CW\*(C'\fR" 4
-.IX Item "-I bfdname"
-.Ip "\f(CW\*(C`\-\-input\-target=\f(CIbfdname\f(CW\*(C'\fR" 4
-.IX Item "--input-target=bfdname"
-Object format of the input file.  \f(CW\*(C`nlmconv\*(C'\fR can usually determine
-the format of a given file (so no default is necessary).
-.Ip "\f(CW\*(C`\-O \f(CIbfdname\f(CW\*(C'\fR" 4
-.IX Item "-O bfdname"
-.Ip "\f(CW\*(C`\-\-output\-target=\f(CIbfdname\f(CW\*(C'\fR" 4
-.IX Item "--output-target=bfdname"
-Object format of the output file.  \f(CW\*(C`nlmconv\*(C'\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 "\f(CW\*(C`\-T \f(CIheaderfile\f(CW\*(C'\fR" 4
-.IX Item "-T headerfile"
-.Ip "\f(CW\*(C`\-\-header\-file=\f(CIheaderfile\f(CW\*(C'\fR" 4
-.IX Item "--header-file=headerfile"
-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 "\f(CW\*(C`\-d\*(C'\fR" 4
-.IX Item "-d"
-.Ip "\f(CW\*(C`\-\-debug\*(C'\fR" 4
-.IX Item "--debug"
-Displays (on standard error) the linker command line used by \f(CW\*(C`nlmconv\*(C'\fR.
-.Ip "\f(CW\*(C`\-l \f(CIlinker\f(CW\*(C'\fR" 4
-.IX Item "-l linker"
-.Ip "\f(CW\*(C`\-\-linker=\f(CIlinker\f(CW\*(C'\fR" 4
-.IX Item "--linker=linker"
-Use \fIlinker\fR for any linking.  \fIlinker\fR can be an absolute or a
-relative pathname.
-.Ip "\f(CW\*(C`\-h\*(C'\fR" 4
-.IX Item "-h"
-.Ip "\f(CW\*(C`\-\-help\*(C'\fR" 4
-.IX Item "--help"
-Prints a usage summary.
-.Ip "\f(CW\*(C`\-V\*(C'\fR" 4
-.IX Item "-V"
-.Ip "\f(CW\*(C`\-\-version\*(C'\fR" 4
-.IX Item "--version"
-Prints the version number for \f(CW\*(C`nlmconv\*(C'\fR.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-the Info entries for \fIbinutils\fR.
-.SH "COPYRIGHT"
-.IX Header "COPYRIGHT"
-Copyright (c) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001 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 \*(L"\s-1GNU\s0 Free Documentation License\*(R".
diff --git a/binutils/nm.1 b/binutils/nm.1
deleted file mode 100644 (file)
index 4a6494f..0000000
+++ /dev/null
@@ -1,382 +0,0 @@
-.\" Automatically generated by Pod::Man version 1.02
-.\" Wed May 30 12:24:27 2001
-.\"
-.\" 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 Ip \" List item
-.br
-.ie \\n(.$>=3 .ne \\$3
-.el .ne 3
-.IP "\\$1" \\$2
-..
-.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.
-.bd B 3
-.    \" 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 1"
-.TH NM.1 1 "binutils-2.11.90" "2001-05-30" "GNU"
-.UC
-.SH "NAME"
-nm \- list symbols from object files
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-nm [ \-a | \-\-debug-syms ]  [ \-g | \-\-extern-only ]
-   [ \-B ]  [ \-C | \-\-demangle[=\fIstyle\fR] ] [ \-D | \-\-dynamic ]
-   [ \-s | \-\-print-armap ]  [ \-A | \-o | \-\-print-file-name ]
-   [ \-n | \-v | \-\-numeric-sort ]  [ \-p | \-\-no-sort ]
-   [ \-r | \-\-reverse-sort ]  [ \-\-size-sort ] [ \-u | \-\-undefined-only ]
-   [ \-t \fIradix\fR | \-\-radix=\fIradix\fR ] [ \-P | \-\-portability ]
-   [ \-\-target=\fIbfdname\fR ] [ \-f \fIformat\fR | \-\-format=\fIformat\fR ]
-   [ \-\-defined-only ] [\-l | \-\-line-numbers ]  [ \-\-no-demangle ]
-   [ \-V | \-\-version ]  [ \-X 32_64 ]  [ \-\-help ]  [ \fIobjfile\fR... ]
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-\&\s-1GNU\s0 \f(CW\*(C`nm\*(C'\fR lists the symbols from object files \fIobjfile\fR....
-If no object files are listed as arguments, \f(CW\*(C`nm\*(C'\fR assumes the file
-\&\fIa.out\fR.
-.PP
-For each symbol, \f(CW\*(C`nm\*(C'\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
-.Ip "\f(CW\*(C`A\*(C'\fR" 4
-.IX Item "A"
-The symbol's value is absolute, and will not be changed by further
-linking.
-.Ip "\f(CW\*(C`B\*(C'\fR" 4
-.IX Item "B"
-The symbol is in the uninitialized data section (known as \s-1BSS\s0).
-.Ip "\f(CW\*(C`C\*(C'\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.
-.Ip "\f(CW\*(C`D\*(C'\fR" 4
-.IX Item "D"
-The symbol is in the initialized data section.
-.Ip "\f(CW\*(C`G\*(C'\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.
-.Ip "\f(CW\*(C`I\*(C'\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.
-.Ip "\f(CW\*(C`N\*(C'\fR" 4
-.IX Item "N"
-The symbol is a debugging symbol.
-.Ip "\f(CW\*(C`R\*(C'\fR" 4
-.IX Item "R"
-The symbol is in a read only data section.
-.Ip "\f(CW\*(C`S\*(C'\fR" 4
-.IX Item "S"
-The symbol is in an uninitialized data section for small objects.
-.Ip "\f(CW\*(C`T\*(C'\fR" 4
-.IX Item "T"
-The symbol is in the text (code) section.
-.Ip "\f(CW\*(C`U\*(C'\fR" 4
-.IX Item "U"
-The symbol is undefined.
-.Ip "\f(CW\*(C`V\*(C'\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.
-.Ip "\f(CW\*(C`W\*(C'\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 weak symbol becomes zero with no error.
-.Ip "\f(CW\*(C`\-\*(C'\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;
-for more information, see \f(CW@ref\fR{Top,Stabs,Stabs Overview,stabs.info, The
-``stabs'' debug format}.
-.Ip "\f(CW\*(C`?\*(C'\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 "\f(CW\*(C`\-A\*(C'\fR" 4
-.IX Item "-A"
-.Ip "\f(CW\*(C`\-o\*(C'\fR" 4
-.IX Item "-o"
-.Ip "\f(CW\*(C`\-\-print\-file\-name \*(C'\fR" 4
-.IX Item "--print-file-name "
-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 "\f(CW\*(C`\-a\*(C'\fR" 4
-.IX Item "-a"
-.Ip "\f(CW\*(C`\-\-debug\-syms \*(C'\fR" 4
-.IX Item "--debug-syms "
-Display all symbols, even debugger-only symbols; normally these are not
-listed.
-.Ip "\f(CW\*(C`\-B\*(C'\fR" 4
-.IX Item "-B"
-The same as \fB\*(--format=bsd\fR (for compatibility with the \s-1MIPS\s0 \f(CW\*(C`nm\*(C'\fR).
-.Ip "\f(CW\*(C`\-C\*(C'\fR" 4
-.IX Item "-C"
-.Ip "\f(CW\*(C`\-\-demangle[=\f(CIstyle\f(CW]\*(C'\fR" 4
-.IX Item "--demangle[=style]"
-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 "\f(CW\*(C`\-\-no\-demangle\*(C'\fR" 4
-.IX Item "--no-demangle"
-Do not demangle low-level symbol names.  This is the default.
-.Ip "\f(CW\*(C`\-D\*(C'\fR" 4
-.IX Item "-D"
-.Ip "\f(CW\*(C`\-\-dynamic\*(C'\fR" 4
-.IX Item "--dynamic"
-Display the dynamic symbols rather than the normal symbols.  This is
-only meaningful for dynamic objects, such as certain types of shared
-libraries.
-.Ip "\f(CW\*(C`\-f \f(CIformat\f(CW\*(C'\fR" 4
-.IX Item "-f format"
-.Ip "\f(CW\*(C`\-\-format=\f(CIformat\f(CW\*(C'\fR" 4
-.IX Item "--format=format"
-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 "\f(CW\*(C`\-g\*(C'\fR" 4
-.IX Item "-g"
-.Ip "\f(CW\*(C`\-\-extern\-only \*(C'\fR" 4
-.IX Item "--extern-only "
-Display only external symbols.
-.Ip "\f(CW\*(C`\-l\*(C'\fR" 4
-.IX Item "-l"
-.Ip "\f(CW\*(C`\-\-line\-numbers\*(C'\fR" 4
-.IX Item "--line-numbers"
-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 "\f(CW\*(C`\-n\*(C'\fR" 4
-.IX Item "-n"
-.Ip "\f(CW\*(C`\-v\*(C'\fR" 4
-.IX Item "-v"
-.Ip "\f(CW\*(C`\-\-numeric\-sort \*(C'\fR" 4
-.IX Item "--numeric-sort "
-Sort symbols numerically by their addresses, rather than alphabetically
-by their names. 
-.Ip "\f(CW\*(C`\-p\*(C'\fR" 4
-.IX Item "-p"
-.Ip "\f(CW\*(C`\-\-no\-sort \*(C'\fR" 4
-.IX Item "--no-sort "
-Do not bother to sort the symbols in any order; print them in the order
-encountered.
-.Ip "\f(CW\*(C`\-P\*(C'\fR" 4
-.IX Item "-P"
-.Ip "\f(CW\*(C`\-\-portability\*(C'\fR" 4
-.IX Item "--portability"
-Use the \s-1POSIX\s0.2 standard output format instead of the default format.
-Equivalent to \fB\-f posix\fR.
-.Ip "\f(CW\*(C`\-s\*(C'\fR" 4
-.IX Item "-s"
-.Ip "\f(CW\*(C`\-\-print\-armap\*(C'\fR" 4
-.IX Item "--print-armap"
-When listing symbols from archive members, include the index: a mapping
-(stored in the archive by \f(CW\*(C`ar\*(C'\fR or \f(CW\*(C`ranlib\*(C'\fR) of which modules
-contain definitions for which names.
-.Ip "\f(CW\*(C`\-r\*(C'\fR" 4
-.IX Item "-r"
-.Ip "\f(CW\*(C`\-\-reverse\-sort \*(C'\fR" 4
-.IX Item "--reverse-sort "
-Reverse the order of the sort (whether numeric or alphabetic); let the
-last come first.
-.Ip "\f(CW\*(C`\-\-size\-sort\*(C'\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.  The size of the symbol is printed, rather than the value.
-.Ip "\f(CW\*(C`\-t \f(CIradix\f(CW\*(C'\fR" 4
-.IX Item "-t radix"
-.Ip "\f(CW\*(C`\-\-radix=\f(CIradix\f(CW\*(C'\fR" 4
-.IX Item "--radix=radix"
-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 "\f(CW\*(C`\-\-target=\f(CIbfdname\f(CW\*(C'\fR" 4
-.IX Item "--target=bfdname"
-Specify an object code format other than your system's default format.
-.Ip "\f(CW\*(C`\-u\*(C'\fR" 4
-.IX Item "-u"
-.Ip "\f(CW\*(C`\-\-undefined\-only \*(C'\fR" 4
-.IX Item "--undefined-only "
-Display only undefined symbols (those external to each object file).
-.Ip "\f(CW\*(C`\-\-defined\-only\*(C'\fR" 4
-.IX Item "--defined-only"
-Display only defined symbols for each object file.
-.Ip "\f(CW\*(C`\-V\*(C'\fR" 4
-.IX Item "-V"
-.Ip "\f(CW\*(C`\-\-version\*(C'\fR" 4
-.IX Item "--version"
-Show the version number of \f(CW\*(C`nm\*(C'\fR and exit.
-.Ip "\f(CW\*(C`\-X\*(C'\fR" 4
-.IX Item "-X"
-This option is ignored for compatibility with the \s-1AIX\s0 version of
-\&\f(CW\*(C`nm\*(C'\fR.  It takes one parameter which must be the string
-\&\f(CW\*(C`32_64\*(C'\fR.  The default mode of \s-1AIX\s0 \f(CW\*(C`nm\*(C'\fR corresponds
-to \f(CW\*(C`\-X 32\*(C'\fR, which is not supported by \s-1GNU\s0 \f(CW\*(C`nm\*(C'\fR.
-.Ip "\f(CW\*(C`\-\-help\*(C'\fR" 4
-.IX Item "--help"
-Show a summary of the options to \f(CW\*(C`nm\*(C'\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, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001 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 \*(L"\s-1GNU\s0 Free Documentation License\*(R".
diff --git a/binutils/objcopy.1 b/binutils/objcopy.1
deleted file mode 100644 (file)
index a6aa181..0000000
+++ /dev/null
@@ -1,548 +0,0 @@
-.\" Automatically generated by Pod::Man version 1.02
-.\" Wed May 30 12:24:28 2001
-.\"
-.\" 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 Ip \" List item
-.br
-.ie \\n(.$>=3 .ne \\$3
-.el .ne 3
-.IP "\\$1" \\$2
-..
-.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.
-.bd B 3
-.    \" 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 1"
-.TH OBJCOPY.1 1 "binutils-2.11.90" "2001-05-30" "GNU"
-.UC
-.SH "NAME"
-objcopy \- copy and translate object files
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-objcopy [ \-F \fIbfdname\fR | \-\-target=\fIbfdname\fR ]
-        [ \-I \fIbfdname\fR | \-\-input-target=\fIbfdname\fR ]
-        [ \-O \fIbfdname\fR | \-\-output-target=\fIbfdname\fR ]
-        [ \-B \fIbfdarch\fR | \-\-binary-architecture=\fIbfdarch\fR ]
-        [ \-S | \-\-strip-all ]  [ \-g | \-\-strip-debug ]
-        [ \-K \fIsymbolname\fR | \-\-keep-symbol=\fIsymbolname\fR ]
-        [ \-N \fIsymbolname\fR | \-\-strip-symbol=\fIsymbolname\fR ]
-        [ \-G \fIsymbolname\fR | \-\-keep-global-symbol=\fIsymbolname\fR]
-        [ \-L \fIsymbolname\fR | \-\-localize-symbol=\fIsymbolname\fR ]
-        [ \-W \fIsymbolname\fR | \-\-weaken-symbol=\fIsymbolname\fR ]
-        [ \-x | \-\-discard-all ]  [ \-X | \-\-discard-locals ]
-        [ \-b \fIbyte\fR | \-\-byte=\fIbyte\fR ]
-        [ \-i \fIinterleave\fR | \-\-interleave=\fIinterleave\fR ]
-        [ \-j \fIsectionname\fR | \-\-only-section=\fIsectionname\fR ]
-        [ \-R \fIsectionname\fR | \-\-remove-section=\fIsectionname\fR ]
-        [ \-p | \-\-preserve-dates ] [ \-\-debugging ]
-        [ \-\-gap-fill=\fIval\fR ] [ \-\-pad-to=\fIaddress\fR ]
-        [ \-\-set-start=\fIval\fR ] [ \-\-adjust-start=\fIincr\fR ]
-        [ \-\-change-addresses=\fIincr\fR ]
-        [ \-\-change-section-address \fIsection\fR{=,+,\-}\fIval\fR ]
-        [ \-\-change-section-lma \fIsection\fR{=,+,\-}\fIval\fR ]
-        [ \-\-change-section-vma \fIsection\fR{=,+,\-}\fIval\fR ]
-        [ \-\-change-warnings ] [ \-\-no-change-warnings ]
-        [ \-\-set-section-flags \fIsection\fR=\fIflags\fR ]
-        [ \-\-add-section \fIsectionname\fR=\fIfilename\fR ]
-        [ \-\-change-leading-char ] [ \-\-remove-leading-char ]
-        [ \-\-srec-len=\fIival\fR ] [ \-\-srec-forceS3 ]
-        [ \-\-redefine-sym \fIold\fR=\fInew\fR ] [ \-\-weaken ]
-        [ \-\-keep-symbols=\fIfilename\fR ]
-        [ \-\-strip-symbols=\fIfilename\fR ]
-        [ \-\-keep-global-symbols=\fIfilename\fR ]
-        [ \-\-localize-symbols=\fIfilename\fR ]
-        [ \-\-weaken-symbols=\fIfilename\fR ]
-        [ \-v | \-\-verbose ] [ \-V | \-\-version ]  [ \-\-help ]
-        \fIinfile\fR [\fIoutfile\fR]
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-The \s-1GNU\s0 \f(CW\*(C`objcopy\*(C'\fR utility copies the contents of an object
-file to another.  \f(CW\*(C`objcopy\*(C'\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 \f(CW\*(C`objcopy\*(C'\fR is controlled by command-line options.
-Note that \f(CW\*(C`objcopy\*(C'\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
-\&\f(CW\*(C`objcopy\*(C'\fR creates temporary files to do its translations and
-deletes them afterward.  \f(CW\*(C`objcopy\*(C'\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
-\&\f(CW\*(C`objcopy\*(C'\fR can be used to generate S-records by using an output
-target of \fBsrec\fR (e.g., use \fB\-O srec\fR).
-.PP
-\&\f(CW\*(C`objcopy\*(C'\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
-\&\f(CW\*(C`objcopy\*(C'\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 \- \f(CW\*(C`objcopy\*(C'\fR is not able to change the endianness of its input
-files.  If the input format has an endianness, (some formats do not),
-\&\f(CW\*(C`objcopy\*(C'\fR can only copy the inputs into file formats that have the
-same endianness or which have no endianness (eg \fBsrec\fR).
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-.Ip "\f(CW\*(C`\f(CIinfile\f(CW\*(C'\fR" 4
-.IX Item "infile"
-.Ip "\f(CW\*(C`\f(CIoutfile\f(CW\*(C'\fR" 4
-.IX Item "outfile"
-The input and output files, respectively.
-If you do not specify \fIoutfile\fR, \f(CW\*(C`objcopy\*(C'\fR creates a
-temporary file and destructively renames the result with
-the name of \fIinfile\fR.
-.Ip "\f(CW\*(C`\-I \f(CIbfdname\f(CW   \*(C'\fR" 4
-.IX Item "-I bfdname   "
-.Ip "\f(CW\*(C`\-\-input\-target=\f(CIbfdname\f(CW\*(C'\fR" 4
-.IX Item "--input-target=bfdname"
-Consider the source file's object format to be \fIbfdname\fR, rather than
-attempting to deduce it.  
-.Ip "\f(CW\*(C`\-O \f(CIbfdname\f(CW\*(C'\fR" 4
-.IX Item "-O bfdname"
-.Ip "\f(CW\*(C`\-\-output\-target=\f(CIbfdname\f(CW\*(C'\fR" 4
-.IX Item "--output-target=bfdname"
-Write the output file using the object format \fIbfdname\fR.
-.Ip "\f(CW\*(C`\-F \f(CIbfdname\f(CW\*(C'\fR" 4
-.IX Item "-F bfdname"
-.Ip "\f(CW\*(C`\-\-target=\f(CIbfdname\f(CW\*(C'\fR" 4
-.IX Item "--target=bfdname"
-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 "\f(CW\*(C`\-B \f(CIbfdarch\f(CW\*(C'\fR" 4
-.IX Item "-B bfdarch"
-.Ip "\f(CW\*(C`\-\-binary\-architecture=\f(CIbfdarch\f(CW\*(C'\fR" 4
-.IX Item "--binary-architecture=bfdarch"
-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 "\f(CW\*(C`\-j \f(CIsectionname\f(CW\*(C'\fR" 4
-.IX Item "-j sectionname"
-.Ip "\f(CW\*(C`\-\-only\-section=\f(CIsectionname\f(CW\*(C'\fR" 4
-.IX Item "--only-section=sectionname"
-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 "\f(CW\*(C`\-R \f(CIsectionname\f(CW\*(C'\fR" 4
-.IX Item "-R sectionname"
-.Ip "\f(CW\*(C`\-\-remove\-section=\f(CIsectionname\f(CW\*(C'\fR" 4
-.IX Item "--remove-section=sectionname"
-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 "\f(CW\*(C`\-S\*(C'\fR" 4
-.IX Item "-S"
-.Ip "\f(CW\*(C`\-\-strip\-all\*(C'\fR" 4
-.IX Item "--strip-all"
-Do not copy relocation and symbol information from the source file.
-.Ip "\f(CW\*(C`\-g\*(C'\fR" 4
-.IX Item "-g"
-.Ip "\f(CW\*(C`\-\-strip\-debug\*(C'\fR" 4
-.IX Item "--strip-debug"
-Do not copy debugging symbols from the source file.
-.Ip "\f(CW\*(C`\-\-strip\-unneeded\*(C'\fR" 4
-.IX Item "--strip-unneeded"
-Strip all symbols that are not needed for relocation processing.
-.Ip "\f(CW\*(C`\-K \f(CIsymbolname\f(CW\*(C'\fR" 4
-.IX Item "-K symbolname"
-.Ip "\f(CW\*(C`\-\-keep\-symbol=\f(CIsymbolname\f(CW\*(C'\fR" 4
-.IX Item "--keep-symbol=symbolname"
-Copy only symbol \fIsymbolname\fR from the source file.  This option may
-be given more than once.
-.Ip "\f(CW\*(C`\-N \f(CIsymbolname\f(CW\*(C'\fR" 4
-.IX Item "-N symbolname"
-.Ip "\f(CW\*(C`\-\-strip\-symbol=\f(CIsymbolname\f(CW\*(C'\fR" 4
-.IX Item "--strip-symbol=symbolname"
-Do not copy symbol \fIsymbolname\fR from the source file.  This option
-may be given more than once.
-.Ip "\f(CW\*(C`\-G \f(CIsymbolname\f(CW\*(C'\fR" 4
-.IX Item "-G symbolname"
-.Ip "\f(CW\*(C`\-\-keep\-global\-symbol=\f(CIsymbolname\f(CW\*(C'\fR" 4
-.IX Item "--keep-global-symbol=symbolname"
-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 "\f(CW\*(C`\-L \f(CIsymbolname\f(CW\*(C'\fR" 4
-.IX Item "-L symbolname"
-.Ip "\f(CW\*(C`\-\-localize\-symbol=\f(CIsymbolname\f(CW\*(C'\fR" 4
-.IX Item "--localize-symbol=symbolname"
-Make symbol \fIsymbolname\fR local to the file, so that it is not
-visible externally.  This option may be given more than once.
-.Ip "\f(CW\*(C`\-W \f(CIsymbolname\f(CW\*(C'\fR" 4
-.IX Item "-W symbolname"
-.Ip "\f(CW\*(C`\-\-weaken\-symbol=\f(CIsymbolname\f(CW\*(C'\fR" 4
-.IX Item "--weaken-symbol=symbolname"
-Make symbol \fIsymbolname\fR weak. This option may be given more than once.
-.Ip "\f(CW\*(C`\-x\*(C'\fR" 4
-.IX Item "-x"
-.Ip "\f(CW\*(C`\-\-discard\-all\*(C'\fR" 4
-.IX Item "--discard-all"
-Do not copy non-global symbols from the source file.
-.Ip "\f(CW\*(C`\-X\*(C'\fR" 4
-.IX Item "-X"
-.Ip "\f(CW\*(C`\-\-discard\-locals\*(C'\fR" 4
-.IX Item "--discard-locals"
-Do not copy compiler-generated local symbols.
-(These usually start with \fBL\fR or \fB.\fR.)
-.Ip "\f(CW\*(C`\-b \f(CIbyte\f(CW\*(C'\fR" 4
-.IX Item "-b byte"
-.Ip "\f(CW\*(C`\-\-byte=\f(CIbyte\f(CW\*(C'\fR" 4
-.IX Item "--byte=byte"
-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 "\f(CW\*(C`\-i \f(CIinterleave\f(CW\*(C'\fR" 4
-.IX Item "-i interleave"
-.Ip "\f(CW\*(C`\-\-interleave=\f(CIinterleave\f(CW\*(C'\fR" 4
-.IX Item "--interleave=interleave"
-Only copy one out of every \fIinterleave\fR bytes.  Select which byte to
-copy with the \fI\-b\fR or \fB\*(--byte\fR option.  The default is 4.
-\&\f(CW\*(C`objcopy\*(C'\fR ignores this option if you do not specify either \fB\-b\fR or
-\&\fB\*(--byte\fR.
-.Ip "\f(CW\*(C`\-p\*(C'\fR" 4
-.IX Item "-p"
-.Ip "\f(CW\*(C`\-\-preserve\-dates\*(C'\fR" 4
-.IX Item "--preserve-dates"
-Set the access and modification dates of the output file to be the same
-as those of the input file.
-.Ip "\f(CW\*(C`\-\-debugging\*(C'\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 "\f(CW\*(C`\-\-gap\-fill \f(CIval\f(CW\*(C'\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 "\f(CW\*(C`\-\-pad\-to \f(CIaddress\f(CW\*(C'\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 "\f(CW\*(C`\-\-set\-start \f(CIval\f(CW\*(C'\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 "\f(CW\*(C`\-\-change\-start \f(CIincr\f(CW\*(C'\fR" 4
-.IX Item "--change-start incr"
-.Ip "\f(CW\*(C`\-\-adjust\-start \f(CIincr\f(CW\*(C'\fR" 4
-.IX Item "--adjust-start incr"
-Change the start address by adding \fIincr\fR.  Not all object file
-formats support setting the start address.
-.Ip "\f(CW\*(C`\-\-change\-addresses \f(CIincr\f(CW\*(C'\fR" 4
-.IX Item "--change-addresses incr"
-.Ip "\f(CW\*(C`\-\-adjust\-vma \f(CIincr\f(CW\*(C'\fR" 4
-.IX Item "--adjust-vma incr"
-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 "\f(CW\*(C`\-\-change\-section\-address \f(CIsection\f(CW{=,+,\-}\f(CIval\f(CW\*(C'\fR" 4
-.IX Item "--change-section-address section{=,+,-}val"
-.Ip "\f(CW\*(C`\-\-adjust\-section\-vma \f(CIsection\f(CW{=,+,\-}\f(CIval\f(CW\*(C'\fR" 4
-.IX Item "--adjust-section-vma section{=,+,-}val"
-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 "\f(CW\*(C`\-\-change\-section\-lma \f(CIsection\f(CW{=,+,\-}\f(CIval\f(CW\*(C'\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 "\f(CW\*(C`\-\-change\-section\-vma \f(CIsection\f(CW{=,+,\-}\f(CIval\f(CW\*(C'\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 "\f(CW\*(C`\-\-change\-warnings\*(C'\fR" 4
-.IX Item "--change-warnings"
-.Ip "\f(CW\*(C`\-\-adjust\-warnings\*(C'\fR" 4
-.IX Item "--adjust-warnings"
-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 "\f(CW\*(C`\-\-no\-change\-warnings\*(C'\fR" 4
-.IX Item "--no-change-warnings"
-.Ip "\f(CW\*(C`\-\-no\-adjust\-warnings\*(C'\fR" 4
-.IX Item "--no-adjust-warnings"
-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 "\f(CW\*(C`\-\-set\-section\-flags \f(CIsection\f(CW=\f(CIflags\f(CW\*(C'\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 "\f(CW\*(C`\-\-add\-section \f(CIsectionname\f(CW=\f(CIfilename\f(CW\*(C'\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 "\f(CW\*(C`\-\-change\-leading\-char\*(C'\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 \f(CW\*(C`objcopy\*(C'\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 "\f(CW\*(C`\-\-remove\-leading\-char\*(C'\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
-\&\f(CW\*(C`\-\-change\-leading\-char\*(C'\fR because it always changes the symbol name
-when appropriate, regardless of the object file format of the output
-file.
-.Ip "\f(CW\*(C`\-\-srec\-len=\f(CIival\f(CW\*(C'\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 "\f(CW\*(C`\-\-srec\-forceS3\*(C'\fR" 4
-.IX Item "--srec-forceS3"
-Meaningful only for srec output.  Avoid generation of S1/S2 records, 
-creating S3\-only record format.
-.Ip "\f(CW\*(C`\-\-redefine\-sym \f(CIold\f(CW=\f(CInew\f(CW\*(C'\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 "\f(CW\*(C`\-\-weaken\*(C'\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 \f(CW\*(C`\-R\*(C'\fR option to the linker.  This option is only effective when
-using an object file format which supports weak symbols.
-.Ip "\f(CW\*(C`\-\-keep\-symbols=\f(CIfilename\f(CW\*(C'\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 "\f(CW\*(C`\-\-strip\-symbols=\f(CIfilename\f(CW\*(C'\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 "\f(CW\*(C`\-\-keep\-global\-symbols=\f(CIfilename\f(CW\*(C'\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 "\f(CW\*(C`\-\-localize\-symbols=\f(CIfilename\f(CW\*(C'\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 "\f(CW\*(C`\-\-weaken\-symbols=\f(CIfilename\f(CW\*(C'\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 "\f(CW\*(C`\-V\*(C'\fR" 4
-.IX Item "-V"
-.Ip "\f(CW\*(C`\-\-version\*(C'\fR" 4
-.IX Item "--version"
-Show the version number of \f(CW\*(C`objcopy\*(C'\fR.
-.Ip "\f(CW\*(C`\-v\*(C'\fR" 4
-.IX Item "-v"
-.Ip "\f(CW\*(C`\-\-verbose\*(C'\fR" 4
-.IX Item "--verbose"
-Verbose output: list all object files modified.  In the case of
-archives, \fBobjcopy \-V\fR lists all members of the archive.
-.Ip "\f(CW\*(C`\-\-help\*(C'\fR" 4
-.IX Item "--help"
-Show a summary of the options to \f(CW\*(C`objcopy\*(C'\fR.
-.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, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001 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 \*(L"\s-1GNU\s0 Free Documentation License\*(R".
diff --git a/binutils/objdump.1 b/binutils/objdump.1
deleted file mode 100644 (file)
index 9c51441..0000000
+++ /dev/null
@@ -1,459 +0,0 @@
-.\" Automatically generated by Pod::Man version 1.02
-.\" Wed May 30 12:24:28 2001
-.\"
-.\" 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 Ip \" List item
-.br
-.ie \\n(.$>=3 .ne \\$3
-.el .ne 3
-.IP "\\$1" \\$2
-..
-.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.
-.bd B 3
-.    \" 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 1"
-.TH OBJDUMP.1 1 "binutils-2.11.90" "2001-05-30" "GNU"
-.UC
-.SH "NAME"
-objdump \- display information from object files.
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-objdump [ \-a | \-\-archive-headers ] 
-        [ \-b \fIbfdname\fR | \-\-target=\fIbfdname\fR ] 
-        [ \-C | \-\-demangle[=\fIstyle\fR] ]
-        [ \-d | \-\-disassemble ]
-        [ \-D | \-\-disassemble-all ]
-        [ \-z | \-\-disassemble-zeroes ]
-        [ \-EB | \-EL | \-\-endian={big | little } ]
-        [ \-f | \-\-file-headers ]
-        [ \-\-file-start-context ]
-        [ \-g | \-\-debugging ]
-        [ \-h | \-\-section-headers | \-\-headers ]
-        [ \-i | \-\-info ]
-        [ \-j \fIsection\fR | \-\-section=\fIsection\fR ]
-        [ \-l | \-\-line-numbers ]
-        [ \-S | \-\-source ]
-        [ \-m \fImachine\fR | \-\-architecture=\fImachine\fR ]
-        [ \-M \fIoptions\fR | \-\-disassembler-options=\fIoptions\fR]
-        [ \-p | \-\-private-headers ]
-        [ \-r | \-\-reloc ]
-        [ \-R | \-\-dynamic-reloc ]
-        [ \-s | \-\-full-contents ]
-        [ \-G | \-\-stabs ]
-        [ \-t | \-\-syms ]
-        [ \-T | \-\-dynamic-syms ]
-        [ \-x | \-\-all-headers ]
-        [ \-w | \-\-wide ]
-        [ \-\-start-address=\fIaddress\fR ]
-        [ \-\-stop-address=\fIaddress\fR ]
-        [ \-\-prefix-addresses]
-        [ \-\-[no-]show-raw-insn ]
-        [ \-\-adjust-vma=\fIoffset\fR ]
-        [ \-V | \-\-version ]
-        [ \-H | \-\-help ]
-        \fIobjfile\fR...
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-\&\f(CW\*(C`objdump\*(C'\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, \f(CW\*(C`objdump\*(C'\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,\-f,\-g,\-G,\-h,\-H,\-p,\-r,\-R,\-S,\-t,\-T,\-V,\-x\fR must be given. 
-.Ip "\f(CW\*(C`\-a\*(C'\fR" 4
-.IX Item "-a"
-.Ip "\f(CW\*(C`\-\-archive\-header\*(C'\fR" 4
-.IX Item "--archive-header"
-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 "\f(CW\*(C`\-\-adjust\-vma=\f(CIoffset\f(CW\*(C'\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 "\f(CW\*(C`\-b \f(CIbfdname\f(CW\*(C'\fR" 4
-.IX Item "-b bfdname"
-.Ip "\f(CW\*(C`\-\-target=\f(CIbfdname\f(CW\*(C'\fR" 4
-.IX Item "--target=bfdname"
-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
-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 "\f(CW\*(C`\-C\*(C'\fR" 4
-.IX Item "-C"
-.Ip "\f(CW\*(C`\-\-demangle[=\f(CIstyle\f(CW]\*(C'\fR" 4
-.IX Item "--demangle[=style]"
-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 "\f(CW\*(C`\-G\*(C'\fR" 4
-.IX Item "-G"
-.Ip "\f(CW\*(C`\-\-debugging\*(C'\fR" 4
-.IX Item "--debugging"
-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.
-.Ip "\f(CW\*(C`\-d\*(C'\fR" 4
-.IX Item "-d"
-.Ip "\f(CW\*(C`\-\-disassemble\*(C'\fR" 4
-.IX Item "--disassemble"
-Display the assembler mnemonics for the machine instructions from
-\&\fIobjfile\fR.  This option only disassembles those sections which are
-expected to contain instructions.
-.Ip "\f(CW\*(C`\-D\*(C'\fR" 4
-.IX Item "-D"
-.Ip "\f(CW\*(C`\-\-disassemble\-all\*(C'\fR" 4
-.IX Item "--disassemble-all"
-Like \fB\-d\fR, but disassemble the contents of all sections, not just
-those expected to contain instructions.
-.Ip "\f(CW\*(C`\-\-prefix\-addresses\*(C'\fR" 4
-.IX Item "--prefix-addresses"
-When disassembling, print the complete address on each line.  This is
-the older disassembly format.
-.Ip "\f(CW\*(C`\-\-disassemble\-zeroes\*(C'\fR" 4
-.IX Item "--disassemble-zeroes"
-Normally the disassembly output will skip blocks of zeroes.  This
-option directs the disassembler to disassemble those blocks, just like
-any other data.
-.Ip "\f(CW\*(C`\-EB\*(C'\fR" 4
-.IX Item "-EB"
-.Ip "\f(CW\*(C`\-EL\*(C'\fR" 4
-.IX Item "-EL"
-.Ip "\f(CW\*(C`\-\-endian={big|little}\*(C'\fR" 4
-.IX Item "--endian={big|little}"
-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 "\f(CW\*(C`\-f\*(C'\fR" 4
-.IX Item "-f"
-.Ip "\f(CW\*(C`\-\-file\-header\*(C'\fR" 4
-.IX Item "--file-header"
-Display summary information from the overall header of
-each of the \fIobjfile\fR files.
-.Ip "\f(CW\*(C`\-\-file\-start\-context\*(C'\fR" 4
-.IX Item "--file-start-context"
-Specify that when displaying interlisted source code/disassembly
-(assumes '\-S') from a file that has not yet been displayed, extend the
-context to the start of the file.
-.Ip "\f(CW\*(C`\-h\*(C'\fR" 4
-.IX Item "-h"
-.Ip "\f(CW\*(C`\-\-section\-header\*(C'\fR" 4
-.IX Item "--section-header"
-.Ip "\f(CW\*(C`\-\-header\*(C'\fR" 4
-.IX Item "--header"
-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
-\&\f(CW\*(C`ld\*(C'\fR.  However, some object file formats, such as a.out, do not
-store the starting address of the file segments.  In those situations,
-although \f(CW\*(C`ld\*(C'\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 "\f(CW\*(C`\-\-help\*(C'\fR" 4
-.IX Item "--help"
-Print a summary of the options to \f(CW\*(C`objdump\*(C'\fR and exit.
-.Ip "\f(CW\*(C`\-i\*(C'\fR" 4
-.IX Item "-i"
-.Ip "\f(CW\*(C`\-\-info\*(C'\fR" 4
-.IX Item "--info"
-Display a list showing all architectures and object formats available
-for specification with \fB\-b\fR or \fB\-m\fR.
-.Ip "\f(CW\*(C`\-j \f(CIname\f(CW\*(C'\fR" 4
-.IX Item "-j name"
-.Ip "\f(CW\*(C`\-\-section=\f(CIname\f(CW\*(C'\fR" 4
-.IX Item "--section=name"
-Display information only for section \fIname\fR.
-.Ip "\f(CW\*(C`\-l\*(C'\fR" 4
-.IX Item "-l"
-.Ip "\f(CW\*(C`\-\-line\-numbers\*(C'\fR" 4
-.IX Item "--line-numbers"
-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 "\f(CW\*(C`\-m \f(CImachine\f(CW\*(C'\fR" 4
-.IX Item "-m machine"
-.Ip "\f(CW\*(C`\-\-architecture=\f(CImachine\f(CW\*(C'\fR" 4
-.IX Item "--architecture=machine"
-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 "\f(CW\*(C`\-M \f(CIoptions\f(CW\*(C'\fR" 4
-.IX Item "-M options"
-.Ip "\f(CW\*(C`\-\-disassembler\-options=\f(CIoptions\f(CW\*(C'\fR" 4
-.IX Item "--disassembler-options=options"
-Pass target specific information to the disassembler.  Only supported on
-some targets.
-.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.  (Eiuther
-with the normal register name sor 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 \s-1THUMB\s0 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.
-.Ip "\f(CW\*(C`\-p\*(C'\fR" 4
-.IX Item "-p"
-.Ip "\f(CW\*(C`\-\-private\-headers\*(C'\fR" 4
-.IX Item "--private-headers"
-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 "\f(CW\*(C`\-r\*(C'\fR" 4
-.IX Item "-r"
-.Ip "\f(CW\*(C`\-\-reloc\*(C'\fR" 4
-.IX Item "--reloc"
-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 "\f(CW\*(C`\-R\*(C'\fR" 4
-.IX Item "-R"
-.Ip "\f(CW\*(C`\-\-dynamic\-reloc\*(C'\fR" 4
-.IX Item "--dynamic-reloc"
-Print the dynamic relocation entries of the file.  This is only
-meaningful for dynamic objects, such as certain types of shared
-libraries.
-.Ip "\f(CW\*(C`\-s\*(C'\fR" 4
-.IX Item "-s"
-.Ip "\f(CW\*(C`\-\-full\-contents\*(C'\fR" 4
-.IX Item "--full-contents"
-Display the full contents of any sections requested.
-.Ip "\f(CW\*(C`\-S\*(C'\fR" 4
-.IX Item "-S"
-.Ip "\f(CW\*(C`\-\-source\*(C'\fR" 4
-.IX Item "--source"
-Display source code intermixed with disassembly, if possible.  Implies
-\&\fB\-d\fR.
-.Ip "\f(CW\*(C`\-\-show\-raw\-insn\*(C'\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
-\&\f(CW\*(C`\-\-prefix\-addresses\*(C'\fR is used.
-.Ip "\f(CW\*(C`\-\-no\-show\-raw\-insn\*(C'\fR" 4
-.IX Item "--no-show-raw-insn"
-When disassembling instructions, do not print the instruction bytes.
-This is the default when \f(CW\*(C`\-\-prefix\-addresses\*(C'\fR is used.
-.Ip "\f(CW\*(C`\-G\*(C'\fR" 4
-.IX Item "-G"
-.Ip "\f(CW\*(C`\-\-stabs\*(C'\fR" 4
-.IX Item "--stabs"
-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 "\f(CW\*(C`\-\-start\-address=\f(CIaddress\f(CW\*(C'\fR" 4
-.IX Item "--start-address=address"
-Start displaying data at the specified address.  This affects the output
-of the \f(CW\*(C`\-d\*(C'\fR, \f(CW\*(C`\-r\*(C'\fR and \f(CW\*(C`\-s\*(C'\fR options.
-.Ip "\f(CW\*(C`\-\-stop\-address=\f(CIaddress\f(CW\*(C'\fR" 4
-.IX Item "--stop-address=address"
-Stop displaying data at the specified address.  This affects the output
-of the \f(CW\*(C`\-d\*(C'\fR, \f(CW\*(C`\-r\*(C'\fR and \f(CW\*(C`\-s\*(C'\fR options.
-.Ip "\f(CW\*(C`\-t\*(C'\fR" 4
-.IX Item "-t"
-.Ip "\f(CW\*(C`\-\-syms\*(C'\fR" 4
-.IX Item "--syms"
-Print the symbol table entries of the file.
-This is similar to the information provided by the \fBnm\fR program.
-.Ip "\f(CW\*(C`\-T\*(C'\fR" 4
-.IX Item "-T"
-.Ip "\f(CW\*(C`\-\-dynamic\-syms\*(C'\fR" 4
-.IX Item "--dynamic-syms"
-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 "\f(CW\*(C`\-\-version\*(C'\fR" 4
-.IX Item "--version"
-Print the version number of \f(CW\*(C`objdump\*(C'\fR and exit.
-.Ip "\f(CW\*(C`\-x\*(C'\fR" 4
-.IX Item "-x"
-.Ip "\f(CW\*(C`\-\-all\-header\*(C'\fR" 4
-.IX Item "--all-header"
-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 \-r \-t\fR.
-.Ip "\f(CW\*(C`\-w\*(C'\fR" 4
-.IX Item "-w"
-.Ip "\f(CW\*(C`\-\-wide\*(C'\fR" 4
-.IX Item "--wide"
-Format some lines for output devices that have more than 80 columns.
-.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, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001 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 \*(L"\s-1GNU\s0 Free Documentation License\*(R".
index 9acd344e52360f6d833c6f0e7b3d0a1afc8d3c46..bb6f8ff4038c2d587ade854774b7d496ceb4bfed 100644 (file)
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2001-05-30 12:04+0100\n"
+"POT-Creation-Date: 2001-06-13 12:52+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -185,7 +185,7 @@ msgstr ""
 msgid "internal error -- this option not implemented"
 msgstr ""
 
 msgid "internal error -- this option not implemented"
 msgstr ""
 
-#: ar.c:824 ar.c:876 ar.c:1322 objcopy.c:1266
+#: ar.c:824 ar.c:876 ar.c:1322 objcopy.c:1282
 #, c-format
 msgid "internal stat error on %s"
 msgstr ""
 #, c-format
 msgid "internal stat error on %s"
 msgstr ""
@@ -1616,167 +1616,172 @@ msgstr ""
 msgid "supported flags: %s"
 msgstr ""
 
 msgid "supported flags: %s"
 msgstr ""
 
-#: objcopy.c:556 objcopy.c:2082
+#: objcopy.c:558 objcopy.c:2098
 #, c-format
 msgid "cannot stat: %s: %s"
 msgstr ""
 
 #, c-format
 msgid "cannot stat: %s: %s"
 msgstr ""
 
-#: objcopy.c:563 objcopy.c:2100
+#: objcopy.c:565 objcopy.c:2116
 #, c-format
 msgid "cannot open: %s: %s"
 msgstr ""
 
 #, c-format
 msgid "cannot open: %s: %s"
 msgstr ""
 
-#: objcopy.c:566 objcopy.c:2104
+#: objcopy.c:568 objcopy.c:2120
 #, c-format
 msgid "%s: fread failed"
 msgstr ""
 
 #, c-format
 msgid "%s: fread failed"
 msgstr ""
 
-#: objcopy.c:846
+#: objcopy.c:641
+#, c-format
+msgid "Ignoring rubbish found on line %d of %s"
+msgstr ""
+
+#: objcopy.c:862
 #, c-format
 msgid "%s: Multiple redefinition of symbol \"%s\""
 msgstr ""
 
 #, c-format
 msgid "%s: Multiple redefinition of symbol \"%s\""
 msgstr ""
 
-#: objcopy.c:853
+#: objcopy.c:869
 #, c-format
 msgid "%s: Symbol \"%s\" is target of more than one redefinition"
 msgstr ""
 
 #, c-format
 msgid "%s: Symbol \"%s\" is target of more than one redefinition"
 msgstr ""
 
-#: objcopy.c:906
+#: objcopy.c:922
 msgid "Unable to change endianness of input file(s)"
 msgstr ""
 
 msgid "Unable to change endianness of input file(s)"
 msgstr ""
 
-#: objcopy.c:914
+#: objcopy.c:930
 #, c-format
 msgid "copy from %s(%s) to %s(%s)\n"
 msgstr ""
 
 #, c-format
 msgid "copy from %s(%s) to %s(%s)\n"
 msgstr ""
 
-#: objcopy.c:933
+#: objcopy.c:949
 #, c-format
 msgid "Warning: Output file cannot represent architecture %s"
 msgstr ""
 
 #, c-format
 msgid "Warning: Output file cannot represent architecture %s"
 msgstr ""
 
-#: objcopy.c:960
+#: objcopy.c:976
 #, c-format
 msgid "can't create section `%s': %s"
 msgstr ""
 
 #, c-format
 msgid "can't create section `%s': %s"
 msgstr ""
 
-#: objcopy.c:1046
+#: objcopy.c:1062
 #, c-format
 msgid "Can't fill gap after %s: %s"
 msgstr ""
 
 #, c-format
 msgid "Can't fill gap after %s: %s"
 msgstr ""
 
-#: objcopy.c:1071
+#: objcopy.c:1087
 #, c-format
 msgid "Can't add padding to %s: %s"
 msgstr ""
 
 #, c-format
 msgid "Can't add padding to %s: %s"
 msgstr ""
 
-#: objcopy.c:1210
+#: objcopy.c:1226
 #, c-format
 msgid "%s: error copying private BFD data: %s"
 msgstr ""
 
 #, c-format
 msgid "%s: error copying private BFD data: %s"
 msgstr ""
 
-#: objcopy.c:1244
+#: objcopy.c:1260
 #, c-format
 msgid "cannot mkdir %s for archive copying (error: %s)"
 msgstr ""
 
 #, c-format
 msgid "cannot mkdir %s for archive copying (error: %s)"
 msgstr ""
 
-#: objcopy.c:1433
+#: objcopy.c:1449
 msgid "making"
 msgstr ""
 
 msgid "making"
 msgstr ""
 
-#: objcopy.c:1442
+#: objcopy.c:1458
 msgid "size"
 msgstr ""
 
 msgid "size"
 msgstr ""
 
-#: objcopy.c:1456
+#: objcopy.c:1472
 msgid "vma"
 msgstr ""
 
 msgid "vma"
 msgstr ""
 
-#: objcopy.c:1482
+#: objcopy.c:1498
 msgid "alignment"
 msgstr ""
 
 msgid "alignment"
 msgstr ""
 
-#: objcopy.c:1491
+#: objcopy.c:1507
 msgid "flags"
 msgstr ""
 
 msgid "flags"
 msgstr ""
 
-#: objcopy.c:1505
+#: objcopy.c:1521
 msgid "private data"
 msgstr ""
 
 msgid "private data"
 msgstr ""
 
-#: objcopy.c:1513
+#: objcopy.c:1529
 #, c-format
 msgid "%s: section `%s': error in %s: %s"
 msgstr ""
 
 #, c-format
 msgid "%s: section `%s': error in %s: %s"
 msgstr ""
 
-#: objcopy.c:1787
+#: objcopy.c:1803
 #, c-format
 msgid "%s: can't create debugging section: %s"
 msgstr ""
 
 #, c-format
 msgid "%s: can't create debugging section: %s"
 msgstr ""
 
-#: objcopy.c:1802
+#: objcopy.c:1818
 #, c-format
 msgid "%s: can't set debugging section contents: %s"
 msgstr ""
 
 #, c-format
 msgid "%s: can't set debugging section contents: %s"
 msgstr ""
 
-#: objcopy.c:1811
+#: objcopy.c:1827
 #, c-format
 msgid "%s: don't know how to write debugging information for %s"
 msgstr ""
 
 #, c-format
 msgid "%s: don't know how to write debugging information for %s"
 msgstr ""
 
-#: objcopy.c:1917
+#: objcopy.c:1933
 #, c-format
 msgid "%s: cannot stat: %s"
 msgstr ""
 
 #, c-format
 msgid "%s: cannot stat: %s"
 msgstr ""
 
-#: objcopy.c:1968
+#: objcopy.c:1984
 msgid "byte number must be non-negative"
 msgstr ""
 
 msgid "byte number must be non-negative"
 msgstr ""
 
-#: objcopy.c:1978
+#: objcopy.c:1994
 msgid "interleave must be positive"
 msgstr ""
 
 msgid "interleave must be positive"
 msgstr ""
 
-#: objcopy.c:1998 objcopy.c:2006
+#: objcopy.c:2014 objcopy.c:2022
 #, c-format
 msgid "%s both copied and removed"
 msgstr ""
 
 #, c-format
 msgid "%s both copied and removed"
 msgstr ""
 
-#: objcopy.c:2079 objcopy.c:2149 objcopy.c:2250 objcopy.c:2278
+#: objcopy.c:2095 objcopy.c:2165 objcopy.c:2266 objcopy.c:2294
 #, c-format
 msgid "bad format for %s"
 msgstr ""
 
 #, c-format
 msgid "bad format for %s"
 msgstr ""
 
-#: objcopy.c:2218
+#: objcopy.c:2234
 #, c-format
 msgid "Warning: truncating gap-fill from 0x%s to 0x%x"
 msgstr ""
 
 #, c-format
 msgid "Warning: truncating gap-fill from 0x%s to 0x%x"
 msgstr ""
 
-#: objcopy.c:2340
+#: objcopy.c:2356
 msgid "byte number must be less than interleave"
 msgstr ""
 
 msgid "byte number must be less than interleave"
 msgstr ""
 
-#: objcopy.c:2367
+#: objcopy.c:2383
 #, c-format
 msgid "architecture %s unknown"
 msgstr ""
 
 #, c-format
 msgid "architecture %s unknown"
 msgstr ""
 
-#: objcopy.c:2371
+#: objcopy.c:2387
 msgid ""
 "Warning: input target 'binary' required for binary architecture parameter."
 msgstr ""
 
 msgid ""
 "Warning: input target 'binary' required for binary architecture parameter."
 msgstr ""
 
-#: objcopy.c:2372
+#: objcopy.c:2388
 #, c-format
 msgid " Argument %s ignored"
 msgstr ""
 
 #, c-format
 msgid " Argument %s ignored"
 msgstr ""
 
-#: objcopy.c:2378
+#: objcopy.c:2394
 #, c-format
 msgid "Cannot stat: %s: %s"
 msgstr ""
 
 #, c-format
 msgid "Cannot stat: %s: %s"
 msgstr ""
 
-#: objcopy.c:2417 objcopy.c:2431
+#: objcopy.c:2433 objcopy.c:2447
 #, c-format
 msgid "%s %s%c0x%s never used"
 msgstr ""
 #, c-format
 msgid "%s %s%c0x%s never used"
 msgstr ""
diff --git a/binutils/ranlib.1 b/binutils/ranlib.1
deleted file mode 100644 (file)
index 93fbd30..0000000
+++ /dev/null
@@ -1,182 +0,0 @@
-.\" Automatically generated by Pod::Man version 1.02
-.\" Wed May 30 12:24:28 2001
-.\"
-.\" 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 Ip \" List item
-.br
-.ie \\n(.$>=3 .ne \\$3
-.el .ne 3
-.IP "\\$1" \\$2
-..
-.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.
-.bd B 3
-.    \" 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 1"
-.TH RANLIB.1 1 "binutils-2.11.90" "2001-05-30" "GNU"
-.UC
-.SH "NAME"
-ranlib \- generate index to archive.
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-ranlib [\-vV] \fIarchive\fR
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-\&\f(CW\*(C`ranlib\*(C'\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 \f(CW\*(C`ranlib\*(C'\fR program is another form of \s-1GNU\s0 \f(CW\*(C`ar\*(C'\fR; running
-\&\f(CW\*(C`ranlib\*(C'\fR is completely equivalent to executing \fBar \-s\fR.
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-.Ip "\f(CW\*(C`\-v\*(C'\fR" 4
-.IX Item "-v"
-.Ip "\f(CW\*(C`\-V\*(C'\fR" 4
-.IX Item "-V"
-.Ip "\f(CW\*(C`\-\-version\*(C'\fR" 4
-.IX Item "--version"
-Show the version number of \f(CW\*(C`ranlib\*(C'\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, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001 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 \*(L"\s-1GNU\s0 Free Documentation License\*(R".
diff --git a/binutils/readelf.1 b/binutils/readelf.1
deleted file mode 100644 (file)
index bcef986..0000000
+++ /dev/null
@@ -1,291 +0,0 @@
-.\" Automatically generated by Pod::Man version 1.02
-.\" Wed May 30 12:24:29 2001
-.\"
-.\" 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 Ip \" List item
-.br
-.ie \\n(.$>=3 .ne \\$3
-.el .ne 3
-.IP "\\$1" \\$2
-..
-.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.
-.bd B 3
-.    \" 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 1"
-.TH READELF.1 1 "binutils-2.11.90" "2001-05-30" "GNU"
-.UC
-.SH "NAME"
-readelf \- Displays information about \s-1ELF\s0 files.
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-readelf [ \-a | \-\-all ] 
-        [ \-h | \-\-file-header]
-        [ \-l | \-\-program-headers | \-\-segments]
-        [ \-S | \-\-section-headers | \-\-sections]
-        [ \-e | \-\-headers]
-        [ \-s | \-\-syms | \-\-symbols]
-        [ \-n | \-\-notes]
-        [ \-r | \-\-relocs]
-        [ \-u | \-\-unwind]
-        [ \-d | \-\-dynamic]
-        [ \-V | \-\-version-info]
-        [ \-D | \-\-use-dynamic]
-        [ \-x <number> | \-\-hex-dump=<number>]
-        [ \-w[liaprf] | \-\-debug-dump[=info,=line,=abbrev,=pubnames,=ranges,=frames]]
-        [      \-\-histogram]
-        [ \-v | \-\-version]
-        [ \-H | \-\-help]
-        \fIelffile\fR...
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-\&\f(CW\*(C`readelf\*(C'\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.  At the
-moment, \f(CW\*(C`readelf\*(C'\fR does not support examining archives, nor does it
-support examing 64 bit \s-1ELF\s0 files.
-.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 "\f(CW\*(C`\-a\*(C'\fR" 4
-.IX Item "-a"
-.Ip "\f(CW\*(C`\-\-all\*(C'\fR" 4
-.IX Item "--all"
-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 "\f(CW\*(C`\-h\*(C'\fR" 4
-.IX Item "-h"
-.Ip "\f(CW\*(C`\-\-file\-header\*(C'\fR" 4
-.IX Item "--file-header"
-Displays the information contained in the \s-1ELF\s0 header at the start of the
-file.
-.Ip "\f(CW\*(C`\-l\*(C'\fR" 4
-.IX Item "-l"
-.Ip "\f(CW\*(C`\-\-program\-headers\*(C'\fR" 4
-.IX Item "--program-headers"
-.Ip "\f(CW\*(C`\-\-segments\*(C'\fR" 4
-.IX Item "--segments"
-Displays the information contained in the file's segment headers, if it
-has any.
-.Ip "\f(CW\*(C`\-S\*(C'\fR" 4
-.IX Item "-S"
-.Ip "\f(CW\*(C`\-\-sections\*(C'\fR" 4
-.IX Item "--sections"
-.Ip "\f(CW\*(C`\-\-section\-headers\*(C'\fR" 4
-.IX Item "--section-headers"
-Displays the information contained in the file's section headers, if it
-has any.
-.Ip "\f(CW\*(C`\-s\*(C'\fR" 4
-.IX Item "-s"
-.Ip "\f(CW\*(C`\-\-symbols\*(C'\fR" 4
-.IX Item "--symbols"
-.Ip "\f(CW\*(C`\-\-syms\*(C'\fR" 4
-.IX Item "--syms"
-Displays the entries in symbol table section of the file, if it has one.
-.Ip "\f(CW\*(C`\-e\*(C'\fR" 4
-.IX Item "-e"
-.Ip "\f(CW\*(C`\-\-headers\*(C'\fR" 4
-.IX Item "--headers"
-Display all the headers in the file.  Equivalent to \fB\-h \-l \-S\fR.
-.Ip "\f(CW\*(C`\-n\*(C'\fR" 4
-.IX Item "-n"
-.Ip "\f(CW\*(C`\-\-notes\*(C'\fR" 4
-.IX Item "--notes"
-Displays the contents of the \s-1NOTE\s0 segment, if it exists.
-.Ip "\f(CW\*(C`\-r\*(C'\fR" 4
-.IX Item "-r"
-.Ip "\f(CW\*(C`\-\-relocs\*(C'\fR" 4
-.IX Item "--relocs"
-Displays the contents of the file's relocation section, if it has one.
-.Ip "\f(CW\*(C`\-u\*(C'\fR" 4
-.IX Item "-u"
-.Ip "\f(CW\*(C`\-\-unwind\*(C'\fR" 4
-.IX Item "--unwind"
-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 "\f(CW\*(C`\-d\*(C'\fR" 4
-.IX Item "-d"
-.Ip "\f(CW\*(C`\-\-dynamic\*(C'\fR" 4
-.IX Item "--dynamic"
-Displays the contents of the file's dynamic section, if it has one.
-.Ip "\f(CW\*(C`\-V\*(C'\fR" 4
-.IX Item "-V"
-.Ip "\f(CW\*(C`\-\-version\-info\*(C'\fR" 4
-.IX Item "--version-info"
-Displays the contents of the version sections in the file, it they
-exist.
-.Ip "\f(CW\*(C`\-D\*(C'\fR" 4
-.IX Item "-D"
-.Ip "\f(CW\*(C`\-\-use\-dynamic\*(C'\fR" 4
-.IX Item "--use-dynamic"
-When displaying symbols, this option makes \f(CW\*(C`readelf\*(C'\fR use the
-symbol table in the file's dynamic section, rather than the one in the
-symbols section.
-.Ip "\f(CW\*(C`\-x <number>\*(C'\fR" 4
-.IX Item "-x <number>"
-.Ip "\f(CW\*(C`\-\-hex\-dump=<number>\*(C'\fR" 4
-.IX Item "--hex-dump=<number>"
-Displays the contents of the indicated section as a hexadecimal dump.
-.Ip "\f(CW\*(C`\-w[liaprf]\*(C'\fR" 4
-.IX Item "-w[liaprf]"
-.Ip "\f(CW\*(C`\-\-debug\-dump[=line,=info,=abbrev,=pubnames,=ranges,=frames]\*(C'\fR" 4
-.IX Item "--debug-dump[=line,=info,=abbrev,=pubnames,=ranges,=frames]"
-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 "\f(CW\*(C`\-\-histogram\*(C'\fR" 4
-.IX Item "--histogram"
-Display a histogram of bucket list lengths when displaying the contents
-of the symbol tables.
-.Ip "\f(CW\*(C`\-v\*(C'\fR" 4
-.IX Item "-v"
-.Ip "\f(CW\*(C`\-\-version\*(C'\fR" 4
-.IX Item "--version"
-Display the version number of readelf.
-.Ip "\f(CW\*(C`\-H\*(C'\fR" 4
-.IX Item "-H"
-.Ip "\f(CW\*(C`\-\-help\*(C'\fR" 4
-.IX Item "--help"
-Display the command line options understood by \f(CW\*(C`readelf\*(C'\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, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001 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 \*(L"\s-1GNU\s0 Free Documentation License\*(R".
index 60e7eea8fc0e737c5d45baf5928035c874a370ec..39e90d142c38c6c7c37fb2676932ab18be9cb630 100644 (file)
 #include "bucomm.h"
 #include "getopt.h"
 
 #include "bucomm.h"
 #include "getopt.h"
 
-char * program_name = "readelf";
-unsigned int   dynamic_addr;
+char *                 program_name = "readelf";
+unsigned int           dynamic_addr;
 bfd_size_type          dynamic_size;
 bfd_size_type          dynamic_size;
-unsigned int   rela_addr;
-unsigned int   rela_size;
-char * dynamic_strings;
+unsigned int           rela_addr;
+unsigned int           rela_size;
+char *                 dynamic_strings;
 char *                 string_table;
 unsigned long          string_table_length;
 unsigned long           num_dynamic_syms;
 Elf_Internal_Sym *     dynamic_symbols;
 Elf_Internal_Syminfo * dynamic_syminfo;
 char *                 string_table;
 unsigned long          string_table_length;
 unsigned long           num_dynamic_syms;
 Elf_Internal_Sym *     dynamic_symbols;
 Elf_Internal_Syminfo * dynamic_syminfo;
-unsigned long  dynamic_syminfo_offset;
+unsigned long          dynamic_syminfo_offset;
 unsigned int           dynamic_syminfo_nent;
 unsigned int           dynamic_syminfo_nent;
-char   program_interpreter [64];
-int    dynamic_info[DT_JMPREL + 1];
-int    version_info[16];
-int    loadaddr = 0;
+char                   program_interpreter [64];
+int                    dynamic_info[DT_JMPREL + 1];
+int                    version_info[16];
+int                    loadaddr = 0;
 Elf_Internal_Ehdr       elf_header;
 Elf_Internal_Shdr *     section_headers;
 Elf_Internal_Dyn *      dynamic_segment;
 Elf_Internal_Ehdr       elf_header;
 Elf_Internal_Shdr *     section_headers;
 Elf_Internal_Dyn *      dynamic_segment;
@@ -1259,32 +1259,32 @@ get_machine_name (e_machine)
 
   switch (e_machine)
     {
 
   switch (e_machine)
     {
-    case EM_NONE:      return _("None");
-    case EM_M32:       return "WE32100";
-    case EM_SPARC:     return "Sparc";
-    case EM_386:       return "Intel 80386";
-    case EM_68K:       return "MC68000";
-    case EM_88K:       return "MC88000";
-    case EM_486:       return "Intel 80486";
-    case EM_860:       return "Intel 80860";
-    case EM_MIPS:      return "MIPS R3000";
-    case EM_S370:      return "IBM System/370";
+    case EM_NONE:              return _("None");
+    case EM_M32:               return "WE32100";
+    case EM_SPARC:             return "Sparc";
+    case EM_386:               return "Intel 80386";
+    case EM_68K:               return "MC68000";
+    case EM_88K:               return "MC88000";
+    case EM_486:               return "Intel 80486";
+    case EM_860:               return "Intel 80860";
+    case EM_MIPS:              return "MIPS R3000";
+    case EM_S370:              return "IBM System/370";
     case EM_MIPS_RS3_LE:       return "MIPS R4000 big-endian";
     case EM_OLD_SPARCV9:       return "Sparc v9 (old)";
     case EM_MIPS_RS3_LE:       return "MIPS R4000 big-endian";
     case EM_OLD_SPARCV9:       return "Sparc v9 (old)";
-    case EM_PARISC:    return "HPPA";
+    case EM_PARISC:            return "HPPA";
     case EM_PPC_OLD:           return "Power PC (old)";
     case EM_SPARC32PLUS:       return "Sparc v8+" ;
     case EM_PPC_OLD:           return "Power PC (old)";
     case EM_SPARC32PLUS:       return "Sparc v8+" ;
-    case EM_960:       return "Intel 90860";
-    case EM_PPC:       return "PowerPC";
-    case EM_V800:      return "NEC V800";
-    case EM_FR20:      return "Fujitsu FR20";
-    case EM_RH32:      return "TRW RH32";
+    case EM_960:               return "Intel 90860";
+    case EM_PPC:               return "PowerPC";
+    case EM_V800:              return "NEC V800";
+    case EM_FR20:              return "Fujitsu FR20";
+    case EM_RH32:              return "TRW RH32";
     case EM_MCORE:             return "MCORE";
     case EM_ARM:               return "ARM";
     case EM_OLD_ALPHA:         return "Digital Alpha (old)";
     case EM_SH:                        return "Hitachi SH";
     case EM_MCORE:             return "MCORE";
     case EM_ARM:               return "ARM";
     case EM_OLD_ALPHA:         return "Digital Alpha (old)";
     case EM_SH:                        return "Hitachi SH";
-    case EM_SPARCV9:   return "Sparc v9";
-    case EM_TRICORE:   return "Siemens Tricore";
+    case EM_SPARCV9:           return "Sparc v9";
+    case EM_TRICORE:           return "Siemens Tricore";
     case EM_ARC:               return "ARC";
     case EM_H8_300:            return "Hitachi H8/300";
     case EM_H8_300H:           return "Hitachi H8/300H";
     case EM_ARC:               return "ARC";
     case EM_H8_300:            return "Hitachi H8/300";
     case EM_H8_300H:           return "Hitachi H8/300H";
@@ -1294,7 +1294,7 @@ get_machine_name (e_machine)
     case EM_MIPS_X:            return "Stanford MIPS-X";
     case EM_COLDFIRE:          return "Motorola Coldfire";
     case EM_68HC12:            return "Motorola M68HC12";
     case EM_MIPS_X:            return "Stanford MIPS-X";
     case EM_COLDFIRE:          return "Motorola Coldfire";
     case EM_68HC12:            return "Motorola M68HC12";
-    case EM_ALPHA:     return "Alpha";
+    case EM_ALPHA:             return "Alpha";
     case EM_CYGNUS_D10V:        return "d10v";
     case EM_CYGNUS_D30V:        return "d30v";
     case EM_CYGNUS_ARC:                return "ARC";
     case EM_CYGNUS_D10V:        return "d10v";
     case EM_CYGNUS_D30V:        return "d30v";
     case EM_CYGNUS_ARC:                return "ARC";
@@ -1324,12 +1324,12 @@ get_machine_name (e_machine)
     case EM_VAX:               return "Digital VAX";
     case EM_AVR:                return "Atmel AVR 8-bit microcontroller";
     case EM_CRIS:              return "Axis Communications 32-bit embedded processor";
     case EM_VAX:               return "Digital VAX";
     case EM_AVR:                return "Atmel AVR 8-bit microcontroller";
     case EM_CRIS:              return "Axis Communications 32-bit embedded processor";
-    case EM_JAVELIN:   return "Infineon Technologies 32-bit embedded cpu";
-    case EM_FIREPATH:  return "Element 14 64-bit DSP processor";
-    case EM_ZSP:       return "LSI Logic's 16-bit DSP processor";
+    case EM_JAVELIN:           return "Infineon Technologies 32-bit embedded cpu";
+    case EM_FIREPATH:          return "Element 14 64-bit DSP processor";
+    case EM_ZSP:               return "LSI Logic's 16-bit DSP processor";
     case EM_MMIX:              return "Donald Knuth's educational 64-bit processor";
     case EM_MMIX:              return "Donald Knuth's educational 64-bit processor";
-    case EM_HUANY:     return "Harvard Universitys's machine-independent object format";
-    case EM_PRISM:     return "SiTera Prism";
+    case EM_HUANY:             return "Harvard Universitys's machine-independent object format";
+    case EM_PRISM:             return "SiTera Prism";
     case EM_X86_64:            return "Advanced Micro Devices X86-64";
     case EM_S390_OLD:
     case EM_S390:               return "IBM S/390";
     case EM_X86_64:            return "Advanced Micro Devices X86-64";
     case EM_S390_OLD:
     case EM_S390:               return "IBM S/390";
diff --git a/binutils/size.1 b/binutils/size.1
deleted file mode 100644 (file)
index a8a30b0..0000000
+++ /dev/null
@@ -1,242 +0,0 @@
-.\" Automatically generated by Pod::Man version 1.02
-.\" Wed May 30 12:24:29 2001
-.\"
-.\" 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 Ip \" List item
-.br
-.ie \\n(.$>=3 .ne \\$3
-.el .ne 3
-.IP "\\$1" \\$2
-..
-.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.
-.bd B 3
-.    \" 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 1"
-.TH SIZE.1 1 "binutils-2.11.90" "2001-05-30" "GNU"
-.UC
-.SH "NAME"
-size \- list section sizes and total size.
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-size [ \-A | \-B | \-\-format=\fIcompatibility\fR ]
-     [ \-\-help ]  [ \-d | \-o | \-x | \-\-radix=\fInumber\fR ]
-     [ \-\-target=\fIbfdname\fR ]  [ \-V | \-\-version ]  
-     [ \fIobjfile\fR... ]
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-The \s-1GNU\s0 \f(CW\*(C`size\*(C'\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 "\f(CW\*(C`\-A\*(C'\fR" 4
-.IX Item "-A"
-.Ip "\f(CW\*(C`\-B\*(C'\fR" 4
-.IX Item "-B"
-.Ip "\f(CW\*(C`\-\-format=\f(CIcompatibility\f(CW\*(C'\fR" 4
-.IX Item "--format=compatibility"
-Using one of these options, you can choose whether the output from \s-1GNU\s0
-\&\f(CW\*(C`size\*(C'\fR resembles output from System V \f(CW\*(C`size\*(C'\fR (using \fB\-A\fR,
-or \fB\*(--format=sysv\fR), or Berkeley \f(CW\*(C`size\*(C'\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
-\&\f(CW\*(C`size\*(C'\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
-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
-.Vb 6
-\&        size  :
-\&        section         size         addr
-\&        .text         294880         8192       
-\&        .data          81920       303104       
-\&        .bss           11888       385024       
-\&        Total         388688
-.Ve
-.Ip "\f(CW\*(C`\-\-help\*(C'\fR" 4
-.IX Item "--help"
-Show a summary of acceptable arguments and options.
-.Ip "\f(CW\*(C`\-d\*(C'\fR" 4
-.IX Item "-d"
-.Ip "\f(CW\*(C`\-o\*(C'\fR" 4
-.IX Item "-o"
-.Ip "\f(CW\*(C`\-x\*(C'\fR" 4
-.IX Item "-x"
-.Ip "\f(CW\*(C`\-\-radix=\f(CInumber\f(CW\*(C'\fR" 4
-.IX Item "--radix=number"
-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 "\f(CW\*(C`\-\-target=\f(CIbfdname\f(CW\*(C'\fR" 4
-.IX Item "--target=bfdname"
-Specify that the object-code format for \fIobjfile\fR is
-\&\fIbfdname\fR.  This option may not be necessary; \f(CW\*(C`size\*(C'\fR can
-automatically recognize many formats.
-.Ip "\f(CW\*(C`\-V\*(C'\fR" 4
-.IX Item "-V"
-.Ip "\f(CW\*(C`\-\-version\*(C'\fR" 4
-.IX Item "--version"
-Display the version number of \f(CW\*(C`size\*(C'\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, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001 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 \*(L"\s-1GNU\s0 Free Documentation License\*(R".
diff --git a/binutils/strings.1 b/binutils/strings.1
deleted file mode 100644 (file)
index 8fccf65..0000000
+++ /dev/null
@@ -1,220 +0,0 @@
-.\" Automatically generated by Pod::Man version 1.02
-.\" Wed May 30 12:24:29 2001
-.\"
-.\" 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 Ip \" List item
-.br
-.ie \\n(.$>=3 .ne \\$3
-.el .ne 3
-.IP "\\$1" \\$2
-..
-.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.
-.bd B 3
-.    \" 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 1"
-.TH STRINGS.1 1 "binutils-2.11.90" "2001-05-30" "GNU"
-.UC
-.SH "NAME"
-strings \- print the strings of printable characters in files.
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-strings [\-afov] [-\fImin-len\fR] [\-n \fImin-len\fR] [\-t \fIradix\fR] [\-]
-        [\-\-all] [\-\-print-file-name] [\-\-bytes=\fImin-len\fR]
-        [\-\-radix=\fIradix\fR] [\-\-target=\fIbfdname\fR]
-        [\-\-help] [\-\-version] \fIfile\fR...
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-For each \fIfile\fR given, \s-1GNU\s0 \f(CW\*(C`strings\*(C'\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
-\&\f(CW\*(C`strings\*(C'\fR is mainly useful for determining the contents of non-text
-files.
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-.Ip "\f(CW\*(C`\-a\*(C'\fR" 4
-.IX Item "-a"
-.Ip "\f(CW\*(C`\-\-all\*(C'\fR" 4
-.IX Item "--all"
-.Ip "\f(CW\*(C`\-\*(C'\fR" 4
-.IX Item "-"
-Do not scan only the initialized and loaded sections of object files;
-scan the whole files.
-.Ip "\f(CW\*(C`\-f\*(C'\fR" 4
-.IX Item "-f"
-.Ip "\f(CW\*(C`\-\-print\-file\-name\*(C'\fR" 4
-.IX Item "--print-file-name"
-Print the name of the file before each string.
-.Ip "\f(CW\*(C`\-\-help\*(C'\fR" 4
-.IX Item "--help"
-Print a summary of the program usage on the standard output and exit.
-.Ip "\f(CW\*(C`\-\f(CImin\-len\f(CW\*(C'\fR" 4
-.IX Item "-min-len"
-.Ip "\f(CW\*(C`\-n \f(CImin\-len\f(CW\*(C'\fR" 4
-.IX Item "-n min-len"
-.Ip "\f(CW\*(C`\-\-bytes=\f(CImin\-len\f(CW\*(C'\fR" 4
-.IX Item "--bytes=min-len"
-Print sequences of characters that are at least \fImin-len\fR characters
-long, instead of the default 4.
-.Ip "\f(CW\*(C`\-o\*(C'\fR" 4
-.IX Item "-o"
-Like \fB\-t o\fR.  Some other versions of \f(CW\*(C`strings\*(C'\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 "\f(CW\*(C`\-t \f(CIradix\f(CW\*(C'\fR" 4
-.IX Item "-t radix"
-.Ip "\f(CW\*(C`\-\-radix=\f(CIradix\f(CW\*(C'\fR" 4
-.IX Item "--radix=radix"
-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 "\f(CW\*(C`\-\-target=\f(CIbfdname\f(CW\*(C'\fR" 4
-.IX Item "--target=bfdname"
-Specify an object code format other than your system's default format.
-.Ip "\f(CW\*(C`\-v\*(C'\fR" 4
-.IX Item "-v"
-.Ip "\f(CW\*(C`\-\-version\*(C'\fR" 4
-.IX Item "--version"
-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, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001 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 \*(L"\s-1GNU\s0 Free Documentation License\*(R".
diff --git a/binutils/strip.1 b/binutils/strip.1
deleted file mode 100644 (file)
index b43db62..0000000
+++ /dev/null
@@ -1,266 +0,0 @@
-.\" Automatically generated by Pod::Man version 1.02
-.\" Wed May 30 12:24:29 2001
-.\"
-.\" 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 Ip \" List item
-.br
-.ie \\n(.$>=3 .ne \\$3
-.el .ne 3
-.IP "\\$1" \\$2
-..
-.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.
-.bd B 3
-.    \" 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 1"
-.TH STRIP.1 1 "binutils-2.11.90" "2001-05-30" "GNU"
-.UC
-.SH "NAME"
-strip \- Discard symbols from object files.
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-strip [ \-F \fIbfdname\fR | \-\-target=\fIbfdname\fR ]
-      [ \-I \fIbfdname\fR | \-\-input-target=\fIbfdname\fR ]
-      [ \-O \fIbfdname\fR | \-\-output-target=\fIbfdname\fR ]
-      [ \-s | \-\-strip-all ] [ \-S | \-g | \-\-strip-debug ]
-      [ \-K \fIsymbolname\fR | \-\-keep-symbol=\fIsymbolname\fR ]
-      [ \-N \fIsymbolname\fR | \-\-strip-symbol=\fIsymbolname\fR ]
-      [ \-x | \-\-discard-all ] [ \-X | \-\-discard-locals ]
-      [ \-R \fIsectionname\fR | \-\-remove-section=\fIsectionname\fR ]
-      [ \-o \fIfile\fR ] [ \-p | \-\-preserve-dates ]
-      [ \-v | \-\-verbose ]  [ \-V | \-\-version ]  [ \-\-help ]
-      \fIobjfile\fR...
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-\&\s-1GNU\s0 \f(CW\*(C`strip\*(C'\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
-\&\f(CW\*(C`strip\*(C'\fR modifies the files named in its argument,
-rather than writing modified copies under different names.
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-.Ip "\f(CW\*(C`\-F \f(CIbfdname\f(CW\*(C'\fR" 4
-.IX Item "-F bfdname"
-.Ip "\f(CW\*(C`\-\-target=\f(CIbfdname\f(CW\*(C'\fR" 4
-.IX Item "--target=bfdname"
-Treat the original \fIobjfile\fR as a file with the object
-code format \fIbfdname\fR, and rewrite it in the same format.
-.Ip "\f(CW\*(C`\-\-help\*(C'\fR" 4
-.IX Item "--help"
-Show a summary of the options to \f(CW\*(C`strip\*(C'\fR and exit.
-.Ip "\f(CW\*(C`\-I \f(CIbfdname\f(CW   \*(C'\fR" 4
-.IX Item "-I bfdname   "
-.Ip "\f(CW\*(C`\-\-input\-target=\f(CIbfdname\f(CW\*(C'\fR" 4
-.IX Item "--input-target=bfdname"
-Treat the original \fIobjfile\fR as a file with the object
-code format \fIbfdname\fR.
-.Ip "\f(CW\*(C`\-O \f(CIbfdname\f(CW\*(C'\fR" 4
-.IX Item "-O bfdname"
-.Ip "\f(CW\*(C`\-\-output\-target=\f(CIbfdname\f(CW\*(C'\fR" 4
-.IX Item "--output-target=bfdname"
-Replace \fIobjfile\fR with a file in the output format \fIbfdname\fR.
-.Ip "\f(CW\*(C`\-R \f(CIsectionname\f(CW\*(C'\fR" 4
-.IX Item "-R sectionname"
-.Ip "\f(CW\*(C`\-\-remove\-section=\f(CIsectionname\f(CW\*(C'\fR" 4
-.IX Item "--remove-section=sectionname"
-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 "\f(CW\*(C`\-s\*(C'\fR" 4
-.IX Item "-s"
-.Ip "\f(CW\*(C`\-\-strip\-all\*(C'\fR" 4
-.IX Item "--strip-all"
-Remove all symbols.
-.Ip "\f(CW\*(C`\-g\*(C'\fR" 4
-.IX Item "-g"
-.Ip "\f(CW\*(C`\-S\*(C'\fR" 4
-.IX Item "-S"
-.Ip "\f(CW\*(C`\-\-strip\-debug\*(C'\fR" 4
-.IX Item "--strip-debug"
-Remove debugging symbols only.
-.Ip "\f(CW\*(C`\-\-strip\-unneeded\*(C'\fR" 4
-.IX Item "--strip-unneeded"
-Remove all symbols that are not needed for relocation processing.
-.Ip "\f(CW\*(C`\-K \f(CIsymbolname\f(CW\*(C'\fR" 4
-.IX Item "-K symbolname"
-.Ip "\f(CW\*(C`\-\-keep\-symbol=\f(CIsymbolname\f(CW\*(C'\fR" 4
-.IX Item "--keep-symbol=symbolname"
-Keep only symbol \fIsymbolname\fR from the source file.  This option may
-be given more than once.
-.Ip "\f(CW\*(C`\-N \f(CIsymbolname\f(CW\*(C'\fR" 4
-.IX Item "-N symbolname"
-.Ip "\f(CW\*(C`\-\-strip\-symbol=\f(CIsymbolname\f(CW\*(C'\fR" 4
-.IX Item "--strip-symbol=symbolname"
-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
-\&\f(CW\*(C`\-K\*(C'\fR.
-.Ip "\f(CW\*(C`\-o \f(CIfile\f(CW\*(C'\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 "\f(CW\*(C`\-p\*(C'\fR" 4
-.IX Item "-p"
-.Ip "\f(CW\*(C`\-\-preserve\-dates\*(C'\fR" 4
-.IX Item "--preserve-dates"
-Preserve the access and modification dates of the file.
-.Ip "\f(CW\*(C`\-x\*(C'\fR" 4
-.IX Item "-x"
-.Ip "\f(CW\*(C`\-\-discard\-all\*(C'\fR" 4
-.IX Item "--discard-all"
-Remove non-global symbols.
-.Ip "\f(CW\*(C`\-X\*(C'\fR" 4
-.IX Item "-X"
-.Ip "\f(CW\*(C`\-\-discard\-locals\*(C'\fR" 4
-.IX Item "--discard-locals"
-Remove compiler-generated local symbols.
-(These usually start with \fBL\fR or \fB.\fR.)
-.Ip "\f(CW\*(C`\-V\*(C'\fR" 4
-.IX Item "-V"
-.Ip "\f(CW\*(C`\-\-version\*(C'\fR" 4
-.IX Item "--version"
-Show the version number for \f(CW\*(C`strip\*(C'\fR.
-.Ip "\f(CW\*(C`\-v\*(C'\fR" 4
-.IX Item "-v"
-.Ip "\f(CW\*(C`\-\-verbose\*(C'\fR" 4
-.IX Item "--verbose"
-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, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001 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 \*(L"\s-1GNU\s0 Free Documentation License\*(R".
diff --git a/binutils/windres.1 b/binutils/windres.1
deleted file mode 100644 (file)
index ac0366a..0000000
+++ /dev/null
@@ -1,291 +0,0 @@
-.\" Automatically generated by Pod::Man version 1.02
-.\" Wed May 30 12:24:30 2001
-.\"
-.\" 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 Ip \" List item
-.br
-.ie \\n(.$>=3 .ne \\$3
-.el .ne 3
-.IP "\\$1" \\$2
-..
-.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.
-.bd B 3
-.    \" 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 1"
-.TH WINDRES.1 1 "binutils-2.11.90" "2001-05-30" "GNU"
-.UC
-.SH "NAME"
-windres \- manipulate Windows resources.
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-windres [options] [input-file] [output-file]
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-\&\f(CW\*(C`windres\*(C'\fR reads resources from an input file and copies them into
-an output file.  Either file may be in one of three formats:
-.Ip "\f(CW\*(C`rc\*(C'\fR" 4
-.IX Item "rc"
-A text format read by the Resource Compiler.
-.Ip "\f(CW\*(C`res\*(C'\fR" 4
-.IX Item "res"
-A binary format generated by the Resource Compiler.
-.Ip "\f(CW\*(C`coff\*(C'\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 \f(CW\*(C`windres\*(C'\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
-\&\f(CW\*(C`windres\*(C'\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 \f(CW\*(C`windres\*(C'\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, \f(CW\*(C`windres\*(C'\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, \f(CW\*(C`windres\*(C'\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 \f(CW\*(C`windres\*(C'\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 "\f(CW\*(C`\-i \f(CIfilename\f(CW\*(C'\fR" 4
-.IX Item "-i filename"
-.Ip "\f(CW\*(C`\-\-input \f(CIfilename\f(CW\*(C'\fR" 4
-.IX Item "--input filename"
-The name of the input file.  If this option is not used, then
-\&\f(CW\*(C`windres\*(C'\fR will use the first non-option argument as the input file
-name.  If there are no non-option arguments, then \f(CW\*(C`windres\*(C'\fR will
-read from standard input.  \f(CW\*(C`windres\*(C'\fR can not read a \s-1COFF\s0 file from
-standard input.
-.Ip "\f(CW\*(C`\-o \f(CIfilename\f(CW\*(C'\fR" 4
-.IX Item "-o filename"
-.Ip "\f(CW\*(C`\-\-output \f(CIfilename\f(CW\*(C'\fR" 4
-.IX Item "--output filename"
-The name of the output file.  If this option is not used, then
-\&\f(CW\*(C`windres\*(C'\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 \f(CW\*(C`windres\*(C'\fR will write to standard output.
-\&\f(CW\*(C`windres\*(C'\fR can not write a \s-1COFF\s0 file to standard output.
-.Ip "\f(CW\*(C`\-I \f(CIformat\f(CW\*(C'\fR" 4
-.IX Item "-I format"
-.Ip "\f(CW\*(C`\-\-input\-format \f(CIformat\f(CW\*(C'\fR" 4
-.IX Item "--input-format format"
-The input format to read.  \fIformat\fR may be \fBres\fR, \fBrc\fR, or
-\&\fBcoff\fR.  If no input format is specified, \f(CW\*(C`windres\*(C'\fR will
-guess, as described above.
-.Ip "\f(CW\*(C`\-O \f(CIformat\f(CW\*(C'\fR" 4
-.IX Item "-O format"
-.Ip "\f(CW\*(C`\-\-output\-format \f(CIformat\f(CW\*(C'\fR" 4
-.IX Item "--output-format format"
-The output format to generate.  \fIformat\fR may be \fBres\fR,
-\&\fBrc\fR, or \fBcoff\fR.  If no output format is specified,
-\&\f(CW\*(C`windres\*(C'\fR will guess, as described above.
-.Ip "\f(CW\*(C`\-F \f(CItarget\f(CW\*(C'\fR" 4
-.IX Item "-F target"
-.Ip "\f(CW\*(C`\-\-target \f(CItarget\f(CW\*(C'\fR" 4
-.IX Item "--target target"
-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 \f(CW\*(C`\-\-help\*(C'\fR option to see a list
-of supported targets.  Normally \f(CW\*(C`windres\*(C'\fR will use the default
-format, which is the first one listed by the \f(CW\*(C`\-\-help\*(C'\fR option.
-\&\f(CW@ref\fR{Target Selection}.
-.Ip "\f(CW\*(C`\-\-preprocessor \f(CIprogram\f(CW\*(C'\fR" 4
-.IX Item "--preprocessor program"
-When \f(CW\*(C`windres\*(C'\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 "\f(CW\*(C`\-\-include\-dir \f(CIdirectory\f(CW\*(C'\fR" 4
-.IX Item "--include-dir directory"
-Specify an include directory to use when reading an \f(CW\*(C`rc\*(C'\fR file.
-\&\f(CW\*(C`windres\*(C'\fR will pass this to the preprocessor as an \f(CW\*(C`\-I\*(C'\fR
-option.  \f(CW\*(C`windres\*(C'\fR will also search this directory when looking for
-files named in the \f(CW\*(C`rc\*(C'\fR file.
-.Ip "\f(CW\*(C`\-D \f(CItarget\f(CW\*(C'\fR" 4
-.IX Item "-D target"
-.Ip "\f(CW\*(C`\-\-define \f(CIsym\f(CW[=\f(CIval\f(CW]\*(C'\fR" 4
-.IX Item "--define sym[=val]"
-Specify a \f(CW\*(C`\-D\*(C'\fR option to pass to the preprocessor when reading an
-\&\f(CW\*(C`rc\*(C'\fR file.
-.Ip "\f(CW\*(C`\-v\*(C'\fR" 4
-.IX Item "-v"
-Enable verbose mode.  This tells you what the preprocessor is if you
-didn't specify one.
-.Ip "\f(CW\*(C`\-\-language \f(CIval\f(CW\*(C'\fR" 4
-.IX Item "--language val"
-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 "\f(CW\*(C`\-\-use\-temp\-file\*(C'\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 "\f(CW\*(C`\-\-no\-use\-temp\-file\*(C'\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 "\f(CW\*(C`\-\-help\*(C'\fR" 4
-.IX Item "--help"
-Prints a usage summary.
-.Ip "\f(CW\*(C`\-\-version\*(C'\fR" 4
-.IX Item "--version"
-Prints the version number for \f(CW\*(C`windres\*(C'\fR.
-.Ip "\f(CW\*(C`\-\-yydebug\*(C'\fR" 4
-.IX Item "--yydebug"
-If \f(CW\*(C`windres\*(C'\fR is compiled with \f(CW\*(C`YYDEBUG\*(C'\fR defined as \f(CW\*(C`1\*(C'\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, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001 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 \*(L"\s-1GNU\s0 Free Documentation License\*(R".
index f7365a852dc913a0e571cd7ad44e4be77ee989aa..a9a0332b9408db2e5148f8876a25147d7339190c 100644 (file)
@@ -1,3 +1,11 @@
+2001-06-18  H.J. Lu <hjl@gnu.org>
+
+        * doc/Makefile.am (info): Depend on $(MANS).
+        (as.1): Remove the prefix `$(srcdir)/'.
+        * doc/Makefile.in: Regenerated.
+
+        * as.1: Removed.
+
 2001-06-18  Philip Blundell  <philb@gnu.org>
 
        * config/tc-arm.c (do_msr): Remove restriction on usage of
 2001-06-18  Philip Blundell  <philb@gnu.org>
 
        * config/tc-arm.c (do_msr): Remove restriction on usage of
index 52a19a687beefad7f0176bcbfac4f942b7aba47b..499e9efcef68e28ccaf4bad013e8a4b1e0f13f8f 100644 (file)
@@ -435,10 +435,8 @@ stamp-mk.com: vmsconf.sh Makefile
        $(SHELL) $(srcdir)/../move-if-change new-make.com $(srcdir)/make-gas.com
        touch stamp-mk.com
 
        $(SHELL) $(srcdir)/../move-if-change new-make.com $(srcdir)/make-gas.com
        touch stamp-mk.com
 
-EXTRA_DIST = make-gas.com
-
-DISTSTUFF = make-gas.com m68k-parse.c itbl-parse.c itbl-parse.h itbl-lex.c
-diststuff: $(DISTSTUFF) info
+EXTRA_DIST = make-gas.com m68k-parse.c itbl-parse.c itbl-parse.h itbl-lex.c
+diststuff: $(EXTRA_DIST) info
 
 DISTCLEANFILES = targ-cpu.h obj-format.h targ-env.h itbl-cpu.h cgen-desc.h
 
 
 DISTCLEANFILES = targ-cpu.h obj-format.h targ-env.h itbl-cpu.h cgen-desc.h
 
index 1de6c50c329c0267a60373c4264a739492ff6929..bcce02fe72da984f79ef6a3f0869569dbbc1c384 100644 (file)
@@ -552,9 +552,7 @@ noinst_PROGRAMS = as-new gasp-new
 noinst_SCRIPTS = $(GDBINIT)
 EXTRA_SCRIPTS = .gdbinit
 
 noinst_SCRIPTS = $(GDBINIT)
 EXTRA_SCRIPTS = .gdbinit
 
-EXTRA_DIST = make-gas.com
-
-DISTSTUFF = make-gas.com m68k-parse.c itbl-parse.c itbl-parse.h itbl-lex.c
+EXTRA_DIST = make-gas.com m68k-parse.c itbl-parse.c itbl-parse.h itbl-lex.c
 
 DISTCLEANFILES = targ-cpu.h obj-format.h targ-env.h itbl-cpu.h cgen-desc.h
 
 
 DISTCLEANFILES = targ-cpu.h obj-format.h targ-env.h itbl-cpu.h cgen-desc.h
 
@@ -2008,7 +2006,7 @@ configure configure.in gdbinit.in itbl-lex.c itbl-parse.c
 
 DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
 
 
 DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
 
-TAR = tar
+TAR = gtar
 GZIP_ENV = --best
 SOURCES = $(itbl_test_SOURCES) $(as_new_SOURCES) $(EXTRA_as_new_SOURCES) $(gasp_new_SOURCES)
 OBJECTS = $(itbl_test_OBJECTS) $(as_new_OBJECTS) $(gasp_new_OBJECTS)
 GZIP_ENV = --best
 SOURCES = $(itbl_test_SOURCES) $(as_new_SOURCES) $(EXTRA_as_new_SOURCES) $(gasp_new_SOURCES)
 OBJECTS = $(itbl_test_OBJECTS) $(as_new_OBJECTS) $(gasp_new_OBJECTS)
@@ -2407,7 +2405,7 @@ stamp-mk.com: vmsconf.sh Makefile
        sh $(srcdir)/vmsconf.sh $(GENERIC_OBJS) > new-make.com
        $(SHELL) $(srcdir)/../move-if-change new-make.com $(srcdir)/make-gas.com
        touch stamp-mk.com
        sh $(srcdir)/vmsconf.sh $(GENERIC_OBJS) > new-make.com
        $(SHELL) $(srcdir)/../move-if-change new-make.com $(srcdir)/make-gas.com
        touch stamp-mk.com
-diststuff: $(DISTSTUFF) info
+diststuff: $(EXTRA_DIST) info
 
 $(OBJS): @ALL_OBJ_DEPS@
 
 
 $(OBJS): @ALL_OBJ_DEPS@
 
diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c
deleted file mode 100644 (file)
index 99aff8e..0000000
+++ /dev/null
@@ -1,8897 +0,0 @@
-/* tc-arm.c -- Assemble for the ARM
-   Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001
-   Free Software Foundation, Inc.
-   Contributed by Richard Earnshaw (rwe@pegasus.esprit.ec.org)
-       Modified by David Taylor (dtaylor@armltd.co.uk)
-
-   This file is part of GAS, the GNU Assembler.
-
-   GAS 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.
-
-   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
-   GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License
-   along with GAS; see the file COPYING.  If not, write to the Free
-   Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-   02111-1307, USA.  */
-
-#include <ctype.h>
-#include <string.h>
-#define  NO_RELOC 0
-#include "as.h"
-
-/* Need TARGET_CPU.  */
-#include "config.h"
-#include "subsegs.h"
-#include "obstack.h"
-#include "symbols.h"
-#include "listing.h"
-
-#ifdef OBJ_ELF
-#include "elf/arm.h"
-#include "dwarf2dbg.h"
-#endif
-
-/* Types of processor to assemble for.  */
-#define ARM_1          0x00000001
-#define ARM_2          0x00000002
-#define ARM_3          0x00000004
-#define ARM_250                ARM_3
-#define ARM_6          0x00000008
-#define ARM_7          ARM_6           /* Same core instruction set.  */
-#define ARM_8          ARM_6           /* Same core instruction set.  */
-#define ARM_9          ARM_6           /* Same core instruction set.  */
-#define ARM_CPU_MASK   0x0000000f
-
-/* The following bitmasks control CPU extensions (ARM7 onwards):   */
-#define ARM_EXT_LONGMUL        0x00000010      /* Allow long multiplies.  */
-#define ARM_EXT_HALFWORD 0x00000020    /* Allow half word loads.  */
-#define ARM_EXT_THUMB  0x00000040      /* Allow BX instruction.   */
-#define ARM_EXT_V5     0x00000080      /* Allow CLZ, etc.         */
-#define ARM_EXT_V5E    0x00000100      /* "El Segundo".           */
-#define ARM_EXT_XSCALE 0x00000200      /* Allow MIA etc.          */
-
-/* Architectures are the sum of the base and extensions.  */
-#define ARM_ARCH_V3M     ARM_EXT_LONGMUL
-#define ARM_ARCH_V4     (ARM_ARCH_V3M | ARM_EXT_HALFWORD)
-#define ARM_ARCH_V4T   (ARM_ARCH_V4 | ARM_EXT_THUMB)
-#define ARM_ARCH_V5    (ARM_ARCH_V4 | ARM_EXT_V5)
-#define ARM_ARCH_V5T   (ARM_ARCH_V5 | ARM_EXT_THUMB)
-#define ARM_ARCH_V5TE  (ARM_ARCH_V5T | ARM_EXT_V5E)
-#define ARM_ARCH_XSCALE (ARM_ARCH_V5TE | ARM_EXT_XSCALE)
-
-/* Some useful combinations:  */
-#define ARM_ANY                0x00ffffff
-#define ARM_2UP                (ARM_ANY - ARM_1)
-#define ARM_ALL                ARM_2UP         /* Not arm1 only.  */
-#define ARM_3UP                0x00fffffc
-#define ARM_6UP                0x00fffff8      /* Includes ARM7.  */
-
-#define FPU_CORE       0x80000000
-#define FPU_FPA10      0x40000000
-#define FPU_FPA11      0x40000000
-#define FPU_NONE       0
-
-/* Some useful combinations.  */
-#define FPU_ALL                0xff000000      /* Note this is ~ARM_ANY.  */
-#define FPU_MEMMULTI   0x7f000000      /* Not fpu_core.  */
-
-#ifndef CPU_DEFAULT
-#if defined __XSCALE__
-#define CPU_DEFAULT    (ARM_9 | ARM_ARCH_XSCALE)
-#else
-#if defined __thumb__
-#define CPU_DEFAULT    (ARM_7 | ARM_ARCH_V4T)
-#else
-#define CPU_DEFAULT    ARM_ALL
-#endif
-#endif
-#endif
-
-#ifndef FPU_DEFAULT
-#define FPU_DEFAULT FPU_ALL
-#endif
-
-#define streq(a, b)           (strcmp (a, b) == 0)
-#define skip_whitespace(str)  while (*(str) == ' ') ++(str)
-
-static unsigned long cpu_variant = CPU_DEFAULT | FPU_DEFAULT;
-static int target_oabi = 0;
-
-#if defined OBJ_COFF || defined OBJ_ELF
-/* Flags stored in private area of BFD structure.  */
-static boolean uses_apcs_26      = false;
-static boolean atpcs             = false;
-static boolean support_interwork = false;
-static boolean uses_apcs_float   = false;
-static boolean pic_code          = false;
-#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_"  */
-symbolS * GOT_symbol;
-#endif
-
-/* Size of relocation record.  */
-CONST int md_reloc_size = 8;
-
-/* 0: assemble for ARM,
-   1: assemble for Thumb,
-   2: assemble for Thumb even though target CPU does not support thumb
-      instructions.  */
-static int thumb_mode = 0;
-
-typedef struct arm_fix
-{
-  int thumb_mode;
-} arm_fix_data;
-
-struct arm_it
-{
-  CONST char *  error;
-  unsigned long instruction;
-  int           suffix;
-  int           size;
-  struct
-  {
-    bfd_reloc_code_real_type type;
-    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 }
-};
-
-#define NO_SHIFT_RESTRICT 1
-#define SHIFT_RESTRICT   0
-
-#define NUM_FLOAT_VALS 8
-
-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.  */
-#define MAX_LITTLENUMS 6
-
-LITTLENUM_TYPE fp_values[NUM_FLOAT_VALS][MAX_LITTLENUMS];
-
-#define FAIL   (-1)
-#define SUCCESS (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 CONDS_BIT        0x00100000
-#define LOAD_BIT         0x00100000
-#define TRANS_BIT       0x00200000
-
-#define DOUBLE_LOAD_FLAG 0x00000001
-
-struct asm_cond
-{
-  CONST char *  template;
-  unsigned long value;
-};
-
-/* This is to save a hash look-up in the common case.  */
-#define COND_ALWAYS 0xe0000000
-
-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}
-};
-
-/* Warning: If the top bit of the set_bits is set, then the standard
-   instruction bitmask is ignored, and the new bitmask is taken from
-   the set_bits:  */
-struct asm_flg
-{
-  CONST char *  template;      /* Basic flag string.  */
-  unsigned long set_bits;      /* Bits to set.  */
-};
-
-static CONST struct asm_flg s_flag[] =
-{
-  {"s", CONDS_BIT},
-  {NULL, 0}
-};
-
-static CONST struct asm_flg ldr_flags[] =
-{
-  {"d",  DOUBLE_LOAD_FLAG},
-  {"b",  0x00400000},
-  {"t",  TRANS_BIT},
-  {"bt", 0x00400000 | TRANS_BIT},
-  {"h",  0x801000b0},
-  {"sh", 0x801000f0},
-  {"sb", 0x801000d0},
-  {NULL, 0}
-};
-
-static CONST struct asm_flg str_flags[] =
-{
-  {"d",  DOUBLE_LOAD_FLAG},
-  {"b",  0x00400000},
-  {"t",  TRANS_BIT},
-  {"bt", 0x00400000 | TRANS_BIT},
-  {"h",  0x800000b0},
-  {NULL, 0}
-};
-
-static CONST struct asm_flg byte_flag[] =
-{
-  {"b", 0x00400000},
-  {NULL, 0}
-};
-
-static CONST struct asm_flg cmp_flags[] =
-{
-  {"s", CONDS_BIT},
-  {"p", 0x0010f000},
-  {NULL, 0}
-};
-
-static CONST struct asm_flg ldm_flags[] =
-{
-  {"ed", 0x01800000},
-  {"fd", 0x00800000},
-  {"ea", 0x01000000},
-  {"fa", 0x00000000},
-  {"ib", 0x01800000},
-  {"ia", 0x00800000},
-  {"db", 0x01000000},
-  {"da", 0x00000000},
-  {NULL, 0}
-};
-
-static CONST struct asm_flg stm_flags[] =
-{
-  {"ed", 0x00000000},
-  {"fd", 0x01000000},
-  {"ea", 0x00800000},
-  {"fa", 0x01800000},
-  {"ib", 0x01800000},
-  {"ia", 0x00800000},
-  {"db", 0x01000000},
-  {"da", 0x00000000},
-  {NULL, 0}
-};
-
-static CONST struct asm_flg lfm_flags[] =
-{
-  {"fd", 0x00800000},
-  {"ea", 0x01000000},
-  {NULL, 0}
-};
-
-static CONST struct asm_flg sfm_flags[] =
-{
-  {"fd", 0x01000000},
-  {"ea", 0x00800000},
-  {NULL, 0}
-};
-
-static CONST struct asm_flg round_flags[] =
-{
-  {"p", 0x00000020},
-  {"m", 0x00000040},
-  {"z", 0x00000060},
-  {NULL, 0}
-};
-
-/* The implementation of the FIX instruction is broken on some assemblers,
-   in that it accepts a precision specifier as well as a rounding specifier,
-   despite the fact that this is meaningless.  To be more compatible, we
-   accept it as well, though of course it does not set any bits.  */
-static CONST struct asm_flg fix_flags[] =
-{
-  {"p", 0x00000020},
-  {"m", 0x00000040},
-  {"z", 0x00000060},
-  {"sp", 0x00000020},
-  {"sm", 0x00000040},
-  {"sz", 0x00000060},
-  {"dp", 0x00000020},
-  {"dm", 0x00000040},
-  {"dz", 0x00000060},
-  {"ep", 0x00000020},
-  {"em", 0x00000040},
-  {"ez", 0x00000060},
-  {NULL, 0}
-};
-
-static CONST struct asm_flg except_flag[] =
-{
-  {"e", 0x00400000},
-  {NULL, 0}
-};
-
-static CONST struct asm_flg cplong_flag[] =
-{
-  {"l", 0x00400000},
-  {NULL, 0}
-};
-
-struct asm_psr
-{
-  CONST char *  template;
-  boolean       cpsr;
-  unsigned long field;
-};
-
-/* The bit that distnguishes 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},
-};
-
-/* Functions called by parser.  */
-/* ARM instructions.  */
-static void do_arit            PARAMS ((char *, unsigned long));
-static void do_cmp             PARAMS ((char *, unsigned long));
-static void do_mov             PARAMS ((char *, unsigned long));
-static void do_ldst            PARAMS ((char *, unsigned long));
-static void do_ldmstm          PARAMS ((char *, unsigned long));
-static void do_branch          PARAMS ((char *, unsigned long));
-static void do_swi             PARAMS ((char *, unsigned long));
-/* Pseudo Op codes.  */
-static void do_adr             PARAMS ((char *, unsigned long));
-static void do_adrl            PARAMS ((char *, unsigned long));
-static void do_nop             PARAMS ((char *, unsigned long));
-/* ARM 2.  */
-static void do_mul             PARAMS ((char *, unsigned long));
-static void do_mla             PARAMS ((char *, unsigned long));
-/* ARM 3.  */
-static void do_swap            PARAMS ((char *, unsigned long));
-/* ARM 6.  */
-static void do_msr             PARAMS ((char *, unsigned long));
-static void do_mrs             PARAMS ((char *, unsigned long));
-/* ARM 7M.  */
-static void do_mull            PARAMS ((char *, unsigned long));
-/* ARM THUMB.  */
-static void do_bx               PARAMS ((char *, unsigned long));
-
-/* ARM_EXT_XScale.  */
-static void do_mia             PARAMS ((char *, unsigned long));
-static void do_mar             PARAMS ((char *, unsigned long));
-static void do_mra             PARAMS ((char *, unsigned long));
-static void do_pld             PARAMS ((char *, unsigned long));
-static void do_ldrd            PARAMS ((char *, unsigned long));
-
-/* ARM_EXT_V5.  */
-static void do_blx             PARAMS ((char *, unsigned long));
-static void do_bkpt            PARAMS ((char *, unsigned long));
-static void do_clz             PARAMS ((char *, unsigned long));
-static void do_lstc2           PARAMS ((char *, unsigned long));
-static void do_cdp2            PARAMS ((char *, unsigned long));
-static void do_co_reg2         PARAMS ((char *, unsigned long));
-
-static void do_t_blx           PARAMS ((char *));
-static void do_t_bkpt          PARAMS ((char *));
-
-/* ARM_EXT_V5E.  */
-static void do_smla            PARAMS ((char *, unsigned long));
-static void do_smlal           PARAMS ((char *, unsigned long));
-static void do_smul            PARAMS ((char *, unsigned long));
-static void do_qadd            PARAMS ((char *, unsigned long));
-static void do_co_reg2c                PARAMS ((char *, unsigned long));
-
-/* Coprocessor Instructions.  */
-static void do_cdp             PARAMS ((char *, unsigned long));
-static void do_lstc            PARAMS ((char *, unsigned long));
-static void do_co_reg          PARAMS ((char *, unsigned long));
-static void do_fp_ctrl         PARAMS ((char *, unsigned long));
-static void do_fp_ldst         PARAMS ((char *, unsigned long));
-static void do_fp_ldmstm       PARAMS ((char *, unsigned long));
-static void do_fp_dyadic       PARAMS ((char *, unsigned long));
-static void do_fp_monadic      PARAMS ((char *, unsigned long));
-static void do_fp_cmp          PARAMS ((char *, unsigned long));
-static void do_fp_from_reg     PARAMS ((char *, unsigned long));
-static void do_fp_to_reg       PARAMS ((char *, unsigned long));
-
-static void fix_new_arm                PARAMS ((fragS *, int, short, expressionS *, int, int));
-static int arm_reg_parse       PARAMS ((char **));
-static CONST struct asm_psr * arm_psr_parse PARAMS ((char **));
-static void symbol_locate      PARAMS ((symbolS *, CONST char *, segT, valueT, fragS *));
-static int add_to_lit_pool     PARAMS ((void));
-static unsigned validate_immediate PARAMS ((unsigned));
-static unsigned validate_immediate_twopart PARAMS ((unsigned int, unsigned int *));
-static int validate_offset_imm PARAMS ((unsigned int, int));
-static void opcode_select      PARAMS ((int));
-static void end_of_line                PARAMS ((char *));
-static int reg_required_here   PARAMS ((char **, int));
-static int psr_required_here   PARAMS ((char **));
-static int co_proc_number      PARAMS ((char **));
-static int cp_opc_expr         PARAMS ((char **, int, int));
-static int cp_reg_required_here        PARAMS ((char **, int));
-static int fp_reg_required_here        PARAMS ((char **, int));
-static int cp_address_offset   PARAMS ((char **));
-static int cp_address_required_here    PARAMS ((char **));
-static int my_get_float_expression     PARAMS ((char **));
-static int skip_past_comma     PARAMS ((char **));
-static int walk_no_bignums     PARAMS ((symbolS *));
-static int negate_data_op      PARAMS ((unsigned long *, unsigned long));
-static int data_op2            PARAMS ((char **));
-static int fp_op2              PARAMS ((char **));
-static long reg_list           PARAMS ((char **));
-static void thumb_load_store   PARAMS ((char *, int, int));
-static int decode_shift                PARAMS ((char **, int));
-static int ldst_extend         PARAMS ((char **, int));
-static void thumb_add_sub      PARAMS ((char *, int));
-static void insert_reg         PARAMS ((int));
-static void thumb_shift                PARAMS ((char *, int));
-static void thumb_mov_compare  PARAMS ((char *, int));
-static void set_constant_flonums       PARAMS ((void));
-static valueT md_chars_to_number       PARAMS ((char *, int));
-static void insert_reg_alias   PARAMS ((char *, int));
-static void output_inst                PARAMS ((void));
-#ifdef OBJ_ELF
-static bfd_reloc_code_real_type        arm_parse_reloc PARAMS ((void));
-#endif
-
-/* ARM instructions take 4bytes in the object file, Thumb instructions
-   take 2:  */
-#define INSN_SIZE       4
-
-/* LONGEST_INST is the longest basic instruction name without
-   conditions or flags.  ARM7M has 4 of length 5.  El Segundo
-   has one basic instruction name of length 7 (SMLALxy).  */
-#define LONGEST_INST 7
-
-struct asm_opcode
-{
-  /* Basic string to match.  */
-  CONST char * template;
-
-  /* Basic instruction code.  */
-  unsigned long value;
-
-  /* Compulsory suffix that must follow conds.  If "", then the
-     instruction is not conditional and must have no suffix.  */
-  CONST char * comp_suffix;
-
-  /* Bits to toggle if flag 'n' set.  */
-  CONST struct asm_flg * flags;
-
-  /* Which CPU variants this exists for.  */
-  unsigned long variants;
-
-  /* Function to call to parse args.  */
-  void (* parms) PARAMS ((char *, unsigned long));
-};
-
-static CONST struct asm_opcode insns[] =
-{
-/* Intel XScale extensions to ARM V5 ISA.  */
-  {"mia",   0x0e200010, NULL,   NULL,        ARM_EXT_XSCALE, do_mia},
-  {"miaph", 0x0e280010, NULL,   NULL,        ARM_EXT_XSCALE, do_mia},
-  {"miabb", 0x0e2c0010, NULL,   NULL,        ARM_EXT_XSCALE, do_mia},
-  {"miabt", 0x0e2d0010, NULL,   NULL,        ARM_EXT_XSCALE, do_mia},
-  {"miatb", 0x0e2e0010, NULL,   NULL,        ARM_EXT_XSCALE, do_mia},
-  {"miatt", 0x0e2f0010, NULL,   NULL,        ARM_EXT_XSCALE, do_mia},
-  {"mar",   0x0c400000, NULL,   NULL,        ARM_EXT_XSCALE, do_mar},
-  {"mra",   0x0c500000, NULL,   NULL,        ARM_EXT_XSCALE, do_mra},
-  {"pld",   0xf450f000, "",     NULL,        ARM_EXT_XSCALE, do_pld},
-  {"ldr",   0x000000d0, NULL,   ldr_flags,   ARM_ANY,        do_ldrd},
-  {"str",   0x000000f0, NULL,   str_flags,   ARM_ANY,        do_ldrd},
-
-/* ARM Instructions.  */
-  {"and",   0x00000000, NULL,   s_flag,      ARM_ANY,      do_arit},
-  {"eor",   0x00200000, NULL,   s_flag,      ARM_ANY,      do_arit},
-  {"sub",   0x00400000, NULL,   s_flag,      ARM_ANY,      do_arit},
-  {"rsb",   0x00600000, NULL,   s_flag,      ARM_ANY,      do_arit},
-  {"add",   0x00800000, NULL,   s_flag,      ARM_ANY,      do_arit},
-  {"adc",   0x00a00000, NULL,   s_flag,      ARM_ANY,      do_arit},
-  {"sbc",   0x00c00000, NULL,   s_flag,      ARM_ANY,      do_arit},
-  {"rsc",   0x00e00000, NULL,   s_flag,      ARM_ANY,      do_arit},
-  {"orr",   0x01800000, NULL,   s_flag,      ARM_ANY,      do_arit},
-  {"bic",   0x01c00000, NULL,   s_flag,      ARM_ANY,      do_arit},
-  {"tst",   0x01000000, NULL,   cmp_flags,   ARM_ANY,      do_cmp},
-  {"teq",   0x01200000, NULL,   cmp_flags,   ARM_ANY,      do_cmp},
-  {"cmp",   0x01400000, NULL,   cmp_flags,   ARM_ANY,      do_cmp},
-  {"cmn",   0x01600000, NULL,   cmp_flags,   ARM_ANY,      do_cmp},
-  {"mov",   0x01a00000, NULL,   s_flag,      ARM_ANY,      do_mov},
-  {"mvn",   0x01e00000, NULL,   s_flag,      ARM_ANY,      do_mov},
-  {"str",   0x04000000, NULL,   str_flags,   ARM_ANY,      do_ldst},
-  {"ldr",   0x04100000, NULL,   ldr_flags,   ARM_ANY,      do_ldst},
-  {"stm",   0x08000000, NULL,   stm_flags,   ARM_ANY,      do_ldmstm},
-  {"ldm",   0x08100000, NULL,   ldm_flags,   ARM_ANY,      do_ldmstm},
-  {"swi",   0x0f000000, NULL,   NULL,        ARM_ANY,      do_swi},
-#ifdef TE_WINCE
-  {"bl",    0x0b000000, NULL,   NULL,        ARM_ANY,      do_branch},
-  {"b",     0x0a000000, NULL,   NULL,        ARM_ANY,      do_branch},
-#else
-  {"bl",    0x0bfffffe, NULL,   NULL,        ARM_ANY,      do_branch},
-  {"b",     0x0afffffe, NULL,   NULL,        ARM_ANY,      do_branch},
-#endif
-
-/* Pseudo ops.  */
-  {"adr",   0x028f0000, NULL,   NULL,        ARM_ANY,      do_adr},
-  {"adrl",  0x028f0000, NULL,   NULL,        ARM_ANY,      do_adrl},
-  {"nop",   0x01a00000, NULL,   NULL,        ARM_ANY,      do_nop},
-
-/* ARM 2 multiplies.  */
-  {"mul",   0x00000090, NULL,   s_flag,      ARM_2UP,      do_mul},
-  {"mla",   0x00200090, NULL,   s_flag,      ARM_2UP,      do_mla},
-
-/* ARM 3 - swp instructions.  */
-  {"swp",   0x01000090, NULL,   byte_flag,   ARM_3UP,      do_swap},
-
-/* ARM 6 Coprocessor instructions.  */
-  {"mrs",   0x010f0000, NULL,   NULL,        ARM_6UP,      do_mrs},
-  {"msr",   0x0120f000, NULL,   NULL,        ARM_6UP,      do_msr},
-/* ScottB: our code uses 0x0128f000 for msr.
-   NickC:  but this is wrong because the bits 16 through 19 are
-           handled by the PSR_xxx defines above.  */
-
-/* ARM 7M long multiplies - need signed/unsigned flags!  */
-  {"smull", 0x00c00090, NULL,   s_flag,      ARM_EXT_LONGMUL,  do_mull},
-  {"umull", 0x00800090, NULL,   s_flag,      ARM_EXT_LONGMUL,  do_mull},
-  {"smlal", 0x00e00090, NULL,   s_flag,      ARM_EXT_LONGMUL,  do_mull},
-  {"umlal", 0x00a00090, NULL,   s_flag,      ARM_EXT_LONGMUL,  do_mull},
-
-/* ARM THUMB interworking.  */
-  {"bx",    0x012fff10, NULL,   NULL,        ARM_EXT_THUMB,    do_bx},
-
-/* Floating point instructions.  */
-  {"wfs",   0x0e200110, NULL,   NULL,        FPU_ALL,      do_fp_ctrl},
-  {"rfs",   0x0e300110, NULL,   NULL,        FPU_ALL,      do_fp_ctrl},
-  {"wfc",   0x0e400110, NULL,   NULL,        FPU_ALL,      do_fp_ctrl},
-  {"rfc",   0x0e500110, NULL,   NULL,        FPU_ALL,      do_fp_ctrl},
-  {"ldf",   0x0c100100, "sdep", NULL,        FPU_ALL,      do_fp_ldst},
-  {"stf",   0x0c000100, "sdep", NULL,        FPU_ALL,      do_fp_ldst},
-  {"lfm",   0x0c100200, NULL,   lfm_flags,   FPU_MEMMULTI, do_fp_ldmstm},
-  {"sfm",   0x0c000200, NULL,   sfm_flags,   FPU_MEMMULTI, do_fp_ldmstm},
-  {"mvf",   0x0e008100, "sde",  round_flags, FPU_ALL,      do_fp_monadic},
-  {"mnf",   0x0e108100, "sde",  round_flags, FPU_ALL,      do_fp_monadic},
-  {"abs",   0x0e208100, "sde",  round_flags, FPU_ALL,      do_fp_monadic},
-  {"rnd",   0x0e308100, "sde",  round_flags, FPU_ALL,      do_fp_monadic},
-  {"sqt",   0x0e408100, "sde",  round_flags, FPU_ALL,      do_fp_monadic},
-  {"log",   0x0e508100, "sde",  round_flags, FPU_ALL,      do_fp_monadic},
-  {"lgn",   0x0e608100, "sde",  round_flags, FPU_ALL,      do_fp_monadic},
-  {"exp",   0x0e708100, "sde",  round_flags, FPU_ALL,      do_fp_monadic},
-  {"sin",   0x0e808100, "sde",  round_flags, FPU_ALL,      do_fp_monadic},
-  {"cos",   0x0e908100, "sde",  round_flags, FPU_ALL,      do_fp_monadic},
-  {"tan",   0x0ea08100, "sde",  round_flags, FPU_ALL,      do_fp_monadic},
-  {"asn",   0x0eb08100, "sde",  round_flags, FPU_ALL,      do_fp_monadic},
-  {"acs",   0x0ec08100, "sde",  round_flags, FPU_ALL,      do_fp_monadic},
-  {"atn",   0x0ed08100, "sde",  round_flags, FPU_ALL,      do_fp_monadic},
-  {"urd",   0x0ee08100, "sde",  round_flags, FPU_ALL,      do_fp_monadic},
-  {"nrm",   0x0ef08100, "sde",  round_flags, FPU_ALL,      do_fp_monadic},
-  {"adf",   0x0e000100, "sde",  round_flags, FPU_ALL,      do_fp_dyadic},
-  {"suf",   0x0e200100, "sde",  round_flags, FPU_ALL,      do_fp_dyadic},
-  {"rsf",   0x0e300100, "sde",  round_flags, FPU_ALL,      do_fp_dyadic},
-  {"muf",   0x0e100100, "sde",  round_flags, FPU_ALL,      do_fp_dyadic},
-  {"dvf",   0x0e400100, "sde",  round_flags, FPU_ALL,      do_fp_dyadic},
-  {"rdf",   0x0e500100, "sde",  round_flags, FPU_ALL,      do_fp_dyadic},
-  {"pow",   0x0e600100, "sde",  round_flags, FPU_ALL,      do_fp_dyadic},
-  {"rpw",   0x0e700100, "sde",  round_flags, FPU_ALL,      do_fp_dyadic},
-  {"rmf",   0x0e800100, "sde",  round_flags, FPU_ALL,      do_fp_dyadic},
-  {"fml",   0x0e900100, "sde",  round_flags, FPU_ALL,      do_fp_dyadic},
-  {"fdv",   0x0ea00100, "sde",  round_flags, FPU_ALL,      do_fp_dyadic},
-  {"frd",   0x0eb00100, "sde",  round_flags, FPU_ALL,      do_fp_dyadic},
-  {"pol",   0x0ec00100, "sde",  round_flags, FPU_ALL,      do_fp_dyadic},
-  {"cmf",   0x0e90f110, NULL,   except_flag, FPU_ALL,      do_fp_cmp},
-  {"cnf",   0x0eb0f110, NULL,   except_flag, FPU_ALL,      do_fp_cmp},
-/* The FPA10 data sheet suggests that the 'E' of cmfe/cnfe should not
-   be an optional suffix, but part of the instruction.  To be compatible,
-   we accept either.  */
-  {"cmfe",  0x0ed0f110, NULL,   NULL,        FPU_ALL,      do_fp_cmp},
-  {"cnfe",  0x0ef0f110, NULL,   NULL,        FPU_ALL,      do_fp_cmp},
-  {"flt",   0x0e000110, "sde",  round_flags, FPU_ALL,      do_fp_from_reg},
-  {"fix",   0x0e100110, NULL,   fix_flags,   FPU_ALL,      do_fp_to_reg},
-
-/* Generic copressor instructions.  */
-  {"cdp",   0x0e000000, NULL,  NULL,         ARM_2UP,      do_cdp},
-  {"ldc",   0x0c100000, NULL,  cplong_flag,  ARM_2UP,      do_lstc},
-  {"stc",   0x0c000000, NULL,  cplong_flag,  ARM_2UP,      do_lstc},
-  {"mcr",   0x0e000010, NULL,  NULL,         ARM_2UP,      do_co_reg},
-  {"mrc",   0x0e100010, NULL,  NULL,         ARM_2UP,      do_co_reg},
-
-/*  ARM ISA extension 5.  */
-/* Note: blx is actually 2 opcodes, so the .value is set dynamically.
-   And it's sometimes conditional and sometimes not.  */
-  {"blx",            0, NULL,   NULL,        ARM_EXT_V5, do_blx},
-  {"clz",   0x016f0f10, NULL,   NULL,        ARM_EXT_V5, do_clz},
-  {"bkpt",  0xe1200070, "",    NULL,        ARM_EXT_V5, do_bkpt},
-  {"ldc2",  0xfc100000, "",    cplong_flag, ARM_EXT_V5, do_lstc2},
-  {"stc2",  0xfc000000, "",    cplong_flag, ARM_EXT_V5, do_lstc2},
-  {"cdp2",  0xfe000000, "",    NULL,        ARM_EXT_V5, do_cdp2},
-  {"mcr2",  0xfe000010, "",    NULL,        ARM_EXT_V5, do_co_reg2},
-  {"mrc2",  0xfe100010, "",    NULL,        ARM_EXT_V5, do_co_reg2},
-
-/*  ARM ISA extension 5E, El Segundo.  */
-  {"smlabb", 0x01000080, NULL,   NULL,        ARM_EXT_V5E, do_smla},
-  {"smlatb", 0x010000a0, NULL,   NULL,        ARM_EXT_V5E, do_smla},
-  {"smlabt", 0x010000c0, NULL,   NULL,        ARM_EXT_V5E, do_smla},
-  {"smlatt", 0x010000e0, NULL,   NULL,        ARM_EXT_V5E, do_smla},
-
-  {"smlawb", 0x01200080, NULL,   NULL,        ARM_EXT_V5E, do_smla},
-  {"smlawt", 0x012000c0, NULL,   NULL,        ARM_EXT_V5E, do_smla},
-
-  {"smlalbb",0x01400080, NULL,   NULL,        ARM_EXT_V5E, do_smlal},
-  {"smlaltb",0x014000a0, NULL,   NULL,        ARM_EXT_V5E, do_smlal},
-  {"smlalbt",0x014000c0, NULL,   NULL,        ARM_EXT_V5E, do_smlal},
-  {"smlaltt",0x014000e0, NULL,   NULL,        ARM_EXT_V5E, do_smlal},
-
-  {"smulbb", 0x01600080, NULL,   NULL,        ARM_EXT_V5E, do_smul},
-  {"smultb", 0x016000a0, NULL,   NULL,        ARM_EXT_V5E, do_smul},
-  {"smulbt", 0x016000c0, NULL,   NULL,        ARM_EXT_V5E, do_smul},
-  {"smultt", 0x016000e0, NULL,   NULL,        ARM_EXT_V5E, do_smul},
-
-  {"smulwb", 0x012000a0, NULL,   NULL,        ARM_EXT_V5E, do_smul},
-  {"smulwt", 0x012000e0, NULL,   NULL,        ARM_EXT_V5E, do_smul},
-
-  {"qadd",   0x01000050, NULL,   NULL,        ARM_EXT_V5E, do_qadd},
-  {"qdadd",  0x01400050, NULL,   NULL,        ARM_EXT_V5E, do_qadd},
-  {"qsub",   0x01200050, NULL,   NULL,        ARM_EXT_V5E, do_qadd},
-  {"qdsub",  0x01600050, NULL,   NULL,        ARM_EXT_V5E, do_qadd},
-
-  {"mcrr",  0x0c400000, NULL,   NULL,         ARM_EXT_V5E, do_co_reg2c},
-  {"mrrc",  0x0c500000, NULL,   NULL,         ARM_EXT_V5E, do_co_reg2c},
-};
-
-/* Defines for various bits that we will want to toggle.  */
-#define INST_IMMEDIATE 0x02000000
-#define OFFSET_REG     0x02000000
-#define HWOFFSET_IMM    0x00400000
-#define SHIFT_BY_REG   0x00000010
-#define PRE_INDEX      0x01000000
-#define INDEX_UP       0x00800000
-#define WRITE_BACK     0x00200000
-#define LDM_TYPE_2_OR_3        0x00400000
-
-#define LITERAL_MASK   0xf000f000
-#define COND_MASK      0xf0000000
-#define OPCODE_MASK    0xfe1fffff
-#define DATA_OP_SHIFT  21
-
-/* Codes to distinguish the arithmetic instructions.  */
-#define OPCODE_AND     0
-#define OPCODE_EOR     1
-#define OPCODE_SUB     2
-#define OPCODE_RSB     3
-#define OPCODE_ADD     4
-#define OPCODE_ADC     5
-#define OPCODE_SBC     6
-#define OPCODE_RSC     7
-#define OPCODE_TST     8
-#define OPCODE_TEQ     9
-#define OPCODE_CMP     10
-#define OPCODE_CMN     11
-#define OPCODE_ORR     12
-#define OPCODE_MOV     13
-#define OPCODE_BIC     14
-#define OPCODE_MVN     15
-
-static void do_t_nop           PARAMS ((char *));
-static void do_t_arit          PARAMS ((char *));
-static void do_t_add           PARAMS ((char *));
-static void do_t_asr           PARAMS ((char *));
-static void do_t_branch9       PARAMS ((char *));
-static void do_t_branch12      PARAMS ((char *));
-static void do_t_branch23      PARAMS ((char *));
-static void do_t_bx            PARAMS ((char *));
-static void do_t_compare       PARAMS ((char *));
-static void do_t_ldmstm                PARAMS ((char *));
-static void do_t_ldr           PARAMS ((char *));
-static void do_t_ldrb          PARAMS ((char *));
-static void do_t_ldrh          PARAMS ((char *));
-static void do_t_lds           PARAMS ((char *));
-static void do_t_lsl           PARAMS ((char *));
-static void do_t_lsr           PARAMS ((char *));
-static void do_t_mov           PARAMS ((char *));
-static void do_t_push_pop      PARAMS ((char *));
-static void do_t_str           PARAMS ((char *));
-static void do_t_strb          PARAMS ((char *));
-static void do_t_strh          PARAMS ((char *));
-static void do_t_sub           PARAMS ((char *));
-static void do_t_swi           PARAMS ((char *));
-static void do_t_adr           PARAMS ((char *));
-
-#define T_OPCODE_MUL 0x4340
-#define T_OPCODE_TST 0x4200
-#define T_OPCODE_CMN 0x42c0
-#define T_OPCODE_NEG 0x4240
-#define T_OPCODE_MVN 0x43c0
-
-#define T_OPCODE_ADD_R3        0x1800
-#define T_OPCODE_SUB_R3 0x1a00
-#define T_OPCODE_ADD_HI 0x4400
-#define T_OPCODE_ADD_ST 0xb000
-#define T_OPCODE_SUB_ST 0xb080
-#define T_OPCODE_ADD_SP 0xa800
-#define T_OPCODE_ADD_PC 0xa000
-#define T_OPCODE_ADD_I8 0x3000
-#define T_OPCODE_SUB_I8 0x3800
-#define T_OPCODE_ADD_I3 0x1c00
-#define T_OPCODE_SUB_I3 0x1e00
-
-#define T_OPCODE_ASR_R 0x4100
-#define T_OPCODE_LSL_R 0x4080
-#define T_OPCODE_LSR_R  0x40c0
-#define T_OPCODE_ASR_I 0x1000
-#define T_OPCODE_LSL_I 0x0000
-#define T_OPCODE_LSR_I 0x0800
-
-#define T_OPCODE_MOV_I8        0x2000
-#define T_OPCODE_CMP_I8 0x2800
-#define T_OPCODE_CMP_LR 0x4280
-#define T_OPCODE_MOV_HR 0x4600
-#define T_OPCODE_CMP_HR 0x4500
-
-#define T_OPCODE_LDR_PC 0x4800
-#define T_OPCODE_LDR_SP 0x9800
-#define T_OPCODE_STR_SP 0x9000
-#define T_OPCODE_LDR_IW 0x6800
-#define T_OPCODE_STR_IW 0x6000
-#define T_OPCODE_LDR_IH 0x8800
-#define T_OPCODE_STR_IH 0x8000
-#define T_OPCODE_LDR_IB 0x7800
-#define T_OPCODE_STR_IB 0x7000
-#define T_OPCODE_LDR_RW 0x5800
-#define T_OPCODE_STR_RW 0x5000
-#define T_OPCODE_LDR_RH 0x5a00
-#define T_OPCODE_STR_RH 0x5200
-#define T_OPCODE_LDR_RB 0x5c00
-#define T_OPCODE_STR_RB 0x5400
-
-#define T_OPCODE_PUSH  0xb400
-#define T_OPCODE_POP   0xbc00
-
-#define T_OPCODE_BRANCH 0xe7fe
-
-static int thumb_reg           PARAMS ((char ** str, int hi_lo));
-
-#define THUMB_SIZE     2       /* Size of thumb instruction.  */
-#define THUMB_REG_LO   0x1
-#define THUMB_REG_HI   0x2
-#define THUMB_REG_ANY  0x3
-
-#define THUMB_H1       0x0080
-#define THUMB_H2       0x0040
-
-#define THUMB_ASR 0
-#define THUMB_LSL 1
-#define THUMB_LSR 2
-
-#define THUMB_MOVE 0
-#define THUMB_COMPARE 1
-
-#define THUMB_LOAD 0
-#define THUMB_STORE 1
-
-#define THUMB_PP_PC_LR 0x0100
-
-/* These three are used for immediate shifts, do not alter.  */
-#define THUMB_WORD 2
-#define THUMB_HALFWORD 1
-#define THUMB_BYTE 0
-
-struct thumb_opcode
-{
-  /* Basic string to match.  */
-  CONST char * template;
-
-  /* Basic instruction code.  */
-  unsigned long value;
-
-  int size;
-
-  /* Which CPU variants this exists for.  */
-  unsigned long variants;
-
-  /* Function to call to parse args.  */
-  void (* parms) PARAMS ((char *));
-};
-
-static CONST struct thumb_opcode tinsns[] =
-{
-  {"adc",      0x4140,         2,      ARM_EXT_THUMB, do_t_arit},
-  {"add",      0x0000,         2,      ARM_EXT_THUMB, do_t_add},
-  {"and",      0x4000,         2,      ARM_EXT_THUMB, do_t_arit},
-  {"asr",      0x0000,         2,      ARM_EXT_THUMB, do_t_asr},
-  {"b",                T_OPCODE_BRANCH, 2,     ARM_EXT_THUMB, do_t_branch12},
-  {"beq",      0xd0fe,         2,      ARM_EXT_THUMB, do_t_branch9},
-  {"bne",      0xd1fe,         2,      ARM_EXT_THUMB, do_t_branch9},
-  {"bcs",      0xd2fe,         2,      ARM_EXT_THUMB, do_t_branch9},
-  {"bhs",      0xd2fe,         2,      ARM_EXT_THUMB, do_t_branch9},
-  {"bcc",      0xd3fe,         2,      ARM_EXT_THUMB, do_t_branch9},
-  {"bul",      0xd3fe,         2,      ARM_EXT_THUMB, do_t_branch9},
-  {"blo",      0xd3fe,         2,      ARM_EXT_THUMB, do_t_branch9},
-  {"bmi",      0xd4fe,         2,      ARM_EXT_THUMB, do_t_branch9},
-  {"bpl",      0xd5fe,         2,      ARM_EXT_THUMB, do_t_branch9},
-  {"bvs",      0xd6fe,         2,      ARM_EXT_THUMB, do_t_branch9},
-  {"bvc",      0xd7fe,         2,      ARM_EXT_THUMB, do_t_branch9},
-  {"bhi",      0xd8fe,         2,      ARM_EXT_THUMB, do_t_branch9},
-  {"bls",      0xd9fe,         2,      ARM_EXT_THUMB, do_t_branch9},
-  {"bge",      0xdafe,         2,      ARM_EXT_THUMB, do_t_branch9},
-  {"blt",      0xdbfe,         2,      ARM_EXT_THUMB, do_t_branch9},
-  {"bgt",      0xdcfe,         2,      ARM_EXT_THUMB, do_t_branch9},
-  {"ble",      0xddfe,         2,      ARM_EXT_THUMB, do_t_branch9},
-  {"bal",      0xdefe,         2,      ARM_EXT_THUMB, do_t_branch9},
-  {"bic",      0x4380,         2,      ARM_EXT_THUMB, do_t_arit},
-  {"bl",       0xf7fffffe,     4,      ARM_EXT_THUMB, do_t_branch23},
-  {"blx",      0,              0,      ARM_EXT_V5, do_t_blx},
-  {"bkpt",     0xbe00,         2,      ARM_EXT_V5, do_t_bkpt},
-  {"bx",       0x4700,         2,      ARM_EXT_THUMB, do_t_bx},
-  {"cmn",      T_OPCODE_CMN,   2,      ARM_EXT_THUMB, do_t_arit},
-  {"cmp",      0x0000,         2,      ARM_EXT_THUMB, do_t_compare},
-  {"eor",      0x4040,         2,      ARM_EXT_THUMB, do_t_arit},
-  {"ldmia",    0xc800,         2,      ARM_EXT_THUMB, do_t_ldmstm},
-  {"ldr",      0x0000,         2,      ARM_EXT_THUMB, do_t_ldr},
-  {"ldrb",     0x0000,         2,      ARM_EXT_THUMB, do_t_ldrb},
-  {"ldrh",     0x0000,         2,      ARM_EXT_THUMB, do_t_ldrh},
-  {"ldrsb",    0x5600,         2,      ARM_EXT_THUMB, do_t_lds},
-  {"ldrsh",    0x5e00,         2,      ARM_EXT_THUMB, do_t_lds},
-  {"ldsb",     0x5600,         2,      ARM_EXT_THUMB, do_t_lds},
-  {"ldsh",     0x5e00,         2,      ARM_EXT_THUMB, do_t_lds},
-  {"lsl",      0x0000,         2,      ARM_EXT_THUMB, do_t_lsl},
-  {"lsr",      0x0000,         2,      ARM_EXT_THUMB, do_t_lsr},
-  {"mov",      0x0000,         2,      ARM_EXT_THUMB, do_t_mov},
-  {"mul",      T_OPCODE_MUL,   2,      ARM_EXT_THUMB, do_t_arit},
-  {"mvn",      T_OPCODE_MVN,   2,      ARM_EXT_THUMB, do_t_arit},
-  {"neg",      T_OPCODE_NEG,   2,      ARM_EXT_THUMB, do_t_arit},
-  {"orr",      0x4300,         2,      ARM_EXT_THUMB, do_t_arit},
-  {"pop",      0xbc00,         2,      ARM_EXT_THUMB, do_t_push_pop},
-  {"push",     0xb400,         2,      ARM_EXT_THUMB, do_t_push_pop},
-  {"ror",      0x41c0,         2,      ARM_EXT_THUMB, do_t_arit},
-  {"sbc",      0x4180,         2,      ARM_EXT_THUMB, do_t_arit},
-  {"stmia",    0xc000,         2,      ARM_EXT_THUMB, do_t_ldmstm},
-  {"str",      0x0000,         2,      ARM_EXT_THUMB, do_t_str},
-  {"strb",     0x0000,         2,      ARM_EXT_THUMB, do_t_strb},
-  {"strh",     0x0000,         2,      ARM_EXT_THUMB, do_t_strh},
-  {"swi",      0xdf00,         2,      ARM_EXT_THUMB, do_t_swi},
-  {"sub",      0x0000,         2,      ARM_EXT_THUMB, do_t_sub},
-  {"tst",      T_OPCODE_TST,   2,      ARM_EXT_THUMB, do_t_arit},
-  /* Pseudo ops:  */
-  {"adr",       0x0000,         2,      ARM_EXT_THUMB, do_t_adr},
-  {"nop",       0x46C0,         2,      ARM_EXT_THUMB, do_t_nop},      /* mov r8,r8  */
-};
-
-struct reg_entry
-{
-  CONST char * name;
-  int          number;
-};
-
-#define int_register(reg) ((reg) >= 0 && (reg) <= 15)
-#define cp_register(reg) ((reg) >= 32 && (reg) <= 47)
-#define fp_register(reg) ((reg) >= 16 && (reg) <= 23)
-
-#define REG_PC 15
-#define REG_LR  14
-#define REG_SP  13
-
-/* These are the standard names.  Users can add aliases with .req.  */
-static CONST struct reg_entry reg_table[] =
-{
-  /* Processor Register Numbers.  */
-  {"r0", 0},    {"r1", 1},      {"r2", 2},      {"r3", 3},
-  {"r4", 4},    {"r5", 5},      {"r6", 6},      {"r7", 7},
-  {"r8", 8},    {"r9", 9},      {"r10", 10},    {"r11", 11},
-  {"r12", 12},  {"r13", REG_SP},{"r14", REG_LR},{"r15", REG_PC},
-  /* APCS conventions.  */
-  {"a1", 0},   {"a2", 1},    {"a3", 2},     {"a4", 3},
-  {"v1", 4},   {"v2", 5},    {"v3", 6},     {"v4", 7},     {"v5", 8},
-  {"v6", 9},   {"sb", 9},    {"v7", 10},    {"sl", 10},
-  {"fp", 11},  {"ip", 12},   {"sp", REG_SP},{"lr", REG_LR},{"pc", REG_PC},
-  /* ATPCS additions to APCS conventions.  */
-  {"wr", 7},    {"v8", 11},
-  /* FP Registers.  */
-  {"f0", 16},   {"f1", 17},   {"f2", 18},   {"f3", 19},
-  {"f4", 20},   {"f5", 21},   {"f6", 22},   {"f7", 23},
-  {"c0", 32},   {"c1", 33},   {"c2", 34},   {"c3", 35},
-  {"c4", 36},   {"c5", 37},   {"c6", 38},   {"c7", 39},
-  {"c8", 40},   {"c9", 41},   {"c10", 42},  {"c11", 43},
-  {"c12", 44},  {"c13", 45},  {"c14", 46},  {"c15", 47},
-  {"cr0", 32},  {"cr1", 33},  {"cr2", 34},  {"cr3", 35},
-  {"cr4", 36},  {"cr5", 37},  {"cr6", 38},  {"cr7", 39},
-  {"cr8", 40},  {"cr9", 41},  {"cr10", 42}, {"cr11", 43},
-  {"cr12", 44}, {"cr13", 45}, {"cr14", 46}, {"cr15", 47},
-  /* ATPCS additions to float register names.  */
-  {"s0",16},   {"s1",17},      {"s2",18},      {"s3",19},
-  {"s4",20},   {"s5",21},      {"s6",22},      {"s7",23},
-  {"d0",16},   {"d1",17},      {"d2",18},      {"d3",19},
-  {"d4",20},   {"d5",21},      {"d6",22},      {"d7",23},
-  /* FIXME: At some point we need to add VFP register names.  */
-  /* Array terminator.  */
-  {NULL, 0}
-};
-
-#define BAD_ARGS       _("Bad arguments to instruction")
-#define BAD_PC                 _("r15 not allowed here")
-#define BAD_FLAGS      _("Instruction should not have flags")
-#define BAD_COND       _("Instruction is not conditional")
-#define ERR_NO_ACCUM   _("acc0 expected")
-
-static struct hash_control * arm_ops_hsh   = NULL;
-static struct hash_control * arm_tops_hsh  = NULL;
-static struct hash_control * arm_cond_hsh  = NULL;
-static struct hash_control * arm_shift_hsh = NULL;
-static struct hash_control * arm_reg_hsh   = NULL;
-static struct hash_control * arm_psr_hsh   = NULL;
-
-/* This table describes all the machine specific pseudo-ops the assembler
-   has to support.  The fields are:
-     pseudo-op name without dot
-     function to call to execute this pseudo-op
-     Integer arg to pass to the function.  */
-
-static void s_req PARAMS ((int));
-static void s_align PARAMS ((int));
-static void s_bss PARAMS ((int));
-static void s_even PARAMS ((int));
-static void s_ltorg PARAMS ((int));
-static void s_arm PARAMS ((int));
-static void s_thumb PARAMS ((int));
-static void s_code PARAMS ((int));
-static void s_force_thumb PARAMS ((int));
-static void s_thumb_func PARAMS ((int));
-static void s_thumb_set PARAMS ((int));
-static void arm_s_text PARAMS ((int));
-static void arm_s_data PARAMS ((int));
-#ifdef OBJ_ELF
-static void arm_s_section PARAMS ((int));
-static void s_arm_elf_cons PARAMS ((int));
-#endif
-
-static int my_get_expression PARAMS ((expressionS *, char **));
-
-CONST pseudo_typeS md_pseudo_table[] =
-{
-  /* Never called becasue '.req' does not start line.  */
-  { "req",         s_req,         0 },
-  { "bss",         s_bss,         0 },
-  { "align",       s_align,       0 },
-  { "arm",         s_arm,         0 },
-  { "thumb",       s_thumb,       0 },
-  { "code",        s_code,        0 },
-  { "force_thumb", s_force_thumb, 0 },
-  { "thumb_func",  s_thumb_func,  0 },
-  { "thumb_set",   s_thumb_set,   0 },
-  { "even",        s_even,        0 },
-  { "ltorg",       s_ltorg,       0 },
-  { "pool",        s_ltorg,       0 },
-  /* Allow for the effect of section changes.  */
-  { "text",        arm_s_text,    0 },
-  { "data",        arm_s_data,    0 },
-#ifdef OBJ_ELF
-  { "section",     arm_s_section, 0 },
-  { "section.s",   arm_s_section, 0 },
-  { "sect",        arm_s_section, 0 },
-  { "sect.s",      arm_s_section, 0 },
-  { "word",        s_arm_elf_cons, 4 },
-  { "long",        s_arm_elf_cons, 4 },
-  { "file",        dwarf2_directive_file, 0 },
-  { "loc",         dwarf2_directive_loc,  0 },
-#else
-  { "word",        cons, 4},
-#endif
-  { "extend",      float_cons, 'x' },
-  { "ldouble",     float_cons, 'x' },
-  { "packed",      float_cons, 'p' },
-  { 0, 0, 0 }
-};
-
-/* Stuff needed to resolve the label ambiguity
-   As:
-     ...
-     label:   <insn>
-   may differ from:
-     ...
-     label:
-              <insn>
-*/
-
-symbolS *  last_label_seen;
-static int label_is_thumb_function_name = false;
-
-/* Literal stuff.  */
-
-#define MAX_LITERAL_POOL_SIZE 1024
-
-typedef struct literalS
-{
-  struct expressionS exp;
-  struct arm_it *    inst;
-} literalT;
-
-literalT literals[MAX_LITERAL_POOL_SIZE];
-
-/* Next free entry in the pool.  */
-int next_literal_pool_place = 0;
-
-/* Next literal pool number.  */
-int lit_pool_num = 1;
-
-symbolS * current_poolP = NULL;
-
-static int
-add_to_lit_pool ()
-{
-  int lit_count = 0;
-
-  if (current_poolP == NULL)
-    current_poolP = symbol_create (FAKE_LABEL_NAME, undefined_section,
-                                  (valueT) 0, &zero_address_frag);
-
-  /* Check if this literal value is already in the pool:  */
-  while (lit_count < next_literal_pool_place)
-    {
-      if (literals[lit_count].exp.X_op == inst.reloc.exp.X_op
-         && inst.reloc.exp.X_op == O_constant
-         && (literals[lit_count].exp.X_add_number
-             == inst.reloc.exp.X_add_number)
-         && literals[lit_count].exp.X_unsigned == inst.reloc.exp.X_unsigned)
-       break;
-
-      if (literals[lit_count].exp.X_op == inst.reloc.exp.X_op
-          && inst.reloc.exp.X_op == O_symbol
-          && (literals[lit_count].exp.X_add_number
-             == inst.reloc.exp.X_add_number)
-          && (literals[lit_count].exp.X_add_symbol
-             == inst.reloc.exp.X_add_symbol)
-          && (literals[lit_count].exp.X_op_symbol
-             == inst.reloc.exp.X_op_symbol))
-        break;
-
-      lit_count++;
-    }
-
-  if (lit_count == next_literal_pool_place) /* New entry.  */
-    {
-      if (next_literal_pool_place >= MAX_LITERAL_POOL_SIZE)
-       {
-         inst.error = _("Literal Pool Overflow");
-         return FAIL;
-       }
-
-      literals[next_literal_pool_place].exp = inst.reloc.exp;
-      lit_count = next_literal_pool_place++;
-    }
-
-  inst.reloc.exp.X_op = O_symbol;
-  inst.reloc.exp.X_add_number = (lit_count) * 4 - 8;
-  inst.reloc.exp.X_add_symbol = current_poolP;
-
-  return SUCCESS;
-}
-
-/* Can't use symbol_new here, so have to create a symbol and then at
-   a later date assign it a value. Thats what these functions do.  */
-
-static void
-symbol_locate (symbolP, name, segment, valu, frag)
-     symbolS *    symbolP;
-     CONST char * name;                /* It is copied, the caller can modify.  */
-     segT         segment;     /* Segment identifier (SEG_<something>).  */
-     valueT       valu;                /* Symbol value.  */
-     fragS *      frag;                /* Associated fragment.  */
-{
-  unsigned int name_length;
-  char * preserved_copy_of_name;
-
-  name_length = strlen (name) + 1;   /* +1 for \0.  */
-  obstack_grow (&notes, name, name_length);
-  preserved_copy_of_name = obstack_finish (&notes);
-#ifdef STRIP_UNDERSCORE
-  if (preserved_copy_of_name[0] == '_')
-    preserved_copy_of_name++;
-#endif
-
-#ifdef tc_canonicalize_symbol_name
-  preserved_copy_of_name =
-    tc_canonicalize_symbol_name (preserved_copy_of_name);
-#endif
-
-  S_SET_NAME (symbolP, preserved_copy_of_name);
-
-  S_SET_SEGMENT (symbolP, segment);
-  S_SET_VALUE (symbolP, valu);
-  symbol_clear_list_pointers(symbolP);
-
-  symbol_set_frag (symbolP, frag);
-
-  /* Link to end of symbol chain.  */
-  {
-    extern int symbol_table_frozen;
-    if (symbol_table_frozen)
-      abort ();
-  }
-
-  symbol_append (symbolP, symbol_lastP, & symbol_rootP, & symbol_lastP);
-
-  obj_symbol_new_hook (symbolP);
-
-#ifdef tc_symbol_new_hook
-  tc_symbol_new_hook (symbolP);
-#endif
-
-#ifdef DEBUG_SYMS
-  verify_symbol_chain (symbol_rootP, symbol_lastP);
-#endif /* DEBUG_SYMS  */
-}
-
-/* Check that an immediate is valid.
-   If so, convert it to the right format.  */
-
-static unsigned int
-validate_immediate (val)
-     unsigned int val;
-{
-  unsigned int a;
-  unsigned int i;
-
-#define rotate_left(v, n) (v << n | v >> (32 - n))
-
-  for (i = 0; i < 32; i += 2)
-    if ((a = rotate_left (val, i)) <= 0xff)
-      return a | (i << 7); /* 12-bit pack: [shift-cnt,const].  */
-
-  return FAIL;
-}
-
-/* Check to see if an immediate can be computed as two seperate immediate
-   values, added together.  We already know that this value cannot be
-   computed by just one ARM instruction.  */
-
-static unsigned int
-validate_immediate_twopart (val, highpart)
-     unsigned int   val;
-     unsigned int * highpart;
-{
-  unsigned int a;
-  unsigned int i;
-
-  for (i = 0; i < 32; i += 2)
-    if (((a = rotate_left (val, i)) & 0xff) != 0)
-      {
-       if (a & 0xff00)
-         {
-           if (a & ~ 0xffff)
-             continue;
-           * highpart = (a  >> 8) | ((i + 24) << 7);
-         }
-       else if (a & 0xff0000)
-         {
-           if (a & 0xff000000)
-             continue;
-           * highpart = (a >> 16) | ((i + 16) << 7);
-         }
-       else
-         {
-           assert (a & 0xff000000);
-           * highpart = (a >> 24) | ((i + 8) << 7);
-         }
-
-       return (a & 0xff) | (i << 7);
-      }
-
-  return FAIL;
-}
-
-static int
-validate_offset_imm (val, hwse)
-     unsigned int val;
-     int hwse;
-{
-  if ((hwse && val > 255) || val > 4095)
-    return FAIL;
-  return val;
-}
-
-static void
-s_req (a)
-     int a ATTRIBUTE_UNUSED;
-{
-  as_bad (_("Invalid syntax for .req directive."));
-}
-
-static void
-s_bss (ignore)
-     int ignore ATTRIBUTE_UNUSED;
-{
-  /* We don't support putting frags in the BSS segment, we fake it by
-     marking in_bss, then looking at s_skip for clues.  */
-  subseg_set (bss_section, 0);
-  demand_empty_rest_of_line ();
-}
-
-static void
-s_even (ignore)
-     int ignore ATTRIBUTE_UNUSED;
-{
-  /* Never make frag if expect extra pass.  */
-  if (!need_pass_2)
-    frag_align (1, 0, 0);
-
-  record_alignment (now_seg, 1);
-
-  demand_empty_rest_of_line ();
-}
-
-static void
-s_ltorg (ignored)
-     int ignored ATTRIBUTE_UNUSED;
-{
-  int lit_count = 0;
-  char sym_name[20];
-
-  if (current_poolP == NULL)
-    return;
-
-  /* Align pool as you have word accesses.
-     Only make a frag if we have to.  */
-  if (!need_pass_2)
-    frag_align (2, 0, 0);
-
-  record_alignment (now_seg, 2);
-
-  sprintf (sym_name, "$$lit_\002%x", lit_pool_num++);
-
-  symbol_locate (current_poolP, sym_name, now_seg,
-                (valueT) frag_now_fix (), frag_now);
-  symbol_table_insert (current_poolP);
-
-  ARM_SET_THUMB (current_poolP, thumb_mode);
-
-#if defined OBJ_COFF || defined OBJ_ELF
-  ARM_SET_INTERWORK (current_poolP, support_interwork);
-#endif
-
-  while (lit_count < next_literal_pool_place)
-    /* First output the expression in the instruction to the pool.  */
-    emit_expr (&(literals[lit_count++].exp), 4); /* .word  */
-
-  next_literal_pool_place = 0;
-  current_poolP = NULL;
-}
-
-/* Same as s_align_ptwo but align 0 => align 2.  */
-
-static void
-s_align (unused)
-     int unused ATTRIBUTE_UNUSED;
-{
-  register int temp;
-  register long temp_fill;
-  long max_alignment = 15;
-
-  temp = get_absolute_expression ();
-  if (temp > max_alignment)
-    as_bad (_("Alignment too large: %d. assumed."), temp = max_alignment);
-  else if (temp < 0)
-    {
-      as_bad (_("Alignment negative. 0 assumed."));
-      temp = 0;
-    }
-
-  if (*input_line_pointer == ',')
-    {
-      input_line_pointer++;
-      temp_fill = get_absolute_expression ();
-    }
-  else
-    temp_fill = 0;
-
-  if (!temp)
-    temp = 2;
-
-  /* Only make a frag if we HAVE to.  */
-  if (temp && !need_pass_2)
-    frag_align (temp, (int) temp_fill, 0);
-  demand_empty_rest_of_line ();
-
-  record_alignment (now_seg, temp);
-}
-
-static void
-s_force_thumb (ignore)
-     int ignore ATTRIBUTE_UNUSED;
-{
-  /* If we are not already in thumb mode go into it, EVEN if
-     the target processor does not support thumb instructions.
-     This is used by gcc/config/arm/lib1funcs.asm for example
-     to compile interworking support functions even if the
-     target processor should not support interworking.  */
-  if (! thumb_mode)
-    {
-      thumb_mode = 2;
-
-      record_alignment (now_seg, 1);
-    }
-
-  demand_empty_rest_of_line ();
-}
-
-static void
-s_thumb_func (ignore)
-     int ignore ATTRIBUTE_UNUSED;
-{
-  if (! thumb_mode)
-    opcode_select (16);
-
-  /* The following label is the name/address of the start of a Thumb function.
-     We need to know this for the interworking support.  */
-  label_is_thumb_function_name = true;
-
-  demand_empty_rest_of_line ();
-}
-
-/* Perform a .set directive, but also mark the alias as
-   being a thumb function.  */
-
-static void
-s_thumb_set (equiv)
-     int equiv;
-{
-  /* XXX the following is a duplicate of the code for s_set() in read.c
-     We cannot just call that code as we need to get at the symbol that
-     is created.  */
-  register char *    name;
-  register char      delim;
-  register char *    end_name;
-  register symbolS * symbolP;
-
-  /* Especial apologies for the random logic:
-     This just grew, and could be parsed much more simply!
-     Dean - in haste.  */
-  name      = input_line_pointer;
-  delim     = get_symbol_end ();
-  end_name  = input_line_pointer;
-  *end_name = delim;
-
-  SKIP_WHITESPACE ();
-
-  if (*input_line_pointer != ',')
-    {
-      *end_name = 0;
-      as_bad (_("Expected comma after name \"%s\""), name);
-      *end_name = delim;
-      ignore_rest_of_line ();
-      return;
-    }
-
-  input_line_pointer++;
-  *end_name = 0;
-
-  if (name[0] == '.' && name[1] == '\0')
-    {
-      /* XXX - this should not happen to .thumb_set.  */
-      abort ();
-    }
-
-  if ((symbolP = symbol_find (name)) == NULL
-      && (symbolP = md_undefined_symbol (name)) == NULL)
-    {
-#ifndef NO_LISTING
-      /* When doing symbol listings, play games with dummy fragments living
-        outside the normal fragment chain to record the file and line info
-         for this symbol.  */
-      if (listing & LISTING_SYMBOLS)
-       {
-         extern struct list_info_struct * listing_tail;
-         fragS * dummy_frag = (fragS *) xmalloc (sizeof (fragS));
-
-         memset (dummy_frag, 0, sizeof (fragS));
-         dummy_frag->fr_type = rs_fill;
-         dummy_frag->line = listing_tail;
-         symbolP = symbol_new (name, undefined_section, 0, dummy_frag);
-         dummy_frag->fr_symbol = symbolP;
-       }
-      else
-#endif
-       symbolP = symbol_new (name, undefined_section, 0, &zero_address_frag);
-
-#ifdef OBJ_COFF
-      /* "set" symbols are local unless otherwise specified.  */
-      SF_SET_LOCAL (symbolP);
-#endif /* OBJ_COFF  */
-    }                          /* Make a new symbol.  */
-
-  symbol_table_insert (symbolP);
-
-  * end_name = delim;
-
-  if (equiv
-      && S_IS_DEFINED (symbolP)
-      && S_GET_SEGMENT (symbolP) != reg_section)
-    as_bad (_("symbol `%s' already defined"), S_GET_NAME (symbolP));
-
-  pseudo_set (symbolP);
-
-  demand_empty_rest_of_line ();
-
-  /* XXX Now we come to the Thumb specific bit of code.  */
-
-  THUMB_SET_FUNC (symbolP, 1);
-  ARM_SET_THUMB (symbolP, 1);
-#if defined OBJ_ELF || defined OBJ_COFF
-  ARM_SET_INTERWORK (symbolP, support_interwork);
-#endif
-}
-
-/* If we change section we must dump the literal pool first.  */
-
-static void
-arm_s_text (ignore)
-     int ignore;
-{
-  if (now_seg != text_section)
-    s_ltorg (0);
-
-#ifdef OBJ_ELF
-  obj_elf_text (ignore);
-#else
-  s_text (ignore);
-#endif
-}
-
-static void
-arm_s_data (ignore)
-     int ignore;
-{
-  if (flag_readonly_data_in_text)
-    {
-      if (now_seg != text_section)
-       s_ltorg (0);
-    }
-  else if (now_seg != data_section)
-    s_ltorg (0);
-
-#ifdef OBJ_ELF
-  obj_elf_data (ignore);
-#else
-  s_data (ignore);
-#endif
-}
-
-#ifdef OBJ_ELF
-static void
-arm_s_section (ignore)
-     int ignore;
-{
-  s_ltorg (0);
-
-  obj_elf_section (ignore);
-}
-#endif
-
-static void
-opcode_select (width)
-     int width;
-{
-  switch (width)
-    {
-    case 16:
-      if (! thumb_mode)
-       {
-         if (! (cpu_variant & ARM_EXT_THUMB))
-           as_bad (_("selected processor does not support THUMB opcodes"));
-
-         thumb_mode = 1;
-         /* No need to force the alignment, since we will have been
-             coming from ARM mode, which is word-aligned.  */
-         record_alignment (now_seg, 1);
-       }
-      break;
-
-    case 32:
-      if (thumb_mode)
-       {
-         if ((cpu_variant & ARM_ANY) == ARM_EXT_THUMB)
-           as_bad (_("selected processor does not support ARM opcodes"));
-
-         thumb_mode = 0;
-
-         if (!need_pass_2)
-            frag_align (2, 0, 0);
-
-          record_alignment (now_seg, 1);
-       }
-      break;
-
-    default:
-      as_bad (_("invalid instruction size selected (%d)"), width);
-    }
-}
-
-static void
-s_arm (ignore)
-     int ignore ATTRIBUTE_UNUSED;
-{
-  opcode_select (32);
-  demand_empty_rest_of_line ();
-}
-
-static void
-s_thumb (ignore)
-     int ignore ATTRIBUTE_UNUSED;
-{
-  opcode_select (16);
-  demand_empty_rest_of_line ();
-}
-
-static void
-s_code (unused)
-     int unused ATTRIBUTE_UNUSED;
-{
-  register int temp;
-
-  temp = get_absolute_expression ();
-  switch (temp)
-    {
-    case 16:
-    case 32:
-      opcode_select (temp);
-      break;
-
-    default:
-      as_bad (_("invalid operand to .code directive (%d) (expecting 16 or 32)"), temp);
-    }
-}
-
-static void
-end_of_line (str)
-     char * str;
-{
-  skip_whitespace (str);
-
-  if (* str != '\0')
-    inst.error = _("Garbage following instruction");
-}
-
-static int
-skip_past_comma (str)
-     char ** str;
-{
-  char * p = * str, c;
-  int comma = 0;
-
-  while ((c = *p) == ' ' || c == ',')
-    {
-      p++;
-      if (c == ',' && comma++)
-       return FAIL;
-    }
-
-  if (c == '\0')
-    return FAIL;
-
-  *str = p;
-  return comma ? SUCCESS : FAIL;
-}
-
-/* A standard register must be given at this point.
-   SHIFT is the place to put it in inst.instruction.
-   Restores input start point on error.
-   Returns the reg#, or FAIL.  */
-
-static int
-reg_required_here (str, shift)
-     char ** str;
-     int     shift;
-{
-  static char buff [128]; /* XXX  */
-  int         reg;
-  char *      start = * str;
-
-  if ((reg = arm_reg_parse (str)) != FAIL && int_register (reg))
-    {
-      if (shift >= 0)
-       inst.instruction |= reg << shift;
-      return reg;
-    }
-
-  /* Restore the start point, we may have got a reg of the wrong class.  */
-  *str = start;
-
-  /* In the few cases where we might be able to accept something else
-     this error can be overridden.  */
-  sprintf (buff, _("Register expected, not '%.100s'"), start);
-  inst.error = buff;
-
-  return FAIL;
-}
-
-static CONST struct asm_psr *
-arm_psr_parse (ccp)
-     register char ** ccp;
-{
-  char * start = * ccp;
-  char   c;
-  char * p;
-  CONST struct asm_psr * psr;
-
-  p = start;
-
-  /* Skip to the end of the next word in the input stream.  */
-  do
-    {
-      c = *p++;
-    }
-  while (isalpha (c) || c == '_');
-
-  /* Terminate the word.  */
-  *--p = 0;
-
-  /* CPSR's and SPSR's can now be lowercase.  This is just a convenience
-     feature for ease of use and backwards compatibility.  */
-  if (!strncmp (start, "cpsr", 4))
-    strncpy (start, "CPSR", 4);
-  else if (!strncmp (start, "spsr", 4))
-    strncpy (start, "SPSR", 4);
-
-  /* Now locate the word in the psr hash table.  */
-  psr = (CONST struct asm_psr *) hash_find (arm_psr_hsh, start);
-
-  /* Restore the input stream.  */
-  *p = c;
-
-  /* If we found a valid match, advance the
-     stream pointer past the end of the word.  */
-  *ccp = p;
-
-  return psr;
-}
-
-/* Parse the input looking for a PSR flag.  */
-
-static int
-psr_required_here (str)
-     char ** str;
-{
-  char * start = * str;
-  CONST struct asm_psr * psr;
-
-  psr = arm_psr_parse (str);
-
-  if (psr)
-    {
-      /* If this is the SPSR that is being modified, set the R bit.  */
-      if (! psr->cpsr)
-       inst.instruction |= SPSR_BIT;
-
-      /* Set the psr flags in the MSR instruction.  */
-      inst.instruction |= psr->field << PSR_SHIFT;
-
-      return SUCCESS;
-    }
-
-  /* In the few cases where we might be able to accept
-     something else this error can be overridden.  */
-  inst.error = _("flag for {c}psr instruction expected");
-
-  /* Restore the start point.  */
-  *str = start;
-  return FAIL;
-}
-
-static int
-co_proc_number (str)
-     char ** str;
-{
-  int processor, pchar;
-
-  skip_whitespace (* str);
-
-  /* The data sheet seems to imply that just a number on its own is valid
-     here, but the RISC iX assembler seems to accept a prefix 'p'.  We will
-     accept either.  */
-  if (**str == 'p' || **str == 'P')
-    (*str)++;
-
-  pchar = *(*str)++;
-  if (pchar >= '0' && pchar <= '9')
-    {
-      processor = pchar - '0';
-      if (**str >= '0' && **str <= '9')
-       {
-         processor = processor * 10 + *(*str)++ - '0';
-         if (processor > 15)
-           {
-             inst.error = _("Illegal co-processor number");
-             return FAIL;
-           }
-       }
-    }
-  else
-    {
-      inst.error = _("Bad or missing co-processor number");
-      return FAIL;
-    }
-
-  inst.instruction |= processor << 8;
-  return SUCCESS;
-}
-
-static int
-cp_opc_expr (str, where, length)
-     char ** str;
-     int where;
-     int length;
-{
-  expressionS expr;
-
-  skip_whitespace (* str);
-
-  memset (&expr, '\0', sizeof (expr));
-
-  if (my_get_expression (&expr, str))
-    return FAIL;
-  if (expr.X_op != O_constant)
-    {
-      inst.error = _("bad or missing expression");
-      return FAIL;
-    }
-
-  if ((expr.X_add_number & ((1 << length) - 1)) != expr.X_add_number)
-    {
-      inst.error = _("immediate co-processor expression too large");
-      return FAIL;
-    }
-
-  inst.instruction |= expr.X_add_number << where;
-  return SUCCESS;
-}
-
-static int
-cp_reg_required_here (str, where)
-     char ** str;
-     int     where;
-{
-  int    reg;
-  char * start = *str;
-
-  if ((reg = arm_reg_parse (str)) != FAIL && cp_register (reg))
-    {
-      reg &= 15;
-      inst.instruction |= reg << where;
-      return reg;
-    }
-
-  /* In the few cases where we might be able to accept something else
-     this error can be overridden.  */
-  inst.error = _("Co-processor register expected");
-
-  /* Restore the start point.  */
-  *str = start;
-  return FAIL;
-}
-
-static int
-fp_reg_required_here (str, where)
-     char ** str;
-     int     where;
-{
-  int    reg;
-  char * start = * str;
-
-  if ((reg = arm_reg_parse (str)) != FAIL && fp_register (reg))
-    {
-      reg &= 7;
-      inst.instruction |= reg << where;
-      return reg;
-    }
-
-  /* In the few cases where we might be able to accept something else
-     this error can be overridden.  */
-  inst.error = _("Floating point register expected");
-
-  /* Restore the start point.  */
-  *str = start;
-  return FAIL;
-}
-
-static int
-cp_address_offset (str)
-     char ** str;
-{
-  int offset;
-
-  skip_whitespace (* str);
-
-  if (! is_immediate_prefix (**str))
-    {
-      inst.error = _("immediate expression expected");
-      return FAIL;
-    }
-
-  (*str)++;
-
-  if (my_get_expression (& inst.reloc.exp, str))
-    return FAIL;
-
-  if (inst.reloc.exp.X_op == O_constant)
-    {
-      offset = inst.reloc.exp.X_add_number;
-
-      if (offset & 3)
-       {
-         inst.error = _("co-processor address must be word aligned");
-         return FAIL;
-       }
-
-      if (offset > 1023 || offset < -1023)
-       {
-         inst.error = _("offset too large");
-         return FAIL;
-       }
-
-      if (offset >= 0)
-       inst.instruction |= INDEX_UP;
-      else
-       offset = -offset;
-
-      inst.instruction |= offset >> 2;
-    }
-  else
-    inst.reloc.type = BFD_RELOC_ARM_CP_OFF_IMM;
-
-  return SUCCESS;
-}
-
-static int
-cp_address_required_here (str)
-     char ** str;
-{
-  char * p = * str;
-  int    pre_inc = 0;
-  int    write_back = 0;
-
-  if (*p == '[')
-    {
-      int reg;
-
-      p++;
-      skip_whitespace (p);
-
-      if ((reg = reg_required_here (& p, 16)) == FAIL)
-       return FAIL;
-
-      skip_whitespace (p);
-
-      if (*p == ']')
-       {
-         p++;
-
-         if (skip_past_comma (& p) == SUCCESS)
-           {
-             /* [Rn], #expr  */
-             write_back = WRITE_BACK;
-
-             if (reg == REG_PC)
-               {
-                 inst.error = _("pc may not be used in post-increment");
-                 return FAIL;
-               }
-
-             if (cp_address_offset (& p) == FAIL)
-               return FAIL;
-           }
-         else
-           pre_inc = PRE_INDEX | INDEX_UP;
-       }
-      else
-       {
-         /* '['Rn, #expr']'[!]  */
-
-         if (skip_past_comma (& p) == FAIL)
-           {
-             inst.error = _("pre-indexed expression expected");
-             return FAIL;
-           }
-
-         pre_inc = PRE_INDEX;
-
-         if (cp_address_offset (& p) == FAIL)
-           return FAIL;
-
-         skip_whitespace (p);
-
-         if (*p++ != ']')
-           {
-             inst.error = _("missing ]");
-             return FAIL;
-           }
-
-         skip_whitespace (p);
-
-         if (*p == '!')
-           {
-             if (reg == REG_PC)
-               {
-                 inst.error = _("pc may not be used with write-back");
-                 return FAIL;
-               }
-
-             p++;
-             write_back = WRITE_BACK;
-           }
-       }
-    }
-  else
-    {
-      if (my_get_expression (&inst.reloc.exp, &p))
-       return FAIL;
-
-      inst.reloc.type = BFD_RELOC_ARM_CP_OFF_IMM;
-      inst.reloc.exp.X_add_number -= 8;  /* PC rel adjust.  */
-      inst.reloc.pc_rel = 1;
-      inst.instruction |= (REG_PC << 16);
-      pre_inc = PRE_INDEX;
-    }
-
-  inst.instruction |= write_back | pre_inc;
-  *str = p;
-  return SUCCESS;
-}
-
-static void
-do_nop (str, flags)
-     char * str;
-     unsigned long flags;
-{
-  /* Do nothing really.  */
-  inst.instruction |= flags; /* This is pointless.  */
-  end_of_line (str);
-  return;
-}
-
-static void
-do_mrs (str, flags)
-     char *str;
-     unsigned long flags;
-{
-  int skip = 0;
-
-  /* Only one syntax.  */
-  skip_whitespace (str);
-
-  if (reg_required_here (&str, 12) == FAIL)
-    {
-      inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (skip_past_comma (&str) == FAIL)
-    {
-      inst.error = _("comma expected after register name");
-      return;
-    }
-
-  skip_whitespace (str);
-
-  if (   strcmp (str, "CPSR") == 0
-      || strcmp (str, "SPSR") == 0
-        /* Lower case versions for backwards compatability.  */
-      || strcmp (str, "cpsr") == 0
-      || strcmp (str, "spsr") == 0)
-    skip = 4;
-
-  /* This is for backwards compatability with older toolchains.  */
-  else if (   strcmp (str, "cpsr_all") == 0
-          || strcmp (str, "spsr_all") == 0)
-    skip = 8;
-  else
-    {
-      inst.error = _("{C|S}PSR expected");
-      return;
-    }
-
-  if (* str == 's' || * str == 'S')
-    inst.instruction |= SPSR_BIT;
-  str += skip;
-
-  inst.instruction |= flags;
-  end_of_line (str);
-}
-
-/* Two possible forms:
-      "{C|S}PSR_<field>, Rm",
-      "{C|S}PSR_f, #expression".  */
-
-static void
-do_msr (str, flags)
-     char * str;
-     unsigned long flags;
-{
-  skip_whitespace (str);
-
-  if (psr_required_here (& str) == FAIL)
-    return;
-
-  if (skip_past_comma (& str) == FAIL)
-    {
-      inst.error = _("comma missing after psr flags");
-      return;
-    }
-
-  skip_whitespace (str);
-
-  if (reg_required_here (& str, 0) != FAIL)
-    {
-      inst.error = NULL;
-      inst.instruction |= flags;
-      end_of_line (str);
-      return;
-    }
-
-  if (! is_immediate_prefix (* str))
-    {
-      inst.error =
-       _("only a register or immediate value can follow a psr flag");
-      return;
-    }
-
-  str ++;
-  inst.error = NULL;
-
-  if (my_get_expression (& inst.reloc.exp, & str))
-    {
-      inst.error =
-       _("only a register or immediate value can follow a psr flag");
-      return;
-    }
-
-#if 0  /* The first edition of the ARM architecture manual stated that
-         writing anything other than the flags with an immediate operation
-         had UNPREDICTABLE effects.  This constraint was removed in the
-         second edition of the specification.  */
-  if ((cpu_variant & ARM_EXT_V5) != ARM_EXT_V5
-      && inst.instruction & ((PSR_c | PSR_x | PSR_s) << PSR_SHIFT))
-    {
-      inst.error = _("immediate value cannot be used to set this field");
-      return;
-    }
-#endif
-
-  flags |= INST_IMMEDIATE;
-
-  if (inst.reloc.exp.X_add_symbol)
-    {
-      inst.reloc.type = BFD_RELOC_ARM_IMMEDIATE;
-      inst.reloc.pc_rel = 0;
-    }
-  else
-    {
-      unsigned value = validate_immediate (inst.reloc.exp.X_add_number);
-
-      if (value == (unsigned) FAIL)
-       {
-         inst.error = _("Invalid constant");
-         return;
-       }
-
-      inst.instruction |= value;
-    }
-
-  inst.error = NULL;
-  inst.instruction |= flags;
-  end_of_line (str);
-}
-
-/* Long Multiply Parser
-   UMULL RdLo, RdHi, Rm, Rs
-   SMULL RdLo, RdHi, Rm, Rs
-   UMLAL RdLo, RdHi, Rm, Rs
-   SMLAL RdLo, RdHi, Rm, Rs.  */
-
-static void
-do_mull (str, flags)
-     char * str;
-     unsigned long flags;
-{
-  int rdlo, rdhi, rm, rs;
-
-  /* Only one format "rdlo, rdhi, rm, rs".  */
-  skip_whitespace (str);
-
-  if ((rdlo = reg_required_here (&str, 12)) == FAIL)
-    {
-      inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (skip_past_comma (&str) == FAIL
-      || (rdhi = reg_required_here (&str, 16)) == FAIL)
-    {
-      inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (skip_past_comma (&str) == FAIL
-      || (rm = reg_required_here (&str, 0)) == FAIL)
-    {
-      inst.error = BAD_ARGS;
-      return;
-    }
-
-  /* rdhi, rdlo and rm must all be different.  */
-  if (rdlo == rdhi || rdlo == rm || rdhi == rm)
-    as_tsktsk (_("rdhi, rdlo and rm must all be different"));
-
-  if (skip_past_comma (&str) == FAIL
-      || (rs = reg_required_here (&str, 8)) == FAIL)
-    {
-      inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (rdhi == REG_PC || rdhi == REG_PC || rdhi == REG_PC || rdhi == REG_PC)
-    {
-      inst.error = BAD_PC;
-      return;
-    }
-
-  inst.instruction |= flags;
-  end_of_line (str);
-  return;
-}
-
-static void
-do_mul (str, flags)
-     char * str;
-     unsigned long flags;
-{
-  int rd, rm;
-
-  /* Only one format "rd, rm, rs".  */
-  skip_whitespace (str);
-
-  if ((rd = reg_required_here (&str, 16)) == FAIL)
-    {
-      inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (rd == REG_PC)
-    {
-      inst.error = BAD_PC;
-      return;
-    }
-
-  if (skip_past_comma (&str) == FAIL
-      || (rm = reg_required_here (&str, 0)) == FAIL)
-    {
-      inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (rm == REG_PC)
-    {
-      inst.error = BAD_PC;
-      return;
-    }
-
-  if (rm == rd)
-    as_tsktsk (_("rd and rm should be different in mul"));
-
-  if (skip_past_comma (&str) == FAIL
-      || (rm = reg_required_here (&str, 8)) == FAIL)
-    {
-      inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (rm == REG_PC)
-    {
-      inst.error = BAD_PC;
-      return;
-    }
-
-  inst.instruction |= flags;
-  end_of_line (str);
-  return;
-}
-
-static void
-do_mla (str, flags)
-     char * str;
-     unsigned long flags;
-{
-  int rd, rm;
-
-  /* Only one format "rd, rm, rs, rn".  */
-  skip_whitespace (str);
-
-  if ((rd = reg_required_here (&str, 16)) == FAIL)
-    {
-      inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (rd == REG_PC)
-    {
-      inst.error = BAD_PC;
-      return;
-    }
-
-  if (skip_past_comma (&str) == FAIL
-      || (rm = reg_required_here (&str, 0)) == FAIL)
-    {
-      inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (rm == REG_PC)
-    {
-      inst.error = BAD_PC;
-      return;
-    }
-
-  if (rm == rd)
-    as_tsktsk (_("rd and rm should be different in mla"));
-
-  if (skip_past_comma (&str) == FAIL
-      || (rd = reg_required_here (&str, 8)) == FAIL
-      || skip_past_comma (&str) == FAIL
-      || (rm = reg_required_here (&str, 12)) == FAIL)
-    {
-      inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (rd == REG_PC || rm == REG_PC)
-    {
-      inst.error = BAD_PC;
-      return;
-    }
-
-  inst.instruction |= flags;
-  end_of_line (str);
-  return;
-}
-
-/* Expects *str -> the characters "acc0", possibly with leading blanks.
-   Advances *str to the next non-alphanumeric.
-   Returns 0, or else FAIL (in which case sets inst.error).
-
-  (In a future XScale, there may be accumulators other than zero.
-  At that time this routine and its callers can be upgraded to suit.)  */
-
-static int
-accum0_required_here (str)
-     char ** str;
-{
-  static char buff [128];      /* Note the address is taken.  Hence, static.  */
-  char * p = * str;
-  char   c;
-  int result = 0;              /* The accum number.  */
-
-  skip_whitespace (p);
-
-  *str = p;                    /* Advance caller's string pointer too.  */
-  c = *p++;
-  while (isalnum (c))
-    c = *p++;
-
-  *--p = 0;                    /* Aap nul into input buffer at non-alnum.  */
-
-  if (! ( streq (*str, "acc0") || streq (*str, "ACC0")))
-    {
-      sprintf (buff, _("acc0 expected, not '%.100s'"), *str);
-      inst.error = buff;
-      result = FAIL;
-    }
-
-  *p = c;                      /* Unzap.  */
-  *str = p;                    /* Caller's string pointer to after match.  */
-  return result;
-}
-
-/* Expects **str -> after a comma. May be leading blanks.
-   Advances *str, recognizing a load  mode, and setting inst.instruction.
-   Returns rn, or else FAIL (in which case may set inst.error
-   and not advance str)
-
-   Note: doesn't know Rd, so no err checks that require such knowledge.  */
-
-static int
-ld_mode_required_here (string)
-     char ** string;
-{
-  char * str = * string;
-  int    rn;
-  int    pre_inc = 0;
-
-  skip_whitespace (str);
-
-  if (* str == '[')
-    {
-      str++;
-
-      skip_whitespace (str);
-
-      if ((rn = reg_required_here (& str, 16)) == FAIL)
-       return FAIL;
-
-      skip_whitespace (str);
-
-      if (* str == ']')
-       {
-         str ++;
-
-         if (skip_past_comma (& str) == SUCCESS)
-           {
-             /* [Rn],... (post inc) */
-             if (ldst_extend (& str, 1) == FAIL)
-               return FAIL;
-           }
-         else        /* [Rn] */
-           {
-              skip_whitespace (str);
-
-              if (* str == '!')
-               {
-                 str ++;
-                 inst.instruction |= WRITE_BACK;
-               }
-
-             inst.instruction |= INDEX_UP | HWOFFSET_IMM;
-             pre_inc = 1;
-           }
-       }
-      else       /* [Rn,...] */
-       {
-         if (skip_past_comma (& str) == FAIL)
-           {
-             inst.error = _("pre-indexed expression expected");
-             return FAIL;
-           }
-
-         pre_inc = 1;
-
-         if (ldst_extend (& str, 1) == FAIL)
-           return FAIL;
-
-         skip_whitespace (str);
-
-         if (* str ++ != ']')
-           {
-             inst.error = _("missing ]");
-             return FAIL;
-           }
-
-         skip_whitespace (str);
-
-         if (* str == '!')
-           {
-             str ++;
-             inst.instruction |= WRITE_BACK;
-           }
-       }
-    }
-  else if (* str == '=')       /* ldr's "r,=label" syntax */
-    /* We should never reach here, because <text> = <expression> is
-       caught gas/read.c read_a_source_file() as a .set operation.  */
-    return FAIL;
-  else                         /* PC +- 8 bit immediate offset.  */
-    {
-      if (my_get_expression (& inst.reloc.exp, & str))
-       return FAIL;
-
-      inst.instruction            |= HWOFFSET_IMM;     /* The I bit.  */
-      inst.reloc.type              = BFD_RELOC_ARM_OFFSET_IMM8;
-      inst.reloc.exp.X_add_number -= 8;                /* PC rel adjust.  */
-      inst.reloc.pc_rel            = 1;
-      inst.instruction            |= (REG_PC << 16);
-
-      rn = REG_PC;
-      pre_inc = 1;
-    }
-
-  inst.instruction |= (pre_inc ? PRE_INDEX : 0);
-  * string = str;
-
-  return rn;
-}
-
-/* ARM V5E (El Segundo) signed-multiply-accumulate (argument parse)
-   SMLAxy{cond} Rd,Rm,Rs,Rn
-   SMLAWy{cond} Rd,Rm,Rs,Rn
-   Error if any register is R15.  */
-
-static void
-do_smla (str, flags)
-     char *        str;
-     unsigned long flags;
-{
-  int rd, rm, rs, rn;
-
-  skip_whitespace (str);
-
-  if ((rd = reg_required_here (& str, 16)) == FAIL
-      || skip_past_comma (& str) == FAIL
-      || (rm = reg_required_here (& str, 0)) == FAIL
-      || skip_past_comma (& str) == FAIL
-      || (rs = reg_required_here (& str, 8)) == FAIL
-      || skip_past_comma (& str) == FAIL
-      || (rn = reg_required_here (& str, 12)) == FAIL)
-    inst.error = BAD_ARGS;
-
-  else if (rd == REG_PC || rm == REG_PC || rs == REG_PC || rn == REG_PC)
-    inst.error = BAD_PC;
-
-  else if (flags)
-    inst.error = BAD_FLAGS;
-
-  else
-    end_of_line (str);
-}
-
-/* ARM V5E (El Segundo) signed-multiply-accumulate-long (argument parse)
-   SMLALxy{cond} Rdlo,Rdhi,Rm,Rs
-   Error if any register is R15.
-   Warning if Rdlo == Rdhi.  */
-
-static void
-do_smlal (str, flags)
-     char *        str;
-     unsigned long flags;
-{
-  int rdlo, rdhi, rm, rs;
-
-  skip_whitespace (str);
-
-  if ((rdlo = reg_required_here (& str, 12)) == FAIL
-      || skip_past_comma (& str) == FAIL
-      || (rdhi = reg_required_here (& str, 16)) == FAIL
-      || skip_past_comma (& str) == FAIL
-      || (rm = reg_required_here (& str, 0)) == FAIL
-      || skip_past_comma (& str) == FAIL
-      || (rs = reg_required_here (& str, 8)) == FAIL)
-    {
-      inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (rdlo == REG_PC || rdhi == REG_PC || rm == REG_PC || rs == REG_PC)
-    {
-      inst.error = BAD_PC;
-      return;
-    }
-
-  if (rdlo == rdhi)
-    as_tsktsk (_("rdhi and rdlo must be different"));
-
-  if (flags)
-    inst.error = BAD_FLAGS;
-  else
-    end_of_line (str);
-}
-
-/* ARM V5E (El Segundo) signed-multiply (argument parse)
-   SMULxy{cond} Rd,Rm,Rs
-   Error if any register is R15.  */
-
-static void
-do_smul (str, flags)
-     char *        str;
-     unsigned long flags;
-{
-  int rd, rm, rs;
-
-  skip_whitespace (str);
-
-  if ((rd = reg_required_here (& str, 16)) == FAIL
-      || skip_past_comma (& str) == FAIL
-      || (rm = reg_required_here (& str, 0)) == FAIL
-      || skip_past_comma (& str) == FAIL
-      || (rs = reg_required_here (& str, 8)) == FAIL)
-    inst.error = BAD_ARGS;
-
-  else if (rd == REG_PC || rm == REG_PC || rs == REG_PC)
-    inst.error = BAD_PC;
-
-  else if (flags)
-    inst.error = BAD_FLAGS;
-
-  else
-    end_of_line (str);
-}
-
-/* ARM V5E (El Segundo) saturating-add/subtract (argument parse)
-   Q[D]{ADD,SUB}{cond} Rd,Rm,Rn
-   Error if any register is R15.  */
-
-static void
-do_qadd (str, flags)
-     char *        str;
-     unsigned long flags;
-{
-  int rd, rm, rn;
-
-  skip_whitespace (str);
-
-  if ((rd = reg_required_here (& str, 12)) == FAIL
-      || skip_past_comma (& str) == FAIL
-      || (rm = reg_required_here (& str, 0)) == FAIL
-      || skip_past_comma (& str) == FAIL
-      || (rn = reg_required_here (& str, 16)) == FAIL)
-    inst.error = BAD_ARGS;
-
-  else if (rd == REG_PC || rm == REG_PC || rn == REG_PC)
-    inst.error = BAD_PC;
-
-  else if (flags)
-    inst.error = BAD_FLAGS;
-
-  else
-    end_of_line (str);
-}
-
-/* ARM V5E (el Segundo)
-   MCRRcc <coproc>, <opcode>, <Rd>, <Rn>, <CRm>.
-   MRRCcc <coproc>, <opcode>, <Rd>, <Rn>, <CRm>.
-
-   These are equivalent to the XScale instructions MAR and MRA,
-   respectively, when coproc == 0, opcode == 0, and CRm == 0.
-
-   Result unpredicatable if Rd or Rn is R15.  */
-
-static void
-do_co_reg2c (str, flags)
-     char *        str;
-     unsigned long flags;
-{
-  int rd, rn;
-
-  skip_whitespace (str);
-
-  if (co_proc_number (& str) == FAIL)
-    {
-      if (!inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (skip_past_comma (& str) == FAIL
-      || cp_opc_expr (& str, 4, 4) == FAIL)
-    {
-      if (!inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (skip_past_comma (& str) == FAIL
-      || (rd = reg_required_here (& str, 12)) == FAIL)
-    {
-      if (!inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (skip_past_comma (& str) == FAIL
-      || (rn = reg_required_here (& str, 16)) == FAIL)
-    {
-      if (!inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  /* Unpredictable result if rd or rn is R15.  */
-  if (rd == REG_PC || rn == REG_PC)
-    as_tsktsk
-      (_("Warning: Instruction unpredictable when using r15"));
-
-  if (skip_past_comma (& str) == FAIL
-      || cp_reg_required_here (& str, 0) == FAIL)
-    {
-      if (!inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (flags)
-    inst.error = BAD_COND;
-
-  end_of_line (str);
-}
-
-/* ARM V5 count-leading-zeroes instruction (argument parse)
-     CLZ{<cond>} <Rd>, <Rm>
-     Condition defaults to COND_ALWAYS.
-     Error if Rd or Rm are R15.  */
-
-static void
-do_clz (str, flags)
-     char *        str;
-     unsigned long flags;
-{
-  int rd, rm;
-
-  if (flags)
-    {
-      as_bad (BAD_FLAGS);
-      return;
-    }
-
-  skip_whitespace (str);
-
-  if (((rd = reg_required_here (& str, 12)) == FAIL)
-      || (skip_past_comma (& str) == FAIL)
-      || ((rm = reg_required_here (& str, 0)) == FAIL))
-    inst.error = BAD_ARGS;
-
-  else if (rd == REG_PC || rm == REG_PC )
-    inst.error = BAD_PC;
-
-  else
-    end_of_line (str);
-}
-
-/* ARM V5 (argument parse)
-     LDC2{L} <coproc>, <CRd>, <addressing mode>
-     STC2{L} <coproc>, <CRd>, <addressing mode>
-     Instruction is not conditional, and has 0xf in the codition field.
-     Otherwise, it's the same as LDC/STC.  */
-
-static void
-do_lstc2 (str, flags)
-     char *        str;
-     unsigned long flags;
-{
-  if (flags)
-    inst.error = BAD_COND;
-
-  skip_whitespace (str);
-
-  if (co_proc_number (& str) == FAIL)
-    {
-      if (!inst.error)
-       inst.error = BAD_ARGS;
-    }
-  else if (skip_past_comma (& str) == FAIL
-          || cp_reg_required_here (& str, 12) == FAIL)
-    {
-      if (!inst.error)
-       inst.error = BAD_ARGS;
-    }
-  else if (skip_past_comma (& str) == FAIL
-          || cp_address_required_here (& str) == FAIL)
-    {
-      if (! inst.error)
-       inst.error = BAD_ARGS;
-    }
-  else
-    end_of_line (str);
-}
-
-/* ARM V5 (argument parse)
-     CDP2 <coproc>, <opcode_1>, <CRd>, <CRn>, <CRm>, <opcode_2>
-     Instruction is not conditional, and has 0xf in the condition field.
-     Otherwise, it's the same as CDP.  */
-
-static void
-do_cdp2 (str, flags)
-     char *        str;
-     unsigned long flags;
-{
-  skip_whitespace (str);
-
-  if (co_proc_number (& str) == FAIL)
-    {
-      if (!inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (skip_past_comma (& str) == FAIL
-      || cp_opc_expr (& str, 20,4) == FAIL)
-    {
-      if (!inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (skip_past_comma (& str) == FAIL
-      || cp_reg_required_here (& str, 12) == FAIL)
-    {
-      if (!inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (skip_past_comma (& str) == FAIL
-      || cp_reg_required_here (& str, 16) == FAIL)
-    {
-      if (!inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (skip_past_comma (& str) == FAIL
-      || cp_reg_required_here (& str, 0) == FAIL)
-    {
-      if (!inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (skip_past_comma (& str) == SUCCESS)
-    {
-      if (cp_opc_expr (& str, 5, 3) == FAIL)
-       {
-         if (!inst.error)
-           inst.error = BAD_ARGS;
-         return;
-       }
-    }
-
-  if (flags)
-    inst.error = BAD_FLAGS;
-
-  end_of_line (str);
-}
-
-/* ARM V5 (argument parse)
-     MCR2 <coproc>, <opcode_1>, <Rd>, <CRn>, <CRm>, <opcode_2>
-     MRC2 <coproc>, <opcode_1>, <Rd>, <CRn>, <CRm>, <opcode_2>
-     Instruction is not conditional, and has 0xf in the condition field.
-     Otherwise, it's the same as MCR/MRC.  */
-
-static void
-do_co_reg2 (str, flags)
-     char *        str;
-     unsigned long flags;
-{
-  skip_whitespace (str);
-
-  if (co_proc_number (& str) == FAIL)
-    {
-      if (!inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (skip_past_comma (& str) == FAIL
-      || cp_opc_expr (& str, 21, 3) == FAIL)
-    {
-      if (!inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (skip_past_comma (& str) == FAIL
-      || reg_required_here (& str, 12) == FAIL)
-    {
-      if (!inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (skip_past_comma (& str) == FAIL
-      || cp_reg_required_here (& str, 16) == FAIL)
-    {
-      if (!inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (skip_past_comma (& str) == FAIL
-      || cp_reg_required_here (& str, 0) == FAIL)
-    {
-      if (!inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (skip_past_comma (& str) == SUCCESS)
-    {
-      if (cp_opc_expr (& str, 5, 3) == FAIL)
-       {
-         if (!inst.error)
-           inst.error = BAD_ARGS;
-         return;
-       }
-    }
-
-  if (flags)
-    inst.error = BAD_COND;
-
-  end_of_line (str);
-}
-
-/* THUMB V5 breakpoint instruction (argument parse)
-       BKPT <immed_8>.  */
-
-static void
-do_t_bkpt (str)
-     char * str;
-{
-  expressionS expr;
-  unsigned long number;
-
-  skip_whitespace (str);
-
-  /* Allow optional leading '#'.  */
-  if (is_immediate_prefix (*str))
-    str ++;
-
-  memset (& expr, '\0', sizeof (expr));
-  if (my_get_expression (& expr, & str) || (expr.X_op != O_constant))
-    {
-      inst.error = _("bad or missing expression");
-      return;
-    }
-
-  number = expr.X_add_number;
-
-  /* Check it fits an 8 bit unsigned.  */
-  if (number != (number & 0xff))
-    {
-      inst.error = _("immediate value out of range");
-      return;
-    }
-
-  inst.instruction |= number;
-
-  end_of_line (str);
-}
-
-/* ARM V5 branch-link-exchange (argument parse) for BLX(1) only.
-   Expects inst.instruction is set for BLX(1).
-   Note: this is cloned from do_branch, and the reloc changed to be a
-       new one that can cope with setting one extra bit (the H bit).  */
-
-static void
-do_branch25 (str, flags)
-     char *        str;
-     unsigned long flags ATTRIBUTE_UNUSED;
-{
-  if (my_get_expression (& inst.reloc.exp, & str))
-    return;
-
-#ifdef OBJ_ELF
-  {
-    char * save_in;
-
-    /* ScottB: February 5, 1998 */
-    /* Check to see of PLT32 reloc required for the instruction.  */
-
-    /* arm_parse_reloc() works on input_line_pointer.
-       We actually want to parse the operands to the branch instruction
-       passed in 'str'.  Save the input pointer and restore it later.  */
-    save_in = input_line_pointer;
-    input_line_pointer = str;
-
-    if (inst.reloc.exp.X_op == O_symbol
-       && *str == '('
-       && arm_parse_reloc () == BFD_RELOC_ARM_PLT32)
-      {
-       inst.reloc.type   = BFD_RELOC_ARM_PLT32;
-       inst.reloc.pc_rel = 0;
-       /* Modify str to point to after parsed operands, otherwise
-          end_of_line() will complain about the (PLT) left in str.  */
-       str = input_line_pointer;
-      }
-    else
-      {
-       inst.reloc.type   = BFD_RELOC_ARM_PCREL_BLX;
-       inst.reloc.pc_rel = 1;
-      }
-
-    input_line_pointer = save_in;
-  }
-#else
-  inst.reloc.type   = BFD_RELOC_ARM_PCREL_BLX;
-  inst.reloc.pc_rel = 1;
-#endif /* OBJ_ELF */
-
-  end_of_line (str);
-}
-
-/* ARM V5 branch-link-exchange instruction (argument parse)
-     BLX <target_addr>         ie BLX(1)
-     BLX{<condition>} <Rm>     ie BLX(2)
-   Unfortunately, there are two different opcodes for this mnemonic.
-   So, the insns[].value is not used, and the code here zaps values
-       into inst.instruction.
-   Also, the <target_addr> can be 25 bits, hence has its own reloc.  */
-
-static void
-do_blx (str, flags)
-     char *        str;
-     unsigned long flags;
-{
-  char * mystr = str;
-  int rm;
-
-  if (flags)
-    {
-      as_bad (BAD_FLAGS);
-      return;
-    }
-
-  skip_whitespace (mystr);
-  rm = reg_required_here (& mystr, 0);
-
-  /* The above may set inst.error.  Ignore his opinion.  */
-  inst.error = 0;
-
-  if (rm != FAIL)
-    {
-      /* Arg is a register.
-        Use the condition code our caller put in inst.instruction.
-        Pass ourselves off as a BX with a funny opcode.  */
-      inst.instruction |= 0x012fff30;
-      do_bx (str, flags);
-    }
-  else
-    {
-      /* This must be is BLX <target address>, no condition allowed.  */
-      if (inst.instruction != COND_ALWAYS)
-       {
-         inst.error = BAD_COND;
-         return;
-       }
-
-      inst.instruction = 0xfafffffe;
-
-      /* Process like a B/BL, but with a different reloc.
-        Note that B/BL expecte fffffe, not 0, offset in the opcode table.  */
-      do_branch25 (str, flags);
-    }
-}
-
-/* ARM V5 Thumb BLX (argument parse)
-       BLX <target_addr>       which is BLX(1)
-       BLX <Rm>                which is BLX(2)
-   Unfortunately, there are two different opcodes for this mnemonic.
-   So, the tinsns[].value is not used, and the code here zaps values
-       into inst.instruction.  */
-
-static void
-do_t_blx (str)
-     char * str;
-{
-  char * mystr = str;
-  int rm;
-
-  skip_whitespace (mystr);
-  inst.instruction = 0x4780;
-
-  /* Note that this call is to the ARM register recognizer.  BLX(2)
-     uses the ARM register space, not the Thumb one, so a call to
-     thumb_reg() would be wrong.  */
-  rm = reg_required_here (& mystr, 3);
-  inst.error = 0;
-
-  if (rm != FAIL)
-    {
-      /* It's BLX(2).  The .instruction was zapped with rm & is final.  */
-      inst.size = 2;
-    }
-  else
-    {
-      /* No ARM register.  This must be BLX(1).  Change the .instruction.  */
-      inst.instruction = 0xf7ffeffe;
-      inst.size = 4;
-
-      if (my_get_expression (& inst.reloc.exp, & mystr))
-       return;
-
-      inst.reloc.type   = BFD_RELOC_THUMB_PCREL_BLX;
-      inst.reloc.pc_rel = 1;
-    }
-
-  end_of_line (mystr);
-}
-
-/* ARM V5 breakpoint instruction (argument parse)
-     BKPT <16 bit unsigned immediate>
-     Instruction is not conditional.
-       The bit pattern given in insns[] has the COND_ALWAYS condition,
-       and it is an error if the caller tried to override that.
-     Note "flags" is nonzero if a flag was supplied (which is an error).  */
-
-static void
-do_bkpt (str, flags)
-     char *        str;
-     unsigned long flags;
-{
-  expressionS expr;
-  unsigned long number;
-
-  skip_whitespace (str);
-
-  /* Allow optional leading '#'.  */
-  if (is_immediate_prefix (* str))
-    str++;
-
-  memset (& expr, '\0', sizeof (expr));
-
-  if (my_get_expression (& expr, & str) || (expr.X_op != O_constant))
-    {
-      inst.error = _("bad or missing expression");
-      return;
-    }
-
-  number = expr.X_add_number;
-
-  /* Check it fits a 16 bit unsigned.  */
-  if (number != (number & 0xffff))
-    {
-      inst.error = _("immediate value out of range");
-      return;
-    }
-
-  /* Top 12 of 16 bits to bits 19:8.  */
-  inst.instruction |= (number & 0xfff0) << 4;
-
-  /* Bottom 4 of 16 bits to bits 3:0.  */
-  inst.instruction |= number & 0xf;
-
-  end_of_line (str);
-
-  if (flags)
-    inst.error = BAD_FLAGS;
-}
-
-/* Xscale multiply-accumulate (argument parse)
-     MIAcc   acc0,Rm,Rs
-     MIAPHcc acc0,Rm,Rs
-     MIAxycc acc0,Rm,Rs.  */
-
-static void
-do_mia (str, flags)
-     char * str;
-     unsigned long flags;
-{
-  int rs;
-  int rm;
-
-  if (flags)
-    as_bad (BAD_FLAGS);
-
-  else if (accum0_required_here (& str) == FAIL)
-    inst.error = ERR_NO_ACCUM;
-
-  else if (skip_past_comma (& str) == FAIL
-          || (rm = reg_required_here (& str, 0)) == FAIL)
-    inst.error = BAD_ARGS;
-
-  else if (skip_past_comma (& str) == FAIL
-          || (rs = reg_required_here (& str, 12)) == FAIL)
-    inst.error = BAD_ARGS;
-
-  /* inst.instruction has now been zapped with both rm and rs.  */
-  else if (rm == REG_PC || rs == REG_PC)
-    inst.error = BAD_PC;       /* Undefined result if rm or rs is R15.  */
-
-  else
-    end_of_line (str);
-}
-
-/* Xscale move-accumulator-register (argument parse)
-
-     MARcc   acc0,RdLo,RdHi.  */
-
-static void
-do_mar (str, flags)
-     char * str;
-     unsigned long flags;
-{
-  int rdlo, rdhi;
-
-  if (flags)
-    as_bad (BAD_FLAGS);
-
-  else if (accum0_required_here (& str) == FAIL)
-    inst.error = ERR_NO_ACCUM;
-
-  else if (skip_past_comma (& str) == FAIL
-          || (rdlo = reg_required_here (& str, 12)) == FAIL)
-    inst.error = BAD_ARGS;
-
-  else if (skip_past_comma (& str) == FAIL
-          || (rdhi = reg_required_here (& str, 16)) == FAIL)
-    inst.error = BAD_ARGS;
-
-  /* inst.instruction has now been zapped with both rdlo and rdhi.  */
-  else if (rdlo == REG_PC || rdhi == REG_PC)
-    inst.error = BAD_PC;       /* Undefined result if rdlo or rdhi is R15.  */
-
-  else
-    end_of_line (str);
-}
-
-/* Xscale move-register-accumulator (argument parse)
-
-     MRAcc   RdLo,RdHi,acc0.  */
-
-static void
-do_mra (str, flags)
-     char * str;
-     unsigned long flags;
-{
-  int rdlo;
-  int rdhi;
-
-  if (flags)
-    {
-      as_bad (BAD_FLAGS);
-      return;
-    }
-
-  skip_whitespace (str);
-
-  if ((rdlo = reg_required_here (& str, 12)) == FAIL)
-    inst.error = BAD_ARGS;
-
-  else if (skip_past_comma (& str) == FAIL
-          || (rdhi = reg_required_here (& str, 16)) == FAIL)
-    inst.error = BAD_ARGS;
-
-  else if  (skip_past_comma (& str) == FAIL
-           || accum0_required_here (& str) == FAIL)
-    inst.error = ERR_NO_ACCUM;
-
-  /* inst.instruction has now been zapped with both rdlo and rdhi.  */
-  else if (rdlo == rdhi)
-    inst.error = BAD_ARGS;     /* Undefined result if 2 writes to same reg.  */
-
-  else if (rdlo == REG_PC || rdhi == REG_PC)
-    inst.error = BAD_PC;       /* Undefined result if rdlo or rdhi is R15.  */
-  else
-    end_of_line (str);
-}
-
-/* Xscale: Preload-Cache
-
-    PLD <addr_mode>
-
-  Syntactically, like LDR with B=1, W=0, L=1.  */
-
-static void
-do_pld (str, flags)
-     char * str;
-     unsigned long flags;
-{
-  int rd;
-
-  if (flags)
-    {
-      as_bad (BAD_FLAGS);
-      return;
-    }
-
-  skip_whitespace (str);
-
-  if (* str != '[')
-    {
-      inst.error = _("'[' expected after PLD mnemonic");
-      return;
-    }
-
-  ++ str;
-  skip_whitespace (str);
-
-  if ((rd = reg_required_here (& str, 16)) == FAIL)
-    return;
-
-  skip_whitespace (str);
-
-  if (* str == ']')
-    {
-      /* [Rn], ... ?  */
-      ++ str;
-      skip_whitespace (str);
-
-      if (skip_past_comma (& str) == SUCCESS)
-       {
-         if (ldst_extend (& str, 0) == FAIL)
-           return;
-       }
-      else if (* str == '!') /* [Rn]! */
-       {
-         inst.error = _("writeback used in preload instruction");
-         ++ str;
-       }
-      else /* [Rn] */
-       inst.instruction |= INDEX_UP | PRE_INDEX;
-    }
-  else /* [Rn, ...] */
-    {
-      if (skip_past_comma (& str) == FAIL)
-       {
-         inst.error = _("pre-indexed expression expected");
-         return;
-       }
-
-      if (ldst_extend (& str, 0) == FAIL)
-       return;
-
-      skip_whitespace (str);
-
-      if (* str != ']')
-       {
-         inst.error = _("missing ]");
-         return;
-       }
-
-      ++ str;
-      skip_whitespace (str);
-
-      if (* str == '!') /* [Rn]! */
-       {
-         inst.error = _("writeback used in preload instruction");
-         ++ str;
-       }
-
-      inst.instruction |= PRE_INDEX;
-    }
-
-  end_of_line (str);
-}
-
-/* Xscale load-consecutive (argument parse)
-   Mode is like LDRH.
-
-     LDRccD R, mode
-     STRccD R, mode.  */
-
-static void
-do_ldrd (str, flags)
-     char * str;
-     unsigned long flags;
-{
-  int rd;
-  int rn;
-
-  if (flags != DOUBLE_LOAD_FLAG)
-    {
-      /* Change instruction pattern to normal ldr/str.  */
-      if (inst.instruction & 0x20)
-       inst.instruction = (inst.instruction & COND_MASK) | 0x04000000; /* str */
-      else
-       inst.instruction = (inst.instruction & COND_MASK) | 0x04100000; /* ldr */
-
-      /* Perform a normal load/store instruction parse.  */
-      do_ldst (str, flags);
-
-      return;
-    }
-
-  if ((cpu_variant & ARM_EXT_XSCALE) != ARM_EXT_XSCALE)
-    {
-      static char buff[128];
-
-      --str;
-      while (isspace (*str))
-       --str;
-      str -= 4;
-
-      /* Deny all knowledge.  */
-      sprintf (buff, _("bad instruction '%.100s'"), str);
-      inst.error = buff;
-      return;
-    }
-
-  skip_whitespace (str);
-
-  if ((rd = reg_required_here (& str, 12)) == FAIL)
-    {
-      inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (skip_past_comma (& str) == FAIL
-      || (rn = ld_mode_required_here (& str)) == FAIL)
-    {
-      if (!inst.error)
-        inst.error = BAD_ARGS;
-      return;
-    }
-
-  /* inst.instruction has now been zapped with Rd and the addressing mode.  */
-  if (rd & 1)          /* Unpredictable result if Rd is odd.  */
-    {
-      inst.error = _("Destination register must be even");
-      return;
-    }
-
-  if (rd == REG_LR || rd == 12)
-    {
-      inst.error = _("r12 or r14 not allowed here");
-      return;
-    }
-
-  if (((rd == rn) || (rd + 1 == rn))
-      &&
-      ((inst.instruction & WRITE_BACK)
-       || (!(inst.instruction & PRE_INDEX))))
-    as_warn (_("pre/post-indexing used when modified address register is destination"));
-
-  end_of_line (str);
-}
-
-/* Returns the index into fp_values of a floating point number,
-   or -1 if not in the table.  */
-
-static int
-my_get_float_expression (str)
-     char ** str;
-{
-  LITTLENUM_TYPE words[MAX_LITTLENUMS];
-  char *         save_in;
-  expressionS    exp;
-  int            i;
-  int            j;
-
-  memset (words, 0, MAX_LITTLENUMS * sizeof (LITTLENUM_TYPE));
-
-  /* Look for a raw floating point number.  */
-  if ((save_in = atof_ieee (*str, 'x', words)) != NULL
-      && is_end_of_line[(unsigned char) *save_in])
-    {
-      for (i = 0; i < NUM_FLOAT_VALS; i++)
-       {
-         for (j = 0; j < MAX_LITTLENUMS; j++)
-           {
-             if (words[j] != fp_values[i][j])
-               break;
-           }
-
-         if (j == MAX_LITTLENUMS)
-           {
-             *str = save_in;
-             return i;
-           }
-       }
-    }
-
-  /* Try and parse a more complex expression, this will probably fail
-     unless the code uses a floating point prefix (eg "0f").  */
-  save_in = input_line_pointer;
-  input_line_pointer = *str;
-  if (expression (&exp) == absolute_section
-      && exp.X_op == O_big
-      && exp.X_add_number < 0)
-    {
-      /* FIXME: 5 = X_PRECISION, should be #define'd where we can use it.
-        Ditto for 15.  */
-      if (gen_to_words (words, 5, (long) 15) == 0)
-       {
-         for (i = 0; i < NUM_FLOAT_VALS; i++)
-           {
-             for (j = 0; j < MAX_LITTLENUMS; j++)
-               {
-                 if (words[j] != fp_values[i][j])
-                   break;
-               }
-
-             if (j == MAX_LITTLENUMS)
-               {
-                 *str = input_line_pointer;
-                 input_line_pointer = save_in;
-                 return i;
-               }
-           }
-       }
-    }
-
-  *str = input_line_pointer;
-  input_line_pointer = save_in;
-  return -1;
-}
-
-/* Return true if anything in the expression is a bignum.  */
-
-static int
-walk_no_bignums (sp)
-     symbolS * sp;
-{
-  if (symbol_get_value_expression (sp)->X_op == O_big)
-    return 1;
-
-  if (symbol_get_value_expression (sp)->X_add_symbol)
-    {
-      return (walk_no_bignums (symbol_get_value_expression (sp)->X_add_symbol)
-             || (symbol_get_value_expression (sp)->X_op_symbol
-                 && walk_no_bignums (symbol_get_value_expression (sp)->X_op_symbol)));
-    }
-
-  return 0;
-}
-
-static int
-my_get_expression (ep, str)
-     expressionS * ep;
-     char ** str;
-{
-  char * save_in;
-  segT   seg;
-
-  save_in = input_line_pointer;
-  input_line_pointer = *str;
-  seg = expression (ep);
-
-#ifdef OBJ_AOUT
-  if (seg != absolute_section
-      && seg != text_section
-      && seg != data_section
-      && seg != bss_section
-      && seg != undefined_section)
-    {
-      inst.error = _("bad_segment");
-      *str = input_line_pointer;
-      input_line_pointer = save_in;
-      return 1;
-    }
-#endif
-
-  /* Get rid of any bignums now, so that we don't generate an error for which
-     we can't establish a line number later on.  Big numbers are never valid
-     in instructions, which is where this routine is always called.  */
-  if (ep->X_op == O_big
-      || (ep->X_add_symbol
-         && (walk_no_bignums (ep->X_add_symbol)
-             || (ep->X_op_symbol
-                 && walk_no_bignums (ep->X_op_symbol)))))
-    {
-      inst.error = _("Invalid constant");
-      *str = input_line_pointer;
-      input_line_pointer = save_in;
-      return 1;
-    }
-
-  *str = input_line_pointer;
-  input_line_pointer = save_in;
-  return 0;
-}
-
-/* UNRESTRICT should be one if <shift> <register> is permitted for this
-   instruction.  */
-
-static int
-decode_shift (str, unrestrict)
-     char ** str;
-     int     unrestrict;
-{
-  const struct asm_shift_name * shift;
-  char * p;
-  char   c;
-
-  skip_whitespace (* str);
-
-  for (p = * str; isalpha (* p); p ++)
-    ;
-
-  if (p == * str)
-    {
-      inst.error = _("Shift expression expected");
-      return FAIL;
-    }
-
-  c = * p;
-  * p = '\0';
-  shift = (const struct asm_shift_name *) hash_find (arm_shift_hsh, * str);
-  * p = c;
-
-  if (shift == NULL)
-    {
-      inst.error = _("Shift expression expected");
-      return FAIL;
-    }
-
-  assert (shift->properties->index == shift_properties[shift->properties->index].index);
-
-  if (shift->properties->index == SHIFT_RRX)
-    {
-      * str = p;
-      inst.instruction |= shift->properties->bit_field;
-      return SUCCESS;
-    }
-
-  skip_whitespace (p);
-
-  if (unrestrict && reg_required_here (& p, 8) != FAIL)
-    {
-      inst.instruction |= shift->properties->bit_field | SHIFT_BY_REG;
-      * str = p;
-      return SUCCESS;
-    }
-  else if (! is_immediate_prefix (* p))
-    {
-      inst.error = (unrestrict
-                   ? _("shift requires register or #expression")
-                   : _("shift requires #expression"));
-      * str = p;
-      return FAIL;
-    }
-
-  inst.error = NULL;
-  p ++;
-
-  if (my_get_expression (& inst.reloc.exp, & p))
-    return FAIL;
-
-  /* Validate some simple #expressions.  */
-  if (inst.reloc.exp.X_op == O_constant)
-    {
-      unsigned num = inst.reloc.exp.X_add_number;
-
-      /* Reject operations greater than 32.  */
-      if (num > 32
-         /* Reject a shift of 0 unless the mode allows it.  */
-         || (num == 0 && shift->properties->allows_0 == 0)
-         /* Reject a shift of 32 unless the mode allows it.  */
-         || (num == 32 && shift->properties->allows_32 == 0)
-         )
-       {
-         /* As a special case we allow a shift of zero for
-            modes that do not support it to be recoded as an
-            logical shift left of zero (ie nothing).  We warn
-            about this though.  */
-         if (num == 0)
-           {
-             as_warn (_("Shift of 0 ignored."));
-             shift = & shift_names[0];
-             assert (shift->properties->index == SHIFT_LSL);
-           }
-         else
-           {
-             inst.error = _("Invalid immediate shift");
-             return FAIL;
-           }
-       }
-
-      /* Shifts of 32 are encoded as 0, for those shifts that
-        support it.  */
-      if (num == 32)
-       num = 0;
-
-      inst.instruction |= (num << 7) | shift->properties->bit_field;
-    }
-  else
-    {
-      inst.reloc.type   = BFD_RELOC_ARM_SHIFT_IMM;
-      inst.reloc.pc_rel = 0;
-      inst.instruction |= shift->properties->bit_field;
-    }
-
-  * str = p;
-  return SUCCESS;
-}
-
-/* Do those data_ops which can take a negative immediate constant
-   by altering the instuction.  A bit of a hack really.
-        MOV <-> MVN
-        AND <-> BIC
-        ADC <-> SBC
-        by inverting the second operand, and
-        ADD <-> SUB
-        CMP <-> CMN
-        by negating the second operand.  */
-
-static int
-negate_data_op (instruction, value)
-     unsigned long * instruction;
-     unsigned long   value;
-{
-  int op, new_inst;
-  unsigned long negated, inverted;
-
-  negated = validate_immediate (-value);
-  inverted = validate_immediate (~value);
-
-  op = (*instruction >> DATA_OP_SHIFT) & 0xf;
-  switch (op)
-    {
-      /* First negates.  */
-    case OPCODE_SUB:             /* ADD <-> SUB  */
-      new_inst = OPCODE_ADD;
-      value = negated;
-      break;
-
-    case OPCODE_ADD:
-      new_inst = OPCODE_SUB;
-      value = negated;
-      break;
-
-    case OPCODE_CMP:             /* CMP <-> CMN  */
-      new_inst = OPCODE_CMN;
-      value = negated;
-      break;
-
-    case OPCODE_CMN:
-      new_inst = OPCODE_CMP;
-      value = negated;
-      break;
-
-      /* Now Inverted ops.  */
-    case OPCODE_MOV:             /* MOV <-> MVN  */
-      new_inst = OPCODE_MVN;
-      value = inverted;
-      break;
-
-    case OPCODE_MVN:
-      new_inst = OPCODE_MOV;
-      value = inverted;
-      break;
-
-    case OPCODE_AND:             /* AND <-> BIC  */
-      new_inst = OPCODE_BIC;
-      value = inverted;
-      break;
-
-    case OPCODE_BIC:
-      new_inst = OPCODE_AND;
-      value = inverted;
-      break;
-
-    case OPCODE_ADC:              /* ADC <-> SBC  */
-      new_inst = OPCODE_SBC;
-      value = inverted;
-      break;
-
-    case OPCODE_SBC:
-      new_inst = OPCODE_ADC;
-      value = inverted;
-      break;
-
-      /* We cannot do anything.  */
-    default:
-      return FAIL;
-    }
-
-  if (value == (unsigned) FAIL)
-    return FAIL;
-
-  *instruction &= OPCODE_MASK;
-  *instruction |= new_inst << DATA_OP_SHIFT;
-  return value;
-}
-
-static int
-data_op2 (str)
-     char ** str;
-{
-  int value;
-  expressionS expr;
-
-  skip_whitespace (* str);
-
-  if (reg_required_here (str, 0) != FAIL)
-    {
-      if (skip_past_comma (str) == SUCCESS)
-       /* Shift operation on register.  */
-       return decode_shift (str, NO_SHIFT_RESTRICT);
-
-      return SUCCESS;
-    }
-  else
-    {
-      /* Immediate expression.  */
-      if (is_immediate_prefix (**str))
-       {
-         (*str)++;
-         inst.error = NULL;
-
-         if (my_get_expression (&inst.reloc.exp, str))
-           return FAIL;
-
-         if (inst.reloc.exp.X_add_symbol)
-           {
-             inst.reloc.type = BFD_RELOC_ARM_IMMEDIATE;
-             inst.reloc.pc_rel = 0;
-           }
-         else
-           {
-             if (skip_past_comma (str) == SUCCESS)
-               {
-                 /* #x, y -- ie explicit rotation by Y.  */
-                 if (my_get_expression (&expr, str))
-                   return FAIL;
-
-                 if (expr.X_op != O_constant)
-                   {
-                     inst.error = _("Constant expression expected");
-                     return FAIL;
-                   }
-
-                 /* Rotate must be a multiple of 2.  */
-                 if (((unsigned) expr.X_add_number) > 30
-                     || (expr.X_add_number & 1) != 0
-                     || ((unsigned) inst.reloc.exp.X_add_number) > 255)
-                   {
-                     inst.error = _("Invalid constant");
-                     return FAIL;
-                   }
-                 inst.instruction |= INST_IMMEDIATE;
-                 inst.instruction |= inst.reloc.exp.X_add_number;
-                 inst.instruction |= expr.X_add_number << 7;
-                 return SUCCESS;
-               }
-
-             /* Implicit rotation, select a suitable one.  */
-             value = validate_immediate (inst.reloc.exp.X_add_number);
-
-             if (value == FAIL)
-               {
-                 /* Can't be done.  Perhaps the code reads something like
-                    "add Rd, Rn, #-n", where "sub Rd, Rn, #n" would be OK.  */
-                 if ((value = negate_data_op (&inst.instruction,
-                                              inst.reloc.exp.X_add_number))
-                     == FAIL)
-                   {
-                     inst.error = _("Invalid constant");
-                     return FAIL;
-                   }
-               }
-
-             inst.instruction |= value;
-           }
-
-         inst.instruction |= INST_IMMEDIATE;
-         return SUCCESS;
-       }
-
-      (*str)++;
-      inst.error = _("Register or shift expression expected");
-      return FAIL;
-    }
-}
-
-static int
-fp_op2 (str)
-     char ** str;
-{
-  skip_whitespace (* str);
-
-  if (fp_reg_required_here (str, 0) != FAIL)
-    return SUCCESS;
-  else
-    {
-      /* Immediate expression.  */
-      if (*((*str)++) == '#')
-       {
-         int i;
-
-         inst.error = NULL;
-
-         skip_whitespace (* str);
-
-         /* First try and match exact strings, this is to guarantee
-            that some formats will work even for cross assembly.  */
-
-         for (i = 0; fp_const[i]; i++)
-           {
-             if (strncmp (*str, fp_const[i], strlen (fp_const[i])) == 0)
-               {
-                 char *start = *str;
-
-                 *str += strlen (fp_const[i]);
-                 if (is_end_of_line[(unsigned char) **str])
-                   {
-                     inst.instruction |= i + 8;
-                     return SUCCESS;
-                   }
-                 *str = start;
-               }
-           }
-
-         /* Just because we didn't get a match doesn't mean that the
-            constant isn't valid, just that it is in a format that we
-            don't automatically recognize.  Try parsing it with
-            the standard expression routines.  */
-         if ((i = my_get_float_expression (str)) >= 0)
-           {
-             inst.instruction |= i + 8;
-             return SUCCESS;
-           }
-
-         inst.error = _("Invalid floating point immediate expression");
-         return FAIL;
-       }
-      inst.error =
-       _("Floating point register or immediate expression expected");
-      return FAIL;
-    }
-}
-
-static void
-do_arit (str, flags)
-     char * str;
-     unsigned long flags;
-{
-  skip_whitespace (str);
-
-  if (reg_required_here (&str, 12) == FAIL
-      || skip_past_comma (&str) == FAIL
-      || reg_required_here (&str, 16) == FAIL
-      || skip_past_comma (&str) == FAIL
-      || data_op2 (&str) == FAIL)
-    {
-      if (!inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  inst.instruction |= flags;
-  end_of_line (str);
-  return;
-}
-
-static void
-do_adr (str, flags)
-     char * str;
-     unsigned long flags;
-{
-  /* This is a pseudo-op of the form "adr rd, label" to be converted
-     into a relative address of the form "add rd, pc, #label-.-8".  */
-  skip_whitespace (str);
-
-  if (reg_required_here (&str, 12) == FAIL
-      || skip_past_comma (&str) == FAIL
-      || my_get_expression (&inst.reloc.exp, &str))
-    {
-      if (!inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  /* Frag hacking will turn this into a sub instruction if the offset turns
-     out to be negative.  */
-  inst.reloc.type = BFD_RELOC_ARM_IMMEDIATE;
-  inst.reloc.exp.X_add_number -= 8; /* PC relative adjust.  */
-  inst.reloc.pc_rel = 1;
-  inst.instruction |= flags;
-
-  end_of_line (str);
-}
-
-static void
-do_adrl (str, flags)
-     char * str;
-     unsigned long flags;
-{
-  /* This is a pseudo-op of the form "adrl rd, label" to be converted
-     into a relative address of the form:
-       add rd, pc, #low(label-.-8)"
-       add rd, rd, #high(label-.-8)"  */
-
-  skip_whitespace (str);
-
-  if (reg_required_here (& str, 12) == FAIL
-      || skip_past_comma (& str) == FAIL
-      || my_get_expression (& inst.reloc.exp, & str))
-    {
-      if (!inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  end_of_line (str);
-
-  /* Frag hacking will turn this into a sub instruction if the offset turns
-     out to be negative.  */
-  inst.reloc.type              = BFD_RELOC_ARM_ADRL_IMMEDIATE;
-  inst.reloc.exp.X_add_number -= 8; /* PC relative adjust  */
-  inst.reloc.pc_rel            = 1;
-  inst.instruction            |= flags;
-  inst.size                    = INSN_SIZE * 2;
-
-  return;
-}
-
-static void
-do_cmp (str, flags)
-     char * str;
-     unsigned long flags;
-{
-  skip_whitespace (str);
-
-  if (reg_required_here (&str, 16) == FAIL)
-    {
-      if (!inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (skip_past_comma (&str) == FAIL
-      || data_op2 (&str) == FAIL)
-    {
-      if (!inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  inst.instruction |= flags;
-  if ((flags & 0x0000f000) == 0)
-    inst.instruction |= CONDS_BIT;
-
-  end_of_line (str);
-  return;
-}
-
-static void
-do_mov (str, flags)
-     char * str;
-     unsigned long flags;
-{
-  skip_whitespace (str);
-
-  if (reg_required_here (&str, 12) == FAIL)
-    {
-      if (!inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (skip_past_comma (&str) == FAIL
-      || data_op2 (&str) == FAIL)
-    {
-      if (!inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  inst.instruction |= flags;
-  end_of_line (str);
-  return;
-}
-
-static int
-ldst_extend (str, hwse)
-     char ** str;
-     int     hwse;
-{
-  int add = INDEX_UP;
-
-  switch (**str)
-    {
-    case '#':
-    case '$':
-      (*str)++;
-      if (my_get_expression (& inst.reloc.exp, str))
-       return FAIL;
-
-      if (inst.reloc.exp.X_op == O_constant)
-       {
-         int value = inst.reloc.exp.X_add_number;
-
-         if ((hwse && (value < -255 || value > 255))
-             || (value < -4095 || value > 4095))
-           {
-             inst.error = _("address offset too large");
-             return FAIL;
-           }
-
-         if (value < 0)
-           {
-             value = -value;
-             add = 0;
-           }
-
-         /* Halfword and signextension instructions have the
-             immediate value split across bits 11..8 and bits 3..0.  */
-         if (hwse)
-           inst.instruction |= (add | HWOFFSET_IMM
-                                | ((value >> 4) << 8) | (value & 0xF));
-         else
-           inst.instruction |= add | value;
-       }
-      else
-       {
-         if (hwse)
-           {
-             inst.instruction |= HWOFFSET_IMM;
-             inst.reloc.type = BFD_RELOC_ARM_OFFSET_IMM8;
-           }
-         else
-           inst.reloc.type = BFD_RELOC_ARM_OFFSET_IMM;
-         inst.reloc.pc_rel = 0;
-       }
-      return SUCCESS;
-
-    case '-':
-      add = 0;
-      /* Fall through.  */
-
-    case '+':
-      (*str)++;
-      /* Fall through.  */
-
-    default:
-      if (reg_required_here (str, 0) == FAIL)
-       return FAIL;
-
-      if (hwse)
-       inst.instruction |= add;
-      else
-       {
-         inst.instruction |= add | OFFSET_REG;
-         if (skip_past_comma (str) == SUCCESS)
-           return decode_shift (str, SHIFT_RESTRICT);
-       }
-
-      return SUCCESS;
-    }
-}
-
-static void
-do_ldst (str, flags)
-     char *        str;
-     unsigned long flags;
-{
-  int halfword = 0;
-  int pre_inc = 0;
-  int conflict_reg;
-  int value;
-
-  /* This is not ideal, but it is the simplest way of dealing with the
-     ARM7T halfword instructions (since they use a different
-     encoding, but the same mnemonic):  */
-  halfword = (flags & 0x80000000) != 0;
-  if (halfword)
-    {
-      /* This is actually a load/store of a halfword, or a
-         signed-extension load.  */
-      if ((cpu_variant & ARM_EXT_HALFWORD) == 0)
-       {
-         inst.error
-           = _("Processor does not support halfwords or signed bytes");
-         return;
-       }
-
-      inst.instruction = ((inst.instruction & COND_MASK)
-                         | (flags & ~COND_MASK));
-
-      flags = 0;
-    }
-
-  skip_whitespace (str);
-
-  if ((conflict_reg = reg_required_here (& str, 12)) == FAIL)
-    {
-      if (!inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (skip_past_comma (& str) == FAIL)
-    {
-      inst.error = _("Address expected");
-      return;
-    }
-
-  if (*str == '[')
-    {
-      int reg;
-
-      str++;
-
-      skip_whitespace (str);
-
-      if ((reg = reg_required_here (&str, 16)) == FAIL)
-       return;
-
-      /* Conflicts can occur on stores as well as loads.  */
-      conflict_reg = (conflict_reg == reg);
-
-      skip_whitespace (str);
-
-      if (*str == ']')
-       {
-         str ++;
-
-         if (skip_past_comma (&str) == SUCCESS)
-           {
-             /* [Rn],... (post inc)  */
-             if (ldst_extend (&str, halfword) == FAIL)
-               return;
-             if (conflict_reg)
-               {
-                 if (flags & TRANS_BIT)
-                   as_warn (_("Rn and Rd must be different in %s"),
-                            ((inst.instruction & LOAD_BIT)
-                             ? "LDRT" : "STRT"));
-                 else
-                   as_warn (_("%s register same as write-back base"),
-                            ((inst.instruction & LOAD_BIT)
-                             ? _("destination") : _("source")));
-               }
-           }
-         else
-           {
-             /* [Rn]  */
-             if (halfword)
-               inst.instruction |= HWOFFSET_IMM;
-
-             skip_whitespace (str);
-
-             if (*str == '!')
-               {
-                 if (conflict_reg)
-                   as_warn (_("%s register same as write-back base"),
-                            ((inst.instruction & LOAD_BIT)
-                             ? _("destination") : _("source")));
-                 str++;
-                 inst.instruction |= WRITE_BACK;
-               }
-
-             flags |= INDEX_UP;
-             if (flags & TRANS_BIT)
-               {
-                 if (conflict_reg)
-                   as_warn (_("Rn and Rd must be different in %s"),
-                            ((inst.instruction & LOAD_BIT)
-                             ? "LDRT" : "STRT"));
-               }
-               else
-                 pre_inc = 1;
-           }
-       }
-      else
-       {
-         /* [Rn,...]  */
-         if (skip_past_comma (&str) == FAIL)
-           {
-             inst.error = _("pre-indexed expression expected");
-             return;
-           }
-
-         pre_inc = 1;
-         if (ldst_extend (&str, halfword) == FAIL)
-           return;
-
-         skip_whitespace (str);
-
-         if (*str++ != ']')
-           {
-             inst.error = _("missing ]");
-             return;
-           }
-
-         skip_whitespace (str);
-
-         if (*str == '!')
-           {
-             if (conflict_reg)
-               as_warn (_("%s register same as write-back base"),
-                        ((inst.instruction & LOAD_BIT)
-                         ? _("destination") : _("source")));
-             str++;
-             inst.instruction |= WRITE_BACK;
-           }
-       }
-    }
-  else if (*str == '=')
-    {
-      /* Parse an "ldr Rd, =expr" instruction; this is another pseudo op.  */
-      str++;
-
-      skip_whitespace (str);
-
-      if (my_get_expression (&inst.reloc.exp, &str))
-       return;
-
-      if (inst.reloc.exp.X_op != O_constant
-         && inst.reloc.exp.X_op != O_symbol)
-       {
-         inst.error = _("Constant expression expected");
-         return;
-       }
-
-      if (inst.reloc.exp.X_op == O_constant
-         && (value = validate_immediate (inst.reloc.exp.X_add_number)) != FAIL)
-       {
-         /* This can be done with a mov instruction.  */
-         inst.instruction &= LITERAL_MASK;
-         inst.instruction |= INST_IMMEDIATE | (OPCODE_MOV << DATA_OP_SHIFT);
-         inst.instruction |= (flags & COND_MASK) | (value & 0xfff);
-         end_of_line (str);
-         return;
-       }
-      else
-       {
-         /* Insert into literal pool.  */
-         if (add_to_lit_pool () == FAIL)
-           {
-             if (!inst.error)
-               inst.error = _("literal pool insertion failed");
-             return;
-           }
-
-         /* Change the instruction exp to point to the pool.  */
-         if (halfword)
-           {
-             inst.instruction |= HWOFFSET_IMM;
-             inst.reloc.type = BFD_RELOC_ARM_HWLITERAL;
-           }
-         else
-           inst.reloc.type = BFD_RELOC_ARM_LITERAL;
-         inst.reloc.pc_rel = 1;
-         inst.instruction |= (REG_PC << 16);
-         pre_inc = 1;
-       }
-    }
-  else
-    {
-      if (my_get_expression (&inst.reloc.exp, &str))
-       return;
-
-      if (halfword)
-       {
-         inst.instruction |= HWOFFSET_IMM;
-         inst.reloc.type = BFD_RELOC_ARM_OFFSET_IMM8;
-       }
-      else
-       inst.reloc.type = BFD_RELOC_ARM_OFFSET_IMM;
-#ifndef TE_WINCE
-      /* PC rel adjust.  */
-      inst.reloc.exp.X_add_number -= 8;
-#endif
-      inst.reloc.pc_rel = 1;
-      inst.instruction |= (REG_PC << 16);
-      pre_inc = 1;
-    }
-
-  if (pre_inc && (flags & TRANS_BIT))
-    inst.error = _("Pre-increment instruction with translate");
-
-  inst.instruction |= flags | (pre_inc ? PRE_INDEX : 0);
-  end_of_line (str);
-  return;
-}
-
-static long
-reg_list (strp)
-     char ** strp;
-{
-  char * str = * strp;
-  long   range = 0;
-  int    another_range;
-
-  /* We come back here if we get ranges concatenated by '+' or '|'.  */
-  do
-    {
-      another_range = 0;
-
-      if (*str == '{')
-       {
-         int in_range = 0;
-         int cur_reg = -1;
-
-         str++;
-         do
-           {
-             int reg;
-
-             skip_whitespace (str);
-
-             if ((reg = reg_required_here (& str, -1)) == FAIL)
-               return FAIL;
-
-             if (in_range)
-               {
-                 int i;
-
-                 if (reg <= cur_reg)
-                   {
-                     inst.error = _("Bad range in register list");
-                     return FAIL;
-                   }
-
-                 for (i = cur_reg + 1; i < reg; i++)
-                   {
-                     if (range & (1 << i))
-                       as_tsktsk
-                         (_("Warning: Duplicated register (r%d) in register list"),
-                          i);
-                     else
-                       range |= 1 << i;
-                   }
-                 in_range = 0;
-               }
-
-             if (range & (1 << reg))
-               as_tsktsk (_("Warning: Duplicated register (r%d) in register list"),
-                          reg);
-             else if (reg <= cur_reg)
-               as_tsktsk (_("Warning: Register range not in ascending order"));
-
-             range |= 1 << reg;
-             cur_reg = reg;
-           }
-         while (skip_past_comma (&str) != FAIL
-                || (in_range = 1, *str++ == '-'));
-         str--;
-         skip_whitespace (str);
-
-         if (*str++ != '}')
-           {
-             inst.error = _("Missing `}'");
-             return FAIL;
-           }
-       }
-      else
-       {
-         expressionS expr;
-
-         if (my_get_expression (&expr, &str))
-           return FAIL;
-
-         if (expr.X_op == O_constant)
-           {
-             if (expr.X_add_number
-                 != (expr.X_add_number & 0x0000ffff))
-               {
-                 inst.error = _("invalid register mask");
-                 return FAIL;
-               }
-
-             if ((range & expr.X_add_number) != 0)
-               {
-                 int regno = range & expr.X_add_number;
-
-                 regno &= -regno;
-                 regno = (1 << regno) - 1;
-                 as_tsktsk
-                   (_("Warning: Duplicated register (r%d) in register list"),
-                    regno);
-               }
-
-             range |= expr.X_add_number;
-           }
-         else
-           {
-             if (inst.reloc.type != 0)
-               {
-                 inst.error = _("expression too complex");
-                 return FAIL;
-               }
-
-             memcpy (&inst.reloc.exp, &expr, sizeof (expressionS));
-             inst.reloc.type = BFD_RELOC_ARM_MULTI;
-             inst.reloc.pc_rel = 0;
-           }
-       }
-
-      skip_whitespace (str);
-
-      if (*str == '|' || *str == '+')
-       {
-         str++;
-         another_range = 1;
-       }
-    }
-  while (another_range);
-
-  *strp = str;
-  return range;
-}
-
-static void
-do_ldmstm (str, flags)
-     char * str;
-     unsigned long flags;
-{
-  int base_reg;
-  long range;
-
-  skip_whitespace (str);
-
-  if ((base_reg = reg_required_here (&str, 16)) == FAIL)
-    return;
-
-  if (base_reg == REG_PC)
-    {
-      inst.error = _("r15 not allowed as base register");
-      return;
-    }
-
-  skip_whitespace (str);
-
-  if (*str == '!')
-    {
-      flags |= WRITE_BACK;
-      str++;
-    }
-
-  if (skip_past_comma (&str) == FAIL
-      || (range = reg_list (&str)) == FAIL)
-    {
-      if (! inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (*str == '^')
-    {
-      str++;
-      flags |= LDM_TYPE_2_OR_3;
-    }
-
-  inst.instruction |= flags | range;
-  end_of_line (str);
-  return;
-}
-
-static void
-do_swi (str, flags)
-     char * str;
-     unsigned long flags;
-{
-  skip_whitespace (str);
-
-  /* Allow optional leading '#'.  */
-  if (is_immediate_prefix (*str))
-    str++;
-
-  if (my_get_expression (& inst.reloc.exp, & str))
-    return;
-
-  inst.reloc.type = BFD_RELOC_ARM_SWI;
-  inst.reloc.pc_rel = 0;
-  inst.instruction |= flags;
-
-  end_of_line (str);
-
-  return;
-}
-
-static void
-do_swap (str, flags)
-     char * str;
-     unsigned long flags;
-{
-  int reg;
-
-  skip_whitespace (str);
-
-  if ((reg = reg_required_here (&str, 12)) == FAIL)
-    return;
-
-  if (reg == REG_PC)
-    {
-      inst.error = _("r15 not allowed in swap");
-      return;
-    }
-
-  if (skip_past_comma (&str) == FAIL
-      || (reg = reg_required_here (&str, 0)) == FAIL)
-    {
-      if (!inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (reg == REG_PC)
-    {
-      inst.error = _("r15 not allowed in swap");
-      return;
-    }
-
-  if (skip_past_comma (&str) == FAIL
-      || *str++ != '[')
-    {
-      inst.error = BAD_ARGS;
-      return;
-    }
-
-  skip_whitespace (str);
-
-  if ((reg = reg_required_here (&str, 16)) == FAIL)
-    return;
-
-  if (reg == REG_PC)
-    {
-      inst.error = BAD_PC;
-      return;
-    }
-
-  skip_whitespace (str);
-
-  if (*str++ != ']')
-    {
-      inst.error = _("missing ]");
-      return;
-    }
-
-  inst.instruction |= flags;
-  end_of_line (str);
-  return;
-}
-
-static void
-do_branch (str, flags)
-     char * str;
-     unsigned long flags ATTRIBUTE_UNUSED;
-{
-  if (my_get_expression (&inst.reloc.exp, &str))
-    return;
-
-#ifdef OBJ_ELF
-  {
-    char * save_in;
-
-    /* ScottB: February 5, 1998 - Check to see of PLT32 reloc
-       required for the instruction.  */
-
-    /* arm_parse_reloc () works on input_line_pointer.
-       We actually want to parse the operands to the branch instruction
-       passed in 'str'.  Save the input pointer and restore it later.  */
-    save_in = input_line_pointer;
-    input_line_pointer = str;
-    if (inst.reloc.exp.X_op == O_symbol
-       && *str == '('
-       && arm_parse_reloc () == BFD_RELOC_ARM_PLT32)
-      {
-       inst.reloc.type   = BFD_RELOC_ARM_PLT32;
-       inst.reloc.pc_rel = 0;
-       /* Modify str to point to after parsed operands, otherwise
-          end_of_line() will complain about the (PLT) left in str.  */
-       str = input_line_pointer;
-      }
-    else
-      {
-       inst.reloc.type   = BFD_RELOC_ARM_PCREL_BRANCH;
-       inst.reloc.pc_rel = 1;
-      }
-    input_line_pointer = save_in;
-  }
-#else
-  inst.reloc.type   = BFD_RELOC_ARM_PCREL_BRANCH;
-  inst.reloc.pc_rel = 1;
-#endif /* OBJ_ELF  */
-
-  end_of_line (str);
-  return;
-}
-
-static void
-do_bx (str, flags)
-     char * str;
-     unsigned long flags ATTRIBUTE_UNUSED;
-{
-  int reg;
-
-  skip_whitespace (str);
-
-  if ((reg = reg_required_here (&str, 0)) == FAIL)
-    {
-      inst.error = BAD_ARGS;
-      return;
-    }
-
-  /* Note - it is not illegal to do a "bx pc".  Useless, but not illegal.  */
-  if (reg == REG_PC)
-    as_tsktsk (_("Use of r15 in bx in ARM mode is not really useful"));
-
-  end_of_line (str);
-}
-
-static void
-do_cdp (str, flags)
-     char * str;
-     unsigned long flags ATTRIBUTE_UNUSED;
-{
-  /* Co-processor data operation.
-     Format: CDP{cond} CP#,<expr>,CRd,CRn,CRm{,<expr>}  */
-  skip_whitespace (str);
-
-  if (co_proc_number (&str) == FAIL)
-    {
-      if (!inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (skip_past_comma (&str) == FAIL
-      || cp_opc_expr (&str, 20,4) == FAIL)
-    {
-      if (!inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (skip_past_comma (&str) == FAIL
-      || cp_reg_required_here (&str, 12) == FAIL)
-    {
-      if (!inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (skip_past_comma (&str) == FAIL
-      || cp_reg_required_here (&str, 16) == FAIL)
-    {
-      if (!inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (skip_past_comma (&str) == FAIL
-      || cp_reg_required_here (&str, 0) == FAIL)
-    {
-      if (!inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (skip_past_comma (&str) == SUCCESS)
-    {
-      if (cp_opc_expr (&str, 5, 3) == FAIL)
-       {
-         if (!inst.error)
-           inst.error = BAD_ARGS;
-         return;
-       }
-    }
-
-  end_of_line (str);
-  return;
-}
-
-static void
-do_lstc (str, flags)
-     char * str;
-     unsigned long flags;
-{
-  /* Co-processor register load/store.
-     Format: <LDC|STC{cond}[L] CP#,CRd,<address>  */
-
-  skip_whitespace (str);
-
-  if (co_proc_number (&str) == FAIL)
-    {
-      if (!inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (skip_past_comma (&str) == FAIL
-      || cp_reg_required_here (&str, 12) == FAIL)
-    {
-      if (!inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (skip_past_comma (&str) == FAIL
-      || cp_address_required_here (&str) == FAIL)
-    {
-      if (! inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  inst.instruction |= flags;
-  end_of_line (str);
-  return;
-}
-
-static void
-do_co_reg (str, flags)
-     char * str;
-     unsigned long flags;
-{
-  /* Co-processor register transfer.
-     Format: <MCR|MRC>{cond} CP#,<expr1>,Rd,CRn,CRm{,<expr2>}  */
-
-  skip_whitespace (str);
-
-  if (co_proc_number (&str) == FAIL)
-    {
-      if (!inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (skip_past_comma (&str) == FAIL
-      || cp_opc_expr (&str, 21, 3) == FAIL)
-    {
-      if (!inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (skip_past_comma (&str) == FAIL
-      || reg_required_here (&str, 12) == FAIL)
-    {
-      if (!inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (skip_past_comma (&str) == FAIL
-      || cp_reg_required_here (&str, 16) == FAIL)
-    {
-      if (!inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (skip_past_comma (&str) == FAIL
-      || cp_reg_required_here (&str, 0) == FAIL)
-    {
-      if (!inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (skip_past_comma (&str) == SUCCESS)
-    {
-      if (cp_opc_expr (&str, 5, 3) == FAIL)
-       {
-         if (!inst.error)
-           inst.error = BAD_ARGS;
-         return;
-       }
-    }
-  if (flags)
-    {
-      inst.error = BAD_COND;
-    }
-
-  end_of_line (str);
-  return;
-}
-
-static void
-do_fp_ctrl (str, flags)
-     char * str;
-     unsigned long flags ATTRIBUTE_UNUSED;
-{
-  /* FP control registers.
-     Format: <WFS|RFS|WFC|RFC>{cond} Rn  */
-
-  skip_whitespace (str);
-
-  if (reg_required_here (&str, 12) == FAIL)
-    {
-      if (!inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  end_of_line (str);
-  return;
-}
-
-static void
-do_fp_ldst (str, flags)
-     char * str;
-     unsigned long flags ATTRIBUTE_UNUSED;
-{
-  skip_whitespace (str);
-
-  switch (inst.suffix)
-    {
-    case SUFF_S:
-      break;
-    case SUFF_D:
-      inst.instruction |= CP_T_X;
-      break;
-    case SUFF_E:
-      inst.instruction |= CP_T_Y;
-      break;
-    case SUFF_P:
-      inst.instruction |= CP_T_X | CP_T_Y;
-      break;
-    default:
-      abort ();
-    }
-
-  if (fp_reg_required_here (&str, 12) == FAIL)
-    {
-      if (!inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (skip_past_comma (&str) == FAIL
-      || cp_address_required_here (&str) == FAIL)
-    {
-      if (!inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  end_of_line (str);
-}
-
-static void
-do_fp_ldmstm (str, flags)
-     char * str;
-     unsigned long flags;
-{
-  int num_regs;
-
-  skip_whitespace (str);
-
-  if (fp_reg_required_here (&str, 12) == FAIL)
-    {
-      if (! inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  /* Get Number of registers to transfer.  */
-  if (skip_past_comma (&str) == FAIL
-      || my_get_expression (&inst.reloc.exp, &str))
-    {
-      if (! inst.error)
-       inst.error = _("constant expression expected");
-      return;
-    }
-
-  if (inst.reloc.exp.X_op != O_constant)
-    {
-      inst.error = _("Constant value required for number of registers");
-      return;
-    }
-
-  num_regs = inst.reloc.exp.X_add_number;
-
-  if (num_regs < 1 || num_regs > 4)
-    {
-      inst.error = _("number of registers must be in the range [1:4]");
-      return;
-    }
-
-  switch (num_regs)
-    {
-    case 1:
-      inst.instruction |= CP_T_X;
-      break;
-    case 2:
-      inst.instruction |= CP_T_Y;
-      break;
-    case 3:
-      inst.instruction |= CP_T_Y | CP_T_X;
-      break;
-    case 4:
-      break;
-    default:
-      abort ();
-    }
-
-  if (flags)
-    {
-      int reg;
-      int write_back;
-      int offset;
-
-      /* The instruction specified "ea" or "fd", so we can only accept
-        [Rn]{!}.  The instruction does not really support stacking or
-        unstacking, so we have to emulate these by setting appropriate
-        bits and offsets.  */
-      if (skip_past_comma (&str) == FAIL
-         || *str != '[')
-       {
-         if (! inst.error)
-           inst.error = BAD_ARGS;
-         return;
-       }
-
-      str++;
-      skip_whitespace (str);
-
-      if ((reg = reg_required_here (&str, 16)) == FAIL)
-       return;
-
-      skip_whitespace (str);
-
-      if (*str != ']')
-       {
-         inst.error = BAD_ARGS;
-         return;
-       }
-
-      str++;
-      if (*str == '!')
-       {
-         write_back = 1;
-         str++;
-         if (reg == REG_PC)
-           {
-             inst.error =
-               _("R15 not allowed as base register with write-back");
-             return;
-           }
-       }
-      else
-       write_back = 0;
-
-      if (flags & CP_T_Pre)
-       {
-         /* Pre-decrement.  */
-         offset = 3 * num_regs;
-         if (write_back)
-           flags |= CP_T_WB;
-       }
-      else
-       {
-         /* Post-increment.  */
-         if (write_back)
-           {
-             flags |= CP_T_WB;
-             offset = 3 * num_regs;
-           }
-         else
-           {
-             /* No write-back, so convert this into a standard pre-increment
-                instruction -- aesthetically more pleasing.  */
-             flags = CP_T_Pre | CP_T_UD;
-             offset = 0;
-           }
-       }
-
-      inst.instruction |= flags | offset;
-    }
-  else if (skip_past_comma (&str) == FAIL
-          || cp_address_required_here (&str) == FAIL)
-    {
-      if (! inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  end_of_line (str);
-}
-
-static void
-do_fp_dyadic (str, flags)
-     char * str;
-     unsigned long flags;
-{
-  skip_whitespace (str);
-
-  switch (inst.suffix)
-    {
-    case SUFF_S:
-      break;
-    case SUFF_D:
-      inst.instruction |= 0x00000080;
-      break;
-    case SUFF_E:
-      inst.instruction |= 0x00080000;
-      break;
-    default:
-      abort ();
-    }
-
-  if (fp_reg_required_here (&str, 12) == FAIL)
-    {
-      if (! inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (skip_past_comma (&str) == FAIL
-      || fp_reg_required_here (&str, 16) == FAIL)
-    {
-      if (! inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (skip_past_comma (&str) == FAIL
-      || fp_op2 (&str) == FAIL)
-    {
-      if (! inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  inst.instruction |= flags;
-  end_of_line (str);
-  return;
-}
-
-static void
-do_fp_monadic (str, flags)
-     char * str;
-     unsigned long flags;
-{
-  skip_whitespace (str);
-
-  switch (inst.suffix)
-    {
-    case SUFF_S:
-      break;
-    case SUFF_D:
-      inst.instruction |= 0x00000080;
-      break;
-    case SUFF_E:
-      inst.instruction |= 0x00080000;
-      break;
-    default:
-      abort ();
-    }
-
-  if (fp_reg_required_here (&str, 12) == FAIL)
-    {
-      if (! inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (skip_past_comma (&str) == FAIL
-      || fp_op2 (&str) == FAIL)
-    {
-      if (! inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  inst.instruction |= flags;
-  end_of_line (str);
-  return;
-}
-
-static void
-do_fp_cmp (str, flags)
-     char * str;
-     unsigned long flags;
-{
-  skip_whitespace (str);
-
-  if (fp_reg_required_here (&str, 16) == FAIL)
-    {
-      if (! inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (skip_past_comma (&str) == FAIL
-      || fp_op2 (&str) == FAIL)
-    {
-      if (! inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  inst.instruction |= flags;
-  end_of_line (str);
-  return;
-}
-
-static void
-do_fp_from_reg (str, flags)
-     char * str;
-     unsigned long flags;
-{
-  skip_whitespace (str);
-
-  switch (inst.suffix)
-    {
-    case SUFF_S:
-      break;
-    case SUFF_D:
-      inst.instruction |= 0x00000080;
-      break;
-    case SUFF_E:
-      inst.instruction |= 0x00080000;
-      break;
-    default:
-      abort ();
-    }
-
-  if (fp_reg_required_here (&str, 16) == FAIL)
-    {
-      if (! inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (skip_past_comma (&str) == FAIL
-      || reg_required_here (&str, 12) == FAIL)
-    {
-      if (! inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  inst.instruction |= flags;
-  end_of_line (str);
-  return;
-}
-
-static void
-do_fp_to_reg (str, flags)
-     char * str;
-     unsigned long flags;
-{
-  skip_whitespace (str);
-
-  if (reg_required_here (&str, 12) == FAIL)
-    return;
-
-  if (skip_past_comma (&str) == FAIL
-      || fp_reg_required_here (&str, 0) == FAIL)
-    {
-      if (! inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  inst.instruction |= flags;
-  end_of_line (str);
-  return;
-}
-
-/* Thumb specific routines.  */
-
-/* Parse and validate that a register is of the right form, this saves
-   repeated checking of this information in many similar cases.
-   Unlike the 32-bit case we do not insert the register into the opcode
-   here, since the position is often unknown until the full instruction
-   has been parsed.  */
-
-static int
-thumb_reg (strp, hi_lo)
-     char ** strp;
-     int     hi_lo;
-{
-  int reg;
-
-  if ((reg = reg_required_here (strp, -1)) == FAIL)
-    return FAIL;
-
-  switch (hi_lo)
-    {
-    case THUMB_REG_LO:
-      if (reg > 7)
-       {
-         inst.error = _("lo register required");
-         return FAIL;
-       }
-      break;
-
-    case THUMB_REG_HI:
-      if (reg < 8)
-       {
-         inst.error = _("hi register required");
-         return FAIL;
-       }
-      break;
-
-    default:
-      break;
-    }
-
-  return reg;
-}
-
-/* Parse an add or subtract instruction, SUBTRACT is non-zero if the opcode
-   was SUB.  */
-
-static void
-thumb_add_sub (str, subtract)
-     char * str;
-     int    subtract;
-{
-  int Rd, Rs, Rn = FAIL;
-
-  skip_whitespace (str);
-
-  if ((Rd = thumb_reg (&str, THUMB_REG_ANY)) == FAIL
-      || skip_past_comma (&str) == FAIL)
-    {
-      if (! inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (is_immediate_prefix (*str))
-    {
-      Rs = Rd;
-      str++;
-      if (my_get_expression (&inst.reloc.exp, &str))
-       return;
-    }
-  else
-    {
-      if ((Rs = thumb_reg (&str, THUMB_REG_ANY)) == FAIL)
-       return;
-
-      if (skip_past_comma (&str) == FAIL)
-       {
-         /* Two operand format, shuffle the registers
-            and pretend there are 3.  */
-         Rn = Rs;
-         Rs = Rd;
-       }
-      else if (is_immediate_prefix (*str))
-       {
-         str++;
-         if (my_get_expression (&inst.reloc.exp, &str))
-           return;
-       }
-      else if ((Rn = thumb_reg (&str, THUMB_REG_ANY)) == FAIL)
-       return;
-    }
-
-  /* We now have Rd and Rs set to registers, and Rn set to a register or FAIL;
-     for the latter case, EXPR contains the immediate that was found.  */
-  if (Rn != FAIL)
-    {
-      /* All register format.  */
-      if (Rd > 7 || Rs > 7 || Rn > 7)
-       {
-         if (Rs != Rd)
-           {
-             inst.error = _("dest and source1 must be the same register");
-             return;
-           }
-
-         /* Can't do this for SUB.  */
-         if (subtract)
-           {
-             inst.error = _("subtract valid only on lo regs");
-             return;
-           }
-
-         inst.instruction = (T_OPCODE_ADD_HI
-                             | (Rd > 7 ? THUMB_H1 : 0)
-                             | (Rn > 7 ? THUMB_H2 : 0));
-         inst.instruction |= (Rd & 7) | ((Rn & 7) << 3);
-       }
-      else
-       {
-         inst.instruction = subtract ? T_OPCODE_SUB_R3 : T_OPCODE_ADD_R3;
-         inst.instruction |= Rd | (Rs << 3) | (Rn << 6);
-       }
-    }
-  else
-    {
-      /* Immediate expression, now things start to get nasty.  */
-
-      /* First deal with HI regs, only very restricted cases allowed:
-        Adjusting SP, and using PC or SP to get an address.  */
-      if ((Rd > 7 && (Rd != REG_SP || Rs != REG_SP))
-         || (Rs > 7 && Rs != REG_SP && Rs != REG_PC))
-       {
-         inst.error = _("invalid Hi register with immediate");
-         return;
-       }
-
-      if (inst.reloc.exp.X_op != O_constant)
-       {
-         /* Value isn't known yet, all we can do is store all the fragments
-            we know about in the instruction and let the reloc hacking
-            work it all out.  */
-         inst.instruction = (subtract ? 0x8000 : 0) | (Rd << 4) | Rs;
-         inst.reloc.type = BFD_RELOC_ARM_THUMB_ADD;
-       }
-      else
-       {
-         int offset = inst.reloc.exp.X_add_number;
-
-         if (subtract)
-           offset = -offset;
-
-         if (offset < 0)
-           {
-             offset = -offset;
-             subtract = 1;
-
-             /* Quick check, in case offset is MIN_INT.  */
-             if (offset < 0)
-               {
-                 inst.error = _("immediate value out of range");
-                 return;
-               }
-           }
-         else
-           subtract = 0;
-
-         if (Rd == REG_SP)
-           {
-             if (offset & ~0x1fc)
-               {
-                 inst.error = _("invalid immediate value for stack adjust");
-                 return;
-               }
-             inst.instruction = subtract ? T_OPCODE_SUB_ST : T_OPCODE_ADD_ST;
-             inst.instruction |= offset >> 2;
-           }
-         else if (Rs == REG_PC || Rs == REG_SP)
-           {
-             if (subtract
-                 || (offset & ~0x3fc))
-               {
-                 inst.error = _("invalid immediate for address calculation");
-                 return;
-               }
-             inst.instruction = (Rs == REG_PC ? T_OPCODE_ADD_PC
-                                 : T_OPCODE_ADD_SP);
-             inst.instruction |= (Rd << 8) | (offset >> 2);
-           }
-         else if (Rs == Rd)
-           {
-             if (offset & ~0xff)
-               {
-                 inst.error = _("immediate value out of range");
-                 return;
-               }
-             inst.instruction = subtract ? T_OPCODE_SUB_I8 : T_OPCODE_ADD_I8;
-             inst.instruction |= (Rd << 8) | offset;
-           }
-         else
-           {
-             if (offset & ~0x7)
-               {
-                 inst.error = _("immediate value out of range");
-                 return;
-               }
-             inst.instruction = subtract ? T_OPCODE_SUB_I3 : T_OPCODE_ADD_I3;
-             inst.instruction |= Rd | (Rs << 3) | (offset << 6);
-           }
-       }
-    }
-
-  end_of_line (str);
-}
-
-static void
-thumb_shift (str, shift)
-     char * str;
-     int    shift;
-{
-  int Rd, Rs, Rn = FAIL;
-
-  skip_whitespace (str);
-
-  if ((Rd = thumb_reg (&str, THUMB_REG_LO)) == FAIL
-      || skip_past_comma (&str) == FAIL)
-    {
-      if (! inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (is_immediate_prefix (*str))
-    {
-      /* Two operand immediate format, set Rs to Rd.  */
-      Rs = Rd;
-      str ++;
-      if (my_get_expression (&inst.reloc.exp, &str))
-       return;
-    }
-  else
-    {
-      if ((Rs = thumb_reg (&str, THUMB_REG_LO)) == FAIL)
-       return;
-
-      if (skip_past_comma (&str) == FAIL)
-       {
-         /* Two operand format, shuffle the registers
-            and pretend there are 3.  */
-         Rn = Rs;
-         Rs = Rd;
-       }
-      else if (is_immediate_prefix (*str))
-       {
-         str++;
-         if (my_get_expression (&inst.reloc.exp, &str))
-           return;
-       }
-      else if ((Rn = thumb_reg (&str, THUMB_REG_LO)) == FAIL)
-       return;
-    }
-
-  /* We now have Rd and Rs set to registers, and Rn set to a register or FAIL;
-     for the latter case, EXPR contains the immediate that was found.  */
-
-  if (Rn != FAIL)
-    {
-      if (Rs != Rd)
-       {
-         inst.error = _("source1 and dest must be same register");
-         return;
-       }
-
-      switch (shift)
-       {
-       case THUMB_ASR: inst.instruction = T_OPCODE_ASR_R; break;
-       case THUMB_LSL: inst.instruction = T_OPCODE_LSL_R; break;
-       case THUMB_LSR: inst.instruction = T_OPCODE_LSR_R; break;
-       }
-
-      inst.instruction |= Rd | (Rn << 3);
-    }
-  else
-    {
-      switch (shift)
-       {
-       case THUMB_ASR: inst.instruction = T_OPCODE_ASR_I; break;
-       case THUMB_LSL: inst.instruction = T_OPCODE_LSL_I; break;
-       case THUMB_LSR: inst.instruction = T_OPCODE_LSR_I; break;
-       }
-
-      if (inst.reloc.exp.X_op != O_constant)
-       {
-         /* Value isn't known yet, create a dummy reloc and let reloc
-            hacking fix it up.  */
-         inst.reloc.type = BFD_RELOC_ARM_THUMB_SHIFT;
-       }
-      else
-       {
-         unsigned shift_value = inst.reloc.exp.X_add_number;
-
-         if (shift_value > 32 || (shift_value == 32 && shift == THUMB_LSL))
-           {
-             inst.error = _("Invalid immediate for shift");
-             return;
-           }
-
-         /* Shifts of zero are handled by converting to LSL.  */
-         if (shift_value == 0)
-           inst.instruction = T_OPCODE_LSL_I;
-
-         /* Shifts of 32 are encoded as a shift of zero.  */
-         if (shift_value == 32)
-           shift_value = 0;
-
-         inst.instruction |= shift_value << 6;
-       }
-
-      inst.instruction |= Rd | (Rs << 3);
-    }
-
-  end_of_line (str);
-}
-
-static void
-thumb_mov_compare (str, move)
-     char * str;
-     int    move;
-{
-  int Rd, Rs = FAIL;
-
-  skip_whitespace (str);
-
-  if ((Rd = thumb_reg (&str, THUMB_REG_ANY)) == FAIL
-      || skip_past_comma (&str) == FAIL)
-    {
-      if (! inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (is_immediate_prefix (*str))
-    {
-      str++;
-      if (my_get_expression (&inst.reloc.exp, &str))
-       return;
-    }
-  else if ((Rs = thumb_reg (&str, THUMB_REG_ANY)) == FAIL)
-    return;
-
-  if (Rs != FAIL)
-    {
-      if (Rs < 8 && Rd < 8)
-       {
-         if (move == THUMB_MOVE)
-           /* A move of two lowregs is encoded as ADD Rd, Rs, #0
-              since a MOV instruction produces unpredictable results.  */
-           inst.instruction = T_OPCODE_ADD_I3;
-         else
-           inst.instruction = T_OPCODE_CMP_LR;
-         inst.instruction |= Rd | (Rs << 3);
-       }
-      else
-       {
-         if (move == THUMB_MOVE)
-           inst.instruction = T_OPCODE_MOV_HR;
-         else
-           inst.instruction = T_OPCODE_CMP_HR;
-
-         if (Rd > 7)
-           inst.instruction |= THUMB_H1;
-
-         if (Rs > 7)
-           inst.instruction |= THUMB_H2;
-
-         inst.instruction |= (Rd & 7) | ((Rs & 7) << 3);
-       }
-    }
-  else
-    {
-      if (Rd > 7)
-       {
-         inst.error = _("only lo regs allowed with immediate");
-         return;
-       }
-
-      if (move == THUMB_MOVE)
-       inst.instruction = T_OPCODE_MOV_I8;
-      else
-       inst.instruction = T_OPCODE_CMP_I8;
-
-      inst.instruction |= Rd << 8;
-
-      if (inst.reloc.exp.X_op != O_constant)
-       inst.reloc.type = BFD_RELOC_ARM_THUMB_IMM;
-      else
-       {
-         unsigned value = inst.reloc.exp.X_add_number;
-
-         if (value > 255)
-           {
-             inst.error = _("invalid immediate");
-             return;
-           }
-
-         inst.instruction |= value;
-       }
-    }
-
-  end_of_line (str);
-}
-
-static void
-thumb_load_store (str, load_store, size)
-     char * str;
-     int    load_store;
-     int    size;
-{
-  int Rd, Rb, Ro = FAIL;
-
-  skip_whitespace (str);
-
-  if ((Rd = thumb_reg (&str, THUMB_REG_LO)) == FAIL
-      || skip_past_comma (&str) == FAIL)
-    {
-      if (! inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (*str == '[')
-    {
-      str++;
-      if ((Rb = thumb_reg (&str, THUMB_REG_ANY)) == FAIL)
-       return;
-
-      if (skip_past_comma (&str) != FAIL)
-       {
-         if (is_immediate_prefix (*str))
-           {
-             str++;
-             if (my_get_expression (&inst.reloc.exp, &str))
-               return;
-           }
-         else if ((Ro = thumb_reg (&str, THUMB_REG_LO)) == FAIL)
-           return;
-       }
-      else
-       {
-         inst.reloc.exp.X_op = O_constant;
-         inst.reloc.exp.X_add_number = 0;
-       }
-
-      if (*str != ']')
-       {
-         inst.error = _("expected ']'");
-         return;
-       }
-      str++;
-    }
-  else if (*str == '=')
-    {
-      /* Parse an "ldr Rd, =expr" instruction; this is another pseudo op.  */
-      str++;
-
-      skip_whitespace (str);
-
-      if (my_get_expression (& inst.reloc.exp, & str))
-       return;
-
-      end_of_line (str);
-
-      if (   inst.reloc.exp.X_op != O_constant
-         && inst.reloc.exp.X_op != O_symbol)
-       {
-         inst.error = "Constant expression expected";
-         return;
-       }
-
-      if (inst.reloc.exp.X_op == O_constant
-         && ((inst.reloc.exp.X_add_number & ~0xFF) == 0))
-       {
-         /* This can be done with a mov instruction.  */
-
-         inst.instruction  = T_OPCODE_MOV_I8 | (Rd << 8);
-         inst.instruction |= inst.reloc.exp.X_add_number;
-         return;
-       }
-
-      /* Insert into literal pool.  */
-      if (add_to_lit_pool () == FAIL)
-       {
-         if (!inst.error)
-           inst.error = "literal pool insertion failed";
-         return;
-       }
-
-      inst.reloc.type   = BFD_RELOC_ARM_THUMB_OFFSET;
-      inst.reloc.pc_rel = 1;
-      inst.instruction  = T_OPCODE_LDR_PC | (Rd << 8);
-      /* Adjust ARM pipeline offset to Thumb.  */
-      inst.reloc.exp.X_add_number += 4;
-
-      return;
-    }
-  else
-    {
-      if (my_get_expression (&inst.reloc.exp, &str))
-       return;
-
-      inst.instruction = T_OPCODE_LDR_PC | (Rd << 8);
-      inst.reloc.pc_rel = 1;
-      inst.reloc.exp.X_add_number -= 4; /* Pipeline offset.  */
-      inst.reloc.type = BFD_RELOC_ARM_THUMB_OFFSET;
-      end_of_line (str);
-      return;
-    }
-
-  if (Rb == REG_PC || Rb == REG_SP)
-    {
-      if (size != THUMB_WORD)
-       {
-         inst.error = _("byte or halfword not valid for base register");
-         return;
-       }
-      else if (Rb == REG_PC && load_store != THUMB_LOAD)
-       {
-         inst.error = _("R15 based store not allowed");
-         return;
-       }
-      else if (Ro != FAIL)
-       {
-         inst.error = _("Invalid base register for register offset");
-         return;
-       }
-
-      if (Rb == REG_PC)
-       inst.instruction = T_OPCODE_LDR_PC;
-      else if (load_store == THUMB_LOAD)
-       inst.instruction = T_OPCODE_LDR_SP;
-      else
-       inst.instruction = T_OPCODE_STR_SP;
-
-      inst.instruction |= Rd << 8;
-      if (inst.reloc.exp.X_op == O_constant)
-       {
-         unsigned offset = inst.reloc.exp.X_add_number;
-
-         if (offset & ~0x3fc)
-           {
-             inst.error = _("invalid offset");
-             return;
-           }
-
-         inst.instruction |= offset >> 2;
-       }
-      else
-       inst.reloc.type = BFD_RELOC_ARM_THUMB_OFFSET;
-    }
-  else if (Rb > 7)
-    {
-      inst.error = _("invalid base register in load/store");
-      return;
-    }
-  else if (Ro == FAIL)
-    {
-      /* Immediate offset.  */
-      if (size == THUMB_WORD)
-       inst.instruction = (load_store == THUMB_LOAD
-                           ? T_OPCODE_LDR_IW : T_OPCODE_STR_IW);
-      else if (size == THUMB_HALFWORD)
-       inst.instruction = (load_store == THUMB_LOAD
-                           ? T_OPCODE_LDR_IH : T_OPCODE_STR_IH);
-      else
-       inst.instruction = (load_store == THUMB_LOAD
-                           ? T_OPCODE_LDR_IB : T_OPCODE_STR_IB);
-
-      inst.instruction |= Rd | (Rb << 3);
-
-      if (inst.reloc.exp.X_op == O_constant)
-       {
-         unsigned offset = inst.reloc.exp.X_add_number;
-
-         if (offset & ~(0x1f << size))
-           {
-             inst.error = _("Invalid offset");
-             return;
-           }
-         inst.instruction |= (offset >> size) << 6;
-       }
-      else
-       inst.reloc.type = BFD_RELOC_ARM_THUMB_OFFSET;
-    }
-  else
-    {
-      /* Register offset.  */
-      if (size == THUMB_WORD)
-       inst.instruction = (load_store == THUMB_LOAD
-                           ? T_OPCODE_LDR_RW : T_OPCODE_STR_RW);
-      else if (size == THUMB_HALFWORD)
-       inst.instruction = (load_store == THUMB_LOAD
-                           ? T_OPCODE_LDR_RH : T_OPCODE_STR_RH);
-      else
-       inst.instruction = (load_store == THUMB_LOAD
-                           ? T_OPCODE_LDR_RB : T_OPCODE_STR_RB);
-
-      inst.instruction |= Rd | (Rb << 3) | (Ro << 6);
-    }
-
-  end_of_line (str);
-}
-
-static void
-do_t_nop (str)
-     char * str;
-{
-  /* Do nothing.  */
-  end_of_line (str);
-  return;
-}
-
-/* Handle the Format 4 instructions that do not have equivalents in other
-   formats.  That is, ADC, AND, EOR, SBC, ROR, TST, NEG, CMN, ORR, MUL,
-   BIC and MVN.  */
-
-static void
-do_t_arit (str)
-     char * str;
-{
-  int Rd, Rs, Rn;
-
-  skip_whitespace (str);
-
-  if ((Rd = thumb_reg (&str, THUMB_REG_LO)) == FAIL
-      || skip_past_comma (&str) == FAIL
-      || (Rs = thumb_reg (&str, THUMB_REG_LO)) == FAIL)
-    {
-      inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (skip_past_comma (&str) != FAIL)
-    {
-      /* Three operand format not allowed for TST, CMN, NEG and MVN.
-        (It isn't allowed for CMP either, but that isn't handled by this
-        function.)  */
-      if (inst.instruction == T_OPCODE_TST
-         || inst.instruction == T_OPCODE_CMN
-         || inst.instruction == T_OPCODE_NEG
-         || inst.instruction == T_OPCODE_MVN)
-       {
-         inst.error = BAD_ARGS;
-         return;
-       }
-
-      if ((Rn = thumb_reg (&str, THUMB_REG_LO)) == FAIL)
-       return;
-
-      if (Rs != Rd)
-       {
-         inst.error = _("dest and source1 must be the same register");
-         return;
-       }
-      Rs = Rn;
-    }
-
-  if (inst.instruction == T_OPCODE_MUL
-      && Rs == Rd)
-    as_tsktsk (_("Rs and Rd must be different in MUL"));
-
-  inst.instruction |= Rd | (Rs << 3);
-  end_of_line (str);
-}
-
-static void
-do_t_add (str)
-     char * str;
-{
-  thumb_add_sub (str, 0);
-}
-
-static void
-do_t_asr (str)
-     char * str;
-{
-  thumb_shift (str, THUMB_ASR);
-}
-
-static void
-do_t_branch9 (str)
-     char * str;
-{
-  if (my_get_expression (&inst.reloc.exp, &str))
-    return;
-  inst.reloc.type = BFD_RELOC_THUMB_PCREL_BRANCH9;
-  inst.reloc.pc_rel = 1;
-  end_of_line (str);
-}
-
-static void
-do_t_branch12 (str)
-     char * str;
-{
-  if (my_get_expression (&inst.reloc.exp, &str))
-    return;
-  inst.reloc.type = BFD_RELOC_THUMB_PCREL_BRANCH12;
-  inst.reloc.pc_rel = 1;
-  end_of_line (str);
-}
-
-/* Find the real, Thumb encoded start of a Thumb function.  */
-
-static symbolS *
-find_real_start (symbolP)
-     symbolS * symbolP;
-{
-  char *       real_start;
-  const char * name = S_GET_NAME (symbolP);
-  symbolS *    new_target;
-
-  /* This definiton must agree with the one in gcc/config/arm/thumb.c.  */
-#define STUB_NAME ".real_start_of"
-
-  if (name == NULL)
-    abort ();
-
-  /* Names that start with '.' are local labels, not function entry points.
-     The compiler may generate BL instructions to these labels because it
-     needs to perform a branch to a far away location.  */
-  if (name[0] == '.')
-    return symbolP;
-
-  real_start = malloc (strlen (name) + strlen (STUB_NAME) + 1);
-  sprintf (real_start, "%s%s", STUB_NAME, name);
-
-  new_target = symbol_find (real_start);
-
-  if (new_target == NULL)
-    {
-      as_warn ("Failed to find real start of function: %s\n", name);
-      new_target = symbolP;
-    }
-
-  free (real_start);
-
-  return new_target;
-}
-
-static void
-do_t_branch23 (str)
-     char * str;
-{
-  if (my_get_expression (& inst.reloc.exp, & str))
-    return;
-
-  inst.reloc.type   = BFD_RELOC_THUMB_PCREL_BRANCH23;
-  inst.reloc.pc_rel = 1;
-  end_of_line (str);
-
-  /* If the destination of the branch is a defined symbol which does not have
-     the THUMB_FUNC attribute, then we must be calling a function which has
-     the (interfacearm) attribute.  We look for the Thumb entry point to that
-     function and change the branch to refer to that function instead.  */
-  if (   inst.reloc.exp.X_op == O_symbol
-      && inst.reloc.exp.X_add_symbol != NULL
-      && S_IS_DEFINED (inst.reloc.exp.X_add_symbol)
-      && ! THUMB_IS_FUNC (inst.reloc.exp.X_add_symbol))
-    inst.reloc.exp.X_add_symbol =
-      find_real_start (inst.reloc.exp.X_add_symbol);
-}
-
-static void
-do_t_bx (str)
-     char * str;
-{
-  int reg;
-
-  skip_whitespace (str);
-
-  if ((reg = thumb_reg (&str, THUMB_REG_ANY)) == FAIL)
-    return;
-
-  /* This sets THUMB_H2 from the top bit of reg.  */
-  inst.instruction |= reg << 3;
-
-  /* ??? FIXME: Should add a hacky reloc here if reg is REG_PC.  The reloc
-     should cause the alignment to be checked once it is known.  This is
-     because BX PC only works if the instruction is word aligned.  */
-
-  end_of_line (str);
-}
-
-static void
-do_t_compare (str)
-     char * str;
-{
-  thumb_mov_compare (str, THUMB_COMPARE);
-}
-
-static void
-do_t_ldmstm (str)
-     char * str;
-{
-  int Rb;
-  long range;
-
-  skip_whitespace (str);
-
-  if ((Rb = thumb_reg (&str, THUMB_REG_LO)) == FAIL)
-    return;
-
-  if (*str != '!')
-    as_warn (_("Inserted missing '!': load/store multiple always writes back base register"));
-  else
-    str++;
-
-  if (skip_past_comma (&str) == FAIL
-      || (range = reg_list (&str)) == FAIL)
-    {
-      if (! inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (inst.reloc.type != BFD_RELOC_NONE)
-    {
-      /* This really doesn't seem worth it.  */
-      inst.reloc.type = BFD_RELOC_NONE;
-      inst.error = _("Expression too complex");
-      return;
-    }
-
-  if (range & ~0xff)
-    {
-      inst.error = _("only lo-regs valid in load/store multiple");
-      return;
-    }
-
-  inst.instruction |= (Rb << 8) | range;
-  end_of_line (str);
-}
-
-static void
-do_t_ldr (str)
-     char * str;
-{
-  thumb_load_store (str, THUMB_LOAD, THUMB_WORD);
-}
-
-static void
-do_t_ldrb (str)
-     char * str;
-{
-  thumb_load_store (str, THUMB_LOAD, THUMB_BYTE);
-}
-
-static void
-do_t_ldrh (str)
-     char * str;
-{
-  thumb_load_store (str, THUMB_LOAD, THUMB_HALFWORD);
-}
-
-static void
-do_t_lds (str)
-     char * str;
-{
-  int Rd, Rb, Ro;
-
-  skip_whitespace (str);
-
-  if ((Rd = thumb_reg (&str, THUMB_REG_LO)) == FAIL
-      || skip_past_comma (&str) == FAIL
-      || *str++ != '['
-      || (Rb = thumb_reg (&str, THUMB_REG_LO)) == FAIL
-      || skip_past_comma (&str) == FAIL
-      || (Ro = thumb_reg (&str, THUMB_REG_LO)) == FAIL
-      || *str++ != ']')
-    {
-      if (! inst.error)
-       inst.error = _("Syntax: ldrs[b] Rd, [Rb, Ro]");
-      return;
-    }
-
-  inst.instruction |= Rd | (Rb << 3) | (Ro << 6);
-  end_of_line (str);
-}
-
-static void
-do_t_lsl (str)
-     char * str;
-{
-  thumb_shift (str, THUMB_LSL);
-}
-
-static void
-do_t_lsr (str)
-     char * str;
-{
-  thumb_shift (str, THUMB_LSR);
-}
-
-static void
-do_t_mov (str)
-     char * str;
-{
-  thumb_mov_compare (str, THUMB_MOVE);
-}
-
-static void
-do_t_push_pop (str)
-     char * str;
-{
-  long range;
-
-  skip_whitespace (str);
-
-  if ((range = reg_list (&str)) == FAIL)
-    {
-      if (! inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  if (inst.reloc.type != BFD_RELOC_NONE)
-    {
-      /* This really doesn't seem worth it.  */
-      inst.reloc.type = BFD_RELOC_NONE;
-      inst.error = _("Expression too complex");
-      return;
-    }
-
-  if (range & ~0xff)
-    {
-      if ((inst.instruction == T_OPCODE_PUSH
-          && (range & ~0xff) == 1 << REG_LR)
-         || (inst.instruction == T_OPCODE_POP
-             && (range & ~0xff) == 1 << REG_PC))
-       {
-         inst.instruction |= THUMB_PP_PC_LR;
-         range &= 0xff;
-       }
-      else
-       {
-         inst.error = _("invalid register list to push/pop instruction");
-         return;
-       }
-    }
-
-  inst.instruction |= range;
-  end_of_line (str);
-}
-
-static void
-do_t_str (str)
-     char * str;
-{
-  thumb_load_store (str, THUMB_STORE, THUMB_WORD);
-}
-
-static void
-do_t_strb (str)
-     char * str;
-{
-  thumb_load_store (str, THUMB_STORE, THUMB_BYTE);
-}
-
-static void
-do_t_strh (str)
-     char * str;
-{
-  thumb_load_store (str, THUMB_STORE, THUMB_HALFWORD);
-}
-
-static void
-do_t_sub (str)
-     char * str;
-{
-  thumb_add_sub (str, 1);
-}
-
-static void
-do_t_swi (str)
-     char * str;
-{
-  skip_whitespace (str);
-
-  if (my_get_expression (&inst.reloc.exp, &str))
-    return;
-
-  inst.reloc.type = BFD_RELOC_ARM_SWI;
-  end_of_line (str);
-  return;
-}
-
-static void
-do_t_adr (str)
-     char * str;
-{
-  int reg;
-
-  /* This is a pseudo-op of the form "adr rd, label" to be converted
-     into a relative address of the form "add rd, pc, #label-.-4".  */
-  skip_whitespace (str);
-
-  /* Store Rd in temporary location inside instruction.  */
-  if ((reg = reg_required_here (&str, 4)) == FAIL
-      || (reg > 7)  /* For Thumb reg must be r0..r7.  */
-      || skip_past_comma (&str) == FAIL
-      || my_get_expression (&inst.reloc.exp, &str))
-    {
-      if (!inst.error)
-       inst.error = BAD_ARGS;
-      return;
-    }
-
-  inst.reloc.type = BFD_RELOC_ARM_THUMB_ADD;
-  inst.reloc.exp.X_add_number -= 4; /* PC relative adjust.  */
-  inst.reloc.pc_rel = 1;
-  inst.instruction |= REG_PC; /* Rd is already placed into the instruction.  */
-
-  end_of_line (str);
-}
-
-static void
-insert_reg (entry)
-     int entry;
-{
-  int    len  = strlen (reg_table[entry].name) + 2;
-  char * buf  = (char *) xmalloc (len);
-  char * buf2 = (char *) xmalloc (len);
-  int    i    = 0;
-
-#ifdef REGISTER_PREFIX
-  buf[i++] = REGISTER_PREFIX;
-#endif
-
-  strcpy (buf + i, reg_table[entry].name);
-
-  for (i = 0; buf[i]; i++)
-    buf2[i] = islower (buf[i]) ? toupper (buf[i]) : buf[i];
-
-  buf2[i] = '\0';
-
-  hash_insert (arm_reg_hsh, buf,  (PTR) & reg_table[entry]);
-  hash_insert (arm_reg_hsh, buf2, (PTR) & reg_table[entry]);
-}
-
-static void
-insert_reg_alias (str, regnum)
-     char *str;
-     int regnum;
-{
-  struct reg_entry *new =
-    (struct reg_entry *) xmalloc (sizeof (struct reg_entry));
-  char *name = xmalloc (strlen (str) + 1);
-  strcpy (name, str);
-
-  new->name = name;
-  new->number = regnum;
-
-  hash_insert (arm_reg_hsh, name, (PTR) new);
-}
-
-static void
-set_constant_flonums ()
-{
-  int i;
-
-  for (i = 0; i < NUM_FLOAT_VALS; i++)
-    if (atof_ieee ((char *) fp_const[i], 'x', fp_values[i]) == NULL)
-      abort ();
-}
-
-void
-md_begin ()
-{
-  unsigned mach;
-  unsigned int i;
-
-  if (   (arm_ops_hsh = hash_new ()) == NULL
-      || (arm_tops_hsh = hash_new ()) == NULL
-      || (arm_cond_hsh = hash_new ()) == NULL
-      || (arm_shift_hsh = hash_new ()) == NULL
-      || (arm_reg_hsh = hash_new ()) == NULL
-      || (arm_psr_hsh = hash_new ()) == NULL)
-    as_fatal (_("Virtual memory exhausted"));
-
-  for (i = 0; i < sizeof (insns) / sizeof (struct asm_opcode); i++)
-    hash_insert (arm_ops_hsh, insns[i].template, (PTR) (insns + i));
-  for (i = 0; i < sizeof (tinsns) / sizeof (struct thumb_opcode); i++)
-    hash_insert (arm_tops_hsh, tinsns[i].template, (PTR) (tinsns + i));
-  for (i = 0; i < sizeof (conds) / sizeof (struct asm_cond); i++)
-    hash_insert (arm_cond_hsh, conds[i].template, (PTR) (conds + i));
-  for (i = 0; i < sizeof (shift_names) / sizeof (struct asm_shift_name); i++)
-    hash_insert (arm_shift_hsh, shift_names[i].name, (PTR) (shift_names + i));
-  for (i = 0; i < sizeof (psrs) / sizeof (struct asm_psr); i++)
-    hash_insert (arm_psr_hsh, psrs[i].template, (PTR) (psrs + i));
-
-  for (i = 0; reg_table[i].name; i++)
-    insert_reg (i);
-
-  set_constant_flonums ();
-
-#if defined OBJ_COFF || defined OBJ_ELF
-  {
-    unsigned int flags = 0;
-
-    /* Set the flags in the private structure.  */
-    if (uses_apcs_26)      flags |= F_APCS26;
-    if (support_interwork) flags |= F_INTERWORK;
-    if (uses_apcs_float)   flags |= F_APCS_FLOAT;
-    if (pic_code)          flags |= F_PIC;
-    if ((cpu_variant & FPU_ALL) == FPU_NONE) flags |= F_SOFT_FLOAT;
-
-    bfd_set_private_flags (stdoutput, flags);
-
-    /* We have run out flags in the COFF header to encode the
-       status of ATPCS support, so instead we create a dummy,
-       empty, debug section called .arm.atpcs.  */
-    if (atpcs)
-      {
-       asection * sec;
-
-       sec = bfd_make_section (stdoutput, ".arm.atpcs");
-
-       if (sec != NULL)
-         {
-           bfd_set_section_flags
-             (stdoutput, sec, SEC_READONLY | SEC_DEBUGGING /* | SEC_HAS_CONTENTS */);
-           bfd_set_section_size (stdoutput, sec, 0);
-           bfd_set_section_contents (stdoutput, sec, NULL, 0, 0);
-         }
-      }
-  }
-#endif
-
-  /* Record the CPU type as well.  */
-  switch (cpu_variant & ARM_CPU_MASK)
-    {
-    case ARM_2:
-      mach = bfd_mach_arm_2;
-      break;
-
-    case ARM_3:                /* Also ARM_250.  */
-      mach = bfd_mach_arm_2a;
-      break;
-
-    default:
-    case ARM_6 | ARM_3 | ARM_2:        /* Actually no CPU type defined.  */
-      mach = bfd_mach_arm_4;
-      break;
-
-    case ARM_7:                /* Also ARM_6.  */
-      mach = bfd_mach_arm_3;
-      break;
-    }
-
-  /* Catch special cases.  */
-  if (cpu_variant & ARM_EXT_XSCALE)
-    mach = bfd_mach_arm_XScale;
-  else if (cpu_variant & ARM_EXT_V5E)
-    mach = bfd_mach_arm_5TE;
-  else if (cpu_variant & ARM_EXT_V5)
-    {
-      if (cpu_variant & ARM_EXT_THUMB)
-       mach = bfd_mach_arm_5T;
-      else
-       mach = bfd_mach_arm_5;
-    }
-  else if (cpu_variant & ARM_EXT_HALFWORD)
-    {
-      if (cpu_variant & ARM_EXT_THUMB)
-       mach = bfd_mach_arm_4T;
-      else
-       mach = bfd_mach_arm_4;
-    }
-  else if (cpu_variant & ARM_EXT_LONGMUL)
-    mach = bfd_mach_arm_3M;
-
-  bfd_set_arch_mach (stdoutput, TARGET_ARCH, mach);
-}
-
-/* Turn an integer of n bytes (in val) into a stream of bytes appropriate
-   for use in the a.out file, and stores them in the array pointed to by buf.
-   This knows about the endian-ness of the target machine and does
-   THE RIGHT THING, whatever it is.  Possible values for n are 1 (byte)
-   2 (short) and 4 (long)  Floating numbers are put out as a series of
-   LITTLENUMS (shorts, here at least).  */
-
-void
-md_number_to_chars (buf, val, n)
-     char * buf;
-     valueT val;
-     int    n;
-{
-  if (target_big_endian)
-    number_to_chars_bigendian (buf, val, n);
-  else
-    number_to_chars_littleendian (buf, val, n);
-}
-
-static valueT
-md_chars_to_number (buf, n)
-     char * buf;
-     int    n;
-{
-  valueT result = 0;
-  unsigned char * where = (unsigned char *) buf;
-
-  if (target_big_endian)
-    {
-      while (n--)
-       {
-         result <<= 8;
-         result |= (*where++ & 255);
-       }
-    }
-  else
-    {
-      while (n--)
-       {
-         result <<= 8;
-         result |= (where[n] & 255);
-       }
-    }
-
-  return result;
-}
-
-/* Turn a string in input_line_pointer into a floating point constant
-   of type TYPE, and store the appropriate bytes in *LITP.  The number
-   of LITTLENUMS emitted is stored in *SIZEP.  An error message is
-   returned, or NULL on OK.
-
-   Note that fp constants aren't represent in the normal way on the ARM.
-   In big endian mode, things are as expected.  However, in little endian
-   mode fp constants are big-endian word-wise, and little-endian byte-wise
-   within the words.  For example, (double) 1.1 in big endian mode is
-   the byte sequence 3f f1 99 99 99 99 99 9a, and in little endian mode is
-   the byte sequence 99 99 f1 3f 9a 99 99 99.
-
-   ??? The format of 12 byte floats is uncertain according to gcc's arm.h.  */
-
-char *
-md_atof (type, litP, sizeP)
-     char   type;
-     char * litP;
-     int *  sizeP;
-{
-  int prec;
-  LITTLENUM_TYPE words[MAX_LITTLENUMS];
-  char *t;
-  int i;
-
-  switch (type)
-    {
-    case 'f':
-    case 'F':
-    case 's':
-    case 'S':
-      prec = 2;
-      break;
-
-    case 'd':
-    case 'D':
-    case 'r':
-    case 'R':
-      prec = 4;
-      break;
-
-    case 'x':
-    case 'X':
-      prec = 6;
-      break;
-
-    case 'p':
-    case 'P':
-      prec = 6;
-      break;
-
-    default:
-      *sizeP = 0;
-      return _("Bad call to MD_ATOF()");
-    }
-
-  t = atof_ieee (input_line_pointer, type, words);
-  if (t)
-    input_line_pointer = t;
-  *sizeP = prec * 2;
-
-  if (target_big_endian)
-    {
-      for (i = 0; i < prec; i++)
-       {
-         md_number_to_chars (litP, (valueT) words[i], 2);
-         litP += 2;
-       }
-    }
-  else
-    {
-      /* For a 4 byte float the order of elements in `words' is 1 0.  For an
-        8 byte float the order is 1 0 3 2.  */
-      for (i = 0; i < prec; i += 2)
-       {
-         md_number_to_chars (litP, (valueT) words[i + 1], 2);
-         md_number_to_chars (litP + 2, (valueT) words[i], 2);
-         litP += 4;
-       }
-    }
-
-  return 0;
-}
-
-/* The knowledge of the PC's pipeline offset is built into the insns
-   themselves.  */
-
-long
-md_pcrel_from (fixP)
-     fixS * fixP;
-{
-  if (fixP->fx_addsy
-      && S_GET_SEGMENT (fixP->fx_addsy) == undefined_section
-      && fixP->fx_subsy == NULL)
-    return 0;
-
-  if (fixP->fx_pcrel && (fixP->fx_r_type == BFD_RELOC_ARM_THUMB_ADD))
-    {
-      /* PC relative addressing on the Thumb is slightly odd
-        as the bottom two bits of the PC are forced to zero
-        for the calculation.  */
-      return (fixP->fx_where + fixP->fx_frag->fr_address) & ~3;
-    }
-
-#ifdef TE_WINCE
-  /* The pattern was adjusted to accomodate CE's off-by-one fixups,
-     so we un-adjust here to compensate for the accomodation.  */
-  return fixP->fx_where + fixP->fx_frag->fr_address + 8;
-#else
-  return fixP->fx_where + fixP->fx_frag->fr_address;
-#endif
-}
-
-/* Round up a section size to the appropriate boundary.  */
-
-valueT
-md_section_align (segment, size)
-     segT   segment ATTRIBUTE_UNUSED;
-     valueT size;
-{
-#ifdef OBJ_ELF
-  return size;
-#else
-  /* Round all sects to multiple of 4.  */
-  return (size + 3) & ~3;
-#endif
-}
-
-/* Under ELF we need to default _GLOBAL_OFFSET_TABLE.
-   Otherwise we have no need to default values of symbols.  */
-
-symbolS *
-md_undefined_symbol (name)
-     char * name ATTRIBUTE_UNUSED;
-{
-#ifdef OBJ_ELF
-  if (name[0] == '_' && name[1] == 'G'
-      && streq (name, GLOBAL_OFFSET_TABLE_NAME))
-    {
-      if (!GOT_symbol)
-       {
-         if (symbol_find (name))
-           as_bad ("GOT already in the symbol table");
-
-         GOT_symbol = symbol_new (name, undefined_section,
-                                  (valueT) 0, & zero_address_frag);
-       }
-
-      return GOT_symbol;
-    }
-#endif
-
-  return 0;
-}
-
-/* arm_reg_parse () := if it looks like a register, return its token and
-   advance the pointer.  */
-
-static int
-arm_reg_parse (ccp)
-     register char ** ccp;
-{
-  char * start = * ccp;
-  char   c;
-  char * p;
-  struct reg_entry * reg;
-
-#ifdef REGISTER_PREFIX
-  if (*start != REGISTER_PREFIX)
-    return FAIL;
-  p = start + 1;
-#else
-  p = start;
-#ifdef OPTIONAL_REGISTER_PREFIX
-  if (*p == OPTIONAL_REGISTER_PREFIX)
-    p++, start++;
-#endif
-#endif
-  if (!isalpha (*p) || !is_name_beginner (*p))
-    return FAIL;
-
-  c = *p++;
-  while (isalpha (c) || isdigit (c) || c == '_')
-    c = *p++;
-
-  *--p = 0;
-  reg = (struct reg_entry *) hash_find (arm_reg_hsh, start);
-  *p = c;
-
-  if (reg)
-    {
-      *ccp = p;
-      return reg->number;
-    }
-
-  return FAIL;
-}
-
-int
-md_apply_fix3 (fixP, val, seg)
-     fixS *   fixP;
-     valueT * val;
-     segT     seg;
-{
-  offsetT        value = * val;
-  offsetT        newval;
-  unsigned int   newimm;
-  unsigned long  temp;
-  int            sign;
-  char *         buf = fixP->fx_where + fixP->fx_frag->fr_literal;
-  arm_fix_data * arm_data = (arm_fix_data *) fixP->tc_fix_data;
-
-  assert (fixP->fx_r_type < BFD_RELOC_UNUSED);
-
-  /* Note whether this will delete the relocation.  */
-#if 0
-  /* Patch from REarnshaw to JDavis (disabled for the moment, since it
-     doesn't work fully.)  */
-  if ((fixP->fx_addsy == 0 || symbol_constant_p (fixP->fx_addsy))
-      && !fixP->fx_pcrel)
-#else
-  if (fixP->fx_addsy == 0 && !fixP->fx_pcrel)
-#endif
-    fixP->fx_done = 1;
-
-  /* If this symbol is in a different section then we need to leave it for
-     the linker to deal with.  Unfortunately, md_pcrel_from can't tell,
-     so we have to undo it's effects here.  */
-  if (fixP->fx_pcrel)
-    {
-      if (fixP->fx_addsy != NULL
-         && S_IS_DEFINED (fixP->fx_addsy)
-         && S_GET_SEGMENT (fixP->fx_addsy) != seg)
-       {
-         if (target_oabi
-             && (fixP->fx_r_type == BFD_RELOC_ARM_PCREL_BRANCH
-                 || fixP->fx_r_type == BFD_RELOC_ARM_PCREL_BLX
-                 ))
-           value = 0;
-         else
-           value += md_pcrel_from (fixP);
-       }
-    }
-
-  /* Remember value for emit_reloc.  */
-  fixP->fx_addnumber = value;
-
-  switch (fixP->fx_r_type)
-    {
-    case BFD_RELOC_ARM_IMMEDIATE:
-      newimm = validate_immediate (value);
-      temp = md_chars_to_number (buf, INSN_SIZE);
-
-      /* If the instruction will fail, see if we can fix things up by
-        changing the opcode.  */
-      if (newimm == (unsigned int) FAIL
-         && (newimm = negate_data_op (&temp, value)) == (unsigned int) FAIL)
-       {
-         as_bad_where (fixP->fx_file, fixP->fx_line,
-                       _("invalid constant (%lx) after fixup"),
-                       (unsigned long) value);
-         break;
-       }
-
-      newimm |= (temp & 0xfffff000);
-      md_number_to_chars (buf, (valueT) newimm, INSN_SIZE);
-      break;
-
-    case BFD_RELOC_ARM_ADRL_IMMEDIATE:
-      {
-       unsigned int highpart = 0;
-       unsigned int newinsn  = 0xe1a00000; /* nop.  */
-       newimm = validate_immediate (value);
-       temp = md_chars_to_number (buf, INSN_SIZE);
-
-       /* If the instruction will fail, see if we can fix things up by
-          changing the opcode.  */
-       if (newimm == (unsigned int) FAIL
-           && (newimm = negate_data_op (& temp, value)) == (unsigned int) FAIL)
-         {
-           /* No ?  OK - try using two ADD instructions to generate
-               the value.  */
-           newimm = validate_immediate_twopart (value, & highpart);
-
-           /* Yes - then make sure that the second instruction is
-               also an add.  */
-           if (newimm != (unsigned int) FAIL)
-             newinsn = temp;
-           /* Still No ?  Try using a negated value.  */
-           else if ((newimm = validate_immediate_twopart (- value, & highpart)) != (unsigned int) FAIL)
-             temp = newinsn = (temp & OPCODE_MASK) | OPCODE_SUB << DATA_OP_SHIFT;
-           /* Otherwise - give up.  */
-           else
-             {
-               as_bad_where (fixP->fx_file, fixP->fx_line,
-                             _("Unable to compute ADRL instructions for PC offset of 0x%lx"),
-                             value);
-               break;
-             }
-
-           /* Replace the first operand in the 2nd instruction (which
-              is the PC) with the destination register.  We have
-              already added in the PC in the first instruction and we
-              do not want to do it again.  */
-           newinsn &= ~ 0xf0000;
-           newinsn |= ((newinsn & 0x0f000) << 4);
-         }
-
-       newimm |= (temp & 0xfffff000);
-       md_number_to_chars (buf, (valueT) newimm, INSN_SIZE);
-
-       highpart |= (newinsn & 0xfffff000);
-       md_number_to_chars (buf + INSN_SIZE, (valueT) highpart, INSN_SIZE);
-      }
-      break;
-
-    case BFD_RELOC_ARM_OFFSET_IMM:
-      sign = value >= 0;
-
-      if (value < 0)
-       value = - value;
-
-      if (validate_offset_imm (value, 0) == FAIL)
-       {
-         as_bad_where (fixP->fx_file, fixP->fx_line,
-                       _("bad immediate value for offset (%ld)"),
-                       (long) value);
-         break;
-       }
-
-      newval = md_chars_to_number (buf, INSN_SIZE);
-      newval &= 0xff7ff000;
-      newval |= value | (sign ? INDEX_UP : 0);
-      md_number_to_chars (buf, newval, INSN_SIZE);
-      break;
-
-    case BFD_RELOC_ARM_OFFSET_IMM8:
-    case BFD_RELOC_ARM_HWLITERAL:
-      sign = value >= 0;
-
-      if (value < 0)
-       value = - value;
-
-      if (validate_offset_imm (value, 1) == FAIL)
-       {
-         if (fixP->fx_r_type == BFD_RELOC_ARM_HWLITERAL)
-           as_bad_where (fixP->fx_file, fixP->fx_line,
-                         _("invalid literal constant: pool needs to be closer"));
-         else
-           as_bad (_("bad immediate value for half-word offset (%ld)"),
-                   (long) value);
-         break;
-       }
-
-      newval = md_chars_to_number (buf, INSN_SIZE);
-      newval &= 0xff7ff0f0;
-      newval |= ((value >> 4) << 8) | (value & 0xf) | (sign ? INDEX_UP : 0);
-      md_number_to_chars (buf, newval, INSN_SIZE);
-      break;
-
-    case BFD_RELOC_ARM_LITERAL:
-      sign = value >= 0;
-
-      if (value < 0)
-       value = - value;
-
-      if (validate_offset_imm (value, 0) == FAIL)
-       {
-         as_bad_where (fixP->fx_file, fixP->fx_line,
-                       _("invalid literal constant: pool needs to be closer"));
-         break;
-       }
-
-      newval = md_chars_to_number (buf, INSN_SIZE);
-      newval &= 0xff7ff000;
-      newval |= value | (sign ? INDEX_UP : 0);
-      md_number_to_chars (buf, newval, INSN_SIZE);
-      break;
-
-    case BFD_RELOC_ARM_SHIFT_IMM:
-      newval = md_chars_to_number (buf, INSN_SIZE);
-      if (((unsigned long) value) > 32
-         || (value == 32
-             && (((newval & 0x60) == 0) || (newval & 0x60) == 0x60)))
-       {
-         as_bad_where (fixP->fx_file, fixP->fx_line,
-                       _("shift expression is too large"));
-         break;
-       }
-
-      if (value == 0)
-       /* Shifts of zero must be done as lsl.  */
-       newval &= ~0x60;
-      else if (value == 32)
-       value = 0;
-      newval &= 0xfffff07f;
-      newval |= (value & 0x1f) << 7;
-      md_number_to_chars (buf, newval, INSN_SIZE);
-      break;
-
-    case BFD_RELOC_ARM_SWI:
-      if (arm_data->thumb_mode)
-       {
-         if (((unsigned long) value) > 0xff)
-           as_bad_where (fixP->fx_file, fixP->fx_line,
-                         _("Invalid swi expression"));
-         newval = md_chars_to_number (buf, THUMB_SIZE) & 0xff00;
-         newval |= value;
-         md_number_to_chars (buf, newval, THUMB_SIZE);
-       }
-      else
-       {
-         if (((unsigned long) value) > 0x00ffffff)
-           as_bad_where (fixP->fx_file, fixP->fx_line,
-                         _("Invalid swi expression"));
-         newval = md_chars_to_number (buf, INSN_SIZE) & 0xff000000;
-         newval |= value;
-         md_number_to_chars (buf, newval, INSN_SIZE);
-       }
-      break;
-
-    case BFD_RELOC_ARM_MULTI:
-      if (((unsigned long) value) > 0xffff)
-       as_bad_where (fixP->fx_file, fixP->fx_line,
-                     _("Invalid expression in load/store multiple"));
-      newval = value | md_chars_to_number (buf, INSN_SIZE);
-      md_number_to_chars (buf, newval, INSN_SIZE);
-      break;
-
-    case BFD_RELOC_ARM_PCREL_BRANCH:
-      newval = md_chars_to_number (buf, INSN_SIZE);
-
-      /* Sign-extend a 24-bit number.  */
-#define SEXT24(x)      ((((x) & 0xffffff) ^ (~ 0x7fffff)) + 0x800000)
-
-#ifdef OBJ_ELF
-      if (! target_oabi)
-       value = fixP->fx_offset;
-#endif
-
-      /* We are going to store value (shifted right by two) in the
-        instruction, in a 24 bit, signed field.  Thus we need to check
-        that none of the top 8 bits of the shifted value (top 7 bits of
-         the unshifted, unsigned value) are set, or that they are all set.  */
-      if ((value & ~ ((offsetT) 0x1ffffff)) != 0
-         && ((value & ~ ((offsetT) 0x1ffffff)) != ~ ((offsetT) 0x1ffffff)))
-       {
-#ifdef OBJ_ELF
-         /* Normally we would be stuck at this point, since we cannot store
-            the absolute address that is the destination of the branch in the
-            24 bits of the branch instruction.  If however, we happen to know
-            that the destination of the branch is in the same section as the
-            branch instruciton itself, then we can compute the relocation for
-            ourselves and not have to bother the linker with it.
-
-            FIXME: The tests for OBJ_ELF and ! target_oabi are only here
-            because I have not worked out how to do this for OBJ_COFF or
-            target_oabi.  */
-         if (! target_oabi
-             && fixP->fx_addsy != NULL
-             && S_IS_DEFINED (fixP->fx_addsy)
-             && S_GET_SEGMENT (fixP->fx_addsy) == seg)
-           {
-             /* Get pc relative value to go into the branch.  */
-             value = * val;
-
-             /* Permit a backward branch provided that enough bits
-                are set.  Allow a forwards branch, provided that
-                enough bits are clear.  */
-             if (   (value & ~ ((offsetT) 0x1ffffff)) == ~ ((offsetT) 0x1ffffff)
-                 || (value & ~ ((offsetT) 0x1ffffff)) == 0)
-               fixP->fx_done = 1;
-           }
-
-         if (! fixP->fx_done)
-#endif
-           as_bad_where (fixP->fx_file, fixP->fx_line,
-                         _("gas can't handle same-section branch dest >= 0x04000000"));
-       }
-
-      value >>= 2;
-      value += SEXT24 (newval);
-
-      if (    (value & ~ ((offsetT) 0xffffff)) != 0
-         && ((value & ~ ((offsetT) 0xffffff)) != ~ ((offsetT) 0xffffff)))
-       as_bad_where (fixP->fx_file, fixP->fx_line,
-                     _("out of range branch"));
-
-      newval = (value & 0x00ffffff) | (newval & 0xff000000);
-      md_number_to_chars (buf, newval, INSN_SIZE);
-      break;
-
-    case BFD_RELOC_ARM_PCREL_BLX:
-      {
-       offsetT hbit;
-       newval = md_chars_to_number (buf, INSN_SIZE);
-
-#ifdef OBJ_ELF
-       if (! target_oabi)
-         value = fixP->fx_offset;
-#endif
-       hbit   = (value >> 1) & 1;
-       value  = (value >> 2) & 0x00ffffff;
-       value  = (value + (newval & 0x00ffffff)) & 0x00ffffff;
-       newval = value | (newval & 0xfe000000) | (hbit << 24);
-       md_number_to_chars (buf, newval, INSN_SIZE);
-      }
-      break;
-
-    case BFD_RELOC_THUMB_PCREL_BRANCH9: /* Conditional branch.  */
-      newval = md_chars_to_number (buf, THUMB_SIZE);
-      {
-       addressT diff = (newval & 0xff) << 1;
-       if (diff & 0x100)
-         diff |= ~0xff;
-
-       value += diff;
-       if ((value & ~0xff) && ((value & ~0xff) != ~0xff))
-         as_bad_where (fixP->fx_file, fixP->fx_line,
-                       _("Branch out of range"));
-       newval = (newval & 0xff00) | ((value & 0x1ff) >> 1);
-      }
-      md_number_to_chars (buf, newval, THUMB_SIZE);
-      break;
-
-    case BFD_RELOC_THUMB_PCREL_BRANCH12: /* Unconditional branch.  */
-      newval = md_chars_to_number (buf, THUMB_SIZE);
-      {
-       addressT diff = (newval & 0x7ff) << 1;
-       if (diff & 0x800)
-         diff |= ~0x7ff;
-
-       value += diff;
-       if ((value & ~0x7ff) && ((value & ~0x7ff) != ~0x7ff))
-         as_bad_where (fixP->fx_file, fixP->fx_line,
-                       _("Branch out of range"));
-       newval = (newval & 0xf800) | ((value & 0xfff) >> 1);
-      }
-      md_number_to_chars (buf, newval, THUMB_SIZE);
-      break;
-
-    case BFD_RELOC_THUMB_PCREL_BLX:
-    case BFD_RELOC_THUMB_PCREL_BRANCH23:
-      {
-       offsetT newval2;
-       addressT diff;
-
-       newval  = md_chars_to_number (buf, THUMB_SIZE);
-       newval2 = md_chars_to_number (buf + THUMB_SIZE, THUMB_SIZE);
-       diff = ((newval & 0x7ff) << 12) | ((newval2 & 0x7ff) << 1);
-       if (diff & 0x400000)
-         diff |= ~0x3fffff;
-#ifdef OBJ_ELF
-       value = fixP->fx_offset;
-#endif
-       value += diff;
-       if ((value & ~0x3fffff) && ((value & ~0x3fffff) != ~0x3fffff))
-         as_bad_where (fixP->fx_file, fixP->fx_line,
-                       _("Branch with link out of range"));
-
-       newval  = (newval  & 0xf800) | ((value & 0x7fffff) >> 12);
-       newval2 = (newval2 & 0xf800) | ((value & 0xfff) >> 1);
-       if (fixP->fx_r_type == BFD_RELOC_THUMB_PCREL_BLX)
-         /* Remove bit zero of the adjusted offset.  Bit zero can only be
-            set if the upper insn is at a half-word boundary, since the
-            destination address, an ARM instruction, must always be on a
-            word boundary.  The semantics of the BLX (1) instruction, however,
-            are that bit zero in the offset must always be zero, and the
-            corresponding bit one in the target address will be set from bit
-            one of the source address.  */
-         newval2 &= ~1;
-       md_number_to_chars (buf, newval, THUMB_SIZE);
-       md_number_to_chars (buf + THUMB_SIZE, newval2, THUMB_SIZE);
-      }
-      break;
-
-    case BFD_RELOC_8:
-      if (fixP->fx_done || fixP->fx_pcrel)
-       md_number_to_chars (buf, value, 1);
-#ifdef OBJ_ELF
-      else if (!target_oabi)
-       {
-         value = fixP->fx_offset;
-         md_number_to_chars (buf, value, 1);
-       }
-#endif
-      break;
-
-    case BFD_RELOC_16:
-      if (fixP->fx_done || fixP->fx_pcrel)
-       md_number_to_chars (buf, value, 2);
-#ifdef OBJ_ELF
-      else if (!target_oabi)
-       {
-         value = fixP->fx_offset;
-         md_number_to_chars (buf, value, 2);
-       }
-#endif
-      break;
-
-#ifdef OBJ_ELF
-    case BFD_RELOC_ARM_GOT32:
-    case BFD_RELOC_ARM_GOTOFF:
-      md_number_to_chars (buf, 0, 4);
-      break;
-#endif
-
-    case BFD_RELOC_RVA:
-    case BFD_RELOC_32:
-      if (fixP->fx_done || fixP->fx_pcrel)
-       md_number_to_chars (buf, value, 4);
-#ifdef OBJ_ELF
-      else if (!target_oabi)
-       {
-         value = fixP->fx_offset;
-         md_number_to_chars (buf, value, 4);
-       }
-#endif
-      break;
-
-#ifdef OBJ_ELF
-    case BFD_RELOC_ARM_PLT32:
-      /* It appears the instruction is fully prepared at this point.  */
-      break;
-#endif
-
-    case BFD_RELOC_ARM_GOTPC:
-      md_number_to_chars (buf, value, 4);
-      break;
-
-    case BFD_RELOC_ARM_CP_OFF_IMM:
-      sign = value >= 0;
-      if (value < -1023 || value > 1023 || (value & 3))
-       as_bad_where (fixP->fx_file, fixP->fx_line,
-                     _("Illegal value for co-processor offset"));
-      if (value < 0)
-       value = -value;
-      newval = md_chars_to_number (buf, INSN_SIZE) & 0xff7fff00;
-      newval |= (value >> 2) | (sign ? INDEX_UP : 0);
-      md_number_to_chars (buf, newval, INSN_SIZE);
-      break;
-
-    case BFD_RELOC_ARM_THUMB_OFFSET:
-      newval = md_chars_to_number (buf, THUMB_SIZE);
-      /* Exactly what ranges, and where the offset is inserted depends
-        on the type of instruction, we can establish this from the
-        top 4 bits.  */
-      switch (newval >> 12)
-       {
-       case 4: /* PC load.  */
-         /* Thumb PC loads are somewhat odd, bit 1 of the PC is
-            forced to zero for these loads, so we will need to round
-            up the offset if the instruction address is not word
-            aligned (since the final address produced must be, and
-            we can only describe word-aligned immediate offsets).  */
-
-         if ((fixP->fx_frag->fr_address + fixP->fx_where + value) & 3)
-           as_bad_where (fixP->fx_file, fixP->fx_line,
-                         _("Invalid offset, target not word aligned (0x%08X)"),
-                         (unsigned int) (fixP->fx_frag->fr_address
-                                         + fixP->fx_where + value));
-
-         if ((value + 2) & ~0x3fe)
-           as_bad_where (fixP->fx_file, fixP->fx_line,
-                         _("Invalid offset, value too big (0x%08lX)"), value);
-
-         /* Round up, since pc will be rounded down.  */
-         newval |= (value + 2) >> 2;
-         break;
-
-       case 9: /* SP load/store.  */
-         if (value & ~0x3fc)
-           as_bad_where (fixP->fx_file, fixP->fx_line,
-                         _("Invalid offset, value too big (0x%08lX)"), value);
-         newval |= value >> 2;
-         break;
-
-       case 6: /* Word load/store.  */
-         if (value & ~0x7c)
-           as_bad_where (fixP->fx_file, fixP->fx_line,
-                         _("Invalid offset, value too big (0x%08lX)"), value);
-         newval |= value << 4; /* 6 - 2.  */
-         break;
-
-       case 7: /* Byte load/store.  */
-         if (value & ~0x1f)
-           as_bad_where (fixP->fx_file, fixP->fx_line,
-                         _("Invalid offset, value too big (0x%08lX)"), value);
-         newval |= value << 6;
-         break;
-
-       case 8: /* Halfword load/store.  */
-         if (value & ~0x3e)
-           as_bad_where (fixP->fx_file, fixP->fx_line,
-                         _("Invalid offset, value too big (0x%08lX)"), value);
-         newval |= value << 5; /* 6 - 1.  */
-         break;
-
-       default:
-         as_bad_where (fixP->fx_file, fixP->fx_line,
-                       "Unable to process relocation for thumb opcode: %lx",
-                       (unsigned long) newval);
-         break;
-       }
-      md_number_to_chars (buf, newval, THUMB_SIZE);
-      break;
-
-    case BFD_RELOC_ARM_THUMB_ADD:
-      /* This is a complicated relocation, since we use it for all of
-         the following immediate relocations:
-
-           3bit ADD/SUB
-           8bit ADD/SUB
-           9bit ADD/SUB SP word-aligned
-          10bit ADD PC/SP word-aligned
-
-         The type of instruction being processed is encoded in the
-         instruction field:
-
-          0x8000  SUB
-          0x00F0  Rd
-          0x000F  Rs
-      */
-      newval = md_chars_to_number (buf, THUMB_SIZE);
-      {
-       int rd = (newval >> 4) & 0xf;
-       int rs = newval & 0xf;
-       int subtract = newval & 0x8000;
-
-       if (rd == REG_SP)
-         {
-           if (value & ~0x1fc)
-             as_bad_where (fixP->fx_file, fixP->fx_line,
-                           _("Invalid immediate for stack address calculation"));
-           newval = subtract ? T_OPCODE_SUB_ST : T_OPCODE_ADD_ST;
-           newval |= value >> 2;
-         }
-       else if (rs == REG_PC || rs == REG_SP)
-         {
-           if (subtract ||
-               value & ~0x3fc)
-             as_bad_where (fixP->fx_file, fixP->fx_line,
-                           _("Invalid immediate for address calculation (value = 0x%08lX)"),
-                           (unsigned long) value);
-           newval = (rs == REG_PC ? T_OPCODE_ADD_PC : T_OPCODE_ADD_SP);
-           newval |= rd << 8;
-           newval |= value >> 2;
-         }
-       else if (rs == rd)
-         {
-           if (value & ~0xff)
-             as_bad_where (fixP->fx_file, fixP->fx_line,
-                           _("Invalid 8bit immediate"));
-           newval = subtract ? T_OPCODE_SUB_I8 : T_OPCODE_ADD_I8;
-           newval |= (rd << 8) | value;
-         }
-       else
-         {
-           if (value & ~0x7)
-             as_bad_where (fixP->fx_file, fixP->fx_line,
-                           _("Invalid 3bit immediate"));
-           newval = subtract ? T_OPCODE_SUB_I3 : T_OPCODE_ADD_I3;
-           newval |= rd | (rs << 3) | (value << 6);
-         }
-      }
-      md_number_to_chars (buf, newval, THUMB_SIZE);
-      break;
-
-    case BFD_RELOC_ARM_THUMB_IMM:
-      newval = md_chars_to_number (buf, THUMB_SIZE);
-      switch (newval >> 11)
-       {
-       case 0x04: /* 8bit immediate MOV.  */
-       case 0x05: /* 8bit immediate CMP.  */
-         if (value < 0 || value > 255)
-           as_bad_where (fixP->fx_file, fixP->fx_line,
-                         _("Invalid immediate: %ld is too large"),
-                         (long) value);
-         newval |= value;
-         break;
-
-       default:
-         abort ();
-       }
-      md_number_to_chars (buf, newval, THUMB_SIZE);
-      break;
-
-    case BFD_RELOC_ARM_THUMB_SHIFT:
-      /* 5bit shift value (0..31).  */
-      if (value < 0 || value > 31)
-       as_bad_where (fixP->fx_file, fixP->fx_line,
-                     _("Illegal Thumb shift value: %ld"), (long) value);
-      newval = md_chars_to_number (buf, THUMB_SIZE) & 0xf03f;
-      newval |= value << 6;
-      md_number_to_chars (buf, newval, THUMB_SIZE);
-      break;
-
-    case BFD_RELOC_VTABLE_INHERIT:
-    case BFD_RELOC_VTABLE_ENTRY:
-      fixP->fx_done = 0;
-      return 1;
-
-    case BFD_RELOC_NONE:
-    default:
-      as_bad_where (fixP->fx_file, fixP->fx_line,
-                   _("Bad relocation fixup type (%d)"), fixP->fx_r_type);
-    }
-
-  return 1;
-}
-
-/* Translate internal representation of relocation info to BFD target
-   format.  */
-
-arelent *
-tc_gen_reloc (section, fixp)
-     asection * section ATTRIBUTE_UNUSED;
-     fixS * fixp;
-{
-  arelent * reloc;
-  bfd_reloc_code_real_type code;
-
-  reloc = (arelent *) xmalloc (sizeof (arelent));
-
-  reloc->sym_ptr_ptr = (asymbol **) xmalloc (sizeof (asymbol *));
-  *reloc->sym_ptr_ptr = symbol_get_bfdsym (fixp->fx_addsy);
-  reloc->address = fixp->fx_frag->fr_address + fixp->fx_where;
-
-  /* @@ Why fx_addnumber sometimes and fx_offset other times?  */
-#ifndef OBJ_ELF
-  if (fixp->fx_pcrel == 0)
-    reloc->addend = fixp->fx_offset;
-  else
-    reloc->addend = fixp->fx_offset = reloc->address;
-#else  /* OBJ_ELF */
-  reloc->addend = fixp->fx_offset;
-#endif
-
-  switch (fixp->fx_r_type)
-    {
-    case BFD_RELOC_8:
-      if (fixp->fx_pcrel)
-       {
-         code = BFD_RELOC_8_PCREL;
-         break;
-       }
-
-    case BFD_RELOC_16:
-      if (fixp->fx_pcrel)
-       {
-         code = BFD_RELOC_16_PCREL;
-         break;
-       }
-
-    case BFD_RELOC_32:
-      if (fixp->fx_pcrel)
-       {
-         code = BFD_RELOC_32_PCREL;
-         break;
-       }
-
-    case BFD_RELOC_ARM_PCREL_BRANCH:
-    case BFD_RELOC_ARM_PCREL_BLX:
-    case BFD_RELOC_RVA:
-    case BFD_RELOC_THUMB_PCREL_BRANCH9:
-    case BFD_RELOC_THUMB_PCREL_BRANCH12:
-    case BFD_RELOC_THUMB_PCREL_BRANCH23:
-    case BFD_RELOC_THUMB_PCREL_BLX:
-    case BFD_RELOC_VTABLE_ENTRY:
-    case BFD_RELOC_VTABLE_INHERIT:
-      code = fixp->fx_r_type;
-      break;
-
-    case BFD_RELOC_ARM_LITERAL:
-    case BFD_RELOC_ARM_HWLITERAL:
-      /* If this is called then the a literal has been referenced across
-        a section boundary - possibly due to an implicit dump.  */
-      as_bad_where (fixp->fx_file, fixp->fx_line,
-                   _("Literal referenced across section boundary (Implicit dump?)"));
-      return NULL;
-
-#ifdef OBJ_ELF
-    case BFD_RELOC_ARM_GOT32:
-    case BFD_RELOC_ARM_GOTOFF:
-    case BFD_RELOC_ARM_PLT32:
-      code = fixp->fx_r_type;
-      break;
-#endif
-
-    case BFD_RELOC_ARM_IMMEDIATE:
-      as_bad_where (fixp->fx_file, fixp->fx_line,
-                   _("Internal_relocation (type %d) not fixed up (IMMEDIATE)"),
-                   fixp->fx_r_type);
-      return NULL;
-
-    case BFD_RELOC_ARM_ADRL_IMMEDIATE:
-      as_bad_where (fixp->fx_file, fixp->fx_line,
-                   _("ADRL used for a symbol not defined in the same file"));
-      return NULL;
-
-    case BFD_RELOC_ARM_OFFSET_IMM:
-      as_bad_where (fixp->fx_file, fixp->fx_line,
-                   _("Internal_relocation (type %d) not fixed up (OFFSET_IMM)"),
-                   fixp->fx_r_type);
-      return NULL;
-
-    default:
-      {
-       char * type;
-
-       switch (fixp->fx_r_type)
-         {
-         case BFD_RELOC_ARM_IMMEDIATE:    type = "IMMEDIATE";    break;
-         case BFD_RELOC_ARM_OFFSET_IMM:   type = "OFFSET_IMM";   break;
-         case BFD_RELOC_ARM_OFFSET_IMM8:  type = "OFFSET_IMM8";  break;
-         case BFD_RELOC_ARM_SHIFT_IMM:    type = "SHIFT_IMM";    break;
-         case BFD_RELOC_ARM_SWI:          type = "SWI";          break;
-         case BFD_RELOC_ARM_MULTI:        type = "MULTI";        break;
-         case BFD_RELOC_ARM_CP_OFF_IMM:   type = "CP_OFF_IMM";   break;
-         case BFD_RELOC_ARM_THUMB_ADD:    type = "THUMB_ADD";    break;
-         case BFD_RELOC_ARM_THUMB_SHIFT:  type = "THUMB_SHIFT";  break;
-         case BFD_RELOC_ARM_THUMB_IMM:    type = "THUMB_IMM";    break;
-         case BFD_RELOC_ARM_THUMB_OFFSET: type = "THUMB_OFFSET"; break;
-         default:                         type = _("<unknown>"); break;
-         }
-       as_bad_where (fixp->fx_file, fixp->fx_line,
-                     _("Cannot represent %s relocation in this object file format"),
-                     type);
-       return NULL;
-      }
-    }
-
-#ifdef OBJ_ELF
-  if (code == BFD_RELOC_32_PCREL
-      && GOT_symbol
-      && fixp->fx_addsy == GOT_symbol)
-    {
-      code = BFD_RELOC_ARM_GOTPC;
-      reloc->addend = fixp->fx_offset = reloc->address;
-    }
-#endif
-
-  reloc->howto = bfd_reloc_type_lookup (stdoutput, code);
-
-  if (reloc->howto == NULL)
-    {
-      as_bad_where (fixp->fx_file, fixp->fx_line,
-                   _("Can not represent %s relocation in this object file format"),
-                   bfd_get_reloc_code_name (code));
-      return NULL;
-    }
-
-  /* HACK: Since arm ELF uses Rel instead of Rela, encode the
-     vtable entry to be used in the relocation's section offset.  */
-  if (fixp->fx_r_type == BFD_RELOC_VTABLE_ENTRY)
-    reloc->address = fixp->fx_offset;
-
-  return reloc;
-}
-
-int
-md_estimate_size_before_relax (fragP, segtype)
-     fragS * fragP ATTRIBUTE_UNUSED;
-     segT    segtype ATTRIBUTE_UNUSED;
-{
-  as_fatal (_("md_estimate_size_before_relax\n"));
-  return 1;
-}
-
-static void
-output_inst PARAMS ((void))
-{
-  char * to = NULL;
-
-  if (inst.error)
-    {
-      as_bad (inst.error);
-      return;
-    }
-
-  to = frag_more (inst.size);
-
-  if (thumb_mode && (inst.size > THUMB_SIZE))
-    {
-      assert (inst.size == (2 * THUMB_SIZE));
-      md_number_to_chars (to, inst.instruction >> 16, THUMB_SIZE);
-      md_number_to_chars (to + THUMB_SIZE, inst.instruction, THUMB_SIZE);
-    }
-  else if (inst.size > INSN_SIZE)
-    {
-      assert (inst.size == (2 * INSN_SIZE));
-      md_number_to_chars (to, inst.instruction, INSN_SIZE);
-      md_number_to_chars (to + INSN_SIZE, inst.instruction, INSN_SIZE);
-    }
-  else
-    md_number_to_chars (to, inst.instruction, inst.size);
-
-  if (inst.reloc.type != BFD_RELOC_NONE)
-    fix_new_arm (frag_now, to - frag_now->fr_literal,
-                inst.size, & inst.reloc.exp, inst.reloc.pc_rel,
-                inst.reloc.type);
-
-#ifdef OBJ_ELF
-  dwarf2_emit_insn (inst.size);
-#endif
-}
-
-void
-md_assemble (str)
-     char * str;
-{
-  char   c;
-  char * p;
-  char * q;
-  char * start;
-
-  /* Align the instruction.
-     This may not be the right thing to do but ...  */
-#if 0
-  arm_align (2, 0);
-#endif
-  listing_prev_line (); /* Defined in listing.h.  */
-
-  /* Align the previous label if needed.  */
-  if (last_label_seen != NULL)
-    {
-      symbol_set_frag (last_label_seen, frag_now);
-      S_SET_VALUE (last_label_seen, (valueT) frag_now_fix ());
-      S_SET_SEGMENT (last_label_seen, now_seg);
-    }
-
-  memset (&inst, '\0', sizeof (inst));
-  inst.reloc.type = BFD_RELOC_NONE;
-
-  skip_whitespace (str);
-
-  /* Scan up to the end of the op-code, which must end in white space or
-     end of string.  */
-  for (start = p = str; *p != '\0'; p++)
-    if (*p == ' ')
-      break;
-
-  if (p == str)
-    {
-      as_bad (_("No operator -- statement `%s'\n"), str);
-      return;
-    }
-
-  if (thumb_mode)
-    {
-      CONST struct thumb_opcode * opcode;
-
-      c = *p;
-      *p = '\0';
-      opcode = (CONST struct thumb_opcode *) hash_find (arm_tops_hsh, str);
-      *p = c;
-
-      if (opcode)
-       {
-         /* Check that this instruction is supported for this CPU.  */
-         if (thumb_mode == 1 && (opcode->variants & cpu_variant) == 0)
-           {
-             as_bad (_("selected processor does not support this opcode"));
-             return;
-           }
-
-         inst.instruction = opcode->value;
-         inst.size = opcode->size;
-         (*opcode->parms) (p);
-         output_inst ();
-         return;
-       }
-    }
-  else
-    {
-      CONST struct asm_opcode * opcode;
-      unsigned long cond_code;
-
-      inst.size = INSN_SIZE;
-      /* P now points to the end of the opcode, probably white space, but we
-        have to break the opcode up in case it contains condionals and flags;
-        keep trying with progressively smaller basic instructions until one
-        matches, or we run out of opcode.  */
-      q = (p - str > LONGEST_INST) ? str + LONGEST_INST : p;
-
-      for (; q != str; q--)
-       {
-         c = *q;
-         *q = '\0';
-
-         opcode = (CONST struct asm_opcode *) hash_find (arm_ops_hsh, str);
-         *q = c;
-
-         if (opcode && opcode->template)
-           {
-             unsigned long flag_bits = 0;
-             char * r;
-
-             /* Check that this instruction is supported for this CPU.  */
-             if ((opcode->variants & cpu_variant) == 0)
-               goto try_shorter;
-
-             inst.instruction = opcode->value;
-             if (q == p)               /* Just a simple opcode.  */
-               {
-                 if (opcode->comp_suffix)
-                   {
-                     if (*opcode->comp_suffix != '\0')
-                       as_bad (_("Opcode `%s' must have suffix from list: <%s>"),
-                               str, opcode->comp_suffix);
-                     else
-                       /* Not a conditional instruction.  */
-                       (*opcode->parms) (q, 0);
-                   }
-                 else
-                   {
-                     /* A conditional instruction with default condition.  */
-                     inst.instruction |= COND_ALWAYS;
-                     (*opcode->parms) (q, 0);
-                   }
-                 output_inst ();
-                 return;
-               }
-
-             /* Not just a simple opcode.  Check if extra is a
-                 conditional.  */
-             r = q;
-             if (p - r >= 2)
-               {
-                 CONST struct asm_cond *cond;
-                 char d = *(r + 2);
-
-                 *(r + 2) = '\0';
-                 cond = (CONST struct asm_cond *) hash_find (arm_cond_hsh, r);
-                 *(r + 2) = d;
-                 if (cond)
-                   {
-                     if (cond->value == 0xf0000000)
-                       as_tsktsk (
-_("Warning: Use of the 'nv' conditional is deprecated\n"));
-
-                     cond_code = cond->value;
-                     r += 2;
-                   }
-                 else
-                   cond_code = COND_ALWAYS;
-               }
-             else
-               cond_code = COND_ALWAYS;
-
-             /* Apply the conditional, or complain it's not allowed.  */
-             if (opcode->comp_suffix && *opcode->comp_suffix == '\0')
-               {
-                 /* Instruction isn't conditional.  */
-                 if (cond_code != COND_ALWAYS)
-                   {
-                     as_bad (_("Opcode `%s' is unconditional\n"), str);
-                     return;
-                   }
-               }
-             else
-               /* Instruction is conditional: set the condition into it.  */
-               inst.instruction |= cond_code;
-
-             /* If there is a compulsory suffix, it should come here
-                before any optional flags.  */
-             if (opcode->comp_suffix && *opcode->comp_suffix != '\0')
-               {
-                 CONST char *s = opcode->comp_suffix;
-
-                 while (*s)
-                   {
-                     inst.suffix++;
-                     if (*r == *s)
-                       break;
-                     s++;
-                   }
-
-                 if (*s == '\0')
-                   {
-                     as_bad (_("Opcode `%s' must have suffix from <%s>\n"),
-                             str, opcode->comp_suffix);
-                     return;
-                   }
-
-                 r++;
-               }
-
-             /* The remainder, if any should now be flags for the instruction;
-                Scan these checking each one found with the opcode.  */
-             if (r != p)
-               {
-                 char d;
-                 CONST struct asm_flg *flag = opcode->flags;
-
-                 if (flag)
-                   {
-                     int flagno;
-
-                     d = *p;
-                     *p = '\0';
-
-                     for (flagno = 0; flag[flagno].template; flagno++)
-                       {
-                         if (streq (r, flag[flagno].template))
-                           {
-                             flag_bits |= flag[flagno].set_bits;
-                             break;
-                           }
-                       }
-
-                     *p = d;
-                     if (! flag[flagno].template)
-                       goto try_shorter;
-                   }
-                 else
-                   goto try_shorter;
-               }
-
-             (*opcode->parms) (p, flag_bits);
-             output_inst ();
-             return;
-           }
-
-       try_shorter:
-         ;
-       }
-    }
-
-  /* It wasn't an instruction, but it might be a register alias of the form
-     alias .req reg.  */
-  q = p;
-  skip_whitespace (q);
-
-  c = *p;
-  *p = '\0';
-
-  if (*q && !strncmp (q, ".req ", 4))
-    {
-      int    reg;
-      char * copy_of_str;
-      char * r;
-
-#ifdef IGNORE_OPCODE_CASE
-      str = original_case_string;
-#endif
-      copy_of_str = str;
-
-      q += 4;
-      skip_whitespace (q);
-
-      for (r = q; *r != '\0'; r++)
-       if (*r == ' ')
-         break;
-
-      if (r != q)
-       {
-         int regnum;
-         char d = *r;
-
-         *r = '\0';
-         regnum = arm_reg_parse (& q);
-         *r = d;
-
-         reg = arm_reg_parse (& str);
-
-         if (reg == FAIL)
-           {
-             if (regnum != FAIL)
-               insert_reg_alias (str, regnum);
-             else
-               as_warn (_("register '%s' does not exist\n"), q);
-           }
-         else if (regnum != FAIL)
-           {
-             if (reg != regnum)
-               as_warn (_("ignoring redefinition of register alias '%s'"),
-                        copy_of_str);
-
-             /* Do not warn about redefinitions to the same alias.  */
-           }
-         else
-           as_warn (_("ignoring redefinition of register alias '%s' to non-existant register '%s'"),
-                    copy_of_str, q);
-       }
-      else
-       as_warn (_("ignoring incomplete .req pseuso op"));
-
-      *p = c;
-      return;
-    }
-
-  *p = c;
-  as_bad (_("bad instruction `%s'"), start);
-}
-
-/* md_parse_option
-      Invocation line includes a switch not recognized by the base assembler.
-      See if it's a processor-specific option.  These are:
-      Cpu variants, the arm part is optional:
-              -m[arm]1                Currently not supported.
-              -m[arm]2, -m[arm]250    Arm 2 and Arm 250 processor
-              -m[arm]3                Arm 3 processor
-              -m[arm]6[xx],           Arm 6 processors
-              -m[arm]7[xx][t][[d]m]   Arm 7 processors
-              -m[arm]8[10]            Arm 8 processors
-              -m[arm]9[20][tdmi]      Arm 9 processors
-              -mstrongarm[110[0]]     StrongARM processors
-              -mxscale                XScale processors
-              -m[arm]v[2345[t[e]]]    Arm architectures
-              -mall                   All (except the ARM1)
-      FP variants:
-              -mfpa10, -mfpa11        FPA10 and 11 co-processor instructions
-              -mfpe-old               (No float load/store multiples)
-              -mno-fpu                Disable all floating point instructions
-      Run-time endian selection:
-              -EB                     big endian cpu
-              -EL                     little endian cpu
-      ARM Procedure Calling Standard:
-             -mapcs-32               32 bit APCS
-             -mapcs-26               26 bit APCS
-             -mapcs-float            Pass floats in float regs
-             -mapcs-reentrant        Position independent code
-              -mthumb-interwork       Code supports Arm/Thumb interworking
-              -matpcs                 ARM/Thumb Procedure Call Standard
-              -moabi                  Old ELF ABI  */
-
-CONST char * md_shortopts = "m:k";
-
-struct option md_longopts[] =
-{
-#ifdef ARM_BI_ENDIAN
-#define OPTION_EB (OPTION_MD_BASE + 0)
-  {"EB", no_argument, NULL, OPTION_EB},
-#define OPTION_EL (OPTION_MD_BASE + 1)
-  {"EL", no_argument, NULL, OPTION_EL},
-#ifdef OBJ_ELF
-#define OPTION_OABI (OPTION_MD_BASE +2)
-  {"oabi", no_argument, NULL, OPTION_OABI},
-#endif
-#endif
-  {NULL, no_argument, NULL, 0}
-};
-
-size_t md_longopts_size = sizeof (md_longopts);
-
-int
-md_parse_option (c, arg)
-     int    c;
-     char * arg;
-{
-  char * str = arg;
-
-  switch (c)
-    {
-#ifdef ARM_BI_ENDIAN
-    case OPTION_EB:
-      target_big_endian = 1;
-      break;
-    case OPTION_EL:
-      target_big_endian = 0;
-      break;
-#endif
-
-    case 'm':
-      switch (*str)
-       {
-       case 'f':
-         if (streq (str, "fpa10"))
-           cpu_variant = (cpu_variant & ~FPU_ALL) | FPU_FPA10;
-         else if (streq (str, "fpa11"))
-           cpu_variant = (cpu_variant & ~FPU_ALL) | FPU_FPA11;
-         else if (streq (str, "fpe-old"))
-           cpu_variant = (cpu_variant & ~FPU_ALL) | FPU_CORE;
-         else
-           goto bad;
-         break;
-
-       case 'n':
-         if (streq (str, "no-fpu"))
-           cpu_variant &= ~FPU_ALL;
-         break;
-
-#ifdef OBJ_ELF
-       case 'o':
-         if (streq (str, "oabi"))
-           target_oabi = true;
-         break;
-#endif
-
-       case 't':
-         /* Limit assembler to generating only Thumb instructions:  */
-         if (streq (str, "thumb"))
-           {
-             cpu_variant = (cpu_variant & ~ARM_ANY) | ARM_EXT_THUMB;
-             cpu_variant = (cpu_variant & ~FPU_ALL) | FPU_NONE;
-             thumb_mode = 1;
-           }
-         else if (streq (str, "thumb-interwork"))
-           {
-             if ((cpu_variant & ARM_EXT_THUMB) == 0)
-               cpu_variant = (cpu_variant & ~ARM_ANY) | ARM_ARCH_V4T;
-#if defined OBJ_COFF || defined OBJ_ELF
-             support_interwork = true;
-#endif
-           }
-         else
-           goto bad;
-         break;
-
-       default:
-         if (streq (str, "all"))
-           {
-             cpu_variant = ARM_ALL | FPU_ALL;
-             return 1;
-           }
-#if defined OBJ_COFF || defined OBJ_ELF
-         if (! strncmp (str, "apcs-", 5))
-           {
-             /* GCC passes on all command line options starting "-mapcs-..."
-                to us, so we must parse them here.  */
-
-             str += 5;
-
-             if (streq (str, "32"))
-               {
-                 uses_apcs_26 = false;
-                 return 1;
-               }
-             else if (streq (str, "26"))
-               {
-                 uses_apcs_26 = true;
-                 return 1;
-               }
-             else if (streq (str, "frame"))
-               {
-                 /* Stack frames are being generated - does not affect
-                    linkage of code.  */
-                 return 1;
-               }
-             else if (streq (str, "stack-check"))
-               {
-                 /* Stack checking is being performed - does not affect
-                    linkage, but does require that the functions
-                    __rt_stkovf_split_small and __rt_stkovf_split_big be
-                    present in the final link.  */
-
-                 return 1;
-               }
-             else if (streq (str, "float"))
-               {
-                 /* Floating point arguments are being passed in the floating
-                    point registers.  This does affect linking, since this
-                    version of the APCS is incompatible with the version that
-                    passes floating points in the integer registers.  */
-
-                 uses_apcs_float = true;
-                 return 1;
-               }
-             else if (streq (str, "reentrant"))
-               {
-                 /* Reentrant code has been generated.  This does affect
-                    linking, since there is no point in linking reentrant/
-                    position independent code with absolute position code.  */
-                 pic_code = true;
-                 return 1;
-               }
-
-             as_bad (_("Unrecognised APCS switch -m%s"), arg);
-             return 0;
-           }
-
-         if (! strcmp (str, "atpcs"))
-           {
-             atpcs = true;
-             return 1;
-           }
-#endif
-         /* Strip off optional "arm".  */
-         if (! strncmp (str, "arm", 3))
-           str += 3;
-
-         switch (*str)
-           {
-           case '1':
-             if (streq (str, "1"))
-               cpu_variant = (cpu_variant & ~ARM_ANY) | ARM_1;
-             else
-               goto bad;
-             break;
-
-           case '2':
-             if (streq (str, "2"))
-               cpu_variant = (cpu_variant & ~ARM_ANY) | ARM_2;
-             else if (streq (str, "250"))
-               cpu_variant = (cpu_variant & ~ARM_ANY) | ARM_250;
-             else
-               goto bad;
-             break;
-
-           case '3':
-             if (streq (str, "3"))
-               cpu_variant = (cpu_variant & ~ARM_ANY) | ARM_3;
-             else
-               goto bad;
-             break;
-
-           case '6':
-             switch (strtol (str, NULL, 10))
-               {
-               case 6:
-               case 60:
-               case 600:
-               case 610:
-               case 620:
-                 cpu_variant = (cpu_variant & ~ARM_ANY) | ARM_6;
-                 break;
-               default:
-                 goto bad;
-               }
-             break;
-
-           case '7':
-             /* Eat the processor name.  */
-             switch (strtol (str, & str, 10))
-               {
-               case 7:
-               case 70:
-               case 700:
-               case 710:
-               case 720:
-               case 7100:
-               case 7500:
-                 break;
-               default:
-                 goto bad;
-               }
-             cpu_variant = (cpu_variant & ~ARM_ANY) | ARM_7;
-             for (; *str; str++)
-               {
-                 switch (*str)
-                   {
-                   case 't':
-                     cpu_variant |= ARM_ARCH_V4T;
-                     break;
-
-                   case 'm':
-                     cpu_variant |= ARM_EXT_LONGMUL;
-                     break;
-
-                   case 'f': /* fe => fp enabled cpu.  */
-                     if (str[1] == 'e')
-                       ++ str;
-                     else
-                       goto bad;
-
-                   case 'c': /* Left over from 710c processor name.  */
-                   case 'd': /* Debug.  */
-                   case 'i': /* Embedded ICE.  */
-                     /* Included for completeness in ARM processor naming.  */
-                     break;
-
-                   default:
-                     goto bad;
-                   }
-               }
-             break;
-
-           case '8':
-             if (streq (str, "8") || streq (str, "810"))
-               cpu_variant = (cpu_variant & ~ARM_ANY)
-                 | ARM_8 | ARM_ARCH_V4;
-             else
-               goto bad;
-             break;
-
-           case '9':
-             if (streq (str, "9"))
-               cpu_variant = (cpu_variant & ~ARM_ANY)
-                 | ARM_9 | ARM_ARCH_V4T;
-             else if (streq (str, "920"))
-               cpu_variant = (cpu_variant & ~ARM_ANY)
-                 | ARM_9 | ARM_ARCH_V4;
-             else if (streq (str, "920t"))
-               cpu_variant = (cpu_variant & ~ARM_ANY)
-                 | ARM_9 | ARM_ARCH_V4T;
-             else if (streq (str, "9tdmi"))
-               cpu_variant = (cpu_variant & ~ARM_ANY)
-                 | ARM_9 | ARM_ARCH_V4T;
-             else
-               goto bad;
-             break;
-
-           case 's':
-             if (streq (str, "strongarm")
-                 || streq (str, "strongarm110")
-                 || streq (str, "strongarm1100"))
-               cpu_variant = (cpu_variant & ~ARM_ANY)
-                 | ARM_8 | ARM_ARCH_V4;
-             else
-               goto bad;
-             break;
-
-            case 'x':
-             if (streq (str, "xscale"))
-               cpu_variant = ARM_9 | ARM_ARCH_XSCALE;
-             else
-               goto bad;
-             break;
-
-           case 'v':
-             /* Select variant based on architecture rather than
-                 processor.  */
-             switch (*++str)
-               {
-               case '2':
-                 switch (*++str)
-                   {
-                   case 'a':
-                     cpu_variant = (cpu_variant & ~ARM_ANY) | ARM_3;
-                     break;
-                   case 0:
-                     cpu_variant = (cpu_variant & ~ARM_ANY) | ARM_2;
-                     break;
-                   default:
-                     as_bad (_("Invalid architecture variant -m%s"), arg);
-                     break;
-                   }
-                 break;
-
-               case '3':
-                 cpu_variant = (cpu_variant & ~ARM_ANY) | ARM_7;
-
-                 switch (*++str)
-                   {
-                   case 'm': cpu_variant |= ARM_EXT_LONGMUL; break;
-                   case 0:   break;
-                   default:
-                     as_bad (_("Invalid architecture variant -m%s"), arg);
-                     break;
-                   }
-                 break;
-
-               case '4':
-                 cpu_variant = (cpu_variant & ~ARM_ANY) | ARM_7 | ARM_ARCH_V4;
-
-                 switch (*++str)
-                   {
-                   case 't': cpu_variant |= ARM_EXT_THUMB; break;
-                   case 0:   break;
-                   default:
-                     as_bad (_("Invalid architecture variant -m%s"), arg);
-                     break;
-                   }
-                 break;
-
-               case '5':
-                 cpu_variant = (cpu_variant & ~ARM_ANY) | ARM_9 | ARM_ARCH_V5;
-                 switch (*++str)
-                   {
-                   case 't': cpu_variant |= ARM_EXT_THUMB; break;
-                   case 'e': cpu_variant |= ARM_EXT_V5E; break;
-                   case 0:   break;
-                   default:
-                     as_bad (_("Invalid architecture variant -m%s"), arg);
-                     break;
-                   }
-                 break;
-
-               default:
-                 as_bad (_("Invalid architecture variant -m%s"), arg);
-                 break;
-               }
-             break;
-
-           default:
-           bad:
-             as_bad (_("Invalid processor variant -m%s"), arg);
-             return 0;
-           }
-       }
-      break;
-
-#if defined OBJ_ELF || defined OBJ_COFF
-    case 'k':
-      pic_code = 1;
-      break;
-#endif
-
-    default:
-      return 0;
-    }
-
-  return 1;
-}
-
-void
-md_show_usage (fp)
-     FILE * fp;
-{
-  fprintf (fp, _("\
- ARM Specific Assembler Options:\n\
-  -m[arm][<processor name>] select processor variant\n\
-  -m[arm]v[2|2a|3|3m|4|4t|5[t][e]] select architecture variant\n\
-  -mthumb                   only allow Thumb instructions\n\
-  -mthumb-interwork         mark the assembled code as supporting interworking\n\
-  -mall                     allow any instruction\n\
-  -mfpa10, -mfpa11          select floating point architecture\n\
-  -mfpe-old                 don't allow floating-point multiple instructions\n\
-  -mno-fpu                  don't allow any floating-point instructions.\n\
-  -k                        generate PIC code.\n"));
-#if defined OBJ_COFF || defined OBJ_ELF
-  fprintf (fp, _("\
-  -mapcs-32, -mapcs-26      specify which ARM Procedure Calling Standard to use\n\
-  -matpcs                   use ARM/Thumb Procedure Calling Standard\n\
-  -mapcs-float              floating point args are passed in FP regs\n\
-  -mapcs-reentrant          the code is position independent/reentrant\n"));
-#endif
-#ifdef OBJ_ELF
-  fprintf (fp, _("\
-  -moabi                    support the old ELF ABI\n"));
-#endif
-#ifdef ARM_BI_ENDIAN
-  fprintf (fp, _("\
-  -EB                       assemble code for a big endian cpu\n\
-  -EL                       assemble code for a little endian cpu\n"));
-#endif
-}
-
-/* We need to be able to fix up arbitrary expressions in some statements.
-   This is so that we can handle symbols that are an arbitrary distance from
-   the pc.  The most common cases are of the form ((+/-sym -/+ . - 8) & mask),
-   which returns part of an address in a form which will be valid for
-   a data instruction.  We do this by pushing the expression into a symbol
-   in the expr_section, and creating a fix for that.  */
-
-static void
-fix_new_arm (frag, where, size, exp, pc_rel, reloc)
-     fragS *       frag;
-     int           where;
-     short int     size;
-     expressionS * exp;
-     int           pc_rel;
-     int           reloc;
-{
-  fixS *           new_fix;
-  arm_fix_data *   arm_data;
-
-  switch (exp->X_op)
-    {
-    case O_constant:
-    case O_symbol:
-    case O_add:
-    case O_subtract:
-      new_fix = fix_new_exp (frag, where, size, exp, pc_rel, reloc);
-      break;
-
-    default:
-      new_fix = fix_new (frag, where, size, make_expr_symbol (exp), 0,
-                        pc_rel, reloc);
-      break;
-    }
-
-  /* Mark whether the fix is to a THUMB instruction, or an ARM
-     instruction.  */
-  arm_data = (arm_fix_data *) obstack_alloc (& notes, sizeof (arm_fix_data));
-  new_fix->tc_fix_data = (PTR) arm_data;
-  arm_data->thumb_mode = thumb_mode;
-
-  return;
-}
-
-/* This fix_new is called by cons via TC_CONS_FIX_NEW.  */
-
-void
-cons_fix_new_arm (frag, where, size, exp)
-     fragS *       frag;
-     int           where;
-     int           size;
-     expressionS * exp;
-{
-  bfd_reloc_code_real_type type;
-  int pcrel = 0;
-
-  /* Pick a reloc.
-     FIXME: @@ Should look at CPU word size.  */
-  switch (size)
-    {
-    case 1:
-      type = BFD_RELOC_8;
-      break;
-    case 2:
-      type = BFD_RELOC_16;
-      break;
-    case 4:
-    default:
-      type = BFD_RELOC_32;
-      break;
-    case 8:
-      type = BFD_RELOC_64;
-      break;
-    }
-
-  fix_new_exp (frag, where, (int) size, exp, pcrel, type);
-}
-
-/* A good place to do this, although this was probably not intended
-   for this kind of use.  We need to dump the literal pool before
-   references are made to a null symbol pointer.  */
-
-void
-arm_cleanup ()
-{
-  if (current_poolP == NULL)
-    return;
-
-  /* Put it at the end of text section.  */
-  subseg_set (text_section, 0);
-  s_ltorg (0);
-  listing_prev_line ();
-}
-
-void
-arm_start_line_hook ()
-{
-  last_label_seen = NULL;
-}
-
-void
-arm_frob_label (sym)
-     symbolS * sym;
-{
-  last_label_seen = sym;
-
-  ARM_SET_THUMB (sym, thumb_mode);
-
-#if defined OBJ_COFF || defined OBJ_ELF
-  ARM_SET_INTERWORK (sym, support_interwork);
-#endif
-
-  /* Note - do not allow local symbols (.Lxxx) to be labeled
-     as Thumb functions.  This is because these labels, whilst
-     they exist inside Thumb code, are not the entry points for
-     possible ARM->Thumb calls.  Also, these labels can be used
-     as part of a computed goto or switch statement.  eg gcc
-     can generate code that looks like this:
-
-                ldr  r2, [pc, .Laaa]
-                lsl  r3, r3, #2
-                ldr  r2, [r3, r2]
-                mov  pc, r2
-               
-       .Lbbb:  .word .Lxxx
-       .Lccc:  .word .Lyyy
-       ..etc...
-       .Laaa:   .word Lbbb
-
-     The first instruction loads the address of the jump table.
-     The second instruction converts a table index into a byte offset.
-     The third instruction gets the jump address out of the table.
-     The fourth instruction performs the jump.
-     
-     If the address stored at .Laaa is that of a symbol which has the
-     Thumb_Func bit set, then the linker will arrange for this address
-     to have the bottom bit set, which in turn would mean that the
-     address computation performed by the third instruction would end
-     up with the bottom bit set.  Since the ARM is capable of unaligned
-     word loads, the instruction would then load the incorrect address
-     out of the jump table, and chaos would ensue.  */
-  if (label_is_thumb_function_name
-      && (S_GET_NAME (sym)[0] != '.' || S_GET_NAME (sym)[1] != 'L')
-      && (bfd_get_section_flags (stdoutput, now_seg) & SEC_CODE) != 0)
-    {
-      /* When the address of a Thumb function is taken the bottom
-        bit of that address should be set.  This will allow
-        interworking between Arm and Thumb functions to work
-        correctly.  */
-
-      THUMB_SET_FUNC (sym, 1);
-
-      label_is_thumb_function_name = false;
-    }
-}
-
-/* Adjust the symbol table.  This marks Thumb symbols as distinct from
-   ARM ones.  */
-
-void
-arm_adjust_symtab ()
-{
-#ifdef OBJ_COFF
-  symbolS * sym;
-
-  for (sym = symbol_rootP; sym != NULL; sym = symbol_next (sym))
-    {
-      if (ARM_IS_THUMB (sym))
-       {
-         if (THUMB_IS_FUNC (sym))
-           {
-             /* Mark the symbol as a Thumb function.  */
-             if (   S_GET_STORAGE_CLASS (sym) == C_STAT
-                 || S_GET_STORAGE_CLASS (sym) == C_LABEL)  /* This can happen!  */
-               S_SET_STORAGE_CLASS (sym, C_THUMBSTATFUNC);
-
-             else if (S_GET_STORAGE_CLASS (sym) == C_EXT)
-               S_SET_STORAGE_CLASS (sym, C_THUMBEXTFUNC);
-             else
-               as_bad (_("%s: unexpected function type: %d"),
-                       S_GET_NAME (sym), S_GET_STORAGE_CLASS (sym));
-           }
-          else switch (S_GET_STORAGE_CLASS (sym))
-           {
-           case C_EXT:
-             S_SET_STORAGE_CLASS (sym, C_THUMBEXT);
-             break;
-           case C_STAT:
-             S_SET_STORAGE_CLASS (sym, C_THUMBSTAT);
-             break;
-           case C_LABEL:
-             S_SET_STORAGE_CLASS (sym, C_THUMBLABEL);
-             break;
-           default:
-             /* Do nothing.  */
-             break;
-           }
-       }
-
-      if (ARM_IS_INTERWORK (sym))
-       coffsymbol (symbol_get_bfdsym (sym))->native->u.syment.n_flags = 0xFF;
-    }
-#endif
-#ifdef OBJ_ELF
-  symbolS * sym;
-  char      bind;
-
-  for (sym = symbol_rootP; sym != NULL; sym = symbol_next (sym))
-    {
-      if (ARM_IS_THUMB (sym))
-       {
-         elf_symbol_type * elf_sym;
-
-         elf_sym = elf_symbol (symbol_get_bfdsym (sym));
-         bind = ELF_ST_BIND (elf_sym);
-
-         /* If it's a .thumb_func, declare it as so,
-            otherwise tag label as .code 16.  */
-         if (THUMB_IS_FUNC (sym))
-           elf_sym->internal_elf_sym.st_info =
-             ELF_ST_INFO (bind, STT_ARM_TFUNC);
-         else
-           elf_sym->internal_elf_sym.st_info =
-             ELF_ST_INFO (bind, STT_ARM_16BIT);
-       }
-    }
-#endif
-}
-
-int
-arm_data_in_code ()
-{
-  if (thumb_mode && ! strncmp (input_line_pointer + 1, "data:", 5))
-    {
-      *input_line_pointer = '/';
-      input_line_pointer += 5;
-      *input_line_pointer = 0;
-      return 1;
-    }
-
-  return 0;
-}
-
-char *
-arm_canonicalize_symbol_name (name)
-     char * name;
-{
-  int len;
-
-  if (thumb_mode && (len = strlen (name)) > 5
-      && streq (name + len - 5, "/data"))
-    *(name + len - 5) = 0;
-
-  return name;
-}
-
-boolean
-arm_validate_fix (fixP)
-     fixS * fixP;
-{
-  /* If the destination of the branch is a defined symbol which does not have
-     the THUMB_FUNC attribute, then we must be calling a function which has
-     the (interfacearm) attribute.  We look for the Thumb entry point to that
-     function and change the branch to refer to that function instead.  */
-  if (fixP->fx_r_type == BFD_RELOC_THUMB_PCREL_BRANCH23
-      && fixP->fx_addsy != NULL
-      && S_IS_DEFINED (fixP->fx_addsy)
-      && ! THUMB_IS_FUNC (fixP->fx_addsy))
-    {
-      fixP->fx_addsy = find_real_start (fixP->fx_addsy);
-      return true;
-    }
-
-  return false;
-}
-
-#ifdef OBJ_COFF
-/* This is a little hack to help the gas/arm/adrl.s test.  It prevents
-   local labels from being added to the output symbol table when they
-   are used with the ADRL pseudo op.  The ADRL relocation should always
-   be resolved before the binbary is emitted, so it is safe to say that
-   it is adjustable.  */
-
-boolean
-arm_fix_adjustable (fixP)
-   fixS * fixP;
-{
-  if (fixP->fx_r_type == BFD_RELOC_ARM_ADRL_IMMEDIATE)
-    return 1;
-  return 0;
-}
-#endif
-#ifdef OBJ_ELF
-/* Relocations against Thumb function names must be left unadjusted,
-   so that the linker can use this information to correctly set the
-   bottom bit of their addresses.  The MIPS version of this function
-   also prevents relocations that are mips-16 specific, but I do not
-   know why it does this.
-
-   FIXME:
-   There is one other problem that ought to be addressed here, but
-   which currently is not:  Taking the address of a label (rather
-   than a function) and then later jumping to that address.  Such
-   addresses also ought to have their bottom bit set (assuming that
-   they reside in Thumb code), but at the moment they will not.  */
-
-boolean
-arm_fix_adjustable (fixP)
-   fixS * fixP;
-{
-  if (fixP->fx_addsy == NULL)
-    return 1;
-
-  /* Prevent all adjustments to global symbols.  */
-  if (S_IS_EXTERN (fixP->fx_addsy))
-    return 0;
-
-  if (S_IS_WEAK (fixP->fx_addsy))
-    return 0;
-
-  if (THUMB_IS_FUNC (fixP->fx_addsy)
-      && fixP->fx_subsy == NULL)
-    return 0;
-
-  /* We need the symbol name for the VTABLE entries.  */
-  if (   fixP->fx_r_type == BFD_RELOC_VTABLE_INHERIT
-      || fixP->fx_r_type == BFD_RELOC_VTABLE_ENTRY)
-    return 0;
-
-  return 1;
-}
-
-const char *
-elf32_arm_target_format ()
-{
-  if (target_big_endian)
-    {
-      if (target_oabi)
-       return "elf32-bigarm-oabi";
-      else
-       return "elf32-bigarm";
-    }
-  else
-    {
-      if (target_oabi)
-       return "elf32-littlearm-oabi";
-      else
-       return "elf32-littlearm";
-    }
-}
-
-void
-armelf_frob_symbol (symp, puntp)
-     symbolS * symp;
-     int *     puntp;
-{
-  elf_frob_symbol (symp, puntp);
-}
-
-int
-arm_force_relocation (fixp)
-     struct fix * fixp;
-{
-  if (   fixp->fx_r_type == BFD_RELOC_VTABLE_INHERIT
-      || fixp->fx_r_type == BFD_RELOC_VTABLE_ENTRY
-      || fixp->fx_r_type == BFD_RELOC_ARM_PCREL_BRANCH
-      || fixp->fx_r_type == BFD_RELOC_ARM_PCREL_BLX
-      || fixp->fx_r_type == BFD_RELOC_THUMB_PCREL_BLX
-      || fixp->fx_r_type == BFD_RELOC_THUMB_PCREL_BRANCH23)
-    return 1;
-
-  return 0;
-}
-
-static bfd_reloc_code_real_type
-arm_parse_reloc ()
-{
-  char         id [16];
-  char *       ip;
-  unsigned int i;
-  static struct
-  {
-    char * str;
-    int    len;
-    bfd_reloc_code_real_type reloc;
-  }
-  reloc_map[] =
-  {
-#define MAP(str,reloc) { str, sizeof (str) - 1, reloc }
-    MAP ("(got)",    BFD_RELOC_ARM_GOT32),
-    MAP ("(gotoff)", BFD_RELOC_ARM_GOTOFF),
-    /* ScottB: Jan 30, 1998 - Added support for parsing "var(PLT)"
-       branch instructions generated by GCC for PLT relocs.  */
-    MAP ("(plt)",    BFD_RELOC_ARM_PLT32),
-    { NULL, 0,         BFD_RELOC_UNUSED }
-#undef MAP
-  };
-
-  for (i = 0, ip = input_line_pointer;
-       i < sizeof (id) && (isalnum (*ip) || ispunct (*ip));
-       i++, ip++)
-    id[i] = tolower (*ip);
-
-  for (i = 0; reloc_map[i].str; i++)
-    if (strncmp (id, reloc_map[i].str, reloc_map[i].len) == 0)
-      break;
-
-  input_line_pointer += reloc_map[i].len;
-
-  return reloc_map[i].reloc;
-}
-
-static void
-s_arm_elf_cons (nbytes)
-     int nbytes;
-{
-  expressionS exp;
-
-#ifdef md_flush_pending_output
-  md_flush_pending_output ();
-#endif
-
-  if (is_it_end_of_statement ())
-    {
-      demand_empty_rest_of_line ();
-      return;
-    }
-
-#ifdef md_cons_align
-  md_cons_align (nbytes);
-#endif
-
-  do
-    {
-      bfd_reloc_code_real_type reloc;
-
-      expression (& exp);
-
-      if (exp.X_op == O_symbol
-         && * input_line_pointer == '('
-         && (reloc = arm_parse_reloc ()) != BFD_RELOC_UNUSED)
-       {
-         reloc_howto_type *howto = bfd_reloc_type_lookup (stdoutput, reloc);
-         int size = bfd_get_reloc_size (howto);
-
-         if (size > nbytes)
-           as_bad ("%s relocations do not fit in %d bytes",
-                   howto->name, nbytes);
-         else
-           {
-             register char *p = frag_more ((int) nbytes);
-             int offset = nbytes - size;
-
-             fix_new_exp (frag_now, p - frag_now->fr_literal + offset, size,
-                          &exp, 0, reloc);
-           }
-       }
-      else
-       emit_expr (&exp, (unsigned int) nbytes);
-    }
-  while (*input_line_pointer++ == ',');
-
-  /* Put terminator back into stream.  */
-  input_line_pointer --;
-  demand_empty_rest_of_line ();
-}
-
-#endif /* OBJ_ELF */
-
-/* This is called from HANDLE_ALIGN in write.c.  Fill in the contents
-   of an rs_align_code fragment.  */
-
-void
-arm_handle_align (fragP)
-     fragS *fragP;
-{
-  static char const arm_noop[4] = { 0x00, 0x00, 0xa0, 0xe1 };
-  static char const thumb_noop[2] = { 0xc0, 0x46 };
-  static char const arm_bigend_noop[4] = { 0xe1, 0xa0, 0x00, 0x00 };
-  static char const thumb_bigend_noop[2] = { 0x46, 0xc0 };
-
-  int bytes, fix, noop_size;
-  char * p;
-  const char * noop;
-  
-  if (fragP->fr_type != rs_align_code)
-    return;
-
-  bytes = fragP->fr_next->fr_address - fragP->fr_address - fragP->fr_fix;
-  p = fragP->fr_literal + fragP->fr_fix;
-  fix = 0;
-  
-  if (bytes > MAX_MEM_FOR_RS_ALIGN_CODE)
-    bytes &= MAX_MEM_FOR_RS_ALIGN_CODE;
-  
-  if (fragP->tc_frag_data)
-    {
-      if (target_big_endian)
-       noop = thumb_bigend_noop;
-      else
-       noop = thumb_noop;
-      noop_size = sizeof (thumb_noop);
-    }
-  else
-    {
-      if (target_big_endian)
-       noop = arm_bigend_noop;
-      else
-       noop = arm_noop;
-      noop_size = sizeof (arm_noop);
-    }
-  
-  if (bytes & (noop_size - 1))
-    {
-      fix = bytes & (noop_size - 1);
-      memset (p, 0, fix);
-      p += fix;
-      bytes -= fix;
-    }
-
-  while (bytes >= noop_size)
-    {
-      memcpy (p, noop, noop_size);
-      p += noop_size;
-      bytes -= noop_size;
-      fix += noop_size;
-    }
-  
-  fragP->fr_fix += fix;
-  fragP->fr_var = noop_size;
-}
-
-/* Called from md_do_align.  Used to create an alignment
-   frag in a code section.  */
-
-void
-arm_frag_align_code (n, max)
-     int n;
-     int max;
-{
-  char * p;
-
-  /* We assume that there will never be a requirment
-     to support alignments greater than 32 bytes.  */
-  if (max > MAX_MEM_FOR_RS_ALIGN_CODE)
-    as_fatal (_("alignments greater than 32 bytes not supported in .text sections."));
-  
-  p = frag_var (rs_align_code,
-               MAX_MEM_FOR_RS_ALIGN_CODE,
-               1,
-               (relax_substateT) max,
-               (symbolS *) NULL,
-               (offsetT) n,
-               (char *) NULL);
-  *p = 0;
-
-}
-
-/* Perform target specific initialisation of a frag.  */
-
-void
-arm_init_frag (fragP)
-     fragS *fragP;
-{
-  /* Record whether this frag is in an ARM or a THUMB area.  */
-  fragP->tc_frag_data = thumb_mode;
-}
index 5cd20f8668f49d563ca54a3730e7b6b49c2d3ae5..4d85018d246a5db31c1ab7f5a45432599618eeb1 100644 (file)
@@ -65,14 +65,17 @@ MAINTAINERCLEANFILES = gasver.texi
 
 # Maintenance
 
 
 # Maintenance
 
+# We need it for the taz target in ../../Makefile.in.
+info: $(MANS)
+
 # Build the man page from the texinfo file
 # The sed command removes the no-adjust Nroff command so that
 # the man output looks standard.
 # Build the man page from the texinfo file
 # The sed command removes the no-adjust Nroff command so that
 # the man output looks standard.
-$(srcdir)/as.1: $(srcdir)/as.texinfo
-       touch $(srcdir)/as.1
+as.1: $(srcdir)/as.texinfo
+       touch $@
        -$(TEXI2POD) $(MANCONF) < $(srcdir)/as.texinfo > as.pod
        -($(POD2MAN) as.pod | \
        -$(TEXI2POD) $(MANCONF) < $(srcdir)/as.texinfo > as.pod
        -($(POD2MAN) as.pod | \
-               sed -e '/^.if n .na/d' > $(srcdir)/as.1.T$$$$ && \
-               mv -f $(srcdir)/as.1.T$$$$ $(srcdir)/as.1) || \
-               (rm -f $(srcdir)/as.1.T$$$$ && exit 1)
-
+               sed -e '/^.if n .na/d' > $@.T$$$$ && \
+               mv -f $@.T$$$$ $@) || \
+               (rm -f $@.T$$$$ && exit 1)
+       rm -f as.pod
index 674e17fc03a42ba48ca9e9bb5c37a901234f38ee..90ebe51e78bf59f4f8dde27d8b43cc6929187fb2 100644 (file)
@@ -183,7 +183,7 @@ DIST_COMMON =  Makefile.am Makefile.in
 
 DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
 
 
 DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
 
-TAR = tar
+TAR = gtar
 GZIP_ENV = --best
 all: all-redirect
 .SUFFIXES:
 GZIP_ENV = --best
 all: all-redirect
 .SUFFIXES:
@@ -457,16 +457,20 @@ as.dvi: $(srcdir)/as.texinfo asconfig.texi gasver.texi $(CPU_DOCS)
 
 # Maintenance
 
 
 # Maintenance
 
+# We need it for the taz target in ../../Makefile.in.
+info: $(MANS)
+
 # Build the man page from the texinfo file
 # The sed command removes the no-adjust Nroff command so that
 # the man output looks standard.
 # Build the man page from the texinfo file
 # The sed command removes the no-adjust Nroff command so that
 # the man output looks standard.
-$(srcdir)/as.1: $(srcdir)/as.texinfo
-       touch $(srcdir)/as.1
+as.1: $(srcdir)/as.texinfo
+       touch $@
        -$(TEXI2POD) $(MANCONF) < $(srcdir)/as.texinfo > as.pod
        -($(POD2MAN) as.pod | \
        -$(TEXI2POD) $(MANCONF) < $(srcdir)/as.texinfo > as.pod
        -($(POD2MAN) as.pod | \
-               sed -e '/^.if n .na/d' > $(srcdir)/as.1.T$$$$ && \
-               mv -f $(srcdir)/as.1.T$$$$ $(srcdir)/as.1) || \
-               (rm -f $(srcdir)/as.1.T$$$$ && exit 1)
+               sed -e '/^.if n .na/d' > $@.T$$$$ && \
+               mv -f $@.T$$$$ $@) || \
+               (rm -f $@.T$$$$ && exit 1)
+       rm -f as.pod
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
 
 # Tell versions [3.59,3.63) of GNU make to not export all variables.
 # Otherwise a system limit (for SysV at least) may be exceeded.
diff --git a/gas/doc/as.1 b/gas/doc/as.1
deleted file mode 100644 (file)
index 28ba51f..0000000
+++ /dev/null
@@ -1,724 +0,0 @@
-.\" Automatically generated by Pod::Man version 1.02
-.\" Tue Jun 12 18:27:35 2001
-.\"
-.\" 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 Ip \" List item
-.br
-.ie \\n(.$>=3 .ne \\$3
-.el .ne 3
-.IP "\\$1" \\$2
-..
-.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.
-.bd B 3
-.    \" 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 "AS 1"
-.TH AS 1 "binutils-2.11.90" "2001-06-12" "GNU"
-.UC
-.SH "NAME"
-\&\s-1AS\s0 \- the portable \s-1GNU\s0 assembler.
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-as [ \-a[cdhlns][=file] ] [ \-D ]  [ \-\-defsym \fIsym\fR=\fIval\fR ]
- [ \-f ] [ \-\-gstabs ] [ \-\-gdwarf2 ] [ \-\-help ] [ \-I \fIdir\fR ] 
- [ \-J ] [ \-K ] [ \-L ]
- [ \-\-listing\*(--lhs-width=NUM ][ \-\-listing-lhs-width2=NUM ]
- [ \-\-listing-rhs-width=NUM ][ \-\-listing-cont-lines=NUM ]
- [ \-\-keep-locals ] [ \-o \fIobjfile\fR ] [ \-R ] [ \-\-statistics ] [ \-v ]
- [ \-version ] [ \-\-version ] [ \-W ] [ \-\-warn ] [ \-\-fatal-warnings ] 
- [ \-w ] [ \-x ] [ \-Z ] [ \-\-target-help ]
- [ \-marc[5|6|7|8] ]
- [ \-EB | \-EL ]
- [ \-m[arm]1 | \-m[arm]2 | \-m[arm]250 | \-m[arm]3 |
-   \-m[arm]6 | \-m[arm]60 | \-m[arm]600 | \-m[arm]610 |
-   \-m[arm]620 | \-m[arm]7[t][[d]m[i]][fe] | \-m[arm]70 |
-   \-m[arm]700 | \-m[arm]710[c] | \-m[arm]7100 |
-   \-m[arm]7500 | \-m[arm]8 | \-m[arm]810 | \-m[arm]9 |
-   \-m[arm]920 | \-m[arm]920t | \-m[arm]9tdmi |
-   \-mstrongarm | \-mstrongarm110 | \-mstrongarm1100 ]
- [ \-m[arm]v2 | \-m[arm]v2a | \-m[arm]v3 | \-m[arm]v3m |
-   \-m[arm]v4 | \-m[arm]v4t | \-m[arm]v5 | \-[arm]v5t |
-   \-[arm]v5te ]
- [ \-mthumb | \-mall ]
- [ \-mfpa10 | \-mfpa11 | \-mfpe-old | \-mno-fpu ]
- [ \-EB | \-EL ]
- [ \-mapcs-32 | \-mapcs-26 | \-mapcs-float |
-   \-mapcs-reentrant ]
- [ \-mthumb-interwork ] [ \-moabi ] [ \-k ]
- [ \-O ]
- [ \-O | \-n | \-N ]
- [ \-mb | \-me ]
- [ \-Av6 | \-Av7 | \-Av8 | \-Asparclet | \-Asparclite
-   \-Av8plus | \-Av8plusa | \-Av9 | \-Av9a ]
- [ \-xarch=v8plus | \-xarch=v8plusa ] [ \-bump ]
- [ \-32 | \-64 ]
- [ \-ACA | \-ACA_A | \-ACB | \-ACC | \-AKA | \-AKB |
-   \-AKC | \-AMC ]
- [ \-b ] [ \-no-relax ]
- [ \-\-m32rx | \-\-[no-]warn-explicit-parallel-conflicts |
-   \-\-W[n]p ]
- [ \-l ] [ \-m68000 | \-m68010 | \-m68020 | ... ]
- [ \-jsri2bsr ] [ \-sifilter ] [ \-relax ]
- [ \-mcpu=[210|340] ]
- [ \-m68hc11 | \-m68hc12 ]
- [ \-\-force-long-branchs ] [ \-\-short-branchs ]
- [ \-\-strict-direct-mode ] [ \-\-print-insn-syntax ]
- [ \-\-print-opcodes ] [ \-\-generate-example ]
- [ \-nocpp ] [ \-EL ] [ \-EB ] [ \-G \fInum\fR ] [ \-mcpu=\fI\s-1CPU\s0\fR ]
- [ \-mips1 ] [ \-mips2 ] [ \-mips3 ] [ \-mips4 ] [ \-mips5 ]
- [ \-mips32 ] [ \-mips64 ]
- [ \-m4650 ] [ \-no-m4650 ]
- [ \-\-trap ] [ \-\-break ] [ \-n ]
- [ \-\-emulation=\fIname\fR ]
- [ \*(-- | \fIfiles\fR ... ]
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-\&\s-1GNU\s0 \f(CW\*(C`as\*(C'\fR is really a family of assemblers.
-If you use (or have used) the \s-1GNU\s0 assembler on one architecture, you
-should find a fairly similar environment when you use it on another
-architecture.  Each version has much in common with the others,
-including object file formats, most assembler directives (often called
-\&\fIpseudo-ops\fR) and assembler syntax.
-.PP
-\&\f(CW\*(C`as\*(C'\fR is primarily intended to assemble the output of the
-\&\s-1GNU\s0 C compiler  for use by the linker
-\&.  Nevertheless, we've tried to make \f(CW\*(C`as\*(C'\fR
-assemble correctly everything that other assemblers for the same
-machine would assemble.
-Any exceptions are documented explicitly.
-This doesn't mean \f(CW\*(C`as\*(C'\fR always uses the same syntax as another
-assembler for the same architecture; for example, we know of several
-incompatible versions of 680x0 assembly language syntax.
-.PP
-Each time you run \f(CW\*(C`as\*(C'\fR it assembles exactly one source
-program.  The source program is made up of one or more files.
-(The standard input is also a file.)
-.PP
-You give \f(CW\*(C`as\*(C'\fR a command line that has zero or more input file
-names.  The input files are read (from left file name to right).  A
-command line argument (in any position) that has no special meaning
-is taken to be an input file name.
-.PP
-If you give \f(CW\*(C`as\*(C'\fR no file names it attempts to read one input file
-from the \f(CW\*(C`as\*(C'\fR standard input, which is normally your terminal.  You
-may have to type \fBctl-D\fR to tell \f(CW\*(C`as\*(C'\fR there is no more program
-to assemble.
-.PP
-Use \fB\--\fR if you need to explicitly name the standard input file
-in your command line.
-.PP
-If the source is empty, \f(CW\*(C`as\*(C'\fR produces a small, empty object
-file.
-.PP
-\&\f(CW\*(C`as\*(C'\fR may write warnings and error messages to the standard error
-file (usually your terminal).  This should not happen when  a compiler
-runs \f(CW\*(C`as\*(C'\fR automatically.  Warnings report an assumption made so
-that \f(CW\*(C`as\*(C'\fR could keep assembling a flawed program; errors report a
-grave problem that stops the assembly.
-.PP
-If you are invoking \f(CW\*(C`as\*(C'\fR via the \s-1GNU\s0 C compiler (version 2),
-you can use the \fB\-Wa\fR option to pass arguments through to the assembler.
-The assembler arguments must be separated from each other (and the \fB\-Wa\fR)
-by commas.  For example:
-.PP
-.Vb 1
-\&        gcc -c -g -O -Wa,-alh,-L file.c
-.Ve
-This passes two options to the assembler: \fB\-alh\fR (emit a listing to
-standard output with with high-level and assembly source) and \fB\-L\fR (retain
-local symbols in the symbol table).
-.PP
-Usually you do not need to use this \fB\-Wa\fR mechanism, since many compiler
-command-line options are automatically passed to the assembler by the compiler.
-(You can call the \s-1GNU\s0 compiler driver with the \fB\-v\fR option to see
-precisely what options it passes to each compilation pass, including the
-assembler.)
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-.Ip "\f(CW\*(C`\-a[cdhlmns]\*(C'\fR" 4
-.IX Item "-a[cdhlmns]"
-Turn on listings, in any of a variety of ways:
-.RS 4
-.Ip "\f(CW\*(C`\-ac\*(C'\fR" 4
-.IX Item "-ac"
-omit false conditionals
-.Ip "\f(CW\*(C`\-ad\*(C'\fR" 4
-.IX Item "-ad"
-omit debugging directives
-.Ip "\f(CW\*(C`\-ah\*(C'\fR" 4
-.IX Item "-ah"
-include high-level source
-.Ip "\f(CW\*(C`\-al\*(C'\fR" 4
-.IX Item "-al"
-include assembly
-.Ip "\f(CW\*(C`\-am\*(C'\fR" 4
-.IX Item "-am"
-include macro expansions
-.Ip "\f(CW\*(C`\-an\*(C'\fR" 4
-.IX Item "-an"
-omit forms processing
-.Ip "\f(CW\*(C`\-as\*(C'\fR" 4
-.IX Item "-as"
-include symbols
-.Ip "\f(CW\*(C`=file\*(C'\fR" 4
-.IX Item "=file"
-set the name of the listing file
-.RE
-.RS 4
-.Sp
-You may combine these options; for example, use \fB\-aln\fR for assembly
-listing without forms processing.  The \fB=file\fR option, if used, must be
-the last one.  By itself, \fB\-a\fR defaults to \fB\-ahls\fR.
-.RE
-.Ip "\f(CW\*(C`\-D\*(C'\fR" 4
-.IX Item "-D"
-Ignored.  This option is accepted for script compatibility with calls to
-other assemblers.
-.Ip "\f(CW\*(C`\-\-defsym \f(CIsym\f(CW=\f(CIvalue\f(CW\*(C'\fR" 4
-.IX Item "--defsym sym=value"
-Define the symbol \fIsym\fR to be \fIvalue\fR before assembling the input file.
-\&\fIvalue\fR must be an integer constant.  As in C, a leading \fB0x\fR
-indicates a hexadecimal value, and a leading \fB0\fR indicates an octal value.
-.Ip "\f(CW\*(C`\-f\*(C'\fR" 4
-.IX Item "-f"
-``fast''\-\-\-skip whitespace and comment preprocessing (assume source is
-compiler output).
-.Ip "\f(CW\*(C`\-\-gstabs\*(C'\fR" 4
-.IX Item "--gstabs"
-Generate stabs debugging information for each assembler line.  This
-may help debugging assembler code, if the debugger can handle it.
-.Ip "\f(CW\*(C`\-\-gdwarf2\*(C'\fR" 4
-.IX Item "--gdwarf2"
-Generate \s-1DWARF2\s0 debugging information for each assembler line.  This
-may help debugging assembler code, if the debugger can handle it.  Note \- this
-option is only supported by some targets, not all of them.
-.Ip "\f(CW\*(C`\-\-help\*(C'\fR" 4
-.IX Item "--help"
-Print a summary of the command line options and exit.
-.Ip "\f(CW\*(C`\-\-target\-help\*(C'\fR" 4
-.IX Item "--target-help"
-Print a summary of all target specific options and exit.
-.Ip "\f(CW\*(C`\-I \f(CIdir\f(CW\*(C'\fR" 4
-.IX Item "-I dir"
-Add directory \fIdir\fR to the search list for \f(CW\*(C`.include\*(C'\fR directives.
-.Ip "\f(CW\*(C`\-J\*(C'\fR" 4
-.IX Item "-J"
-Don't warn about signed overflow.
-.Ip "\f(CW\*(C`\-K\*(C'\fR" 4
-.IX Item "-K"
-This option is accepted but has no effect on the \s-1TARGET\s0 family.
-.Ip "\f(CW\*(C`\-L\*(C'\fR" 4
-.IX Item "-L"
-.Ip "\f(CW\*(C`\-\-keep\-locals\*(C'\fR" 4
-.IX Item "--keep-locals"
-Keep (in the symbol table) local symbols.  On traditional a.out systems
-these start with \fBL\fR, but different systems have different local
-label prefixes.
-.Ip "\f(CW\*(C`\-\-listing\-lhs\-width=\f(CInumber\f(CW\*(C'\fR" 4
-.IX Item "--listing-lhs-width=number"
-Set the maximum width, in words, of the output data column for an assembler
-listing to \fInumber\fR.
-.Ip "\f(CW\*(C`\-\-listing\-lhs\-width2=\f(CInumber\f(CW\*(C'\fR" 4
-.IX Item "--listing-lhs-width2=number"
-Set the maximum width, in words, of the output data column for continuation
-lines in an assembler listing to \fInumber\fR.
-.Ip "\f(CW\*(C`\-\-listing\-rhs\-width=\f(CInumber\f(CW\*(C'\fR" 4
-.IX Item "--listing-rhs-width=number"
-Set the maximum width of an input source line, as displayed in a listing, to
-\&\fInumber\fR bytes.
-.Ip "\f(CW\*(C`\-\-listing\-cont\-lines=\f(CInumber\f(CW\*(C'\fR" 4
-.IX Item "--listing-cont-lines=number"
-Set the maximum number of lines printed in a listing for a single line of input
-to \fInumber\fR + 1.
-.Ip "\f(CW\*(C`\-o \f(CIobjfile\f(CW\*(C'\fR" 4
-.IX Item "-o objfile"
-Name the object-file output from \f(CW\*(C`as\*(C'\fR \fIobjfile\fR.
-.Ip "\f(CW\*(C`\-R\*(C'\fR" 4
-.IX Item "-R"
-Fold the data section into the text section.
-.Ip "\f(CW\*(C`\-\-statistics\*(C'\fR" 4
-.IX Item "--statistics"
-Print the maximum space (in bytes) and total time (in seconds) used by
-assembly.
-.Ip "\f(CW\*(C`\-\-strip\-local\-absolute\*(C'\fR" 4
-.IX Item "--strip-local-absolute"
-Remove local absolute symbols from the outgoing symbol table.
-.Ip "\f(CW\*(C`\-v\*(C'\fR" 4
-.IX Item "-v"
-.Ip "\f(CW\*(C`\-version\*(C'\fR" 4
-.IX Item "-version"
-Print the \f(CW\*(C`as\*(C'\fR version.
-.Ip "\f(CW\*(C`\-\-version\*(C'\fR" 4
-.IX Item "--version"
-Print the \f(CW\*(C`as\*(C'\fR version and exit.
-.Ip "\f(CW\*(C`\-W\*(C'\fR" 4
-.IX Item "-W"
-.Ip "\f(CW\*(C`\-\-no\-warn\*(C'\fR" 4
-.IX Item "--no-warn"
-Suppress warning messages.
-.Ip "\f(CW\*(C`\-\-fatal\-warnings\*(C'\fR" 4
-.IX Item "--fatal-warnings"
-Treat warnings as errors.
-.Ip "\f(CW\*(C`\-\-warn\*(C'\fR" 4
-.IX Item "--warn"
-Don't suppress warning messages or treat them as errors.
-.Ip "\f(CW\*(C`\-w\*(C'\fR" 4
-.IX Item "-w"
-Ignored.
-.Ip "\f(CW\*(C`\-x\*(C'\fR" 4
-.IX Item "-x"
-Ignored.
-.Ip "\f(CW\*(C`\-Z\*(C'\fR" 4
-.IX Item "-Z"
-Generate an object file even after errors.
-.Ip "\f(CW\*(C`\-\- | \f(CIfiles\f(CW ...\*(C'\fR" 4
-.IX Item "-- | files ..."
-Standard input, or source files to assemble.
-.PP
-The following options are available when as is configured for
-an \s-1ARC\s0 processor.
-.Ip "\f(CW\*(C`\-marc[5|6|7|8]\*(C'\fR" 4
-.IX Item "-marc[5|6|7|8]"
-This option selects the core processor variant.
-.Ip "\f(CW\*(C`\-EB | \-EL\*(C'\fR" 4
-.IX Item "-EB | -EL"
-Select either big-endian (\-EB) or little-endian (\-EL) output.
-.PP
-The following options are available when as is configured for the \s-1ARM\s0
-processor family.
-.Ip "\f(CW\*(C`\-m[arm][1|2|3|6|7|8|9][...] \*(C'\fR" 4
-.IX Item "-m[arm][1|2|3|6|7|8|9][...] "
-Specify which \s-1ARM\s0 processor variant is the target.
-.Ip "\f(CW\*(C`\-m[arm]v[2|2a|3|3m|4|4t|5|5t]\*(C'\fR" 4
-.IX Item "-m[arm]v[2|2a|3|3m|4|4t|5|5t]"
-Specify which \s-1ARM\s0 architecture variant is used by the target.
-.Ip "\f(CW\*(C`\-mthumb | \-mall\*(C'\fR" 4
-.IX Item "-mthumb | -mall"
-Enable or disable Thumb only instruction decoding.
-.Ip "\f(CW\*(C`\-mfpa10 | \-mfpa11 | \-mfpe\-old | \-mno\-fpu\*(C'\fR" 4
-.IX Item "-mfpa10 | -mfpa11 | -mfpe-old | -mno-fpu"
-Select which Floating Point architecture is the target.
-.Ip "\f(CW\*(C`\-mapcs\-32 | \-mapcs\-26 | \-mapcs\-float | \-mapcs\-reentrant | \-moabi\*(C'\fR" 4
-.IX Item "-mapcs-32 | -mapcs-26 | -mapcs-float | -mapcs-reentrant | -moabi"
-Select which procedure calling convention is in use.
-.Ip "\f(CW\*(C`\-EB | \-EL\*(C'\fR" 4
-.IX Item "-EB | -EL"
-Select either big-endian (\-EB) or little-endian (\-EL) output.
-.Ip "\f(CW\*(C`\-mthumb\-interwork\*(C'\fR" 4
-.IX Item "-mthumb-interwork"
-Specify that the code has been generated with interworking between Thumb and
-\&\s-1ARM\s0 code in mind.
-.Ip "\f(CW\*(C`\-k\*(C'\fR" 4
-.IX Item "-k"
-Specify that \s-1PIC\s0 code has been generated.
-.PP
-The following options are available when as is configured for
-a D10V processor.
-.Ip "\f(CW\*(C`\-O\*(C'\fR" 4
-.IX Item "-O"
-Optimize output by parallelizing instructions.
-.PP
-The following options are available when as is configured for a D30V
-processor.
-.Ip "\f(CW\*(C`\-O\*(C'\fR" 4
-.IX Item "-O"
-Optimize output by parallelizing instructions.
-.Ip "\f(CW\*(C`\-n\*(C'\fR" 4
-.IX Item "-n"
-Warn when nops are generated.
-.Ip "\f(CW\*(C`\-N\*(C'\fR" 4
-.IX Item "-N"
-Warn when a nop after a 32\-bit multiply instruction is generated.
-.PP
-The following options are available when as is configured for the
-Intel 80960 processor.
-.Ip "\f(CW\*(C`\-ACA | \-ACA_A | \-ACB | \-ACC | \-AKA | \-AKB | \-AKC | \-AMC\*(C'\fR" 4
-.IX Item "-ACA | -ACA_A | -ACB | -ACC | -AKA | -AKB | -AKC | -AMC"
-Specify which variant of the 960 architecture is the target.
-.Ip "\f(CW\*(C`\-b\*(C'\fR" 4
-.IX Item "-b"
-Add code to collect statistics about branches taken.
-.Ip "\f(CW\*(C`\-no\-relax\*(C'\fR" 4
-.IX Item "-no-relax"
-Do not alter compare-and-branch instructions for long displacements;
-error if necessary.
-.PP
-The following options are available when as is configured for the
-Mitsubishi M32R series.
-.Ip "\f(CW\*(C`\-\-m32rx\*(C'\fR" 4
-.IX Item "--m32rx"
-Specify which processor in the M32R family is the target.  The default
-is normally the M32R, but this option changes it to the M32RX.
-.Ip "\f(CW\*(C`\-\-warn\-explicit\-parallel\-conflicts or \-\-Wp\*(C'\fR" 4
-.IX Item "--warn-explicit-parallel-conflicts or --Wp"
-Produce warning messages when questionable parallel constructs are
-encountered. 
-.Ip "\f(CW\*(C`\-\-no\-warn\-explicit\-parallel\-conflicts or \-\-Wnp\*(C'\fR" 4
-.IX Item "--no-warn-explicit-parallel-conflicts or --Wnp"
-Do not produce warning messages when questionable parallel constructs are 
-encountered. 
-.PP
-The following options are available when as is configured for the
-Motorola 68000 series.
-.Ip "\f(CW\*(C`\-l\*(C'\fR" 4
-.IX Item "-l"
-Shorten references to undefined symbols, to one word instead of two.
-.Ip "\f(CW\*(C`\-m68000 | \-m68008 | \-m68010 | \-m68020 | \-m68030\*(C'\fR" 4
-.IX Item "-m68000 | -m68008 | -m68010 | -m68020 | -m68030"
-.Ip "\f(CW\*(C`| \-m68040 | \-m68060 | \-m68302 | \-m68331 | \-m68332\*(C'\fR" 4
-.IX Item "| -m68040 | -m68060 | -m68302 | -m68331 | -m68332"
-.Ip "\f(CW\*(C`| \-m68333 | \-m68340 | \-mcpu32 | \-m5200\*(C'\fR" 4
-.IX Item "| -m68333 | -m68340 | -mcpu32 | -m5200"
-Specify what processor in the 68000 family is the target.  The default
-is normally the 68020, but this can be changed at configuration time.
-.Ip "\f(CW\*(C`\-m68881 | \-m68882 | \-mno\-68881 | \-mno\-68882\*(C'\fR" 4
-.IX Item "-m68881 | -m68882 | -mno-68881 | -mno-68882"
-The target machine does (or does not) have a floating-point coprocessor.
-The default is to assume a coprocessor for 68020, 68030, and cpu32.  Although
-the basic 68000 is not compatible with the 68881, a combination of the
-two can be specified, since it's possible to do emulation of the
-coprocessor instructions with the main processor.
-.Ip "\f(CW\*(C`\-m68851 | \-mno\-68851\*(C'\fR" 4
-.IX Item "-m68851 | -mno-68851"
-The target machine does (or does not) have a memory-management
-unit coprocessor.  The default is to assume an \s-1MMU\s0 for 68020 and up.
-.PP
-For details about the \s-1PDP-11\s0 machine dependent features options,
-see \f(CW@ref\fR{PDP-11\-Options}.
-.Ip "\f(CW\*(C`\-mpic | \-mno\-pic\*(C'\fR" 4
-.IX Item "-mpic | -mno-pic"
-Generate position-independent (or position-dependent) code.  The
-default is \f(CW\*(C`\-mpic\*(C'\fR.
-.Ip "\f(CW\*(C`\-mall\*(C'\fR" 4
-.IX Item "-mall"
-.Ip "\f(CW\*(C`\-mall\-extensions\*(C'\fR" 4
-.IX Item "-mall-extensions"
-Enable all instruction set extensions.  This is the default.
-.Ip "\f(CW\*(C`\-mno\-extensions\*(C'\fR" 4
-.IX Item "-mno-extensions"
-Disable all instruction set extensions.
-.Ip "\f(CW\*(C`\-m\f(CIextension\f(CW | \-mno\-\f(CIextension\f(CW\*(C'\fR" 4
-.IX Item "-mextension | -mno-extension"
-Enable (or disable) a particular instruction set extension.
-.Ip "\f(CW\*(C`\-m\f(CIcpu\f(CW\*(C'\fR" 4
-.IX Item "-mcpu"
-Enable the instruction set extensions supported by a particular \s-1CPU\s0, and
-disable all other extensions.
-.Ip "\f(CW\*(C`\-m\f(CImachine\f(CW\*(C'\fR" 4
-.IX Item "-mmachine"
-Enable the instruction set extensions supported by a particular machine
-model, and disable all other extensions.
-.PP
-The following options are available when as is configured for
-a picoJava processor.
-.Ip "\f(CW\*(C`\-mb\*(C'\fR" 4
-.IX Item "-mb"
-Generate ``big endian'' format output.
-.Ip "\f(CW\*(C`\-ml\*(C'\fR" 4
-.IX Item "-ml"
-Generate ``little endian'' format output.
-.PP
-The following options are available when as is configured for the
-Motorola 68HC11 or 68HC12 series.
-.Ip "\f(CW\*(C`\-m68hc11 | \-m68hc12\*(C'\fR" 4
-.IX Item "-m68hc11 | -m68hc12"
-Specify what processor is the target.  The default is
-defined by the configuration option when building the assembler.
-.Ip "\f(CW\*(C`\-\-force\-long\-branchs\*(C'\fR" 4
-.IX Item "--force-long-branchs"
-Relative branches are turned into absolute ones. This concerns
-conditional branches, unconditional branches and branches to a
-sub routine.
-.Ip "\f(CW\*(C`\-S | \-\-short\-branchs\*(C'\fR" 4
-.IX Item "-S | --short-branchs"
-Do not turn relative branchs into absolute ones
-when the offset is out of range.
-.Ip "\f(CW\*(C`\-\-strict\-direct\-mode\*(C'\fR" 4
-.IX Item "--strict-direct-mode"
-Do not turn the direct addressing mode into extended addressing mode
-when the instruction does not support direct addressing mode.
-.Ip "\f(CW\*(C`\-\-print\-insn\-syntax\*(C'\fR" 4
-.IX Item "--print-insn-syntax"
-Print the syntax of instruction in case of error.
-.Ip "\f(CW\*(C`\-\-print\-opcodes\*(C'\fR" 4
-.IX Item "--print-opcodes"
-print the list of instructions with syntax and then exit.
-.Ip "\f(CW\*(C`\-\-generate\-example\*(C'\fR" 4
-.IX Item "--generate-example"
-print an example of instruction for each possible instruction and then exit.
-This option is only useful for testing \f(CW\*(C`as\*(C'\fR.
-.PP
-The following options are available when \f(CW\*(C`as\*(C'\fR is configured
-for the \s-1SPARC\s0 architecture:
-.Ip "\f(CW\*(C`\-Av6 | \-Av7 | \-Av8 | \-Asparclet | \-Asparclite\*(C'\fR" 4
-.IX Item "-Av6 | -Av7 | -Av8 | -Asparclet | -Asparclite"
-.Ip "\f(CW\*(C`\-Av8plus | \-Av8plusa | \-Av9 | \-Av9a\*(C'\fR" 4
-.IX Item "-Av8plus | -Av8plusa | -Av9 | -Av9a"
-Explicitly select a variant of the \s-1SPARC\s0 architecture.
-.Sp
-\&\fB\-Av8plus\fR and \fB\-Av8plusa\fR select a 32 bit environment.
-\&\fB\-Av9\fR and \fB\-Av9a\fR select a 64 bit environment.
-.Sp
-\&\fB\-Av8plusa\fR and \fB\-Av9a\fR enable the \s-1SPARC\s0 V9 instruction set with
-UltraSPARC extensions.
-.Ip "\f(CW\*(C`\-xarch=v8plus | \-xarch=v8plusa\*(C'\fR" 4
-.IX Item "-xarch=v8plus | -xarch=v8plusa"
-For compatibility with the Solaris v9 assembler.  These options are
-equivalent to \-Av8plus and \-Av8plusa, respectively.
-.Ip "\f(CW\*(C`\-bump\*(C'\fR" 4
-.IX Item "-bump"
-Warn when the assembler switches to another architecture.
-.PP
-The following options are available when as is configured for
-a \s-1MIPS\s0 processor.
-.Ip "\f(CW\*(C`\-G \f(CInum\f(CW\*(C'\fR" 4
-.IX Item "-G num"
-This option sets the largest size of an object that can be referenced
-implicitly with the \f(CW\*(C`gp\*(C'\fR register.  It is only accepted for targets that
-use \s-1ECOFF\s0 format, such as a DECstation running Ultrix.  The default value is 8.
-.Ip "\f(CW\*(C`\-EB\*(C'\fR" 4
-.IX Item "-EB"
-Generate ``big endian'' format output.
-.Ip "\f(CW\*(C`\-EL\*(C'\fR" 4
-.IX Item "-EL"
-Generate ``little endian'' format output.
-.Ip "\f(CW\*(C`\-mips1\*(C'\fR" 4
-.IX Item "-mips1"
-.Ip "\f(CW\*(C`\-mips2\*(C'\fR" 4
-.IX Item "-mips2"
-.Ip "\f(CW\*(C`\-mips3\*(C'\fR" 4
-.IX Item "-mips3"
-.Ip "\f(CW\*(C`\-mips4\*(C'\fR" 4
-.IX Item "-mips4"
-.Ip "\f(CW\*(C`\-mips32\*(C'\fR" 4
-.IX Item "-mips32"
-Generate code for a particular \s-1MIPS\s0 Instruction Set Architecture level.
-\&\fB\-mips1\fR corresponds to the R2000 and R3000 processors,
-\&\fB\-mips2\fR to the R6000 processor, and \fB\-mips3\fR to the R4000
-processor.
-\&\fB\-mips5\fR, \fB\-mips32\fR, and \fB\-mips64\fR correspond
-to generic \s-1MIPS\s0 V, \s-1MIPS32\s0, and \s-1MIPS64\s0 \s-1ISA\s0
-processors, respectively.
-.Ip "\f(CW\*(C`\-m4650\*(C'\fR" 4
-.IX Item "-m4650"
-.Ip "\f(CW\*(C`\-no\-m4650\*(C'\fR" 4
-.IX Item "-no-m4650"
-Generate code for the \s-1MIPS\s0 R4650 chip.  This tells the assembler to accept
-the \fBmad\fR and \fBmadu\fR instruction, and to not schedule \fBnop\fR
-instructions around accesses to the \fB\s-1HI\s0\fR and \fB\s-1LO\s0\fR registers.
-\&\fB\-no-m4650\fR turns off this option.
-.Ip "\f(CW\*(C`\-mcpu=\f(CI\s\-1CPU\s0\f(CW\*(C'\fR" 4
-.IX Item "-mcpu=CPU"
-Generate code for a particular \s-1MIPS\s0 cpu.  It is exactly equivalent to
-\&\fB\-m\fR\fIcpu\fR, except that there are more value of \fIcpu\fR
-understood.
-.Ip "\f(CW\*(C`\-\-emulation=\f(CIname\f(CW\*(C'\fR" 4
-.IX Item "--emulation=name"
-This option causes \f(CW\*(C`as\*(C'\fR to emulate \f(CW\*(C`as\*(C'\fR configured
-for some other target, in all respects, including output format (choosing
-between \s-1ELF\s0 and \s-1ECOFF\s0 only), handling of pseudo-opcodes which may generate
-debugging information or store symbol table information, and default
-endianness.  The available configuration names are: \fBmipsecoff\fR,
-\&\fBmipself\fR, \fBmipslecoff\fR, \fBmipsbecoff\fR, \fBmipslelf\fR,
-\&\fBmipsbelf\fR.  The first two do not alter the default endianness from that
-of the primary target for which the assembler was configured; the others change
-the default to little- or big-endian as indicated by the \fBb\fR or \fBl\fR
-in the name.  Using \fB\-EB\fR or \fB\-EL\fR will override the endianness
-selection in any case.
-.Sp
-This option is currently supported only when the primary target
-\&\f(CW\*(C`as\*(C'\fR is configured for is a \s-1MIPS\s0 \s-1ELF\s0 or \s-1ECOFF\s0 target.
-Furthermore, the primary target or others specified with
-\&\fB\*(--enable-targets=...\fR at configuration time must include support for
-the other format, if both are to be available.  For example, the Irix 5
-configuration includes support for both.
-.Sp
-Eventually, this option will support more configurations, with more
-fine-grained control over the assembler's behavior, and will be supported for
-more processors.
-.Ip "\f(CW\*(C`\-nocpp\*(C'\fR" 4
-.IX Item "-nocpp"
-\&\f(CW\*(C`as\*(C'\fR ignores this option.  It is accepted for compatibility with
-the native tools.
-.Ip "\f(CW\*(C`\-\-trap\*(C'\fR" 4
-.IX Item "--trap"
-.Ip "\f(CW\*(C`\-\-no\-trap\*(C'\fR" 4
-.IX Item "--no-trap"
-.Ip "\f(CW\*(C`\-\-break\*(C'\fR" 4
-.IX Item "--break"
-.Ip "\f(CW\*(C`\-\-no\-break\*(C'\fR" 4
-.IX Item "--no-break"
-Control how to deal with multiplication overflow and division by zero.
-\&\fB\*(--trap\fR or \fB\*(--no-break\fR (which are synonyms) take a trap exception
-(and only work for Instruction Set Architecture level 2 and higher);
-\&\fB\*(--break\fR or \fB\*(--no-trap\fR (also synonyms, and the default) take a
-break exception.
-.Ip "\f(CW\*(C`\-n\*(C'\fR" 4
-.IX Item "-n"
-When this option is used, \f(CW\*(C`as\*(C'\fR will issue a warning every
-time it generates a nop instruction from a macro.
-.PP
-The following options are available when as is configured for
-an MCore processor.
-.Ip "\f(CW\*(C`\-jsri2bsr\*(C'\fR" 4
-.IX Item "-jsri2bsr"
-.Ip "\f(CW\*(C`\-nojsri2bsr\*(C'\fR" 4
-.IX Item "-nojsri2bsr"
-Enable or disable the \s-1JSRI\s0 to \s-1BSR\s0 transformation.  By default this is enabled.
-The command line option \fB\-nojsri2bsr\fR can be used to disable it.
-.Ip "\f(CW\*(C`\-sifilter\*(C'\fR" 4
-.IX Item "-sifilter"
-.Ip "\f(CW\*(C`\-nosifilter\*(C'\fR" 4
-.IX Item "-nosifilter"
-Enable or disable the silicon filter behaviour.  By default this is disabled.
-The default can be overridden by the \fB\-sifilter\fR command line option.
-.Ip "\f(CW\*(C`\-relax\*(C'\fR" 4
-.IX Item "-relax"
-Alter jump instructions for long displacements.
-.Ip "\f(CW\*(C`\-mcpu=[210|340]\*(C'\fR" 4
-.IX Item "-mcpu=[210|340]"
-Select the cpu type on the target hardware.  This controls which instructions
-can be assembled.
-.Ip "\f(CW\*(C`\-EB\*(C'\fR" 4
-.IX Item "-EB"
-Assemble for a big endian target.
-.Ip "\f(CW\*(C`\-EL\*(C'\fR" 4
-.IX Item "-EL"
-Assemble for a little endian target.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-\&\fIgcc\fR\|(1), \fIld\fR\|(1), and the Info entries for \fIbinutils\fR and \fIld\fR.
-.SH "COPYRIGHT"
-.IX Header "COPYRIGHT"
-Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001 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 \*(L"\s-1GNU\s0 Free Documentation License\*(R".
index 11518edd202971b0b0308a79edadad401ef62f70..d1038326e354ed51b816300b0f4c203c0f84fad2 100644 (file)
@@ -92,6 +92,8 @@ config/tc-mn10300.c
 config/tc-mn10300.h
 config/tc-ns32k.c
 config/tc-ns32k.h
 config/tc-mn10300.h
 config/tc-ns32k.c
 config/tc-ns32k.h
+config/tc-openrisc.c
+config/tc-openrisc.h
 config/tc-pdp11.c
 config/tc-pdp11.h
 config/tc-pj.c
 config/tc-pdp11.c
 config/tc-pdp11.h
 config/tc-pj.c
index 14ec278eab17354b2493befdfb1d3f78867bf1c2..23b2e24d07fd1ed3e204ce781160540f6b15a4f9 100644 (file)
@@ -6,7 +6,7 @@
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
 msgid ""
 msgstr ""
 "Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 2001-04-27 15:23+0100\n"
+"POT-Creation-Date: 2001-06-13 12:54+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -95,144 +95,142 @@ msgid ""
 "                      \t  m      include macro expansions\n"
 "                      \t  n      omit forms processing\n"
 "                      \t  s      include symbols\n"
 "                      \t  m      include macro expansions\n"
 "                      \t  n      omit forms processing\n"
 "                      \t  s      include symbols\n"
-"                      \t  L      include line debug statistics (if "
-"applicable)\n"
 "                      \t  =FILE  list to FILE (must be last sub-option)\n"
 msgstr ""
 
 "                      \t  =FILE  list to FILE (must be last sub-option)\n"
 msgstr ""
 
-#: as.c:238
+#: as.c:237
 msgid "  -D                      produce assembler debugging messages\n"
 msgstr ""
 
 msgid "  -D                      produce assembler debugging messages\n"
 msgstr ""
 
-#: as.c:240
+#: as.c:239
 msgid "  --defsym SYM=VAL        define symbol SYM to given value\n"
 msgstr ""
 
 msgid "  --defsym SYM=VAL        define symbol SYM to given value\n"
 msgstr ""
 
-#: as.c:256
+#: as.c:255
 #, c-format
 msgid "                          emulate output (default %s)\n"
 msgstr ""
 
 #, c-format
 msgid "                          emulate output (default %s)\n"
 msgstr ""
 
-#: as.c:260
+#: as.c:259
 msgid "  -f                      skip whitespace and comment preprocessing\n"
 msgstr ""
 
 msgid "  -f                      skip whitespace and comment preprocessing\n"
 msgstr ""
 
-#: as.c:262
+#: as.c:261
 msgid "  --gstabs                generate stabs debugging information\n"
 msgstr ""
 
 msgid "  --gstabs                generate stabs debugging information\n"
 msgstr ""
 
-#: as.c:264
+#: as.c:263
 msgid "  --gdwarf2               generate DWARF2 debugging information\n"
 msgstr ""
 
 msgid "  --gdwarf2               generate DWARF2 debugging information\n"
 msgstr ""
 
-#: as.c:266
+#: as.c:265
 msgid "  --help                  show this message and exit\n"
 msgstr ""
 
 msgid "  --help                  show this message and exit\n"
 msgstr ""
 
-#: as.c:268
+#: as.c:267
 msgid "  --target-help           show target specific options\n"
 msgstr ""
 
 msgid "  --target-help           show target specific options\n"
 msgstr ""
 
-#: as.c:270
+#: as.c:269
 msgid ""
 "  -I DIR                  add DIR to search list for .include directives\n"
 msgstr ""
 
 msgid ""
 "  -I DIR                  add DIR to search list for .include directives\n"
 msgstr ""
 
-#: as.c:272
+#: as.c:271
 msgid "  -J                      don't warn about signed overflow\n"
 msgstr ""
 
 msgid "  -J                      don't warn about signed overflow\n"
 msgstr ""
 
-#: as.c:274
+#: as.c:273
 msgid ""
 "  -K                      warn when differences altered for long "
 "displacements\n"
 msgstr ""
 
 msgid ""
 "  -K                      warn when differences altered for long "
 "displacements\n"
 msgstr ""
 
-#: as.c:276
+#: as.c:275
 msgid "  -L,--keep-locals        keep local symbols (e.g. starting with `L')\n"
 msgstr ""
 
 msgid "  -L,--keep-locals        keep local symbols (e.g. starting with `L')\n"
 msgstr ""
 
-#: as.c:278
+#: as.c:277
 msgid "  -M,--mri                assemble in MRI compatibility mode\n"
 msgstr ""
 
 msgid "  -M,--mri                assemble in MRI compatibility mode\n"
 msgstr ""
 
-#: as.c:280
+#: as.c:279
 msgid ""
 "  --MD FILE               write dependency information in FILE (default "
 "none)\n"
 msgstr ""
 
 msgid ""
 "  --MD FILE               write dependency information in FILE (default "
 "none)\n"
 msgstr ""
 
-#: as.c:282
+#: as.c:281
 msgid "  -nocpp                  ignored\n"
 msgstr ""
 
 msgid "  -nocpp                  ignored\n"
 msgstr ""
 
-#: as.c:284
+#: as.c:283
 msgid ""
 "  -o OBJFILE              name the object-file output OBJFILE (default "
 "a.out)\n"
 msgstr ""
 
 msgid ""
 "  -o OBJFILE              name the object-file output OBJFILE (default "
 "a.out)\n"
 msgstr ""
 
-#: as.c:286
+#: as.c:285
 msgid "  -R                      fold data section into text section\n"
 msgstr ""
 
 msgid "  -R                      fold data section into text section\n"
 msgstr ""
 
-#: as.c:288
+#: as.c:287
 msgid ""
 "  --statistics            print various measured statistics from execution\n"
 msgstr ""
 
 msgid ""
 "  --statistics            print various measured statistics from execution\n"
 msgstr ""
 
-#: as.c:290
+#: as.c:289
 msgid "  --strip-local-absolute  strip local absolute symbols\n"
 msgstr ""
 
 msgid "  --strip-local-absolute  strip local absolute symbols\n"
 msgstr ""
 
-#: as.c:292
+#: as.c:291
 msgid ""
 "  --traditional-format    Use same format as native assembler when possible\n"
 msgstr ""
 
 msgid ""
 "  --traditional-format    Use same format as native assembler when possible\n"
 msgstr ""
 
-#: as.c:294
+#: as.c:293
 msgid "  --version               print assembler version number and exit\n"
 msgstr ""
 
 msgid "  --version               print assembler version number and exit\n"
 msgstr ""
 
-#: as.c:296
+#: as.c:295
 msgid "  -W  --no-warn           suppress warnings\n"
 msgstr ""
 
 msgid "  -W  --no-warn           suppress warnings\n"
 msgstr ""
 
-#: as.c:298
+#: as.c:297
 msgid "  --warn                  don't suppress warnings\n"
 msgstr ""
 
 msgid "  --warn                  don't suppress warnings\n"
 msgstr ""
 
-#: as.c:300
+#: as.c:299
 msgid "  --fatal-warnings        treat warnings as errors\n"
 msgstr ""
 
 msgid "  --fatal-warnings        treat warnings as errors\n"
 msgstr ""
 
-#: as.c:302
+#: as.c:301
 msgid ""
 "  --itbl INSTTBL          extend instruction set to include instructions\n"
 "                          matching the specifications defined in file "
 "INSTTBL\n"
 msgstr ""
 
 msgid ""
 "  --itbl INSTTBL          extend instruction set to include instructions\n"
 "                          matching the specifications defined in file "
 "INSTTBL\n"
 msgstr ""
 
-#: as.c:305
+#: as.c:304
 msgid "  -w                      ignored\n"
 msgstr ""
 
 msgid "  -w                      ignored\n"
 msgstr ""
 
-#: as.c:307
+#: as.c:306
 msgid "  -X                      ignored\n"
 msgstr ""
 
 msgid "  -X                      ignored\n"
 msgstr ""
 
-#: as.c:309
+#: as.c:308
 msgid "  -Z                      generate object file even after errors\n"
 msgstr ""
 
 msgid "  -Z                      generate object file even after errors\n"
 msgstr ""
 
-#: as.c:311
+#: as.c:310
 msgid ""
 "  --listing-lhs-width     set the width in words of the output data column "
 "of\n"
 "                          the listing\n"
 msgstr ""
 
 msgid ""
 "  --listing-lhs-width     set the width in words of the output data column "
 "of\n"
 "                          the listing\n"
 msgstr ""
 
-#: as.c:314
+#: as.c:313
 msgid ""
 "  --listing-lhs-width2    set the width in words of the continuation lines\n"
 "                          of the output data column; ignored if smaller "
 msgid ""
 "  --listing-lhs-width2    set the width in words of the continuation lines\n"
 "                          of the output data column; ignored if smaller "
@@ -240,106 +238,106 @@ msgid ""
 "                          the width of the first line\n"
 msgstr ""
 
 "                          the width of the first line\n"
 msgstr ""
 
-#: as.c:318
+#: as.c:317
 msgid ""
 "  --listing-rhs-width     set the max width in characters of the lines from\n"
 "                          the source file\n"
 msgstr ""
 
 msgid ""
 "  --listing-rhs-width     set the max width in characters of the lines from\n"
 "                          the source file\n"
 msgstr ""
 
-#: as.c:321
+#: as.c:320
 msgid ""
 "  --listing-cont-lines    set the maximum number of continuation lines used\n"
 "                          for the output data column of the listing\n"
 msgstr ""
 
 msgid ""
 "  --listing-cont-lines    set the maximum number of continuation lines used\n"
 "                          for the output data column of the listing\n"
 msgstr ""
 
-#: as.c:328 gasp.c:3527
+#: as.c:327 gasp.c:3527
 #, c-format
 msgid "Report bugs to %s\n"
 msgstr ""
 
 #. This output is intended to follow the GNU standards document.
 #, c-format
 msgid "Report bugs to %s\n"
 msgstr ""
 
 #. This output is intended to follow the GNU standards document.
-#: as.c:528
+#: as.c:527
 #, c-format
 msgid "GNU assembler %s\n"
 msgstr ""
 
 #, c-format
 msgid "GNU assembler %s\n"
 msgstr ""
 
-#: as.c:529
+#: as.c:528
 msgid "Copyright 2001 Free Software Foundation, Inc.\n"
 msgstr ""
 
 msgid "Copyright 2001 Free Software Foundation, Inc.\n"
 msgstr ""
 
-#: as.c:530 gasp.c:3621
+#: as.c:529 gasp.c:3621
 msgid ""
 "This program is free software; you may redistribute it under the terms of\n"
 "the GNU General Public License.  This program has absolutely no warranty.\n"
 msgstr ""
 
 msgid ""
 "This program is free software; you may redistribute it under the terms of\n"
 "the GNU General Public License.  This program has absolutely no warranty.\n"
 msgstr ""
 
-#: as.c:533
+#: as.c:532
 #, c-format
 msgid "This assembler was configured for a target of `%s'.\n"
 msgstr ""
 
 #, c-format
 msgid "This assembler was configured for a target of `%s'.\n"
 msgstr ""
 
-#: as.c:540
+#: as.c:539
 msgid "multiple emulation names specified"
 msgstr ""
 
 msgid "multiple emulation names specified"
 msgstr ""
 
-#: as.c:542
+#: as.c:541
 msgid "emulations not handled in this configuration"
 msgstr ""
 
 msgid "emulations not handled in this configuration"
 msgstr ""
 
-#: as.c:547
+#: as.c:546
 #, c-format
 msgid "alias = %s\n"
 msgstr ""
 
 #, c-format
 msgid "alias = %s\n"
 msgstr ""
 
-#: as.c:548
+#: as.c:547
 #, c-format
 msgid "canonical = %s\n"
 msgstr ""
 
 #, c-format
 msgid "canonical = %s\n"
 msgstr ""
 
-#: as.c:549
+#: as.c:548
 #, c-format
 msgid "cpu-type = %s\n"
 msgstr ""
 
 #, c-format
 msgid "cpu-type = %s\n"
 msgstr ""
 
-#: as.c:551
+#: as.c:550
 #, c-format
 msgid "format = %s\n"
 msgstr ""
 
 #, c-format
 msgid "format = %s\n"
 msgstr ""
 
-#: as.c:554
+#: as.c:553
 #, c-format
 msgid "bfd-target = %s\n"
 msgstr ""
 
 #, c-format
 msgid "bfd-target = %s\n"
 msgstr ""
 
-#: as.c:567
+#: as.c:566
 msgid "bad defsym; format is --defsym name=value"
 msgstr ""
 
 msgid "bad defsym; format is --defsym name=value"
 msgstr ""
 
-#: as.c:591
+#: as.c:590
 msgid "No file name following -t option\n"
 msgstr ""
 
 msgid "No file name following -t option\n"
 msgstr ""
 
-#: as.c:607
+#: as.c:606
 #, c-format
 msgid "Failed to read instruction table %s\n"
 msgstr ""
 
 #, c-format
 msgid "Failed to read instruction table %s\n"
 msgstr ""
 
-#: as.c:724
+#: as.c:723
 #, c-format
 msgid "invalid listing option `%c'"
 msgstr ""
 
 #, c-format
 msgid "invalid listing option `%c'"
 msgstr ""
 
-#: as.c:923
+#: as.c:922
 #, c-format
 msgid "%d warnings, treating warnings as errors"
 msgstr ""
 
 #, c-format
 msgid "%d warnings, treating warnings as errors"
 msgstr ""
 
-#: as.c:954
+#: as.c:953
 #, c-format
 msgid "%s: total time in assembly: %ld.%06ld\n"
 msgstr ""
 
 #, c-format
 msgid "%s: total time in assembly: %ld.%06ld\n"
 msgstr ""
 
-#: as.c:957
+#: as.c:956
 #, c-format
 msgid "%s: data size %ld\n"
 msgstr ""
 #, c-format
 msgid "%s: data size %ld\n"
 msgstr ""
@@ -349,7 +347,7 @@ msgstr ""
 #. * This should never happen.
 #.
 #: atof-generic.c:437 config/tc-a29k.c:544 config/tc-i860.c:340
 #. * This should never happen.
 #.
 #: atof-generic.c:437 config/tc-a29k.c:544 config/tc-i860.c:340
-#: config/tc-i860.c:832 config/tc-m68k.c:3190 config/tc-m68k.c:3219
+#: config/tc-i860.c:832 config/tc-m68k.c:3180 config/tc-m68k.c:3209
 #: config/tc-sparc.c:2544
 msgid "failed sanity check."
 msgstr ""
 #: config/tc-sparc.c:2544
 msgid "failed sanity check."
 msgstr ""
@@ -428,17 +426,17 @@ msgstr ""
 msgid "Attempt to put an undefined symbol into set %s"
 msgstr ""
 
 msgid "Attempt to put an undefined symbol into set %s"
 msgstr ""
 
-#: config/obj-aout.c:197 config/obj-coff.c:1247 config/obj-elf.c:1773
+#: config/obj-aout.c:197 config/obj-coff.c:1252 config/obj-elf.c:1773
 #: ecoff.c:3648
 #, c-format
 msgid "Symbol `%s' can not be both weak and common"
 msgstr ""
 
 #: ecoff.c:3648
 #, c-format
 msgid "Symbol `%s' can not be both weak and common"
 msgstr ""
 
-#: config/obj-aout.c:255 config/obj-coff.c:1983
+#: config/obj-aout.c:255 config/obj-coff.c:1987
 msgid "unresolved relocation"
 msgstr ""
 
 msgid "unresolved relocation"
 msgstr ""
 
-#: config/obj-aout.c:257 config/obj-coff.c:1985
+#: config/obj-aout.c:257 config/obj-coff.c:1989
 #, c-format
 msgid "bad relocation: symbol `%s' not in symbol table"
 msgstr ""
 #, c-format
 msgid "bad relocation: symbol `%s' not in symbol table"
 msgstr ""
@@ -448,7 +446,7 @@ msgstr ""
 msgid "%s: bad type for weak symbol"
 msgstr ""
 
 msgid "%s: bad type for weak symbol"
 msgstr ""
 
-#: config/obj-aout.c:458 config/obj-coff.c:2914 write.c:1933
+#: config/obj-aout.c:458 config/obj-coff.c:2917 write.c:1932
 #, c-format
 msgid "%s: global symbols not supported in common sections"
 msgstr ""
 #, c-format
 msgid "%s: global symbols not supported in common sections"
 msgstr ""
@@ -473,170 +471,170 @@ msgid "Inserting \"%s\" into structure table failed: %s"
 msgstr ""
 
 #. Zero is used as an end marker in the file.
 msgstr ""
 
 #. Zero is used as an end marker in the file.
-#: config/obj-coff.c:452
+#: config/obj-coff.c:456
 msgid "Line numbers must be positive integers\n"
 msgstr ""
 
 msgid "Line numbers must be positive integers\n"
 msgstr ""
 
-#: config/obj-coff.c:485 config/obj-coff.c:2329
+#: config/obj-coff.c:490 config/obj-coff.c:2332
 msgid ".ln pseudo-op inside .def/.endef: ignored."
 msgstr ""
 
 msgid ".ln pseudo-op inside .def/.endef: ignored."
 msgstr ""
 
-#: config/obj-coff.c:528 ecoff.c:3284
+#: config/obj-coff.c:533 ecoff.c:3284
 msgid ".loc outside of .text"
 msgstr ""
 
 msgid ".loc outside of .text"
 msgstr ""
 
-#: config/obj-coff.c:535
+#: config/obj-coff.c:540
 msgid ".loc pseudo-op inside .def/.endef: ignored."
 msgstr ""
 
 msgid ".loc pseudo-op inside .def/.endef: ignored."
 msgstr ""
 
-#: config/obj-coff.c:623 config/obj-coff.c:2386
+#: config/obj-coff.c:628 config/obj-coff.c:2389
 msgid ".def pseudo-op used inside of .def/.endef: ignored."
 msgstr ""
 
 msgid ".def pseudo-op used inside of .def/.endef: ignored."
 msgstr ""
 
-#: config/obj-coff.c:669 config/obj-coff.c:2438
+#: config/obj-coff.c:674 config/obj-coff.c:2441
 msgid ".endef pseudo-op used outside of .def/.endef: ignored."
 msgstr ""
 
 msgid ".endef pseudo-op used outside of .def/.endef: ignored."
 msgstr ""
 
-#: config/obj-coff.c:707
+#: config/obj-coff.c:712
 #, c-format
 msgid "`%s' symbol without preceding function"
 msgstr ""
 
 #, c-format
 msgid "`%s' symbol without preceding function"
 msgstr ""
 
-#: config/obj-coff.c:794 config/obj-coff.c:2513
+#: config/obj-coff.c:799 config/obj-coff.c:2516
 #, c-format
 msgid "unexpected storage class %d"
 msgstr ""
 
 #, c-format
 msgid "unexpected storage class %d"
 msgstr ""
 
-#: config/obj-coff.c:907 config/obj-coff.c:2620
+#: config/obj-coff.c:912 config/obj-coff.c:2623
 msgid ".dim pseudo-op used outside of .def/.endef: ignored."
 msgstr ""
 
 msgid ".dim pseudo-op used outside of .def/.endef: ignored."
 msgstr ""
 
-#: config/obj-coff.c:927 config/obj-coff.c:2640
+#: config/obj-coff.c:932 config/obj-coff.c:2643
 msgid "badly formed .dim directive ignored"
 msgstr ""
 
 msgid "badly formed .dim directive ignored"
 msgstr ""
 
-#: config/obj-coff.c:978 config/obj-coff.c:2703
+#: config/obj-coff.c:983 config/obj-coff.c:2706
 msgid ".size pseudo-op used outside of .def/.endef ignored."
 msgstr ""
 
 msgid ".size pseudo-op used outside of .def/.endef ignored."
 msgstr ""
 
-#: config/obj-coff.c:994 config/obj-coff.c:2719
+#: config/obj-coff.c:999 config/obj-coff.c:2722
 msgid ".scl pseudo-op used outside of .def/.endef ignored."
 msgstr ""
 
 msgid ".scl pseudo-op used outside of .def/.endef ignored."
 msgstr ""
 
-#: config/obj-coff.c:1012 config/obj-coff.c:2737
+#: config/obj-coff.c:1017 config/obj-coff.c:2740
 msgid ".tag pseudo-op used outside of .def/.endef ignored."
 msgstr ""
 
 msgid ".tag pseudo-op used outside of .def/.endef ignored."
 msgstr ""
 
-#: config/obj-coff.c:1031 config/obj-coff.c:2755
+#: config/obj-coff.c:1036 config/obj-coff.c:2758
 #, c-format
 msgid "tag not found for .tag %s"
 msgstr ""
 
 #, c-format
 msgid "tag not found for .tag %s"
 msgstr ""
 
-#: config/obj-coff.c:1046 config/obj-coff.c:2770
+#: config/obj-coff.c:1051 config/obj-coff.c:2773
 msgid ".type pseudo-op used outside of .def/.endef ignored."
 msgstr ""
 
 msgid ".type pseudo-op used outside of .def/.endef ignored."
 msgstr ""
 
-#: config/obj-coff.c:1068 config/obj-coff.c:2792
+#: config/obj-coff.c:1073 config/obj-coff.c:2795
 msgid ".val pseudo-op used outside of .def/.endef ignored."
 msgstr ""
 
 msgid ".val pseudo-op used outside of .def/.endef ignored."
 msgstr ""
 
-#: config/obj-coff.c:1208 config/obj-coff.c:2987
+#: config/obj-coff.c:1213 config/obj-coff.c:2990
 msgid "mismatched .eb"
 msgstr ""
 
 msgid "mismatched .eb"
 msgstr ""
 
-#: config/obj-coff.c:1226 config/obj-coff.c:3027
+#: config/obj-coff.c:1231 config/obj-coff.c:3030
 msgid "C_EFCN symbol out of scope"
 msgstr ""
 
 #. STYP_INFO
 #. STYP_LIB
 #. STYP_OVER
 msgid "C_EFCN symbol out of scope"
 msgstr ""
 
 #. STYP_INFO
 #. STYP_LIB
 #. STYP_OVER
-#: config/obj-coff.c:1448
+#: config/obj-coff.c:1453
 #, c-format
 msgid "unsupported section attribute '%c'"
 msgstr ""
 
 #, c-format
 msgid "unsupported section attribute '%c'"
 msgstr ""
 
-#: config/obj-coff.c:1453 config/obj-coff.c:3728 config/tc-ppc.c:3925
+#: config/obj-coff.c:1458 config/obj-coff.c:3734 config/tc-ppc.c:3945
 #, c-format
 msgid "unknown section attribute '%c'"
 msgstr ""
 
 #, c-format
 msgid "unknown section attribute '%c'"
 msgstr ""
 
-#: config/obj-coff.c:1483 config/tc-ppc.c:3943 read.c:2520
+#: config/obj-coff.c:1488 config/tc-ppc.c:3963 read.c:2520
 #, c-format
 msgid "error setting flags for \"%s\": %s"
 msgstr ""
 
 #, c-format
 msgid "error setting flags for \"%s\": %s"
 msgstr ""
 
-#: config/obj-coff.c:1494 config/obj-elf.c:727
+#: config/obj-coff.c:1499 config/obj-elf.c:727
 #, c-format
 msgid "Ignoring changed section attributes for %s"
 msgstr ""
 
 #, c-format
 msgid "Ignoring changed section attributes for %s"
 msgstr ""
 
-#: config/obj-coff.c:1630
+#: config/obj-coff.c:1635
 #, c-format
 msgid "0x%lx: \"%s\" type = %ld, class = %d, segment = %d\n"
 msgstr ""
 
 #, c-format
 msgid "0x%lx: \"%s\" type = %ld, class = %d, segment = %d\n"
 msgstr ""
 
-#: config/obj-coff.c:1810 config/obj-ieee.c:69
+#: config/obj-coff.c:1815 config/obj-ieee.c:69
 msgid "Out of step\n"
 msgstr ""
 
 msgid "Out of step\n"
 msgstr ""
 
-#: config/obj-coff.c:2245
+#: config/obj-coff.c:2248
 msgid "bfd_coff_swap_scnhdr_out failed"
 msgstr ""
 
 msgid "bfd_coff_swap_scnhdr_out failed"
 msgstr ""
 
-#: config/obj-coff.c:2470
+#: config/obj-coff.c:2473
 msgid "`.bf' symbol without preceding function\n"
 msgstr ""
 
 msgid "`.bf' symbol without preceding function\n"
 msgstr ""
 
-#: config/obj-coff.c:3424 config/obj-ieee.c:507 output-file.c:52
+#: config/obj-coff.c:3427 config/obj-ieee.c:507 output-file.c:52
 #: output-file.c:119
 #, c-format
 msgid "FATAL: Can't create %s"
 msgstr ""
 
 #: output-file.c:119
 #, c-format
 msgid "FATAL: Can't create %s"
 msgstr ""
 
-#: config/obj-coff.c:3602
+#: config/obj-coff.c:3608
 #, c-format
 msgid "Can't close %s: %s"
 msgstr ""
 
 #, c-format
 msgid "Can't close %s: %s"
 msgstr ""
 
-#: config/obj-coff.c:3636
+#: config/obj-coff.c:3642
 #, c-format
 msgid "Too many new sections; can't add \"%s\""
 msgstr ""
 
 #, c-format
 msgid "Too many new sections; can't add \"%s\""
 msgstr ""
 
-#: config/obj-coff.c:4043 config/tc-m88k.c:1258 config/tc-sparc.c:3532
+#: config/obj-coff.c:4049 config/tc-m88k.c:1258 config/tc-sparc.c:3538
 msgid "Expected comma after name"
 msgstr ""
 
 msgid "Expected comma after name"
 msgstr ""
 
-#: config/obj-coff.c:4049 read.c:1956
+#: config/obj-coff.c:4055 read.c:1956
 msgid "Missing size expression"
 msgstr ""
 
 msgid "Missing size expression"
 msgstr ""
 
-#: config/obj-coff.c:4055
+#: config/obj-coff.c:4061
 #, c-format
 msgid "lcomm length (%d.) <0! Ignored."
 msgstr ""
 
 #, c-format
 msgid "lcomm length (%d.) <0! Ignored."
 msgstr ""
 
-#: config/obj-coff.c:4083 read.c:2190
+#: config/obj-coff.c:4089 read.c:2190
 #, c-format
 msgid "Symbol %s already defined"
 msgstr ""
 
 #, c-format
 msgid "Symbol %s already defined"
 msgstr ""
 
-#: config/obj-coff.c:4178 config/tc-i960.c:3215
+#: config/obj-coff.c:4184 config/tc-i960.c:3215
 #, c-format
 msgid "No 'bal' entry point for leafproc %s"
 msgstr ""
 
 #, c-format
 msgid "No 'bal' entry point for leafproc %s"
 msgstr ""
 
-#: config/obj-coff.c:4257 write.c:2639
+#: config/obj-coff.c:4263 write.c:2648
 #, c-format
 msgid "Negative of non-absolute symbol %s"
 msgstr ""
 
 #, c-format
 msgid "Negative of non-absolute symbol %s"
 msgstr ""
 
-#: config/obj-coff.c:4278 write.c:2653
+#: config/obj-coff.c:4284 write.c:2662
 msgid "callj to difference of 2 symbols"
 msgstr ""
 
 msgid "callj to difference of 2 symbols"
 msgstr ""
 
-#: config/obj-coff.c:4324
+#: config/obj-coff.c:4330
 #, c-format
 msgid "Can't emit reloc {- %s-seg symbol \"%s\"} @ file address %ld."
 msgstr ""
 #, c-format
 msgid "Can't emit reloc {- %s-seg symbol \"%s\"} @ file address %ld."
 msgstr ""
@@ -644,16 +642,16 @@ msgstr ""
 #. This is a COBR instruction.  They have only a 13-bit
 #. displacement and are only to be used for local branches:
 #. flag as error, don't generate relocation.
 #. This is a COBR instruction.  They have only a 13-bit
 #. displacement and are only to be used for local branches:
 #. flag as error, don't generate relocation.
-#: config/obj-coff.c:4413 config/tc-i960.c:3235 write.c:2797
+#: config/obj-coff.c:4419 config/tc-i960.c:3235 write.c:2806
 msgid "can't use COBR format with external label"
 msgstr ""
 
 msgid "can't use COBR format with external label"
 msgstr ""
 
-#: config/obj-coff.c:4492
+#: config/obj-coff.c:4498
 #, c-format
 msgid "Value of %ld too large for field of %d bytes at 0x%lx"
 msgstr ""
 
 #, c-format
 msgid "Value of %ld too large for field of %d bytes at 0x%lx"
 msgstr ""
 
-#: config/obj-coff.c:4506 write.c:2887
+#: config/obj-coff.c:4512 write.c:2896
 #, c-format
 msgid "Signed .word overflow; switch may be too large; %ld at 0x%lx"
 msgstr ""
 #, c-format
 msgid "Signed .word overflow; switch may be too large; %ld at 0x%lx"
 msgstr ""
@@ -666,35 +664,35 @@ msgstr ""
 msgid "Can't set register masks"
 msgstr ""
 
 msgid "Can't set register masks"
 msgstr ""
 
-#: config/obj-elf.c:308 config/tc-sparc.c:3675 config/tc-v850.c:259
+#: config/obj-elf.c:308 config/tc-sparc.c:3681 config/tc-v850.c:260
 msgid "Expected comma after symbol-name"
 msgstr ""
 
 msgid "Expected comma after symbol-name"
 msgstr ""
 
-#: config/obj-elf.c:315 config/tc-sparc.c:3685
+#: config/obj-elf.c:315 config/tc-sparc.c:3691
 #, c-format
 msgid ".COMMon length (%d.) <0! Ignored."
 msgstr ""
 
 #, c-format
 msgid ".COMMon length (%d.) <0! Ignored."
 msgstr ""
 
-#: config/obj-elf.c:325 config/tc-alpha.c:4332 config/tc-sparc.c:3695
-#: config/tc-v850.c:282
+#: config/obj-elf.c:325 config/tc-alpha.c:4332 config/tc-sparc.c:3701
+#: config/tc-v850.c:283
 msgid "Ignoring attempt to re-define symbol"
 msgstr ""
 
 msgid "Ignoring attempt to re-define symbol"
 msgstr ""
 
-#: config/obj-elf.c:333 config/tc-sparc.c:3703 config/tc-v850.c:292
+#: config/obj-elf.c:333 config/tc-sparc.c:3709 config/tc-v850.c:293
 #, c-format
 msgid "Length of .comm \"%s\" is already %ld. Not changed to %d."
 msgstr ""
 
 #, c-format
 msgid "Length of .comm \"%s\" is already %ld. Not changed to %d."
 msgstr ""
 
-#: config/obj-elf.c:356 config/tc-v850.c:319
+#: config/obj-elf.c:356 config/tc-v850.c:320
 msgid "Common alignment negative; 0 assumed"
 msgstr ""
 
 #: config/obj-elf.c:375 config/tc-m32r.c:1287 config/tc-ppc.c:1518
 msgid "Common alignment negative; 0 assumed"
 msgstr ""
 
 #: config/obj-elf.c:375 config/tc-m32r.c:1287 config/tc-ppc.c:1518
-#: config/tc-v850.c:382
+#: config/tc-v850.c:383
 msgid "Common alignment not a power of 2"
 msgstr ""
 
 msgid "Common alignment not a power of 2"
 msgstr ""
 
-#: config/obj-elf.c:438 config/tc-sparc.c:3827 config/tc-v850.c:564
+#: config/obj-elf.c:438 config/tc-sparc.c:3833 config/tc-v850.c:565
 #, c-format
 msgid "bad .common segment %s"
 msgstr ""
 #, c-format
 msgid "bad .common segment %s"
 msgstr ""
@@ -982,13 +980,13 @@ msgstr ""
 msgid "unhandled stab type %d"
 msgstr ""
 
 msgid "unhandled stab type %d"
 msgstr ""
 
-#: config/tc-a29k.c:160 config/tc-sparc.c:3879
+#: config/tc-a29k.c:160 config/tc-sparc.c:3885
 msgid "Unknown segment type"
 msgstr ""
 
 #. Probably a memory allocation problem?  Give up now.
 msgid "Unknown segment type"
 msgstr ""
 
 #. Probably a memory allocation problem?  Give up now.
-#: config/tc-a29k.c:330 config/tc-hppa.c:1443 config/tc-mips.c:1031
-#: config/tc-mips.c:1073 config/tc-sparc.c:847
+#: config/tc-a29k.c:330 config/tc-hppa.c:1443 config/tc-mips.c:1039
+#: config/tc-mips.c:1081 config/tc-sparc.c:847
 msgid "Broken assembler.  No assembly attempted."
 msgstr ""
 
 msgid "Broken assembler.  No assembly attempted."
 msgstr ""
 
@@ -996,8 +994,8 @@ msgstr ""
 #: config/tc-d30v.c:552 config/tc-h8300.c:296 config/tc-h8500.c:284
 #: config/tc-mcore.c:655 config/tc-mn10200.c:955 config/tc-mn10300.c:1337
 #: config/tc-ppc.c:1974 config/tc-s390.c:1030 config/tc-sh.c:848
 #: config/tc-d30v.c:552 config/tc-h8300.c:296 config/tc-h8500.c:284
 #: config/tc-mcore.c:655 config/tc-mn10200.c:955 config/tc-mn10300.c:1337
 #: config/tc-ppc.c:1974 config/tc-s390.c:1030 config/tc-sh.c:848
-#: config/tc-tic80.c:282 config/tc-v850.c:2076 config/tc-w65.c:242
-#: config/tc-z8k.c:336
+#: config/tc-tic80.c:282 config/tc-v850.c:2073 config/tc-w65.c:242
+#: config/tc-z8k.c:334
 msgid "missing operand"
 msgstr ""
 
 msgid "missing operand"
 msgstr ""
 
@@ -1068,10 +1066,10 @@ msgstr ""
 msgid "syntax error"
 msgstr ""
 
 msgid "syntax error"
 msgstr ""
 
-#: config/tc-alpha.c:1020 config/tc-arm.c:6640 config/tc-h8300.c:1373
+#: config/tc-alpha.c:1020 config/tc-arm.c:6651 config/tc-h8300.c:1373
 #: config/tc-h8500.c:1187 config/tc-hppa.c:3996 config/tc-i860.c:931
 #: config/tc-h8500.c:1187 config/tc-hppa.c:3996 config/tc-i860.c:931
-#: config/tc-m68hc11.c:484 config/tc-m68k.c:4194 config/tc-m88k.c:1106
-#: config/tc-ns32k.c:1664 config/tc-sparc.c:2831 config/tc-z8k.c:1334
+#: config/tc-m68hc11.c:486 config/tc-m68k.c:4199 config/tc-m88k.c:1106
+#: config/tc-ns32k.c:1664 config/tc-sparc.c:2831 config/tc-z8k.c:1312
 msgid "Bad call to MD_ATOF()"
 msgstr ""
 
 msgid "Bad call to MD_ATOF()"
 msgstr ""
 
@@ -1112,7 +1110,7 @@ msgstr ""
 msgid "type %d reloc done?\n"
 msgstr ""
 
 msgid "type %d reloc done?\n"
 msgstr ""
 
-#: config/tc-alpha.c:1375 config/tc-alpha.c:1382 config/tc-mips.c:7373
+#: config/tc-alpha.c:1375 config/tc-alpha.c:1382 config/tc-mips.c:7399
 msgid "Used $at without \".set noat\""
 msgstr ""
 
 msgid "Used $at without \".set noat\""
 msgstr ""
 
@@ -1168,8 +1166,8 @@ msgstr ""
 #: config/tc-alpha.c:2441 config/tc-d10v.c:622 config/tc-d30v.c:640
 #: config/tc-mn10200.c:1010 config/tc-mn10300.c:1408 config/tc-ppc.c:1940
 #: config/tc-ppc.c:2048 config/tc-ppc.c:2060 config/tc-s390.c:1040
 #: config/tc-alpha.c:2441 config/tc-d10v.c:622 config/tc-d30v.c:640
 #: config/tc-mn10200.c:1010 config/tc-mn10300.c:1408 config/tc-ppc.c:1940
 #: config/tc-ppc.c:2048 config/tc-ppc.c:2060 config/tc-s390.c:1040
-#: config/tc-s390.c:1093 config/tc-v850.c:1856 config/tc-v850.c:1879
-#: config/tc-v850.c:2099
+#: config/tc-s390.c:1093 config/tc-v850.c:1853 config/tc-v850.c:1876
+#: config/tc-v850.c:2096
 msgid "too many fixups"
 msgstr ""
 
 msgid "too many fixups"
 msgstr ""
 
@@ -1219,7 +1217,7 @@ msgstr ""
 msgid "bignum invalid; zero assumed"
 msgstr ""
 
 msgid "bignum invalid; zero assumed"
 msgstr ""
 
-#: config/tc-alpha.c:3089 expr.c:86 read.c:3174 read.c:3507 read.c:4405
+#: config/tc-alpha.c:3089 expr.c:86 read.c:3174 read.c:3507 read.c:4406
 msgid "floating point number invalid; zero assumed"
 msgstr ""
 
 msgid "floating point number invalid; zero assumed"
 msgstr ""
 
@@ -1236,13 +1234,13 @@ msgstr ""
 msgid "bad instruction format for lda !%s!%ld"
 msgstr ""
 
 msgid "bad instruction format for lda !%s!%ld"
 msgstr ""
 
-#: config/tc-alpha.c:4303 config/tc-ppc.c:1467 config/tc-ppc.c:3689
+#: config/tc-alpha.c:4303 config/tc-ppc.c:1467 config/tc-ppc.c:3709
 #: read.c:1369
 #, c-format
 msgid ".COMMon length (%ld.) <0! Ignored."
 msgstr ""
 
 #: read.c:1369
 #, c-format
 msgid ".COMMon length (%ld.) <0! Ignored."
 msgstr ""
 
-#: config/tc-alpha.c:4341 config/tc-alpha.c:4350 config/tc-ppc.c:3726
+#: config/tc-alpha.c:4341 config/tc-alpha.c:4350 config/tc-ppc.c:3746
 #: read.c:1393
 #, c-format
 msgid "Length of .comm \"%s\" is already %ld. Not changed to %ld."
 #: read.c:1393
 #, c-format
 msgid "Length of .comm \"%s\" is already %ld. Not changed to %ld."
@@ -1333,7 +1331,7 @@ msgstr ""
 msgid "Bad .fmask directive"
 msgstr ""
 
 msgid "Bad .fmask directive"
 msgstr ""
 
-#: config/tc-alpha.c:5237 config/tc-arm.c:1593 read.c:2150 read.c:2745
+#: config/tc-alpha.c:5237 config/tc-arm.c:1604 read.c:2150 read.c:2745
 #: stabs.c:472
 #, c-format
 msgid "Expected comma after name \"%s\""
 #: stabs.c:472
 #, c-format
 msgid "Expected comma after name \"%s\""
@@ -1374,651 +1372,651 @@ msgstr ""
 msgid "Chose GP value of %lx\n"
 msgstr ""
 
 msgid "Chose GP value of %lx\n"
 msgstr ""
 
-#: config/tc-arc.c:1609 config/tc-arm.c:7552
+#: config/tc-arc.c:1615 config/tc-arm.c:7563
 msgid "md_estimate_size_before_relax\n"
 msgstr ""
 
 msgid "md_estimate_size_before_relax\n"
 msgstr ""
 
-#: config/tc-arc.c:1621
+#: config/tc-arc.c:1627
 msgid "md_convert_frag\n"
 msgstr ""
 
 msgid "md_convert_frag\n"
 msgstr ""
 
-#: config/tc-arm.c:1289
+#: config/tc-arm.c:1300
 msgid "Literal Pool Overflow"
 msgstr ""
 
 msgid "Literal Pool Overflow"
 msgstr ""
 
-#: config/tc-arm.c:1431
+#: config/tc-arm.c:1442
 msgid "Invalid syntax for .req directive."
 msgstr ""
 
 msgid "Invalid syntax for .req directive."
 msgstr ""
 
-#: config/tc-arm.c:1506 config/tc-mips.c:9937 read.c:2035
+#: config/tc-arm.c:1517 config/tc-mips.c:9979 read.c:2035
 #, c-format
 msgid "Alignment too large: %d. assumed."
 msgstr ""
 
 #, c-format
 msgid "Alignment too large: %d. assumed."
 msgstr ""
 
-#: config/tc-arm.c:1509 read.c:2040
+#: config/tc-arm.c:1520 read.c:2040
 msgid "Alignment negative. 0 assumed."
 msgstr ""
 
 msgid "Alignment negative. 0 assumed."
 msgstr ""
 
-#: config/tc-arm.c:1643 config/tc-m32r.c:418 read.c:2803 read.c:4872
+#: config/tc-arm.c:1654 config/tc-m32r.c:418 read.c:2803 read.c:4884
 #, c-format
 msgid "symbol `%s' already defined"
 msgstr ""
 
 #, c-format
 msgid "symbol `%s' already defined"
 msgstr ""
 
-#: config/tc-arm.c:1714
+#: config/tc-arm.c:1725
 msgid "selected processor does not support THUMB opcodes"
 msgstr ""
 
 msgid "selected processor does not support THUMB opcodes"
 msgstr ""
 
-#: config/tc-arm.c:1727
+#: config/tc-arm.c:1738
 msgid "selected processor does not support ARM opcodes"
 msgstr ""
 
 msgid "selected processor does not support ARM opcodes"
 msgstr ""
 
-#: config/tc-arm.c:1739
+#: config/tc-arm.c:1750
 #, c-format
 msgid "invalid instruction size selected (%d)"
 msgstr ""
 
 #, c-format
 msgid "invalid instruction size selected (%d)"
 msgstr ""
 
-#: config/tc-arm.c:1774
+#: config/tc-arm.c:1785
 #, c-format
 msgid "invalid operand to .code directive (%d) (expecting 16 or 32)"
 msgstr ""
 
 #, c-format
 msgid "invalid operand to .code directive (%d) (expecting 16 or 32)"
 msgstr ""
 
-#: config/tc-arm.c:1785
+#: config/tc-arm.c:1796
 msgid "Garbage following instruction"
 msgstr ""
 
 #. In the few cases where we might be able to accept something else
 #. this error can be overridden.
 msgid "Garbage following instruction"
 msgstr ""
 
 #. In the few cases where we might be able to accept something else
 #. this error can be overridden.
-#: config/tc-arm.c:1835
+#: config/tc-arm.c:1846
 #, c-format
 msgid "Register expected, not '%.100s'"
 msgstr ""
 
 #. In the few cases where we might be able to accept
 #. something else this error can be overridden.
 #, c-format
 msgid "Register expected, not '%.100s'"
 msgstr ""
 
 #. In the few cases where we might be able to accept
 #. something else this error can be overridden.
-#: config/tc-arm.c:1907
+#: config/tc-arm.c:1918
 msgid "flag for {c}psr instruction expected"
 msgstr ""
 
 msgid "flag for {c}psr instruction expected"
 msgstr ""
 
-#: config/tc-arm.c:1937
+#: config/tc-arm.c:1948
 msgid "Illegal co-processor number"
 msgstr ""
 
 msgid "Illegal co-processor number"
 msgstr ""
 
-#: config/tc-arm.c:1944
+#: config/tc-arm.c:1955
 msgid "Bad or missing co-processor number"
 msgstr ""
 
 msgid "Bad or missing co-processor number"
 msgstr ""
 
-#: config/tc-arm.c:1968 config/tc-arm.c:3054 config/tc-arm.c:3246
+#: config/tc-arm.c:1979 config/tc-arm.c:3065 config/tc-arm.c:3257
 msgid "bad or missing expression"
 msgstr ""
 
 msgid "bad or missing expression"
 msgstr ""
 
-#: config/tc-arm.c:1974
+#: config/tc-arm.c:1985
 msgid "immediate co-processor expression too large"
 msgstr ""
 
 #. In the few cases where we might be able to accept something else
 #. this error can be overridden.
 msgid "immediate co-processor expression too large"
 msgstr ""
 
 #. In the few cases where we might be able to accept something else
 #. this error can be overridden.
-#: config/tc-arm.c:1999
+#: config/tc-arm.c:2010
 msgid "Co-processor register expected"
 msgstr ""
 
 #. In the few cases where we might be able to accept something else
 #. this error can be overridden.
 msgid "Co-processor register expected"
 msgstr ""
 
 #. In the few cases where we might be able to accept something else
 #. this error can be overridden.
-#: config/tc-arm.c:2023
+#: config/tc-arm.c:2034
 msgid "Floating point register expected"
 msgstr ""
 
 msgid "Floating point register expected"
 msgstr ""
 
-#: config/tc-arm.c:2040
+#: config/tc-arm.c:2051
 msgid "immediate expression expected"
 msgstr ""
 
 msgid "immediate expression expected"
 msgstr ""
 
-#: config/tc-arm.c:2055
+#: config/tc-arm.c:2066
 msgid "co-processor address must be word aligned"
 msgstr ""
 
 msgid "co-processor address must be word aligned"
 msgstr ""
 
-#: config/tc-arm.c:2061
+#: config/tc-arm.c:2072
 msgid "offset too large"
 msgstr ""
 
 msgid "offset too large"
 msgstr ""
 
-#: config/tc-arm.c:2109
+#: config/tc-arm.c:2120
 msgid "pc may not be used in post-increment"
 msgstr ""
 
 msgid "pc may not be used in post-increment"
 msgstr ""
 
-#: config/tc-arm.c:2125 config/tc-arm.c:2578 config/tc-arm.c:3438
-#: config/tc-arm.c:4372
+#: config/tc-arm.c:2136 config/tc-arm.c:2589 config/tc-arm.c:3449
+#: config/tc-arm.c:4383
 msgid "pre-indexed expression expected"
 msgstr ""
 
 msgid "pre-indexed expression expected"
 msgstr ""
 
-#: config/tc-arm.c:2138 config/tc-arm.c:2591 config/tc-arm.c:3449
-#: config/tc-arm.c:4384 config/tc-arm.c:4730
+#: config/tc-arm.c:2149 config/tc-arm.c:2602 config/tc-arm.c:3460
+#: config/tc-arm.c:4395 config/tc-arm.c:4741
 msgid "missing ]"
 msgstr ""
 
 msgid "missing ]"
 msgstr ""
 
-#: config/tc-arm.c:2148
+#: config/tc-arm.c:2159
 msgid "pc may not be used with write-back"
 msgstr ""
 
 msgid "pc may not be used with write-back"
 msgstr ""
 
-#: config/tc-arm.c:2203
+#: config/tc-arm.c:2214
 msgid "comma expected after register name"
 msgstr ""
 
 msgid "comma expected after register name"
 msgstr ""
 
-#: config/tc-arm.c:2222
+#: config/tc-arm.c:2233
 msgid "{C|S}PSR expected"
 msgstr ""
 
 msgid "{C|S}PSR expected"
 msgstr ""
 
-#: config/tc-arm.c:2250
+#: config/tc-arm.c:2261
 msgid "comma missing after psr flags"
 msgstr ""
 
 msgid "comma missing after psr flags"
 msgstr ""
 
-#: config/tc-arm.c:2267 config/tc-arm.c:2277
+#: config/tc-arm.c:2278 config/tc-arm.c:2288
 msgid "only a register or immediate value can follow a psr flag"
 msgstr ""
 
 msgid "only a register or immediate value can follow a psr flag"
 msgstr ""
 
-#: config/tc-arm.c:2284
+#: config/tc-arm.c:2295
 msgid "immediate value cannot be used to set this field"
 msgstr ""
 
 msgid "immediate value cannot be used to set this field"
 msgstr ""
 
-#: config/tc-arm.c:2301 config/tc-arm.c:3673 config/tc-arm.c:3939
-#: config/tc-arm.c:3959
+#: config/tc-arm.c:2312 config/tc-arm.c:3684 config/tc-arm.c:3950
+#: config/tc-arm.c:3970
 msgid "Invalid constant"
 msgstr ""
 
 msgid "Invalid constant"
 msgstr ""
 
-#: config/tc-arm.c:2351
+#: config/tc-arm.c:2362
 msgid "rdhi, rdlo and rm must all be different"
 msgstr ""
 
 msgid "rdhi, rdlo and rm must all be different"
 msgstr ""
 
-#: config/tc-arm.c:2407
+#: config/tc-arm.c:2418
 msgid "rd and rm should be different in mul"
 msgstr ""
 
 msgid "rd and rm should be different in mul"
 msgstr ""
 
-#: config/tc-arm.c:2463
+#: config/tc-arm.c:2474
 msgid "rd and rm should be different in mla"
 msgstr ""
 
 msgid "rd and rm should be different in mla"
 msgstr ""
 
-#: config/tc-arm.c:2512
+#: config/tc-arm.c:2523
 #, c-format
 msgid "acc0 expected, not '%.100s'"
 msgstr ""
 
 #, c-format
 msgid "acc0 expected, not '%.100s'"
 msgstr ""
 
-#: config/tc-arm.c:2695
+#: config/tc-arm.c:2706
 msgid "rdhi and rdlo must be different"
 msgstr ""
 
 msgid "rdhi and rdlo must be different"
 msgstr ""
 
-#: config/tc-arm.c:2815
+#: config/tc-arm.c:2826
 msgid "Warning: Instruction unpredictable when using r15"
 msgstr ""
 
 msgid "Warning: Instruction unpredictable when using r15"
 msgstr ""
 
-#: config/tc-arm.c:3063 config/tc-arm.c:3255 config/tc-arm.c:5517
-#: config/tc-arm.c:5550 config/tc-arm.c:5560
+#: config/tc-arm.c:3074 config/tc-arm.c:3266 config/tc-arm.c:5528
+#: config/tc-arm.c:5561 config/tc-arm.c:5571
 msgid "immediate value out of range"
 msgstr ""
 
 msgid "immediate value out of range"
 msgstr ""
 
-#: config/tc-arm.c:3403
+#: config/tc-arm.c:3414
 msgid "'[' expected after PLD mnemonic"
 msgstr ""
 
 msgid "'[' expected after PLD mnemonic"
 msgstr ""
 
-#: config/tc-arm.c:3428 config/tc-arm.c:3458
+#: config/tc-arm.c:3439 config/tc-arm.c:3469
 msgid "writeback used in preload instruction"
 msgstr ""
 
 #. Deny all knowledge.
 msgid "writeback used in preload instruction"
 msgstr ""
 
 #. Deny all knowledge.
-#: config/tc-arm.c:3506
+#: config/tc-arm.c:3517
 #, c-format
 msgid "bad instruction '%.100s'"
 msgstr ""
 
 #, c-format
 msgid "bad instruction '%.100s'"
 msgstr ""
 
-#: config/tc-arm.c:3530
+#: config/tc-arm.c:3541
 msgid "Destination register must be even"
 msgstr ""
 
 msgid "Destination register must be even"
 msgstr ""
 
-#: config/tc-arm.c:3536
+#: config/tc-arm.c:3547
 msgid "r12 or r14 not allowed here"
 msgstr ""
 
 msgid "r12 or r14 not allowed here"
 msgstr ""
 
-#: config/tc-arm.c:3544
+#: config/tc-arm.c:3555
 msgid "pre/post-indexing used when modified address register is destination"
 msgstr ""
 
 msgid "pre/post-indexing used when modified address register is destination"
 msgstr ""
 
-#: config/tc-arm.c:3657
+#: config/tc-arm.c:3668
 msgid "bad_segment"
 msgstr ""
 
 msgid "bad_segment"
 msgstr ""
 
-#: config/tc-arm.c:3703 config/tc-arm.c:3714
+#: config/tc-arm.c:3714 config/tc-arm.c:3725
 msgid "Shift expression expected"
 msgstr ""
 
 msgid "Shift expression expected"
 msgstr ""
 
-#: config/tc-arm.c:3738
+#: config/tc-arm.c:3749
 msgid "shift requires register or #expression"
 msgstr ""
 
 msgid "shift requires register or #expression"
 msgstr ""
 
-#: config/tc-arm.c:3739
+#: config/tc-arm.c:3750
 msgid "shift requires #expression"
 msgstr ""
 
 msgid "shift requires #expression"
 msgstr ""
 
-#: config/tc-arm.c:3769
+#: config/tc-arm.c:3780
 msgid "Shift of 0 ignored."
 msgstr ""
 
 msgid "Shift of 0 ignored."
 msgstr ""
 
-#: config/tc-arm.c:3775
+#: config/tc-arm.c:3786
 msgid "Invalid immediate shift"
 msgstr ""
 
 msgid "Invalid immediate shift"
 msgstr ""
 
-#: config/tc-arm.c:3930 config/tc-arm.c:4414
+#: config/tc-arm.c:3941 config/tc-arm.c:4425
 msgid "Constant expression expected"
 msgstr ""
 
 msgid "Constant expression expected"
 msgstr ""
 
-#: config/tc-arm.c:3972
+#: config/tc-arm.c:3983
 msgid "Register or shift expression expected"
 msgstr ""
 
 msgid "Register or shift expression expected"
 msgstr ""
 
-#: config/tc-arm.c:4025
+#: config/tc-arm.c:4036
 msgid "Invalid floating point immediate expression"
 msgstr ""
 
 msgid "Invalid floating point immediate expression"
 msgstr ""
 
-#: config/tc-arm.c:4029
+#: config/tc-arm.c:4040
 msgid "Floating point register or immediate expression expected"
 msgstr ""
 
 msgid "Floating point register or immediate expression expected"
 msgstr ""
 
-#: config/tc-arm.c:4198
+#: config/tc-arm.c:4209
 msgid "address offset too large"
 msgstr ""
 
 msgid "address offset too large"
 msgstr ""
 
-#: config/tc-arm.c:4275
+#: config/tc-arm.c:4286
 msgid "Processor does not support halfwords or signed bytes"
 msgstr ""
 
 msgid "Processor does not support halfwords or signed bytes"
 msgstr ""
 
-#: config/tc-arm.c:4296
+#: config/tc-arm.c:4307
 msgid "Address expected"
 msgstr ""
 
 msgid "Address expected"
 msgstr ""
 
-#: config/tc-arm.c:4328 config/tc-arm.c:4359
+#: config/tc-arm.c:4339 config/tc-arm.c:4370
 #, c-format
 msgid "Rn and Rd must be different in %s"
 msgstr ""
 
 #, c-format
 msgid "Rn and Rd must be different in %s"
 msgstr ""
 
-#: config/tc-arm.c:4332 config/tc-arm.c:4348 config/tc-arm.c:4393
+#: config/tc-arm.c:4343 config/tc-arm.c:4359 config/tc-arm.c:4404
 #, c-format
 msgid "%s register same as write-back base"
 msgstr ""
 
 #, c-format
 msgid "%s register same as write-back base"
 msgstr ""
 
-#: config/tc-arm.c:4334 config/tc-arm.c:4350 config/tc-arm.c:4395
+#: config/tc-arm.c:4345 config/tc-arm.c:4361 config/tc-arm.c:4406
 msgid "destination"
 msgstr ""
 
 msgid "destination"
 msgstr ""
 
-#: config/tc-arm.c:4334 config/tc-arm.c:4350 config/tc-arm.c:4395
+#: config/tc-arm.c:4345 config/tc-arm.c:4361 config/tc-arm.c:4406
 msgid "source"
 msgstr ""
 
 msgid "source"
 msgstr ""
 
-#: config/tc-arm.c:4434
+#: config/tc-arm.c:4445
 msgid "literal pool insertion failed"
 msgstr ""
 
 msgid "literal pool insertion failed"
 msgstr ""
 
-#: config/tc-arm.c:4473
+#: config/tc-arm.c:4484
 msgid "Pre-increment instruction with translate"
 msgstr ""
 
 msgid "Pre-increment instruction with translate"
 msgstr ""
 
-#: config/tc-arm.c:4514
+#: config/tc-arm.c:4525
 msgid "Bad range in register list"
 msgstr ""
 
 msgid "Bad range in register list"
 msgstr ""
 
-#: config/tc-arm.c:4522 config/tc-arm.c:4531 config/tc-arm.c:4573
+#: config/tc-arm.c:4533 config/tc-arm.c:4542 config/tc-arm.c:4584
 #, c-format
 msgid "Warning: Duplicated register (r%d) in register list"
 msgstr ""
 
 #, c-format
 msgid "Warning: Duplicated register (r%d) in register list"
 msgstr ""
 
-#: config/tc-arm.c:4534
+#: config/tc-arm.c:4545
 msgid "Warning: Register range not in ascending order"
 msgstr ""
 
 msgid "Warning: Register range not in ascending order"
 msgstr ""
 
-#: config/tc-arm.c:4546
+#: config/tc-arm.c:4557
 msgid "Missing `}'"
 msgstr ""
 
 msgid "Missing `}'"
 msgstr ""
 
-#: config/tc-arm.c:4562
+#: config/tc-arm.c:4573
 msgid "invalid register mask"
 msgstr ""
 
 msgid "invalid register mask"
 msgstr ""
 
-#: config/tc-arm.c:4583 config/tc-avr.c:852 config/tc-cris.c:3009
-#: config/tc-d10v.c:1561 config/tc-d30v.c:1865 config/tc-mips.c:3231
-#: config/tc-mips.c:4163 config/tc-mips.c:4964 config/tc-mips.c:5510
-#: config/tc-ppc.c:4855 config/tc-v850.c:2385
+#: config/tc-arm.c:4594 config/tc-avr.c:852 config/tc-cris.c:3009
+#: config/tc-d10v.c:1561 config/tc-d30v.c:1865 config/tc-mips.c:3247
+#: config/tc-mips.c:4183 config/tc-mips.c:4984 config/tc-mips.c:5530
+#: config/tc-ppc.c:4873 config/tc-v850.c:2377
 msgid "expression too complex"
 msgstr ""
 
 msgid "expression too complex"
 msgstr ""
 
-#: config/tc-arm.c:4622
+#: config/tc-arm.c:4633
 msgid "r15 not allowed as base register"
 msgstr ""
 
 msgid "r15 not allowed as base register"
 msgstr ""
 
-#: config/tc-arm.c:4690 config/tc-arm.c:4704
+#: config/tc-arm.c:4701 config/tc-arm.c:4715
 msgid "r15 not allowed in swap"
 msgstr ""
 
 msgid "r15 not allowed in swap"
 msgstr ""
 
-#: config/tc-arm.c:4802
+#: config/tc-arm.c:4813
 msgid "Use of r15 in bx in ARM mode is not really useful"
 msgstr ""
 
 msgid "Use of r15 in bx in ARM mode is not really useful"
 msgstr ""
 
-#: config/tc-arm.c:5058 config/tc-v850.c:1959 config/tc-v850.c:1980
+#: config/tc-arm.c:5069 config/tc-v850.c:1956 config/tc-v850.c:1977
 msgid "constant expression expected"
 msgstr ""
 
 msgid "constant expression expected"
 msgstr ""
 
-#: config/tc-arm.c:5064
+#: config/tc-arm.c:5075
 msgid "Constant value required for number of registers"
 msgstr ""
 
 msgid "Constant value required for number of registers"
 msgstr ""
 
-#: config/tc-arm.c:5072
+#: config/tc-arm.c:5083
 msgid "number of registers must be in the range [1:4]"
 msgstr ""
 
 msgid "number of registers must be in the range [1:4]"
 msgstr ""
 
-#: config/tc-arm.c:5133
+#: config/tc-arm.c:5144
 msgid "R15 not allowed as base register with write-back"
 msgstr ""
 
 msgid "R15 not allowed as base register with write-back"
 msgstr ""
 
-#: config/tc-arm.c:5381
+#: config/tc-arm.c:5392
 msgid "lo register required"
 msgstr ""
 
 msgid "lo register required"
 msgstr ""
 
-#: config/tc-arm.c:5389
+#: config/tc-arm.c:5400
 msgid "hi register required"
 msgstr ""
 
 msgid "hi register required"
 msgstr ""
 
-#: config/tc-arm.c:5459
+#: config/tc-arm.c:5470
 msgid "dest and source1 must be the same register"
 msgstr ""
 
 msgid "dest and source1 must be the same register"
 msgstr ""
 
-#: config/tc-arm.c:5466
+#: config/tc-arm.c:5477
 msgid "subtract valid only on lo regs"
 msgstr ""
 
 msgid "subtract valid only on lo regs"
 msgstr ""
 
-#: config/tc-arm.c:5490
+#: config/tc-arm.c:5501
 msgid "invalid Hi register with immediate"
 msgstr ""
 
 msgid "invalid Hi register with immediate"
 msgstr ""
 
-#: config/tc-arm.c:5528
+#: config/tc-arm.c:5539
 msgid "invalid immediate value for stack adjust"
 msgstr ""
 
 msgid "invalid immediate value for stack adjust"
 msgstr ""
 
-#: config/tc-arm.c:5539
+#: config/tc-arm.c:5550
 msgid "invalid immediate for address calculation"
 msgstr ""
 
 msgid "invalid immediate for address calculation"
 msgstr ""
 
-#: config/tc-arm.c:5626
+#: config/tc-arm.c:5637
 msgid "source1 and dest must be same register"
 msgstr ""
 
 msgid "source1 and dest must be same register"
 msgstr ""
 
-#: config/tc-arm.c:5660
+#: config/tc-arm.c:5671
 msgid "Invalid immediate for shift"
 msgstr ""
 
 msgid "Invalid immediate for shift"
 msgstr ""
 
-#: config/tc-arm.c:5739
+#: config/tc-arm.c:5750
 msgid "only lo regs allowed with immediate"
 msgstr ""
 
 msgid "only lo regs allowed with immediate"
 msgstr ""
 
-#: config/tc-arm.c:5758
+#: config/tc-arm.c:5769
 msgid "invalid immediate"
 msgstr ""
 
 msgid "invalid immediate"
 msgstr ""
 
-#: config/tc-arm.c:5812
+#: config/tc-arm.c:5823
 msgid "expected ']'"
 msgstr ""
 
 msgid "expected ']'"
 msgstr ""
 
-#: config/tc-arm.c:5879
+#: config/tc-arm.c:5890
 msgid "byte or halfword not valid for base register"
 msgstr ""
 
 msgid "byte or halfword not valid for base register"
 msgstr ""
 
-#: config/tc-arm.c:5884
+#: config/tc-arm.c:5895
 msgid "R15 based store not allowed"
 msgstr ""
 
 msgid "R15 based store not allowed"
 msgstr ""
 
-#: config/tc-arm.c:5889
+#: config/tc-arm.c:5900
 msgid "Invalid base register for register offset"
 msgstr ""
 
 msgid "Invalid base register for register offset"
 msgstr ""
 
-#: config/tc-arm.c:5907
+#: config/tc-arm.c:5918
 msgid "invalid offset"
 msgstr ""
 
 msgid "invalid offset"
 msgstr ""
 
-#: config/tc-arm.c:5918
+#: config/tc-arm.c:5929
 msgid "invalid base register in load/store"
 msgstr ""
 
 msgid "invalid base register in load/store"
 msgstr ""
 
-#: config/tc-arm.c:5942
+#: config/tc-arm.c:5953
 msgid "Invalid offset"
 msgstr ""
 
 msgid "Invalid offset"
 msgstr ""
 
-#: config/tc-arm.c:6017
+#: config/tc-arm.c:6028
 msgid "dest and source1 one must be the same register"
 msgstr ""
 
 msgid "dest and source1 one must be the same register"
 msgstr ""
 
-#: config/tc-arm.c:6025
+#: config/tc-arm.c:6036
 msgid "Rs and Rd must be different in MUL"
 msgstr ""
 
 msgid "Rs and Rd must be different in MUL"
 msgstr ""
 
-#: config/tc-arm.c:6169
+#: config/tc-arm.c:6180
 msgid ""
 "Inserted missing '!': load/store multiple always writes back base register"
 msgstr ""
 
 msgid ""
 "Inserted missing '!': load/store multiple always writes back base register"
 msgstr ""
 
-#: config/tc-arm.c:6185 config/tc-arm.c:6285
+#: config/tc-arm.c:6196 config/tc-arm.c:6296
 msgid "Expression too complex"
 msgstr ""
 
 msgid "Expression too complex"
 msgstr ""
 
-#: config/tc-arm.c:6191
+#: config/tc-arm.c:6202
 msgid "only lo-regs valid in load/store multiple"
 msgstr ""
 
 msgid "only lo-regs valid in load/store multiple"
 msgstr ""
 
-#: config/tc-arm.c:6237
+#: config/tc-arm.c:6248
 msgid "Syntax: ldrs[b] Rd, [Rb, Ro]"
 msgstr ""
 
 msgid "Syntax: ldrs[b] Rd, [Rb, Ro]"
 msgstr ""
 
-#: config/tc-arm.c:6301
+#: config/tc-arm.c:6312
 msgid "invalid register list to push/pop instruction"
 msgstr ""
 
 msgid "invalid register list to push/pop instruction"
 msgstr ""
 
-#: config/tc-arm.c:6443 config/tc-cris.c:684
+#: config/tc-arm.c:6454 config/tc-cris.c:684
 msgid "Virtual memory exhausted"
 msgstr ""
 
 msgid "Virtual memory exhausted"
 msgstr ""
 
-#: config/tc-arm.c:6846
+#: config/tc-arm.c:6857
 #, c-format
 msgid "invalid constant (%lx) after fixup"
 msgstr ""
 
 #, c-format
 msgid "invalid constant (%lx) after fixup"
 msgstr ""
 
-#: config/tc-arm.c:6882
+#: config/tc-arm.c:6893
 #, c-format
 msgid "Unable to compute ADRL instructions for PC offset of 0x%lx"
 msgstr ""
 
 #, c-format
 msgid "Unable to compute ADRL instructions for PC offset of 0x%lx"
 msgstr ""
 
-#: config/tc-arm.c:6912
+#: config/tc-arm.c:6923
 #, c-format
 msgid "bad immediate value for offset (%ld)"
 msgstr ""
 
 #, c-format
 msgid "bad immediate value for offset (%ld)"
 msgstr ""
 
-#: config/tc-arm.c:6934 config/tc-arm.c:6956
+#: config/tc-arm.c:6945 config/tc-arm.c:6967
 msgid "invalid literal constant: pool needs to be closer"
 msgstr ""
 
 msgid "invalid literal constant: pool needs to be closer"
 msgstr ""
 
-#: config/tc-arm.c:6936
+#: config/tc-arm.c:6947
 #, c-format
 msgid "bad immediate value for half-word offset (%ld)"
 msgstr ""
 
 #, c-format
 msgid "bad immediate value for half-word offset (%ld)"
 msgstr ""
 
-#: config/tc-arm.c:6973
+#: config/tc-arm.c:6984
 msgid "shift expression is too large"
 msgstr ""
 
 msgid "shift expression is too large"
 msgstr ""
 
-#: config/tc-arm.c:6992 config/tc-arm.c:7001
+#: config/tc-arm.c:7003 config/tc-arm.c:7012
 msgid "Invalid swi expression"
 msgstr ""
 
 msgid "Invalid swi expression"
 msgstr ""
 
-#: config/tc-arm.c:7011
+#: config/tc-arm.c:7022
 msgid "Invalid expression in load/store multiple"
 msgstr ""
 
 msgid "Invalid expression in load/store multiple"
 msgstr ""
 
-#: config/tc-arm.c:7064
+#: config/tc-arm.c:7075
 msgid "gas can't handle same-section branch dest >= 0x04000000"
 msgstr ""
 
 msgid "gas can't handle same-section branch dest >= 0x04000000"
 msgstr ""
 
-#: config/tc-arm.c:7073
+#: config/tc-arm.c:7084
 msgid "out of range branch"
 msgstr ""
 
 msgid "out of range branch"
 msgstr ""
 
-#: config/tc-arm.c:7106 config/tc-arm.c:7122 config/tc-mips.c:9764
+#: config/tc-arm.c:7117 config/tc-arm.c:7133 config/tc-mips.c:9806
 msgid "Branch out of range"
 msgstr ""
 
 msgid "Branch out of range"
 msgstr ""
 
-#: config/tc-arm.c:7145
+#: config/tc-arm.c:7156
 msgid "Branch with link out of range"
 msgstr ""
 
 msgid "Branch with link out of range"
 msgstr ""
 
-#: config/tc-arm.c:7221
+#: config/tc-arm.c:7232
 msgid "Illegal value for co-processor offset"
 msgstr ""
 
 msgid "Illegal value for co-processor offset"
 msgstr ""
 
-#: config/tc-arm.c:7245
+#: config/tc-arm.c:7256
 #, c-format
 msgid "Invalid offset, target not word aligned (0x%08X)"
 msgstr ""
 
 #, c-format
 msgid "Invalid offset, target not word aligned (0x%08X)"
 msgstr ""
 
-#: config/tc-arm.c:7251 config/tc-arm.c:7260 config/tc-arm.c:7267
-#: config/tc-arm.c:7274 config/tc-arm.c:7281
+#: config/tc-arm.c:7262 config/tc-arm.c:7271 config/tc-arm.c:7278
+#: config/tc-arm.c:7285 config/tc-arm.c:7292
 #, c-format
 msgid "Invalid offset, value too big (0x%08lX)"
 msgstr ""
 
 #, c-format
 msgid "Invalid offset, value too big (0x%08lX)"
 msgstr ""
 
-#: config/tc-arm.c:7320
+#: config/tc-arm.c:7331
 msgid "Invalid immediate for stack address calculation"
 msgstr ""
 
 msgid "Invalid immediate for stack address calculation"
 msgstr ""
 
-#: config/tc-arm.c:7329
+#: config/tc-arm.c:7340
 #, c-format
 msgid "Invalid immediate for address calculation (value = 0x%08lX)"
 msgstr ""
 
 #, c-format
 msgid "Invalid immediate for address calculation (value = 0x%08lX)"
 msgstr ""
 
-#: config/tc-arm.c:7339
+#: config/tc-arm.c:7350
 msgid "Invalid 8bit immediate"
 msgstr ""
 
 msgid "Invalid 8bit immediate"
 msgstr ""
 
-#: config/tc-arm.c:7347
+#: config/tc-arm.c:7358
 msgid "Invalid 3bit immediate"
 msgstr ""
 
 msgid "Invalid 3bit immediate"
 msgstr ""
 
-#: config/tc-arm.c:7363
+#: config/tc-arm.c:7374
 #, c-format
 msgid "Invalid immediate: %ld is too large"
 msgstr ""
 
 #, c-format
 msgid "Invalid immediate: %ld is too large"
 msgstr ""
 
-#: config/tc-arm.c:7378
+#: config/tc-arm.c:7389
 #, c-format
 msgid "Illegal Thumb shift value: %ld"
 msgstr ""
 
 #, c-format
 msgid "Illegal Thumb shift value: %ld"
 msgstr ""
 
-#: config/tc-arm.c:7392 config/tc-mn10300.c:1929
+#: config/tc-arm.c:7403 config/tc-mn10300.c:1972
 #, c-format
 msgid "Bad relocation fixup type (%d)"
 msgstr ""
 
 #, c-format
 msgid "Bad relocation fixup type (%d)"
 msgstr ""
 
-#: config/tc-arm.c:7465
+#: config/tc-arm.c:7476
 msgid "Literal referenced across section boundary (Implicit dump?)"
 msgstr ""
 
 msgid "Literal referenced across section boundary (Implicit dump?)"
 msgstr ""
 
-#: config/tc-arm.c:7478
+#: config/tc-arm.c:7489
 #, c-format
 msgid "Internal_relocation (type %d) not fixed up (IMMEDIATE)"
 msgstr ""
 
 #, c-format
 msgid "Internal_relocation (type %d) not fixed up (IMMEDIATE)"
 msgstr ""
 
-#: config/tc-arm.c:7484
+#: config/tc-arm.c:7495
 msgid "ADRL used for a symbol not defined in the same file"
 msgstr ""
 
 msgid "ADRL used for a symbol not defined in the same file"
 msgstr ""
 
-#: config/tc-arm.c:7489
+#: config/tc-arm.c:7500
 #, c-format
 msgid "Internal_relocation (type %d) not fixed up (OFFSET_IMM)"
 msgstr ""
 
 #, c-format
 msgid "Internal_relocation (type %d) not fixed up (OFFSET_IMM)"
 msgstr ""
 
-#: config/tc-arm.c:7510 config/tc-cris.c:2944 config/tc-mcore.c:2109
-#: config/tc-ns32k.c:2375
+#: config/tc-arm.c:7521 config/tc-cris.c:2944 config/tc-mcore.c:2104
+#: config/tc-ns32k.c:2363
 msgid "<unknown>"
 msgstr ""
 
 msgid "<unknown>"
 msgstr ""
 
-#: config/tc-arm.c:7513
+#: config/tc-arm.c:7524
 #, c-format
 msgid "Cannot represent %s relocation in this object file format"
 msgstr ""
 
 #, c-format
 msgid "Cannot represent %s relocation in this object file format"
 msgstr ""
 
-#: config/tc-arm.c:7534 config/tc-mips.c:11282 config/tc-sh.c:3196
+#: config/tc-arm.c:7545 config/tc-mips.c:11315 config/tc-sh.c:3198
 #, c-format
 msgid "Can not represent %s relocation in this object file format"
 msgstr ""
 
 #, c-format
 msgid "Can not represent %s relocation in this object file format"
 msgstr ""
 
-#: config/tc-arm.c:7631
+#: config/tc-arm.c:7642
 #, c-format
 msgid "No operator -- statement `%s'\n"
 msgstr ""
 
 #, c-format
 msgid "No operator -- statement `%s'\n"
 msgstr ""
 
-#: config/tc-arm.c:7649
+#: config/tc-arm.c:7660
 msgid "selected processor does not support this opcode"
 msgstr ""
 
 msgid "selected processor does not support this opcode"
 msgstr ""
 
-#: config/tc-arm.c:7695
+#: config/tc-arm.c:7706
 #, c-format
 msgid "Opcode `%s' must have suffix from list: <%s>"
 msgstr ""
 
 #, c-format
 msgid "Opcode `%s' must have suffix from list: <%s>"
 msgstr ""
 
-#: config/tc-arm.c:7726
+#: config/tc-arm.c:7737
 msgid "Warning: Use of the 'nv' conditional is deprecated\n"
 msgstr ""
 
 msgid "Warning: Use of the 'nv' conditional is deprecated\n"
 msgstr ""
 
-#: config/tc-arm.c:7743
+#: config/tc-arm.c:7754
 #, c-format
 msgid "Opcode `%s' is unconditional\n"
 msgstr ""
 
 #, c-format
 msgid "Opcode `%s' is unconditional\n"
 msgstr ""
 
-#: config/tc-arm.c:7767
+#: config/tc-arm.c:7778
 #, c-format
 msgid "Opcode `%s' must have suffix from <%s>\n"
 msgstr ""
 
 #, c-format
 msgid "Opcode `%s' must have suffix from <%s>\n"
 msgstr ""
 
-#: config/tc-arm.c:7858
+#: config/tc-arm.c:7869
 #, c-format
 msgid "register '%s' does not exist\n"
 msgstr ""
 
 #, c-format
 msgid "register '%s' does not exist\n"
 msgstr ""
 
-#: config/tc-arm.c:7863
+#: config/tc-arm.c:7874
 #, c-format
 msgid "ignoring redefinition of register alias '%s'"
 msgstr ""
 
 #, c-format
 msgid "ignoring redefinition of register alias '%s'"
 msgstr ""
 
-#: config/tc-arm.c:7869
+#: config/tc-arm.c:7880
 #, c-format
 msgid ""
 "ignoring redefinition of register alias '%s' to non-existant register '%s'"
 msgstr ""
 
 #, c-format
 msgid ""
 "ignoring redefinition of register alias '%s' to non-existant register '%s'"
 msgstr ""
 
-#: config/tc-arm.c:7873
+#: config/tc-arm.c:7884
 msgid "ignoring incomplete .req pseuso op"
 msgstr ""
 
 msgid "ignoring incomplete .req pseuso op"
 msgstr ""
 
-#: config/tc-arm.c:7880
+#: config/tc-arm.c:7891
 #, c-format
 msgid "bad instruction `%s'"
 msgstr ""
 
 #, c-format
 msgid "bad instruction `%s'"
 msgstr ""
 
-#: config/tc-arm.c:8055
+#: config/tc-arm.c:8066
 #, c-format
 msgid "Unrecognised APCS switch -m%s"
 msgstr ""
 
 #, c-format
 msgid "Unrecognised APCS switch -m%s"
 msgstr ""
 
-#: config/tc-arm.c:8212 config/tc-arm.c:8225 config/tc-arm.c:8238
-#: config/tc-arm.c:8251 config/tc-arm.c:8257
+#: config/tc-arm.c:8223 config/tc-arm.c:8236 config/tc-arm.c:8249
+#: config/tc-arm.c:8262 config/tc-arm.c:8268
 #, c-format
 msgid "Invalid architecture variant -m%s"
 msgstr ""
 
 #, c-format
 msgid "Invalid architecture variant -m%s"
 msgstr ""
 
-#: config/tc-arm.c:8264
+#: config/tc-arm.c:8275
 #, c-format
 msgid "Invalid processor variant -m%s"
 msgstr ""
 
 #, c-format
 msgid "Invalid processor variant -m%s"
 msgstr ""
 
-#: config/tc-arm.c:8287
+#: config/tc-arm.c:8298
 msgid ""
 " ARM Specific Assembler Options:\n"
 "  -m[arm][<processor name>] select processor variant\n"
 msgid ""
 " ARM Specific Assembler Options:\n"
 "  -m[arm][<processor name>] select processor variant\n"
@@ -2034,7 +2032,7 @@ msgid ""
 "  -k                        generate PIC code.\n"
 msgstr ""
 
 "  -k                        generate PIC code.\n"
 msgstr ""
 
-#: config/tc-arm.c:8299
+#: config/tc-arm.c:8310
 msgid ""
 "  -mapcs-32, -mapcs-26      specify which ARM Procedure Calling Standard to "
 "use\n"
 msgid ""
 "  -mapcs-32, -mapcs-26      specify which ARM Procedure Calling Standard to "
 "use\n"
@@ -2043,23 +2041,23 @@ msgid ""
 "  -mapcs-reentrant          the code is position independent/reentrant\n"
 msgstr ""
 
 "  -mapcs-reentrant          the code is position independent/reentrant\n"
 msgstr ""
 
-#: config/tc-arm.c:8306
+#: config/tc-arm.c:8317
 msgid "  -moabi                    support the old ELF ABI\n"
 msgstr ""
 
 msgid "  -moabi                    support the old ELF ABI\n"
 msgstr ""
 
-#: config/tc-arm.c:8310
+#: config/tc-arm.c:8321
 msgid ""
 "  -EB                       assemble code for a big endian cpu\n"
 "  -EL                       assemble code for a little endian cpu\n"
 msgstr ""
 
 msgid ""
 "  -EB                       assemble code for a big endian cpu\n"
 "  -EL                       assemble code for a little endian cpu\n"
 msgstr ""
 
-#: config/tc-arm.c:8494
+#: config/tc-arm.c:8505
 #, c-format
 msgid "%s: unexpected function type: %d"
 msgstr ""
 
 #, c-format
 msgid "%s: unexpected function type: %d"
 msgstr ""
 
-#: config/tc-arm.c:8857
-msgid "alignments in code section > 32 not supported."
+#: config/tc-arm.c:8871
+msgid "alignments greater than 32 bytes not supported in .text sections."
 msgstr ""
 
 #: config/tc-avr.c:185
 msgstr ""
 
 #: config/tc-avr.c:185
@@ -2099,8 +2097,8 @@ msgid "redefinition of mcu type `%s' to `%s'"
 msgstr ""
 
 #: config/tc-avr.c:372 config/tc-d10v.c:314 config/tc-d30v.c:366
 msgstr ""
 
 #: config/tc-avr.c:372 config/tc-d10v.c:314 config/tc-d30v.c:366
-#: config/tc-mips.c:8806 config/tc-mn10200.c:376 config/tc-pj.c:356
-#: config/tc-ppc.c:4519 config/tc-sh.c:2068 config/tc-v850.c:1291
+#: config/tc-mips.c:8836 config/tc-mn10200.c:376 config/tc-pj.c:356
+#: config/tc-ppc.c:4538 config/tc-sh.c:2070 config/tc-v850.c:1292
 msgid "bad call to md_atof"
 msgstr ""
 
 msgid "bad call to md_atof"
 msgstr ""
 
@@ -2194,15 +2192,15 @@ msgid "only constant expression allowed"
 msgstr ""
 
 #: config/tc-avr.c:1060 config/tc-d10v.c:1496 config/tc-d30v.c:1807
 msgstr ""
 
 #: config/tc-avr.c:1060 config/tc-d10v.c:1496 config/tc-d30v.c:1807
-#: config/tc-mn10200.c:1255 config/tc-mn10300.c:1799 config/tc-ppc.c:5162
-#: config/tc-v850.c:2301
+#: config/tc-mn10200.c:1255 config/tc-mn10300.c:1800 config/tc-ppc.c:5180
+#: config/tc-v850.c:2296
 #, c-format
 msgid "reloc %d not supported by object file format"
 msgstr ""
 
 #: config/tc-avr.c:1084 config/tc-d10v.c:1103 config/tc-d10v.c:1117
 #: config/tc-h8300.c:1239 config/tc-h8500.c:1088 config/tc-mcore.c:988
 #, c-format
 msgid "reloc %d not supported by object file format"
 msgstr ""
 
 #: config/tc-avr.c:1084 config/tc-d10v.c:1103 config/tc-d10v.c:1117
 #: config/tc-h8300.c:1239 config/tc-h8500.c:1088 config/tc-mcore.c:988
-#: config/tc-pj.c:265 config/tc-sh.c:1650 config/tc-z8k.c:1205
+#: config/tc-pj.c:265 config/tc-sh.c:1650 config/tc-z8k.c:1183
 msgid "can't find opcode "
 msgstr ""
 
 msgid "can't find opcode "
 msgstr ""
 
@@ -2447,7 +2445,7 @@ msgstr ""
 
 #: config/tc-d10v.c:531 config/tc-d30v.c:550 config/tc-mn10200.c:952
 #: config/tc-mn10300.c:1334 config/tc-ppc.c:1972 config/tc-s390.c:1028
 
 #: config/tc-d10v.c:531 config/tc-d30v.c:550 config/tc-mn10200.c:952
 #: config/tc-mn10300.c:1334 config/tc-ppc.c:1972 config/tc-s390.c:1028
-#: config/tc-tic80.c:278 config/tc-v850.c:2073
+#: config/tc-tic80.c:278 config/tc-v850.c:2070
 msgid "illegal operand"
 msgstr ""
 
 msgid "illegal operand"
 msgstr ""
 
@@ -2516,7 +2514,7 @@ msgstr ""
 msgid "bad opcode or operands"
 msgstr ""
 
 msgid "bad opcode or operands"
 msgstr ""
 
-#: config/tc-d10v.c:1354 config/tc-m68k.c:4301
+#: config/tc-d10v.c:1354 config/tc-m68k.c:4303
 msgid "value out of range"
 msgstr ""
 
 msgid "value out of range"
 msgstr ""
 
@@ -2679,16 +2677,17 @@ msgstr ""
 msgid " FR30 specific command line options:\n"
 msgstr ""
 
 msgid " FR30 specific command line options:\n"
 msgstr ""
 
-#: config/tc-fr30.c:143
+#: config/tc-fr30.c:143 config/tc-openrisc.c:151
 #, c-format
 msgid "Instruction %s not allowed in a delay slot."
 msgstr ""
 
 #, c-format
 msgid "Instruction %s not allowed in a delay slot."
 msgstr ""
 
-#: config/tc-fr30.c:381 config/tc-m32r.c:1557
+#: config/tc-fr30.c:383 config/tc-m32r.c:1558
 msgid "Addend to unresolved symbol not on word boundary."
 msgstr ""
 
 msgid "Addend to unresolved symbol not on word boundary."
 msgstr ""
 
-#: config/tc-fr30.c:539 config/tc-i960.c:773 config/tc-m32r.c:1866
+#: config/tc-fr30.c:541 config/tc-i960.c:773 config/tc-m32r.c:1867
+#: config/tc-openrisc.c:469
 msgid "Bad call to md_atof()"
 msgstr ""
 
 msgid "Bad call to md_atof()"
 msgstr ""
 
@@ -2764,8 +2763,8 @@ msgstr ""
 msgid "invalid operands"
 msgstr ""
 
 msgid "invalid operands"
 msgstr ""
 
-#: config/tc-h8300.c:1250 config/tc-h8500.c:1094 config/tc-mips.c:8001
-#: config/tc-sh.c:1887 config/tc-w65.c:734 config/tc-z8k.c:1215
+#: config/tc-h8300.c:1250 config/tc-h8500.c:1094 config/tc-mips.c:8030
+#: config/tc-sh.c:1887 config/tc-w65.c:734 config/tc-z8k.c:1193
 msgid "unknown opcode"
 msgstr ""
 
 msgid "unknown opcode"
 msgstr ""
 
@@ -2773,25 +2772,25 @@ msgstr ""
 msgid "mismatch between opcode size and operand size"
 msgstr ""
 
 msgid "mismatch between opcode size and operand size"
 msgstr ""
 
-#: config/tc-h8300.c:1307 config/tc-h8500.c:1121 config/tc-sh.c:2023
-#: config/tc-w65.c:764 config/tc-z8k.c:1268
+#: config/tc-h8300.c:1307 config/tc-h8500.c:1121 config/tc-sh.c:2025
+#: config/tc-w65.c:764 config/tc-z8k.c:1246
 msgid "call to tc_crawl_symbol_chain \n"
 msgstr ""
 
 msgid "call to tc_crawl_symbol_chain \n"
 msgstr ""
 
-#: config/tc-h8300.c:1321 config/tc-h8500.c:1135 config/tc-sh.c:2030
-#: config/tc-w65.c:778 config/tc-z8k.c:1282
+#: config/tc-h8300.c:1321 config/tc-h8500.c:1135 config/tc-sh.c:2032
+#: config/tc-w65.c:778 config/tc-z8k.c:1260
 msgid "call to tc_headers_hook \n"
 msgstr ""
 
 msgid "call to tc_headers_hook \n"
 msgstr ""
 
-#: config/tc-h8300.c:1412 config/tc-h8500.c:1225 config/tc-z8k.c:1396
+#: config/tc-h8300.c:1412 config/tc-h8500.c:1225 config/tc-z8k.c:1374
 msgid "call to tc_aout_fix_to_chars \n"
 msgstr ""
 
 msgid "call to tc_aout_fix_to_chars \n"
 msgstr ""
 
-#: config/tc-h8300.c:1422 config/tc-z8k.c:1406
+#: config/tc-h8300.c:1422 config/tc-z8k.c:1384
 msgid "call to md_convert_frag \n"
 msgstr ""
 
 msgid "call to md_convert_frag \n"
 msgstr ""
 
-#: config/tc-h8300.c:1467 config/tc-z8k.c:1487
+#: config/tc-h8300.c:1467 config/tc-z8k.c:1465
 msgid "call tomd_estimate_size_before_relax \n"
 msgstr ""
 
 msgid "call tomd_estimate_size_before_relax \n"
 msgstr ""
 
@@ -2857,7 +2856,7 @@ msgstr ""
 
 #: config/tc-hppa.c:1403 config/tc-hppa.c:6895 config/tc-hppa.c:6901
 #: config/tc-hppa.c:6907 config/tc-hppa.c:6913 config/tc-mn10300.c:926
 
 #: config/tc-hppa.c:1403 config/tc-hppa.c:6895 config/tc-hppa.c:6901
 #: config/tc-hppa.c:6907 config/tc-hppa.c:6913 config/tc-mn10300.c:926
-#: config/tc-mn10300.c:2103
+#: config/tc-mn10300.c:2162
 msgid "could not set architecture and machine"
 msgstr ""
 
 msgid "could not set architecture and machine"
 msgstr ""
 
@@ -3105,7 +3104,7 @@ msgstr ""
 msgid ".REG expression must be a register"
 msgstr ""
 
 msgid ".REG expression must be a register"
 msgstr ""
 
-#: config/tc-hppa.c:6498 read.c:4736
+#: config/tc-hppa.c:6498 read.c:4748
 msgid "bad or irreducible absolute expression; zero assumed"
 msgstr ""
 
 msgid "bad or irreducible absolute expression; zero assumed"
 msgstr ""
 
@@ -3289,11 +3288,11 @@ msgstr ""
 msgid "no such architecture modifier: `%s'"
 msgstr ""
 
 msgid "no such architecture modifier: `%s'"
 msgstr ""
 
-#: config/tc-i386.c:823 config/tc-i386.c:4590
+#: config/tc-i386.c:823 config/tc-i386.c:4627
 msgid "Unknown architecture"
 msgstr ""
 
 msgid "Unknown architecture"
 msgstr ""
 
-#: config/tc-i386.c:858 config/tc-i386.c:881 config/tc-m68k.c:3816
+#: config/tc-i386.c:858 config/tc-i386.c:881 config/tc-m68k.c:3821
 #, c-format
 msgid "Internal Error:  Can't hash %s: %s"
 msgstr ""
 #, c-format
 msgid "Internal Error:  Can't hash %s: %s"
 msgstr ""
@@ -3302,7 +3301,7 @@ msgstr ""
 msgid "There are no unsigned pc-relative relocations"
 msgstr ""
 
 msgid "There are no unsigned pc-relative relocations"
 msgstr ""
 
-#: config/tc-i386.c:1141 config/tc-i386.c:4746
+#: config/tc-i386.c:1141 config/tc-i386.c:4783
 #, c-format
 msgid "can not do %d byte pc-relative relocation"
 msgstr ""
 #, c-format
 msgid "can not do %d byte pc-relative relocation"
 msgstr ""
@@ -3312,295 +3311,300 @@ msgstr ""
 msgid "can not do %s %d byte relocation"
 msgstr ""
 
 msgid "can not do %s %d byte relocation"
 msgstr ""
 
-#: config/tc-i386.c:1269 config/tc-i386.c:1362
+#: config/tc-i386.c:1265 config/tc-i386.c:1359
 #, c-format
 msgid "no such instruction: `%s'"
 msgstr ""
 
 #, c-format
 msgid "no such instruction: `%s'"
 msgstr ""
 
-#: config/tc-i386.c:1278
+#: config/tc-i386.c:1275 config/tc-i386.c:1391
 #, c-format
 msgid "invalid character %s in mnemonic"
 msgstr ""
 
 #, c-format
 msgid "invalid character %s in mnemonic"
 msgstr ""
 
-#: config/tc-i386.c:1285
+#: config/tc-i386.c:1282
 msgid "expecting prefix; got nothing"
 msgstr ""
 
 msgid "expecting prefix; got nothing"
 msgstr ""
 
-#: config/tc-i386.c:1287
+#: config/tc-i386.c:1284
 msgid "expecting mnemonic; got nothing"
 msgstr ""
 
 msgid "expecting mnemonic; got nothing"
 msgstr ""
 
-#: config/tc-i386.c:1305
+#: config/tc-i386.c:1302
 #, c-format
 msgid "redundant %s prefix"
 msgstr ""
 
 #, c-format
 msgid "redundant %s prefix"
 msgstr ""
 
-#: config/tc-i386.c:1373
+#: config/tc-i386.c:1402
 #, c-format
 msgid "`%s' is not supported on `%s'"
 msgstr ""
 
 #, c-format
 msgid "`%s' is not supported on `%s'"
 msgstr ""
 
-#: config/tc-i386.c:1378
+#: config/tc-i386.c:1407
 msgid "use .code16 to ensure correct addressing mode"
 msgstr ""
 
 msgid "use .code16 to ensure correct addressing mode"
 msgstr ""
 
-#: config/tc-i386.c:1386
+#: config/tc-i386.c:1415
 #, c-format
 msgid "expecting string instruction after `%s'"
 msgstr ""
 
 #, c-format
 msgid "expecting string instruction after `%s'"
 msgstr ""
 
-#: config/tc-i386.c:1407
+#: config/tc-i386.c:1436
 #, c-format
 msgid "invalid character %s before operand %d"
 msgstr ""
 
 #, c-format
 msgid "invalid character %s before operand %d"
 msgstr ""
 
-#: config/tc-i386.c:1421
+#: config/tc-i386.c:1450
 #, c-format
 msgid "unbalanced parenthesis in operand %d."
 msgstr ""
 
 #, c-format
 msgid "unbalanced parenthesis in operand %d."
 msgstr ""
 
-#: config/tc-i386.c:1424
+#: config/tc-i386.c:1453
 #, c-format
 msgid "unbalanced brackets in operand %d."
 msgstr ""
 
 #, c-format
 msgid "unbalanced brackets in operand %d."
 msgstr ""
 
-#: config/tc-i386.c:1433
+#: config/tc-i386.c:1462
 #, c-format
 msgid "invalid character %s in operand %d"
 msgstr ""
 
 #, c-format
 msgid "invalid character %s in operand %d"
 msgstr ""
 
-#: config/tc-i386.c:1460
+#: config/tc-i386.c:1489
 #, c-format
 msgid "spurious operands; (%d operands/instruction max)"
 msgstr ""
 
 #, c-format
 msgid "spurious operands; (%d operands/instruction max)"
 msgstr ""
 
-#: config/tc-i386.c:1483
+#: config/tc-i386.c:1512
 msgid "expecting operand after ','; got nothing"
 msgstr ""
 
 msgid "expecting operand after ','; got nothing"
 msgstr ""
 
-#: config/tc-i386.c:1488
+#: config/tc-i386.c:1517
 msgid "expecting operand before ','; got nothing"
 msgstr ""
 
 #. We found no match.
 msgid "expecting operand before ','; got nothing"
 msgstr ""
 
 #. We found no match.
-#: config/tc-i386.c:1832
+#: config/tc-i386.c:1861
 #, c-format
 msgid "suffix or operands invalid for `%s'"
 msgstr ""
 
 #, c-format
 msgid "suffix or operands invalid for `%s'"
 msgstr ""
 
-#: config/tc-i386.c:1843
+#: config/tc-i386.c:1872
 #, c-format
 msgid "indirect %s without `*'"
 msgstr ""
 
 #. Warn them that a data or address size prefix doesn't
 #. affect assembly of the next line of code.
 #, c-format
 msgid "indirect %s without `*'"
 msgstr ""
 
 #. Warn them that a data or address size prefix doesn't
 #. affect assembly of the next line of code.
-#: config/tc-i386.c:1851
+#: config/tc-i386.c:1880
 #, c-format
 msgid "stand-alone `%s' prefix"
 msgstr ""
 
 #, c-format
 msgid "stand-alone `%s' prefix"
 msgstr ""
 
-#: config/tc-i386.c:1887 config/tc-i386.c:1902
+#: config/tc-i386.c:1916 config/tc-i386.c:1931
 msgid "`%s' operand %d must use `%%es' segment"
 msgstr ""
 
 msgid "`%s' operand %d must use `%%es' segment"
 msgstr ""
 
-#: config/tc-i386.c:1917
+#: config/tc-i386.c:1946
 msgid "Extended register `%%%s' available only in 64bit mode."
 msgstr ""
 
 #. Prohibit these changes in the 64bit mode, since
 #. the lowering is more complicated.
 msgid "Extended register `%%%s' available only in 64bit mode."
 msgstr ""
 
 #. Prohibit these changes in the 64bit mode, since
 #. the lowering is more complicated.
-#: config/tc-i386.c:1988 config/tc-i386.c:2042 config/tc-i386.c:2057
-#: config/tc-i386.c:2085 config/tc-i386.c:2113
+#: config/tc-i386.c:2017 config/tc-i386.c:2071 config/tc-i386.c:2086
+#: config/tc-i386.c:2114 config/tc-i386.c:2142
 msgid "Incorrect register `%%%s' used with`%c' suffix"
 msgstr ""
 
 msgid "Incorrect register `%%%s' used with`%c' suffix"
 msgstr ""
 
-#: config/tc-i386.c:1994 config/tc-i386.c:2047 config/tc-i386.c:2118
+#: config/tc-i386.c:2023 config/tc-i386.c:2076 config/tc-i386.c:2147
 msgid "using `%%%s' instead of `%%%s' due to `%c' suffix"
 msgstr ""
 
 msgid "using `%%%s' instead of `%%%s' due to `%c' suffix"
 msgstr ""
 
-#: config/tc-i386.c:2010 config/tc-i386.c:2028 config/tc-i386.c:2072
-#: config/tc-i386.c:2099
+#: config/tc-i386.c:2039 config/tc-i386.c:2057 config/tc-i386.c:2101
+#: config/tc-i386.c:2128
 msgid "`%%%s' not allowed with `%s%c'"
 msgstr ""
 
 msgid "`%%%s' not allowed with `%s%c'"
 msgstr ""
 
-#: config/tc-i386.c:2159
+#: config/tc-i386.c:2188
 msgid "no instruction mnemonic suffix given; can't determine immediate size"
 msgstr ""
 
 msgid "no instruction mnemonic suffix given; can't determine immediate size"
 msgstr ""
 
-#: config/tc-i386.c:2185
+#: config/tc-i386.c:2214
 #, c-format
 msgid ""
 "no instruction mnemonic suffix given; can't determine immediate size %x %c"
 msgstr ""
 
 #, c-format
 msgid ""
 "no instruction mnemonic suffix given; can't determine immediate size %x %c"
 msgstr ""
 
-#: config/tc-i386.c:2210
+#: config/tc-i386.c:2239
 msgid ""
 "no instruction mnemonic suffix given and no register operands; can't size "
 "instruction"
 msgstr ""
 
 msgid ""
 "no instruction mnemonic suffix given and no register operands; can't size "
 "instruction"
 msgstr ""
 
-#: config/tc-i386.c:2258
+#: config/tc-i386.c:2287
 msgid "64bit operations available only in 64bit modes."
 msgstr ""
 
 #. Reversed arguments on faddp, fsubp, etc.
 msgid "64bit operations available only in 64bit modes."
 msgstr ""
 
 #. Reversed arguments on faddp, fsubp, etc.
-#: config/tc-i386.c:2326
+#: config/tc-i386.c:2355
 msgid "translating to `%s %%%s,%%%s'"
 msgstr ""
 
 #. Extraneous `l' suffix on fp insn.
 msgid "translating to `%s %%%s,%%%s'"
 msgstr ""
 
 #. Extraneous `l' suffix on fp insn.
-#: config/tc-i386.c:2333
+#: config/tc-i386.c:2362
 msgid "translating to `%s %%%s'"
 msgstr ""
 
 msgid "translating to `%s %%%s'"
 msgstr ""
 
-#: config/tc-i386.c:2606
+#: config/tc-i386.c:2635
 msgid "you can't `pop %%cs'"
 msgstr ""
 
 #. UnixWare fsub no args is alias for fsubp, fadd -> faddp, etc.
 msgid "you can't `pop %%cs'"
 msgstr ""
 
 #. UnixWare fsub no args is alias for fsubp, fadd -> faddp, etc.
-#: config/tc-i386.c:2639
+#: config/tc-i386.c:2668
 #, c-format
 msgid "translating to `%sp'"
 msgstr ""
 
 #, c-format
 msgid "translating to `%sp'"
 msgstr ""
 
-#: config/tc-i386.c:2682
+#: config/tc-i386.c:2711
 msgid ""
 "Can't encode registers '%%%s' in the instruction requiring REX prefix.\n"
 msgstr ""
 
 msgid ""
 "Can't encode registers '%%%s' in the instruction requiring REX prefix.\n"
 msgstr ""
 
-#: config/tc-i386.c:2729 config/tc-i386.c:2803 config/tc-i386.c:2850
+#: config/tc-i386.c:2770 config/tc-i386.c:2850 config/tc-i386.c:2886
 msgid "skipping prefixes on this instruction"
 msgstr ""
 
 msgid "skipping prefixes on this instruction"
 msgstr ""
 
-#: config/tc-i386.c:2871
+#: config/tc-i386.c:2906
 msgid "16-bit jump out of range"
 msgstr ""
 
 msgid "16-bit jump out of range"
 msgstr ""
 
-#: config/tc-i386.c:2880
+#: config/tc-i386.c:2915
 #, c-format
 msgid "can't handle non absolute segment in `%s'"
 msgstr ""
 
 #, c-format
 msgid "can't handle non absolute segment in `%s'"
 msgstr ""
 
-#: config/tc-i386.c:3184
+#: config/tc-i386.c:3208
 #, c-format
 msgid "@%s reloc is not supported in %s bit mode"
 msgstr ""
 
 #, c-format
 msgid "@%s reloc is not supported in %s bit mode"
 msgstr ""
 
-#: config/tc-i386.c:3260
+#: config/tc-i386.c:3284
 msgid "only 1 or 2 immediate operands are allowed"
 msgstr ""
 
 msgid "only 1 or 2 immediate operands are allowed"
 msgstr ""
 
-#: config/tc-i386.c:3283 config/tc-i386.c:3491
+#: config/tc-i386.c:3307 config/tc-i386.c:3495
 #, c-format
 msgid "junk `%s' after expression"
 msgstr ""
 
 #. Missing or bad expr becomes absolute 0.
 #, c-format
 msgid "junk `%s' after expression"
 msgstr ""
 
 #. Missing or bad expr becomes absolute 0.
-#: config/tc-i386.c:3294
+#: config/tc-i386.c:3318
 #, c-format
 msgid "missing or invalid immediate expression `%s' taken as 0"
 msgstr ""
 
 #, c-format
 msgid "missing or invalid immediate expression `%s' taken as 0"
 msgstr ""
 
-#: config/tc-i386.c:3325 config/tc-i386.c:3524
+#: config/tc-i386.c:3349 config/tc-i386.c:3556
 #, c-format
 msgid "unimplemented segment %s in operand"
 msgstr ""
 
 #, c-format
 msgid "unimplemented segment %s in operand"
 msgstr ""
 
-#: config/tc-i386.c:3327 config/tc-i386.c:3526
+#: config/tc-i386.c:3351 config/tc-i386.c:3558
 #, c-format
 msgid "unimplemented segment type %d in operand"
 msgstr ""
 
 #, c-format
 msgid "unimplemented segment type %d in operand"
 msgstr ""
 
-#: config/tc-i386.c:3371 config/tc-i386.c:5505
+#: config/tc-i386.c:3395 config/tc-i386.c:5542
 #, c-format
 msgid "expecting scale factor of 1, 2, 4, or 8: got `%s'"
 msgstr ""
 
 #, c-format
 msgid "expecting scale factor of 1, 2, 4, or 8: got `%s'"
 msgstr ""
 
-#: config/tc-i386.c:3378
+#: config/tc-i386.c:3402
 #, c-format
 msgid "scale factor of %d without an index register"
 msgstr ""
 
 #, c-format
 msgid "scale factor of %d without an index register"
 msgstr ""
 
+#: config/tc-i386.c:3515
+#, c-format
+msgid "bad expression used with @%s"
+msgstr ""
+
 #. Missing or bad expr becomes absolute 0.
 #. Missing or bad expr becomes absolute 0.
-#: config/tc-i386.c:3505
+#: config/tc-i386.c:3537
 #, c-format
 msgid "missing or invalid displacement expression `%s' taken as 0"
 msgstr ""
 
 #, c-format
 msgid "missing or invalid displacement expression `%s' taken as 0"
 msgstr ""
 
-#: config/tc-i386.c:3611
+#: config/tc-i386.c:3643
 #, c-format
 msgid "`%s' is not a valid base/index expression"
 msgstr ""
 
 #, c-format
 msgid "`%s' is not a valid base/index expression"
 msgstr ""
 
-#: config/tc-i386.c:3615
+#: config/tc-i386.c:3647
 #, c-format
 msgid "`%s' is not a valid %s bit base/index expression"
 msgstr ""
 
 #, c-format
 msgid "`%s' is not a valid %s bit base/index expression"
 msgstr ""
 
-#: config/tc-i386.c:3690
+#: config/tc-i386.c:3722
 #, c-format
 msgid "bad memory operand `%s'"
 msgstr ""
 
 #, c-format
 msgid "bad memory operand `%s'"
 msgstr ""
 
-#: config/tc-i386.c:3705
+#: config/tc-i386.c:3737
 #, c-format
 msgid "junk `%s' after register"
 msgstr ""
 
 #, c-format
 msgid "junk `%s' after register"
 msgstr ""
 
-#: config/tc-i386.c:3714 config/tc-i386.c:3829 config/tc-i386.c:3867
+#: config/tc-i386.c:3746 config/tc-i386.c:3861 config/tc-i386.c:3899
 #, c-format
 msgid "bad register name `%s'"
 msgstr ""
 
 #, c-format
 msgid "bad register name `%s'"
 msgstr ""
 
-#: config/tc-i386.c:3722
+#: config/tc-i386.c:3754
 msgid "immediate operand illegal with absolute jump"
 msgstr ""
 
 msgid "immediate operand illegal with absolute jump"
 msgstr ""
 
-#: config/tc-i386.c:3744
+#: config/tc-i386.c:3776
 #, c-format
 msgid "too many memory references for `%s'"
 msgstr ""
 
 #, c-format
 msgid "too many memory references for `%s'"
 msgstr ""
 
-#: config/tc-i386.c:3822
+#: config/tc-i386.c:3854
 #, c-format
 msgid "expecting `,' or `)' after index register in `%s'"
 msgstr ""
 
 #, c-format
 msgid "expecting `,' or `)' after index register in `%s'"
 msgstr ""
 
-#: config/tc-i386.c:3846
+#: config/tc-i386.c:3878
 #, c-format
 msgid "expecting `)' after scale factor in `%s'"
 msgstr ""
 
 #, c-format
 msgid "expecting `)' after scale factor in `%s'"
 msgstr ""
 
-#: config/tc-i386.c:3853
+#: config/tc-i386.c:3885
 #, c-format
 msgid "expecting index register or scale factor after `,'; got '%c'"
 msgstr ""
 
 #, c-format
 msgid "expecting index register or scale factor after `,'; got '%c'"
 msgstr ""
 
-#: config/tc-i386.c:3860
+#: config/tc-i386.c:3892
 #, c-format
 msgid "expecting `,' or `)' after base register in `%s'"
 msgstr ""
 
 #. It's not a memory operand; argh!
 #, c-format
 msgid "expecting `,' or `)' after base register in `%s'"
 msgstr ""
 
 #. It's not a memory operand; argh!
-#: config/tc-i386.c:3901
+#: config/tc-i386.c:3933
 #, c-format
 msgid "invalid char %s beginning operand %d `%s'"
 msgstr ""
 
 #, c-format
 msgid "invalid char %s beginning operand %d `%s'"
 msgstr ""
 
-#: config/tc-i386.c:4080
+#: config/tc-i386.c:4117
 msgid "long jump required"
 msgstr ""
 
 msgid "long jump required"
 msgstr ""
 
-#: config/tc-i386.c:4386
+#: config/tc-i386.c:4423
 msgid "Bad call to md_atof ()"
 msgstr ""
 
 msgid "Bad call to md_atof ()"
 msgstr ""
 
-#: config/tc-i386.c:4543
+#: config/tc-i386.c:4580
 msgid "No compiled in support for x86_64"
 msgstr ""
 
 msgid "No compiled in support for x86_64"
 msgstr ""
 
-#: config/tc-i386.c:4564
+#: config/tc-i386.c:4601
 msgid ""
 "  -Q                      ignored\n"
 "  -V                      print assembler version number\n"
 msgid ""
 "  -Q                      ignored\n"
 "  -V                      print assembler version number\n"
@@ -3609,63 +3613,63 @@ msgid ""
 "  -s                      ignored\n"
 msgstr ""
 
 "  -s                      ignored\n"
 msgstr ""
 
-#: config/tc-i386.c:4571
+#: config/tc-i386.c:4608
 msgid "  -q                      quieten some warnings\n"
 msgstr ""
 
 msgid "  -q                      quieten some warnings\n"
 msgstr ""
 
-#: config/tc-i386.c:4630 config/tc-s390.c:1561
+#: config/tc-i386.c:4667 config/tc-s390.c:1561
 msgid "GOT already in symbol table"
 msgstr ""
 
 msgid "GOT already in symbol table"
 msgstr ""
 
-#: config/tc-i386.c:4760
+#: config/tc-i386.c:4797
 #, c-format
 msgid "can not do %d byte relocation"
 msgstr ""
 
 #, c-format
 msgid "can not do %d byte relocation"
 msgstr ""
 
-#: config/tc-i386.c:4811 config/tc-s390.c:1888
+#: config/tc-i386.c:4848 config/tc-s390.c:1888
 #, c-format
 msgid "cannot represent relocation type %s"
 msgstr ""
 
 #, c-format
 msgid "cannot represent relocation type %s"
 msgstr ""
 
-#: config/tc-i386.c:5107
+#: config/tc-i386.c:5144
 #, c-format
 msgid "too many memory references for '%s'"
 msgstr ""
 
 #, c-format
 msgid "too many memory references for '%s'"
 msgstr ""
 
-#: config/tc-i386.c:5270
+#: config/tc-i386.c:5307
 #, c-format
 msgid "Unknown operand modifier `%s'\n"
 msgstr ""
 
 #, c-format
 msgid "Unknown operand modifier `%s'\n"
 msgstr ""
 
-#: config/tc-i386.c:5477
+#: config/tc-i386.c:5514
 #, c-format
 msgid "`%s' is not a valid segment register"
 msgstr ""
 
 #, c-format
 msgid "`%s' is not a valid segment register"
 msgstr ""
 
-#: config/tc-i386.c:5487 config/tc-i386.c:5608
+#: config/tc-i386.c:5524 config/tc-i386.c:5645
 msgid "Register scaling only allowed in memory operands."
 msgstr ""
 
 msgid "Register scaling only allowed in memory operands."
 msgstr ""
 
-#: config/tc-i386.c:5518
+#: config/tc-i386.c:5555
 msgid "Too many register references in memory operand.\n"
 msgstr ""
 
 msgid "Too many register references in memory operand.\n"
 msgstr ""
 
-#: config/tc-i386.c:5587
+#: config/tc-i386.c:5624
 #, c-format
 msgid "Syntax error. Expecting a constant. Got `%s'.\n"
 msgstr ""
 
 #, c-format
 msgid "Syntax error. Expecting a constant. Got `%s'.\n"
 msgstr ""
 
-#: config/tc-i386.c:5657
+#: config/tc-i386.c:5694
 #, c-format
 msgid "Unrecognized token '%s'"
 msgstr ""
 
 #, c-format
 msgid "Unrecognized token '%s'"
 msgstr ""
 
-#: config/tc-i386.c:5674
+#: config/tc-i386.c:5711
 #, c-format
 msgid "Unexpected token `%s'\n"
 msgstr ""
 
 #, c-format
 msgid "Unexpected token `%s'\n"
 msgstr ""
 
-#: config/tc-i386.c:5818
+#: config/tc-i386.c:5855
 #, c-format
 msgid "Unrecognized token `%s'\n"
 msgstr ""
 #, c-format
 msgid "Unrecognized token `%s'\n"
 msgstr ""
@@ -3674,7 +3678,7 @@ msgstr ""
 msgid "Unknown temporary pseudo register"
 msgstr ""
 
 msgid "Unknown temporary pseudo register"
 msgstr ""
 
-#: config/tc-i860.c:181 config/tc-mips.c:1028
+#: config/tc-i860.c:181 config/tc-mips.c:1036
 #, c-format
 msgid "internal error: can't hash `%s': %s\n"
 msgstr ""
 #, c-format
 msgid "internal error: can't hash `%s': %s\n"
 msgstr ""
@@ -3936,95 +3940,95 @@ msgstr ""
 msgid "callj to difference of two symbols"
 msgstr ""
 
 msgid "callj to difference of two symbols"
 msgstr ""
 
-#: config/tc-ia64.c:998
+#: config/tc-ia64.c:1020
 msgid "Unwind directive not followed by an instruction."
 msgstr ""
 
 msgid "Unwind directive not followed by an instruction."
 msgstr ""
 
-#: config/tc-ia64.c:4272
+#: config/tc-ia64.c:4297
 msgid "Register name expected"
 msgstr ""
 
 msgid "Register name expected"
 msgstr ""
 
-#: config/tc-ia64.c:4277 config/tc-ia64.c:4563
+#: config/tc-ia64.c:4302 config/tc-ia64.c:4588
 msgid "Comma expected"
 msgstr ""
 
 msgid "Comma expected"
 msgstr ""
 
-#: config/tc-ia64.c:4285
+#: config/tc-ia64.c:4310
 msgid "Register value annotation ignored"
 msgstr ""
 
 msgid "Register value annotation ignored"
 msgstr ""
 
-#: config/tc-ia64.c:4309
+#: config/tc-ia64.c:4334
 msgid "Directive invalid within a bundle"
 msgstr ""
 
 msgid "Directive invalid within a bundle"
 msgstr ""
 
-#: config/tc-ia64.c:4376
+#: config/tc-ia64.c:4401
 msgid "Missing predicate relation type"
 msgstr ""
 
 msgid "Missing predicate relation type"
 msgstr ""
 
-#: config/tc-ia64.c:4392
+#: config/tc-ia64.c:4417
 msgid "Unrecognized predicate relation type"
 msgstr ""
 
 msgid "Unrecognized predicate relation type"
 msgstr ""
 
-#: config/tc-ia64.c:4412 config/tc-ia64.c:4437
+#: config/tc-ia64.c:4437 config/tc-ia64.c:4462
 msgid "Predicate register expected"
 msgstr ""
 
 msgid "Predicate register expected"
 msgstr ""
 
-#: config/tc-ia64.c:4424
+#: config/tc-ia64.c:4449
 msgid "Duplicate predicate register ignored"
 msgstr ""
 
 msgid "Duplicate predicate register ignored"
 msgstr ""
 
-#: config/tc-ia64.c:4446
+#: config/tc-ia64.c:4471
 msgid "Bad register range"
 msgstr ""
 
 msgid "Bad register range"
 msgstr ""
 
-#: config/tc-ia64.c:4474
+#: config/tc-ia64.c:4499
 msgid "Predicate source and target required"
 msgstr ""
 
 msgid "Predicate source and target required"
 msgstr ""
 
-#: config/tc-ia64.c:4476 config/tc-ia64.c:4488
+#: config/tc-ia64.c:4501 config/tc-ia64.c:4513
 msgid "Use of p0 is not valid in this context"
 msgstr ""
 
 msgid "Use of p0 is not valid in this context"
 msgstr ""
 
-#: config/tc-ia64.c:4483
+#: config/tc-ia64.c:4508
 msgid "At least two PR arguments expected"
 msgstr ""
 
 msgid "At least two PR arguments expected"
 msgstr ""
 
-#: config/tc-ia64.c:4497
+#: config/tc-ia64.c:4522
 msgid "At least one PR argument expected"
 msgstr ""
 
 msgid "At least one PR argument expected"
 msgstr ""
 
-#: config/tc-ia64.c:4533
+#: config/tc-ia64.c:4558
 #, c-format
 msgid "Inserting \"%s\" into entry hint table failed: %s"
 msgstr ""
 
 #. FIXME -- need 62-bit relocation type
 #, c-format
 msgid "Inserting \"%s\" into entry hint table failed: %s"
 msgstr ""
 
 #. FIXME -- need 62-bit relocation type
-#: config/tc-ia64.c:4990
+#: config/tc-ia64.c:5015
 msgid "62-bit relocation not yet implemented"
 msgstr ""
 
 #. XXX technically, this is wrong: we should not be issuing warning
 #. messages until we're sure this instruction pattern is going to
 #. be used!
 msgid "62-bit relocation not yet implemented"
 msgstr ""
 
 #. XXX technically, this is wrong: we should not be issuing warning
 #. messages until we're sure this instruction pattern is going to
 #. be used!
-#: config/tc-ia64.c:5063
+#: config/tc-ia64.c:5088
 msgid "lower 16 bits of mask ignored"
 msgstr ""
 
 msgid "lower 16 bits of mask ignored"
 msgstr ""
 
-#: config/tc-ia64.c:5618
+#: config/tc-ia64.c:5643
 msgid "Value truncated to 62 bits"
 msgstr ""
 
 msgid "Value truncated to 62 bits"
 msgstr ""
 
-#: config/tc-ia64.c:5969
+#: config/tc-ia64.c:5994
 msgid ""
 "Additional NOP may be necessary to workaround Itanium processor A/B step "
 "errata"
 msgstr ""
 
 msgid ""
 "Additional NOP may be necessary to workaround Itanium processor A/B step "
 "errata"
 msgstr ""
 
-#: config/tc-ia64.c:6152
+#: config/tc-ia64.c:6177
 #, c-format
 msgid "Unrecognized option '-x%s'"
 msgstr ""
 
 #, c-format
 msgid "Unrecognized option '-x%s'"
 msgstr ""
 
-#: config/tc-ia64.c:6180
+#: config/tc-ia64.c:6205
 msgid ""
 "IA-64 options:\n"
 "  -milp32|-milp64|-mlp64|-mp64\tselect data model (default -mlp64)\n"
 msgid ""
 "IA-64 options:\n"
 "  -milp32|-milp64|-mlp64|-mp64\tselect data model (default -mlp64)\n"
@@ -4034,28 +4038,28 @@ msgid ""
 "  -xdebug\t\t  debug dependency violation checker\n"
 msgstr ""
 
 "  -xdebug\t\t  debug dependency violation checker\n"
 msgstr ""
 
-#: config/tc-ia64.c:6450 config/tc-mips.c:1015
+#: config/tc-ia64.c:6475 config/tc-mips.c:1023
 msgid "Could not set architecture and machine"
 msgstr ""
 
 msgid "Could not set architecture and machine"
 msgstr ""
 
-#: config/tc-ia64.c:6542
+#: config/tc-ia64.c:6567
 msgid "Explicit stops are ignored in auto mode"
 msgstr ""
 
 msgid "Explicit stops are ignored in auto mode"
 msgstr ""
 
-#: config/tc-ia64.c:6592
+#: config/tc-ia64.c:6617
 msgid "Found '{' after explicit switch to automatic mode"
 msgstr ""
 
 msgid "Found '{' after explicit switch to automatic mode"
 msgstr ""
 
-#: config/tc-ia64.c:8305
+#: config/tc-ia64.c:8330
 #, c-format
 msgid "Unrecognized dependency specifier %d\n"
 msgstr ""
 
 #, c-format
 msgid "Unrecognized dependency specifier %d\n"
 msgstr ""
 
-#: config/tc-ia64.c:9096
+#: config/tc-ia64.c:9121
 msgid "Only the first path encountering the conflict is reported"
 msgstr ""
 
 msgid "Only the first path encountering the conflict is reported"
 msgstr ""
 
-#: config/tc-ia64.c:9099
+#: config/tc-ia64.c:9124
 msgid "This is the location of the conflicting usage"
 msgstr ""
 
 msgid "This is the location of the conflicting usage"
 msgstr ""
 
@@ -4190,7 +4194,7 @@ msgid ""
 "is this intentional ?"
 msgstr ""
 
 "is this intentional ?"
 msgstr ""
 
-#: config/tc-m32r.c:1251 config/tc-ppc.c:1459 config/tc-ppc.c:3681 read.c:1358
+#: config/tc-m32r.c:1251 config/tc-ppc.c:1459 config/tc-ppc.c:3701 read.c:1358
 msgid "Expected comma after symbol-name: rest of line ignored."
 msgstr ""
 
 msgid "Expected comma after symbol-name: rest of line ignored."
 msgstr ""
 
@@ -4200,11 +4204,11 @@ msgid ".SCOMMon length (%ld.) <0! Ignored."
 msgstr ""
 
 #: config/tc-m32r.c:1275 config/tc-ppc.c:1481 config/tc-ppc.c:2392
 msgstr ""
 
 #: config/tc-m32r.c:1275 config/tc-ppc.c:1481 config/tc-ppc.c:2392
-#: config/tc-ppc.c:3705
+#: config/tc-ppc.c:3725
 msgid "ignoring bad alignment"
 msgstr ""
 
 msgid "ignoring bad alignment"
 msgstr ""
 
-#: config/tc-m32r.c:1302 config/tc-ppc.c:1492 config/tc-ppc.c:3717 read.c:1382
+#: config/tc-m32r.c:1302 config/tc-ppc.c:1492 config/tc-ppc.c:3737 read.c:1382
 #: read.c:2108
 #, c-format
 msgid "Ignoring attempt to re-define symbol `%s'."
 #: read.c:2108
 #, c-format
 msgid "Ignoring attempt to re-define symbol `%s'."
@@ -4215,11 +4219,11 @@ msgstr ""
 msgid "Length of .scomm \"%s\" is already %ld. Not changed to %ld."
 msgstr ""
 
 msgid "Length of .scomm \"%s\" is already %ld. Not changed to %ld."
 msgstr ""
 
-#: config/tc-m32r.c:1788
+#: config/tc-m32r.c:1789
 msgid "Unmatched high/shigh reloc"
 msgstr ""
 
 msgid "Unmatched high/shigh reloc"
 msgstr ""
 
-#: config/tc-m68hc11.c:311
+#: config/tc-m68hc11.c:313
 #, c-format
 msgid ""
 "Motorola 68HC11/68HC12 options:\n"
 #, c-format
 msgid ""
 "Motorola 68HC11/68HC12 options:\n"
@@ -4235,55 +4239,55 @@ msgid ""
 "                          (used for testing)\n"
 msgstr ""
 
 "                          (used for testing)\n"
 msgstr ""
 
-#: config/tc-m68hc11.c:352
+#: config/tc-m68hc11.c:354
 #, c-format
 msgid "Default target `%s' is not supported."
 msgstr ""
 
 #. Dump the opcode statistics table.
 #, c-format
 msgid "Default target `%s' is not supported."
 msgstr ""
 
 #. Dump the opcode statistics table.
-#: config/tc-m68hc11.c:371
+#: config/tc-m68hc11.c:373
 msgid "Name   # Modes  Min ops  Max ops  Modes mask  # Used\n"
 msgstr ""
 
 msgid "Name   # Modes  Min ops  Max ops  Modes mask  # Used\n"
 msgstr ""
 
-#: config/tc-m68hc11.c:421
+#: config/tc-m68hc11.c:423
 #, c-format
 msgid "Option `%s' is not recognized."
 msgstr ""
 
 #, c-format
 msgid "Option `%s' is not recognized."
 msgstr ""
 
-#: config/tc-m68hc11.c:642
+#: config/tc-m68hc11.c:644
 msgid "#<imm8>"
 msgstr ""
 
 msgid "#<imm8>"
 msgstr ""
 
-#: config/tc-m68hc11.c:651
+#: config/tc-m68hc11.c:653
 msgid "#<imm16>"
 msgstr ""
 
 msgid "#<imm16>"
 msgstr ""
 
-#: config/tc-m68hc11.c:660 config/tc-m68hc11.c:669
+#: config/tc-m68hc11.c:662 config/tc-m68hc11.c:671
 msgid "<imm8>,X"
 msgstr ""
 
 msgid "<imm8>,X"
 msgstr ""
 
-#: config/tc-m68hc11.c:687
+#: config/tc-m68hc11.c:689
 msgid "*<abs8>"
 msgstr ""
 
 msgid "*<abs8>"
 msgstr ""
 
-#: config/tc-m68hc11.c:699
+#: config/tc-m68hc11.c:701
 msgid "#<mask>"
 msgstr ""
 
 msgid "#<mask>"
 msgstr ""
 
-#: config/tc-m68hc11.c:709
+#: config/tc-m68hc11.c:711
 #, c-format
 msgid "symbol%d"
 msgstr ""
 
 #, c-format
 msgid "symbol%d"
 msgstr ""
 
-#: config/tc-m68hc11.c:711
+#: config/tc-m68hc11.c:713
 msgid "<abs>"
 msgstr ""
 
 msgid "<abs>"
 msgstr ""
 
-#: config/tc-m68hc11.c:730
+#: config/tc-m68hc11.c:732
 msgid "<label>"
 msgstr ""
 
 msgid "<label>"
 msgstr ""
 
-#: config/tc-m68hc11.c:746
+#: config/tc-m68hc11.c:748
 #, c-format
 msgid ""
 "# Example of `%s' instructions\n"
 #, c-format
 msgid ""
 "# Example of `%s' instructions\n"
@@ -4291,243 +4295,243 @@ msgid ""
 "_start:\n"
 msgstr ""
 
 "_start:\n"
 msgstr ""
 
-#: config/tc-m68hc11.c:794
+#: config/tc-m68hc11.c:796
 #, c-format
 msgid "Instruction `%s' is not recognized."
 msgstr ""
 
 #, c-format
 msgid "Instruction `%s' is not recognized."
 msgstr ""
 
-#: config/tc-m68hc11.c:799
+#: config/tc-m68hc11.c:801
 #, c-format
 msgid "Instruction formats for `%s':"
 msgstr ""
 
 #, c-format
 msgid "Instruction formats for `%s':"
 msgstr ""
 
-#: config/tc-m68hc11.c:932
+#: config/tc-m68hc11.c:934
 #, c-format
 msgid "Immediate operand is not allowed for operand %d."
 msgstr ""
 
 #, c-format
 msgid "Immediate operand is not allowed for operand %d."
 msgstr ""
 
-#: config/tc-m68hc11.c:958
+#: config/tc-m68hc11.c:960
 msgid "Indirect indexed addressing is not valid for 68HC11."
 msgstr ""
 
 msgid "Indirect indexed addressing is not valid for 68HC11."
 msgstr ""
 
-#: config/tc-m68hc11.c:978
+#: config/tc-m68hc11.c:980
 msgid "Spurious `,' or bad indirect register addressing mode."
 msgstr ""
 
 msgid "Spurious `,' or bad indirect register addressing mode."
 msgstr ""
 
-#: config/tc-m68hc11.c:994
+#: config/tc-m68hc11.c:996
 msgid "Missing second register or offset for indexed-indirect mode."
 msgstr ""
 
 msgid "Missing second register or offset for indexed-indirect mode."
 msgstr ""
 
-#: config/tc-m68hc11.c:1004
+#: config/tc-m68hc11.c:1006
 msgid "Missing second register for indexed-indirect mode."
 msgstr ""
 
 msgid "Missing second register for indexed-indirect mode."
 msgstr ""
 
-#: config/tc-m68hc11.c:1020
+#: config/tc-m68hc11.c:1022
 msgid "Missing `]' to close indexed-indirect mode."
 msgstr ""
 
 msgid "Missing `]' to close indexed-indirect mode."
 msgstr ""
 
-#: config/tc-m68hc11.c:1064
+#: config/tc-m68hc11.c:1066
 msgid "Illegal operand."
 msgstr ""
 
 msgid "Illegal operand."
 msgstr ""
 
-#: config/tc-m68hc11.c:1069
+#: config/tc-m68hc11.c:1071
 msgid "Missing operand."
 msgstr ""
 
 msgid "Missing operand."
 msgstr ""
 
-#: config/tc-m68hc11.c:1121
+#: config/tc-m68hc11.c:1123
 msgid "Pre-increment mode is not valid for 68HC11"
 msgstr ""
 
 msgid "Pre-increment mode is not valid for 68HC11"
 msgstr ""
 
-#: config/tc-m68hc11.c:1134
+#: config/tc-m68hc11.c:1136
 msgid "Wrong register in register indirect mode."
 msgstr ""
 
 msgid "Wrong register in register indirect mode."
 msgstr ""
 
-#: config/tc-m68hc11.c:1142
+#: config/tc-m68hc11.c:1144
 msgid "Missing `]' to close register indirect operand."
 msgstr ""
 
 msgid "Missing `]' to close register indirect operand."
 msgstr ""
 
-#: config/tc-m68hc11.c:1159
+#: config/tc-m68hc11.c:1161
 msgid "Post-decrement mode is not valid for 68HC11."
 msgstr ""
 
 msgid "Post-decrement mode is not valid for 68HC11."
 msgstr ""
 
-#: config/tc-m68hc11.c:1167
+#: config/tc-m68hc11.c:1169
 msgid "Post-increment mode is not valid for 68HC11."
 msgstr ""
 
 msgid "Post-increment mode is not valid for 68HC11."
 msgstr ""
 
-#: config/tc-m68hc11.c:1184
+#: config/tc-m68hc11.c:1186
 msgid "Invalid indexed indirect mode."
 msgstr ""
 
 msgid "Invalid indexed indirect mode."
 msgstr ""
 
-#: config/tc-m68hc11.c:1278
+#: config/tc-m68hc11.c:1280
 #, c-format
 msgid "Trap id `%ld' is out of range."
 msgstr ""
 
 #, c-format
 msgid "Trap id `%ld' is out of range."
 msgstr ""
 
-#: config/tc-m68hc11.c:1282
+#: config/tc-m68hc11.c:1284
 msgid "Trap id must be within [0x30..0x39] or [0x40..0xff]."
 msgstr ""
 
 msgid "Trap id must be within [0x30..0x39] or [0x40..0xff]."
 msgstr ""
 
-#: config/tc-m68hc11.c:1289
+#: config/tc-m68hc11.c:1291
 #, c-format
 msgid "Operand out of 8-bit range: `%ld'."
 msgstr ""
 
 #, c-format
 msgid "Operand out of 8-bit range: `%ld'."
 msgstr ""
 
-#: config/tc-m68hc11.c:1296
+#: config/tc-m68hc11.c:1298
 msgid "The trap id must be a constant."
 msgstr ""
 
 msgid "The trap id must be a constant."
 msgstr ""
 
-#: config/tc-m68hc11.c:1321
+#: config/tc-m68hc11.c:1323
 #, c-format
 msgid "Operand `%x' not recognized in fixup8."
 msgstr ""
 
 #, c-format
 msgid "Operand `%x' not recognized in fixup8."
 msgstr ""
 
-#: config/tc-m68hc11.c:1341
+#: config/tc-m68hc11.c:1343
 #, c-format
 msgid "Operand out of 16-bit range: `%ld'."
 msgstr ""
 
 #, c-format
 msgid "Operand out of 16-bit range: `%ld'."
 msgstr ""
 
-#: config/tc-m68hc11.c:1362
+#: config/tc-m68hc11.c:1364
 #, c-format
 msgid "Operand `%x' not recognized in fixup16."
 msgstr ""
 
 #, c-format
 msgid "Operand `%x' not recognized in fixup16."
 msgstr ""
 
-#: config/tc-m68hc11.c:1380
+#: config/tc-m68hc11.c:1382
 #, c-format
 msgid "Unexpected branch conversion with `%x'"
 msgstr ""
 
 #, c-format
 msgid "Unexpected branch conversion with `%x'"
 msgstr ""
 
-#: config/tc-m68hc11.c:1467 config/tc-m68hc11.c:1594
+#: config/tc-m68hc11.c:1469 config/tc-m68hc11.c:1596
 #, c-format
 msgid "Operand out of range for a relative branch: `%ld'"
 msgstr ""
 
 #, c-format
 msgid "Operand out of range for a relative branch: `%ld'"
 msgstr ""
 
-#: config/tc-m68hc11.c:1562
+#: config/tc-m68hc11.c:1564
 msgid "Invalid register for dbcc/tbcc instruction."
 msgstr ""
 
 msgid "Invalid register for dbcc/tbcc instruction."
 msgstr ""
 
-#: config/tc-m68hc11.c:1653
+#: config/tc-m68hc11.c:1655
 #, c-format
 msgid "Increment/decrement value is out of range: `%ld'."
 msgstr ""
 
 #, c-format
 msgid "Increment/decrement value is out of range: `%ld'."
 msgstr ""
 
-#: config/tc-m68hc11.c:1664
+#: config/tc-m68hc11.c:1666
 msgid "Expecting a register."
 msgstr ""
 
 msgid "Expecting a register."
 msgstr ""
 
-#: config/tc-m68hc11.c:1679
+#: config/tc-m68hc11.c:1681
 msgid "Invalid register for post/pre increment."
 msgstr ""
 
 msgid "Invalid register for post/pre increment."
 msgstr ""
 
-#: config/tc-m68hc11.c:1709
+#: config/tc-m68hc11.c:1711
 msgid "Invalid register."
 msgstr ""
 
 msgid "Invalid register."
 msgstr ""
 
-#: config/tc-m68hc11.c:1716
+#: config/tc-m68hc11.c:1718
 #, c-format
 msgid "Offset out of 16-bit range: %ld."
 msgstr ""
 
 #, c-format
 msgid "Offset out of 16-bit range: %ld."
 msgstr ""
 
-#: config/tc-m68hc11.c:1721
+#: config/tc-m68hc11.c:1723
 #, c-format
 msgid "Offset out of 5-bit range for movw/movb insn: %ld."
 msgstr ""
 
 #, c-format
 msgid "Offset out of 5-bit range for movw/movb insn: %ld."
 msgstr ""
 
-#: config/tc-m68hc11.c:1787
+#: config/tc-m68hc11.c:1789
 msgid "Expecting register D for indexed indirect mode."
 msgstr ""
 
 msgid "Expecting register D for indexed indirect mode."
 msgstr ""
 
-#: config/tc-m68hc11.c:1789
+#: config/tc-m68hc11.c:1791
 msgid "Indexed indirect mode is not allowed for movb/movw."
 msgstr ""
 
 msgid "Indexed indirect mode is not allowed for movb/movw."
 msgstr ""
 
-#: config/tc-m68hc11.c:1806
+#: config/tc-m68hc11.c:1808
 msgid "Invalid accumulator register."
 msgstr ""
 
 msgid "Invalid accumulator register."
 msgstr ""
 
-#: config/tc-m68hc11.c:1831
+#: config/tc-m68hc11.c:1833
 msgid "Invalid indexed register."
 msgstr ""
 
 msgid "Invalid indexed register."
 msgstr ""
 
-#: config/tc-m68hc11.c:1839
+#: config/tc-m68hc11.c:1841
 msgid "Addressing mode not implemented yet."
 msgstr ""
 
 msgid "Addressing mode not implemented yet."
 msgstr ""
 
-#: config/tc-m68hc11.c:1854
+#: config/tc-m68hc11.c:1856
 msgid "Invalid source register for this instruction, use 'tfr'."
 msgstr ""
 
 msgid "Invalid source register for this instruction, use 'tfr'."
 msgstr ""
 
-#: config/tc-m68hc11.c:1856
+#: config/tc-m68hc11.c:1858
 msgid "Invalid source register."
 msgstr ""
 
 msgid "Invalid source register."
 msgstr ""
 
-#: config/tc-m68hc11.c:1861
+#: config/tc-m68hc11.c:1863
 msgid "Invalid destination register for this instruction, use 'tfr'."
 msgstr ""
 
 msgid "Invalid destination register for this instruction, use 'tfr'."
 msgstr ""
 
-#: config/tc-m68hc11.c:1863
+#: config/tc-m68hc11.c:1865
 msgid "Invalid destination register."
 msgstr ""
 
 msgid "Invalid destination register."
 msgstr ""
 
-#: config/tc-m68hc11.c:1948
+#: config/tc-m68hc11.c:1950
 msgid "Invalid indexed register, expecting register X."
 msgstr ""
 
 msgid "Invalid indexed register, expecting register X."
 msgstr ""
 
-#: config/tc-m68hc11.c:1950
+#: config/tc-m68hc11.c:1952
 msgid "Invalid indexed register, expecting register Y."
 msgstr ""
 
 msgid "Invalid indexed register, expecting register Y."
 msgstr ""
 
-#: config/tc-m68hc11.c:2242
+#: config/tc-m68hc11.c:2244
 msgid "No instruction or missing opcode."
 msgstr ""
 
 msgid "No instruction or missing opcode."
 msgstr ""
 
-#: config/tc-m68hc11.c:2307
+#: config/tc-m68hc11.c:2309
 #, c-format
 msgid "Opcode `%s' is not recognized."
 msgstr ""
 
 #, c-format
 msgid "Opcode `%s' is not recognized."
 msgstr ""
 
-#: config/tc-m68hc11.c:2329
+#: config/tc-m68hc11.c:2331
 #, c-format
 msgid "Garbage at end of instruction: `%s'."
 msgstr ""
 
 #, c-format
 msgid "Garbage at end of instruction: `%s'."
 msgstr ""
 
-#: config/tc-m68hc11.c:2352
+#: config/tc-m68hc11.c:2354
 #, c-format
 msgid "Invalid operand for `%s'"
 msgstr ""
 
 #, c-format
 msgid "Invalid operand for `%s'"
 msgstr ""
 
-#: config/tc-m68hc11.c:2409
+#: config/tc-m68hc11.c:2411
 #, c-format
 msgid "Relocation %d is not supported by object file format."
 msgstr ""
 
 #, c-format
 msgid "Relocation %d is not supported by object file format."
 msgstr ""
 
-#: config/tc-m68hc11.c:2590
+#: config/tc-m68hc11.c:2591
 msgid "bra or bsr with undefined symbol."
 msgstr ""
 
 msgid "bra or bsr with undefined symbol."
 msgstr ""
 
-#: config/tc-m68hc11.c:2701
+#: config/tc-m68hc11.c:2661 config/tc-m68hc11.c:2711
 #, c-format
 msgid "Subtype %d is not recognized."
 msgstr ""
 
 #, c-format
 msgid "Subtype %d is not recognized."
 msgstr ""
 
-#: config/tc-m68hc11.c:2738
+#: config/tc-m68hc11.c:2748
 msgid "Expression too complex."
 msgstr ""
 
 msgid "Expression too complex."
 msgstr ""
 
-#: config/tc-m68hc11.c:2767
+#: config/tc-m68hc11.c:2777
 msgid "Value out of 16-bit range."
 msgstr ""
 
 msgid "Value out of 16-bit range."
 msgstr ""
 
-#: config/tc-m68hc11.c:2790
+#: config/tc-m68hc11.c:2800
 #, c-format
 msgid "Value %ld too large for 8-bit PC-relative branch."
 msgstr ""
 
 #, c-format
 msgid "Value %ld too large for 8-bit PC-relative branch."
 msgstr ""
 
-#: config/tc-m68hc11.c:2797
+#: config/tc-m68hc11.c:2807
 #, c-format
 msgid "Auto increment/decrement offset '%ld' is out of range."
 msgstr ""
 
 #, c-format
 msgid "Auto increment/decrement offset '%ld' is out of range."
 msgstr ""
 
-#: config/tc-m68hc11.c:2808
+#: config/tc-m68hc11.c:2818
 #, c-format
 msgid "Line %d: unknown relocation type: 0x%x."
 msgstr ""
 #, c-format
 msgid "Line %d: unknown relocation type: 0x%x."
 msgstr ""
@@ -4536,356 +4540,362 @@ msgstr ""
 msgid "Unknown PC relative instruction"
 msgstr ""
 
 msgid "Unknown PC relative instruction"
 msgstr ""
 
-#: config/tc-m68k.c:810
+#: config/tc-m68k.c:823
 #, c-format
 msgid "Can not do %d byte pc-relative relocation"
 msgstr ""
 
 #, c-format
 msgid "Can not do %d byte pc-relative relocation"
 msgstr ""
 
-#: config/tc-m68k.c:812
+#: config/tc-m68k.c:825
 #, c-format
 msgid "Can not do %d byte pc-relative pic relocation"
 msgstr ""
 
 #, c-format
 msgid "Can not do %d byte pc-relative pic relocation"
 msgstr ""
 
-#: config/tc-m68k.c:817
+#: config/tc-m68k.c:830
 #, c-format
 msgid "Can not do %d byte relocation"
 msgstr ""
 
 #, c-format
 msgid "Can not do %d byte relocation"
 msgstr ""
 
-#: config/tc-m68k.c:819
+#: config/tc-m68k.c:832
 #, c-format
 msgid "Can not do %d byte pic relocation"
 msgstr ""
 
 #, c-format
 msgid "Can not do %d byte pic relocation"
 msgstr ""
 
-#: config/tc-m68k.c:889
+#: config/tc-m68k.c:903
 #, c-format
 msgid "Unable to produce reloc against symbol '%s'"
 msgstr ""
 
 #, c-format
 msgid "Unable to produce reloc against symbol '%s'"
 msgstr ""
 
-#: config/tc-m68k.c:933 config/tc-mips.c:11263
+#: config/tc-m68k.c:947 config/tc-mips.c:11296
 #, c-format
 msgid "Cannot make %s relocation PC relative"
 msgstr ""
 
 #, c-format
 msgid "Cannot make %s relocation PC relative"
 msgstr ""
 
-#: config/tc-m68k.c:1046 config/tc-tahoe.c:1519 config/tc-vax.c:1766
+#: config/tc-m68k.c:1040 config/tc-tahoe.c:1493 config/tc-vax.c:1756
 msgid "No operator"
 msgstr ""
 
 msgid "No operator"
 msgstr ""
 
-#: config/tc-m68k.c:1076 config/tc-tahoe.c:1536 config/tc-vax.c:1783
+#: config/tc-m68k.c:1070 config/tc-tahoe.c:1510 config/tc-vax.c:1773
 msgid "Unknown operator"
 msgstr ""
 
 msgid "Unknown operator"
 msgstr ""
 
-#: config/tc-m68k.c:1851
+#: config/tc-m68k.c:1845
 msgid "invalid instruction for this architecture; needs "
 msgstr ""
 
 msgid "invalid instruction for this architecture; needs "
 msgstr ""
 
-#: config/tc-m68k.c:1856
+#: config/tc-m68k.c:1850
 msgid "fpu (68040, 68060 or 68881/68882)"
 msgstr ""
 
 msgid "fpu (68040, 68060 or 68881/68882)"
 msgstr ""
 
-#: config/tc-m68k.c:1859
+#: config/tc-m68k.c:1853
 msgid "mmu (68030 or 68851)"
 msgstr ""
 
 msgid "mmu (68030 or 68851)"
 msgstr ""
 
-#: config/tc-m68k.c:1862
+#: config/tc-m68k.c:1856
 msgid "68020 or higher"
 msgstr ""
 
 msgid "68020 or higher"
 msgstr ""
 
-#: config/tc-m68k.c:1865
+#: config/tc-m68k.c:1859
 msgid "68000 or higher"
 msgstr ""
 
 msgid "68000 or higher"
 msgstr ""
 
-#: config/tc-m68k.c:1868
+#: config/tc-m68k.c:1862
 msgid "68010 or higher"
 msgstr ""
 
 msgid "68010 or higher"
 msgstr ""
 
-#: config/tc-m68k.c:1897
+#: config/tc-m68k.c:1891
 msgid "operands mismatch"
 msgstr ""
 
 msgid "operands mismatch"
 msgstr ""
 
-#: config/tc-m68k.c:1954 config/tc-m68k.c:1960 config/tc-m68k.c:1966
+#: config/tc-m68k.c:1948 config/tc-m68k.c:1954 config/tc-m68k.c:1960
 msgid "operand out of range"
 msgstr ""
 
 msgid "operand out of range"
 msgstr ""
 
-#: config/tc-m68k.c:2023
+#: config/tc-m68k.c:2017
 #, c-format
 msgid "Bignum too big for %c format; truncated"
 msgstr ""
 
 #, c-format
 msgid "Bignum too big for %c format; truncated"
 msgstr ""
 
-#: config/tc-m68k.c:2091
+#: config/tc-m68k.c:2085
 msgid "displacement too large for this architecture; needs 68020 or higher"
 msgstr ""
 
 msgid "displacement too large for this architecture; needs 68020 or higher"
 msgstr ""
 
-#: config/tc-m68k.c:2201
+#: config/tc-m68k.c:2195
 msgid ""
 "scale factor invalid on this architecture; needs cpu32 or 68020 or higher"
 msgstr ""
 
 msgid ""
 "scale factor invalid on this architecture; needs cpu32 or 68020 or higher"
 msgstr ""
 
-#: config/tc-m68k.c:2206
+#: config/tc-m68k.c:2200
 msgid "invalid index size for coldfire"
 msgstr ""
 
 msgid "invalid index size for coldfire"
 msgstr ""
 
-#: config/tc-m68k.c:2259
+#: config/tc-m68k.c:2253
 msgid "Forcing byte displacement"
 msgstr ""
 
 msgid "Forcing byte displacement"
 msgstr ""
 
-#: config/tc-m68k.c:2261
+#: config/tc-m68k.c:2255
 msgid "byte displacement out of range"
 msgstr ""
 
 msgid "byte displacement out of range"
 msgstr ""
 
-#: config/tc-m68k.c:2308 config/tc-m68k.c:2346
+#: config/tc-m68k.c:2302 config/tc-m68k.c:2340
 msgid "invalid operand mode for this architecture; needs 68020 or higher"
 msgstr ""
 
 msgid "invalid operand mode for this architecture; needs 68020 or higher"
 msgstr ""
 
-#: config/tc-m68k.c:2332 config/tc-m68k.c:2366
+#: config/tc-m68k.c:2326 config/tc-m68k.c:2360
 msgid ":b not permitted; defaulting to :w"
 msgstr ""
 
 msgid ":b not permitted; defaulting to :w"
 msgstr ""
 
-#: config/tc-m68k.c:2443
+#: config/tc-m68k.c:2437
 msgid "unsupported byte value; use a different suffix"
 msgstr ""
 
 msgid "unsupported byte value; use a different suffix"
 msgstr ""
 
-#: config/tc-m68k.c:2457
+#: config/tc-m68k.c:2451
 msgid "unknown/incorrect operand"
 msgstr ""
 
 msgid "unknown/incorrect operand"
 msgstr ""
 
-#: config/tc-m68k.c:2490 config/tc-m68k.c:2498 config/tc-m68k.c:2505
-#: config/tc-m68k.c:2512
+#: config/tc-m68k.c:2484 config/tc-m68k.c:2492 config/tc-m68k.c:2499
+#: config/tc-m68k.c:2506
 msgid "out of range"
 msgstr ""
 
 msgid "out of range"
 msgstr ""
 
-#: config/tc-m68k.c:2562
+#: config/tc-m68k.c:2552
 msgid "Can't use long branches on 68000/68010/5200"
 msgstr ""
 
 msgid "Can't use long branches on 68000/68010/5200"
 msgstr ""
 
-#: config/tc-m68k.c:2672
+#: config/tc-m68k.c:2662
 msgid "Expression out of range, using 0"
 msgstr ""
 
 msgid "Expression out of range, using 0"
 msgstr ""
 
-#: config/tc-m68k.c:2784 config/tc-m68k.c:2800
+#: config/tc-m68k.c:2774 config/tc-m68k.c:2790
 msgid "Floating point register in register list"
 msgstr ""
 
 msgid "Floating point register in register list"
 msgstr ""
 
-#: config/tc-m68k.c:2790
+#: config/tc-m68k.c:2780
 msgid "Wrong register in floating-point reglist"
 msgstr ""
 
 msgid "Wrong register in floating-point reglist"
 msgstr ""
 
-#: config/tc-m68k.c:2806
+#: config/tc-m68k.c:2796
 msgid "incorrect register in reglist"
 msgstr ""
 
 msgid "incorrect register in reglist"
 msgstr ""
 
-#: config/tc-m68k.c:2812
+#: config/tc-m68k.c:2802
 msgid "wrong register in floating-point reglist"
 msgstr ""
 
 msgid "wrong register in floating-point reglist"
 msgstr ""
 
-#: config/tc-m68k.c:2888
+#: config/tc-m68k.c:2878
 msgid "failed sanity check"
 msgstr ""
 
 #. ERROR
 msgid "failed sanity check"
 msgstr ""
 
 #. ERROR
-#: config/tc-m68k.c:3253
+#: config/tc-m68k.c:3243
 msgid "Extra )"
 msgstr ""
 
 #. ERROR
 msgid "Extra )"
 msgstr ""
 
 #. ERROR
-#: config/tc-m68k.c:3264
+#: config/tc-m68k.c:3254
 msgid "Missing )"
 msgstr ""
 
 msgid "Missing )"
 msgstr ""
 
-#: config/tc-m68k.c:3281
+#: config/tc-m68k.c:3271
 msgid "Missing operand"
 msgstr ""
 
 msgid "Missing operand"
 msgstr ""
 
-#: config/tc-m68k.c:3613
+#: config/tc-m68k.c:3603
 #, c-format
 msgid "%s -- statement `%s' ignored"
 msgstr ""
 
 #, c-format
 msgid "%s -- statement `%s' ignored"
 msgstr ""
 
-#: config/tc-m68k.c:3657
+#: config/tc-m68k.c:3647
 #, c-format
 msgid "Don't know how to figure width of %c in md_assemble()"
 msgstr ""
 
 #, c-format
 msgid "Don't know how to figure width of %c in md_assemble()"
 msgstr ""
 
-#: config/tc-m68k.c:3825 config/tc-m68k.c:3863
+#: config/tc-m68k.c:3830 config/tc-m68k.c:3868
 #, c-format
 msgid "Internal Error: Can't find %s in hash table"
 msgstr ""
 
 #, c-format
 msgid "Internal Error: Can't find %s in hash table"
 msgstr ""
 
-#: config/tc-m68k.c:3828 config/tc-m68k.c:3866
+#: config/tc-m68k.c:3833 config/tc-m68k.c:3871
 #, c-format
 msgid "Internal Error: Can't hash %s: %s"
 msgstr ""
 
 #, c-format
 msgid "Internal Error: Can't hash %s: %s"
 msgstr ""
 
-#: config/tc-m68k.c:3995
+#: config/tc-m68k.c:4000
 #, c-format
 msgid "unrecognized default cpu `%s' ???"
 msgstr ""
 
 #, c-format
 msgid "unrecognized default cpu `%s' ???"
 msgstr ""
 
-#: config/tc-m68k.c:4007
+#: config/tc-m68k.c:4012
 msgid "68040 and 68851 specified; mmu instructions may assemble incorrectly"
 msgstr ""
 
 msgid "68040 and 68851 specified; mmu instructions may assemble incorrectly"
 msgstr ""
 
-#: config/tc-m68k.c:4027
+#: config/tc-m68k.c:4032
 msgid "options for 68881 and no-68881 both given"
 msgstr ""
 
 msgid "options for 68881 and no-68881 both given"
 msgstr ""
 
-#: config/tc-m68k.c:4029
+#: config/tc-m68k.c:4034
 msgid "options for 68851 and no-68851 both given"
 msgstr ""
 
 msgid "options for 68851 and no-68851 both given"
 msgstr ""
 
-#: config/tc-m68k.c:4100
+#: config/tc-m68k.c:4105
 #, c-format
 msgid "text label `%s' aligned to odd boundary"
 msgstr ""
 
 #, c-format
 msgid "text label `%s' aligned to odd boundary"
 msgstr ""
 
-#: config/tc-m68k.c:4317
+#: config/tc-m68k.c:4319
 msgid "invalid byte branch offset"
 msgstr ""
 
 msgid "invalid byte branch offset"
 msgstr ""
 
-#: config/tc-m68k.c:4375
+#: config/tc-m68k.c:4377
 msgid "short branch with zero offset: use :w"
 msgstr ""
 
 msgid "short branch with zero offset: use :w"
 msgstr ""
 
-#: config/tc-m68k.c:4910 config/tc-m68k.c:4921
+#: config/tc-m68k.c:4851 config/tc-m68k.c:4862
 msgid "expression out of range: defaulting to 1"
 msgstr ""
 
 msgid "expression out of range: defaulting to 1"
 msgstr ""
 
-#: config/tc-m68k.c:4953
+#: config/tc-m68k.c:4894
 msgid "expression out of range: defaulting to 0"
 msgstr ""
 
 msgid "expression out of range: defaulting to 0"
 msgstr ""
 
-#: config/tc-m68k.c:4986 config/tc-m68k.c:4998
+#: config/tc-m68k.c:4927 config/tc-m68k.c:4939
 #, c-format
 msgid "Can't deal with expression; defaulting to %ld"
 msgstr ""
 
 #, c-format
 msgid "Can't deal with expression; defaulting to %ld"
 msgstr ""
 
-#: config/tc-m68k.c:5012
+#: config/tc-m68k.c:4953
 msgid "expression doesn't fit in BYTE"
 msgstr ""
 
 msgid "expression doesn't fit in BYTE"
 msgstr ""
 
-#: config/tc-m68k.c:5016
+#: config/tc-m68k.c:4957
 msgid "expression doesn't fit in WORD"
 msgstr ""
 
 msgid "expression doesn't fit in WORD"
 msgstr ""
 
-#: config/tc-m68k.c:5109
+#: config/tc-m68k.c:5050
 #, c-format
 msgid "%s: unrecognized processor name"
 msgstr ""
 
 #, c-format
 msgid "%s: unrecognized processor name"
 msgstr ""
 
-#: config/tc-m68k.c:5174
+#: config/tc-m68k.c:5115
 msgid "bad coprocessor id"
 msgstr ""
 
 msgid "bad coprocessor id"
 msgstr ""
 
-#: config/tc-m68k.c:5180
+#: config/tc-m68k.c:5121
 msgid "unrecognized fopt option"
 msgstr ""
 
 msgid "unrecognized fopt option"
 msgstr ""
 
-#: config/tc-m68k.c:5314
+#: config/tc-m68k.c:5255
 #, c-format
 msgid "option `%s' may not be negated"
 msgstr ""
 
 #, c-format
 msgid "option `%s' may not be negated"
 msgstr ""
 
-#: config/tc-m68k.c:5325
+#: config/tc-m68k.c:5266
 #, c-format
 msgid "option `%s' not recognized"
 msgstr ""
 
 #, c-format
 msgid "option `%s' not recognized"
 msgstr ""
 
-#: config/tc-m68k.c:5358
+#: config/tc-m68k.c:5299
 msgid "bad format of OPT NEST=depth"
 msgstr ""
 
 msgid "bad format of OPT NEST=depth"
 msgstr ""
 
-#: config/tc-m68k.c:5421
+#: config/tc-m68k.c:5362
 msgid "missing label"
 msgstr ""
 
 msgid "missing label"
 msgstr ""
 
-#: config/tc-m68k.c:5445 config/tc-m68k.c:5474
+#: config/tc-m68k.c:5386 config/tc-m68k.c:5415
 msgid "bad register list"
 msgstr ""
 
 msgid "bad register list"
 msgstr ""
 
-#: config/tc-m68k.c:5447
+#: config/tc-m68k.c:5388
 #, c-format
 msgid "bad register list: %s"
 msgstr ""
 
 #, c-format
 msgid "bad register list: %s"
 msgstr ""
 
-#: config/tc-m68k.c:5545
+#: config/tc-m68k.c:5486
 msgid "restore without save"
 msgstr ""
 
 msgid "restore without save"
 msgstr ""
 
-#: config/tc-m68k.c:5722 config/tc-m68k.c:6071
+#: config/tc-m68k.c:5663 config/tc-m68k.c:6050
 msgid "syntax error in structured control directive"
 msgstr ""
 
 msgid "syntax error in structured control directive"
 msgstr ""
 
-#: config/tc-m68k.c:5773
+#: config/tc-m68k.c:5714
 msgid "missing condition code in structured control directive"
 msgstr ""
 
 msgid "missing condition code in structured control directive"
 msgstr ""
 
-#: config/tc-m68k.c:6105
+#: config/tc-m68k.c:5786
+#, c-format
+msgid ""
+"Condition <%c%c> in structured control directive can not be encoded correctly"
+msgstr ""
+
+#: config/tc-m68k.c:6093
 msgid "missing then"
 msgstr ""
 
 msgid "missing then"
 msgstr ""
 
-#: config/tc-m68k.c:6187
+#: config/tc-m68k.c:6175
 msgid "else without matching if"
 msgstr ""
 
 msgid "else without matching if"
 msgstr ""
 
-#: config/tc-m68k.c:6221
+#: config/tc-m68k.c:6209
 msgid "endi without matching if"
 msgstr ""
 
 msgid "endi without matching if"
 msgstr ""
 
-#: config/tc-m68k.c:6262
+#: config/tc-m68k.c:6250
 msgid "break outside of structured loop"
 msgstr ""
 
 msgid "break outside of structured loop"
 msgstr ""
 
-#: config/tc-m68k.c:6301
+#: config/tc-m68k.c:6289
 msgid "next outside of structured loop"
 msgstr ""
 
 msgid "next outside of structured loop"
 msgstr ""
 
-#: config/tc-m68k.c:6353
+#: config/tc-m68k.c:6341
 msgid "missing ="
 msgstr ""
 
 msgid "missing ="
 msgstr ""
 
-#: config/tc-m68k.c:6391
+#: config/tc-m68k.c:6379
 msgid "missing to or downto"
 msgstr ""
 
 msgid "missing to or downto"
 msgstr ""
 
-#: config/tc-m68k.c:6427 config/tc-m68k.c:6461 config/tc-m68k.c:6671
+#: config/tc-m68k.c:6415 config/tc-m68k.c:6449 config/tc-m68k.c:6668
 msgid "missing do"
 msgstr ""
 
 msgid "missing do"
 msgstr ""
 
-#: config/tc-m68k.c:6564
+#: config/tc-m68k.c:6552
 msgid "endf without for"
 msgstr ""
 
 msgid "endf without for"
 msgstr ""
 
-#: config/tc-m68k.c:6620
+#: config/tc-m68k.c:6608
 msgid "until without repeat"
 msgstr ""
 
 msgid "until without repeat"
 msgstr ""
 
-#: config/tc-m68k.c:6707
+#: config/tc-m68k.c:6704
 msgid "endw without while"
 msgstr ""
 
 msgid "endw without while"
 msgstr ""
 
-#: config/tc-m68k.c:6831
+#: config/tc-m68k.c:6828
 #, c-format
 msgid "unrecognized option `%s'"
 msgstr ""
 
 #, c-format
 msgid "unrecognized option `%s'"
 msgstr ""
 
-#: config/tc-m68k.c:6876
+#: config/tc-m68k.c:6873
 #, c-format
 msgid "unrecognized architecture specification `%s'"
 msgstr ""
 
 #, c-format
 msgid "unrecognized architecture specification `%s'"
 msgstr ""
 
-#: config/tc-m68k.c:6946
+#: config/tc-m68k.c:6943
 msgid ""
 "680X0 options:\n"
 "-l\t\t\tuse 1 word for refs to undefined symbols [default 2]\n"
 msgid ""
 "680X0 options:\n"
 "-l\t\t\tuse 1 word for refs to undefined symbols [default 2]\n"
-"-m68000 | -m68008 | -m68010 | -m68020 | -m68030 | -m68040 | -m68060\n"
-" | -m68302 | -m68331 | -m68332 | -m68333 | -m68340 | -m68360\n"
-" | -mcpu32 | -m5200\n"
+"-m68000 | -m68008 | -m68010 | -m68020 | -m68030 | -m68040 | -m68060 |\n"
+"-m68302 | -m68331 | -m68332 | -m68333 | -m68340 | -m68360 | -mcpu32 |\n"
+"-m5200  | -m5202  | -m5204  | -m5206  | -m5206e | -m5307  | -m5407\n"
 "\t\t\tspecify variant of 680X0 architecture [default 68020]\n"
 "-m68881 | -m68882 | -mno-68881 | -mno-68882\n"
 "\t\t\ttarget has/lacks floating-point coprocessor\n"
 "\t\t\t[default yes for 68020, 68030, and cpu32]\n"
 msgstr ""
 
 "\t\t\tspecify variant of 680X0 architecture [default 68020]\n"
 "-m68881 | -m68882 | -mno-68881 | -mno-68882\n"
 "\t\t\ttarget has/lacks floating-point coprocessor\n"
 "\t\t\t[default yes for 68020, 68030, and cpu32]\n"
 msgstr ""
 
-#: config/tc-m68k.c:6956
+#: config/tc-m68k.c:6953
 msgid ""
 "-m68851 | -mno-68851\n"
 "\t\t\ttarget has/lacks memory-management unit coprocessor\n"
 msgid ""
 "-m68851 | -mno-68851\n"
 "\t\t\ttarget has/lacks memory-management unit coprocessor\n"
@@ -4898,7 +4908,7 @@ msgid ""
 "--bitwise-or\t\tdo not treat `|' as a comment character\n"
 msgstr ""
 
 "--bitwise-or\t\tdo not treat `|' as a comment character\n"
 msgstr ""
 
-#: config/tc-m68k.c:6966
+#: config/tc-m68k.c:6963
 msgid ""
 "--base-size-default-16\tbase reg without size is 16 bits\n"
 "--base-size-default-32\tbase reg without size is 32 bits (default)\n"
 msgid ""
 "--base-size-default-16\tbase reg without size is 16 bits\n"
 "--base-size-default-32\tbase reg without size is 32 bits (default)\n"
@@ -4906,12 +4916,12 @@ msgid ""
 "--disp-size-default-32\tdisplacement with unknown size is 32 bits (default)\n"
 msgstr ""
 
 "--disp-size-default-32\tdisplacement with unknown size is 32 bits (default)\n"
 msgstr ""
 
-#: config/tc-m68k.c:7001
+#: config/tc-m68k.c:6998
 #, c-format
 msgid "Error %s in %s\n"
 msgstr ""
 
 #, c-format
 msgid "Error %s in %s\n"
 msgstr ""
 
-#: config/tc-m68k.c:7005
+#: config/tc-m68k.c:7002
 #, c-format
 msgid "Opcode(%d.%s): "
 msgstr ""
 #, c-format
 msgid "Opcode(%d.%s): "
 msgstr ""
@@ -4972,7 +4982,7 @@ msgstr ""
 msgid "Relaxation should never occur"
 msgstr ""
 
 msgid "Relaxation should never occur"
 msgstr ""
 
-#: config/tc-m88k.c:1265 config/tc-sparc.c:3541 read.c:1962
+#: config/tc-m88k.c:1265 config/tc-sparc.c:3547 read.c:1962
 #, c-format
 msgid "BSS length (%d.) <0! Ignored."
 msgstr ""
 #, c-format
 msgid "BSS length (%d.) <0! Ignored."
 msgstr ""
@@ -5162,356 +5172,356 @@ msgstr ""
 msgid "odd displacement at %x"
 msgstr ""
 
 msgid "odd displacement at %x"
 msgstr ""
 
-#: config/tc-mcore.c:2104
+#: config/tc-mcore.c:2099
 msgid "unknown"
 msgstr ""
 
 msgid "unknown"
 msgstr ""
 
-#: config/tc-mcore.c:2135
+#: config/tc-mcore.c:2130
 #, c-format
 msgid "odd distance branch (0x%x bytes)"
 msgstr ""
 
 #, c-format
 msgid "odd distance branch (0x%x bytes)"
 msgstr ""
 
-#: config/tc-mcore.c:2139
+#: config/tc-mcore.c:2134
 #, c-format
 msgid "pcrel for branch to %s too far (0x%x)"
 msgstr ""
 
 #, c-format
 msgid "pcrel for branch to %s too far (0x%x)"
 msgstr ""
 
-#: config/tc-mcore.c:2158
+#: config/tc-mcore.c:2153
 #, c-format
 msgid "pcrel for lrw/jmpi/jsri to %s too far (0x%x)"
 msgstr ""
 
 #, c-format
 msgid "pcrel for lrw/jmpi/jsri to %s too far (0x%x)"
 msgstr ""
 
-#: config/tc-mcore.c:2169
+#: config/tc-mcore.c:2164
 #, c-format
 msgid "pcrel for loopt too far (0x%x)"
 msgstr ""
 
 #, c-format
 msgid "pcrel for loopt too far (0x%x)"
 msgstr ""
 
-#: config/tc-mcore.c:2402
+#: config/tc-mcore.c:2396
 #, c-format
 msgid "Can not do %d byte %srelocation"
 msgstr ""
 
 #, c-format
 msgid "Can not do %d byte %srelocation"
 msgstr ""
 
-#: config/tc-mcore.c:2404
+#: config/tc-mcore.c:2398
 msgid "pc-relative"
 msgstr ""
 
 msgid "pc-relative"
 msgstr ""
 
-#: config/tc-mcore.c:2421 config/tc-pj.c:569 config/tc-sh.c:3345
+#: config/tc-mcore.c:2415 config/tc-pj.c:569 config/tc-sh.c:3347
 #, c-format
 msgid "Cannot represent relocation type %s"
 msgstr ""
 
 #, c-format
 msgid "Cannot represent relocation type %s"
 msgstr ""
 
-#: config/tc-mips.c:928
+#: config/tc-mips.c:936
 msgid "-G not supported in this configuration."
 msgstr ""
 
 msgid "-G not supported in this configuration."
 msgstr ""
 
-#: config/tc-mips.c:997
+#: config/tc-mips.c:1005
 msgid "trap exception not supported at ISA 1"
 msgstr ""
 
 msgid "trap exception not supported at ISA 1"
 msgstr ""
 
-#: config/tc-mips.c:1054
+#: config/tc-mips.c:1062
 #, c-format
 msgid "internal: can't hash `%s': %s"
 msgstr ""
 
 #, c-format
 msgid "internal: can't hash `%s': %s"
 msgstr ""
 
-#: config/tc-mips.c:1062
+#: config/tc-mips.c:1070
 #, c-format
 msgid "internal error: bad mips16 opcode: %s %s\n"
 msgstr ""
 
 #, c-format
 msgid "internal error: bad mips16 opcode: %s %s\n"
 msgstr ""
 
-#: config/tc-mips.c:1230
+#: config/tc-mips.c:1238
 #, c-format
 msgid "returned from mips_ip(%s) insn_opcode = 0x%x\n"
 msgstr ""
 
 #, c-format
 msgid "returned from mips_ip(%s) insn_opcode = 0x%x\n"
 msgstr ""
 
-#: config/tc-mips.c:1783 config/tc-mips.c:11395
+#: config/tc-mips.c:1796 config/tc-mips.c:11428
 msgid "extended instruction in delay slot"
 msgstr ""
 
 msgid "extended instruction in delay slot"
 msgstr ""
 
-#: config/tc-mips.c:1805 config/tc-mips.c:1812
+#: config/tc-mips.c:1818 config/tc-mips.c:1825
 #, c-format
 msgid "jump to misaligned address (0x%lx)"
 msgstr ""
 
 #, c-format
 msgid "jump to misaligned address (0x%lx)"
 msgstr ""
 
-#: config/tc-mips.c:2461 config/tc-mips.c:2815
+#: config/tc-mips.c:2477 config/tc-mips.c:2831
 msgid "Macro instruction expanded into multiple instructions"
 msgstr ""
 
 msgid "Macro instruction expanded into multiple instructions"
 msgstr ""
 
-#: config/tc-mips.c:2868
+#: config/tc-mips.c:2884
 msgid "unsupported large constant"
 msgstr ""
 
 msgid "unsupported large constant"
 msgstr ""
 
-#: config/tc-mips.c:2870
+#: config/tc-mips.c:2886
 #, c-format
 msgid "Instruction %s requires absolute expression"
 msgstr ""
 
 #, c-format
 msgid "Instruction %s requires absolute expression"
 msgstr ""
 
-#: config/tc-mips.c:3016
+#: config/tc-mips.c:3032
 msgid "Number larger than 32 bits"
 msgstr ""
 
 msgid "Number larger than 32 bits"
 msgstr ""
 
-#: config/tc-mips.c:3037
+#: config/tc-mips.c:3053
 msgid "Number larger than 64 bits"
 msgstr ""
 
 msgid "Number larger than 64 bits"
 msgstr ""
 
-#: config/tc-mips.c:3305 config/tc-mips.c:3377 config/tc-mips.c:5072
-#: config/tc-mips.c:5123 config/tc-mips.c:5659 config/tc-mips.c:5722
+#: config/tc-mips.c:3321 config/tc-mips.c:3393 config/tc-mips.c:5092
+#: config/tc-mips.c:5143 config/tc-mips.c:5679 config/tc-mips.c:5742
 msgid "PIC code offset overflow (max 16 signed bits)"
 msgstr ""
 
 msgid "PIC code offset overflow (max 16 signed bits)"
 msgstr ""
 
-#: config/tc-mips.c:3616
+#: config/tc-mips.c:3633
 #, c-format
 msgid "Branch %s is always false (nop)"
 msgstr ""
 
 #, c-format
 msgid "Branch %s is always false (nop)"
 msgstr ""
 
-#: config/tc-mips.c:3621
+#: config/tc-mips.c:3640
 #, c-format
 msgid "Branch likely %s is always false"
 msgstr ""
 
 #, c-format
 msgid "Branch likely %s is always false"
 msgstr ""
 
-#: config/tc-mips.c:3628 config/tc-mips.c:3702 config/tc-mips.c:3805
-#: config/tc-mips.c:3860 config/tc-mips.c:6759 config/tc-mips.c:6768
-#: config/tc-mips.c:6776 config/tc-mips.c:6885
+#: config/tc-mips.c:3648 config/tc-mips.c:3722 config/tc-mips.c:3825
+#: config/tc-mips.c:3880 config/tc-mips.c:6779 config/tc-mips.c:6788
+#: config/tc-mips.c:6796 config/tc-mips.c:6905
 msgid "Unsupported large constant"
 msgstr ""
 
 #. result is always true
 msgid "Unsupported large constant"
 msgstr ""
 
 #. result is always true
-#: config/tc-mips.c:3664
+#: config/tc-mips.c:3684
 #, c-format
 msgid "Branch %s is always true"
 msgstr ""
 
 #, c-format
 msgid "Branch %s is always true"
 msgstr ""
 
-#: config/tc-mips.c:3936 config/tc-mips.c:4043
+#: config/tc-mips.c:3956 config/tc-mips.c:4063
 msgid "Divide by zero."
 msgstr ""
 
 msgid "Divide by zero."
 msgstr ""
 
-#: config/tc-mips.c:4643
+#: config/tc-mips.c:4663
 msgid "MIPS PIC call to register other than $25"
 msgstr ""
 
 msgid "MIPS PIC call to register other than $25"
 msgstr ""
 
-#: config/tc-mips.c:4648 config/tc-mips.c:4760
+#: config/tc-mips.c:4668 config/tc-mips.c:4780
 msgid "No .cprestore pseudo-op used in PIC code"
 msgstr ""
 
 msgid "No .cprestore pseudo-op used in PIC code"
 msgstr ""
 
-#: config/tc-mips.c:4833 config/tc-mips.c:4922 config/tc-mips.c:5410
-#: config/tc-mips.c:5451 config/tc-mips.c:5469 config/tc-mips.c:6098
+#: config/tc-mips.c:4853 config/tc-mips.c:4942 config/tc-mips.c:5430
+#: config/tc-mips.c:5471 config/tc-mips.c:5489 config/tc-mips.c:6118
 msgid "opcode not supported on this processor"
 msgstr ""
 
 msgid "opcode not supported on this processor"
 msgstr ""
 
-#: config/tc-mips.c:5929 config/tc-mips.c:6653
+#: config/tc-mips.c:5949 config/tc-mips.c:6673
 msgid "Macro used $at after \".set noat\""
 msgstr ""
 
 msgid "Macro used $at after \".set noat\""
 msgstr ""
 
-#: config/tc-mips.c:6069 config/tc-mips.c:6087
+#: config/tc-mips.c:6089 config/tc-mips.c:6107
 msgid "rotate count too large"
 msgstr ""
 
 msgid "rotate count too large"
 msgstr ""
 
-#: config/tc-mips.c:6138
+#: config/tc-mips.c:6158
 #, c-format
 msgid "Instruction %s: result is always false"
 msgstr ""
 
 #, c-format
 msgid "Instruction %s: result is always false"
 msgstr ""
 
-#: config/tc-mips.c:6307
+#: config/tc-mips.c:6327
 #, c-format
 msgid "Instruction %s: result is always true"
 msgstr ""
 
 #, c-format
 msgid "Instruction %s: result is always true"
 msgstr ""
 
-#: config/tc-mips.c:6446 config/tc-mips.c:6473 config/tc-mips.c:6545
-#: config/tc-mips.c:6570
+#: config/tc-mips.c:6466 config/tc-mips.c:6493 config/tc-mips.c:6565
+#: config/tc-mips.c:6590
 msgid "operand overflow"
 msgstr ""
 
 #. FIXME: Check if this is one of the itbl macros, since they
 #. are added dynamically.
 msgid "operand overflow"
 msgstr ""
 
 #. FIXME: Check if this is one of the itbl macros, since they
 #. are added dynamically.
-#: config/tc-mips.c:6649
+#: config/tc-mips.c:6669
 #, c-format
 msgid "Macro %s not implemented yet"
 msgstr ""
 
 #, c-format
 msgid "Macro %s not implemented yet"
 msgstr ""
 
-#: config/tc-mips.c:6919
+#: config/tc-mips.c:6939
 #, c-format
 msgid "internal: bad mips opcode (mask error): %s %s"
 msgstr ""
 
 #, c-format
 msgid "internal: bad mips opcode (mask error): %s %s"
 msgstr ""
 
-#: config/tc-mips.c:6975
+#: config/tc-mips.c:6995
 #, c-format
 msgid "internal: bad mips opcode (unknown operand type `%c'): %s %s"
 msgstr ""
 
 #, c-format
 msgid "internal: bad mips opcode (unknown operand type `%c'): %s %s"
 msgstr ""
 
-#: config/tc-mips.c:6982
+#: config/tc-mips.c:7002
 #, c-format
 msgid "internal: bad mips opcode (bits 0x%lx undefined): %s %s"
 msgstr ""
 
 #, c-format
 msgid "internal: bad mips opcode (bits 0x%lx undefined): %s %s"
 msgstr ""
 
-#: config/tc-mips.c:7090
+#: config/tc-mips.c:7112
 #, c-format
 msgid "opcode not supported on this processor: %s (%s)"
 msgstr ""
 
 #, c-format
 msgid "opcode not supported on this processor: %s (%s)"
 msgstr ""
 
-#: config/tc-mips.c:7161
+#: config/tc-mips.c:7187
 #, c-format
 msgid "Improper shift amount (%ld)"
 msgstr ""
 
 #, c-format
 msgid "Improper shift amount (%ld)"
 msgstr ""
 
-#: config/tc-mips.c:7187 config/tc-mips.c:8341 config/tc-mips.c:8456
+#: config/tc-mips.c:7213 config/tc-mips.c:8370 config/tc-mips.c:8485
 #, c-format
 msgid "Invalid value for `%s' (%lu)"
 msgstr ""
 
 #, c-format
 msgid "Invalid value for `%s' (%lu)"
 msgstr ""
 
-#: config/tc-mips.c:7205
+#: config/tc-mips.c:7231
 #, c-format
 msgid "Illegal break code (%ld)"
 msgstr ""
 
 #, c-format
 msgid "Illegal break code (%ld)"
 msgstr ""
 
-#: config/tc-mips.c:7219
+#: config/tc-mips.c:7245
 #, c-format
 msgid "Illegal lower break code (%ld)"
 msgstr ""
 
 #, c-format
 msgid "Illegal lower break code (%ld)"
 msgstr ""
 
-#: config/tc-mips.c:7232
+#: config/tc-mips.c:7258
 #, c-format
 msgid "Illegal 20-bit code (%ld)"
 msgstr ""
 
 #, c-format
 msgid "Illegal 20-bit code (%ld)"
 msgstr ""
 
-#: config/tc-mips.c:7244
+#: config/tc-mips.c:7270
 #, c-format
 msgid "Coproccesor code > 25 bits (%ld)"
 msgstr ""
 
 #, c-format
 msgid "Coproccesor code > 25 bits (%ld)"
 msgstr ""
 
-#: config/tc-mips.c:7257
+#: config/tc-mips.c:7283
 #, c-format
 msgid "Illegal 19-bit code (%ld)"
 msgstr ""
 
 #, c-format
 msgid "Illegal 19-bit code (%ld)"
 msgstr ""
 
-#: config/tc-mips.c:7269
+#: config/tc-mips.c:7295
 #, c-format
 msgid "Invalidate performance regster (%ld)"
 msgstr ""
 
 #, c-format
 msgid "Invalidate performance regster (%ld)"
 msgstr ""
 
-#: config/tc-mips.c:7306
+#: config/tc-mips.c:7332
 #, c-format
 msgid "Invalid register number (%d)"
 msgstr ""
 
 #, c-format
 msgid "Invalid register number (%d)"
 msgstr ""
 
-#: config/tc-mips.c:7470
+#: config/tc-mips.c:7496
 #, c-format
 msgid "Invalid float register number (%d)"
 msgstr ""
 
 #, c-format
 msgid "Invalid float register number (%d)"
 msgstr ""
 
-#: config/tc-mips.c:7480
+#: config/tc-mips.c:7506
 #, c-format
 msgid "Float register should be even, was %d"
 msgstr ""
 
 #, c-format
 msgid "Float register should be even, was %d"
 msgstr ""
 
-#: config/tc-mips.c:7531
+#: config/tc-mips.c:7557
 msgid "absolute expression required"
 msgstr ""
 
 msgid "absolute expression required"
 msgstr ""
 
-#: config/tc-mips.c:7592
+#: config/tc-mips.c:7618
 #, c-format
 msgid "Bad floating point constant: %s"
 msgstr ""
 
 #, c-format
 msgid "Bad floating point constant: %s"
 msgstr ""
 
-#: config/tc-mips.c:7714
+#: config/tc-mips.c:7740
 msgid "Can't use floating point insn in this section"
 msgstr ""
 
 msgid "Can't use floating point insn in this section"
 msgstr ""
 
-#: config/tc-mips.c:7768
+#: config/tc-mips.c:7794
 msgid "16 bit expression not in range 0..65535"
 msgstr ""
 
 msgid "16 bit expression not in range 0..65535"
 msgstr ""
 
-#: config/tc-mips.c:7805
+#: config/tc-mips.c:7831
 msgid "16 bit expression not in range -32768..32767"
 msgstr ""
 
 msgid "16 bit expression not in range -32768..32767"
 msgstr ""
 
-#: config/tc-mips.c:7876
+#: config/tc-mips.c:7902
 msgid "lui expression not in range 0..65535"
 msgstr ""
 
 msgid "lui expression not in range 0..65535"
 msgstr ""
 
-#: config/tc-mips.c:7900
+#: config/tc-mips.c:7926
 #, c-format
 msgid "invalid condition code register $fcc%d"
 msgstr ""
 
 #, c-format
 msgid "invalid condition code register $fcc%d"
 msgstr ""
 
-#: config/tc-mips.c:7925
+#: config/tc-mips.c:7951
 msgid "invalid coprocessor sub-selection value (0-7)"
 msgstr ""
 
 msgid "invalid coprocessor sub-selection value (0-7)"
 msgstr ""
 
-#: config/tc-mips.c:7930
+#: config/tc-mips.c:7956
 #, c-format
 msgid "bad char = '%c'\n"
 msgstr ""
 
 #, c-format
 msgid "bad char = '%c'\n"
 msgstr ""
 
-#: config/tc-mips.c:7943 config/tc-mips.c:8481
+#: config/tc-mips.c:7967 config/tc-mips.c:7972 config/tc-mips.c:8510
 msgid "illegal operands"
 msgstr ""
 
 msgid "illegal operands"
 msgstr ""
 
-#: config/tc-mips.c:8010
+#: config/tc-mips.c:8039
 msgid "unrecognized opcode"
 msgstr ""
 
 msgid "unrecognized opcode"
 msgstr ""
 
-#: config/tc-mips.c:8119
+#: config/tc-mips.c:8148
 #, c-format
 msgid "invalid register number (%d)"
 msgstr ""
 
 #, c-format
 msgid "invalid register number (%d)"
 msgstr ""
 
-#: config/tc-mips.c:8200
+#: config/tc-mips.c:8229
 msgid "used $at without \".set noat\""
 msgstr ""
 
 msgid "used $at without \".set noat\""
 msgstr ""
 
-#: config/tc-mips.c:8375
+#: config/tc-mips.c:8404
 msgid "can't parse register list"
 msgstr ""
 
 msgid "can't parse register list"
 msgstr ""
 
-#: config/tc-mips.c:8409 config/tc-mips.c:8439
+#: config/tc-mips.c:8438 config/tc-mips.c:8468
 msgid "invalid register list"
 msgstr ""
 
 msgid "invalid register list"
 msgstr ""
 
-#: config/tc-mips.c:8607
+#: config/tc-mips.c:8636
 msgid "extended operand requested but not required"
 msgstr ""
 
 msgid "extended operand requested but not required"
 msgstr ""
 
-#: config/tc-mips.c:8609
+#: config/tc-mips.c:8638
 msgid "invalid unextended operand value"
 msgstr ""
 
 msgid "invalid unextended operand value"
 msgstr ""
 
-#: config/tc-mips.c:8637
+#: config/tc-mips.c:8666
 msgid "operand value out of range for instruction"
 msgstr ""
 
 msgid "operand value out of range for instruction"
 msgstr ""
 
-#: config/tc-mips.c:9022
+#: config/tc-mips.c:9056
 #, c-format
 msgid "invalid architecture -mcpu=%s"
 msgstr ""
 
 #, c-format
 msgid "invalid architecture -mcpu=%s"
 msgstr ""
 
-#: config/tc-mips.c:9071
+#: config/tc-mips.c:9105
 msgid "-G may not be used with embedded PIC code"
 msgstr ""
 
 msgid "-G may not be used with embedded PIC code"
 msgstr ""
 
-#: config/tc-mips.c:9084
+#: config/tc-mips.c:9118
 msgid "-call_shared is supported only for ELF format"
 msgstr ""
 
 msgid "-call_shared is supported only for ELF format"
 msgstr ""
 
-#: config/tc-mips.c:9090 config/tc-mips.c:10179 config/tc-mips.c:10353
+#: config/tc-mips.c:9124 config/tc-mips.c:10221 config/tc-mips.c:10395
 msgid "-G may not be used with SVR4 PIC code"
 msgstr ""
 
 msgid "-G may not be used with SVR4 PIC code"
 msgstr ""
 
-#: config/tc-mips.c:9099
+#: config/tc-mips.c:9133
 msgid "-non_shared is supported only for ELF format"
 msgstr ""
 
 msgid "-non_shared is supported only for ELF format"
 msgstr ""
 
-#: config/tc-mips.c:9116
+#: config/tc-mips.c:9150
 msgid "-G is not supported for this configuration"
 msgstr ""
 
 msgid "-G is not supported for this configuration"
 msgstr ""
 
-#: config/tc-mips.c:9121
+#: config/tc-mips.c:9155
 msgid "-G may not be used with SVR4 or embedded PIC code"
 msgstr ""
 
 msgid "-G may not be used with SVR4 or embedded PIC code"
 msgstr ""
 
-#: config/tc-mips.c:9146
+#: config/tc-mips.c:9182
 msgid "No compiled in support for 64 bit object file format"
 msgstr ""
 
 msgid "No compiled in support for 64 bit object file format"
 msgstr ""
 
-#: config/tc-mips.c:9239
+#: config/tc-mips.c:9275
 msgid ""
 "MIPS options:\n"
 "-membedded-pic\t\tgenerate embedded position independent code\n"
 msgid ""
 "MIPS options:\n"
 "-membedded-pic\t\tgenerate embedded position independent code\n"
@@ -5522,7 +5532,7 @@ msgid ""
 "\t\t\timplicitly with the gp register [default 8]\n"
 msgstr ""
 
 "\t\t\timplicitly with the gp register [default 8]\n"
 msgstr ""
 
-#: config/tc-mips.c:9247
+#: config/tc-mips.c:9283
 msgid ""
 "-mips1\t\t\tgenerate MIPS ISA I instructions\n"
 "-mips2\t\t\tgenerate MIPS ISA II instructions\n"
 msgid ""
 "-mips1\t\t\tgenerate MIPS ISA I instructions\n"
 "-mips2\t\t\tgenerate MIPS ISA II instructions\n"
@@ -5534,29 +5544,30 @@ msgid ""
 "-mcpu=CPU\t\tgenerate code for CPU, where CPU is one of:\n"
 msgstr ""
 
 "-mcpu=CPU\t\tgenerate code for CPU, where CPU is one of:\n"
 msgstr ""
 
-#: config/tc-mips.c:9278
+#: config/tc-mips.c:9315
 msgid ""
 "-mCPU\t\t\tequivalent to -mcpu=CPU.\n"
 "-no-mCPU\t\tdon't generate code specific to CPU.\n"
 "\t\t\tFor -mCPU and -no-mCPU, CPU must be one of:\n"
 msgstr ""
 
 msgid ""
 "-mCPU\t\t\tequivalent to -mcpu=CPU.\n"
 "-no-mCPU\t\tdon't generate code specific to CPU.\n"
 "\t\t\tFor -mCPU and -no-mCPU, CPU must be one of:\n"
 msgstr ""
 
-#: config/tc-mips.c:9291
+#: config/tc-mips.c:9328
 msgid ""
 "-mips16\t\t\tgenerate mips16 instructions\n"
 "-no-mips16\t\tdo not generate mips16 instructions\n"
 msgstr ""
 
 msgid ""
 "-mips16\t\t\tgenerate mips16 instructions\n"
 "-no-mips16\t\tdo not generate mips16 instructions\n"
 msgstr ""
 
-#: config/tc-mips.c:9294
+#: config/tc-mips.c:9331
 msgid ""
 "-O0\t\t\tremove unneeded NOPs, do not swap branches\n"
 "-O\t\t\tremove unneeded NOPs and swap branches\n"
 msgid ""
 "-O0\t\t\tremove unneeded NOPs, do not swap branches\n"
 "-O\t\t\tremove unneeded NOPs and swap branches\n"
+"-n\t\t\twarn about NOPs generated from macros\n"
 "--[no-]construct-floats [dis]allow floating point values to be constructed\n"
 "--trap, --no-break\ttrap exception on div by 0 and mult overflow\n"
 "--break, --no-trap\tbreak exception on div by 0 and mult overflow\n"
 msgstr ""
 
 "--[no-]construct-floats [dis]allow floating point values to be constructed\n"
 "--trap, --no-break\ttrap exception on div by 0 and mult overflow\n"
 "--break, --no-trap\tbreak exception on div by 0 and mult overflow\n"
 msgstr ""
 
-#: config/tc-mips.c:9301
+#: config/tc-mips.c:9339
 msgid ""
 "-KPIC, -call_shared\tgenerate SVR4 position independent code\n"
 "-non_shared\t\tdo not generate position independent code\n"
 msgid ""
 "-KPIC, -call_shared\tgenerate SVR4 position independent code\n"
 "-non_shared\t\tdo not generate position independent code\n"
@@ -5565,170 +5576,170 @@ msgid ""
 "-64\t\t\tcreate 64 bit object file\n"
 msgstr ""
 
 "-64\t\t\tcreate 64 bit object file\n"
 msgstr ""
 
-#: config/tc-mips.c:9358
+#: config/tc-mips.c:9396
 #, c-format
 msgid "Unsupported reloc size %d"
 msgstr ""
 
 #, c-format
 msgid "Unsupported reloc size %d"
 msgstr ""
 
-#: config/tc-mips.c:9461
+#: config/tc-mips.c:9499
 msgid "Unmatched %%hi reloc"
 msgstr ""
 
 msgid "Unmatched %%hi reloc"
 msgstr ""
 
-#: config/tc-mips.c:9584
+#: config/tc-mips.c:9626
 msgid "Invalid PC relative reloc"
 msgstr ""
 
 msgid "Invalid PC relative reloc"
 msgstr ""
 
-#: config/tc-mips.c:9694 config/tc-sparc.c:3102 config/tc-sparc.c:3109
-#: config/tc-sparc.c:3116 config/tc-sparc.c:3123 config/tc-sparc.c:3130
-#: config/tc-sparc.c:3139 config/tc-sparc.c:3150 config/tc-sparc.c:3176
-#: config/tc-sparc.c:3204 write.c:1025 write.c:1089
+#: config/tc-mips.c:9736 config/tc-sparc.c:3105 config/tc-sparc.c:3112
+#: config/tc-sparc.c:3119 config/tc-sparc.c:3126 config/tc-sparc.c:3133
+#: config/tc-sparc.c:3142 config/tc-sparc.c:3153 config/tc-sparc.c:3179
+#: config/tc-sparc.c:3207 write.c:1023 write.c:1087
 msgid "relocation overflow"
 msgstr ""
 
 msgid "relocation overflow"
 msgstr ""
 
-#: config/tc-mips.c:9710
+#: config/tc-mips.c:9752
 #, c-format
 msgid "Branch to odd address (%lx)"
 msgstr ""
 
 #, c-format
 msgid "Branch to odd address (%lx)"
 msgstr ""
 
-#: config/tc-mips.c:9874
+#: config/tc-mips.c:9916
 #, c-format
 msgid "%08lx  UNDEFINED\n"
 msgstr ""
 
 #, c-format
 msgid "%08lx  UNDEFINED\n"
 msgstr ""
 
-#: config/tc-mips.c:9940
+#: config/tc-mips.c:9982
 msgid "Alignment negative: 0 assumed."
 msgstr ""
 
 msgid "Alignment negative: 0 assumed."
 msgstr ""
 
-#: config/tc-mips.c:10028
+#: config/tc-mips.c:10070
 msgid "No read only data section in this object file format"
 msgstr ""
 
 msgid "No read only data section in this object file format"
 msgstr ""
 
-#: config/tc-mips.c:10051
+#: config/tc-mips.c:10093
 msgid "Global pointers not supported; recompile -G 0"
 msgstr ""
 
 msgid "Global pointers not supported; recompile -G 0"
 msgstr ""
 
-#: config/tc-mips.c:10137
+#: config/tc-mips.c:10179
 #, c-format
 msgid "%s: no such section"
 msgstr ""
 
 #, c-format
 msgid "%s: no such section"
 msgstr ""
 
-#: config/tc-mips.c:10174
+#: config/tc-mips.c:10216
 #, c-format
 msgid ".option pic%d not supported"
 msgstr ""
 
 #, c-format
 msgid ".option pic%d not supported"
 msgstr ""
 
-#: config/tc-mips.c:10185
+#: config/tc-mips.c:10227
 #, c-format
 msgid "Unrecognized option \"%s\""
 msgstr ""
 
 #, c-format
 msgid "Unrecognized option \"%s\""
 msgstr ""
 
-#: config/tc-mips.c:10248
+#: config/tc-mips.c:10290
 msgid "`noreorder' must be set before `nomacro'"
 msgstr ""
 
 msgid "`noreorder' must be set before `nomacro'"
 msgstr ""
 
-#: config/tc-mips.c:10290
+#: config/tc-mips.c:10332
 msgid "unknown ISA level"
 msgstr ""
 
 msgid "unknown ISA level"
 msgstr ""
 
-#: config/tc-mips.c:10312
+#: config/tc-mips.c:10354
 msgid ".set pop with no .set push"
 msgstr ""
 
 msgid ".set pop with no .set push"
 msgstr ""
 
-#: config/tc-mips.c:10336
+#: config/tc-mips.c:10378
 #, c-format
 msgid "Tried to set unrecognized symbol: %s\n"
 msgstr ""
 
 #, c-format
 msgid "Tried to set unrecognized symbol: %s\n"
 msgstr ""
 
-#: config/tc-mips.c:10386
+#: config/tc-mips.c:10428
 msgid ".cpload not in noreorder section"
 msgstr ""
 
 msgid ".cpload not in noreorder section"
 msgstr ""
 
-#: config/tc-mips.c:10468
+#: config/tc-mips.c:10510
 msgid "Unsupported use of .gpword"
 msgstr ""
 
 msgid "Unsupported use of .gpword"
 msgstr ""
 
-#: config/tc-mips.c:10605
+#: config/tc-mips.c:10647
 msgid "expected `$'"
 msgstr ""
 
 msgid "expected `$'"
 msgstr ""
 
-#: config/tc-mips.c:10613
+#: config/tc-mips.c:10655
 msgid "Bad register number"
 msgstr ""
 
 msgid "Bad register number"
 msgstr ""
 
-#: config/tc-mips.c:10629
+#: config/tc-mips.c:10671
 msgid "Unrecognized register name"
 msgstr ""
 
 msgid "Unrecognized register name"
 msgstr ""
 
-#: config/tc-mips.c:10828
+#: config/tc-mips.c:10852
 msgid "unsupported PC relative reference to different section"
 msgstr ""
 
 msgid "unsupported PC relative reference to different section"
 msgstr ""
 
-#: config/tc-mips.c:10937
+#: config/tc-mips.c:10965
 msgid "unsupported relocation"
 msgstr ""
 
 msgid "unsupported relocation"
 msgstr ""
 
-#: config/tc-mips.c:11041
+#: config/tc-mips.c:11069
 msgid "AT used after \".set noat\" or macro used after \".set nomacro\""
 msgstr ""
 
 msgid "AT used after \".set noat\" or macro used after \".set nomacro\""
 msgstr ""
 
-#: config/tc-mips.c:11104
+#: config/tc-mips.c:11137
 msgid "Double check fx_r_type in tc-mips.c:tc_gen_reloc"
 msgstr ""
 
 msgid "Double check fx_r_type in tc-mips.c:tc_gen_reloc"
 msgstr ""
 
-#: config/tc-mips.c:11617
+#: config/tc-mips.c:11650
 msgid "missing `.end' at end of assembly"
 msgstr ""
 
 msgid "missing `.end' at end of assembly"
 msgstr ""
 
-#: config/tc-mips.c:11632
+#: config/tc-mips.c:11665
 msgid "Expected simple number."
 msgstr ""
 
 msgid "Expected simple number."
 msgstr ""
 
-#: config/tc-mips.c:11658
+#: config/tc-mips.c:11691
 #, c-format
 msgid " *input_line_pointer == '%c' 0x%02x\n"
 msgstr ""
 
 #, c-format
 msgid " *input_line_pointer == '%c' 0x%02x\n"
 msgstr ""
 
-#: config/tc-mips.c:11660
+#: config/tc-mips.c:11693
 msgid "Invalid number"
 msgstr ""
 
 msgid "Invalid number"
 msgstr ""
 
-#: config/tc-mips.c:11714
+#: config/tc-mips.c:11747
 msgid ".end not in text section"
 msgstr ""
 
 msgid ".end not in text section"
 msgstr ""
 
-#: config/tc-mips.c:11718
+#: config/tc-mips.c:11751
 msgid ".end directive without a preceding .ent directive."
 msgstr ""
 
 msgid ".end directive without a preceding .ent directive."
 msgstr ""
 
-#: config/tc-mips.c:11727
+#: config/tc-mips.c:11760
 msgid ".end symbol does not match .ent symbol."
 msgstr ""
 
 msgid ".end symbol does not match .ent symbol."
 msgstr ""
 
-#: config/tc-mips.c:11730
+#: config/tc-mips.c:11763
 msgid ".end directive missing or unknown symbol"
 msgstr ""
 
 msgid ".end directive missing or unknown symbol"
 msgstr ""
 
-#: config/tc-mips.c:11805
+#: config/tc-mips.c:11838
 msgid ".ent or .aent not in text section."
 msgstr ""
 
 msgid ".ent or .aent not in text section."
 msgstr ""
 
-#: config/tc-mips.c:11808
+#: config/tc-mips.c:11841
 msgid "missing `.end'"
 msgstr ""
 
 msgid "missing `.end'"
 msgstr ""
 
-#: config/tc-mips.c:11841 ecoff.c:3206
+#: config/tc-mips.c:11874 ecoff.c:3206
 msgid ".frame outside of .ent"
 msgstr ""
 
 msgid ".frame outside of .ent"
 msgstr ""
 
-#: config/tc-mips.c:11852 ecoff.c:3217
+#: config/tc-mips.c:11885 ecoff.c:3217
 msgid "Bad .frame directive"
 msgstr ""
 
 msgid "Bad .frame directive"
 msgstr ""
 
-#: config/tc-mips.c:11882
+#: config/tc-mips.c:11915
 msgid ".mask/.fmask outside of .ent"
 msgstr ""
 
 msgid ".mask/.fmask outside of .ent"
 msgstr ""
 
-#: config/tc-mips.c:11889
+#: config/tc-mips.c:11922
 msgid "Bad .mask/.fmask directive"
 msgstr ""
 
 msgid "Bad .mask/.fmask directive"
 msgstr ""
 
@@ -5739,19 +5750,19 @@ msgid ""
 msgstr ""
 
 #: config/tc-mn10200.c:808 config/tc-mn10300.c:955 config/tc-ppc.c:1736
 msgstr ""
 
 #: config/tc-mn10200.c:808 config/tc-mn10300.c:955 config/tc-ppc.c:1736
-#: config/tc-s390.c:1262 config/tc-v850.c:1728
+#: config/tc-s390.c:1262 config/tc-v850.c:1725
 #, c-format
 msgid "Unrecognized opcode: `%s'"
 msgstr ""
 
 #: config/tc-mn10200.c:1051 config/tc-mn10300.c:1478 config/tc-ppc.c:2097
 #, c-format
 msgid "Unrecognized opcode: `%s'"
 msgstr ""
 
 #: config/tc-mn10200.c:1051 config/tc-mn10300.c:1478 config/tc-ppc.c:2097
-#: config/tc-s390.c:1188 config/tc-v850.c:2152
+#: config/tc-s390.c:1188 config/tc-v850.c:2149
 #, c-format
 msgid "junk at end of line: `%s'"
 msgstr ""
 
 #, c-format
 msgid "junk at end of line: `%s'"
 msgstr ""
 
-#: config/tc-mn10200.c:1365 config/tc-mn10300.c:2015 config/tc-ppc.c:1224
-#: config/tc-v850.c:1656
+#: config/tc-mn10200.c:1365 config/tc-mn10300.c:2074 config/tc-ppc.c:1224
+#: config/tc-v850.c:1654
 #, c-format
 msgid "operand out of range (%s not between %ld and %ld)"
 msgstr ""
 #, c-format
 msgid "operand out of range (%s not between %ld and %ld)"
 msgstr ""
@@ -5922,18 +5933,18 @@ msgstr ""
 msgid "Bit field out of range"
 msgstr ""
 
 msgid "Bit field out of range"
 msgstr ""
 
-#: config/tc-ns32k.c:2182
+#: config/tc-ns32k.c:2170
 #, c-format
 msgid "invalid architecture option -m%s"
 msgstr ""
 
 #, c-format
 msgid "invalid architecture option -m%s"
 msgstr ""
 
-#: config/tc-ns32k.c:2198
+#: config/tc-ns32k.c:2186
 msgid ""
 "NS32K options:\n"
 "-m32032 | -m32532\tselect variant of NS32K architecture\n"
 msgstr ""
 
 msgid ""
 "NS32K options:\n"
 "-m32032 | -m32532\tselect variant of NS32K architecture\n"
 msgstr ""
 
-#: config/tc-ns32k.c:2376
+#: config/tc-ns32k.c:2364
 #, c-format
 msgid "Cannot find relocation type for symbol %s, code %d"
 msgstr ""
 #, c-format
 msgid "Cannot find relocation type for symbol %s, code %d"
 msgstr ""
@@ -5958,12 +5969,12 @@ msgid ""
 "-big\t\t\tgenerate big endian code\n"
 msgstr ""
 
 "-big\t\t\tgenerate big endian code\n"
 msgstr ""
 
-#: config/tc-pj.c:458 config/tc-sh.c:2909 config/tc-sh.c:2916
-#: config/tc-sh.c:2923 config/tc-sh.c:2930
+#: config/tc-pj.c:458 config/tc-sh.c:2911 config/tc-sh.c:2918
+#: config/tc-sh.c:2925 config/tc-sh.c:2932
 msgid "pcrel too far"
 msgstr ""
 
 msgid "pcrel too far"
 msgstr ""
 
-#: config/tc-pj.c:526 config/tc-sh.c:3021
+#: config/tc-pj.c:526 config/tc-sh.c:3023
 msgid "offset out of range"
 msgstr ""
 
 msgid "offset out of range"
 msgstr ""
 
@@ -6104,7 +6115,7 @@ msgstr ""
 msgid "missing rename string"
 msgstr ""
 
 msgid "missing rename string"
 msgstr ""
 
-#: config/tc-ppc.c:2780 config/tc-ppc.c:3305 read.c:3000
+#: config/tc-ppc.c:2780 config/tc-ppc.c:3325 read.c:3000
 msgid "missing value"
 msgstr ""
 
 msgid "missing value"
 msgstr ""
 
@@ -6120,93 +6131,93 @@ msgstr ""
 msgid "missing type"
 msgstr ""
 
 msgid "missing type"
 msgstr ""
 
-#: config/tc-ppc.c:2900
+#: config/tc-ppc.c:2920
 msgid "missing symbol name"
 msgstr ""
 
 msgid "missing symbol name"
 msgstr ""
 
-#: config/tc-ppc.c:3076
+#: config/tc-ppc.c:3096
 msgid "nested .bs blocks"
 msgstr ""
 
 msgid "nested .bs blocks"
 msgstr ""
 
-#: config/tc-ppc.c:3109
+#: config/tc-ppc.c:3129
 msgid ".es without preceding .bs"
 msgstr ""
 
 msgid ".es without preceding .bs"
 msgstr ""
 
-#: config/tc-ppc.c:3297
+#: config/tc-ppc.c:3317
 msgid "non-constant byte count"
 msgstr ""
 
 msgid "non-constant byte count"
 msgstr ""
 
-#: config/tc-ppc.c:3342
+#: config/tc-ppc.c:3362
 msgid ".tc not in .toc section"
 msgstr ""
 
 msgid ".tc not in .toc section"
 msgstr ""
 
-#: config/tc-ppc.c:3361
+#: config/tc-ppc.c:3381
 msgid ".tc with no label"
 msgstr ""
 
 msgid ".tc with no label"
 msgstr ""
 
-#: config/tc-ppc.c:3436
+#: config/tc-ppc.c:3456
 msgid "No previous section to return to. Directive ignored."
 msgstr ""
 
 #. Section Contents
 #. unknown
 msgid "No previous section to return to. Directive ignored."
 msgstr ""
 
 #. Section Contents
 #. unknown
-#: config/tc-ppc.c:3855
+#: config/tc-ppc.c:3875
 msgid "Unsupported section attribute -- 'a'"
 msgstr ""
 
 msgid "Unsupported section attribute -- 'a'"
 msgstr ""
 
-#: config/tc-ppc.c:4045
+#: config/tc-ppc.c:4065
 msgid "bad symbol suffix"
 msgstr ""
 
 msgid "bad symbol suffix"
 msgstr ""
 
-#: config/tc-ppc.c:4138
+#: config/tc-ppc.c:4158
 msgid "Unrecognized symbol suffix"
 msgstr ""
 
 msgid "Unrecognized symbol suffix"
 msgstr ""
 
-#: config/tc-ppc.c:4220
+#: config/tc-ppc.c:4240
 msgid "two .function pseudo-ops with no intervening .ef"
 msgstr ""
 
 msgid "two .function pseudo-ops with no intervening .ef"
 msgstr ""
 
-#: config/tc-ppc.c:4233
+#: config/tc-ppc.c:4253
 msgid ".ef with no preceding .function"
 msgstr ""
 
 msgid ".ef with no preceding .function"
 msgstr ""
 
-#: config/tc-ppc.c:4361
+#: config/tc-ppc.c:4381
 #, c-format
 msgid "warning: symbol %s has no csect"
 msgstr ""
 
 #, c-format
 msgid "warning: symbol %s has no csect"
 msgstr ""
 
-#: config/tc-ppc.c:4662
+#: config/tc-ppc.c:4681
 msgid "symbol in .toc does not match any .tc"
 msgstr ""
 
 msgid "symbol in .toc does not match any .tc"
 msgstr ""
 
-#: config/tc-ppc.c:4957 config/tc-s390.c:1726 config/tc-v850.c:2431
+#: config/tc-ppc.c:4975 config/tc-s390.c:1726 config/tc-v850.c:2423
 msgid "unresolved expression that must be resolved"
 msgstr ""
 
 msgid "unresolved expression that must be resolved"
 msgstr ""
 
-#: config/tc-ppc.c:4960 config/tc-s390.c:1729
+#: config/tc-ppc.c:4978 config/tc-s390.c:1729
 msgid "unsupported relocation type"
 msgstr ""
 
 msgid "unsupported relocation type"
 msgstr ""
 
-#: config/tc-ppc.c:5022
+#: config/tc-ppc.c:5040
 #, c-format
 msgid "cannot emit PC relative %s relocation against %s"
 msgstr ""
 
 #, c-format
 msgid "cannot emit PC relative %s relocation against %s"
 msgstr ""
 
-#: config/tc-ppc.c:5027
+#: config/tc-ppc.c:5045
 #, c-format
 msgid "cannot emit PC relative %s relocation"
 msgstr ""
 
 #, c-format
 msgid "cannot emit PC relative %s relocation"
 msgstr ""
 
-#: config/tc-ppc.c:5089
+#: config/tc-ppc.c:5107
 msgid "must branch to an address a multiple of 4"
 msgstr ""
 
 msgid "must branch to an address a multiple of 4"
 msgstr ""
 
-#: config/tc-ppc.c:5093
+#: config/tc-ppc.c:5111
 #, c-format
 msgid "@local or @plt branch destination is too far away, %ld bytes"
 msgstr ""
 
 #, c-format
 msgid "@local or @plt branch destination is too far away, %ld bytes"
 msgstr ""
 
-#: config/tc-ppc.c:5117
+#: config/tc-ppc.c:5135
 #, c-format
 msgid "Gas failure, reloc value %d\n"
 msgstr ""
 #, c-format
 msgid "Gas failure, reloc value %d\n"
 msgstr ""
@@ -6386,15 +6397,15 @@ msgstr ""
 msgid "excess operands: '%s'"
 msgstr ""
 
 msgid "excess operands: '%s'"
 msgstr ""
 
-#: config/tc-sh.c:2109
+#: config/tc-sh.c:2111
 msgid ".uses pseudo-op seen when not relaxing"
 msgstr ""
 
 msgid ".uses pseudo-op seen when not relaxing"
 msgstr ""
 
-#: config/tc-sh.c:2115
+#: config/tc-sh.c:2117
 msgid "bad .uses format"
 msgstr ""
 
 msgid "bad .uses format"
 msgstr ""
 
-#: config/tc-sh.c:2176
+#: config/tc-sh.c:2178
 msgid ""
 "SH options:\n"
 "-little\t\t\tgenerate little endian code\n"
 msgid ""
 "SH options:\n"
 "-little\t\t\tgenerate little endian code\n"
@@ -6403,61 +6414,61 @@ msgid ""
 "-dsp\t\t\tenable sh-dsp insns, and disable sh3e / sh4 insns.\n"
 msgstr ""
 
 "-dsp\t\t\tenable sh-dsp insns, and disable sh3e / sh4 insns.\n"
 msgstr ""
 
-#: config/tc-sh.c:2187 config/tc-w65.c:856
+#: config/tc-sh.c:2189 config/tc-w65.c:856
 msgid "call to tc_Nout_fix_to_chars \n"
 msgstr ""
 
 msgid "call to tc_Nout_fix_to_chars \n"
 msgstr ""
 
-#: config/tc-sh.c:2271
+#: config/tc-sh.c:2273
 msgid ".uses does not refer to a local symbol in the same section"
 msgstr ""
 
 msgid ".uses does not refer to a local symbol in the same section"
 msgstr ""
 
-#: config/tc-sh.c:2290
+#: config/tc-sh.c:2292
 msgid "can't find fixup pointed to by .uses"
 msgstr ""
 
 msgid "can't find fixup pointed to by .uses"
 msgstr ""
 
-#: config/tc-sh.c:2313
+#: config/tc-sh.c:2315
 msgid ".uses target does not refer to a local symbol in the same section"
 msgstr ""
 
 msgid ".uses target does not refer to a local symbol in the same section"
 msgstr ""
 
-#: config/tc-sh.c:2411
+#: config/tc-sh.c:2413
 msgid "displacement overflows 12-bit field"
 msgstr ""
 
 msgid "displacement overflows 12-bit field"
 msgstr ""
 
-#: config/tc-sh.c:2414
+#: config/tc-sh.c:2416
 #, c-format
 msgid "displacement to defined symbol %s overflows 12-bit field"
 msgstr ""
 
 #, c-format
 msgid "displacement to defined symbol %s overflows 12-bit field"
 msgstr ""
 
-#: config/tc-sh.c:2418
+#: config/tc-sh.c:2420
 #, c-format
 msgid "displacement to undefined symbol %s overflows 12-bit field"
 msgstr ""
 
 #, c-format
 msgid "displacement to undefined symbol %s overflows 12-bit field"
 msgstr ""
 
-#: config/tc-sh.c:2496
+#: config/tc-sh.c:2498
 msgid "displacement overflows 8-bit field"
 msgstr ""
 
 msgid "displacement overflows 8-bit field"
 msgstr ""
 
-#: config/tc-sh.c:2499
+#: config/tc-sh.c:2501
 #, c-format
 msgid "displacement to defined symbol %s overflows 8-bit field"
 msgstr ""
 
 #, c-format
 msgid "displacement to defined symbol %s overflows 8-bit field"
 msgstr ""
 
-#: config/tc-sh.c:2503
+#: config/tc-sh.c:2505
 #, c-format
 msgid "displacement to undefined symbol %s overflows 8-bit field "
 msgstr ""
 
 #, c-format
 msgid "displacement to undefined symbol %s overflows 8-bit field "
 msgstr ""
 
-#: config/tc-sh.c:2516
+#: config/tc-sh.c:2518
 #, c-format
 msgid "overflow in branch to %s; converted into longer instruction sequence"
 msgstr ""
 
 #, c-format
 msgid "overflow in branch to %s; converted into longer instruction sequence"
 msgstr ""
 
-#: config/tc-sh.c:2591 config/tc-sh.c:2639 config/tc-sparc.c:4085
-#: config/tc-sparc.c:4110
+#: config/tc-sh.c:2593 config/tc-sh.c:2641 config/tc-sparc.c:4088
+#: config/tc-sparc.c:4113
 msgid "misaligned data"
 msgstr ""
 
 msgid "misaligned data"
 msgstr ""
 
-#: config/tc-sh.c:3013
+#: config/tc-sh.c:3015
 msgid "misaligned offset"
 msgstr ""
 
 msgid "misaligned offset"
 msgstr ""
 
@@ -6737,50 +6748,50 @@ msgstr ""
 msgid " (Requires %s; requested architecture is %s.)"
 msgstr ""
 
 msgid " (Requires %s; requested architecture is %s.)"
 msgstr ""
 
-#: config/tc-sparc.c:3250
+#: config/tc-sparc.c:3253
 #, c-format
 msgid "bad or unhandled relocation type: 0x%02x"
 msgstr ""
 
 #, c-format
 msgid "bad or unhandled relocation type: 0x%02x"
 msgstr ""
 
-#: config/tc-sparc.c:3381
+#: config/tc-sparc.c:3387
 #, c-format
 msgid "internal error: can't export reloc type %d (`%s')"
 msgstr ""
 
 #, c-format
 msgid "internal error: can't export reloc type %d (`%s')"
 msgstr ""
 
-#: config/tc-sparc.c:3553
+#: config/tc-sparc.c:3559
 msgid "bad .reserve segment -- expected BSS segment"
 msgstr ""
 
 msgid "bad .reserve segment -- expected BSS segment"
 msgstr ""
 
-#: config/tc-sparc.c:3570
+#: config/tc-sparc.c:3576
 msgid "missing alignment"
 msgstr ""
 
 msgid "missing alignment"
 msgstr ""
 
-#: config/tc-sparc.c:3581 config/tc-sparc.c:3731
+#: config/tc-sparc.c:3587 config/tc-sparc.c:3737
 #, c-format
 msgid "alignment too large; assuming %d"
 msgstr ""
 
 #, c-format
 msgid "alignment too large; assuming %d"
 msgstr ""
 
-#: config/tc-sparc.c:3587 config/tc-sparc.c:3737
+#: config/tc-sparc.c:3593 config/tc-sparc.c:3743
 msgid "negative alignment"
 msgstr ""
 
 msgid "negative alignment"
 msgstr ""
 
-#: config/tc-sparc.c:3597 config/tc-sparc.c:3760
+#: config/tc-sparc.c:3603 config/tc-sparc.c:3766
 msgid "alignment not a power of 2"
 msgstr ""
 
 msgid "alignment not a power of 2"
 msgstr ""
 
-#: config/tc-sparc.c:3717
+#: config/tc-sparc.c:3723
 msgid "Expected comma after common length"
 msgstr ""
 
 msgid "Expected comma after common length"
 msgstr ""
 
-#: config/tc-sparc.c:3952 config/tc-sparc.c:3962
+#: config/tc-sparc.c:3958 config/tc-sparc.c:3968
 msgid "register syntax is .register %%g[2367],{#scratch|symbolname|#ignore}"
 msgstr ""
 
 msgid "register syntax is .register %%g[2367],{#scratch|symbolname|#ignore}"
 msgstr ""
 
-#: config/tc-sparc.c:3980
+#: config/tc-sparc.c:3986
 msgid "redefinition of global register"
 msgstr ""
 
 msgid "redefinition of global register"
 msgstr ""
 
-#: config/tc-sparc.c:3991
+#: config/tc-sparc.c:3997
 #, c-format
 msgid "Register symbol %s already defined."
 msgstr ""
 #, c-format
 msgid "Register symbol %s already defined."
 msgstr ""
@@ -6789,25 +6800,25 @@ msgstr ""
 msgid "The -a option doesn't exist. (Despite what the man page says!"
 msgstr ""
 
 msgid "The -a option doesn't exist. (Despite what the man page says!"
 msgstr ""
 
-#: config/tc-tahoe.c:406 config/tc-vax.c:3132
+#: config/tc-tahoe.c:406 config/tc-vax.c:3122
 #, c-format
 msgid "Displacement length %s ignored!"
 msgstr ""
 
 #, c-format
 msgid "Displacement length %s ignored!"
 msgstr ""
 
-#: config/tc-tahoe.c:410 config/tc-vax.c:3124
+#: config/tc-tahoe.c:410 config/tc-vax.c:3114
 msgid "SYMBOL TABLE not implemented"
 msgstr ""
 
 msgid "SYMBOL TABLE not implemented"
 msgstr ""
 
-#: config/tc-tahoe.c:414 config/tc-vax.c:3128
+#: config/tc-tahoe.c:414 config/tc-vax.c:3118
 msgid "TOKEN TRACE not implemented"
 msgstr ""
 
 msgid "TOKEN TRACE not implemented"
 msgstr ""
 
-#: config/tc-tahoe.c:418 config/tc-vax.c:3136
+#: config/tc-tahoe.c:418 config/tc-vax.c:3126
 #, c-format
 msgid "I don't need or use temp. file \"%s\"."
 msgstr ""
 
 #, c-format
 msgid "I don't need or use temp. file \"%s\"."
 msgstr ""
 
-#: config/tc-tahoe.c:422 config/tc-vax.c:3140
+#: config/tc-tahoe.c:422 config/tc-vax.c:3130
 msgid "I don't use an interpass file! -V ignored"
 msgstr ""
 
 msgid "I don't use an interpass file! -V ignored"
 msgstr ""
 
@@ -6823,186 +6834,186 @@ msgid ""
 "-V\t\t\tignored\n"
 msgstr ""
 
 "-V\t\t\tignored\n"
 msgstr ""
 
-#: config/tc-tahoe.c:1090
+#: config/tc-tahoe.c:1064
 msgid "Casting a branch displacement is bad form, and is ignored."
 msgstr ""
 
 msgid "Casting a branch displacement is bad form, and is ignored."
 msgstr ""
 
-#: config/tc-tahoe.c:1146
+#: config/tc-tahoe.c:1120
 msgid "Couldn't parse the [index] in this operand."
 msgstr ""
 
 msgid "Couldn't parse the [index] in this operand."
 msgstr ""
 
-#: config/tc-tahoe.c:1152
+#: config/tc-tahoe.c:1126
 msgid "Couldn't find the opening '[' for the index of this operand."
 msgstr ""
 
 msgid "Couldn't find the opening '[' for the index of this operand."
 msgstr ""
 
-#: config/tc-tahoe.c:1192
+#: config/tc-tahoe.c:1166
 msgid "Couldn't find the opening '(' for the deref of this operand."
 msgstr ""
 
 msgid "Couldn't find the opening '(' for the deref of this operand."
 msgstr ""
 
-#: config/tc-tahoe.c:1202
+#: config/tc-tahoe.c:1176
 msgid "Operand can't be both pre-inc and post-dec."
 msgstr ""
 
 msgid "Operand can't be both pre-inc and post-dec."
 msgstr ""
 
-#: config/tc-tahoe.c:1232
+#: config/tc-tahoe.c:1206
 msgid "I parsed 2 registers in this operand."
 msgstr ""
 
 msgid "I parsed 2 registers in this operand."
 msgstr ""
 
-#: config/tc-tahoe.c:1282
+#: config/tc-tahoe.c:1256
 msgid "Can't relocate expression error."
 msgstr ""
 
 #. This is an error. Tahoe doesn't allow any expressions
 #. bigger that a 32 bit long word. Any bigger has to be referenced
 #. by address.
 msgid "Can't relocate expression error."
 msgstr ""
 
 #. This is an error. Tahoe doesn't allow any expressions
 #. bigger that a 32 bit long word. Any bigger has to be referenced
 #. by address.
-#: config/tc-tahoe.c:1289
+#: config/tc-tahoe.c:1263
 msgid "Expression is too large for a 32 bits."
 msgstr ""
 
 msgid "Expression is too large for a 32 bits."
 msgstr ""
 
-#: config/tc-tahoe.c:1294
+#: config/tc-tahoe.c:1268
 msgid "Junk at end of expression."
 msgstr ""
 
 msgid "Junk at end of expression."
 msgstr ""
 
-#: config/tc-tahoe.c:1333
+#: config/tc-tahoe.c:1307
 msgid "Syntax error in direct register mode."
 msgstr ""
 
 msgid "Syntax error in direct register mode."
 msgstr ""
 
-#: config/tc-tahoe.c:1335
+#: config/tc-tahoe.c:1309
 msgid "You can't index a register in direct register mode."
 msgstr ""
 
 msgid "You can't index a register in direct register mode."
 msgstr ""
 
-#: config/tc-tahoe.c:1338
+#: config/tc-tahoe.c:1312
 msgid "SP can't be the source operand with direct register addressing."
 msgstr ""
 
 msgid "SP can't be the source operand with direct register addressing."
 msgstr ""
 
-#: config/tc-tahoe.c:1340
+#: config/tc-tahoe.c:1314
 msgid "Can't take the address of a register."
 msgstr ""
 
 msgid "Can't take the address of a register."
 msgstr ""
 
-#: config/tc-tahoe.c:1342
+#: config/tc-tahoe.c:1316
 msgid "Direct Register can't be used in a branch."
 msgstr ""
 
 msgid "Direct Register can't be used in a branch."
 msgstr ""
 
-#: config/tc-tahoe.c:1344
+#: config/tc-tahoe.c:1318
 msgid "For quad access, the register must be even and < 14."
 msgstr ""
 
 msgid "For quad access, the register must be even and < 14."
 msgstr ""
 
-#: config/tc-tahoe.c:1346
+#: config/tc-tahoe.c:1320
 msgid "You can't cast a direct register."
 msgstr ""
 
 msgid "You can't cast a direct register."
 msgstr ""
 
-#: config/tc-tahoe.c:1352
+#: config/tc-tahoe.c:1326
 msgid "Using reg 14 for quadwords can tromp the FP register."
 msgstr ""
 
 msgid "Using reg 14 for quadwords can tromp the FP register."
 msgstr ""
 
-#: config/tc-tahoe.c:1364
+#: config/tc-tahoe.c:1338
 msgid "Syntax error in auto-dec mode."
 msgstr ""
 
 msgid "Syntax error in auto-dec mode."
 msgstr ""
 
-#: config/tc-tahoe.c:1366
+#: config/tc-tahoe.c:1340
 msgid "You can't have an index auto dec mode."
 msgstr ""
 
 msgid "You can't have an index auto dec mode."
 msgstr ""
 
-#: config/tc-tahoe.c:1368
+#: config/tc-tahoe.c:1342
 msgid "Auto dec mode cant be used for reading."
 msgstr ""
 
 msgid "Auto dec mode cant be used for reading."
 msgstr ""
 
-#: config/tc-tahoe.c:1370
+#: config/tc-tahoe.c:1344
 msgid "Auto dec only works of the SP register."
 msgstr ""
 
 msgid "Auto dec only works of the SP register."
 msgstr ""
 
-#: config/tc-tahoe.c:1372
+#: config/tc-tahoe.c:1346
 msgid "Auto dec can't be used in a branch."
 msgstr ""
 
 msgid "Auto dec can't be used in a branch."
 msgstr ""
 
-#: config/tc-tahoe.c:1374
+#: config/tc-tahoe.c:1348
 msgid "Auto dec won't work with quadwords."
 msgstr ""
 
 msgid "Auto dec won't work with quadwords."
 msgstr ""
 
-#: config/tc-tahoe.c:1381
+#: config/tc-tahoe.c:1355
 msgid "Syntax error in one of the auto-inc modes."
 msgstr ""
 
 msgid "Syntax error in one of the auto-inc modes."
 msgstr ""
 
-#: config/tc-tahoe.c:1387
+#: config/tc-tahoe.c:1361
 msgid "Auto inc deferred only works of the SP register."
 msgstr ""
 
 msgid "Auto inc deferred only works of the SP register."
 msgstr ""
 
-#: config/tc-tahoe.c:1389
+#: config/tc-tahoe.c:1363
 msgid "You can't have an index auto inc deferred mode."
 msgstr ""
 
 msgid "You can't have an index auto inc deferred mode."
 msgstr ""
 
-#: config/tc-tahoe.c:1391 config/tc-tahoe.c:1402
+#: config/tc-tahoe.c:1365 config/tc-tahoe.c:1376
 msgid "Auto inc can't be used in a branch."
 msgstr ""
 
 msgid "Auto inc can't be used in a branch."
 msgstr ""
 
-#: config/tc-tahoe.c:1398
+#: config/tc-tahoe.c:1372
 msgid "You can't write to an auto inc register."
 msgstr ""
 
 msgid "You can't write to an auto inc register."
 msgstr ""
 
-#: config/tc-tahoe.c:1400
+#: config/tc-tahoe.c:1374
 msgid "Auto inc only works of the SP register."
 msgstr ""
 
 msgid "Auto inc only works of the SP register."
 msgstr ""
 
-#: config/tc-tahoe.c:1404
+#: config/tc-tahoe.c:1378
 msgid "Auto inc won't work with quadwords."
 msgstr ""
 
 msgid "Auto inc won't work with quadwords."
 msgstr ""
 
-#: config/tc-tahoe.c:1406
+#: config/tc-tahoe.c:1380
 msgid "You can't have an index in auto inc mode."
 msgstr ""
 
 msgid "You can't have an index in auto inc mode."
 msgstr ""
 
-#: config/tc-tahoe.c:1414
+#: config/tc-tahoe.c:1388
 msgid "You can't index the sp register."
 msgstr ""
 
 msgid "You can't index the sp register."
 msgstr ""
 
-#: config/tc-tahoe.c:1420
+#: config/tc-tahoe.c:1394
 msgid "Syntax error in register displaced mode."
 msgstr ""
 
 msgid "Syntax error in register displaced mode."
 msgstr ""
 
-#: config/tc-tahoe.c:1439
+#: config/tc-tahoe.c:1413
 msgid "An offest is needed for this operand."
 msgstr ""
 
 msgid "An offest is needed for this operand."
 msgstr ""
 
-#: config/tc-tahoe.c:1451
+#: config/tc-tahoe.c:1425
 msgid "You can't index a register in immediate mode."
 msgstr ""
 
 msgid "You can't index a register in immediate mode."
 msgstr ""
 
-#: config/tc-tahoe.c:1453
+#: config/tc-tahoe.c:1427
 msgid "Immediate access can't be used as an address."
 msgstr ""
 
 msgid "Immediate access can't be used as an address."
 msgstr ""
 
-#: config/tc-tahoe.c:1564
+#: config/tc-tahoe.c:1538
 #, c-format
 msgid "Compiler bug: ODD number of bytes in arg structure %s."
 msgstr ""
 
 #, c-format
 msgid "Compiler bug: ODD number of bytes in arg structure %s."
 msgstr ""
 
-#: config/tc-tahoe.c:1591 config/tc-vax.c:1839
+#: config/tc-tahoe.c:1565 config/tc-vax.c:1829
 msgid "Not enough operands"
 msgstr ""
 
 msgid "Not enough operands"
 msgstr ""
 
-#: config/tc-tahoe.c:1601 config/tc-vax.c:1846
+#: config/tc-tahoe.c:1575 config/tc-vax.c:1836
 msgid "Too many operands"
 msgstr ""
 
 msgid "Too many operands"
 msgstr ""
 
-#: config/tc-tahoe.c:1652 config/tc-vax.c:364
+#: config/tc-tahoe.c:1626 config/tc-vax.c:372
 #, c-format
 msgid "Ignoring statement due to \"%s\""
 msgstr ""
 
 #, c-format
 msgid "Ignoring statement due to \"%s\""
 msgstr ""
 
-#: config/tc-tahoe.c:1747
+#: config/tc-tahoe.c:1721
 #, c-format
 msgid "Compliler bug: Got a case (%d) I wasn't expecting."
 msgstr ""
 
 #, c-format
 msgid "Compliler bug: Got a case (%d) I wasn't expecting."
 msgstr ""
 
-#: config/tc-tahoe.c:1841
+#: config/tc-tahoe.c:1815
 msgid "Real branch displacements must be expressions."
 msgstr ""
 
 msgid "Real branch displacements must be expressions."
 msgstr ""
 
-#: config/tc-tahoe.c:1844
+#: config/tc-tahoe.c:1818
 #, c-format
 msgid "Complier error: I got an unknown synthetic branch :%c"
 msgstr ""
 
 #, c-format
 msgid "Complier error: I got an unknown synthetic branch :%c"
 msgstr ""
 
-#: config/tc-tahoe.c:1985
+#: config/tc-tahoe.c:1959
 #, c-format
 msgid "Barf, bad mode %x\n"
 msgstr ""
 #, c-format
 msgid "Barf, bad mode %x\n"
 msgstr ""
@@ -7519,335 +7530,335 @@ msgstr ""
 msgid "md_convert_frag() not implemented yet"
 msgstr ""
 
 msgid "md_convert_frag() not implemented yet"
 msgstr ""
 
-#: config/tc-v850.c:270
+#: config/tc-v850.c:271
 #, c-format
 msgid ".COMMon length (%d.) < 0! Ignored."
 msgstr ""
 
 #, c-format
 msgid ".COMMon length (%d.) < 0! Ignored."
 msgstr ""
 
-#: config/tc-v850.c:1013
+#: config/tc-v850.c:1014
 #, c-format
 msgid "unknown operand shift: %x\n"
 msgstr ""
 
 #, c-format
 msgid "unknown operand shift: %x\n"
 msgstr ""
 
-#: config/tc-v850.c:1014
+#: config/tc-v850.c:1015
 msgid "internal failure in parse_register_list"
 msgstr ""
 
 msgid "internal failure in parse_register_list"
 msgstr ""
 
-#: config/tc-v850.c:1031
+#: config/tc-v850.c:1032
 msgid "constant expression or register list expected"
 msgstr ""
 
 msgid "constant expression or register list expected"
 msgstr ""
 
-#: config/tc-v850.c:1036 config/tc-v850.c:1049 config/tc-v850.c:1068
+#: config/tc-v850.c:1037 config/tc-v850.c:1050 config/tc-v850.c:1069
 msgid "high bits set in register list expression"
 msgstr ""
 
 msgid "high bits set in register list expression"
 msgstr ""
 
-#: config/tc-v850.c:1108 config/tc-v850.c:1172
+#: config/tc-v850.c:1109 config/tc-v850.c:1173
 msgid "illegal register included in list"
 msgstr ""
 
 msgid "illegal register included in list"
 msgstr ""
 
-#: config/tc-v850.c:1115
+#: config/tc-v850.c:1116
 msgid "system registers cannot be included in list"
 msgstr ""
 
 msgid "system registers cannot be included in list"
 msgstr ""
 
-#: config/tc-v850.c:1120
+#: config/tc-v850.c:1121
 msgid "PSW cannot be included in list"
 msgstr ""
 
 msgid "PSW cannot be included in list"
 msgstr ""
 
-#: config/tc-v850.c:1127
+#: config/tc-v850.c:1128
 msgid "High value system registers cannot be included in list"
 msgstr ""
 
 msgid "High value system registers cannot be included in list"
 msgstr ""
 
-#: config/tc-v850.c:1151
+#: config/tc-v850.c:1152
 msgid "second register should follow dash in register list"
 msgstr ""
 
 msgid "second register should follow dash in register list"
 msgstr ""
 
-#: config/tc-v850.c:1198
+#: config/tc-v850.c:1199
 msgid " V850 options:\n"
 msgstr ""
 
 msgid " V850 options:\n"
 msgstr ""
 
-#: config/tc-v850.c:1199
+#: config/tc-v850.c:1200
 msgid "  -mwarn-signed-overflow    Warn if signed immediate values overflow\n"
 msgstr ""
 
 msgid "  -mwarn-signed-overflow    Warn if signed immediate values overflow\n"
 msgstr ""
 
-#: config/tc-v850.c:1200
+#: config/tc-v850.c:1201
 msgid ""
 "  -mwarn-unsigned-overflow  Warn if unsigned immediate values overflow\n"
 msgstr ""
 
 msgid ""
 "  -mwarn-unsigned-overflow  Warn if unsigned immediate values overflow\n"
 msgstr ""
 
-#: config/tc-v850.c:1201
+#: config/tc-v850.c:1202
 msgid "  -mv850                    The code is targeted at the v850\n"
 msgstr ""
 
 msgid "  -mv850                    The code is targeted at the v850\n"
 msgstr ""
 
-#: config/tc-v850.c:1202
+#: config/tc-v850.c:1203
 msgid "  -mv850e                   The code is targeted at the v850e\n"
 msgstr ""
 
 msgid "  -mv850e                   The code is targeted at the v850e\n"
 msgstr ""
 
-#: config/tc-v850.c:1203
+#: config/tc-v850.c:1204
 msgid "  -mv850ea                  The code is targeted at the v850ea\n"
 msgstr ""
 
 msgid "  -mv850ea                  The code is targeted at the v850ea\n"
 msgstr ""
 
-#: config/tc-v850.c:1204
+#: config/tc-v850.c:1205
 msgid ""
 "  -mv850any                 The code is generic, despite any processor "
 "specific instructions\n"
 msgstr ""
 
 msgid ""
 "  -mv850any                 The code is generic, despite any processor "
 "specific instructions\n"
 msgstr ""
 
-#: config/tc-v850.c:1216 config/tc-v850.c:1254
+#: config/tc-v850.c:1217 config/tc-v850.c:1255
 #, c-format
 msgid "unknown command line option: -%c%s\n"
 msgstr ""
 
 #, c-format
 msgid "unknown command line option: -%c%s\n"
 msgstr ""
 
-#: config/tc-v850.c:1407
+#: config/tc-v850.c:1405
 #, c-format
 msgid "Unable to determine default target processor from string: %s"
 msgstr ""
 
 #, c-format
 msgid "Unable to determine default target processor from string: %s"
 msgstr ""
 
-#: config/tc-v850.c:1455
+#: config/tc-v850.c:1453
 msgid "ctoff() relocation used on an instruction which does not support it"
 msgstr ""
 
 msgid "ctoff() relocation used on an instruction which does not support it"
 msgstr ""
 
-#: config/tc-v850.c:1477
+#: config/tc-v850.c:1475
 msgid "sdaoff() relocation used on an instruction which does not support it"
 msgstr ""
 
 msgid "sdaoff() relocation used on an instruction which does not support it"
 msgstr ""
 
-#: config/tc-v850.c:1499
+#: config/tc-v850.c:1497
 msgid "zdaoff() relocation used on an instruction which does not support it"
 msgstr ""
 
 msgid "zdaoff() relocation used on an instruction which does not support it"
 msgstr ""
 
-#: config/tc-v850.c:1532
+#: config/tc-v850.c:1530
 msgid "tdaoff() relocation used on an instruction which does not support it"
 msgstr ""
 
 msgid "tdaoff() relocation used on an instruction which does not support it"
 msgstr ""
 
-#: config/tc-v850.c:1749
+#: config/tc-v850.c:1746
 msgid "Target processor does not support this instruction."
 msgstr ""
 
 msgid "Target processor does not support this instruction."
 msgstr ""
 
-#: config/tc-v850.c:1839 config/tc-v850.c:1869 config/tc-v850.c:2057
+#: config/tc-v850.c:1836 config/tc-v850.c:1866 config/tc-v850.c:2054
 msgid "immediate operand is too large"
 msgstr ""
 
 msgid "immediate operand is too large"
 msgstr ""
 
-#: config/tc-v850.c:1851
+#: config/tc-v850.c:1848
 msgid "AAARG -> unhandled constant reloc"
 msgstr ""
 
 msgid "AAARG -> unhandled constant reloc"
 msgstr ""
 
-#: config/tc-v850.c:1895
+#: config/tc-v850.c:1892
 msgid "invalid register name"
 msgstr ""
 
 msgid "invalid register name"
 msgstr ""
 
-#: config/tc-v850.c:1900
+#: config/tc-v850.c:1897
 msgid "register r0 cannot be used here"
 msgstr ""
 
 msgid "register r0 cannot be used here"
 msgstr ""
 
-#: config/tc-v850.c:1912
+#: config/tc-v850.c:1909
 msgid "invalid system register name"
 msgstr ""
 
 msgid "invalid system register name"
 msgstr ""
 
-#: config/tc-v850.c:1925
+#: config/tc-v850.c:1922
 msgid "expected EP register"
 msgstr ""
 
 msgid "expected EP register"
 msgstr ""
 
-#: config/tc-v850.c:1942
+#: config/tc-v850.c:1939
 msgid "invalid condition code name"
 msgstr ""
 
 msgid "invalid condition code name"
 msgstr ""
 
-#: config/tc-v850.c:1963 config/tc-v850.c:1967
+#: config/tc-v850.c:1960 config/tc-v850.c:1964
 msgid "constant too big to fit into instruction"
 msgstr ""
 
 msgid "constant too big to fit into instruction"
 msgstr ""
 
-#: config/tc-v850.c:2020
+#: config/tc-v850.c:2017
 msgid "syntax error: value is missing before the register name"
 msgstr ""
 
 msgid "syntax error: value is missing before the register name"
 msgstr ""
 
-#: config/tc-v850.c:2022
+#: config/tc-v850.c:2019
 msgid "syntax error: register not expected"
 msgstr ""
 
 msgid "syntax error: register not expected"
 msgstr ""
 
-#: config/tc-v850.c:2036
+#: config/tc-v850.c:2033
 msgid "syntax error: system register not expected"
 msgstr ""
 
 msgid "syntax error: system register not expected"
 msgstr ""
 
-#: config/tc-v850.c:2041
+#: config/tc-v850.c:2038
 msgid "syntax error: condition code not expected"
 msgstr ""
 
 msgid "syntax error: condition code not expected"
 msgstr ""
 
-#: config/tc-v850.c:2082
+#: config/tc-v850.c:2079
 msgid "invalid operand"
 msgstr ""
 
 msgid "invalid operand"
 msgstr ""
 
-#: config/tc-vax.c:259
+#: config/tc-vax.c:267
 #, c-format
 msgid "VIP_BEGIN error:%s"
 msgstr ""
 
 #, c-format
 msgid "VIP_BEGIN error:%s"
 msgstr ""
 
-#: config/tc-vax.c:383
+#: config/tc-vax.c:391
 #, c-format
 msgid "Ignoring statement because \"%s\""
 msgstr ""
 
 #, c-format
 msgid "Ignoring statement because \"%s\""
 msgstr ""
 
-#: config/tc-vax.c:430
+#: config/tc-vax.c:438
 msgid "Can't relocate expression"
 msgstr ""
 
 msgid "Can't relocate expression"
 msgstr ""
 
-#: config/tc-vax.c:533
+#: config/tc-vax.c:541
 msgid "Bignum not permitted in short literal. Immediate mode assumed."
 msgstr ""
 
 msgid "Bignum not permitted in short literal. Immediate mode assumed."
 msgstr ""
 
-#: config/tc-vax.c:542
+#: config/tc-vax.c:550
 msgid "Can't do flonum short literal: immediate mode used."
 msgstr ""
 
 msgid "Can't do flonum short literal: immediate mode used."
 msgstr ""
 
-#: config/tc-vax.c:587
+#: config/tc-vax.c:595
 #, c-format
 msgid "A bignum/flonum may not be a displacement: 0x%lx used"
 msgstr ""
 
 #, c-format
 msgid "A bignum/flonum may not be a displacement: 0x%lx used"
 msgstr ""
 
-#: config/tc-vax.c:908
+#: config/tc-vax.c:916
 #, c-format
 msgid "Short literal overflow(%ld.), immediate mode assumed."
 msgstr ""
 
 #, c-format
 msgid "Short literal overflow(%ld.), immediate mode assumed."
 msgstr ""
 
-#: config/tc-vax.c:917
+#: config/tc-vax.c:925
 #, c-format
 msgid "Forced short literal to immediate mode. now_seg=%s to_seg=%s"
 msgstr ""
 
 #, c-format
 msgid "Forced short literal to immediate mode. now_seg=%s to_seg=%s"
 msgstr ""
 
-#: config/tc-vax.c:976
+#: config/tc-vax.c:984
 msgid "Length specification ignored. Address mode 9F used"
 msgstr ""
 
 msgid "Length specification ignored. Address mode 9F used"
 msgstr ""
 
-#: config/tc-vax.c:1025
+#: config/tc-vax.c:1033
 msgid "Invalid operand:  immediate value used as base address."
 msgstr ""
 
 msgid "Invalid operand:  immediate value used as base address."
 msgstr ""
 
-#: config/tc-vax.c:1027
+#: config/tc-vax.c:1035
 msgid "Invalid operand:  immediate value used as address."
 msgstr ""
 
 msgid "Invalid operand:  immediate value used as address."
 msgstr ""
 
-#: config/tc-vax.c:1818
+#: config/tc-vax.c:1808
 msgid "odd number of bytes in operand description"
 msgstr ""
 
 msgid "odd number of bytes in operand description"
 msgstr ""
 
-#: config/tc-vax.c:1834
+#: config/tc-vax.c:1824
 msgid "Bad operand"
 msgstr ""
 
 msgid "Bad operand"
 msgstr ""
 
-#: config/tc-vax.c:2390
+#: config/tc-vax.c:2380
 msgid "no '[' to match ']'"
 msgstr ""
 
 msgid "no '[' to match ']'"
 msgstr ""
 
-#: config/tc-vax.c:2408
+#: config/tc-vax.c:2398
 msgid "bad register in []"
 msgstr ""
 
 msgid "bad register in []"
 msgstr ""
 
-#: config/tc-vax.c:2410
+#: config/tc-vax.c:2400
 msgid "[PC] index banned"
 msgstr ""
 
 msgid "[PC] index banned"
 msgstr ""
 
-#: config/tc-vax.c:2445
+#: config/tc-vax.c:2435
 msgid "no '(' to match ')'"
 msgstr ""
 
 msgid "no '(' to match ')'"
 msgstr ""
 
-#: config/tc-vax.c:2580
+#: config/tc-vax.c:2570
 msgid "invalid branch operand"
 msgstr ""
 
 msgid "invalid branch operand"
 msgstr ""
 
-#: config/tc-vax.c:2609
+#: config/tc-vax.c:2599
 msgid "address prohibits @"
 msgstr ""
 
 msgid "address prohibits @"
 msgstr ""
 
-#: config/tc-vax.c:2611
+#: config/tc-vax.c:2601
 msgid "address prohibits #"
 msgstr ""
 
 msgid "address prohibits #"
 msgstr ""
 
-#: config/tc-vax.c:2615
+#: config/tc-vax.c:2605
 msgid "address prohibits -()"
 msgstr ""
 
 msgid "address prohibits -()"
 msgstr ""
 
-#: config/tc-vax.c:2617
+#: config/tc-vax.c:2607
 msgid "address prohibits ()+"
 msgstr ""
 
 msgid "address prohibits ()+"
 msgstr ""
 
-#: config/tc-vax.c:2620
+#: config/tc-vax.c:2610
 msgid "address prohibits ()"
 msgstr ""
 
 msgid "address prohibits ()"
 msgstr ""
 
-#: config/tc-vax.c:2622
+#: config/tc-vax.c:2612
 msgid "address prohibits []"
 msgstr ""
 
 msgid "address prohibits []"
 msgstr ""
 
-#: config/tc-vax.c:2624
+#: config/tc-vax.c:2614
 msgid "address prohibits register"
 msgstr ""
 
 msgid "address prohibits register"
 msgstr ""
 
-#: config/tc-vax.c:2626
+#: config/tc-vax.c:2616
 msgid "address prohibits displacement length specifier"
 msgstr ""
 
 msgid "address prohibits displacement length specifier"
 msgstr ""
 
-#: config/tc-vax.c:2656
+#: config/tc-vax.c:2646
 msgid "invalid operand of S^#"
 msgstr ""
 
 msgid "invalid operand of S^#"
 msgstr ""
 
-#: config/tc-vax.c:2673
+#: config/tc-vax.c:2663
 msgid "S^# needs expression"
 msgstr ""
 
 msgid "S^# needs expression"
 msgstr ""
 
-#: config/tc-vax.c:2680
+#: config/tc-vax.c:2670
 msgid "S^# may only read-access"
 msgstr ""
 
 msgid "S^# may only read-access"
 msgstr ""
 
-#: config/tc-vax.c:2705
+#: config/tc-vax.c:2695
 msgid "invalid operand of -()"
 msgstr ""
 
 msgid "invalid operand of -()"
 msgstr ""
 
-#: config/tc-vax.c:2711
+#: config/tc-vax.c:2701
 msgid "-(PC) unpredictable"
 msgstr ""
 
 msgid "-(PC) unpredictable"
 msgstr ""
 
-#: config/tc-vax.c:2713
+#: config/tc-vax.c:2703
 msgid "[]index same as -()register: unpredictable"
 msgstr ""
 
 msgid "[]index same as -()register: unpredictable"
 msgstr ""
 
-#: config/tc-vax.c:2749
+#: config/tc-vax.c:2739
 msgid "invalid operand of ()+"
 msgstr ""
 
 msgid "invalid operand of ()+"
 msgstr ""
 
-#: config/tc-vax.c:2755
+#: config/tc-vax.c:2745
 msgid "(PC)+ unpredictable"
 msgstr ""
 
 msgid "(PC)+ unpredictable"
 msgstr ""
 
-#: config/tc-vax.c:2757
+#: config/tc-vax.c:2747
 msgid "[]index same as ()+register: unpredictable"
 msgstr ""
 
 msgid "[]index same as ()+register: unpredictable"
 msgstr ""
 
-#: config/tc-vax.c:2782
+#: config/tc-vax.c:2772
 msgid "# conflicts length"
 msgstr ""
 
 msgid "# conflicts length"
 msgstr ""
 
-#: config/tc-vax.c:2784
+#: config/tc-vax.c:2774
 msgid "# bars register"
 msgstr ""
 
 msgid "# bars register"
 msgstr ""
 
-#: config/tc-vax.c:2806
+#: config/tc-vax.c:2796
 msgid "writing or modifying # is unpredictable"
 msgstr ""
 
 msgid "writing or modifying # is unpredictable"
 msgstr ""
 
-#: config/tc-vax.c:2836
+#: config/tc-vax.c:2826
 msgid "length not needed"
 msgstr ""
 
 msgid "length not needed"
 msgstr ""
 
-#: config/tc-vax.c:2843
+#: config/tc-vax.c:2833
 msgid "can't []index a register, because it has no address"
 msgstr ""
 
 msgid "can't []index a register, because it has no address"
 msgstr ""
 
-#: config/tc-vax.c:2845
+#: config/tc-vax.c:2835
 msgid "a register has no address"
 msgstr ""
 
 msgid "a register has no address"
 msgstr ""
 
-#: config/tc-vax.c:2856
+#: config/tc-vax.c:2846
 msgid "PC part of operand unpredictable"
 msgstr ""
 
 msgid "PC part of operand unpredictable"
 msgstr ""
 
-#: config/tc-vax.c:3185
+#: config/tc-vax.c:3175
 msgid ""
 "VAX options:\n"
 "-d LENGTH\t\tignored\n"
 msgid ""
 "VAX options:\n"
 "-d LENGTH\t\tignored\n"
@@ -7858,7 +7869,7 @@ msgid ""
 "-V\t\t\tignored\n"
 msgstr ""
 
 "-V\t\t\tignored\n"
 msgstr ""
 
-#: config/tc-vax.c:3194
+#: config/tc-vax.c:3184
 msgid ""
 "VMS options:\n"
 "-+\t\t\thash encode names longer than 31 characters\n"
 msgid ""
 "VMS options:\n"
 "-+\t\t\thash encode names longer than 31 characters\n"
@@ -7877,84 +7888,84 @@ msgstr ""
 msgid "syntax error after <exp"
 msgstr ""
 
 msgid "syntax error after <exp"
 msgstr ""
 
-#: config/tc-z8k.c:286
+#: config/tc-z8k.c:284
 #, c-format
 msgid "register rr%d, out of range."
 msgstr ""
 
 #, c-format
 msgid "register rr%d, out of range."
 msgstr ""
 
-#: config/tc-z8k.c:294
+#: config/tc-z8k.c:292
 #, c-format
 msgid "register rh%d, out of range."
 msgstr ""
 
 #, c-format
 msgid "register rh%d, out of range."
 msgstr ""
 
-#: config/tc-z8k.c:302
+#: config/tc-z8k.c:300
 #, c-format
 msgid "register rl%d, out of range."
 msgstr ""
 
 #, c-format
 msgid "register rl%d, out of range."
 msgstr ""
 
-#: config/tc-z8k.c:311
+#: config/tc-z8k.c:309
 #, c-format
 msgid "register rq%d, out of range."
 msgstr ""
 
 #, c-format
 msgid "register rq%d, out of range."
 msgstr ""
 
-#: config/tc-z8k.c:319
+#: config/tc-z8k.c:317
 #, c-format
 msgid "register r%d, out of range."
 msgstr ""
 
 #, c-format
 msgid "register r%d, out of range."
 msgstr ""
 
-#: config/tc-z8k.c:364
+#: config/tc-z8k.c:362
 #, c-format
 msgid "expected %c"
 msgstr ""
 
 #, c-format
 msgid "expected %c"
 msgstr ""
 
-#: config/tc-z8k.c:381
+#: config/tc-z8k.c:379
 #, c-format
 msgid "register is wrong size for a word %s"
 msgstr ""
 
 #, c-format
 msgid "register is wrong size for a word %s"
 msgstr ""
 
-#: config/tc-z8k.c:397
+#: config/tc-z8k.c:395
 #, c-format
 msgid "register is wrong size for address %s"
 msgstr ""
 
 #, c-format
 msgid "register is wrong size for address %s"
 msgstr ""
 
-#: config/tc-z8k.c:665
+#: config/tc-z8k.c:656
 msgid "Missing ) in ra(rb)"
 msgstr ""
 
 msgid "Missing ) in ra(rb)"
 msgstr ""
 
-#: config/tc-z8k.c:932
+#: config/tc-z8k.c:923
 #, c-format
 msgid "operand %s0x%x out of range."
 msgstr ""
 
 #, c-format
 msgid "operand %s0x%x out of range."
 msgstr ""
 
-#: config/tc-z8k.c:1070
+#: config/tc-z8k.c:1051
 msgid "immediate must be 1 or 2"
 msgstr ""
 
 msgid "immediate must be 1 or 2"
 msgstr ""
 
-#: config/tc-z8k.c:1073
+#: config/tc-z8k.c:1054
 msgid "immediate 1 or 2 expected"
 msgstr ""
 
 msgid "immediate 1 or 2 expected"
 msgstr ""
 
-#: config/tc-z8k.c:1099
+#: config/tc-z8k.c:1080
 msgid "can't use R0 here"
 msgstr ""
 
 msgid "can't use R0 here"
 msgstr ""
 
-#: config/tc-z8k.c:1256
+#: config/tc-z8k.c:1234
 msgid "Can't find opcode to match operands"
 msgstr ""
 
 msgid "Can't find opcode to match operands"
 msgstr ""
 
-#: config/tc-z8k.c:1371
+#: config/tc-z8k.c:1349
 #, c-format
 msgid "invalid architecture -z%s"
 msgstr ""
 
 #, c-format
 msgid "invalid architecture -z%s"
 msgstr ""
 
-#: config/tc-z8k.c:1387
+#: config/tc-z8k.c:1365
 msgid ""
 "Z8K options:\n"
 "-z8001\t\t\tgenerate segmented code\n"
 "-z8002\t\t\tgenerate unsegmented code\n"
 msgstr ""
 
 msgid ""
 "Z8K options:\n"
 "-z8001\t\t\tgenerate segmented code\n"
 "-z8002\t\t\tgenerate unsegmented code\n"
 msgstr ""
 
-#: config/tc-z8k.c:1531
+#: config/tc-z8k.c:1509
 #, c-format
 msgid "Can't subtract symbols in different sections %s %s"
 msgstr ""
 #, c-format
 msgid "Can't subtract symbols in different sections %s %s"
 msgstr ""
@@ -8191,11 +8202,11 @@ msgstr ""
 msgid ".begin/.bend in different segments"
 msgstr ""
 
 msgid ".begin/.bend in different segments"
 msgstr ""
 
-#: ecoff.c:4742
+#: ecoff.c:4743
 msgid "Missing .end or .bend at end of file"
 msgstr ""
 
 msgid "Missing .end or .bend at end of file"
 msgstr ""
 
-#: ecoff.c:5232
+#: ecoff.c:5233
 msgid "GP prologue size exceeds field size, using 0 instead"
 msgstr ""
 
 msgid "GP prologue size exceeds field size, using 0 instead"
 msgstr ""
 
@@ -8281,7 +8292,7 @@ msgstr ""
 msgid "right operand is a float; integer 0 assumed"
 msgstr ""
 
 msgid "right operand is a float; integer 0 assumed"
 msgstr ""
 
-#: expr.c:1797 symbols.c:1098
+#: expr.c:1797 symbols.c:1094
 msgid "division by zero"
 msgstr ""
 
 msgid "division by zero"
 msgstr ""
 
@@ -8708,27 +8719,27 @@ msgstr ""
 msgid "missplaced )"
 msgstr ""
 
 msgid "missplaced )"
 msgstr ""
 
-#: macro.c:978
+#: macro.c:986
 msgid "confusion in formal parameters"
 msgstr ""
 
 msgid "confusion in formal parameters"
 msgstr ""
 
-#: macro.c:983
+#: macro.c:991
 msgid "macro formal argument does not exist"
 msgstr ""
 
 msgid "macro formal argument does not exist"
 msgstr ""
 
-#: macro.c:998
+#: macro.c:1006
 msgid "can't mix positional and keyword arguments"
 msgstr ""
 
 msgid "can't mix positional and keyword arguments"
 msgstr ""
 
-#: macro.c:1006
+#: macro.c:1014
 msgid "too many positional arguments"
 msgstr ""
 
 msgid "too many positional arguments"
 msgstr ""
 
-#: macro.c:1186
+#: macro.c:1194
 msgid "unexpected end of file in irp or irpc"
 msgstr ""
 
 msgid "unexpected end of file in irp or irpc"
 msgstr ""
 
-#: macro.c:1194
+#: macro.c:1202
 msgid "missing model parameter"
 msgstr ""
 
 msgid "missing model parameter"
 msgstr ""
 
@@ -8996,11 +9007,11 @@ msgstr ""
 msgid "attempt to store value in absolute section"
 msgstr ""
 
 msgid "attempt to store value in absolute section"
 msgstr ""
 
-#: read.c:3501 read.c:4399
+#: read.c:3501 read.c:4400
 msgid "zero assumed for missing expression"
 msgstr ""
 
 msgid "zero assumed for missing expression"
 msgstr ""
 
-#: read.c:3513 read.c:4411 write.c:291
+#: read.c:3513 read.c:4412 write.c:289
 msgid "register value used as expression"
 msgstr ""
 
 msgid "register value used as expression"
 msgstr ""
 
@@ -9056,45 +9067,45 @@ msgstr ""
 msgid "unresolvable or nonpositive repeat count; using 1"
 msgstr ""
 
 msgid "unresolvable or nonpositive repeat count; using 1"
 msgstr ""
 
-#: read.c:4542
+#: read.c:4554
 msgid "Expected <nn>"
 msgstr ""
 
 #. To be compatible with BSD 4.2 as: give the luser a linefeed!!
 msgid "Expected <nn>"
 msgstr ""
 
 #. To be compatible with BSD 4.2 as: give the luser a linefeed!!
-#: read.c:4575 read.c:4661
+#: read.c:4587 read.c:4673
 msgid "Unterminated string: Newline inserted."
 msgstr ""
 
 msgid "Unterminated string: Newline inserted."
 msgstr ""
 
-#: read.c:4669
+#: read.c:4681
 msgid "Bad escaped character in string, '?' assumed"
 msgstr ""
 
 msgid "Bad escaped character in string, '?' assumed"
 msgstr ""
 
-#: read.c:4695
+#: read.c:4707
 msgid "expected address expression; zero assumed"
 msgstr ""
 
 msgid "expected address expression; zero assumed"
 msgstr ""
 
-#: read.c:4715
+#: read.c:4727
 #, c-format
 msgid "symbol \"%s\" undefined; zero assumed"
 msgstr ""
 
 #, c-format
 msgid "symbol \"%s\" undefined; zero assumed"
 msgstr ""
 
-#: read.c:4718
+#: read.c:4730
 msgid "some symbol undefined; zero assumed"
 msgstr ""
 
 msgid "some symbol undefined; zero assumed"
 msgstr ""
 
-#: read.c:4771
+#: read.c:4783
 msgid "This string may not contain '\\0'"
 msgstr ""
 
 msgid "This string may not contain '\\0'"
 msgstr ""
 
-#: read.c:4808
+#: read.c:4820
 msgid "Missing string"
 msgstr ""
 
 msgid "Missing string"
 msgstr ""
 
-#: read.c:5044
+#: read.c:5056
 msgid "missing .func"
 msgstr ""
 
 msgid "missing .func"
 msgstr ""
 
-#: read.c:5061
+#: read.c:5073
 msgid ".endfunc missing for previous .func"
 msgstr ""
 
 msgid ".endfunc missing for previous .func"
 msgstr ""
 
@@ -9131,102 +9142,106 @@ msgstr ""
 msgid "Inserting \"%s\" into symbol table failed: %s"
 msgstr ""
 
 msgid "Inserting \"%s\" into symbol table failed: %s"
 msgstr ""
 
-#: symbols.c:881
+#: symbols.c:876
 #, c-format
 msgid "Symbol definition loop encountered at %s"
 msgstr ""
 
 #, c-format
 msgid "Symbol definition loop encountered at %s"
 msgstr ""
 
-#: symbols.c:1059 symbols.c:1063
+#: symbols.c:1055 symbols.c:1059
 #, c-format
 msgid "undefined symbol %s in operation"
 msgstr ""
 
 #, c-format
 msgid "undefined symbol %s in operation"
 msgstr ""
 
-#: symbols.c:1068
+#: symbols.c:1064
 msgid "invalid section for operation"
 msgstr ""
 
 msgid "invalid section for operation"
 msgstr ""
 
-#: symbols.c:1073 symbols.c:1077
+#: symbols.c:1069 symbols.c:1073
 #, c-format
 msgid "undefined symbol %s in operation setting %s"
 msgstr ""
 
 #, c-format
 msgid "undefined symbol %s in operation setting %s"
 msgstr ""
 
-#: symbols.c:1082
+#: symbols.c:1078
 #, c-format
 msgid "invalid section for operation setting %s"
 msgstr ""
 
 #, c-format
 msgid "invalid section for operation setting %s"
 msgstr ""
 
-#: symbols.c:1100
+#: symbols.c:1096
 #, c-format
 msgid "division by zero when setting %s"
 msgstr ""
 
 #, c-format
 msgid "division by zero when setting %s"
 msgstr ""
 
-#: symbols.c:1172 write.c:2010
+#: symbols.c:1168 write.c:2009
 #, c-format
 msgid "can't resolve value for symbol \"%s\""
 msgstr ""
 
 #, c-format
 msgid "can't resolve value for symbol \"%s\""
 msgstr ""
 
-#: symbols.c:1566
+#: symbols.c:1562
 #, c-format
 msgid "\"%d\" (instance number %d of a %s label)"
 msgstr ""
 
 #, c-format
 msgid "\"%d\" (instance number %d of a %s label)"
 msgstr ""
 
-#: symbols.c:1603
+#: symbols.c:1599
 #, c-format
 msgid "Attempt to get value of unresolved symbol %s"
 msgstr ""
 
 #, c-format
 msgid "Attempt to get value of unresolved symbol %s"
 msgstr ""
 
-#: write.c:177
+#: symbols.c:1835
+msgid "Section symbols are already global"
+msgstr ""
+
+#: write.c:175
 #, c-format
 msgid "field fx_size too small to hold %d"
 msgstr ""
 
 #, c-format
 msgid "field fx_size too small to hold %d"
 msgstr ""
 
-#: write.c:318
+#: write.c:316
 msgid "rva not supported"
 msgstr ""
 
 msgid "rva not supported"
 msgstr ""
 
-#: write.c:526
+#: write.c:524
 #, c-format
 msgid "attempt to .org/.space backwards? (%ld)"
 msgstr ""
 
 #, c-format
 msgid "attempt to .org/.space backwards? (%ld)"
 msgstr ""
 
-#: write.c:1028
+#: write.c:1026
 msgid "relocation out of range"
 msgstr ""
 
 msgid "relocation out of range"
 msgstr ""
 
-#: write.c:1031
+#: write.c:1029
 #, c-format
 msgid "%s:%u: bad return from bfd_install_relocation: %x"
 msgstr ""
 
 #, c-format
 msgid "%s:%u: bad return from bfd_install_relocation: %x"
 msgstr ""
 
-#: write.c:1076
+#: write.c:1074
 msgid "internal error: fixup not contained within frag"
 msgstr ""
 
 msgid "internal error: fixup not contained within frag"
 msgstr ""
 
-#: write.c:1092
+#: write.c:1090
 #, c-format
 msgid "%s:%u: bad return from bfd_install_relocation"
 msgstr ""
 
 #, c-format
 msgid "%s:%u: bad return from bfd_install_relocation"
 msgstr ""
 
-#: write.c:1179 write.c:1203
+#: write.c:1177 write.c:1201
 #, c-format
 msgid "FATAL: Can't write %s"
 msgstr ""
 
 #, c-format
 msgid "FATAL: Can't write %s"
 msgstr ""
 
-#: write.c:1235
+#: write.c:1233
 msgid "Cannot write to output file."
 msgstr ""
 
 msgid "Cannot write to output file."
 msgstr ""
 
-#: write.c:1484
+#: write.c:1482
 #, c-format
 msgid "%d error%s, %d warning%s, generating bad object file.\n"
 msgstr ""
 
 #, c-format
 msgid "%d error%s, %d warning%s, generating bad object file.\n"
 msgstr ""
 
-#: write.c:1491
+#: write.c:1489
 #, c-format
 msgid "%d error%s, %d warning%s, no object file generated.\n"
 msgstr ""
 
 #, c-format
 msgid "%d error%s, %d warning%s, no object file generated.\n"
 msgstr ""
 
-#: write.c:1947
+#: write.c:1946
 #, c-format
 msgid "local label %s is not defined"
 msgstr ""
 #, c-format
 msgid "local label %s is not defined"
 msgstr ""
@@ -9236,31 +9251,31 @@ msgstr ""
 msgid "alignment padding (%lu bytes) not a multiple of %ld"
 msgstr ""
 
 msgid "alignment padding (%lu bytes) not a multiple of %ld"
 msgstr ""
 
-#: write.c:2357
+#: write.c:2358
 #, c-format
 msgid ".word %s-%s+%s didn't fit"
 msgstr ""
 
 #, c-format
 msgid ".word %s-%s+%s didn't fit"
 msgstr ""
 
-#: write.c:2438
+#: write.c:2439
 msgid "attempt to .org backwards ignored"
 msgstr ""
 
 msgid "attempt to .org backwards ignored"
 msgstr ""
 
-#: write.c:2462
+#: write.c:2467
 msgid ".space specifies non-absolute value"
 msgstr ""
 
 msgid ".space specifies non-absolute value"
 msgstr ""
 
-#: write.c:2466
+#: write.c:2474
 msgid ".space or .fill with negative value, ignored"
 msgstr ""
 
 msgid ".space or .fill with negative value, ignored"
 msgstr ""
 
-#: write.c:2721
+#: write.c:2730
 #, c-format
 msgid ""
 "Subtraction of two symbols in different sections \"%s\" {%s section} - "
 "\"%s\" {%s section} at file address %s."
 msgstr ""
 
 #, c-format
 msgid ""
 "Subtraction of two symbols in different sections \"%s\" {%s section} - "
 "\"%s\" {%s section} at file address %s."
 msgstr ""
 
-#: write.c:2875
+#: write.c:2884
 #, c-format
 msgid "Value of %s too large for field of %d bytes at %s"
 msgstr ""
 #, c-format
 msgid "Value of %s too large for field of %d bytes at %s"
 msgstr ""
index a57e13d56f3d71335154c874ef6b283e07c59b74..16e17e22e367c204b18939df87092f087a9b51e4 100644 (file)
@@ -1,3 +1,11 @@
+2001-06-18  H.J. Lu <hjl@gnu.org>
+
+        * Makefile.am (diststuff): Add $(MANS).
+        (gprof.1): Remove the prefix `$(srcdir)/'.
+        * Makefile.in: Regenerated.
+
+        * gprof.1: Removed.
+
 2001-06-12  Ben Elliston  <bje@redhat.com>
 
        * gprof.texi (File Format): Profile data files are stored in
 2001-06-12  Ben Elliston  <bje@redhat.com>
 
        * gprof.texi (File Format): Profile data files are stored in
index 4e311d4384dcdbfb2b48dabe3bccfa9e9d51c5ba..24acf1c8ebfe9aac9627f4a539d672f343551599 100644 (file)
@@ -33,11 +33,10 @@ noinst_HEADERS = \
        corefile.h gmon.h gmon_io.h gmon_out.h gprof.h hertz.h hist.h \
        search_list.h source.h sym_ids.h symtab.h utils.h
 
        corefile.h gmon.h gmon_io.h gmon_out.h gprof.h hertz.h hist.h \
        search_list.h source.h sym_ids.h symtab.h utils.h
 
-EXTRA_DIST = flat_bl.c bsd_callg_bl.c fsf_callg_bl.c bbconv.pl
-
 BUILT_SOURCES = flat_bl.c bsd_callg_bl.c fsf_callg_bl.c
 BUILT_SOURCES = flat_bl.c bsd_callg_bl.c fsf_callg_bl.c
+EXTRA_DIST    = $(BUILT_SOURCES) bbconv.pl $(man_MANS)
 
 
-diststuff: $(BUILT_SOURCES) info
+diststuff: $(BUILT_SOURCES) info $(man_MANS)
 
 .m.c:
        awk -f $(srcdir)/gen-c-prog.awk > ./$*.c \
 
 .m.c:
        awk -f $(srcdir)/gen-c-prog.awk > ./$*.c \
@@ -61,13 +60,13 @@ man_MANS = gprof.1
 # Build the man page from the texinfo file
 # The sed command removes the no-adjust Nroff command so that
 # the man output looks standard.
 # Build the man page from the texinfo file
 # The sed command removes the no-adjust Nroff command so that
 # the man output looks standard.
-$(srcdir)/gprof.1: $(srcdir)/gprof.texi
-       touch $(srcdir)/gprof.1
+gprof.1: $(srcdir)/gprof.texi
+       touch $@
        -$(TEXI2POD) $(MANCONF) -Dgprof < $(srcdir)/gprof.texi > gprof.pod
        -($(POD2MAN) gprof.pod | \
        -$(TEXI2POD) $(MANCONF) -Dgprof < $(srcdir)/gprof.texi > gprof.pod
        -($(POD2MAN) gprof.pod | \
-               sed -e '/^.if n .na/d' > $(srcdir)/gprof.1.T$$$$ && \
-               mv -f $(srcdir)/gprof.1.T$$$$ $(srcdir)/gprof.1) || \
-               (rm -f $(srcdir)/gprof.1.T$$$$ && exit 1)
+              sed -e '/^.if n .na/d' > $@.T$$$$ && \
+              mv -f $@.T$$$$ $@) || \
+              (rm -f $@.T$$$$ && exit 1)
        rm -f gprof.pod
 
 # Targets to rebuild dependencies in this Makefile.
        rm -f gprof.pod
 
 # Targets to rebuild dependencies in this Makefile.
index aca02113956d99e4c49fcfdf431e577d27c20e8b..dc060131b2e57ce0fb52858feff2375036ace83f 100644 (file)
@@ -135,9 +135,8 @@ noinst_HEADERS = \
        search_list.h source.h sym_ids.h symtab.h utils.h
 
 
        search_list.h source.h sym_ids.h symtab.h utils.h
 
 
-EXTRA_DIST = flat_bl.c bsd_callg_bl.c fsf_callg_bl.c bbconv.pl
-
 BUILT_SOURCES = flat_bl.c bsd_callg_bl.c fsf_callg_bl.c
 BUILT_SOURCES = flat_bl.c bsd_callg_bl.c fsf_callg_bl.c
+EXTRA_DIST = $(BUILT_SOURCES) bbconv.pl $(man_MANS)
 
 POTFILES = $(sources) $(noinst_HEADERS)
 
 
 POTFILES = $(sources) $(noinst_HEADERS)
 
@@ -193,7 +192,7 @@ acconfig.h acinclude.m4 aclocal.m4 configure configure.in gconfig.in
 
 DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
 
 
 DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
 
-TAR = tar
+TAR = gtar
 GZIP_ENV = --best
 SOURCES = $(gprof_SOURCES)
 OBJECTS = $(gprof_OBJECTS)
 GZIP_ENV = --best
 SOURCES = $(gprof_SOURCES)
 OBJECTS = $(gprof_OBJECTS)
@@ -712,7 +711,7 @@ distclean-generic clean-generic maintainer-clean-generic clean \
 mostlyclean distclean maintainer-clean
 
 
 mostlyclean distclean maintainer-clean
 
 
-diststuff: $(BUILT_SOURCES) info
+diststuff: $(BUILT_SOURCES) info $(man_MANS)
 
 .m.c:
        awk -f $(srcdir)/gen-c-prog.awk > ./$*.c \
 
 .m.c:
        awk -f $(srcdir)/gen-c-prog.awk > ./$*.c \
@@ -725,13 +724,13 @@ po/POTFILES.in: @MAINT@ Makefile
 # Build the man page from the texinfo file
 # The sed command removes the no-adjust Nroff command so that
 # the man output looks standard.
 # Build the man page from the texinfo file
 # The sed command removes the no-adjust Nroff command so that
 # the man output looks standard.
-$(srcdir)/gprof.1: $(srcdir)/gprof.texi
-       touch $(srcdir)/gprof.1
+gprof.1: $(srcdir)/gprof.texi
+       touch $@
        -$(TEXI2POD) $(MANCONF) -Dgprof < $(srcdir)/gprof.texi > gprof.pod
        -($(POD2MAN) gprof.pod | \
        -$(TEXI2POD) $(MANCONF) -Dgprof < $(srcdir)/gprof.texi > gprof.pod
        -($(POD2MAN) gprof.pod | \
-               sed -e '/^.if n .na/d' > $(srcdir)/gprof.1.T$$$$ && \
-               mv -f $(srcdir)/gprof.1.T$$$$ $(srcdir)/gprof.1) || \
-               (rm -f $(srcdir)/gprof.1.T$$$$ && exit 1)
+              sed -e '/^.if n .na/d' > $@.T$$$$ && \
+              mv -f $@.T$$$$ $@) || \
+              (rm -f $@.T$$$$ && exit 1)
        rm -f gprof.pod
 
 # Targets to rebuild dependencies in this Makefile.
        rm -f gprof.pod
 
 # Targets to rebuild dependencies in this Makefile.
diff --git a/gprof/gprof.1 b/gprof/gprof.1
deleted file mode 100644 (file)
index fd8effc..0000000
+++ /dev/null
@@ -1,593 +0,0 @@
-.\" Automatically generated by Pod::Man version 1.02
-.\" Tue Jun 12 14:06:00 2001
-.\"
-.\" 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 Ip \" List item
-.br
-.ie \\n(.$>=3 .ne \\$3
-.el .ne 3
-.IP "\\$1" \\$2
-..
-.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.
-.bd B 3
-.    \" 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 "GPROF 1"
-.TH GPROF 1 "binutils-2.11.90" "2001-06-12" "GNU"
-.UC
-.SH "NAME"
-gprof \- display call graph profile data
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-gprof [ \-[abcDhilLsTvwxyz] ] [ \-[ACeEfFJnNOpPqQZ][\fIname\fR] ] 
- [ \-I \fIdirs\fR ] [ \-d[\fInum\fR] ] [ \-k \fIfrom/to\fR ]
- [ \-m \fImin-count\fR ] [ \-t \fItable-length\fR ]
- [ \-\-[no-]annotated-source[=\fIname\fR] ] 
- [ \-\-[no-]exec-counts[=\fIname\fR] ]
- [ \-\-[no-]flat-profile[=\fIname\fR] ] [ \-\-[no-]graph[=\fIname\fR] ]
- [ \-\-[no-]time=\fIname\fR] [ \-\-all-lines ] [ \-\-brief ] 
- [ \-\-debug[=\fIlevel\fR] ] [ \-\-function-ordering ] 
- [ \-\-file-ordering ] [ \-\-directory-path=\fIdirs\fR ]
- [ \-\-display-unused-functions ] [ \-\-file-format=\fIname\fR ]
- [ \-\-file-info ] [ \-\-help ] [ \-\-line ] [ \-\-min-count=\fIn\fR ]
- [ \-\-no-static ] [ \-\-print-path ] [ \-\-separate-files ]
- [ \-\-static-call-graph ] [ \-\-sum ] [ \-\-table-length=\fIlen\fR ]
- [ \-\-traditional ] [ \-\-version ] [ \-\-width=\fIn\fR ]
- [ \-\-ignore-non-functions ] [ \-\-demangle[=\fI\s-1STYLE\s0\fR] ]
- [ \-\-no-demangle ] [ \fIimage-file\fR ] [ \fIprofile-file\fR ... ]
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-\&\f(CW\*(C`gprof\*(C'\fR produces an execution profile of C, Pascal, or Fortran77 
-programs.  The effect of called routines is incorporated in the profile 
-of each caller.  The profile data is taken from the call graph profile file
-(\fIgmon.out\fR default) which is created by programs
-that are compiled with the \fB\-pg\fR option of
-\&\f(CW\*(C`cc\*(C'\fR, \f(CW\*(C`pc\*(C'\fR, and \f(CW\*(C`f77\*(C'\fR.
-The \fB\-pg\fR option also links in versions of the library routines
-that are compiled for profiling.  \f(CW\*(C`Gprof\*(C'\fR reads the given object 
-file (the default is \f(CW\*(C`a.out\*(C'\fR) and establishes the relation between
-its symbol table and the call graph profile from \fIgmon.out\fR.
-If more than one profile file is specified, the \f(CW\*(C`gprof\*(C'\fR
-output shows the sum of the profile information in the given profile files.
-.PP
-\&\f(CW\*(C`Gprof\*(C'\fR calculates the amount of time spent in each routine.
-Next, these times are propagated along the edges of the call graph.
-Cycles are discovered, and calls into a cycle are made to share the time
-of the cycle.
-.PP
-Several forms of output are available from the analysis.
-.PP
-The \fIflat profile\fR shows how much time your program spent in each function,
-and how many times that function was called.  If you simply want to know
-which functions burn most of the cycles, it is stated concisely here.
-.PP
-The \fIcall graph\fR shows, for each function, which functions called it, which
-other functions it called, and how many times.  There is also an estimate
-of how much time was spent in the subroutines of each function.  This can
-suggest places where you might try to eliminate function calls that use a
-lot of time.  
-.PP
-The \fIannotated source\fR listing is a copy of the program's
-source code, labeled with the number of times each line of the
-program was executed.  
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-These options specify which of several output formats
-\&\f(CW\*(C`gprof\*(C'\fR should produce.
-.PP
-Many of these options take an optional \fIsymspec\fR to specify
-functions to be included or excluded.  These options can be
-specified multiple times, with different symspecs, to include
-or exclude sets of symbols.  
-.PP
-Specifying any of these options overrides the default (\fB\-p \-q\fR),
-which prints a flat profile and call graph analysis
-for all functions.
-.Ip "\f(CW\*(C`\-A[\f(CIsymspec\f(CW]\*(C'\fR" 4
-.IX Item "-A[symspec]"
-.Ip "\f(CW\*(C`\-\-annotated\-source[=\f(CIsymspec\f(CW]\*(C'\fR" 4
-.IX Item "--annotated-source[=symspec]"
-The \fB\-A\fR option causes \f(CW\*(C`gprof\*(C'\fR to print annotated source code.
-If \fIsymspec\fR is specified, print output only for matching symbols.
-.Ip "\f(CW\*(C`\-b\*(C'\fR" 4
-.IX Item "-b"
-.Ip "\f(CW\*(C`\-\-brief\*(C'\fR" 4
-.IX Item "--brief"
-If the \fB\-b\fR option is given, \f(CW\*(C`gprof\*(C'\fR doesn't print the
-verbose blurbs that try to explain the meaning of all of the fields in
-the tables.  This is useful if you intend to print out the output, or
-are tired of seeing the blurbs.
-.Ip "\f(CW\*(C`\-C[\f(CIsymspec\f(CW]\*(C'\fR" 4
-.IX Item "-C[symspec]"
-.Ip "\f(CW\*(C`\-\-exec\-counts[=\f(CIsymspec\f(CW]\*(C'\fR" 4
-.IX Item "--exec-counts[=symspec]"
-The \fB\-C\fR option causes \f(CW\*(C`gprof\*(C'\fR to
-print a tally of functions and the number of times each was called.
-If \fIsymspec\fR is specified, print tally only for matching symbols.
-.Sp
-If the profile data file contains basic-block count records, specifying
-the \fB\-l\fR option, along with \fB\-C\fR, will cause basic-block
-execution counts to be tallied and displayed.
-.Ip "\f(CW\*(C`\-i\*(C'\fR" 4
-.IX Item "-i"
-.Ip "\f(CW\*(C`\-\-file\-info\*(C'\fR" 4
-.IX Item "--file-info"
-The \fB\-i\fR option causes \f(CW\*(C`gprof\*(C'\fR to display summary information
-about the profile data \fIfile\fR\|(s) and then exit.  The number of histogram,
-call graph, and basic-block count records is displayed.
-.Ip "\f(CW\*(C`\-I \f(CIdirs\f(CW\*(C'\fR" 4
-.IX Item "-I dirs"
-.Ip "\f(CW\*(C`\-\-directory\-path=\f(CIdirs\f(CW\*(C'\fR" 4
-.IX Item "--directory-path=dirs"
-The \fB\-I\fR option specifies a list of search directories in
-which to find source files.  Environment variable \fI\s-1GPROF_PATH\s0\fR
-can also be used to convey this information.
-Used mostly for annotated source output.
-.Ip "\f(CW\*(C`\-J[\f(CIsymspec\f(CW]\*(C'\fR" 4
-.IX Item "-J[symspec]"
-.Ip "\f(CW\*(C`\-\-no\-annotated\-source[=\f(CIsymspec\f(CW]\*(C'\fR" 4
-.IX Item "--no-annotated-source[=symspec]"
-The \fB\-J\fR option causes \f(CW\*(C`gprof\*(C'\fR not to
-print annotated source code.
-If \fIsymspec\fR is specified, \f(CW\*(C`gprof\*(C'\fR prints annotated source,
-but excludes matching symbols.
-.Ip "\f(CW\*(C`\-L\*(C'\fR" 4
-.IX Item "-L"
-.Ip "\f(CW\*(C`\-\-print\-path\*(C'\fR" 4
-.IX Item "--print-path"
-Normally, source filenames are printed with the path
-component suppressed.  The \fB\-L\fR option causes \f(CW\*(C`gprof\*(C'\fR
-to print the full pathname of
-source filenames, which is determined
-from symbolic debugging information in the image file
-and is relative to the directory in which the compiler
-was invoked.
-.Ip "\f(CW\*(C`\-p[\f(CIsymspec\f(CW]\*(C'\fR" 4
-.IX Item "-p[symspec]"
-.Ip "\f(CW\*(C`\-\-flat\-profile[=\f(CIsymspec\f(CW]\*(C'\fR" 4
-.IX Item "--flat-profile[=symspec]"
-The \fB\-p\fR option causes \f(CW\*(C`gprof\*(C'\fR to print a flat profile.
-If \fIsymspec\fR is specified, print flat profile only for matching symbols.
-.Ip "\f(CW\*(C`\-P[\f(CIsymspec\f(CW]\*(C'\fR" 4
-.IX Item "-P[symspec]"
-.Ip "\f(CW\*(C`\-\-no\-flat\-profile[=\f(CIsymspec\f(CW]\*(C'\fR" 4
-.IX Item "--no-flat-profile[=symspec]"
-The \fB\-P\fR option causes \f(CW\*(C`gprof\*(C'\fR to suppress printing a flat profile.
-If \fIsymspec\fR is specified, \f(CW\*(C`gprof\*(C'\fR prints a flat profile,
-but excludes matching symbols.
-.Ip "\f(CW\*(C`\-q[\f(CIsymspec\f(CW]\*(C'\fR" 4
-.IX Item "-q[symspec]"
-.Ip "\f(CW\*(C`\-\-graph[=\f(CIsymspec\f(CW]\*(C'\fR" 4
-.IX Item "--graph[=symspec]"
-The \fB\-q\fR option causes \f(CW\*(C`gprof\*(C'\fR to print the call graph analysis.
-If \fIsymspec\fR is specified, print call graph only for matching symbols
-and their children.
-.Ip "\f(CW\*(C`\-Q[\f(CIsymspec\f(CW]\*(C'\fR" 4
-.IX Item "-Q[symspec]"
-.Ip "\f(CW\*(C`\-\-no\-graph[=\f(CIsymspec\f(CW]\*(C'\fR" 4
-.IX Item "--no-graph[=symspec]"
-The \fB\-Q\fR option causes \f(CW\*(C`gprof\*(C'\fR to suppress printing the
-call graph.
-If \fIsymspec\fR is specified, \f(CW\*(C`gprof\*(C'\fR prints a call graph,
-but excludes matching symbols.
-.Ip "\f(CW\*(C`\-y\*(C'\fR" 4
-.IX Item "-y"
-.Ip "\f(CW\*(C`\-\-separate\-files\*(C'\fR" 4
-.IX Item "--separate-files"
-This option affects annotated source output only.
-Normally, \f(CW\*(C`gprof\*(C'\fR prints annotated source files
-to standard-output.  If this option is specified,
-annotated source for a file named \fIpath/\fIfilename\fI\fR
-is generated in the file \fI\fIfilename\fI\-ann\fR.  If the underlying
-filesystem would truncate \fI\fIfilename\fI\-ann\fR so that it
-overwrites the original \fI\fIfilename\fI\fR, \f(CW\*(C`gprof\*(C'\fR generates
-annotated source in the file \fI\fIfilename\fI.ann\fR instead (if the
-original file name has an extension, that extension is \fIreplaced\fR
-with \fI.ann\fR).
-.Ip "\f(CW\*(C`\-Z[\f(CIsymspec\f(CW]\*(C'\fR" 4
-.IX Item "-Z[symspec]"
-.Ip "\f(CW\*(C`\-\-no\-exec\-counts[=\f(CIsymspec\f(CW]\*(C'\fR" 4
-.IX Item "--no-exec-counts[=symspec]"
-The \fB\-Z\fR option causes \f(CW\*(C`gprof\*(C'\fR not to
-print a tally of functions and the number of times each was called.
-If \fIsymspec\fR is specified, print tally, but exclude matching symbols.
-.Ip "\f(CW\*(C`\-\-function\-ordering\*(C'\fR" 4
-.IX Item "--function-ordering"
-The \fB\*(--function-ordering\fR option causes \f(CW\*(C`gprof\*(C'\fR to print a
-suggested function ordering for the program based on profiling data.
-This option suggests an ordering which may improve paging, tlb and
-cache behavior for the program on systems which support arbitrary
-ordering of functions in an executable.
-.Sp
-The exact details of how to force the linker to place functions
-in a particular order is system dependent and out of the scope of this
-manual.
-.Ip "\f(CW\*(C`\-\-file\-ordering \f(CImap_file\f(CW\*(C'\fR" 4
-.IX Item "--file-ordering map_file"
-The \fB\*(--file-ordering\fR option causes \f(CW\*(C`gprof\*(C'\fR to print a
-suggested .o link line ordering for the program based on profiling data.
-This option suggests an ordering which may improve paging, tlb and
-cache behavior for the program on systems which do not support arbitrary
-ordering of functions in an executable.
-.Sp
-Use of the \fB\-a\fR argument is highly recommended with this option.
-.Sp
-The \fImap_file\fR argument is a pathname to a file which provides
-function name to object file mappings.  The format of the file is similar to
-the output of the program \f(CW\*(C`nm\*(C'\fR.
-.Sp
-.Vb 8
-\&        c-parse.o:00000000 T yyparse
-\&        c-parse.o:00000004 C yyerrflag
-\&        c-lang.o:00000000 T maybe_objc_method_name
-\&        c-lang.o:00000000 T print_lang_statistics
-\&        c-lang.o:00000000 T recognize_objc_keyword
-\&        c-decl.o:00000000 T print_lang_identifier
-\&        c-decl.o:00000000 T print_lang_type
-\&        ...
-.Ve
-To create a \fImap_file\fR with \s-1GNU\s0 \f(CW\*(C`nm\*(C'\fR, type a command like
-\&\f(CW\*(C`nm \-\-extern\-only \-\-defined\-only \-v \-\-print\-file\-name program\-name\*(C'\fR.
-.Ip "\f(CW\*(C`\-T\*(C'\fR" 4
-.IX Item "-T"
-.Ip "\f(CW\*(C`\-\-traditional\*(C'\fR" 4
-.IX Item "--traditional"
-The \fB\-T\fR option causes \f(CW\*(C`gprof\*(C'\fR to print its output in
-``traditional'' \s-1BSD\s0 style.
-.Ip "\f(CW\*(C`\-w \f(CIwidth\f(CW\*(C'\fR" 4
-.IX Item "-w width"
-.Ip "\f(CW\*(C`\-\-width=\f(CIwidth\f(CW\*(C'\fR" 4
-.IX Item "--width=width"
-Sets width of output lines to \fIwidth\fR.
-Currently only used when printing the function index at the bottom
-of the call graph.
-.Ip "\f(CW\*(C`\-x\*(C'\fR" 4
-.IX Item "-x"
-.Ip "\f(CW\*(C`\-\-all\-lines\*(C'\fR" 4
-.IX Item "--all-lines"
-This option affects annotated source output only.
-By default, only the lines at the beginning of a basic-block
-are annotated.  If this option is specified, every line in
-a basic-block is annotated by repeating the annotation for the
-first line.  This behavior is similar to \f(CW\*(C`tcov\*(C'\fR's \fB\-a\fR.
-.Ip "\f(CW\*(C`\-\-demangle[=\f(CIstyle\f(CW]\*(C'\fR" 4
-.IX Item "--demangle[=style]"
-.Ip "\f(CW\*(C`\-\-no\-demangle\*(C'\fR" 4
-.IX Item "--no-demangle"
-These options control whether \*(C+ symbol names should be demangled when
-printing output.  The default is to demangle symbols.  The
-\&\f(CW\*(C`\-\-no\-demangle\*(C'\fR option may be used to turn off demangling. Different 
-compilers have different mangling styles.  The optional demangling style 
-argument can be used to choose an appropriate demangling style for your 
-compiler.
-.Sh "Analysis Options"
-.IX Subsection "Analysis Options"
-.Ip "\f(CW\*(C`\-a\*(C'\fR" 4
-.IX Item "-a"
-.Ip "\f(CW\*(C`\-\-no\-static\*(C'\fR" 4
-.IX Item "--no-static"
-The \fB\-a\fR option causes \f(CW\*(C`gprof\*(C'\fR to suppress the printing of
-statically declared (private) functions.  (These are functions whose
-names are not listed as global, and which are not visible outside the
-file/function/block where they were defined.)  Time spent in these
-functions, calls to/from them, etc, will all be attributed to the
-function that was loaded directly before it in the executable file.
-This option affects both the flat profile and the call graph.
-.Ip "\f(CW\*(C`\-c\*(C'\fR" 4
-.IX Item "-c"
-.Ip "\f(CW\*(C`\-\-static\-call\-graph\*(C'\fR" 4
-.IX Item "--static-call-graph"
-The \fB\-c\fR option causes the call graph of the program to be
-augmented by a heuristic which examines the text space of the object
-file and identifies function calls in the binary machine code.
-Since normal call graph records are only generated when functions are
-entered, this option identifies children that could have been called,
-but never were.  Calls to functions that were not compiled with
-profiling enabled are also identified, but only if symbol table
-entries are present for them.
-Calls to dynamic library routines are typically \fInot\fR found
-by this option.
-Parents or children identified via this heuristic
-are indicated in the call graph with call counts of \fB0\fR.
-.Ip "\f(CW\*(C`\-D\*(C'\fR" 4
-.IX Item "-D"
-.Ip "\f(CW\*(C`\-\-ignore\-non\-functions\*(C'\fR" 4
-.IX Item "--ignore-non-functions"
-The \fB\-D\fR option causes \f(CW\*(C`gprof\*(C'\fR to ignore symbols which
-are not known to be functions.  This option will give more accurate
-profile data on systems where it is supported (Solaris and \s-1HPUX\s0 for
-example).
-.Ip "\f(CW\*(C`\-k \f(CIfrom\f(CW/\f(CIto\f(CW\*(C'\fR" 4
-.IX Item "-k from/to"
-The \fB\-k\fR option allows you to delete from the call graph any arcs from
-symbols matching symspec \fIfrom\fR to those matching symspec \fIto\fR.
-.Ip "\f(CW\*(C`\-l\*(C'\fR" 4
-.IX Item "-l"
-.Ip "\f(CW\*(C`\-\-line\*(C'\fR" 4
-.IX Item "--line"
-The \fB\-l\fR option enables line-by-line profiling, which causes
-histogram hits to be charged to individual source code lines,
-instead of functions.
-If the program was compiled with basic-block counting enabled,
-this option will also identify how many times each line of
-code was executed.
-While line-by-line profiling can help isolate where in a large function
-a program is spending its time, it also significantly increases
-the running time of \f(CW\*(C`gprof\*(C'\fR, and magnifies statistical
-inaccuracies.
-.Ip "\f(CW\*(C`\-m \f(CInum\f(CW\*(C'\fR" 4
-.IX Item "-m num"
-.Ip "\f(CW\*(C`\-\-min\-count=\f(CInum\f(CW\*(C'\fR" 4
-.IX Item "--min-count=num"
-This option affects execution count output only.
-Symbols that are executed less than \fInum\fR times are suppressed.
-.Ip "\f(CW\*(C`\-n[\f(CIsymspec\f(CW]\*(C'\fR" 4
-.IX Item "-n[symspec]"
-.Ip "\f(CW\*(C`\-\-time[=\f(CIsymspec\f(CW]\*(C'\fR" 4
-.IX Item "--time[=symspec]"
-The \fB\-n\fR option causes \f(CW\*(C`gprof\*(C'\fR, in its call graph analysis,
-to only propagate times for symbols matching \fIsymspec\fR.
-.Ip "\f(CW\*(C`\-N[\f(CIsymspec\f(CW]\*(C'\fR" 4
-.IX Item "-N[symspec]"
-.Ip "\f(CW\*(C`\-\-no\-time[=\f(CIsymspec\f(CW]\*(C'\fR" 4
-.IX Item "--no-time[=symspec]"
-The \fB\-n\fR option causes \f(CW\*(C`gprof\*(C'\fR, in its call graph analysis,
-not to propagate times for symbols matching \fIsymspec\fR.
-.Ip "\f(CW\*(C`\-z\*(C'\fR" 4
-.IX Item "-z"
-.Ip "\f(CW\*(C`\-\-display\-unused\-functions\*(C'\fR" 4
-.IX Item "--display-unused-functions"
-If you give the \fB\-z\fR option, \f(CW\*(C`gprof\*(C'\fR will mention all
-functions in the flat profile, even those that were never called, and
-that had no time spent in them.  This is useful in conjunction with the
-\&\fB\-c\fR option for discovering which routines were never called.
-.Sh "Miscellaneous Options"
-.IX Subsection "Miscellaneous Options"
-.Ip "\f(CW\*(C`\-d[\f(CInum\f(CW]\*(C'\fR" 4
-.IX Item "-d[num]"
-.Ip "\f(CW\*(C`\-\-debug[=\f(CInum\f(CW]\*(C'\fR" 4
-.IX Item "--debug[=num]"
-The \fB\-d\fR \fInum\fR option specifies debugging options.
-If \fInum\fR is not specified, enable all debugging.
-.Ip "\f(CW\*(C`\-O\f(CIname\f(CW\*(C'\fR" 4
-.IX Item "-Oname"
-.Ip "\f(CW\*(C`\-\-file\-format=\f(CIname\f(CW\*(C'\fR" 4
-.IX Item "--file-format=name"
-Selects the format of the profile data files.  Recognized formats are
-\&\fBauto\fR (the default), \fBbsd\fR, \fB4.4bsd\fR, \fBmagic\fR, and
-\&\fBprof\fR (not yet supported).
-.Ip "\f(CW\*(C`\-s\*(C'\fR" 4
-.IX Item "-s"
-.Ip "\f(CW\*(C`\-\-sum\*(C'\fR" 4
-.IX Item "--sum"
-The \fB\-s\fR option causes \f(CW\*(C`gprof\*(C'\fR to summarize the information
-in the profile data files it read in, and write out a profile data
-file called \fIgmon.sum\fR, which contains all the information from
-the profile data files that \f(CW\*(C`gprof\*(C'\fR read in.  The file \fIgmon.sum\fR
-may be one of the specified input files; the effect of this is to
-merge the data in the other input files into \fIgmon.sum\fR.
-.Sp
-Eventually you can run \f(CW\*(C`gprof\*(C'\fR again without \fB\-s\fR to analyze the
-cumulative data in the file \fIgmon.sum\fR.
-.Ip "\f(CW\*(C`\-v\*(C'\fR" 4
-.IX Item "-v"
-.Ip "\f(CW\*(C`\-\-version\*(C'\fR" 4
-.IX Item "--version"
-The \fB\-v\fR flag causes \f(CW\*(C`gprof\*(C'\fR to print the current version
-number, and then exit.
-.Sh "Deprecated Options"
-.IX Subsection "Deprecated Options"
-These options have been replaced with newer versions that use symspecs.
-.Ip "\f(CW\*(C`\-e \f(CIfunction_name\f(CW\*(C'\fR" 4
-.IX Item "-e function_name"
-The \fB\-e\fR \fIfunction\fR option tells \f(CW\*(C`gprof\*(C'\fR to not print
-information about the function \fIfunction_name\fR (and its
-children...) in the call graph.  The function will still be listed
-as a child of any functions that call it, but its index number will be
-shown as \fB[not printed]\fR.  More than one \fB\-e\fR option may be
-given; only one \fIfunction_name\fR may be indicated with each \fB\-e\fR
-option. 
-.Ip "\f(CW\*(C`\-E \f(CIfunction_name\f(CW\*(C'\fR" 4
-.IX Item "-E function_name"
-The \f(CW\*(C`\-E \f(CIfunction\f(CW\*(C'\fR option works like the \f(CW\*(C`\-e\*(C'\fR option, but
-time spent in the function (and children who were not called from
-anywhere else), will not be used to compute the percentages-of-time for
-the call graph.  More than one \fB\-E\fR option may be given; only one
-\&\fIfunction_name\fR may be indicated with each \fB\-E\fR option.
-.Ip "\f(CW\*(C`\-f \f(CIfunction_name\f(CW\*(C'\fR" 4
-.IX Item "-f function_name"
-The \fB\-f\fR \fIfunction\fR option causes \f(CW\*(C`gprof\*(C'\fR to limit the
-call graph to the function \fIfunction_name\fR and its children (and
-their children...).  More than one \fB\-f\fR option may be given;
-only one \fIfunction_name\fR may be indicated with each \fB\-f\fR
-option.  
-.Ip "\f(CW\*(C`\-F \f(CIfunction_name\f(CW\*(C'\fR" 4
-.IX Item "-F function_name"
-The \fB\-F\fR \fIfunction\fR option works like the \f(CW\*(C`\-f\*(C'\fR option, but
-only time spent in the function and its children (and their
-children...) will be used to determine total-time and
-percentages-of-time for the call graph.  More than one \fB\-F\fR option
-may be given; only one \fIfunction_name\fR may be indicated with each
-\&\fB\-F\fR option.  The \fB\-F\fR option overrides the \fB\-E\fR option.
-.SH "FILES"
-.IX Header "FILES"
-.Ip "\f(CW\*(C`\f(CIa.out\f(CW\*(C'\fR" 4
-.IX Item "a.out"
-the namelist and text space.
-.Ip "\f(CW\*(C`\f(CIgmon.out\f(CW\*(C'\fR" 4
-.IX Item "gmon.out"
-dynamic call graph and profile.
-.Ip "\f(CW\*(C`\f(CIgmon.sum\f(CW\*(C'\fR" 4
-.IX Item "gmon.sum"
-summarized dynamic call graph and profile.  
-.SH "BUGS"
-.IX Header "BUGS"
-The granularity of the sampling is shown, but remains
-statistical at best.
-We assume that the time for each execution of a function
-can be expressed by the total time for the function divided
-by the number of times the function is called.
-Thus the time propagated along the call graph arcs to the function's
-parents is directly proportional to the number of times that
-arc is traversed.
-.PP
-Parents that are not themselves profiled will have the time of
-their profiled children propagated to them, but they will appear
-to be spontaneously invoked in the call graph listing, and will
-not have their time propagated further.
-Similarly, signal catchers, even though profiled, will appear
-to be spontaneous (although for more obscure reasons).
-Any profiled children of signal catchers should have their times
-propagated properly, unless the signal catcher was invoked during
-the execution of the profiling routine, in which case all is lost.
-.PP
-The profiled program must call \f(CW\*(C`exit\*(C'\fR(2)
-or return normally for the profiling information to be saved
-in the \fIgmon.out\fR file.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-\&\fImonitor\fR\|(3), \fIprofil\fR\|(2), \fIcc\fR\|(1), \fIprof\fR\|(1), and the Info entry for \fIgprof\fR.
-.PP
-``An Execution Profiler for Modular Programs'',
-by S. Graham, P. Kessler, M. McKusick;
-Software \- Practice and Experience,
-Vol. 13, pp. 671\-685, 1983.
-.PP
-``gprof: A Call Graph Execution Profiler'',
-by S. Graham, P. Kessler, M. McKusick;
-Proceedings of the \s-1SIGPLAN\s0 '82 Symposium on Compiler Construction,
-\&\s-1SIGPLAN\s0 Notices, Vol. 17, No  6, pp. 120\-126, June 1982.
-.SH "COPYRIGHT"
-.IX Header "COPYRIGHT"
-Copyright (C) 1988, 92, 97, 98, 99, 2000, 2001 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 \*(L"\s-1GNU\s0 Free Documentation License\*(R".
index a12c2d86900f18b4ea288c5eff6e7ee741c2a25f..b2c5299bff1ff1396ffbfe3bb2b7d26b4245848b 100644 (file)
@@ -1,3 +1,11 @@
+2001-06-18  H.J. Lu <hjl@gnu.org>
+
+        * Makefile.am (ld.1): Remove the prefix `$(srcdir)/'.
+        (diststuff): Add $(MANS).
+        * Makefile.in: Regenerated.
+
+        * ld.1: Removed.
+
 2001-06-18  Hans-Peter Nilsson  <hp@axis.com>
 
        * emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation):
 2001-06-18  Hans-Peter Nilsson  <hp@axis.com>
 
        * emultempl/elf32.em (gld${EMULATION_NAME}_before_allocation):
index 49b2375a0d9b4f02ee67b13c5f99820017f8604b..27c596348580c7c1e1c7d1e4d9595299d4ff00bf 100644 (file)
@@ -934,13 +934,14 @@ ld.dvi: $(srcdir)/ld.texinfo configdoc.texi ldver.texi
 # Build the man page from the texinfo file
 # The sed command removes the no-adjust Nroff command so that
 # the man output looks standard.
 # Build the man page from the texinfo file
 # The sed command removes the no-adjust Nroff command so that
 # the man output looks standard.
-$(srcdir)/ld.1: $(srcdir)/ld.texinfo
-       touch $(srcdir)/ld.1
+ld.1: $(srcdir)/ld.texinfo
+       touch $@
        -$(TEXI2POD) $(MANCONF) < $(srcdir)/ld.texinfo > ld.pod
        -($(POD2MAN) ld.pod | \
        -$(TEXI2POD) $(MANCONF) < $(srcdir)/ld.texinfo > ld.pod
        -($(POD2MAN) ld.pod | \
-               sed -e '/^.if n .na/d' > $(srcdir)/ld.1.T$$$$ && \
-               mv -f $(srcdir)/ld.1.T$$$$ $(srcdir)/ld.1) || \
-               (rm -f $(srcdir)/ld.1.T$$$$ && exit 1)
+               sed -e '/^.if n .na/d' > $@.T$$$$ && \
+               mv -f $@.T$$$$ $@) || \
+               (rm -f $@.T$$$$ && exit 1)
+       rm -f ld.pod
 
 MAINTAINERCLEANFILES = ldver.texi
 
 
 MAINTAINERCLEANFILES = ldver.texi
 
@@ -979,8 +980,8 @@ install-data-local:
 
 # Stuff that should be included in a distribution.  The diststuff
 # target is run by the taz target in ../Makefile.in.
 
 # Stuff that should be included in a distribution.  The diststuff
 # target is run by the taz target in ../Makefile.in.
-LDDISTSTUFF = ldgram.c ldgram.h ldlex.c
-diststuff: $(LDDISTSTUFF) info
+EXTRA_DIST = ldgram.c ldgram.h ldlex.c $(man_MANS)
+diststuff: info $(EXTRA_DIST)
 
 DISTCLEANFILES = tdirs site.exp site.bak stringify.sed
 distclean-local:
 
 DISTCLEANFILES = tdirs site.exp site.bak stringify.sed
 distclean-local:
index 22fc27306228786cddb9531bc36eb45fb72fca20..fdef9309ee14f7aba1972ea6e4faeccf4294fc69 100644 (file)
@@ -431,7 +431,7 @@ CLEANFILES = dep.sed DEP DEPA DEP1 DEP2
 
 # Stuff that should be included in a distribution.  The diststuff
 # target is run by the taz target in ../Makefile.in.
 
 # Stuff that should be included in a distribution.  The diststuff
 # target is run by the taz target in ../Makefile.in.
-LDDISTSTUFF = ldgram.c ldgram.h ldlex.c
+EXTRA_DIST = ldgram.c ldgram.h ldlex.c $(man_MANS)
 
 DISTCLEANFILES = tdirs site.exp site.bak stringify.sed
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
 
 DISTCLEANFILES = tdirs site.exp site.bak stringify.sed
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -475,7 +475,7 @@ deffilep.c ldgram.c ldlex.c
 
 DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
 
 
 DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
 
-TAR = tar
+TAR = gtar
 GZIP_ENV = --best
 SOURCES = $(ld_new_SOURCES) $(EXTRA_ld_new_SOURCES)
 OBJECTS = $(ld_new_OBJECTS)
 GZIP_ENV = --best
 SOURCES = $(ld_new_SOURCES) $(EXTRA_ld_new_SOURCES)
 OBJECTS = $(ld_new_OBJECTS)
@@ -1637,13 +1637,14 @@ ld.dvi: $(srcdir)/ld.texinfo configdoc.texi ldver.texi
 # Build the man page from the texinfo file
 # The sed command removes the no-adjust Nroff command so that
 # the man output looks standard.
 # Build the man page from the texinfo file
 # The sed command removes the no-adjust Nroff command so that
 # the man output looks standard.
-$(srcdir)/ld.1: $(srcdir)/ld.texinfo
-       touch $(srcdir)/ld.1
+ld.1: $(srcdir)/ld.texinfo
+       touch $@
        -$(TEXI2POD) $(MANCONF) < $(srcdir)/ld.texinfo > ld.pod
        -($(POD2MAN) ld.pod | \
        -$(TEXI2POD) $(MANCONF) < $(srcdir)/ld.texinfo > ld.pod
        -($(POD2MAN) ld.pod | \
-               sed -e '/^.if n .na/d' > $(srcdir)/ld.1.T$$$$ && \
-               mv -f $(srcdir)/ld.1.T$$$$ $(srcdir)/ld.1) || \
-               (rm -f $(srcdir)/ld.1.T$$$$ && exit 1)
+               sed -e '/^.if n .na/d' > $@.T$$$$ && \
+               mv -f $@.T$$$$ $@) || \
+               (rm -f $@.T$$$$ && exit 1)
+       rm -f ld.pod
 
 # We want to reconfigure if configure.host or configure.tgt changes.
 config.status: $(srcdir)/configure $(srcdir)/configure.host $(srcdir)/configure.tgt
 
 # We want to reconfigure if configure.host or configure.tgt changes.
 config.status: $(srcdir)/configure $(srcdir)/configure.host $(srcdir)/configure.tgt
@@ -1673,7 +1674,7 @@ install-data-local:
        for f in ldscripts/*; do \
          $(INSTALL_DATA) $$f $(scriptdir)/$$f ; \
        done
        for f in ldscripts/*; do \
          $(INSTALL_DATA) $$f $(scriptdir)/$$f ; \
        done
-diststuff: $(LDDISTSTUFF) info
+diststuff: info $(EXTRA_DIST)
 distclean-local:
        rm -rf ldscripts
 
 distclean-local:
        rm -rf ldscripts
 
diff --git a/ld/ld.1 b/ld/ld.1
deleted file mode 100644 (file)
index 21d243a..0000000
--- a/ld/ld.1
+++ /dev/null
@@ -1,1437 +0,0 @@
-.\" Automatically generated by Pod::Man version 1.02
-.\" Tue May 22 15:43:56 2001
-.\"
-.\" 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 Ip \" List item
-.br
-.ie \\n(.$>=3 .ne \\$3
-.el .ne 3
-.IP "\\$1" \\$2
-..
-.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.
-.bd B 3
-.    \" 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 "LD 1"
-.TH LD 1 "binutils-2.11.90" "2001-05-22" "GNU"
-.UC
-.SH "NAME"
-ld \- Using \s-1LD\s0, the \s-1GNU\s0 linker
-.SH "SYNOPSIS"
-.IX Header "SYNOPSIS"
-ld [ options ] objfile...
-.SH "DESCRIPTION"
-.IX Header "DESCRIPTION"
-\&\f(CW\*(C`ld\*(C'\fR combines a number of object and archive files, relocates
-their data and ties up symbol references. Usually the last step in
-compiling a program is to run \f(CW\*(C`ld\*(C'\fR.
-.PP
-\&\f(CW\*(C`ld\*(C'\fR accepts Linker Command Language files written in
-a superset of \s-1AT&T\s0's Link Editor Command Language syntax,
-to provide explicit and total control over the linking process.
-.PP
-This man page does not describe the command language; see the 
-\&\f(CW\*(C`ld\*(C'\fR entry in \f(CW\*(C`info\*(C'\fR, or the manual
-ld: the \s-1GNU\s0 linker, for full details on the command language and 
-on other aspects of the \s-1GNU\s0 linker. 
-.PP
-This version of \f(CW\*(C`ld\*(C'\fR uses the general purpose \s-1BFD\s0 libraries
-to operate on object files. This allows \f(CW\*(C`ld\*(C'\fR to read, combine, and
-write object files in many different formats\-\-\-for example, \s-1COFF\s0 or
-\&\f(CW\*(C`a.out\*(C'\fR.  Different formats may be linked together to produce any
-available kind of object file.  
-.PP
-Aside from its flexibility, the \s-1GNU\s0 linker is more helpful than other
-linkers in providing diagnostic information.  Many linkers abandon
-execution immediately upon encountering an error; whenever possible,
-\&\f(CW\*(C`ld\*(C'\fR continues executing, allowing you to identify other errors
-(or, in some cases, to get an output file in spite of the error).
-.PP
-The \s-1GNU\s0 linker \f(CW\*(C`ld\*(C'\fR is meant to cover a broad range of situations,
-and to be as compatible as possible with other linkers.  As a result,
-you have many choices to control its behavior.
-.SH "OPTIONS"
-.IX Header "OPTIONS"
-The linker supports a plethora of command-line options, but in actual
-practice few of them are used in any particular context.
-For instance, a frequent use of \f(CW\*(C`ld\*(C'\fR is to link standard Unix
-object files on a standard, supported Unix system.  On such a system, to
-link a file \f(CW\*(C`hello.o\*(C'\fR:
-.PP
-.Vb 1
-\&        ld -o I<output> /lib/crt0.o hello.o -lc
-.Ve
-This tells \f(CW\*(C`ld\*(C'\fR to produce a file called \fIoutput\fR as the
-result of linking the file \f(CW\*(C`/lib/crt0.o\*(C'\fR with \f(CW\*(C`hello.o\*(C'\fR and
-the library \f(CW\*(C`libc.a\*(C'\fR, which will come from the standard search
-directories.  (See the discussion of the \fB\-l\fR option below.)
-.PP
-Some of the command-line options to \f(CW\*(C`ld\*(C'\fR may be specified at any
-point in the command line.  However, options which refer to files, such
-as \fB\-l\fR or \fB\-T\fR, cause the file to be read at the point at
-which the option appears in the command line, relative to the object
-files and other file options.  Repeating non-file options with a
-different argument will either have no further effect, or override prior
-occurrences (those further to the left on the command line) of that
-option.  Options which may be meaningfully specified more than once are
-noted in the descriptions below.
-.PP
-Non-option arguments are object files or archives which are to be linked
-together.  They may follow, precede, or be mixed in with command-line
-options, except that an object file argument may not be placed between
-an option and its argument.
-.PP
-Usually the linker is invoked with at least one object file, but you can
-specify other forms of binary input files using \fB\-l\fR, \fB\-R\fR,
-and the script command language.  If \fIno\fR binary input files at all
-are specified, the linker does not produce any output, and issues the
-message \fBNo input files\fR.
-.PP
-If the linker can not recognize the format of an object file, it will
-assume that it is a linker script.  A script specified in this way
-augments the main linker script used for the link (either the default
-linker script or the one specified by using \fB\-T\fR).  This feature
-permits the linker to link against a file which appears to be an object
-or an archive, but actually merely defines some symbol values, or uses
-\&\f(CW\*(C`INPUT\*(C'\fR or \f(CW\*(C`GROUP\*(C'\fR to load other objects.  Note that
-specifying a script in this way should only be used to augment the main
-linker script; if you want to use some command that logically can only
-appear once, such as the \f(CW\*(C`SECTIONS\*(C'\fR or \f(CW\*(C`MEMORY\*(C'\fR command, you
-must replace the default linker script using the \fB\-T\fR option.
-.PP
-For options whose names are a single letter,
-option arguments must either follow the option letter without intervening
-whitespace, or be given as separate arguments immediately following the
-option that requires them.
-.PP
-For options whose names are multiple letters, either one dash or two can
-precede the option name; for example, \fB\-trace-symbol\fR and
-\&\fB\*(--trace-symbol\fR are equivalent.  Note \- there is one exception to
-this rule.  Multiple letter options that start with a lower case 'o' can
-only be preceeded by two dashes.  This is to reduce confusion with the
-\&\fB\-o\fR option.  So for example \fB\-omagic\fR sets the output file
-name to \fBmagic\fR whereas \fB\*(--omagic\fR sets the \s-1NMAGIC\s0 flag on the
-output.
-.PP
-Arguments to multiple-letter options must either be separated from the
-option name by an equals sign, or be given as separate arguments
-immediately following the option that requires them.  For example,
-\&\fB\*(--trace-symbol foo\fR and \fB\*(--trace-symbol=foo\fR are equivalent.
-Unique abbreviations of the names of multiple-letter options are
-accepted.
-.PP
-Note \- if the linker is being invoked indirectly, via a compiler driver
-(eg \fBgcc\fR) then all the linker command line options should be
-prefixed by \fB\-Wl,\fR (or whatever is appropriate for the particular
-compiler driver) like this:
-.PP
-.Vb 1
-\&          gcc -Wl,--startgroup foo.o bar.o -Wl,--endgroup
-.Ve
-This is important, because otherwise the compiler driver program may
-silently drop the linker options, resulting in a bad link.
-.PP
-Here is a table of the generic command line switches accepted by the \s-1GNU\s0
-linker:
-.Ip "\f(CW\*(C`\-a\f(CIkeyword\f(CW\*(C'\fR" 4
-.IX Item "-akeyword"
-This option is supported for \s-1HP/UX\s0 compatibility.  The \fIkeyword\fR
-argument must be one of the strings \fBarchive\fR, \fBshared\fR, or
-\&\fBdefault\fR.  \fB\-aarchive\fR is functionally equivalent to
-\&\fB\-Bstatic\fR, and the other two keywords are functionally equivalent
-to \fB\-Bdynamic\fR.  This option may be used any number of times.
-.Ip "\f(CW\*(C`\-A\f(CIarchitecture\f(CW\*(C'\fR" 4
-.IX Item "-Aarchitecture"
-.Ip "\f(CW\*(C`\-\-architecture=\f(CIarchitecture\f(CW\*(C'\fR" 4
-.IX Item "--architecture=architecture"
-In the current release of \f(CW\*(C`ld\*(C'\fR, this option is useful only for the
-Intel 960 family of architectures.  In that \f(CW\*(C`ld\*(C'\fR configuration, the
-\&\fIarchitecture\fR argument identifies the particular architecture in
-the 960 family, enabling some safeguards and modifying the
-archive-library search path.  
-.Sp
-Future releases of \f(CW\*(C`ld\*(C'\fR may support similar functionality for
-other architecture families.
-.Ip "\f(CW\*(C`\-b \f(CIinput\-format\f(CW\*(C'\fR" 4
-.IX Item "-b input-format"
-.Ip "\f(CW\*(C`\-\-format=\f(CIinput\-format\f(CW\*(C'\fR" 4
-.IX Item "--format=input-format"
-\&\f(CW\*(C`ld\*(C'\fR may be configured to support more than one kind of object
-file.  If your \f(CW\*(C`ld\*(C'\fR is configured this way, you can use the
-\&\fB\-b\fR option to specify the binary format for input object files
-that follow this option on the command line.  Even when \f(CW\*(C`ld\*(C'\fR is
-configured to support alternative object formats, you don't usually need
-to specify this, as \f(CW\*(C`ld\*(C'\fR should be configured to expect as a
-default input format the most usual format on each machine.
-\&\fIinput-format\fR is a text string, the name of a particular format
-supported by the \s-1BFD\s0 libraries.  (You can list the available binary
-formats with \fBobjdump \-i\fR.)
-.Sp
-You may want to use this option if you are linking files with an unusual
-binary format.  You can also use \fB\-b\fR to switch formats explicitly (when
-linking object files of different formats), by including
-\&\fB\-b\fR \fIinput-format\fR before each group of object files in a
-particular format.
-.Sp
-The default format is taken from the environment variable
-\&\f(CW\*(C`GNUTARGET\*(C'\fR.
-.Sp
-You can also define the input format from a script, using the command
-\&\f(CW\*(C`TARGET\*(C'\fR;
-.Ip "\f(CW\*(C`\-c \f(CIMRI\-commandfile\f(CW\*(C'\fR" 4
-.IX Item "-c MRI-commandfile"
-.Ip "\f(CW\*(C`\-\-mri\-script=\f(CIMRI\-commandfile\f(CW\*(C'\fR" 4
-.IX Item "--mri-script=MRI-commandfile"
-For compatibility with linkers produced by \s-1MRI\s0, \f(CW\*(C`ld\*(C'\fR accepts script
-files written in an alternate, restricted command language, described in
-the \s-1MRI\s0 Compatible Script Files section of \s-1GNU\s0 ld documentation.
-Introduce \s-1MRI\s0 script files with
-the option \fB\-c\fR; use the \fB\-T\fR option to run linker
-scripts written in the general-purpose \f(CW\*(C`ld\*(C'\fR scripting language.
-If \fIMRI-cmdfile\fR does not exist, \f(CW\*(C`ld\*(C'\fR looks for it in the directories
-specified by any \fB\-L\fR options.
-.Ip "\f(CW\*(C`\-d\*(C'\fR" 4
-.IX Item "-d"
-.Ip "\f(CW\*(C`\-dc\*(C'\fR" 4
-.IX Item "-dc"
-.Ip "\f(CW\*(C`\-dp\*(C'\fR" 4
-.IX Item "-dp"
-These three options are equivalent; multiple forms are supported for
-compatibility with other linkers.  They assign space to common symbols
-even if a relocatable output file is specified (with \fB\-r\fR).  The
-script command \f(CW\*(C`FORCE_COMMON_ALLOCATION\*(C'\fR has the same effect.
-.Ip "\f(CW\*(C`\-e \f(CIentry\f(CW\*(C'\fR" 4
-.IX Item "-e entry"
-.Ip "\f(CW\*(C`\-\-entry=\f(CIentry\f(CW\*(C'\fR" 4
-.IX Item "--entry=entry"
-Use \fIentry\fR as the explicit symbol for beginning execution of your
-program, rather than the default entry point.  If there is no symbol
-named \fIentry\fR, the linker will try to parse \fIentry\fR as a number,
-and use that as the entry address (the number will be interpreted in
-base 10; you may use a leading \fB0x\fR for base 16, or a leading
-\&\fB0\fR for base 8).  
-.Ip "\f(CW\*(C`\-E\*(C'\fR" 4
-.IX Item "-E"
-.Ip "\f(CW\*(C`\-\-export\-dynamic\*(C'\fR" 4
-.IX Item "--export-dynamic"
-When creating a dynamically linked executable, add all symbols to the
-dynamic symbol table.  The dynamic symbol table is the set of symbols
-which are visible from dynamic objects at run time.
-.Sp
-If you do not use this option, the dynamic symbol table will normally
-contain only those symbols which are referenced by some dynamic object
-mentioned in the link.
-.Sp
-If you use \f(CW\*(C`dlopen\*(C'\fR to load a dynamic object which needs to refer
-back to the symbols defined by the program, rather than some other
-dynamic object, then you will probably need to use this option when
-linking the program itself.
-.Ip "\f(CW\*(C`\-EB\*(C'\fR" 4
-.IX Item "-EB"
-Link big-endian objects.  This affects the default output format.
-.Ip "\f(CW\*(C`\-EL\*(C'\fR" 4
-.IX Item "-EL"
-Link little-endian objects.  This affects the default output format.
-.Ip "\f(CW\*(C`\-f\*(C'\fR" 4
-.IX Item "-f"
-.Ip "\f(CW\*(C`\-\-auxiliary \f(CIname\f(CW\*(C'\fR" 4
-.IX Item "--auxiliary name"
-When creating an \s-1ELF\s0 shared object, set the internal \s-1DT_AUXILIARY\s0 field
-to the specified name.  This tells the dynamic linker that the symbol
-table of the shared object should be used as an auxiliary filter on the
-symbol table of the shared object \fIname\fR.
-.Sp
-If you later link a program against this filter object, then, when you
-run the program, the dynamic linker will see the \s-1DT_AUXILIARY\s0 field.  If
-the dynamic linker resolves any symbols from the filter object, it will
-first check whether there is a definition in the shared object
-\&\fIname\fR.  If there is one, it will be used instead of the definition
-in the filter object.  The shared object \fIname\fR need not exist.
-Thus the shared object \fIname\fR may be used to provide an alternative
-implementation of certain functions, perhaps for debugging or for
-machine specific performance.
-.Sp
-This option may be specified more than once.  The \s-1DT_AUXILIARY\s0 entries
-will be created in the order in which they appear on the command line.
-.Ip "\f(CW\*(C`\-F \f(CIname\f(CW\*(C'\fR" 4
-.IX Item "-F name"
-.Ip "\f(CW\*(C`\-\-filter \f(CIname\f(CW\*(C'\fR" 4
-.IX Item "--filter name"
-When creating an \s-1ELF\s0 shared object, set the internal \s-1DT_FILTER\s0 field to
-the specified name.  This tells the dynamic linker that the symbol table
-of the shared object which is being created should be used as a filter
-on the symbol table of the shared object \fIname\fR.
-.Sp
-If you later link a program against this filter object, then, when you
-run the program, the dynamic linker will see the \s-1DT_FILTER\s0 field.  The
-dynamic linker will resolve symbols according to the symbol table of the
-filter object as usual, but it will actually link to the definitions
-found in the shared object \fIname\fR.  Thus the filter object can be
-used to select a subset of the symbols provided by the object
-\&\fIname\fR.
-.Sp
-Some older linkers used the \f(CW\*(C`\-F\*(C'\fR option throughout a compilation
-toolchain for specifying object-file format for both input and output
-object files.  The \s-1GNU\s0 linker uses other mechanisms for this
-purpose: the \f(CW\*(C`\-b\*(C'\fR, \f(CW\*(C`\-\-format\*(C'\fR, \f(CW\*(C`\-\-oformat\*(C'\fR options, the
-\&\f(CW\*(C`TARGET\*(C'\fR command in linker scripts, and the \f(CW\*(C`GNUTARGET\*(C'\fR
-environment variable.  The \s-1GNU\s0 linker will ignore the \f(CW\*(C`\-F\*(C'\fR
-option when not creating an \s-1ELF\s0 shared object.
-.Ip "\f(CW\*(C`\-fini \f(CIname\f(CW\*(C'\fR" 4
-.IX Item "-fini name"
-When creating an \s-1ELF\s0 executable or shared object, call \s-1NAME\s0 when the
-executable or shared object is unloaded, by setting \s-1DT_FINI\s0 to the
-address of the function.  By default, the linker uses \f(CW\*(C`_fini\*(C'\fR as
-the function to call.
-.Ip "\f(CW\*(C`\-g\*(C'\fR" 4
-.IX Item "-g"
-Ignored.  Provided for compatibility with other tools.
-.Ip "\f(CW\*(C`\-G\f(CIvalue\f(CW\*(C'\fR" 4
-.IX Item "-Gvalue"
-.Ip "\f(CW\*(C`\-\-gpsize=\f(CIvalue\f(CW\*(C'\fR" 4
-.IX Item "--gpsize=value"
-Set the maximum size of objects to be optimized using the \s-1GP\s0 register to
-\&\fIsize\fR.  This is only meaningful for object file formats such as
-\&\s-1MIPS\s0 \s-1ECOFF\s0 which supports putting large and small objects into different
-sections.  This is ignored for other object file formats.
-.Ip "\f(CW\*(C`\-h\f(CIname\f(CW\*(C'\fR" 4
-.IX Item "-hname"
-.Ip "\f(CW\*(C`\-soname=\f(CIname\f(CW\*(C'\fR" 4
-.IX Item "-soname=name"
-When creating an \s-1ELF\s0 shared object, set the internal \s-1DT_SONAME\s0 field to
-the specified name.  When an executable is linked with a shared object
-which has a \s-1DT_SONAME\s0 field, then when the executable is run the dynamic
-linker will attempt to load the shared object specified by the \s-1DT_SONAME\s0
-field rather than the using the file name given to the linker.
-.Ip "\f(CW\*(C`\-i\*(C'\fR" 4
-.IX Item "-i"
-Perform an incremental link (same as option \fB\-r\fR).
-.Ip "\f(CW\*(C`\-init \f(CIname\f(CW\*(C'\fR" 4
-.IX Item "-init name"
-When creating an \s-1ELF\s0 executable or shared object, call \s-1NAME\s0 when the
-executable or shared object is loaded, by setting \s-1DT_INIT\s0 to the address
-of the function.  By default, the linker uses \f(CW\*(C`_init\*(C'\fR as the
-function to call.
-.Ip "\f(CW\*(C`\-l\f(CIarchive\f(CW\*(C'\fR" 4
-.IX Item "-larchive"
-.Ip "\f(CW\*(C`\-\-library=\f(CIarchive\f(CW\*(C'\fR" 4
-.IX Item "--library=archive"
-Add archive file \fIarchive\fR to the list of files to link.  This
-option may be used any number of times.  \f(CW\*(C`ld\*(C'\fR will search its
-path-list for occurrences of \f(CW\*(C`lib\f(CIarchive\f(CW.a\*(C'\fR for every
-\&\fIarchive\fR specified.
-.Sp
-On systems which support shared libraries, \f(CW\*(C`ld\*(C'\fR may also search for
-libraries with extensions other than \f(CW\*(C`.a\*(C'\fR.  Specifically, on \s-1ELF\s0
-and SunOS systems, \f(CW\*(C`ld\*(C'\fR will search a directory for a library with
-an extension of \f(CW\*(C`.so\*(C'\fR before searching for one with an extension of
-\&\f(CW\*(C`.a\*(C'\fR.  By convention, a \f(CW\*(C`.so\*(C'\fR extension indicates a shared
-library.
-.Sp
-The linker will search an archive only once, at the location where it is
-specified on the command line.  If the archive defines a symbol which
-was undefined in some object which appeared before the archive on the
-command line, the linker will include the appropriate \fIfile\fR\|(s) from the
-archive.  However, an undefined symbol in an object appearing later on
-the command line will not cause the linker to search the archive again.
-.Sp
-See the \f(CW\*(C`\-(\*(C'\fR option for a way to force the linker to search
-archives multiple times.
-.Sp
-You may list the same archive multiple times on the command line.
-.Sp
-This type of archive searching is standard for Unix linkers.  However,
-if you are using \f(CW\*(C`ld\*(C'\fR on \s-1AIX\s0, note that it is different from the
-behaviour of the \s-1AIX\s0 linker.
-.Ip "\f(CW\*(C`\-L\f(CIsearchdir\f(CW\*(C'\fR" 4
-.IX Item "-Lsearchdir"
-.Ip "\f(CW\*(C`\-\-library\-path=\f(CIsearchdir\f(CW\*(C'\fR" 4
-.IX Item "--library-path=searchdir"
-Add path \fIsearchdir\fR to the list of paths that \f(CW\*(C`ld\*(C'\fR will search
-for archive libraries and \f(CW\*(C`ld\*(C'\fR control scripts.  You may use this
-option any number of times.  The directories are searched in the order
-in which they are specified on the command line.  Directories specified
-on the command line are searched before the default directories.  All
-\&\f(CW\*(C`\-L\*(C'\fR options apply to all \f(CW\*(C`\-l\*(C'\fR options, regardless of the
-order in which the options appear.
-.Sp
-The default set of paths searched (without being specified with
-\&\fB\-L\fR) depends on which emulation mode \f(CW\*(C`ld\*(C'\fR is using, and in
-some cases also on how it was configured.  
-.Sp
-The paths can also be specified in a link script with the
-\&\f(CW\*(C`SEARCH_DIR\*(C'\fR command.  Directories specified this way are searched
-at the point in which the linker script appears in the command line.
-.Ip "\f(CW\*(C`\-m\f(CIemulation\f(CW\*(C'\fR" 4
-.IX Item "-memulation"
-Emulate the \fIemulation\fR linker.  You can list the available
-emulations with the \fB\*(--verbose\fR or \fB\-V\fR options.
-.Sp
-If the \fB\-m\fR option is not used, the emulation is taken from the
-\&\f(CW\*(C`LDEMULATION\*(C'\fR environment variable, if that is defined.
-.Sp
-Otherwise, the default emulation depends upon how the linker was
-configured.
-.Ip "\f(CW\*(C`\-M\*(C'\fR" 4
-.IX Item "-M"
-.Ip "\f(CW\*(C`\-\-print\-map\*(C'\fR" 4
-.IX Item "--print-map"
-Print a link map to the standard output.  A link map provides
-information about the link, including the following:
-.RS 4
-.Ip "\(bu" 4
-Where object files and symbols are mapped into memory.
-.Ip "\(bu" 4
-How common symbols are allocated.
-.Ip "\(bu" 4
-All archive members included in the link, with a mention of the symbol
-which caused the archive member to be brought in.
-.RE
-.RS 4
-.RE
-.Ip "\f(CW\*(C`\-n\*(C'\fR" 4
-.IX Item "-n"
-.Ip "\f(CW\*(C`\-\-nmagic\*(C'\fR" 4
-.IX Item "--nmagic"
-Turn off page alignment of sections, and mark the output as
-\&\f(CW\*(C`NMAGIC\*(C'\fR if possible.
-.Ip "\f(CW\*(C`\-N\*(C'\fR" 4
-.IX Item "-N"
-.Ip "\f(CW\*(C`\-\-omagic\*(C'\fR" 4
-.IX Item "--omagic"
-Set the text and data sections to be readable and writable.  Also, do
-not page-align the data segment.  If the output format supports Unix
-style magic numbers, mark the output as \f(CW\*(C`OMAGIC\*(C'\fR.
-.Ip "\f(CW\*(C`\-o \f(CIoutput\f(CW\*(C'\fR" 4
-.IX Item "-o output"
-.Ip "\f(CW\*(C`\-\-output=\f(CIoutput\f(CW\*(C'\fR" 4
-.IX Item "--output=output"
-Use \fIoutput\fR as the name for the program produced by \f(CW\*(C`ld\*(C'\fR; if this
-option is not specified, the name \fIa.out\fR is used by default.  The
-script command \f(CW\*(C`OUTPUT\*(C'\fR can also specify the output file name.
-.Ip "\f(CW\*(C`\-O \f(CIlevel\f(CW\*(C'\fR" 4
-.IX Item "-O level"
-If \fIlevel\fR is a numeric values greater than zero \f(CW\*(C`ld\*(C'\fR optimizes
-the output.  This might take significantly longer and therefore probably
-should only be enabled for the final binary.
-.Ip "\f(CW\*(C`\-q\*(C'\fR" 4
-.IX Item "-q"
-.Ip "\f(CW\*(C`\-\-emit\-relocs\*(C'\fR" 4
-.IX Item "--emit-relocs"
-Leave relocation sections and contents in fully linked exececutables.
-Post link analysis and optimization tools may need this information in
-order to perform correct modifications of executables.  This results
-in larger executables.
-.Ip "\f(CW\*(C`\-r\*(C'\fR" 4
-.IX Item "-r"
-.Ip "\f(CW\*(C`\-\-relocateable\*(C'\fR" 4
-.IX Item "--relocateable"
-Generate relocatable output\-\-\-i.e., generate an output file that can in
-turn serve as input to \f(CW\*(C`ld\*(C'\fR.  This is often called \fIpartial
-linking\fR.  As a side effect, in environments that support standard Unix
-magic numbers, this option also sets the output file's magic number to
-\&\f(CW\*(C`OMAGIC\*(C'\fR.
-If this option is not specified, an absolute file is produced.  When
-linking \*(C+ programs, this option \fIwill not\fR resolve references to
-constructors; to do that, use \fB\-Ur\fR.
-.Sp
-This option does the same thing as \fB\-i\fR.
-.Ip "\f(CW\*(C`\-R \f(CIfilename\f(CW\*(C'\fR" 4
-.IX Item "-R filename"
-.Ip "\f(CW\*(C`\-\-just\-symbols=\f(CIfilename\f(CW\*(C'\fR" 4
-.IX Item "--just-symbols=filename"
-Read symbol names and their addresses from \fIfilename\fR, but do not
-relocate it or include it in the output.  This allows your output file
-to refer symbolically to absolute locations of memory defined in other
-programs.  You may use this option more than once.
-.Sp
-For compatibility with other \s-1ELF\s0 linkers, if the \f(CW\*(C`\-R\*(C'\fR option is
-followed by a directory name, rather than a file name, it is treated as
-the \f(CW\*(C`\-rpath\*(C'\fR option.
-.Ip "\f(CW\*(C`\-s\*(C'\fR" 4
-.IX Item "-s"
-.Ip "\f(CW\*(C`\-\-strip\-all\*(C'\fR" 4
-.IX Item "--strip-all"
-Omit all symbol information from the output file.
-.Ip "\f(CW\*(C`\-S\*(C'\fR" 4
-.IX Item "-S"
-.Ip "\f(CW\*(C`\-\-strip\-debug\*(C'\fR" 4
-.IX Item "--strip-debug"
-Omit debugger symbol information (but not all symbols) from the output file.
-.Ip "\f(CW\*(C`\-t\*(C'\fR" 4
-.IX Item "-t"
-.Ip "\f(CW\*(C`\-\-trace\*(C'\fR" 4
-.IX Item "--trace"
-Print the names of the input files as \f(CW\*(C`ld\*(C'\fR processes them.
-.Ip "\f(CW\*(C`\-T \f(CIscriptfile\f(CW\*(C'\fR" 4
-.IX Item "-T scriptfile"
-.Ip "\f(CW\*(C`\-\-script=\f(CIscriptfile\f(CW\*(C'\fR" 4
-.IX Item "--script=scriptfile"
-Use \fIscriptfile\fR as the linker script.  This script replaces
-\&\f(CW\*(C`ld\*(C'\fR's default linker script (rather than adding to it), so
-\&\fIcommandfile\fR must specify everything necessary to describe the
-output file.  You must use this option if you want to use a command
-which can only appear once in a linker script, such as the
-\&\f(CW\*(C`SECTIONS\*(C'\fR or \f(CW\*(C`MEMORY\*(C'\fR command.    If
-\&\fIscriptfile\fR does not exist in the current directory, \f(CW\*(C`ld\*(C'\fR
-looks for it in the directories specified by any preceding \fB\-L\fR
-options.  Multiple \fB\-T\fR options accumulate.
-.Ip "\f(CW\*(C`\-u \f(CIsymbol\f(CW\*(C'\fR" 4
-.IX Item "-u symbol"
-.Ip "\f(CW\*(C`\-\-undefined=\f(CIsymbol\f(CW\*(C'\fR" 4
-.IX Item "--undefined=symbol"
-Force \fIsymbol\fR to be entered in the output file as an undefined
-symbol.  Doing this may, for example, trigger linking of additional
-modules from standard libraries.  \fB\-u\fR may be repeated with
-different option arguments to enter additional undefined symbols.  This
-option is equivalent to the \f(CW\*(C`EXTERN\*(C'\fR linker script command.
-.Ip "\f(CW\*(C`\-Ur\*(C'\fR" 4
-.IX Item "-Ur"
-For anything other than \*(C+ programs, this option is equivalent to
-\&\fB\-r\fR: it generates relocatable output\-\-\-i.e., an output file that can in
-turn serve as input to \f(CW\*(C`ld\*(C'\fR.  When linking \*(C+ programs, \fB\-Ur\fR
-\&\fIdoes\fR resolve references to constructors, unlike \fB\-r\fR.
-It does not work to use \fB\-Ur\fR on files that were themselves linked
-with \fB\-Ur\fR; once the constructor table has been built, it cannot
-be added to.  Use \fB\-Ur\fR only for the last partial link, and
-\&\fB\-r\fR for the others.
-.Ip "\f(CW\*(C`\-\-unique[=\f(CI\s\-1SECTION\s0\f(CW]\*(C'\fR" 4
-.IX Item "--unique[=SECTION]"
-Creates a separate output section for every input section matching
-\&\fI\s-1SECTION\s0\fR, or if the optional wildcard \fI\s-1SECTION\s0\fR argument is
-missing, for every orphan input section.  An orphan section is one not
-specifically mentioned in a linker script.  You may use this option
-multiple times on the command line;  It prevents the normal merging of
-input sections with the same name, overriding output section assignments
-in a linker script.
-.Ip "\f(CW\*(C`\-v\*(C'\fR" 4
-.IX Item "-v"
-.Ip "\f(CW\*(C`\-\-version\*(C'\fR" 4
-.IX Item "--version"
-.Ip "\f(CW\*(C`\-V\*(C'\fR" 4
-.IX Item "-V"
-Display the version number for \f(CW\*(C`ld\*(C'\fR.  The \f(CW\*(C`\-V\*(C'\fR option also
-lists the supported emulations.
-.Ip "\f(CW\*(C`\-x\*(C'\fR" 4
-.IX Item "-x"
-.Ip "\f(CW\*(C`\-\-discard\-all\*(C'\fR" 4
-.IX Item "--discard-all"
-Delete all local symbols.
-.Ip "\f(CW\*(C`\-X\*(C'\fR" 4
-.IX Item "-X"
-.Ip "\f(CW\*(C`\-\-discard\-locals\*(C'\fR" 4
-.IX Item "--discard-locals"
-Delete all temporary local symbols.  For most targets, this is all local
-symbols whose names begin with \fBL\fR.
-.Ip "\f(CW\*(C`\-y \f(CIsymbol\f(CW\*(C'\fR" 4
-.IX Item "-y symbol"
-.Ip "\f(CW\*(C`\-\-trace\-symbol=\f(CIsymbol\f(CW\*(C'\fR" 4
-.IX Item "--trace-symbol=symbol"
-Print the name of each linked file in which \fIsymbol\fR appears.  This
-option may be given any number of times.  On many systems it is necessary
-to prepend an underscore.
-.Sp
-This option is useful when you have an undefined symbol in your link but
-don't know where the reference is coming from.
-.Ip "\f(CW\*(C`\-Y \f(CIpath\f(CW\*(C'\fR" 4
-.IX Item "-Y path"
-Add \fIpath\fR to the default library search path.  This option exists
-for Solaris compatibility.
-.Ip "\f(CW\*(C`\-z \f(CIkeyword\f(CW\*(C'\fR" 4
-.IX Item "-z keyword"
-The recognized keywords are \f(CW\*(C`initfirst\*(C'\fR, \f(CW\*(C`interpose\*(C'\fR,
-\&\f(CW\*(C`loadfltr\*(C'\fR, \f(CW\*(C`nodefaultlib\*(C'\fR, \f(CW\*(C`nodelete\*(C'\fR, \f(CW\*(C`nodlopen\*(C'\fR,
-\&\f(CW\*(C`nodump\*(C'\fR, \f(CW\*(C`now\*(C'\fR and \f(CW\*(C`origin\*(C'\fR. The other keywords are
-ignored for Solaris compatibility. \f(CW\*(C`initfirst\*(C'\fR marks the object
-to be initialized first at runtime before any other objects.
-\&\f(CW\*(C`interpose\*(C'\fR marks the object that its symbol table interposes
-before all symbols but the primary executable. \f(CW\*(C`loadfltr\*(C'\fR marks
-the object that its filtees be processed immediately at runtime.
-\&\f(CW\*(C`nodefaultlib\*(C'\fR marks the object that the search for dependencies
-of this object will ignore any default library search paths.
-\&\f(CW\*(C`nodelete\*(C'\fR marks the object shouldn't be unloaded at runtime.
-\&\f(CW\*(C`nodlopen\*(C'\fR marks the object not available to \f(CW\*(C`dlopen\*(C'\fR.
-\&\f(CW\*(C`nodump\*(C'\fR marks the object can not be dumped by \f(CW\*(C`dldump\*(C'\fR.
-\&\f(CW\*(C`now\*(C'\fR marks the object with the non-lazy runtime binding.
-\&\f(CW\*(C`origin\*(C'\fR marks the object may contain \f(CW$ORIGIN\fR.
-\&\f(CW\*(C`defs\*(C'\fR disallows undefined symbols.
-.Ip "\f(CW\*(C`\-( \f(CIarchives\f(CW \-)\*(C'\fR" 4
-.IX Item "-( archives -)"
-.Ip "\f(CW\*(C`\-\-start\-group \f(CIarchives\f(CW \-\-end\-group\*(C'\fR" 4
-.IX Item "--start-group archives --end-group"
-The \fIarchives\fR should be a list of archive files.  They may be
-either explicit file names, or \fB\-l\fR options.
-.Sp
-The specified archives are searched repeatedly until no new undefined
-references are created.  Normally, an archive is searched only once in
-the order that it is specified on the command line.  If a symbol in that
-archive is needed to resolve an undefined symbol referred to by an
-object in an archive that appears later on the command line, the linker
-would not be able to resolve that reference.  By grouping the archives,
-they all be searched repeatedly until all possible references are
-resolved.
-.Sp
-Using this option has a significant performance cost.  It is best to use
-it only when there are unavoidable circular references between two or
-more archives.
-.Ip "\f(CW\*(C`\-assert \f(CIkeyword\f(CW\*(C'\fR" 4
-.IX Item "-assert keyword"
-This option is ignored for SunOS compatibility.
-.Ip "\f(CW\*(C`\-Bdynamic\*(C'\fR" 4
-.IX Item "-Bdynamic"
-.Ip "\f(CW\*(C`\-dy\*(C'\fR" 4
-.IX Item "-dy"
-.Ip "\f(CW\*(C`\-call_shared\*(C'\fR" 4
-.IX Item "-call_shared"
-Link against dynamic libraries.  This is only meaningful on platforms
-for which shared libraries are supported.  This option is normally the
-default on such platforms.  The different variants of this option are
-for compatibility with various systems.  You may use this option
-multiple times on the command line: it affects library searching for
-\&\f(CW\*(C`\-l\*(C'\fR options which follow it.
-.Ip "\f(CW\*(C`\-Bgroup\*(C'\fR" 4
-.IX Item "-Bgroup"
-Set the \f(CW\*(C`DF_1_GROUP\*(C'\fR flag in the \f(CW\*(C`DT_FLAGS_1\*(C'\fR entry in the dynamic
-section.  This causes the runtime linker to handle lookups in this
-object and its dependencies to be performed only inside the group.
-\&\f(CW\*(C`\-\-no\-undefined\*(C'\fR is implied.  This option is only meaningful on \s-1ELF\s0
-platforms which support shared libraries.
-.Ip "\f(CW\*(C`\-Bstatic\*(C'\fR" 4
-.IX Item "-Bstatic"
-.Ip "\f(CW\*(C`\-dn\*(C'\fR" 4
-.IX Item "-dn"
-.Ip "\f(CW\*(C`\-non_shared\*(C'\fR" 4
-.IX Item "-non_shared"
-.Ip "\f(CW\*(C`\-static\*(C'\fR" 4
-.IX Item "-static"
-Do not link against shared libraries.  This is only meaningful on
-platforms for which shared libraries are supported.  The different
-variants of this option are for compatibility with various systems.  You
-may use this option multiple times on the command line: it affects
-library searching for \f(CW\*(C`\-l\*(C'\fR options which follow it.
-.Ip "\f(CW\*(C`\-Bsymbolic\*(C'\fR" 4
-.IX Item "-Bsymbolic"
-When creating a shared library, bind references to global symbols to the
-definition within the shared library, if any.  Normally, it is possible
-for a program linked against a shared library to override the definition
-within the shared library.  This option is only meaningful on \s-1ELF\s0
-platforms which support shared libraries.
-.Ip "\f(CW\*(C`\-\-check\-sections\*(C'\fR" 4
-.IX Item "--check-sections"
-.Ip "\f(CW\*(C`\-\-no\-check\-sections\*(C'\fR" 4
-.IX Item "--no-check-sections"
-Asks the linker \fInot\fR to check section addresses after they have
-been assigned to see if there any overlaps.  Normally the linker will
-perform this check, and if it finds any overlaps it will produce
-suitable error messages.  The linker does know about, and does make
-allowances for sections in overlays.  The default behaviour can be
-restored by using the command line switch \fB\*(--check-sections\fR.
-.Ip "\f(CW\*(C`\-\-cref\*(C'\fR" 4
-.IX Item "--cref"
-Output a cross reference table.  If a linker map file is being
-generated, the cross reference table is printed to the map file.
-Otherwise, it is printed on the standard output.
-.Sp
-The format of the table is intentionally simple, so that it may be
-easily processed by a script if necessary.  The symbols are printed out,
-sorted by name.  For each symbol, a list of file names is given.  If the
-symbol is defined, the first file listed is the location of the
-definition.  The remaining files contain references to the symbol.
-.Ip "\f(CW\*(C`\-\-defsym \f(CIsymbol\f(CW=\f(CIexpression\f(CW\*(C'\fR" 4
-.IX Item "--defsym symbol=expression"
-Create a global symbol in the output file, containing the absolute
-address given by \fIexpression\fR.  You may use this option as many
-times as necessary to define multiple symbols in the command line.  A
-limited form of arithmetic is supported for the \fIexpression\fR in this
-context: you may give a hexadecimal constant or the name of an existing
-symbol, or use \f(CW\*(C`+\*(C'\fR and \f(CW\*(C`\-\*(C'\fR to add or subtract hexadecimal
-constants or symbols.  If you need more elaborate expressions, consider
-using the linker command language from a script.  \fINote:\fR there should be no white
-space between \fIsymbol\fR, the equals sign (``\fB=\fR''), and
-\&\fIexpression\fR.
-.Ip "\f(CW\*(C`\-\-demangle[=\f(CIstyle\f(CW]\*(C'\fR" 4
-.IX Item "--demangle[=style]"
-.Ip "\f(CW\*(C`\-\-no\-demangle\*(C'\fR" 4
-.IX Item "--no-demangle"
-These options control whether to demangle symbol names in error messages
-and other output.  When the linker is told to demangle, it tries to
-present symbol names in a readable fashion: it strips leading
-underscores if they are used by the object file format, and converts \*(C+
-mangled symbol names into user readable names.  Different compilers have
-different mangling styles.  The optional demangling style argument can be used
-to choose an appropriate demangling style for your compiler.  The linker will
-demangle by default unless the environment variable \fB\s-1COLLECT_NO_DEMANGLE\s0\fR
-is set.  These options may be used to override the default.
-.Ip "\f(CW\*(C`\-\-dynamic\-linker \f(CIfile\f(CW\*(C'\fR" 4
-.IX Item "--dynamic-linker file"
-Set the name of the dynamic linker.  This is only meaningful when
-generating dynamically linked \s-1ELF\s0 executables.  The default dynamic
-linker is normally correct; don't use this unless you know what you are
-doing.
-.Ip "\f(CW\*(C`\-\-embedded\-relocs\*(C'\fR" 4
-.IX Item "--embedded-relocs"
-This option is only meaningful when linking \s-1MIPS\s0 embedded \s-1PIC\s0 code,
-generated by the \-membedded-pic option to the \s-1GNU\s0 compiler and
-assembler.  It causes the linker to create a table which may be used at
-runtime to relocate any data which was statically initialized to pointer
-values.  See the code in testsuite/ld-empic for details.
-.Ip "\f(CW\*(C`\-\-fatal\-warnings\*(C'\fR" 4
-.IX Item "--fatal-warnings"
-Treat all warnings as errors.
-.Ip "\f(CW\*(C`\-\-force\-exe\-suffix\*(C'\fR" 4
-.IX Item "--force-exe-suffix"
-Make sure that an output file has a .exe suffix.
-.Sp
-If a successfully built fully linked output file does not have a
-\&\f(CW\*(C`.exe\*(C'\fR or \f(CW\*(C`.dll\*(C'\fR suffix, this option forces the linker to copy
-the output file to one of the same name with a \f(CW\*(C`.exe\*(C'\fR suffix. This
-option is useful when using unmodified Unix makefiles on a Microsoft
-Windows host, since some versions of Windows won't run an image unless
-it ends in a \f(CW\*(C`.exe\*(C'\fR suffix.
-.Ip "\f(CW\*(C`\-\-no\-gc\-sections\*(C'\fR" 4
-.IX Item "--no-gc-sections"
-.Ip "\f(CW\*(C`\-\-gc\-sections\*(C'\fR" 4
-.IX Item "--gc-sections"
-Enable garbage collection of unused input sections.  It is ignored on
-targets that do not support this option.  This option is not compatible
-with \fB\-r\fR, nor should it be used with dynamic linking.  The default
-behaviour (of not performing this garbage collection) can be restored by
-specifying \fB\*(--no-gc-sections\fR on the command line.
-.Ip "\f(CW\*(C`\-\-help\*(C'\fR" 4
-.IX Item "--help"
-Print a summary of the command-line options on the standard output and exit.
-.Ip "\f(CW\*(C`\-\-target\-help\*(C'\fR" 4
-.IX Item "--target-help"
-Print a summary of all target specific options on the standard output and exit.
-.Ip "\f(CW\*(C`\-Map \f(CImapfile\f(CW\*(C'\fR" 4
-.IX Item "-Map mapfile"
-Print a link map to the file \fImapfile\fR.  See the description of the
-\&\fB\-M\fR option, above.
-.Ip "\f(CW\*(C`\-\-no\-keep\-memory\*(C'\fR" 4
-.IX Item "--no-keep-memory"
-\&\f(CW\*(C`ld\*(C'\fR normally optimizes for speed over memory usage by caching the
-symbol tables of input files in memory.  This option tells \f(CW\*(C`ld\*(C'\fR to
-instead optimize for memory usage, by rereading the symbol tables as
-necessary.  This may be required if \f(CW\*(C`ld\*(C'\fR runs out of memory space
-while linking a large executable.
-.Ip "\f(CW\*(C`\-\-no\-undefined\*(C'\fR" 4
-.IX Item "--no-undefined"
-.Ip "\f(CW\*(C`\-z defs\*(C'\fR" 4
-.IX Item "-z defs"
-Normally when creating a non-symbolic shared library, undefined symbols
-are allowed and left to be resolved by the runtime loader.  These options
-disallows such undefined symbols.
-.Ip "\f(CW\*(C`\-\-allow\-shlib\-undefined\*(C'\fR" 4
-.IX Item "--allow-shlib-undefined"
-Allow undefined symbols in shared objects even  when \-\-no-undefined is
-set. The net result will be that undefined symbols in regular objects
-will still trigger an error, but undefined symbols in shared objects
-will be ignored.  The implementation of no_undefined makes the
-assumption that the runtime linker will choke on undefined symbols.
-However there is at least one system (BeOS) where undefined symbols in
-shared libraries is normal since the kernel patches them at load time to
-select which function is most appropriate for the current architecture.
-I.E. dynamically select an appropriate memset function.  Apparently it
-is also normal for \s-1HPPA\s0 shared libraries to have undefined symbols.
-.Ip "\f(CW\*(C`\-\-no\-warn\-mismatch\*(C'\fR" 4
-.IX Item "--no-warn-mismatch"
-Normally \f(CW\*(C`ld\*(C'\fR will give an error if you try to link together input
-files that are mismatched for some reason, perhaps because they have
-been compiled for different processors or for different endiannesses.
-This option tells \f(CW\*(C`ld\*(C'\fR that it should silently permit such possible
-errors.  This option should only be used with care, in cases when you
-have taken some special action that ensures that the linker errors are
-inappropriate.
-.Ip "\f(CW\*(C`\-\-no\-whole\-archive\*(C'\fR" 4
-.IX Item "--no-whole-archive"
-Turn off the effect of the \f(CW\*(C`\-\-whole\-archive\*(C'\fR option for subsequent
-archive files.
-.Ip "\f(CW\*(C`\-\-noinhibit\-exec\*(C'\fR" 4
-.IX Item "--noinhibit-exec"
-Retain the executable output file whenever it is still usable.
-Normally, the linker will not produce an output file if it encounters
-errors during the link process; it exits without writing an output file
-when it issues any error whatsoever.
-.Ip "\f(CW\*(C`\-\-oformat \f(CIoutput\-format\f(CW\*(C'\fR" 4
-.IX Item "--oformat output-format"
-\&\f(CW\*(C`ld\*(C'\fR may be configured to support more than one kind of object
-file.  If your \f(CW\*(C`ld\*(C'\fR is configured this way, you can use the
-\&\fB\*(--oformat\fR option to specify the binary format for the output
-object file.  Even when \f(CW\*(C`ld\*(C'\fR is configured to support alternative
-object formats, you don't usually need to specify this, as \f(CW\*(C`ld\*(C'\fR
-should be configured to produce as a default output format the most
-usual format on each machine.  \fIoutput-format\fR is a text string, the
-name of a particular format supported by the \s-1BFD\s0 libraries.  (You can
-list the available binary formats with \fBobjdump \-i\fR.)  The script
-command \f(CW\*(C`OUTPUT_FORMAT\*(C'\fR can also specify the output format, but
-this option overrides it.  
-.Ip "\f(CW\*(C`\-qmagic\*(C'\fR" 4
-.IX Item "-qmagic"
-This option is ignored for Linux compatibility.
-.Ip "\f(CW\*(C`\-Qy\*(C'\fR" 4
-.IX Item "-Qy"
-This option is ignored for \s-1SVR4\s0 compatibility.
-.Ip "\f(CW\*(C`\-\-relax\*(C'\fR" 4
-.IX Item "--relax"
-An option with machine dependent effects.
-This option is only supported on a few targets.
-.Sp
-On some platforms, the \fB\*(--relax\fR option performs global
-optimizations that become possible when the linker resolves addressing
-in the program, such as relaxing address modes and synthesizing new
-instructions in the output object file.
-.Sp
-On some platforms these link time global optimizations may make symbolic
-debugging of the resulting executable impossible.
-This is known to be
-the case for the Matsushita \s-1MN10200\s0 and \s-1MN10300\s0 family of processors.
-.Sp
-On platforms where this is not supported, \fB\*(--relax\fR is accepted,
-but ignored.
-.Ip "\f(CW\*(C`\-\-retain\-symbols\-file \f(CIfilename\f(CW\*(C'\fR" 4
-.IX Item "--retain-symbols-file filename"
-Retain \fIonly\fR the symbols listed in the file \fIfilename\fR,
-discarding all others.  \fIfilename\fR is simply a flat file, with one
-symbol name per line.  This option is especially useful in environments
-(such as VxWorks)
-where a large global symbol table is accumulated gradually, to conserve
-run-time memory.
-.Sp
-\&\fB\*(--retain-symbols-file\fR does \fInot\fR discard undefined symbols,
-or symbols needed for relocations.
-.Sp
-You may only specify \fB\*(--retain-symbols-file\fR once in the command
-line.  It overrides \fB\-s\fR and \fB\-S\fR.
-.Ip "\f(CW\*(C`\-rpath \f(CIdir\f(CW\*(C'\fR" 4
-.IX Item "-rpath dir"
-Add a directory to the runtime library search path.  This is used when
-linking an \s-1ELF\s0 executable with shared objects.  All \f(CW\*(C`\-rpath\*(C'\fR
-arguments are concatenated and passed to the runtime linker, which uses
-them to locate shared objects at runtime.  The \f(CW\*(C`\-rpath\*(C'\fR option is
-also used when locating shared objects which are needed by shared
-objects explicitly included in the link; see the description of the
-\&\f(CW\*(C`\-rpath\-link\*(C'\fR option.  If \f(CW\*(C`\-rpath\*(C'\fR is not used when linking an
-\&\s-1ELF\s0 executable, the contents of the environment variable
-\&\f(CW\*(C`LD_RUN_PATH\*(C'\fR will be used if it is defined.
-.Sp
-The \f(CW\*(C`\-rpath\*(C'\fR option may also be used on SunOS.  By default, on
-SunOS, the linker will form a runtime search patch out of all the
-\&\f(CW\*(C`\-L\*(C'\fR options it is given.  If a \f(CW\*(C`\-rpath\*(C'\fR option is used, the
-runtime search path will be formed exclusively using the \f(CW\*(C`\-rpath\*(C'\fR
-options, ignoring the \f(CW\*(C`\-L\*(C'\fR options.  This can be useful when using
-gcc, which adds many \f(CW\*(C`\-L\*(C'\fR options which may be on \s-1NFS\s0 mounted
-filesystems.
-.Sp
-For compatibility with other \s-1ELF\s0 linkers, if the \f(CW\*(C`\-R\*(C'\fR option is
-followed by a directory name, rather than a file name, it is treated as
-the \f(CW\*(C`\-rpath\*(C'\fR option.
-.Ip "\f(CW\*(C`\-rpath\-link \f(CI\s\-1DIR\s0\f(CW\*(C'\fR" 4
-.IX Item "-rpath-link DIR"
-When using \s-1ELF\s0 or SunOS, one shared library may require another.  This
-happens when an \f(CW\*(C`ld \-shared\*(C'\fR link includes a shared library as one
-of the input files.
-.Sp
-When the linker encounters such a dependency when doing a non-shared,
-non-relocatable link, it will automatically try to locate the required
-shared library and include it in the link, if it is not included
-explicitly.  In such a case, the \f(CW\*(C`\-rpath\-link\*(C'\fR option
-specifies the first set of directories to search.  The
-\&\f(CW\*(C`\-rpath\-link\*(C'\fR option may specify a sequence of directory names
-either by specifying a list of names separated by colons, or by
-appearing multiple times.
-.Sp
-This option should be used with caution as it overrides the search path
-that may have been hard compiled into a shared library. In such a case it
-is possible to use unintentionally a different search path than the
-runtime linker would do.
-.Sp
-The linker uses the following search paths to locate required shared
-libraries.
-.RS 4
-.Ip "1." 4
-Any directories specified by \f(CW\*(C`\-rpath\-link\*(C'\fR options.
-.Ip "2." 4
-Any directories specified by \f(CW\*(C`\-rpath\*(C'\fR options.  The difference
-between \f(CW\*(C`\-rpath\*(C'\fR and \f(CW\*(C`\-rpath\-link\*(C'\fR is that directories
-specified by \f(CW\*(C`\-rpath\*(C'\fR options are included in the executable and
-used at runtime, whereas the \f(CW\*(C`\-rpath\-link\*(C'\fR option is only effective
-at link time. It is for the native linker only.
-.Ip "3." 4
-On an \s-1ELF\s0 system, if the \f(CW\*(C`\-rpath\*(C'\fR and \f(CW\*(C`rpath\-link\*(C'\fR options
-were not used, search the contents of the environment variable
-\&\f(CW\*(C`LD_RUN_PATH\*(C'\fR. It is for the native linker only.
-.Ip "4." 4
-On SunOS, if the \f(CW\*(C`\-rpath\*(C'\fR option was not used, search any
-directories specified using \f(CW\*(C`\-L\*(C'\fR options.
-.Ip "5." 4
-For a native linker, the contents of the environment variable
-\&\f(CW\*(C`LD_LIBRARY_PATH\*(C'\fR.
-.Ip "6." 4
-For a native \s-1ELF\s0 linker, the directories in \f(CW\*(C`DT_RUNPATH\*(C'\fR or
-\&\f(CW\*(C`DT_RPATH\*(C'\fR of a shared library are searched for shared
-libraries needed by it. The \f(CW\*(C`DT_RPATH\*(C'\fR entries are ignored if
-\&\f(CW\*(C`DT_RUNPATH\*(C'\fR entries exist.
-.Ip "7." 4
-The default directories, normally \fI/lib\fR and \fI/usr/lib\fR.
-.Ip "8." 4
-For a native linker on an \s-1ELF\s0 system, if the file \fI/etc/ld.so.conf\fR
-exists, the list of directories found in that file.
-.RE
-.RS 4
-.Sp
-If the required shared library is not found, the linker will issue a
-warning and continue with the link.
-.RE
-.Ip "\f(CW\*(C`\-shared\*(C'\fR" 4
-.IX Item "-shared"
-.Ip "\f(CW\*(C`\-Bshareable\*(C'\fR" 4
-.IX Item "-Bshareable"
-Create a shared library.  This is currently only supported on \s-1ELF\s0, \s-1XCOFF\s0
-and SunOS platforms.  On SunOS, the linker will automatically create a
-shared library if the \f(CW\*(C`\-e\*(C'\fR option is not used and there are
-undefined symbols in the link.
-.Ip "\f(CW\*(C`\-\-sort\-common\*(C'\fR" 4
-.IX Item "--sort-common"
-This option tells \f(CW\*(C`ld\*(C'\fR to sort the common symbols by size when it
-places them in the appropriate output sections.  First come all the one
-byte symbols, then all the two bytes, then all the four bytes, and then
-everything else.  This is to prevent gaps between symbols due to
-alignment constraints.
-.Ip "\f(CW\*(C`\-\-split\-by\-file [\f(CIsize\f(CW]\*(C'\fR" 4
-.IX Item "--split-by-file [size]"
-Similar to \f(CW\*(C`\-\-split\-by\-reloc\*(C'\fR but creates a new output section for
-each input file when \fIsize\fR is reached.  \fIsize\fR defaults to a
-size of 1 if not given.
-.Ip "\f(CW\*(C`\-\-split\-by\-reloc [\f(CIcount\f(CW]\*(C'\fR" 4
-.IX Item "--split-by-reloc [count]"
-Tries to creates extra sections in the output file so that no single
-output section in the file contains more than \fIcount\fR relocations.
-This is useful when generating huge relocatable files for downloading into
-certain real time kernels with the \s-1COFF\s0 object file format; since \s-1COFF\s0
-cannot represent more than 65535 relocations in a single section.  Note
-that this will fail to work with object file formats which do not
-support arbitrary sections.  The linker will not split up individual
-input sections for redistribution, so if a single input section contains
-more than \fIcount\fR relocations one output section will contain that
-many relocations.  \fIcount\fR defaults to a value of 32768.
-.Ip "\f(CW\*(C`\-\-stats\*(C'\fR" 4
-.IX Item "--stats"
-Compute and display statistics about the operation of the linker, such
-as execution time and memory usage.
-.Ip "\f(CW\*(C`\-\-traditional\-format\*(C'\fR" 4
-.IX Item "--traditional-format"
-For some targets, the output of \f(CW\*(C`ld\*(C'\fR is different in some ways from
-the output of some existing linker.  This switch requests \f(CW\*(C`ld\*(C'\fR to
-use the traditional format instead.
-.Sp
-For example, on SunOS, \f(CW\*(C`ld\*(C'\fR combines duplicate entries in the
-symbol string table.  This can reduce the size of an output file with
-full debugging information by over 30 percent.  Unfortunately, the SunOS
-\&\f(CW\*(C`dbx\*(C'\fR program can not read the resulting program (\f(CW\*(C`gdb\*(C'\fR has no
-trouble).  The \fB\*(--traditional-format\fR switch tells \f(CW\*(C`ld\*(C'\fR to not
-combine duplicate entries.
-.Ip "\f(CW\*(C`\-\-section\-start \f(CIsectionname\f(CW=\f(CIorg\f(CW\*(C'\fR" 4
-.IX Item "--section-start sectionname=org"
-Locate a section in the output file at the absolute
-address given by \fIorg\fR.  You may use this option as many
-times as necessary to locate multiple sections in the command
-line.
-\&\fIorg\fR must be a single hexadecimal integer;
-for compatibility with other linkers, you may omit the leading
-\&\fB0x\fR usually associated with hexadecimal values.  \fINote:\fR there
-should be no white space between \fIsectionname\fR, the equals
-sign (``\fB=\fR''), and \fIorg\fR.
-.Ip "\f(CW\*(C`\-Tbss \f(CIorg\f(CW\*(C'\fR" 4
-.IX Item "-Tbss org"
-.Ip "\f(CW\*(C`\-Tdata \f(CIorg\f(CW\*(C'\fR" 4
-.IX Item "-Tdata org"
-.Ip "\f(CW\*(C`\-Ttext \f(CIorg\f(CW\*(C'\fR" 4
-.IX Item "-Ttext org"
-Use \fIorg\fR as the starting address for\-\-\-respectively\-\-\-the
-\&\f(CW\*(C`bss\*(C'\fR, \f(CW\*(C`data\*(C'\fR, or the \f(CW\*(C`text\*(C'\fR segment of the output file.
-\&\fIorg\fR must be a single hexadecimal integer;
-for compatibility with other linkers, you may omit the leading
-\&\fB0x\fR usually associated with hexadecimal values.
-.Ip "\f(CW\*(C`\-\-dll\-verbose\*(C'\fR" 4
-.IX Item "--dll-verbose"
-.Ip "\f(CW\*(C`\-\-verbose\*(C'\fR" 4
-.IX Item "--verbose"
-Display the version number for \f(CW\*(C`ld\*(C'\fR and list the linker emulations
-supported.  Display which input files can and cannot be opened.  Display
-the linker script if using a default builtin script.
-.Ip "\f(CW\*(C`\-\-version\-script=\f(CIversion\-scriptfile\f(CW\*(C'\fR" 4
-.IX Item "--version-script=version-scriptfile"
-Specify the name of a version script to the linker.  This is typically
-used when creating shared libraries to specify additional information
-about the version heirarchy for the library being created.  This option
-is only meaningful on \s-1ELF\s0 platforms which support shared libraries.
-.Ip "\f(CW\*(C`\-\-warn\-common\*(C'\fR" 4
-.IX Item "--warn-common"
-Warn when a common symbol is combined with another common symbol or with
-a symbol definition.  Unix linkers allow this somewhat sloppy practice,
-but linkers on some other operating systems do not.  This option allows
-you to find potential problems from combining global symbols.
-Unfortunately, some C libraries use this practice, so you may get some
-warnings about symbols in the libraries as well as in your programs.
-.Sp
-There are three kinds of global symbols, illustrated here by C examples:
-.RS 4
-.Ip "\fBint i = 1;\fR" 4
-.IX Item "int i = 1;"
-A definition, which goes in the initialized data section of the output
-file.
-.Ip "\fBextern int i;\fR" 4
-.IX Item "extern int i;"
-An undefined reference, which does not allocate space.
-There must be either a definition or a common symbol for the
-variable somewhere.
-.Ip "\fBint i;\fR" 4
-.IX Item "int i;"
-A common symbol.  If there are only (one or more) common symbols for a
-variable, it goes in the uninitialized data area of the output file.
-The linker merges multiple common symbols for the same variable into a
-single symbol.  If they are of different sizes, it picks the largest
-size.  The linker turns a common symbol into a declaration, if there is
-a definition of the same variable.
-.RE
-.RS 4
-.Sp
-The \fB\*(--warn-common\fR option can produce five kinds of warnings.
-Each warning consists of a pair of lines: the first describes the symbol
-just encountered, and the second describes the previous symbol
-encountered with the same name.  One or both of the two symbols will be
-a common symbol.
-.RS 4
-.RE
-.Ip "1." 4
-Turning a common symbol into a reference, because there is already a
-definition for the symbol.
-.Sp
-.Vb 3
-\&        I<file>(I<section>): warning: common of `I<symbol>'
-\&           overridden by definition
-\&        I<file>(I<section>): warning: defined here
-.Ve
-.Ip "2." 4
-Turning a common symbol into a reference, because a later definition for
-the symbol is encountered.  This is the same as the previous case,
-except that the symbols are encountered in a different order.
-.Sp
-.Vb 3
-\&        I<file>(I<section>): warning: definition of `I<symbol>'
-\&           overriding common
-\&        I<file>(I<section>): warning: common is here
-.Ve
-.Ip "3." 4
-Merging a common symbol with a previous same-sized common symbol.
-.Sp
-.Vb 3
-\&        I<file>(I<section>): warning: multiple common
-\&           of `I<symbol>'
-\&        I<file>(I<section>): warning: previous common is here
-.Ve
-.Ip "4." 4
-Merging a common symbol with a previous larger common symbol.
-.Sp
-.Vb 3
-\&        I<file>(I<section>): warning: common of `I<symbol>'
-\&           overridden by larger common
-\&        I<file>(I<section>): warning: larger common is here
-.Ve
-.Ip "5." 4
-Merging a common symbol with a previous smaller common symbol.  This is
-the same as the previous case, except that the symbols are
-encountered in a different order.
-.Sp
-.Vb 3
-\&        I<file>(I<section>): warning: common of `I<symbol>'
-\&           overriding smaller common
-\&        I<file>(I<section>): warning: smaller common is here
-.Ve
-.RE
-.RS 4
-.RE
-.Ip "\f(CW\*(C`\-\-warn\-constructors\*(C'\fR" 4
-.IX Item "--warn-constructors"
-Warn if any global constructors are used.  This is only useful for a few
-object file formats.  For formats like \s-1COFF\s0 or \s-1ELF\s0, the linker can not
-detect the use of global constructors.
-.Ip "\f(CW\*(C`\-\-warn\-multiple\-gp\*(C'\fR" 4
-.IX Item "--warn-multiple-gp"
-Warn if multiple global pointer values are required in the output file.
-This is only meaningful for certain processors, such as the Alpha.
-Specifically, some processors put large-valued constants in a special
-section.  A special register (the global pointer) points into the middle
-of this section, so that constants can be loaded efficiently via a
-base-register relative addressing mode.  Since the offset in
-base-register relative mode is fixed and relatively small (e.g., 16
-bits), this limits the maximum size of the constant pool.  Thus, in
-large programs, it is often necessary to use multiple global pointer
-values in order to be able to address all possible constants.  This
-option causes a warning to be issued whenever this case occurs.
-.Ip "\f(CW\*(C`\-\-warn\-once\*(C'\fR" 4
-.IX Item "--warn-once"
-Only warn once for each undefined symbol, rather than once per module
-which refers to it.
-.Ip "\f(CW\*(C`\-\-warn\-section\-align\*(C'\fR" 4
-.IX Item "--warn-section-align"
-Warn if the address of an output section is changed because of
-alignment.  Typically, the alignment will be set by an input section.
-The address will only be changed if it not explicitly specified; that
-is, if the \f(CW\*(C`SECTIONS\*(C'\fR command does not specify a start address for
-the section.
-.Ip "\f(CW\*(C`\-\-whole\-archive\*(C'\fR" 4
-.IX Item "--whole-archive"
-For each archive mentioned on the command line after the
-\&\f(CW\*(C`\-\-whole\-archive\*(C'\fR option, include every object file in the archive
-in the link, rather than searching the archive for the required object
-files.  This is normally used to turn an archive file into a shared
-library, forcing every object to be included in the resulting shared
-library.  This option may be used more than once.
-.Sp
-Two notes when using this option from gcc: First, gcc doesn't know
-about this option, so you have to use \f(CW\*(C`\-Wl,\-whole\-archive\*(C'\fR.
-Second, don't forget to use \f(CW\*(C`\-Wl,\-no\-whole\-archive\*(C'\fR after your
-list of archives, because gcc will add its own list of archives to
-your link and you may not want this flag to affect those as well.
-.Ip "\f(CW\*(C`\-\-wrap \f(CIsymbol\f(CW\*(C'\fR" 4
-.IX Item "--wrap symbol"
-Use a wrapper function for \fIsymbol\fR.  Any undefined reference to
-\&\fIsymbol\fR will be resolved to \f(CW\*(C`_\|_wrap_\f(CIsymbol\f(CW\*(C'\fR.  Any
-undefined reference to \f(CW\*(C`_\|_real_\f(CIsymbol\f(CW\*(C'\fR will be resolved to
-\&\fIsymbol\fR.
-.Sp
-This can be used to provide a wrapper for a system function.  The
-wrapper function should be called \f(CW\*(C`_\|_wrap_\f(CIsymbol\f(CW\*(C'\fR.  If it
-wishes to call the system function, it should call
-\&\f(CW\*(C`_\|_real_\f(CIsymbol\f(CW\*(C'\fR.
-.Sp
-Here is a trivial example:
-.Sp
-.Vb 6
-\&        void *
-\&        __wrap_malloc (int c)
-\&        {
-\&          printf ("malloc called with %ld\en", c);
-\&          return __real_malloc (c);
-\&        }
-.Ve
-If you link other code with this file using \f(CW\*(C`\-\-wrap malloc\*(C'\fR, then
-all calls to \f(CW\*(C`malloc\*(C'\fR will call the function \f(CW\*(C`_\|_wrap_malloc\*(C'\fR
-instead.  The call to \f(CW\*(C`_\|_real_malloc\*(C'\fR in \f(CW\*(C`_\|_wrap_malloc\*(C'\fR will
-call the real \f(CW\*(C`malloc\*(C'\fR function.
-.Sp
-You may wish to provide a \f(CW\*(C`_\|_real_malloc\*(C'\fR function as well, so that
-links without the \f(CW\*(C`\-\-wrap\*(C'\fR option will succeed.  If you do this,
-you should not put the definition of \f(CW\*(C`_\|_real_malloc\*(C'\fR in the same
-file as \f(CW\*(C`_\|_wrap_malloc\*(C'\fR; if you do, the assembler may resolve the
-call before the linker has a chance to wrap it to \f(CW\*(C`malloc\*(C'\fR.
-.Ip "\f(CW\*(C`\-\-enable\-new\-dtags\*(C'\fR" 4
-.IX Item "--enable-new-dtags"
-.Ip "\f(CW\*(C`\-\-disable\-new\-dtags\*(C'\fR" 4
-.IX Item "--disable-new-dtags"
-This linker can create the new dynamic tags in \s-1ELF\s0. But the older \s-1ELF\s0
-systems may not understand them. If you specify
-\&\f(CW\*(C`\-\-enable\-new\-dtags\*(C'\fR, the dynamic tags will be created as needed.
-If you specify \f(CW\*(C`\-\-disable\-new\-dtags\*(C'\fR, no new dynamic tags will be
-created. By default, the new dynamic tags are not created. Note that
-those options are only available for \s-1ELF\s0 systems.
-.PP
-The i386 \s-1PE\s0 linker supports the \f(CW\*(C`\-shared\*(C'\fR option, which causes
-the output to be a dynamically linked library (\s-1DLL\s0) instead of a
-normal executable.  You should name the output \f(CW\*(C`*.dll\*(C'\fR when you
-use this option.  In addition, the linker fully supports the standard
-\&\f(CW\*(C`*.def\*(C'\fR files, which may be specified on the linker command line
-like an object file (in fact, it should precede archives it exports
-symbols from, to ensure that they get linked in, just like a normal
-object file).
-.PP
-In addition to the options common to all targets, the i386 \s-1PE\s0 linker
-support additional command line options that are specific to the i386
-\&\s-1PE\s0 target.  Options that take values may be separated from their
-values by either a space or an equals sign.
-.Ip "\f(CW\*(C`\-\-add\-stdcall\-alias\*(C'\fR" 4
-.IX Item "--add-stdcall-alias"
-If given, symbols with a stdcall suffix (@\fInn\fR) will be exported
-as-is and also with the suffix stripped.
-.Ip "\f(CW\*(C`\-\-base\-file \f(CIfile\f(CW\*(C'\fR" 4
-.IX Item "--base-file file"
-Use \fIfile\fR as the name of a file in which to save the base
-addresses of all the relocations needed for generating DLLs with
-\&\fIdlltool\fR.
-.Ip "\f(CW\*(C`\-\-dll\*(C'\fR" 4
-.IX Item "--dll"
-Create a \s-1DLL\s0 instead of a regular executable.  You may also use
-\&\f(CW\*(C`\-shared\*(C'\fR or specify a \f(CW\*(C`LIBRARY\*(C'\fR in a given \f(CW\*(C`.def\*(C'\fR
-file.
-.Ip "\f(CW\*(C`\-\-enable\-stdcall\-fixup\*(C'\fR" 4
-.IX Item "--enable-stdcall-fixup"
-.Ip "\f(CW\*(C`\-\-disable\-stdcall\-fixup\*(C'\fR" 4
-.IX Item "--disable-stdcall-fixup"
-If the link finds a symbol that it cannot resolve, it will attempt to
-do \*(L"fuzzy linking\*(R" by looking for another defined symbol that differs
-only in the format of the symbol name (cdecl vs stdcall) and will
-resolve that symbol by linking to the match.  For example, the
-undefined symbol \f(CW\*(C`_foo\*(C'\fR might be linked to the function
-\&\f(CW\*(C`_foo@12\*(C'\fR, or the undefined symbol \f(CW\*(C`_bar@16\*(C'\fR might be linked
-to the function \f(CW\*(C`_bar\*(C'\fR.  When the linker does this, it prints a
-warning, since it normally should have failed to link, but sometimes
-import libraries generated from third-party dlls may need this feature
-to be usable.  If you specify \f(CW\*(C`\-\-enable\-stdcall\-fixup\*(C'\fR, this
-feature is fully enabled and warnings are not printed.  If you specify
-\&\f(CW\*(C`\-\-disable\-stdcall\-fixup\*(C'\fR, this feature is disabled and such
-mismatches are considered to be errors.
-.Ip "\f(CW\*(C`\-\-export\-all\-symbols\*(C'\fR" 4
-.IX Item "--export-all-symbols"
-If given, all global symbols in the objects used to build a \s-1DLL\s0 will
-be exported by the \s-1DLL\s0.  Note that this is the default if there
-otherwise wouldn't be any exported symbols.  When symbols are
-explicitly exported via \s-1DEF\s0 files or implicitly exported via function
-attributes, the default is to not export anything else unless this
-option is given.  Note that the symbols \f(CW\*(C`DllMain@12\*(C'\fR,
-\&\f(CW\*(C`DllEntryPoint@0\*(C'\fR, and \f(CW\*(C`impure_ptr\*(C'\fR will not be automatically
-exported.
-.Ip "\f(CW\*(C`\-\-exclude\-symbols \f(CIsymbol\f(CW,\f(CIsymbol\f(CW,...\*(C'\fR" 4
-.IX Item "--exclude-symbols symbol,symbol,..."
-Specifies a list of symbols which should not be automatically
-exported.  The symbol names may be delimited by commas or colons.
-.Ip "\f(CW\*(C`\-\-file\-alignment\*(C'\fR" 4
-.IX Item "--file-alignment"
-Specify the file alignment.  Sections in the file will always begin at
-file offsets which are multiples of this number.  This defaults to
-512.
-.Ip "\f(CW\*(C`\-\-heap \f(CIreserve\f(CW\*(C'\fR" 4
-.IX Item "--heap reserve"
-.Ip "\f(CW\*(C`\-\-heap \f(CIreserve\f(CW,\f(CIcommit\f(CW\*(C'\fR" 4
-.IX Item "--heap reserve,commit"
-Specify the amount of memory to reserve (and optionally commit) to be
-used as heap for this program.  The default is 1Mb reserved, 4K
-committed.
-.Ip "\f(CW\*(C`\-\-image\-base \f(CIvalue\f(CW\*(C'\fR" 4
-.IX Item "--image-base value"
-Use \fIvalue\fR as the base address of your program or dll.  This is
-the lowest memory location that will be used when your program or dll
-is loaded.  To reduce the need to relocate and improve performance of
-your dlls, each should have a unique base address and not overlap any
-other dlls.  The default is 0x400000 for executables, and 0x10000000
-for dlls.
-.Ip "\f(CW\*(C`\-\-kill\-at\*(C'\fR" 4
-.IX Item "--kill-at"
-If given, the stdcall suffixes (@\fInn\fR) will be stripped from
-symbols before they are exported.
-.Ip "\f(CW\*(C`\-\-major\-image\-version \f(CIvalue\f(CW\*(C'\fR" 4
-.IX Item "--major-image-version value"
-Sets the major number of the \*(L"image version\*(R".  Defaults to 1.
-.Ip "\f(CW\*(C`\-\-major\-os\-version \f(CIvalue\f(CW\*(C'\fR" 4
-.IX Item "--major-os-version value"
-Sets the major number of the \*(L"os version\*(R".  Defaults to 4.
-.Ip "\f(CW\*(C`\-\-major\-subsystem\-version \f(CIvalue\f(CW\*(C'\fR" 4
-.IX Item "--major-subsystem-version value"
-Sets the major number of the \*(L"subsystem version\*(R".  Defaults to 4.
-.Ip "\f(CW\*(C`\-\-minor\-image\-version \f(CIvalue\f(CW\*(C'\fR" 4
-.IX Item "--minor-image-version value"
-Sets the minor number of the \*(L"image version\*(R".  Defaults to 0.
-.Ip "\f(CW\*(C`\-\-minor\-os\-version \f(CIvalue\f(CW\*(C'\fR" 4
-.IX Item "--minor-os-version value"
-Sets the minor number of the \*(L"os version\*(R".  Defaults to 0.
-.Ip "\f(CW\*(C`\-\-minor\-subsystem\-version \f(CIvalue\f(CW\*(C'\fR" 4
-.IX Item "--minor-subsystem-version value"
-Sets the minor number of the \*(L"subsystem version\*(R".  Defaults to 0.
-.Ip "\f(CW\*(C`\-\-output\-def \f(CIfile\f(CW\*(C'\fR" 4
-.IX Item "--output-def file"
-The linker will create the file \fIfile\fR which will contain a \s-1DEF\s0
-file corresponding to the \s-1DLL\s0 the linker is generating.  This \s-1DEF\s0 file
-(which should be called \f(CW\*(C`*.def\*(C'\fR) may be used to create an import
-library with \f(CW\*(C`dlltool\*(C'\fR or may be used as a reference to
-automatically or implicitly exported symbols.
-.Ip "\f(CW\*(C`\-\-section\-alignment\*(C'\fR" 4
-.IX Item "--section-alignment"
-Sets the section alignment.  Sections in memory will always begin at
-addresses which are a multiple of this number.  Defaults to 0x1000.
-.Ip "\f(CW\*(C`\-\-stack \f(CIreserve\f(CW\*(C'\fR" 4
-.IX Item "--stack reserve"
-.Ip "\f(CW\*(C`\-\-stack \f(CIreserve\f(CW,\f(CIcommit\f(CW\*(C'\fR" 4
-.IX Item "--stack reserve,commit"
-Specify the amount of memory to reserve (and optionally commit) to be
-used as stack for this program.  The default is 32Mb reserved, 4K
-committed.
-.Ip "\f(CW\*(C`\-\-subsystem \f(CIwhich\f(CW\*(C'\fR" 4
-.IX Item "--subsystem which"
-.Ip "\f(CW\*(C`\-\-subsystem \f(CIwhich\f(CW:\f(CImajor\f(CW\*(C'\fR" 4
-.IX Item "--subsystem which:major"
-.Ip "\f(CW\*(C`\-\-subsystem \f(CIwhich\f(CW:\f(CImajor\f(CW.\f(CIminor\f(CW\*(C'\fR" 4
-.IX Item "--subsystem which:major.minor"
-Specifies the subsystem under which your program will execute.  The
-legal values for \fIwhich\fR are \f(CW\*(C`native\*(C'\fR, \f(CW\*(C`windows\*(C'\fR,
-\&\f(CW\*(C`console\*(C'\fR, and \f(CW\*(C`posix\*(C'\fR.  You may optionally set the
-subsystem version also.
-.SH "ENVIRONMENT"
-.IX Header "ENVIRONMENT"
-You can change the behavior of \f(CW\*(C`ld\*(C'\fR with the environment variables
-\&\f(CW\*(C`GNUTARGET\*(C'\fR, \f(CW\*(C`LDEMULATION\*(C'\fR, and \f(CW\*(C`COLLECT_NO_DEMANGLE\*(C'\fR.
-.PP
-\&\f(CW\*(C`GNUTARGET\*(C'\fR determines the input-file object format if you don't
-use \fB\-b\fR (or its synonym \fB\*(--format\fR).  Its value should be one
-of the \s-1BFD\s0 names for an input format.  If there is no
-\&\f(CW\*(C`GNUTARGET\*(C'\fR in the environment, \f(CW\*(C`ld\*(C'\fR uses the natural format
-of the target. If \f(CW\*(C`GNUTARGET\*(C'\fR is set to \f(CW\*(C`default\*(C'\fR then \s-1BFD\s0
-attempts to discover the input format by examining binary input files;
-this method often succeeds, but there are potential ambiguities, since
-there is no method of ensuring that the magic number used to specify
-object-file formats is unique.  However, the configuration procedure for
-\&\s-1BFD\s0 on each system places the conventional format for that system first
-in the search-list, so ambiguities are resolved in favor of convention.
-.PP
-\&\f(CW\*(C`LDEMULATION\*(C'\fR determines the default emulation if you don't use the
-\&\fB\-m\fR option.  The emulation can affect various aspects of linker
-behaviour, particularly the default linker script.  You can list the
-available emulations with the \fB\*(--verbose\fR or \fB\-V\fR options.  If
-the \fB\-m\fR option is not used, and the \f(CW\*(C`LDEMULATION\*(C'\fR environment
-variable is not defined, the default emulation depends upon how the
-linker was configured.
-.PP
-Normally, the linker will default to demangling symbols.  However, if
-\&\f(CW\*(C`COLLECT_NO_DEMANGLE\*(C'\fR is set in the environment, then it will
-default to not demangling symbols.  This environment variable is used in
-a similar fashion by the \f(CW\*(C`gcc\*(C'\fR linker wrapper program.  The default
-may be overridden by the \fB\*(--demangle\fR and \fB\*(--no-demangle\fR
-options.
-.SH "SEE ALSO"
-.IX Header "SEE ALSO"
-\&\fIar\fR\|(1), \fInm\fR\|(1), \fIobjcopy\fR\|(1), \fIobjdump\fR\|(1), \fIreadelf\fR\|(1) and
-the Info entries for \fIbinutils\fR and
-\&\fIld\fR.
-.SH "COPYRIGHT"
-.IX Header "COPYRIGHT"
-Copyright (c) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000 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 \*(L"\s-1GNU\s0 Free Documentation License\*(R".
This page took 0.371427 seconds and 4 git commands to generate.