* Many files: Added gettext invocations around user-visible
authorTom Tromey <tromey@redhat.com>
Wed, 22 Apr 1998 05:32:22 +0000 (05:32 +0000)
committerTom Tromey <tromey@redhat.com>
Wed, 22 Apr 1998 05:32:22 +0000 (05:32 +0000)
strings.
* bucomm.h: Added gettext-related includes and defines.
* acconfig.h (ENABLE_NLS, HAVE_CATGETS, HAVE_GETTEXT, HAVE_STPCPY,
HAVE_LC_MESSAGES): Define.
* configure.in: Call CY_GNU_GETTEXT.  Create po/Makefile.in and
po/Makefile.  Use AM_PROG_LEX.
* Makefile.am (SUBDIRS): New macro.
(POTFILES): Likewise.
(po/POTFILES.in): New target.
(LDADD): Added INTLLIBS.
(objdump_LDADD): Likewise.
(c__filt_LDADD): Likewise.
(ar_LDADD): Likewise.
(ranlib_LDADD): Likewise.
(dlltool_LDADD): Likewise.
(windres_LDADD): Likewise.
* po/Make-in, po/POTFILES.in, po/binutils.pot: New files.

22 files changed:
binutils/ChangeLog
binutils/Makefile.am
binutils/Makefile.in
binutils/acconfig.h
binutils/addr2line.c [new file with mode: 0644]
binutils/ar.c
binutils/bucomm.h
binutils/coffdump.c
binutils/configure
binutils/configure.in
binutils/dlltool.c
binutils/nlmconv.c
binutils/nm.c
binutils/objcopy.c
binutils/objdump.c
binutils/po/Make-in [new file with mode: 0644]
binutils/po/POTFILES.in [new file with mode: 0644]
binutils/size.c
binutils/srconv.c
binutils/strings.c
binutils/sysdump.c
binutils/windres.c

index 63b62a30c440ca075498a745d4c94d1c1b5e2a25..20985cf6c203b92e9699bf03dbd1ed3ac0824ba2 100644 (file)
@@ -1,3 +1,24 @@
+Tue Apr 21 22:13:08 1998  Tom Tromey  <tromey@scribbles.cygnus.com>
+
+       * Many files: Added gettext invocations around user-visible
+       strings.
+       * bucomm.h: Added gettext-related includes and defines.
+       * acconfig.h (ENABLE_NLS, HAVE_CATGETS, HAVE_GETTEXT, HAVE_STPCPY,
+       HAVE_LC_MESSAGES): Define.
+       * configure.in: Call CY_GNU_GETTEXT.  Create po/Makefile.in and
+       po/Makefile.  Use AM_PROG_LEX.
+       * Makefile.am (SUBDIRS): New macro.
+       (POTFILES): Likewise.
+       (po/POTFILES.in): New target.
+       (LDADD): Added INTLLIBS.
+       (objdump_LDADD): Likewise.
+       (c__filt_LDADD): Likewise.
+       (ar_LDADD): Likewise.
+       (ranlib_LDADD): Likewise.
+       (dlltool_LDADD): Likewise.
+       (windres_LDADD): Likewise.
+       * po/Make-in, po/POTFILES.in, po/binutils.pot: New files.
+
 Tue Apr 21 16:07:18 1998  Stanislav Brabec  <utx@k332.feld.cvut.cz>
 
        * objcopy.c (preserve_dates): New file static variable.
 Tue Apr 21 16:07:18 1998  Stanislav Brabec  <utx@k332.feld.cvut.cz>
 
        * objcopy.c (preserve_dates): New file static variable.
index a4205f819178cefa0d49d928743cdd7da68770de..b0396b61f2d48dd979e2172d6cd51e353a38d50c 100644 (file)
@@ -2,6 +2,8 @@
 
 AUTOMAKE_OPTIONS = cygnus dejagnu
 
 
 AUTOMAKE_OPTIONS = cygnus dejagnu
 
+SUBDIRS = po
+
 tooldir = $(exec_prefix)/$(target_alias)
 
 ## These aren't set by automake, because they appear in
 tooldir = $(exec_prefix)/$(target_alias)
 
 ## These aren't set by automake, because they appear in
@@ -92,6 +94,11 @@ OPCODES = ../opcodes/libopcodes.la
 
 LIBIBERTY = ../libiberty/libiberty.a
 
 
 LIBIBERTY = ../libiberty/libiberty.a
 
+POTFILES = $(CFILES) $(DEBUG_SRCS) $(HFILES)
+po/POTFILES.in: @MAINT@ Makefile
+       for file in $(POTFILES); do echo $$file; done | sort > tmp \
+         && mv tmp $(srcdir)/po/POTFILES.in
+
 EXPECT = `if [ -f $$r/../expect/expect ] ; then \
           echo $$r/../expect/expect ; \
           else echo expect ; fi`
 EXPECT = `if [ -f $$r/../expect/expect ] ; then \
           echo $$r/../expect/expect ; \
           else echo expect ; fi`
@@ -135,7 +142,7 @@ installcheck:
 
 info_TEXINFOS = binutils.texi
 
 
 info_TEXINFOS = binutils.texi
 
-LDADD = $(BFDLIB) $(LIBIBERTY)
+LDADD = $(BFDLIB) $(LIBIBERTY) $(INTLLIBS)
 
 size_SOURCES = size.c $(BULIBS)
 
 
 size_SOURCES = size.c $(BULIBS)
 
@@ -148,7 +155,7 @@ strip_new_SOURCES = objcopy.c is-strip.c $(WRITE_DEBUG_SRCS) $(BULIBS)
 nm_new_SOURCES = nm.c $(BULIBS)
 
 objdump_SOURCES = objdump.c prdbg.c $(DEBUG_SRCS) $(BULIBS)
 nm_new_SOURCES = nm.c $(BULIBS)
 
 objdump_SOURCES = objdump.c prdbg.c $(DEBUG_SRCS) $(BULIBS)
-objdump_LDADD = $(OPCODES) $(BFDLIB) $(LIBIBERTY)
+objdump_LDADD = $(OPCODES) $(BFDLIB) $(LIBIBERTY) $(INTLLIBS)
 
 underscore.c: stamp-under ; @true
 
 
 underscore.c: stamp-under ; @true
 
@@ -162,13 +169,13 @@ cplus-dem.o: $(BASEDIR)/libiberty/cplus-dem.c $(INCDIR)/getopt.h
        $(COMPILE) -c -DMAIN -DVERSION='"$(VERSION)"' $(BASEDIR)/libiberty/cplus-dem.c
 
 c__filt_SOURCES =
        $(COMPILE) -c -DMAIN -DVERSION='"$(VERSION)"' $(BASEDIR)/libiberty/cplus-dem.c
 
 c__filt_SOURCES =
-c__filt_LDADD = cplus-dem.o underscore.o $(LIBIBERTY)
+c__filt_LDADD = cplus-dem.o underscore.o $(LIBIBERTY) $(INTLLIBS)
 
 ar_SOURCES = arparse.y arlex.l ar.c not-ranlib.c arsup.c $(BULIBS)
 
 ar_SOURCES = arparse.y arlex.l ar.c not-ranlib.c arsup.c $(BULIBS)
-ar_LDADD = $(BFDLIB) $(LIBIBERTY) @LEXLIB@
+ar_LDADD = $(BFDLIB) $(LIBIBERTY) @LEXLIB@ $(INTLLIBS)
 
 ranlib_SOURCES = ar.c is-ranlib.c arparse.y arlex.l arsup.c $(BULIBS)
 
 ranlib_SOURCES = ar.c is-ranlib.c arparse.y arlex.l arsup.c $(BULIBS)
-ranlib_LDADD = $(BFDLIB) $(LIBIBERTY) @LEXLIB@
+ranlib_LDADD = $(BFDLIB) $(LIBIBERTY) @LEXLIB@ $(INTLLIBS)
 
 addr2line_SOURCES = addr2line.c $(BULIBS)
 
 
 addr2line_SOURCES = addr2line.c $(BULIBS)
 
@@ -218,7 +225,7 @@ sysinfo.o: sysinfo.c
 srconv_SOURCES = srconv.c coffgrok.c $(BULIBS)
 
 dlltool_SOURCES = dlltool.c defparse.y deflex.l $(BULIBS)
 srconv_SOURCES = srconv.c coffgrok.c $(BULIBS)
 
 dlltool_SOURCES = dlltool.c defparse.y deflex.l $(BULIBS)
-dlltool_LDADD = $(BFDLIB) $(LIBIBERTY) @LEXLIB@
+dlltool_LDADD = $(BFDLIB) $(LIBIBERTY) @LEXLIB@ $(INTLLIBS)
 
 dlltool.o:dlltool.c
        $(COMPILE) -c $(DLLTOOL_DEFS) $(srcdir)/dlltool.c
 
 dlltool.o:dlltool.c
        $(COMPILE) -c $(DLLTOOL_DEFS) $(srcdir)/dlltool.c
@@ -237,10 +244,11 @@ nlmconv_SOURCES = nlmconv.c nlmheader.y $(BULIBS)
 
 windres_SOURCES = windres.c resrc.c rescoff.c resbin.c rcparse.y rclex.l \
        $(BULIBS)
 
 windres_SOURCES = windres.c resrc.c rescoff.c resbin.c rcparse.y rclex.l \
        $(BULIBS)
-windres_LDADD = $(BFDLIB) $(LIBIBERTY) @LEXLIB@
+windres_LDADD = $(BFDLIB) $(LIBIBERTY) @LEXLIB@ $(INTLLIBS)
 
 DISTSTUFF = arparse.c arparse.h arlex.c nlmheader.c sysinfo.c sysinfo.h \
 
 DISTSTUFF = arparse.c arparse.h arlex.c nlmheader.c sysinfo.c sysinfo.h \
-       syslex.c deflex.c
+       syslex.c deflex.c defparse.h defparse.c rclex.c rcparse.h rcparse.c
+
 diststuff: $(DISTSTUFF) info
 
 DISTCLEANFILES = stamp-under sysinfo underscore.c sysroff.c sysroff.h \
 diststuff: $(DISTSTUFF) info
 
 DISTCLEANFILES = stamp-under sysinfo underscore.c sysroff.c sysroff.h \
index 8cecb1f8419ee55a01cd6b1025042e1bd91246f4..b9483ab6d7602ef42fb4ecaf3179cccc57233f64 100644 (file)
@@ -1,4 +1,4 @@
-# Makefile.in generated automatically by automake 1.2e from Makefile.am
+# Makefile.in generated automatically by automake 1.3 from Makefile.am
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
 
 # Copyright (C) 1994, 1995, 1996, 1997, 1998 Free Software Foundation, Inc.
 # This Makefile.in is free software; the Free Software Foundation
@@ -32,6 +32,8 @@ mandir = @mandir@
 includedir = @includedir@
 oldincludedir = /usr/include
 
 includedir = @includedir@
 oldincludedir = /usr/include
 
+DISTDIR =
+
 pkgdatadir = $(datadir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
 pkgdatadir = $(datadir)/@PACKAGE@
 pkglibdir = $(libdir)/@PACKAGE@
 pkgincludedir = $(includedir)/@PACKAGE@
@@ -70,20 +72,15 @@ CC = @CC@
 DLLTOOL_DEFS = @DLLTOOL_DEFS@
 EXEEXT = @EXEEXT@
 HDEFINES = @HDEFINES@
 DLLTOOL_DEFS = @DLLTOOL_DEFS@
 EXEEXT = @EXEEXT@
 HDEFINES = @HDEFINES@
-LD = @LD@
 LIBTOOL = @LIBTOOL@
 LIBTOOL = @LIBTOOL@
-LN_S = @LN_S@
-MAINT = @MAINT@
-MAKEINFO = @MAKEINFO@
 NLMCONV_DEFS = @NLMCONV_DEFS@
 NLMCONV_DEFS = @NLMCONV_DEFS@
-NM = @NM@
-PACKAGE = @PACKAGE@
 RANLIB = @RANLIB@
 UNDERSCORE = @UNDERSCORE@
 RANLIB = @RANLIB@
 UNDERSCORE = @UNDERSCORE@
-VERSION = @VERSION@
 
 AUTOMAKE_OPTIONS = cygnus dejagnu
 
 
 AUTOMAKE_OPTIONS = cygnus dejagnu
 
+SUBDIRS = po
+
 tooldir = $(exec_prefix)/$(target_alias)
 
 CC_FOR_BUILD = @CC_FOR_BUILD@
 tooldir = $(exec_prefix)/$(target_alias)
 
 CC_FOR_BUILD = @CC_FOR_BUILD@
@@ -170,6 +167,8 @@ OPCODES = ../opcodes/libopcodes.la
 
 LIBIBERTY = ../libiberty/libiberty.a
 
 
 LIBIBERTY = ../libiberty/libiberty.a
 
+POTFILES = $(CFILES) $(DEBUG_SRCS) $(HFILES)
+
 EXPECT = `if [ -f $$r/../expect/expect ] ; then \
           echo $$r/../expect/expect ; \
           else echo expect ; fi`
 EXPECT = `if [ -f $$r/../expect/expect ] ; then \
           echo $$r/../expect/expect ; \
           else echo expect ; fi`
@@ -194,7 +193,7 @@ CC_FOR_TARGET = ` \
 
 info_TEXINFOS = binutils.texi
 
 
 info_TEXINFOS = binutils.texi
 
-LDADD = $(BFDLIB) $(LIBIBERTY)
+LDADD = $(BFDLIB) $(LIBIBERTY) $(INTLLIBS)
 
 size_SOURCES = size.c $(BULIBS)
 
 
 size_SOURCES = size.c $(BULIBS)
 
@@ -207,23 +206,23 @@ strip_new_SOURCES = objcopy.c is-strip.c $(WRITE_DEBUG_SRCS) $(BULIBS)
 nm_new_SOURCES = nm.c $(BULIBS)
 
 objdump_SOURCES = objdump.c prdbg.c $(DEBUG_SRCS) $(BULIBS)
 nm_new_SOURCES = nm.c $(BULIBS)
 
 objdump_SOURCES = objdump.c prdbg.c $(DEBUG_SRCS) $(BULIBS)
-objdump_LDADD = $(OPCODES) $(BFDLIB) $(LIBIBERTY)
+objdump_LDADD = $(OPCODES) $(BFDLIB) $(LIBIBERTY) $(INTLLIBS)
 
 c__filt_SOURCES =
 
 c__filt_SOURCES =
-c__filt_LDADD = cplus-dem.o underscore.o $(LIBIBERTY)
+c__filt_LDADD = cplus-dem.o underscore.o $(LIBIBERTY) $(INTLLIBS)
 
 ar_SOURCES = arparse.y arlex.l ar.c not-ranlib.c arsup.c $(BULIBS)
 
 ar_SOURCES = arparse.y arlex.l ar.c not-ranlib.c arsup.c $(BULIBS)
-ar_LDADD = $(BFDLIB) $(LIBIBERTY) @LEXLIB@
+ar_LDADD = $(BFDLIB) $(LIBIBERTY) @LEXLIB@ $(INTLLIBS)
 
 ranlib_SOURCES = ar.c is-ranlib.c arparse.y arlex.l arsup.c $(BULIBS)
 
 ranlib_SOURCES = ar.c is-ranlib.c arparse.y arlex.l arsup.c $(BULIBS)
-ranlib_LDADD = $(BFDLIB) $(LIBIBERTY) @LEXLIB@
+ranlib_LDADD = $(BFDLIB) $(LIBIBERTY) @LEXLIB@ $(INTLLIBS)
 
 addr2line_SOURCES = addr2line.c $(BULIBS)
 
 srconv_SOURCES = srconv.c coffgrok.c $(BULIBS)
 
 dlltool_SOURCES = dlltool.c defparse.y deflex.l $(BULIBS)
 
 addr2line_SOURCES = addr2line.c $(BULIBS)
 
 srconv_SOURCES = srconv.c coffgrok.c $(BULIBS)
 
 dlltool_SOURCES = dlltool.c defparse.y deflex.l $(BULIBS)
-dlltool_LDADD = $(BFDLIB) $(LIBIBERTY) @LEXLIB@
+dlltool_LDADD = $(BFDLIB) $(LIBIBERTY) @LEXLIB@ $(INTLLIBS)
 
 coffdump_SOURCES = coffdump.c coffgrok.c $(BULIBS)
 
 
 coffdump_SOURCES = coffdump.c coffgrok.c $(BULIBS)
 
@@ -233,10 +232,10 @@ nlmconv_SOURCES = nlmconv.c nlmheader.y $(BULIBS)
 
 windres_SOURCES = windres.c resrc.c rescoff.c resbin.c rcparse.y rclex.l \
        $(BULIBS)
 
 windres_SOURCES = windres.c resrc.c rescoff.c resbin.c rcparse.y rclex.l \
        $(BULIBS)
-windres_LDADD = $(BFDLIB) $(LIBIBERTY) @LEXLIB@
+windres_LDADD = $(BFDLIB) $(LIBIBERTY) @LEXLIB@ $(INTLLIBS)
 
 DISTSTUFF = arparse.c arparse.h arlex.c nlmheader.c sysinfo.c sysinfo.h \
 
 DISTSTUFF = arparse.c arparse.h arlex.c nlmheader.c sysinfo.c sysinfo.h \
-       syslex.c deflex.c
+       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
@@ -335,13 +334,14 @@ CFLAGS = @CFLAGS@
 COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)
 LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)
 LINK = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -o $@
 COMPILE = $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)
 LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS)
 LINK = $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(LDFLAGS) -o $@
+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
 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
-MANS = ar.1 nm.1 objdump.1 ranlib.1 size.1 strings.1 strip.1 objcopy.1         addr2line.1 nlmconv.1 $(DEMANGLER_PROG).1
-
+man1dir = $(mandir)/man1
+MANS = $(man_MANS)
 
 NROFF = nroff
 DIST_COMMON =  README ChangeLog Makefile.am Makefile.in NEWS acconfig.h \
 
 NROFF = nroff
 DIST_COMMON =  README ChangeLog Makefile.am Makefile.in NEWS acconfig.h \
@@ -350,6 +350,9 @@ configure.in deflex.c defparse.c nlmheader.c rclex.c rcparse.c \
 stamp-h.in
 
 
 stamp-h.in
 
 
+PACKAGE = @PACKAGE@
+VERSION = @VERSION@
+
 DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
 
 TAR = tar
 DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
 
 TAR = tar
@@ -357,14 +360,14 @@ GZIP = --best
 SOURCES = $(nlmconv_SOURCES) $(srconv_SOURCES) $(sysdump_SOURCES) $(coffdump_SOURCES) $(dlltool_SOURCES) $(windres_SOURCES) $(size_SOURCES) $(objdump_SOURCES) $(ar_SOURCES) $(strings_SOURCES) $(ranlib_SOURCES) $(c__filt_SOURCES) $(objcopy_SOURCES) $(addr2line_SOURCES) $(nm_new_SOURCES) $(strip_new_SOURCES)
 OBJECTS = $(nlmconv_OBJECTS) $(srconv_OBJECTS) $(sysdump_OBJECTS) $(coffdump_OBJECTS) $(dlltool_OBJECTS) $(windres_OBJECTS) $(size_OBJECTS) $(objdump_OBJECTS) $(ar_OBJECTS) $(strings_OBJECTS) $(ranlib_OBJECTS) $(c__filt_OBJECTS) $(objcopy_OBJECTS) $(addr2line_OBJECTS) $(nm_new_OBJECTS) $(strip_new_OBJECTS)
 
 SOURCES = $(nlmconv_SOURCES) $(srconv_SOURCES) $(sysdump_SOURCES) $(coffdump_SOURCES) $(dlltool_SOURCES) $(windres_SOURCES) $(size_SOURCES) $(objdump_SOURCES) $(ar_SOURCES) $(strings_SOURCES) $(ranlib_SOURCES) $(c__filt_SOURCES) $(objcopy_SOURCES) $(addr2line_SOURCES) $(nm_new_SOURCES) $(strip_new_SOURCES)
 OBJECTS = $(nlmconv_OBJECTS) $(srconv_OBJECTS) $(sysdump_OBJECTS) $(coffdump_OBJECTS) $(dlltool_OBJECTS) $(windres_OBJECTS) $(size_OBJECTS) $(objdump_OBJECTS) $(ar_OBJECTS) $(strings_OBJECTS) $(ranlib_OBJECTS) $(c__filt_OBJECTS) $(objcopy_OBJECTS) $(addr2line_OBJECTS) $(nm_new_OBJECTS) $(strip_new_OBJECTS)
 
-default: all
+all: all-recursive-am all-am
 
 .SUFFIXES:
 
 .SUFFIXES:
-.SUFFIXES: .S .c .dvi .info .l .lo .o .ps .s .texi .texinfo .y
-$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4) 
+.SUFFIXES: .S .c .dvi .info .l .lo .o .ps .s .texi .texinfo .txi .y
+$(srcdir)/Makefile.in: @MAINT@ Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
        cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile
 
        cd $(top_srcdir) && $(AUTOMAKE) --cygnus Makefile
 
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+Makefile: $(srcdir)/Makefile.in  $(top_builddir)/config.status
        cd $(top_builddir) \
          && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
 
        cd $(top_builddir) \
          && CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status
 
@@ -408,18 +411,18 @@ maintainer-clean-binPROGRAMS:
 
 install-binPROGRAMS: $(bin_PROGRAMS)
        @$(NORMAL_INSTALL)
 
 install-binPROGRAMS: $(bin_PROGRAMS)
        @$(NORMAL_INSTALL)
-       $(mkinstalldirs) $(bindir)
+       $(mkinstalldirs) $(DESTDIR)$(bindir)
        @list='$(bin_PROGRAMS)'; for p in $$list; do \
          if test -f $$p; then \
        @list='$(bin_PROGRAMS)'; for p in $$list; do \
          if test -f $$p; then \
-           echo " $(LIBTOOL)  --mode=install $(INSTALL_PROGRAM) $$p $(bindir)/`echo $$p|sed '$(transform)'`"; \
-           $(LIBTOOL)  --mode=install $(INSTALL_PROGRAM) $$p $(bindir)/`echo $$p|sed '$(transform)'`; \
+           echo " $(LIBTOOL)  --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`"; \
+           $(LIBTOOL)  --mode=install $(INSTALL_PROGRAM) $$p $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`; \
          else :; fi; \
        done
 
 uninstall-binPROGRAMS:
          else :; fi; \
        done
 
 uninstall-binPROGRAMS:
-       $(NORMAL_UNINSTALL)
+       @$(NORMAL_UNINSTALL)
        list='$(bin_PROGRAMS)'; for p in $$list; do \
        list='$(bin_PROGRAMS)'; for p in $$list; do \
-         rm -f $(bindir)/`echo $$p|sed '$(transform)'`; \
+         rm -f $(DESTDIR)$(bindir)/`echo $$p|sed '$(transform)'`; \
        done
 
 mostlyclean-noinstPROGRAMS:
        done
 
 mostlyclean-noinstPROGRAMS:
@@ -571,26 +574,38 @@ DVIPS = dvips
 .texinfo.dvi:
        TEXINPUTS=$(top_srcdir)/../texinfo:$$TEXINPUTS \
          MAKEINFO='$(MAKEINFO) -I $(srcdir)' $(TEXI2DVI) $<
 .texinfo.dvi:
        TEXINPUTS=$(top_srcdir)/../texinfo:$$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:$$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)
 .dvi.ps:
        $(DVIPS) $< -o $@
 
 install-info-am: $(INFO_DEPS)
        @$(NORMAL_INSTALL)
-       $(mkinstalldirs) $(infodir)
+       $(mkinstalldirs) $(DESTDIR)$(infodir)
        @for file in $(INFO_DEPS); 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 \
        @for file in $(INFO_DEPS); 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 $(infodir)/$$ifile"; \
-             $(INSTALL_DATA) $$d/$$ifile $(infodir)/$$ifile; \
+             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 \
          for file in $(INFO_DEPS); do \
            else : ; fi; \
          done; \
        done
        @$(POST_INSTALL)
        @if $(SHELL) -c 'install-info --version | sed 1q | fgrep -s -v -i debian' >/dev/null 2>&1; then \
          for file in $(INFO_DEPS); do \
-           echo " install-info --info-dir=$(infodir) $(infodir)/$$file";\
-           install-info --info-dir=$(infodir) $(infodir)/$$file || :;\
+           echo " install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file";\
+           install-info --info-dir=$(DESTDIR)$(infodir) $(DESTDIR)$(infodir)/$$file || :;\
          done; \
        else : ; fi
 
          done; \
        else : ; fi
 
@@ -601,11 +616,11 @@ uninstall-info:
        else ii=; fi; \
        for file in $(INFO_DEPS); do \
          test -z "$ii" \
        else ii=; fi; \
        for file in $(INFO_DEPS); do \
          test -z "$ii" \
-           || install-info --info-dir=$(infodir) --remove $$file; \
+           || install-info --info-dir=$(DESTDIR)$(infodir) --remove $$file; \
        done
        done
-       $(NORMAL_UNINSTALL)
+       @$(NORMAL_UNINSTALL)
        for file in $(INFO_DEPS); do \
        for file in $(INFO_DEPS); do \
-         (cd $(infodir) && rm -f $$file $$file-[0-9] $$file-[0-9][0-9]); \
+         (cd $(DESTDIR)$(infodir) && rm -f $$file $$file-[0-9] $$file-[0-9][0-9]); \
        done
 
 dist-info: $(INFO_DEPS)
        done
 
 dist-info: $(INFO_DEPS)
@@ -637,101 +652,82 @@ maintainer-clean-aminfo:
          fi; \
        done
 clean-info: mostlyclean-aminfo
          fi; \
        done
 clean-info: mostlyclean-aminfo
-install-man: $(MANS)
-       $(NORMAL_INSTALL)
-       $(mkinstalldirs) $(mandir)/man1
-       @sect=1;                                \
-       inst=`echo "ar" | sed '$(transform)'`.1; \
-       if test -f $(srcdir)/ar.1; then file=$(srcdir)/ar.1; \
-       else file=ar.1; fi; \
-       echo " $(INSTALL_DATA) $$file $(mandir)/man$$sect/$$inst"; \
-       $(INSTALL_DATA) $$file $(mandir)/man$$sect/$$inst
-       @sect=1;                                \
-       inst=`echo "nlmconv" | sed '$(transform)'`.1; \
-       if test -f $(srcdir)/nlmconv.1; then file=$(srcdir)/nlmconv.1; \
-       else file=nlmconv.1; fi; \
-       echo " $(INSTALL_DATA) $$file $(mandir)/man$$sect/$$inst"; \
-       $(INSTALL_DATA) $$file $(mandir)/man$$sect/$$inst
-       @sect=1;                                \
-       inst=`echo "$(DEMANGLER_PROG)" | sed '$(transform)'`.1; \
-       if test -f $(srcdir)/$(DEMANGLER_PROG).1; then file=$(srcdir)/$(DEMANGLER_PROG).1; \
-       else file=$(DEMANGLER_PROG).1; fi; \
-       echo " $(INSTALL_DATA) $$file $(mandir)/man$$sect/$$inst"; \
-       $(INSTALL_DATA) $$file $(mandir)/man$$sect/$$inst
-       @sect=1;                                \
-       inst=`echo "nm" | sed '$(transform)'`.1; \
-       if test -f $(srcdir)/nm.1; then file=$(srcdir)/nm.1; \
-       else file=nm.1; fi; \
-       echo " $(INSTALL_DATA) $$file $(mandir)/man$$sect/$$inst"; \
-       $(INSTALL_DATA) $$file $(mandir)/man$$sect/$$inst
-       @sect=1;                                \
-       inst=`echo "objdump" | sed '$(transform)'`.1; \
-       if test -f $(srcdir)/objdump.1; then file=$(srcdir)/objdump.1; \
-       else file=objdump.1; fi; \
-       echo " $(INSTALL_DATA) $$file $(mandir)/man$$sect/$$inst"; \
-       $(INSTALL_DATA) $$file $(mandir)/man$$sect/$$inst
-       @sect=1;                                \
-       inst=`echo "ranlib" | sed '$(transform)'`.1; \
-       if test -f $(srcdir)/ranlib.1; then file=$(srcdir)/ranlib.1; \
-       else file=ranlib.1; fi; \
-       echo " $(INSTALL_DATA) $$file $(mandir)/man$$sect/$$inst"; \
-       $(INSTALL_DATA) $$file $(mandir)/man$$sect/$$inst
-       @sect=1;                                \
-       inst=`echo "size" | sed '$(transform)'`.1; \
-       if test -f $(srcdir)/size.1; then file=$(srcdir)/size.1; \
-       else file=size.1; fi; \
-       echo " $(INSTALL_DATA) $$file $(mandir)/man$$sect/$$inst"; \
-       $(INSTALL_DATA) $$file $(mandir)/man$$sect/$$inst
-       @sect=1;                                \
-       inst=`echo "strings" | sed '$(transform)'`.1; \
-       if test -f $(srcdir)/strings.1; then file=$(srcdir)/strings.1; \
-       else file=strings.1; fi; \
-       echo " $(INSTALL_DATA) $$file $(mandir)/man$$sect/$$inst"; \
-       $(INSTALL_DATA) $$file $(mandir)/man$$sect/$$inst
-       @sect=1;                                \
-       inst=`echo "strip" | sed '$(transform)'`.1; \
-       if test -f $(srcdir)/strip.1; then file=$(srcdir)/strip.1; \
-       else file=strip.1; fi; \
-       echo " $(INSTALL_DATA) $$file $(mandir)/man$$sect/$$inst"; \
-       $(INSTALL_DATA) $$file $(mandir)/man$$sect/$$inst
-       @sect=1;                                \
-       inst=`echo "objcopy" | sed '$(transform)'`.1; \
-       if test -f $(srcdir)/objcopy.1; then file=$(srcdir)/objcopy.1; \
-       else file=objcopy.1; fi; \
-       echo " $(INSTALL_DATA) $$file $(mandir)/man$$sect/$$inst"; \
-       $(INSTALL_DATA) $$file $(mandir)/man$$sect/$$inst
-       @sect=1;                                \
-       inst=`echo "addr2line" | sed '$(transform)'`.1; \
-       if test -f $(srcdir)/addr2line.1; then file=$(srcdir)/addr2line.1; \
-       else file=addr2line.1; fi; \
-       echo " $(INSTALL_DATA) $$file $(mandir)/man$$sect/$$inst"; \
-       $(INSTALL_DATA) $$file $(mandir)/man$$sect/$$inst
 
 
-uninstall-man:
-       $(NORMAL_UNINSTALL)
-       -inst=`echo "ar" | sed '$(transform)'`.1; \
-       rm -f $(mandir)/man1/$$inst
-       -inst=`echo "nlmconv" | sed '$(transform)'`.1; \
-       rm -f $(mandir)/man1/$$inst
-       -inst=`echo "$(DEMANGLER_PROG)" | sed '$(transform)'`.1; \
-       rm -f $(mandir)/man1/$$inst
-       -inst=`echo "nm" | sed '$(transform)'`.1; \
-       rm -f $(mandir)/man1/$$inst
-       -inst=`echo "objdump" | sed '$(transform)'`.1; \
-       rm -f $(mandir)/man1/$$inst
-       -inst=`echo "ranlib" | sed '$(transform)'`.1; \
-       rm -f $(mandir)/man1/$$inst
-       -inst=`echo "size" | sed '$(transform)'`.1; \
-       rm -f $(mandir)/man1/$$inst
-       -inst=`echo "strings" | sed '$(transform)'`.1; \
-       rm -f $(mandir)/man1/$$inst
-       -inst=`echo "strip" | sed '$(transform)'`.1; \
-       rm -f $(mandir)/man1/$$inst
-       -inst=`echo "objcopy" | sed '$(transform)'`.1; \
-       rm -f $(mandir)/man1/$$inst
-       -inst=`echo "addr2line" | sed '$(transform)'`.1; \
-       rm -f $(mandir)/man1/$$inst
+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) install-man1
+uninstall-man:
+       @$(NORMAL_UNINSTALL)
+       $(MAKE) 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,
+# (1) if the variable is set in `config.status', edit `config.status'
+#     (which will cause the Makefiles to be regenerated when you run `make');
+# (2) otherwise, pass the desired values on the `make' command line.
+
+@SET_MAKE@
+
+all-recursive install-data-recursive install-exec-recursive \
+installdirs-recursive install-recursive uninstall-recursive install-info-recursive \
+check-recursive installcheck-recursive info-recursive dvi-recursive:
+       @set fnord $(MAKEFLAGS); amf=$$2; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         target=`echo $@ | sed s/-recursive//`; \
+         echo "Making $$target in $$subdir"; \
+         (cd $$subdir && $(MAKE) $$target) \
+          || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+       done && test -z "$$fail"
+
+mostlyclean-recursive clean-recursive distclean-recursive \
+maintainer-clean-recursive:
+       @set fnord $(MAKEFLAGS); amf=$$2; \
+       rev=''; list='$(SUBDIRS)'; for subdir in $$list; do \
+         rev="$$subdir $$rev"; \
+       done; \
+       for subdir in $$rev; do \
+         target=`echo $@ | sed s/-recursive//`; \
+         echo "Making $$target in $$subdir"; \
+         (cd $$subdir && $(MAKE) $$target) \
+          || case "$$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \
+       done && test -z "$$fail"
+tags-recursive:
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         (cd $$subdir && $(MAKE) tags); \
+       done
 
 tags: TAGS
 
 
 tags: TAGS
 
@@ -739,9 +735,12 @@ ID: $(HEADERS) $(SOURCES) $(LISP)
        here=`pwd` && cd $(srcdir) \
          && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP)
 
        here=`pwd` && cd $(srcdir) \
          && mkid -f$$here/ID $(SOURCES) $(HEADERS) $(LISP)
 
-TAGS:  $(HEADERS) $(SOURCES) config.in $(TAGS_DEPENDENCIES) $(LISP)
+TAGS: tags-recursive $(HEADERS) $(SOURCES) config.in $(TAGS_DEPENDENCIES) $(LISP)
        tags=; \
        here=`pwd`; \
        tags=; \
        here=`pwd`; \
+       list='$(SUBDIRS)'; for subdir in $$list; do \
+         test -f $$subdir/TAGS && tags="$$tags -i $$here/$$subdir/TAGS"; \
+       done; \
        list='$(SOURCES) $(HEADERS)'; \
        unique=`for i in $$list; do echo $$i; done | \
          awk '    { files[$$0] = 1; } \
        list='$(SOURCES) $(HEADERS)'; \
        unique=`for i in $$list; do echo $$i; done | \
          awk '    { files[$$0] = 1; } \
@@ -800,6 +799,14 @@ distdir: $(DISTFILES)
          || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
          || cp -p $$d/$$file $(distdir)/$$file; \
        done
          || ln $$d/$$file $(distdir)/$$file 2> /dev/null \
          || cp -p $$d/$$file $(distdir)/$$file; \
        done
+       for subdir in $(SUBDIRS); do \
+         test -d $(distdir)/$$subdir \
+         || mkdir $(distdir)/$$subdir \
+         || exit 1; \
+         chmod 777 $(distdir)/$$subdir; \
+         (cd $$subdir && $(MAKE) top_distdir=../$(distdir) distdir=../$(distdir)/$$subdir distdir) \
+           || exit 1; \
+       done
        $(MAKE) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-info
 
 RUNTESTFLAGS =
        $(MAKE) top_distdir="$(top_distdir)" distdir="$(distdir)" dist-info
 
 RUNTESTFLAGS =
@@ -826,29 +833,38 @@ site.exp: Makefile
        -@sed '1,/^## All variables above are.*##/ d' site.bak >> $@-t
        -@mv site.exp site.bak
        @mv $@-t site.exp
        -@sed '1,/^## All variables above are.*##/ d' site.bak >> $@-t
        -@mv site.exp site.bak
        @mv $@-t site.exp
-info: $(INFO_DEPS)
-dvi: $(DVIS)
+info: $(INFO_DEPS) info-recursive
+dvi: $(DVIS) dvi-recursive
 check:
 check:
-       $(MAKE) check-DEJAGNU
-installcheck:
-install-info: install-info-am
-install-exec: install-binPROGRAMS install-exec-local
+       $(MAKE) check-recursive check-DEJAGNU
+installcheck: installcheck-recursive
+install-info: install-info-am install-info-recursive
+all-recursive-am: config.h
+       $(MAKE) all-recursive
+
+all-am: Makefile $(PROGRAMS) $(MANS) config.h
+
+install-exec-am: install-binPROGRAMS install-exec-local
+
+install-data-am: install-man
+
+uninstall-am: uninstall-binPROGRAMS uninstall-man
+
+install-exec: install-exec-recursive install-exec-am
        @$(NORMAL_INSTALL)
 
        @$(NORMAL_INSTALL)
 
-install-data: install-man
+install-data: install-data-recursive install-data-am
        @$(NORMAL_INSTALL)
 
        @$(NORMAL_INSTALL)
 
-install: install-exec install-data all
+install: install-recursive install-exec-am install-data-am
        @:
 
        @:
 
-uninstall: uninstall-binPROGRAMS uninstall-man
-
-all: Makefile $(PROGRAMS) $(MANS) config.h
+uninstall: uninstall-recursive uninstall-am
 
 install-strip:
        $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install
 
 install-strip:
        $(MAKE) INSTALL_PROGRAM='$(INSTALL_PROGRAM) -s' INSTALL_SCRIPT='$(INSTALL_PROGRAM)' install
-installdirs:
-       $(mkinstalldirs)  $(bindir) $(mandir)/man1
+installdirs: installdirs-recursive
+       $(mkinstalldirs)  $(DATADIR)$(bindir) $(DESTDIR)$(mandir)/man1
 
 
 mostlyclean-generic:
 
 
 mostlyclean-generic:
@@ -865,46 +881,65 @@ distclean-generic:
 maintainer-clean-generic:
        -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
        -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
 maintainer-clean-generic:
        -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
        -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES)
-mostlyclean:  mostlyclean-hdr mostlyclean-binPROGRAMS \
+mostlyclean-am:  mostlyclean-hdr mostlyclean-binPROGRAMS \
                mostlyclean-noinstPROGRAMS mostlyclean-compile \
                mostlyclean-libtool mostlyclean-aminfo mostlyclean-tags \
                mostlyclean-noinstPROGRAMS mostlyclean-compile \
                mostlyclean-libtool mostlyclean-aminfo mostlyclean-tags \
-               mostlyclean-generic mostlyclean-local
+               mostlyclean-generic
 
 
-clean:  clean-hdr clean-binPROGRAMS clean-noinstPROGRAMS clean-compile \
-               clean-libtool clean-aminfo clean-tags clean-generic \
-               mostlyclean
+clean-am:  clean-hdr clean-binPROGRAMS clean-noinstPROGRAMS \
+               clean-compile clean-libtool clean-aminfo clean-tags \
+               clean-generic mostlyclean-am
 
 
-distclean:  distclean-hdr distclean-binPROGRAMS distclean-noinstPROGRAMS \
-               distclean-compile distclean-libtool distclean-aminfo \
-               distclean-tags distclean-generic clean
-       -rm -f config.status
-       -rm -f libtool
+distclean-am:  distclean-hdr distclean-binPROGRAMS \
+               distclean-noinstPROGRAMS distclean-compile \
+               distclean-libtool distclean-aminfo distclean-tags \
+               distclean-generic clean-am
 
 
-maintainer-clean:  maintainer-clean-hdr maintainer-clean-binPROGRAMS \
+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-noinstPROGRAMS \
                maintainer-clean-compile maintainer-clean-libtool \
                maintainer-clean-aminfo maintainer-clean-tags \
-               maintainer-clean-generic distclean
+               maintainer-clean-generic distclean-am
+
+mostlyclean:  mostlyclean-recursive mostlyclean-am mostlyclean-local
+
+clean:  clean-recursive clean-am
+
+distclean:  distclean-recursive distclean-am
+       -rm -f config.status
+       -rm -f libtool
+
+maintainer-clean:  maintainer-clean-recursive maintainer-clean-am
        @echo "This command is intended for maintainers to use;"
        @echo "it deletes files that may require special tools to rebuild."
        -rm -f config.status
 
        @echo "This command is intended for maintainers to use;"
        @echo "it deletes files that may require special tools to rebuild."
        -rm -f config.status
 
-.PHONY: default mostlyclean-hdr distclean-hdr clean-hdr \
-maintainer-clean-hdr mostlyclean-binPROGRAMS distclean-binPROGRAMS \
-clean-binPROGRAMS maintainer-clean-binPROGRAMS uninstall-binPROGRAMS \
-install-binPROGRAMS mostlyclean-noinstPROGRAMS distclean-noinstPROGRAMS \
+.PHONY: mostlyclean-hdr distclean-hdr clean-hdr maintainer-clean-hdr \
+mostlyclean-binPROGRAMS distclean-binPROGRAMS clean-binPROGRAMS \
+maintainer-clean-binPROGRAMS uninstall-binPROGRAMS install-binPROGRAMS \
+mostlyclean-noinstPROGRAMS distclean-noinstPROGRAMS \
 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 \
 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-man uninstall-man tags mostlyclean-tags \
+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 \
+maintainer-clean-recursive tags tags-recursive mostlyclean-tags \
 distclean-tags clean-tags maintainer-clean-tags distdir check-DEJAGNU \
 distclean-tags clean-tags maintainer-clean-tags distdir check-DEJAGNU \
-info dvi installcheck install-info install-exec install-data install \
-uninstall all installdirs mostlyclean-generic distclean-generic \
+info dvi installcheck install-info all-recursive-am all-am \
+install-exec-am install-data-am uninstall-am install-exec install-data \
+install uninstall all installdirs mostlyclean-generic distclean-generic \
 clean-generic maintainer-clean-generic clean mostlyclean distclean \
 maintainer-clean
 
 clean-generic maintainer-clean-generic clean mostlyclean distclean \
 maintainer-clean
 
+po/POTFILES.in: @MAINT@ Makefile
+       for file in $(POTFILES); do echo $$file; done | sort > tmp \
+         && mv tmp $(srcdir)/po/POTFILES.in
 
 check-DEJAGNU: site.exp
        srcdir=`cd $(srcdir) && pwd`; export srcdir; \
 
 check-DEJAGNU: site.exp
        srcdir=`cd $(srcdir) && pwd`; export srcdir; \
@@ -987,6 +1022,7 @@ dlltool.o:dlltool.c
 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
 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
+
 diststuff: $(DISTSTUFF) info
 
 # Targets to rebuild dependencies in this Makefile.
 diststuff: $(DISTSTUFF) info
 
 # Targets to rebuild dependencies in this Makefile.
index c38c529c901c72a76293167f4bc8b7d83cbc2b0c..816bf8455438b78f1e179d200585a94c1a0d3d83 100644 (file)
 
 /* Do we need to use the b modifier when opening binary files?  */
 #undef USE_BINARY_FOPEN
 
 /* Do we need to use the b modifier when opening binary files?  */
 #undef USE_BINARY_FOPEN
+
+/* Define to 1 if NLS is requested.  */
+#undef ENABLE_NLS
+
+/* Define as 1 if you have catgets and don't want to use GNU gettext.  */
+#undef HAVE_CATGETS
+
+/* Define as 1 if you have gettext and don't want to use GNU gettext.  */
+#undef HAVE_GETTEXT
+
+/* Define as 1 if you have the stpcpy function.  */
+#undef HAVE_STPCPY
+
+/* Define if your locale.h file contains LC_MESSAGES.  */
+#undef HAVE_LC_MESSAGES
diff --git a/binutils/addr2line.c b/binutils/addr2line.c
new file mode 100644 (file)
index 0000000..3d4ff90
--- /dev/null
@@ -0,0 +1,324 @@
+/* addr2line.c -- convert addresses to line number and function name
+   Copyright 1997, 1998 Free Software Foundation, Inc.
+   Contributed by Ulrich Lauther <Ulrich.Lauther@zfe.siemens.de>
+
+   This file is part of GNU Binutils.
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2, or (at your option)
+   any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+
+/* Derived from objdump.c and nm.c by Ulrich.Lauther@zfe.siemens.de
+
+   Usage: 
+   addr2line [options] addr addr ...
+   or
+   addr2line [options] 
+
+   both forms write results to stdout, the second form reads addresses
+   to be converted from stdin.  */
+
+#include <ctype.h>
+#include <string.h>
+
+#include "bfd.h"
+#include "getopt.h"
+#include "libiberty.h"
+#include "demangle.h"
+#include "bucomm.h"
+
+extern char *program_version;
+
+static boolean with_functions; /* -f, show function names.  */
+static boolean do_demangle;    /* -C, demangle names.  */
+static boolean base_names;     /* -s, strip directory names.  */
+
+static int naddr;              /* Number of addresses to process.  */
+static char **addr;            /* Hex addresses to process.  */
+
+static asymbol **syms;         /* Symbol table.  */
+
+static struct option long_options[] =
+{
+  {"basenames", no_argument, NULL, 's'},
+  {"demangle", no_argument, NULL, 'C'},
+  {"exe", required_argument, NULL, 'e'},
+  {"functions", no_argument, NULL, 'f'},
+  {"target", required_argument, NULL, 'b'},
+  {"help", no_argument, NULL, 'H'},
+  {"version", no_argument, NULL, 'V'},
+  {0, no_argument, 0, 0}
+};
+
+static void usage PARAMS ((FILE *, int));
+static void slurp_symtab PARAMS ((bfd *));
+static void find_address_in_section PARAMS ((bfd *, asection *, PTR));
+static void translate_addresses PARAMS ((bfd *));
+static void process_file PARAMS ((const char *, const char *));
+\f
+/* Print a usage message to STREAM and exit with STATUS.  */
+
+static void
+usage (stream, status)
+     FILE *stream;
+     int status;
+{
+  fprintf (stream, _("\
+Usage: %s [-CfsHV] [-b bfdname] [--target=bfdname]\n\
+       [-e executable] [--exe=executable] [--demangle]\n\
+       [--basenames] [--functions] [addr addr ...]\n"),
+          program_name);
+  list_supported_targets (program_name, stream);
+  if (status == 0)
+    fprintf (stream, _("Report bugs to bug-gnu-utils@gnu.org\n"));
+  exit (status);
+}
+\f
+/* Read in the symbol table.  */
+
+static void
+slurp_symtab (abfd)
+     bfd *abfd;
+{
+  long storage;
+  long symcount;
+
+  if ((bfd_get_file_flags (abfd) & HAS_SYMS) == 0)
+    return;
+
+  storage = bfd_get_symtab_upper_bound (abfd);
+  if (storage < 0)
+    bfd_fatal (bfd_get_filename (abfd));
+
+  syms = (asymbol **) xmalloc (storage);
+
+  symcount = bfd_canonicalize_symtab (abfd, syms);
+  if (symcount < 0)
+    bfd_fatal (bfd_get_filename (abfd));
+}
+\f
+/* These global variables are used to pass information between
+   translate_addresses and find_address_in_section.  */
+
+static bfd_vma pc;
+static const char *filename;
+static const char *functionname;
+static unsigned int line;
+static boolean found;
+
+/* Look for an address in a section.  This is called via
+   bfd_map_over_sections.  */
+
+static void
+find_address_in_section (abfd, section, data)
+     bfd *abfd;
+     asection *section;
+     PTR data;
+{
+  bfd_vma vma;
+
+  if (found)
+    return;
+
+  if ((bfd_get_section_flags (abfd, section) & SEC_ALLOC) == 0)
+    return;
+
+  vma = bfd_get_section_vma (abfd, section);
+  if (pc < vma)
+    return;
+
+  found = bfd_find_nearest_line (abfd, section, syms, pc - vma,
+                                &filename, &functionname, &line);
+}
+
+/* Read hexadecimal addresses from stdin, translate into
+   file_name:line_number and optionally function name.  */
+
+static void
+translate_addresses (abfd)
+     bfd *abfd;
+{
+  int read_stdin = (naddr == 0);
+
+  for (;;)
+    {
+      if (read_stdin)
+       {
+         char addr_hex[100];
+
+         if (fgets (addr_hex, sizeof addr_hex, stdin) == NULL)
+           break;
+         pc = bfd_scan_vma (addr_hex, NULL, 16);
+       }
+      else
+       {
+         if (naddr <= 0)
+           break;
+         --naddr;
+         pc = bfd_scan_vma (*addr++, NULL, 16);
+       }
+
+      found = false;
+      bfd_map_over_sections (abfd, find_address_in_section, (PTR) NULL);
+
+      if (! found)
+       {
+         if (with_functions)
+           printf ("??\n");
+         printf ("??:0\n");
+       }
+      else
+       {
+         if (with_functions)
+           {
+             if (*functionname == '\0')
+               printf ("??\n");
+             else if (! do_demangle)
+               printf ("%s\n", functionname);
+             else
+               {
+                 char *res;
+
+                 res = cplus_demangle (functionname, DMGL_ANSI | DMGL_PARAMS);
+                 if (res == NULL)
+                   printf ("%s\n", functionname);
+                 else
+                   {
+                     printf ("%s\n", res);
+                     free (res);
+                   }
+               }
+           }
+
+         if (base_names)
+           {
+             char *h;
+
+             h = strrchr (filename, '/');
+             if (h != NULL)
+               filename = h + 1;
+           }
+
+         printf ("%s:%u\n", filename, line);
+       }
+
+      /* fflush() is essential for using this command as a server
+         child process that reads addresses from a pipe and responds
+         with line number information, processing one address at a
+         time.  */
+      fflush (stdout);
+    }
+}
+
+/* Process a file.  */
+
+static void
+process_file (filename, target)
+     const char *filename;
+     const char *target;
+{
+  bfd *abfd;
+  char **matching;
+
+  abfd = bfd_openr (filename, target);
+  if (abfd == NULL)
+    bfd_fatal (filename);
+
+  if (bfd_check_format (abfd, bfd_archive))
+    fatal (_("%s: can not get addresses from archive"), filename);
+
+  if (! bfd_check_format_matches (abfd, bfd_object, &matching))
+    {
+      bfd_nonfatal (bfd_get_filename (abfd));
+      if (bfd_get_error () == bfd_error_file_ambiguously_recognized)
+       {
+         list_matching_formats (matching);
+         free (matching);
+       }
+      xexit (1);
+    }
+
+  slurp_symtab (abfd);
+
+  translate_addresses (abfd);
+
+  if (syms != NULL)
+    {
+      free (syms);
+      syms = NULL;
+    }
+
+  bfd_close (abfd);
+}
+\f
+int
+main (argc, argv)
+     int argc;
+     char **argv;
+{
+  char *filename;
+  char *target;
+  int c;
+
+  program_name = *argv;
+  xmalloc_set_program_name (program_name);
+
+  bfd_init ();
+  set_default_bfd_target ();
+
+  filename = NULL;
+  target = NULL;
+  while ((c = getopt_long (argc, argv, "b:Ce:sfHV", long_options, (int *) 0))
+        != EOF)
+    {
+      switch (c)
+       {
+       case 0:
+         break;                /* we've been given a long option */
+       case 'b':
+         target = optarg;
+         break;
+       case 'C':
+         do_demangle = true;
+         break;
+       case 'e':
+         filename = optarg;
+         break;
+       case 's':
+         base_names = true;
+         break;
+       case 'f':
+         with_functions = true;
+         break;
+       case 'V':
+         print_version ("addr2line");
+         break;
+       case 'H':
+         usage (stdout, 0);
+         break;
+       default:
+         usage (stderr, 1);
+         break;
+       }
+    }
+
+  if (filename == NULL)
+    filename = "a.out";
+
+  addr = argv + optind;
+  naddr = argc - optind;
+
+  process_file (filename, target);
+
+  return 0;
+}
index 7d431c4627ed65b5688afb9573b8e70bf7e367b9..a8fdebf1014462cad5b0dce85168e998471c431a 100644 (file)
@@ -1,5 +1,5 @@
 /* ar.c - Archive modify and extract.
 /* ar.c - Archive modify and extract.
-   Copyright 1991, 92, 93, 94, 95, 1996 Free Software Foundation, Inc.
+   Copyright 1991, 92, 93, 94, 95, 96, 97, 1998 Free Software Foundation, Inc.
 
 This file is part of GNU Binutils.
 
 
 This file is part of GNU Binutils.
 
@@ -52,9 +52,12 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 /* Kludge declaration from BFD!  This is ugly!  FIXME!  XXX */
 
 struct ar_hdr *
 /* Kludge declaration from BFD!  This is ugly!  FIXME!  XXX */
 
 struct ar_hdr *
-  bfd_special_undocumented_glue PARAMS ((bfd * abfd, char *filename));
+  bfd_special_undocumented_glue PARAMS ((bfd * abfd, const char *filename));
 
 
-/* Forward declarations */
+/* Static declarations */
+
+static void
+mri_emul PARAMS ((void));
 
 static const char *
 normalize PARAMS ((const char *, bfd *));
 
 static const char *
 normalize PARAMS ((const char *, bfd *));
@@ -94,6 +97,9 @@ ranlib_only PARAMS ((const char *archname));
 
 static void
 ranlib_touch PARAMS ((const char *archname));
 
 static void
 ranlib_touch PARAMS ((const char *archname));
+
+static void
+usage PARAMS ((int));
 \f
 /** Globals and flags */
 
 \f
 /** Globals and flags */
 
@@ -139,12 +145,15 @@ enum pos
     pos_default, pos_before, pos_after, pos_end
   } postype = pos_default;
 
     pos_default, pos_before, pos_after, pos_end
   } postype = pos_default;
 
+static bfd **
+get_pos_bfd PARAMS ((bfd **, enum pos, const char *));
+
 /* Whether to truncate names of files stored in the archive.  */
 static boolean ar_truncate = false;
 
 int interactive = 0;
 
 /* Whether to truncate names of files stored in the archive.  */
 static boolean ar_truncate = false;
 
 int interactive = 0;
 
-void
+static void
 mri_emul ()
 {
   interactive = isatty (fileno (stdin));
 mri_emul ()
 {
   interactive = isatty (fileno (stdin));
@@ -201,13 +210,13 @@ map_over_members (arch, function, files, count)
            }
        }
       if (!found)
            }
        }
       if (!found)
-       fprintf (stderr, "no entry %s in archive\n", *files);
+       fprintf (stderr, _("no entry %s in archive\n"), *files);
     }
 }
 \f
 boolean operation_alters_arch = false;
 
     }
 }
 \f
 boolean operation_alters_arch = false;
 
-void
+static void
 usage (help)
      int help;
 {
 usage (help)
      int help;
 {
@@ -215,18 +224,18 @@ usage (help)
 
   s = help ? stdout : stderr;
   if (! is_ranlib)
 
   s = help ? stdout : stderr;
   if (! is_ranlib)
-    fprintf (s, "\
-Usage: %s [-]{dmpqrtx}[abcilosuvV] [member-name] archive-file file...\n\
-       %s -M [<mri-script]\n",
+    fprintf (s, _("\
+Usage: %s [-]{dmpqrtx}[abcilosSuvV] [member-name] archive-file file...\n\
+       %s -M [<mri-script]\n"),
             program_name, program_name);
   else
             program_name, program_name);
   else
-    fprintf (s, "\
-Usage: %s [-vV] archive\n", program_name);
+    fprintf (s, _("\
+Usage: %s [-vV] archive\n"), program_name);
 
   list_supported_targets (program_name, stderr);
 
   if (help)
 
   list_supported_targets (program_name, stderr);
 
   if (help)
-    fprintf (s, "Report bugs to bug-gnu-utils@prep.ai.mit.edu\n");
+    fprintf (s, _("Report bugs to bug-gnu-utils@gnu.org\n"));
 
   xexit (help ? 0 : 1);
 }
 
   xexit (help ? 0 : 1);
 }
@@ -337,6 +346,8 @@ main (argc, argv)
   START_PROGRESS (program_name, 0);
 
   bfd_init ();
   START_PROGRESS (program_name, 0);
 
   bfd_init ();
+  set_default_bfd_target ();
+
   show_version = 0;
 
   xatexit (remove_output);
   show_version = 0;
 
   xatexit (remove_output);
@@ -346,7 +357,7 @@ main (argc, argv)
       boolean touch = false;
 
       if (argc < 2 || strcmp (argv[1], "--help") == 0)
       boolean touch = false;
 
       if (argc < 2 || strcmp (argv[1], "--help") == 0)
-       usage ();
+       usage (0);
       if (strcmp (argv[1], "-V") == 0
          || strcmp (argv[1], "-v") == 0
          || strncmp (argv[1], "--v", 3) == 0)
       if (strcmp (argv[1], "-V") == 0
          || strcmp (argv[1], "-v") == 0
          || strncmp (argv[1], "--v", 3) == 0)
@@ -375,7 +386,7 @@ main (argc, argv)
     }
 
   if (argc < 2)
     }
 
   if (argc < 2)
-    usage ();
+    usage (0);
 
   arg_ptr = argv[1];
 
 
   arg_ptr = argv[1];
 
@@ -394,7 +405,7 @@ main (argc, argv)
        case 't':
        case 'x':
          if (operation != none)
        case 't':
        case 'x':
          if (operation != none)
-           fatal ("two different operation options specified");
+           fatal (_("two different operation options specified"));
          switch (c)
            {
            case 'd':
          switch (c)
            {
            case 'd':
@@ -437,6 +448,9 @@ main (argc, argv)
        case 's':
          write_armap = 1;
          break;
        case 's':
          write_armap = 1;
          break;
+       case 'S':
+         write_armap = -1;
+         break;
        case 'u':
          newer_only = 1;
          break;
        case 'u':
          newer_only = 1;
          break;
@@ -459,8 +473,8 @@ main (argc, argv)
          ar_truncate = true;
          break;
        default:
          ar_truncate = true;
          break;
        default:
-         fprintf (stderr, "%s: illegal option -- %c\n", program_name, c);
-         usage ();
+         fprintf (stderr, _("%s: illegal option -- %c\n"), program_name, c);
+         usage (0);
        }
     }
 
        }
     }
 
@@ -468,7 +482,7 @@ main (argc, argv)
     print_version ("ar");
 
   if (argc < 3)
     print_version ("ar");
 
   if (argc < 3)
-    usage ();
+    usage (0);
 
   if (mri_mode)
     {
 
   if (mri_mode)
     {
@@ -491,10 +505,10 @@ main (argc, argv)
        }
 
       if (operation == none)
        }
 
       if (operation == none)
-       fatal ("no operation specified");
+       fatal (_("no operation specified"));
 
       if (newer_only && operation != replace)
 
       if (newer_only && operation != replace)
-       fatal ("`u' is only meaningful with the `r' option.");
+       fatal (_("`u' is only meaningful with the `r' option."));
 
       arg_index = 2;
 
 
       arg_index = 2;
 
@@ -573,7 +587,7 @@ main (argc, argv)
 
          /* Shouldn't happen! */
        default:
 
          /* Shouldn't happen! */
        default:
-         fprintf (stderr, "%s: internal error -- this option not implemented\n",
+         fprintf (stderr, _("%s: internal error -- this option not implemented\n"),
                   program_name);
          xexit (1);
        }
                   program_name);
          xexit (1);
        }
@@ -603,8 +617,6 @@ open_inarch (archive_filename, file)
 
   if (stat (archive_filename, &sbuf) != 0)
     {
 
   if (stat (archive_filename, &sbuf) != 0)
     {
-      bfd *obj;
-
 #ifndef __GO32__
 
 /* KLUDGE ALERT! Temporary fix until I figger why
 #ifndef __GO32__
 
 /* KLUDGE ALERT! Temporary fix until I figger why
@@ -625,12 +637,17 @@ open_inarch (archive_filename, file)
 
       /* Try to figure out the target to use for the archive from the
          first object on the list.  */
 
       /* Try to figure out the target to use for the archive from the
          first object on the list.  */
-      obj = bfd_openr (file, NULL);
-      if (obj != NULL)
+      if (file != NULL)
        {
        {
-         if (bfd_check_format (obj, bfd_object))
-           target = bfd_get_target (obj);
-         (void) bfd_close (obj);
+         bfd *obj;
+
+         obj = bfd_openr (file, NULL);
+         if (obj != NULL)
+           {
+             if (bfd_check_format (obj, bfd_object))
+               target = bfd_get_target (obj);
+             (void) bfd_close (obj);
+           }
        }
 
       /* Create an empty archive.  */
        }
 
       /* Create an empty archive.  */
@@ -684,10 +701,10 @@ print_contents (abfd)
   struct stat buf;
   long size;
   if (bfd_stat_arch_elt (abfd, &buf) != 0)
   struct stat buf;
   long size;
   if (bfd_stat_arch_elt (abfd, &buf) != 0)
-    fatal ("internal stat error on %s", bfd_get_filename (abfd));
+    fatal (_("internal stat error on %s"), bfd_get_filename (abfd));
 
   if (verbose)
 
   if (verbose)
-    printf ("\n<member %s>\n\n", bfd_get_filename (abfd));
+    printf (_("\n<member %s>\n\n"), bfd_get_filename (abfd));
 
   bfd_seek (abfd, 0, SEEK_SET);
 
 
   bfd_seek (abfd, 0, SEEK_SET);
 
@@ -703,7 +720,7 @@ print_contents (abfd)
       nread = bfd_read (cbuf, 1, tocopy, abfd);        /* oops -- broke
                                                           abstraction!  */
       if (nread != tocopy)
       nread = bfd_read (cbuf, 1, tocopy, abfd);        /* oops -- broke
                                                           abstraction!  */
       if (nread != tocopy)
-       fatal ("%s is not a valid archive",
+       fatal (_("%s is not a valid archive"),
               bfd_get_filename (bfd_my_archive (abfd)));
       fwrite (cbuf, 1, nread, stdout);
       ncopied += tocopy;
               bfd_get_filename (bfd_my_archive (abfd)));
       fwrite (cbuf, 1, nread, stdout);
       ncopied += tocopy;
@@ -732,7 +749,7 @@ extract_file (abfd)
   long size;
   struct stat buf;
   if (bfd_stat_arch_elt (abfd, &buf) != 0)
   long size;
   struct stat buf;
   if (bfd_stat_arch_elt (abfd, &buf) != 0)
-    fatal ("internal stat error on %s", bfd_get_filename (abfd));
+    fatal (_("internal stat error on %s"), bfd_get_filename (abfd));
   size = buf.st_size;
 
   if (verbose)
   size = buf.st_size;
 
   if (verbose)
@@ -764,7 +781,7 @@ extract_file (abfd)
 
        nread = bfd_read (cbuf, 1, tocopy, abfd);
        if (nread != tocopy)
 
        nread = bfd_read (cbuf, 1, tocopy, abfd);
        if (nread != tocopy)
-         fatal ("%s is not a valid archive",
+         fatal (_("%s is not a valid archive"),
                 bfd_get_filename (bfd_my_archive (abfd)));
 
        /* See comment above; this saves disk arm motion */
                 bfd_get_filename (bfd_my_archive (abfd)));
 
        /* See comment above; this saves disk arm motion */
@@ -871,13 +888,13 @@ do_quick_append (archive_filename, files_to_append)
   if (newfile == false)
     {
       if (bfd_check_format (temp, bfd_archive) != true)
   if (newfile == false)
     {
       if (bfd_check_format (temp, bfd_archive) != true)
-       fatal ("%s is not an archive", archive_filename);
+       fatal (_("%s is not an archive"), archive_filename);
     }
   else
     {
       fwrite (ARMAG, 1, SARMAG, ofile);
       if (!silent_create)
     }
   else
     {
       fwrite (ARMAG, 1, SARMAG, ofile);
       if (!silent_create)
-       fprintf (stderr, "%s: creating %s\n",
+       fprintf (stderr, _("%s: creating %s\n"),
                 program_name, archive_filename);
     }
 
                 program_name, archive_filename);
     }
 
@@ -988,13 +1005,26 @@ write_archive (iarch)
    into when altering.  DEFAULT_POS should be how to interpret pos_default,
    and should be a pos value.  */
 
    into when altering.  DEFAULT_POS should be how to interpret pos_default,
    and should be a pos value.  */
 
-bfd **
-get_pos_bfd (contents, default_pos)
+static bfd **
+get_pos_bfd (contents, default_pos, default_posname)
      bfd **contents;
      enum pos default_pos;
      bfd **contents;
      enum pos default_pos;
+     const char *default_posname;
 {
   bfd **after_bfd = contents;
 {
   bfd **after_bfd = contents;
-  enum pos realpos = (postype == pos_default ? default_pos : postype);
+  enum pos realpos;
+  const char *realposname;
+
+  if (postype == pos_default)
+    {
+      realpos = default_pos;
+      realposname = default_posname;
+    }
+  else
+    {
+      realpos = postype;
+      realposname = posname;
+    }
 
   if (realpos == pos_end)
     {
 
   if (realpos == pos_end)
     {
@@ -1004,7 +1034,7 @@ get_pos_bfd (contents, default_pos)
   else
     {
       for (; *after_bfd; after_bfd = &(*after_bfd)->next)
   else
     {
       for (; *after_bfd; after_bfd = &(*after_bfd)->next)
-       if (!strcmp ((*after_bfd)->filename, posname))
+       if (strcmp ((*after_bfd)->filename, realposname) == 0)
          {
            if (realpos == pos_after)
              after_bfd = &(*after_bfd)->next;
          {
            if (realpos == pos_after)
              after_bfd = &(*after_bfd)->next;
@@ -1059,7 +1089,7 @@ delete_members (arch, files_to_delete)
 
       if (verbose && found == false)
        {
 
       if (verbose && found == false)
        {
-         printf ("No member named `%s'\n", *files_to_delete);
+         printf (_("No member named `%s'\n"), *files_to_delete);
        }
     next_file:
       ;
        }
     next_file:
       ;
@@ -1097,7 +1127,7 @@ move_members (arch, files_to_move)
              *current_ptr_ptr = current_ptr->next;
 
              /* Now glue to end */
              *current_ptr_ptr = current_ptr->next;
 
              /* Now glue to end */
-             after_bfd = get_pos_bfd (&arch->next, pos_end);
+             after_bfd = get_pos_bfd (&arch->next, pos_end, NULL);
              link = *after_bfd;
              *after_bfd = current_ptr;
              current_ptr->next = link;
              link = *after_bfd;
              *after_bfd = current_ptr;
              current_ptr->next = link;
@@ -1110,7 +1140,7 @@ move_members (arch, files_to_move)
 
          current_ptr_ptr = &((*current_ptr_ptr)->next);
        }
 
          current_ptr_ptr = &((*current_ptr_ptr)->next);
        }
-      fprintf (stderr, "%s: no entry %s in archive %s!\n",
+      fprintf (stderr, _("%s: no entry %s in archive %s!\n"),
               program_name, *files_to_move, arch->filename);
       xexit (1);
     next_file:;
               program_name, *files_to_move, arch->filename);
       xexit (1);
     next_file:;
@@ -1159,17 +1189,16 @@ replace_members (arch, files_to_move, quick)
                          goto next_file;
                        }
                      if (bfd_stat_arch_elt (current, &asbuf) != 0)
                          goto next_file;
                        }
                      if (bfd_stat_arch_elt (current, &asbuf) != 0)
-                       fatal ("internal stat error on %s", current->filename);
+                       fatal (_("internal stat error on %s"), current->filename);
 
                      if (fsbuf.st_mtime <= asbuf.st_mtime)
                        goto next_file;
                    }
 
 
                      if (fsbuf.st_mtime <= asbuf.st_mtime)
                        goto next_file;
                    }
 
-                 /* snip out this entry from the chain */
-                 *current_ptr = current->next;
-
-                 after_bfd = get_pos_bfd (&arch->next, pos_end);
+                 after_bfd = get_pos_bfd (&arch->next, pos_after,
+                                          current->filename);
                  temp = *after_bfd;
                  temp = *after_bfd;
+
                  *after_bfd = bfd_openr (*files_to_move, NULL);
                  if (*after_bfd == (bfd *) NULL)
                    {
                  *after_bfd = bfd_openr (*files_to_move, NULL);
                  if (*after_bfd == (bfd *) NULL)
                    {
@@ -1177,6 +1206,9 @@ replace_members (arch, files_to_move, quick)
                    }
                  (*after_bfd)->next = temp;
 
                    }
                  (*after_bfd)->next = temp;
 
+                 /* snip out this entry from the chain */
+                 *current_ptr = (*current_ptr)->next;
+
                  if (verbose)
                    {
                      printf ("r - %s\n", *files_to_move);
                  if (verbose)
                    {
                      printf ("r - %s\n", *files_to_move);
@@ -1192,7 +1224,7 @@ replace_members (arch, files_to_move, quick)
 
       /* Add to the end of the archive.  */
 
 
       /* Add to the end of the archive.  */
 
-      after_bfd = get_pos_bfd (&arch->next, pos_end);
+      after_bfd = get_pos_bfd (&arch->next, pos_end, NULL);
       temp = *after_bfd;
       *after_bfd = bfd_openr (*files_to_move, NULL);
       if (*after_bfd == (bfd *) NULL)
       temp = *after_bfd;
       *after_bfd = bfd_openr (*files_to_move, NULL);
       if (*after_bfd == (bfd *) NULL)
@@ -1266,7 +1298,7 @@ ranlib_touch (archname)
     }
 
   if (! bfd_has_map (arch))
     }
 
   if (! bfd_has_map (arch))
-    fatal ("%s: no archive map to update", archname);
+    fatal (_("%s: no archive map to update"), archname);
 
   bfd_update_armap_timestamp (arch);
 
 
   bfd_update_armap_timestamp (arch);
 
index 3d79d190ae592f9b7b3828dec34eab2e4631cc76..9320750c6164ab4dcd0b912035baa0358b7a51eb 100644 (file)
@@ -1,5 +1,5 @@
 /* bucomm.h -- binutils common include file.
 /* bucomm.h -- binutils common include file.
-   Copyright 1992 Free Software Foundation, Inc.
+   Copyright (C) 1992, 93, 94, 95, 96, 1997, 1998 Free Software Foundation, Inc.
 
 This file is part of GNU Binutils.
 
 
 This file is part of GNU Binutils.
 
@@ -15,18 +15,157 @@ GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
-Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 \f
 \f
+#ifndef _BUCOMM_H
+#define _BUCOMM_H
+
+#include "ansidecl.h"
+#include <stdio.h>
+#include <sys/types.h>
+
+#include "config.h"
+
+#ifdef USE_BINARY_FOPEN
+#include "fopen-bin.h"
+#else
+#include "fopen-same.h"
+#endif
+
+#include <errno.h>
+#ifndef errno
+extern int errno;
+#endif
+
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+
+#ifdef HAVE_STRING_H
+#include <string.h>
+#else
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#else
+extern char *strchr ();
+extern char *strrchr ();
+#endif
+#endif
+
+#ifdef HAVE_STDLIB_H
+#include <stdlib.h>
+#endif
+
+#ifdef HAVE_FCNTL_H
+#include <fcntl.h>
+#else
+#ifdef HAVE_SYS_FILE_H
+#include <sys/file.h>
+#endif
+#endif
+
+#ifdef NEED_DECLARATION_STRSTR
+extern char *strstr ();
+#endif
+
+#ifdef HAVE_SBRK
+#ifdef NEED_DECLARATION_SBRK
+extern char *sbrk ();
+#endif
+#endif
+
+#ifdef NEED_DECLARATION_GETENV
+extern char *getenv ();
+#endif
+
+#ifndef O_RDONLY
+#define O_RDONLY 0
+#endif
+
+#ifndef O_RDWR
+#define O_RDWR 2
+#endif
+
+#ifndef SEEK_SET
+#define SEEK_SET 0
+#endif
+#ifndef SEEK_CUR
+#define SEEK_CUR 1
+#endif
+#ifndef SEEK_END
+#define SEEK_END 2
+#endif
+
+#ifdef __GNUC__
+# undef alloca
+# define alloca __builtin_alloca
+#else
+# if HAVE_ALLOCA_H
+#  include <alloca.h>
+# else
+#  ifndef alloca /* predefined by HP cc +Olibcalls */
+#   if !defined (__STDC__) && !defined (__hpux)
+char *alloca ();
+#   else
+void *alloca ();
+#   endif /* __STDC__, __hpux */
+#  endif /* alloca */
+# endif /* HAVE_ALLOCA_H */
+#endif
+
+#ifdef ENABLE_NLS
+#include <libintl.h>
+#define _(String) gettext (String)
+#ifdef gettext_noop
+#define N_(String) gettext_noop (String)
+#else
+#define N_(String) (String)
+#endif
+#else
+/* Stubs that do something close enough.  */
+#define textdomain(String) (String)
+#define gettext(String) (String)
+#define dgettext(Domain,Message) (Message)
+#define dcgettext(Domain,Message,Type) (Message)
+#define bindtextdomain(Domain,Directory) (Domain)
+#define _(String) (String)
+#define N_(String) (String)
+/* In this case we don't care about the value.  */
+#ifndef LC_MESSAGES
+#define LC_MESSAGES 0
+#endif
+#endif
+
+/* bucomm.c */
 void bfd_nonfatal PARAMS ((CONST char *));
 
 void bfd_fatal PARAMS ((CONST char *));
 
 void bfd_nonfatal PARAMS ((CONST char *));
 
 void bfd_fatal PARAMS ((CONST char *));
 
-PTR xmalloc PARAMS ((size_t));
+void fatal PARAMS ((CONST char *, ...));
 
 
-PTR xrealloc PARAMS ((char *, size_t));
+void set_default_bfd_target PARAMS ((void));
 
 
-void fatal PARAMS ((CONST char *, ...));
+void list_matching_formats PARAMS ((char **p));
+
+void list_supported_targets PARAMS ((const char *, FILE *));
 
 void print_arelt_descr PARAMS ((FILE *file, bfd *abfd, boolean verbose));
 
 
 void print_arelt_descr PARAMS ((FILE *file, bfd *abfd, boolean verbose));
 
+char *make_tempname PARAMS ((char *));
+
+bfd_vma parse_vma PARAMS ((const char *, const char *));
+
 extern char *program_name;
 extern char *program_name;
+
+/* filemode.c */
+void mode_string PARAMS ((unsigned long mode, char *buf));
+
+/* version.c */
+extern void print_version PARAMS ((const char *));
+
+/* libiberty */
+PTR xmalloc PARAMS ((size_t));
+
+PTR xrealloc PARAMS ((PTR, size_t));
+
+#endif /* _BUCOMM_H */
index 120915d7f0dda15ec02441b773bb23b031cd09e7..12f634424ff0d180f020c1ebd89d757ec6f506b6 100644 (file)
@@ -1,5 +1,5 @@
 /* Coff file dumper.
 /* Coff file dumper.
-   Copyright (C) 1994 Free Software Foundation, Inc.
+   Copyright (C) 1994, 1998 Free Software Foundation, Inc.
 
 This file is part of GNU Binutils.
 
 
 This file is part of GNU Binutils.
 
@@ -15,7 +15,7 @@ GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
-Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 
 /* Written by Steve Chamberlain <sac@cygnus.com>
 
 
 /* Written by Steve Chamberlain <sac@cygnus.com>
 
@@ -25,16 +25,13 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
 #include <bfd.h>
 #include <getopt.h>
 
 #include <bfd.h>
 #include <getopt.h>
-#include <stdio.h>
 #include <libiberty.h>
 #include <libiberty.h>
-#include "bucomm.h"
 
 #include "coffgrok.h"
 
 #include "coffgrok.h"
-
+#include "bucomm.h"
 
 #define PROGRAM_VERSION "1.0"
 
 
 #define PROGRAM_VERSION "1.0"
 
-
 char *xcalloc(a,b)
 int a;
 int b;
 char *xcalloc(a,b)
 int a;
 int b;
@@ -103,7 +100,7 @@ dump_coff_lines (p)
   int i;
   int online = 0;
   tab(1);
   int i;
   int online = 0;
   tab(1);
-  printf("#lines %d ",p->nlines);
+  printf(_("#lines %d "),p->nlines);
   for (i = 0; i < p->nlines; i++) 
     {
       printf("(%d 0x%x)", p->lines[i], p->addresses[i]);
   for (i = 0; i < p->nlines; i++) 
     {
       printf("(%d 0x%x)", p->lines[i], p->addresses[i]);
@@ -127,6 +124,12 @@ dump_coff_type (p)
   printf ("size %d ", p->size);
   switch (p->type)
     {
   printf ("size %d ", p->size);
   switch (p->type)
     {
+    case coff_secdef_type:
+      printf ("section definition at %x size %x\n", 
+             p->u.asecdef.address,
+             p->u.asecdef.size);
+      nl();
+      break;
     case coff_pointer_type:
       printf ("pointer to");
       nl ();
     case coff_pointer_type:
       printf ("pointer to");
       nl ();
@@ -459,7 +462,7 @@ show_usage (file, status)
 static void
 show_help ()
 {
 static void
 show_help ()
 {
-  printf ("%s: Print a human readable interpretation of a SYSROFF object file\n",
+  printf (_("%s: Print a human readable interpretation of a SYSROFF object file\n"),
          program_name);
   show_usage (stdout, 0);
 }
          program_name);
   show_usage (stdout, 0);
 }
@@ -495,7 +498,7 @@ main (ac, av)
          show_help ();
          /*NOTREACHED*/
        case 'V':
          show_help ();
          /*NOTREACHED*/
        case 'V':
-         printf ("GNU %s version %s\n", program_name, PROGRAM_VERSION);
+         printf (_("GNU %s version %s\n"), program_name, PROGRAM_VERSION);
          exit (0);
          /*NOTREACHED*/
        case 0:
          exit (0);
          /*NOTREACHED*/
        case 0:
@@ -513,7 +516,7 @@ main (ac, av)
 
   if (!input_file)
     {
 
   if (!input_file)
     {
-      fprintf (stderr,"%s: no input file specified\n",
+      fprintf (stderr,_("%s: no input file specified\n"),
               program_name);
       exit(1);
     }
               program_name);
       exit(1);
     }
index 67be0f9744779f8c8e376d3d716a6d724ac9875b..3007ada460a86f082c36b58b10edbc1934a7b01b 100755 (executable)
@@ -12,15 +12,23 @@ ac_help=
 ac_default_prefix=/usr/local
 # Any additions from configure.in:
 ac_help="$ac_help
 ac_default_prefix=/usr/local
 # Any additions from configure.in:
 ac_help="$ac_help
-  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]"
+  --enable-shared         build shared libraries [default=yes]
+  --enable-shared=PKGS    only build shared libraries if the current package
+                          appears as an element in the PKGS list"
 ac_help="$ac_help
 ac_help="$ac_help
-  --enable-shared         build shared libraries [default=yes]"
+  --enable-static         build static libraries [default=yes]
+  --enable-static=PKGS    only build shared libraries if the current package
+                          appears as an element in the PKGS list"
 ac_help="$ac_help
 ac_help="$ac_help
-  --enable-static         build static libraries [default=yes]"
+  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]"
 ac_help="$ac_help
   --enable-targets        alternative target configurations"
 ac_help="$ac_help
   --enable-commonbfdlib   build shared BFD/opcodes/libiberty library"
 ac_help="$ac_help
   --enable-targets        alternative target configurations"
 ac_help="$ac_help
   --enable-commonbfdlib   build shared BFD/opcodes/libiberty library"
+ac_help="$ac_help
+  --disable-nls           do not use Native Language Support"
+ac_help="$ac_help
+  --with-included-gettext use the GNU gettext library included here"
 ac_help="$ac_help
   --enable-maintainer-mode enable make rules and dependencies not useful
                           (and sometimes confusing) to the casual installer"
 ac_help="$ac_help
   --enable-maintainer-mode enable make rules and dependencies not useful
                           (and sometimes confusing) to the casual installer"
@@ -580,7 +588,7 @@ else { echo "configure: error: can not run $ac_config_sub" 1>&2; exit 1; }
 fi
 
 echo $ac_n "checking host system type""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking host system type""... $ac_c" 1>&6
-echo "configure:584: checking host system type" >&5
+echo "configure:592: checking host system type" >&5
 
 host_alias=$host
 case "$host_alias" in
 
 host_alias=$host
 case "$host_alias" in
@@ -601,7 +609,7 @@ host_os=`echo $host | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
 echo "$ac_t""$host" 1>&6
 
 echo $ac_n "checking target system type""... $ac_c" 1>&6
 echo "$ac_t""$host" 1>&6
 
 echo $ac_n "checking target system type""... $ac_c" 1>&6
-echo "configure:605: checking target system type" >&5
+echo "configure:613: checking target system type" >&5
 
 target_alias=$target
 case "$target_alias" in
 
 target_alias=$target
 case "$target_alias" in
@@ -619,7 +627,7 @@ target_os=`echo $target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'`
 echo "$ac_t""$target" 1>&6
 
 echo $ac_n "checking build system type""... $ac_c" 1>&6
 echo "$ac_t""$target" 1>&6
 
 echo $ac_n "checking build system type""... $ac_c" 1>&6
-echo "configure:623: checking build system type" >&5
+echo "configure:631: checking build system type" >&5
 
 build_alias=$build
 case "$build_alias" in
 
 build_alias=$build
 case "$build_alias" in
@@ -654,7 +662,7 @@ test "$host_alias" != "$target_alias" &&
 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
 # ./install, which can be erroneously created by make from ./install.sh.
 echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
 # ./install, which can be erroneously created by make from ./install.sh.
 echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:658: checking for a BSD compatible install" >&5
+echo "configure:666: checking for a BSD compatible install" >&5
 if test -z "$INSTALL"; then
 if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 if test -z "$INSTALL"; then
 if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -707,24 +715,8 @@ test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
 test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
 
 
 test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL_PROGRAM}'
 
-
-PACKAGE=binutils
-
-VERSION=2.8.2
-
-if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
-  { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; }
-fi
-cat >> confdefs.h <<EOF
-#define PACKAGE "$PACKAGE"
-EOF
-
-cat >> confdefs.h <<EOF
-#define VERSION "$VERSION"
-EOF
-
 echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6
 echo $ac_n "checking whether build environment is sane""... $ac_c" 1>&6
-echo "configure:728: checking whether build environment is sane" >&5
+echo "configure:720: checking whether build environment is sane" >&5
 # Just in case
 sleep 1
 echo timestamp > conftestfile
 # Just in case
 sleep 1
 echo timestamp > conftestfile
@@ -735,10 +727,21 @@ echo timestamp > conftestfile
 # directory).
 if (
    set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
 # directory).
 if (
    set X `ls -Lt $srcdir/configure conftestfile 2> /dev/null`
-   if test "" = "X"; then
+   if test "$*" = "X"; then
       # -L didn't work.
       set X `ls -t $srcdir/configure conftestfile`
    fi
       # -L didn't work.
       set X `ls -t $srcdir/configure conftestfile`
    fi
+   if test "$*" != "X $srcdir/configure conftestfile" \
+      && test "$*" != "X conftestfile $srcdir/configure"; then
+
+      # If neither matched, then we have a broken ls.  This can happen
+      # if, for instance, CONFIG_SHELL is bash and it inherits a
+      # broken ls alias from the environment.  This has actually
+      # happened.  Such a system could not be considered "sane".
+      { echo "configure: error: ls -t appears to fail.  Make sure there is not a broken
+alias in your environment" 1>&2; exit 1; }
+   fi
+
    test "$2" = conftestfile
    )
 then
    test "$2" = conftestfile
    )
 then
@@ -769,9 +772,54 @@ test "$program_suffix" != NONE &&
 # sed with no file args requires a program.
 test "$program_transform_name" = "" && program_transform_name="s,x,x,"
 
 # sed with no file args requires a program.
 test "$program_transform_name" = "" && program_transform_name="s,x,x,"
 
+echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
+echo "configure:777: checking whether ${MAKE-make} sets \${MAKE}" >&5
+set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftestmake <<\EOF
+all:
+       @echo 'ac_maketemp="${MAKE}"'
+EOF
+# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
+eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=`
+if test -n "$ac_maketemp"; then
+  eval ac_cv_prog_make_${ac_make}_set=yes
+else
+  eval ac_cv_prog_make_${ac_make}_set=no
+fi
+rm -f conftestmake
+fi
+if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  SET_MAKE=
+else
+  echo "$ac_t""no" 1>&6
+  SET_MAKE="MAKE=${MAKE-make}"
+fi
+
+
+PACKAGE=binutils
+
+VERSION=2.9.1
+
+if test "`cd $srcdir && pwd`" != "`pwd`" && test -f $srcdir/config.status; then
+  { echo "configure: error: source directory already configured; run "make distclean" there first" 1>&2; exit 1; }
+fi
+cat >> confdefs.h <<EOF
+#define PACKAGE "$PACKAGE"
+EOF
+
+cat >> confdefs.h <<EOF
+#define VERSION "$VERSION"
+EOF
+
+
+
 missing_dir=`cd $ac_aux_dir && pwd`
 echo $ac_n "checking for working aclocal""... $ac_c" 1>&6
 missing_dir=`cd $ac_aux_dir && pwd`
 echo $ac_n "checking for working aclocal""... $ac_c" 1>&6
-echo "configure:775: checking for working aclocal" >&5
+echo "configure:823: checking for working aclocal" >&5
 # Run test in a subshell; some versions of sh will print an error if
 # an executable is not found, even if stderr is redirected.
 # Redirect stdin to placate older versions of autoconf.  Sigh.
 # Run test in a subshell; some versions of sh will print an error if
 # an executable is not found, even if stderr is redirected.
 # Redirect stdin to placate older versions of autoconf.  Sigh.
@@ -784,7 +832,7 @@ else
 fi
 
 echo $ac_n "checking for working autoconf""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking for working autoconf""... $ac_c" 1>&6
-echo "configure:788: checking for working autoconf" >&5
+echo "configure:836: checking for working autoconf" >&5
 # Run test in a subshell; some versions of sh will print an error if
 # an executable is not found, even if stderr is redirected.
 # Redirect stdin to placate older versions of autoconf.  Sigh.
 # Run test in a subshell; some versions of sh will print an error if
 # an executable is not found, even if stderr is redirected.
 # Redirect stdin to placate older versions of autoconf.  Sigh.
@@ -797,7 +845,7 @@ else
 fi
 
 echo $ac_n "checking for working automake""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking for working automake""... $ac_c" 1>&6
-echo "configure:801: checking for working automake" >&5
+echo "configure:849: checking for working automake" >&5
 # Run test in a subshell; some versions of sh will print an error if
 # an executable is not found, even if stderr is redirected.
 # Redirect stdin to placate older versions of autoconf.  Sigh.
 # Run test in a subshell; some versions of sh will print an error if
 # an executable is not found, even if stderr is redirected.
 # Redirect stdin to placate older versions of autoconf.  Sigh.
@@ -810,7 +858,7 @@ else
 fi
 
 echo $ac_n "checking for working autoheader""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking for working autoheader""... $ac_c" 1>&6
-echo "configure:814: checking for working autoheader" >&5
+echo "configure:862: checking for working autoheader" >&5
 # Run test in a subshell; some versions of sh will print an error if
 # an executable is not found, even if stderr is redirected.
 # Redirect stdin to placate older versions of autoconf.  Sigh.
 # Run test in a subshell; some versions of sh will print an error if
 # an executable is not found, even if stderr is redirected.
 # Redirect stdin to placate older versions of autoconf.  Sigh.
@@ -823,7 +871,7 @@ else
 fi
 
 echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking for working makeinfo""... $ac_c" 1>&6
-echo "configure:827: checking for working makeinfo" >&5
+echo "configure:875: checking for working makeinfo" >&5
 # Run test in a subshell; some versions of sh will print an error if
 # an executable is not found, even if stderr is redirected.
 # Redirect stdin to placate older versions of autoconf.  Sigh.
 # Run test in a subshell; some versions of sh will print an error if
 # an executable is not found, even if stderr is redirected.
 # Redirect stdin to placate older versions of autoconf.  Sigh.
@@ -835,38 +883,58 @@ else
    echo "$ac_t""missing" 1>&6
 fi
 
    echo "$ac_t""missing" 1>&6
 fi
 
-echo $ac_n "checking whether ${MAKE-make} sets \${MAKE}""... $ac_c" 1>&6
-echo "configure:840: checking whether ${MAKE-make} sets \${MAKE}" >&5
-set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y%./+-%__p_%'`
-if eval "test \"`echo '$''{'ac_cv_prog_make_${ac_make}_set'+set}'`\" = set"; then
-  echo $ac_n "(cached) $ac_c" 1>&6
-else
-  cat > conftestmake <<\EOF
-all:
-       @echo 'ac_maketemp="${MAKE}"'
-EOF
-# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
-eval `${MAKE-make} -f conftestmake 2>/dev/null | grep temp=`
-if test -n "$ac_maketemp"; then
-  eval ac_cv_prog_make_${ac_make}_set=yes
+
+
+# Check whether --enable-shared or --disable-shared was given.
+if test "${enable_shared+set}" = set; then
+  enableval="$enable_shared"
+  p=${PACKAGE-default}
+case "$enableval" in
+yes) enable_shared=yes ;;
+no) enable_shared=no ;;
+*)
+  enable_shared=no
+  # Look at the argument we got.  We use all the common list separators.
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
+  for pkg in $enableval; do
+    if test "X$pkg" = "X$p"; then
+      enable_shared=yes
+    fi
+  done
+  IFS="$ac_save_ifs"
+  ;;
+esac
 else
 else
-  eval ac_cv_prog_make_${ac_make}_set=no
-fi
-rm -f conftestmake
+  enable_shared=yes
 fi
 fi
-if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then
-  echo "$ac_t""yes" 1>&6
-  SET_MAKE=
+
+# Check whether --enable-static or --disable-static was given.
+if test "${enable_static+set}" = set; then
+  enableval="$enable_static"
+  p=${PACKAGE-default}
+case "$enableval" in
+yes) enable_static=yes ;;
+no) enable_static=no ;;
+*)
+  enable_static=no
+  # Look at the argument we got.  We use all the common list separators.
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:,"
+  for pkg in $enableval; do
+    if test "X$pkg" = "X$p"; then
+      enable_static=yes
+    fi
+  done
+  IFS="$ac_save_ifs"
+  ;;
+esac
 else
 else
-  echo "$ac_t""no" 1>&6
-  SET_MAKE="MAKE=${MAKE-make}"
+  enable_static=yes
 fi
 
 fi
 
-
 # Extract the first word of "ranlib", so it can be a program name with args.
 set dummy ranlib; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
 # Extract the first word of "ranlib", so it can be a program name with args.
 set dummy ranlib; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:870: checking for $ac_word" >&5
+echo "configure:938: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -895,7 +963,7 @@ fi
 # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
 # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:899: checking for $ac_word" >&5
+echo "configure:967: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -924,7 +992,7 @@ if test -z "$CC"; then
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:928: checking for $ac_word" >&5
+echo "configure:996: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -972,7 +1040,7 @@ fi
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:976: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:1044: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
 
 ac_ext=c
 # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
 
 ac_ext=c
 # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@@ -982,11 +1050,11 @@ ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS
 cross_compiling=$ac_cv_prog_cc_cross
 
 cat > conftest.$ac_ext <<EOF
 cross_compiling=$ac_cv_prog_cc_cross
 
 cat > conftest.$ac_ext <<EOF
-#line 986 "configure"
+#line 1054 "configure"
 #include "confdefs.h"
 main(){return(0);}
 EOF
 #include "confdefs.h"
 main(){return(0);}
 EOF
-if { (eval echo configure:990: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1058: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   ac_cv_prog_cc_works=yes
   # If we can't run a trivial program, we are probably using a cross compiler.
   if (./conftest; exit) 2>/dev/null; then
   ac_cv_prog_cc_works=yes
   # If we can't run a trivial program, we are probably using a cross compiler.
   if (./conftest; exit) 2>/dev/null; then
@@ -1006,12 +1074,12 @@ if test $ac_cv_prog_cc_works = no; then
   { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
 fi
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
   { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
 fi
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:1010: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1078: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
 cross_compiling=$ac_cv_prog_cc_cross
 
 echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
 cross_compiling=$ac_cv_prog_cc_cross
 
 echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:1015: checking whether we are using GNU C" >&5
+echo "configure:1083: checking whether we are using GNU C" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1020,7 +1088,7 @@ else
   yes;
 #endif
 EOF
   yes;
 #endif
 EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1024: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1092: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
   ac_cv_prog_gcc=yes
 else
   ac_cv_prog_gcc=no
   ac_cv_prog_gcc=yes
 else
   ac_cv_prog_gcc=no
@@ -1035,7 +1103,7 @@ if test $ac_cv_prog_gcc = yes; then
   ac_save_CFLAGS="$CFLAGS"
   CFLAGS=
   echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
   ac_save_CFLAGS="$CFLAGS"
   CFLAGS=
   echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1039: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:1107: checking whether ${CC-cc} accepts -g" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1075,11 +1143,11 @@ ac_prog=ld
 if test "$ac_cv_prog_gcc" = yes; then
   # Check if gcc -print-prog-name=ld gives a path.
   echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6
 if test "$ac_cv_prog_gcc" = yes; then
   # Check if gcc -print-prog-name=ld gives a path.
   echo $ac_n "checking for ld used by GCC""... $ac_c" 1>&6
-echo "configure:1079: checking for ld used by GCC" >&5
+echo "configure:1147: checking for ld used by GCC" >&5
   ac_prog=`($CC -print-prog-name=ld) 2>&5`
   case "$ac_prog" in
   # Accept absolute paths.
   ac_prog=`($CC -print-prog-name=ld) 2>&5`
   case "$ac_prog" in
   # Accept absolute paths.
-  /*)
+  /* | [A-Za-z]:\\*)
     test -z "$LD" && LD="$ac_prog"
     ;;
   "")
     test -z "$LD" && LD="$ac_prog"
     ;;
   "")
@@ -1093,10 +1161,10 @@ echo "configure:1079: checking for ld used by GCC" >&5
   esac
 elif test "$with_gnu_ld" = yes; then
   echo $ac_n "checking for GNU ld""... $ac_c" 1>&6
   esac
 elif test "$with_gnu_ld" = yes; then
   echo $ac_n "checking for GNU ld""... $ac_c" 1>&6
-echo "configure:1097: checking for GNU ld" >&5
+echo "configure:1165: checking for GNU ld" >&5
 else
   echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
 else
   echo $ac_n "checking for non-GNU ld""... $ac_c" 1>&6
-echo "configure:1100: checking for non-GNU ld" >&5
+echo "configure:1168: checking for non-GNU ld" >&5
 fi
 if eval "test \"`echo '$''{'ac_cv_path_LD'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 fi
 if eval "test \"`echo '$''{'ac_cv_path_LD'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1132,7 +1200,7 @@ fi
 test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; }
 
 echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6
 test -z "$LD" && { echo "configure: error: no acceptable ld found in \$PATH" 1>&2; exit 1; }
 
 echo $ac_n "checking if the linker ($LD) is GNU ld""... $ac_c" 1>&6
-echo "configure:1136: checking if the linker ($LD) is GNU ld" >&5
+echo "configure:1204: checking if the linker ($LD) is GNU ld" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_gnu_ld'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_prog_gnu_ld'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1148,25 +1216,21 @@ echo "$ac_t""$ac_cv_prog_gnu_ld" 1>&6
 
 
 echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6
 
 
 echo $ac_n "checking for BSD-compatible nm""... $ac_c" 1>&6
-echo "configure:1152: checking for BSD-compatible nm" >&5
+echo "configure:1220: checking for BSD-compatible nm" >&5
 if eval "test \"`echo '$''{'ac_cv_path_NM'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_path_NM'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  case "$NM" in
-/*)
-  ac_cv_path_NM="$NM" # Let the user override the test with a path.
-  ;;
-*)
+  if test -z "$NM"; then
   IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
   for ac_dir in /usr/ucb /usr/ccs/bin $PATH /bin; do
   IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
   for ac_dir in /usr/ucb /usr/ccs/bin $PATH /bin; do
-    test -z "$ac_dir" && dir=.
+    test -z "$ac_dir" && ac_dir=.
     if test -f $ac_dir/nm; then
       # Check to see if the nm accepts a BSD-compat flag.
     if test -f $ac_dir/nm; then
       # Check to see if the nm accepts a BSD-compat flag.
-      # Adding the `sed 1!d' prevents false positives on HP-UX, which says:
+      # Adding the `sed 1q' prevents false positives on HP-UX, which says:
       #   nm: unknown option "B" ignored
       #   nm: unknown option "B" ignored
-      if ($ac_dir/nm -B /dev/null 2>&1 | sed '1!d'; exit 0) | egrep /dev/null >/dev/null; then
+      if ($ac_dir/nm -B /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
         ac_cv_path_NM="$ac_dir/nm -B"
         ac_cv_path_NM="$ac_dir/nm -B"
-      elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1!d'; exit 0) | egrep /dev/null >/dev/null; then
+      elif ($ac_dir/nm -p /dev/null 2>&1 | sed '1q'; exit 0) | egrep /dev/null >/dev/null; then
         ac_cv_path_NM="$ac_dir/nm -p"
       else
         ac_cv_path_NM="$ac_dir/nm"
         ac_cv_path_NM="$ac_dir/nm -p"
       else
         ac_cv_path_NM="$ac_dir/nm"
@@ -1176,8 +1240,9 @@ else
   done
   IFS="$ac_save_ifs"
   test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm
   done
   IFS="$ac_save_ifs"
   test -z "$ac_cv_path_NM" && ac_cv_path_NM=nm
-  ;;
-esac
+else
+  ac_cv_path_NM="$NM" # Let the user override the test with a path.
+fi
 fi
 
 NM="$ac_cv_path_NM"
 fi
 
 NM="$ac_cv_path_NM"
@@ -1185,7 +1250,7 @@ echo "$ac_t""$NM" 1>&6
 
 
 echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
 
 
 echo $ac_n "checking whether ln -s works""... $ac_c" 1>&6
-echo "configure:1189: checking whether ln -s works" >&5
+echo "configure:1254: checking whether ln -s works" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_prog_LN_S'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1205,51 +1270,19 @@ else
   echo "$ac_t""no" 1>&6
 fi
 
   echo "$ac_t""no" 1>&6
 fi
 
-
-
-
-
-
-
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-
-
-# Check whether --enable-shared or --disable-shared was given.
-if test "${enable_shared+set}" = set; then
-  enableval="$enable_shared"
-  p=${PACKAGE-bogus-package-name}
- case "$enableval" in
-  yes) libtool_enable_shared=yes ;;
-  no) libtool_enable_shared=no ;;
-  # The value of $p (aka $PACKAGE) is assumed to come from AM_INIT_AUTOMAKE.
-  # If it didn't, it'll be `bogus-package-name', thus making this condition
-  #  not be used.
-  *$p*) libtool_enable_shared=yes ;;
-  *) libtool_enable_shared=no ;;
-esac
-fi
-
-test -n "$libtool_enable_shared" && enable_shared="$libtool_enable_shared"
-libtool_shared=
-test "$enable_shared" = no && libtool_shared=" --disable-shared"
-
-# Check whether --enable-static or --disable-static was given.
-if test "${enable_static+set}" = set; then
-  enableval="$enable_static"
-  if test "$enableval" = no; then
-  libtool_enable_static=no
+if test $host != $build; then
+  ac_tool_prefix=${host_alias}-
 else
 else
-  libtool_enable_static=yes
-fi
+  ac_tool_prefix=
 fi
 
 fi
 
-test -n "$libtool_enable_static" && enable_static="$libtool_enable_static"
-libtool_static=
-test "$enable_static" = no && libtool_static=" --disable-static"
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
 
 
-libtool_flags="$libtool_shared$libtool_static"
+# Check for any special flags to pass to ltconfig.
+libtool_flags=
+test "$enable_shared" = no && libtool_flags="$libtool_flags --disable-shared"
+test "$enable_static" = no && libtool_flags="$libtool_flags --disable-static"
 test "$silent" = yes && libtool_flags="$libtool_flags --silent"
 test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
 test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
 test "$silent" = yes && libtool_flags="$libtool_flags --silent"
 test "$ac_cv_prog_gcc" = yes && libtool_flags="$libtool_flags --with-gcc"
 test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
@@ -1258,42 +1291,169 @@ test "$ac_cv_prog_gnu_ld" = yes && libtool_flags="$libtool_flags --with-gnu-ld"
 # libtool support.
 case "$host" in
 *-*-irix6*)
 # libtool support.
 case "$host" in
 *-*-irix6*)
-  ac_save_CFLAGS="$CFLAGS"
-  flag_passed=no
-  for f in -32 -64 -n32 ABI -cckr -mips1 -mips2 -mips3 -mips4; do
-    case "$f" in
-    ABI)
-      test -n "$SGI_ABI" && flag_passed=yes
-      if test "$flag_passed" = no && test "$ac_cv_prog_gcc" = yes; then
-       # Choose the ABI flag according to GCC's specs.
-       if $CC -dumpspecs 2>&1 | sed '/^\*link:$/,/^$/!d' | egrep -e '[         ]-32' >/dev/null; then
-         LD="${LD-ld} -32"
-       else
-         LD="${LD-ld} -n32"
-       fi
-      fi
+  # Find out which ABI we are using.
+  echo '#line 1296 "configure"' > conftest.$ac_ext
+  if { (eval echo configure:1297: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+    case "`/usr/bin/file conftest.o`" in
+    *32-bit*)
+      LD="${LD-ld} -32"
       ;;
       ;;
-
-    *)
-      if echo " $CC $CFLAGS " | egrep -e "[    ]$f[     ]" > /dev/null; then
-       flag_passed=yes
-       LD="${LD-ld} $f"
-      fi
+    *N32*)
+      LD="${LD-ld} -n32"
+      ;;
+    *64-bit*)
+      LD="${LD-ld} -64"
       ;;
     esac
       ;;
     esac
-  done
-  CFLAGS="$ac_save_CFLAGS"
+  fi
+  rm -rf conftest*
   ;;
 
 *-*-sco3.2v5*)
   # On SCO OpenServer 5, we need -belf to get full-featured binaries.
   CFLAGS="$CFLAGS -belf"
   ;;
   ;;
 
 *-*-sco3.2v5*)
   # On SCO OpenServer 5, we need -belf to get full-featured binaries.
   CFLAGS="$CFLAGS -belf"
   ;;
+
+*-*-cygwin32*)
+  # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dlltool; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1322: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_DLLTOOL'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$DLLTOOL"; then
+  ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
+else
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+fi
+fi
+DLLTOOL="$ac_cv_prog_DLLTOOL"
+if test -n "$DLLTOOL"; then
+  echo "$ac_t""$DLLTOOL" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+
+if test -z "$ac_cv_prog_DLLTOOL"; then
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "dlltool", so it can be a program name with args.
+set dummy dlltool; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1353: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_DLLTOOL'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$DLLTOOL"; then
+  ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
+else
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_DLLTOOL="dlltool"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_prog_DLLTOOL" && ac_cv_prog_DLLTOOL="false"
+fi
+fi
+DLLTOOL="$ac_cv_prog_DLLTOOL"
+if test -n "$DLLTOOL"; then
+  echo "$ac_t""$DLLTOOL" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+else
+  DLLTOOL="false"
+fi
+fi
+
+# Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
+set dummy ${ac_tool_prefix}as; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1387: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$AS"; then
+  ac_cv_prog_AS="$AS" # Let the user override the test.
+else
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_AS="${ac_tool_prefix}as"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+fi
+fi
+AS="$ac_cv_prog_AS"
+if test -n "$AS"; then
+  echo "$ac_t""$AS" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+
+if test -z "$ac_cv_prog_AS"; then
+if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "as", so it can be a program name with args.
+set dummy as; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1418: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_AS'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$AS"; then
+  ac_cv_prog_AS="$AS" # Let the user override the test.
+else
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_AS="as"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_prog_AS" && ac_cv_prog_AS="false"
+fi
+fi
+AS="$ac_cv_prog_AS"
+if test -n "$AS"; then
+  echo "$ac_t""$AS" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+else
+  AS="false"
+fi
+fi
+
+
+  ;;
+
 esac
 
 # Actually configure libtool.  ac_aux_dir is where install-sh is found.
 CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
 LD="$LD" NM="$NM" RANLIB="$RANLIB" LN_S="$LN_S" \
 esac
 
 # Actually configure libtool.  ac_aux_dir is where install-sh is found.
 CC="$CC" CFLAGS="$CFLAGS" CPPFLAGS="$CPPFLAGS" \
 LD="$LD" NM="$NM" RANLIB="$RANLIB" LN_S="$LN_S" \
+DLLTOOL="$DLLTOOL" AS="$AS" \
 ${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig \
 $libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \
 || { echo "configure: error: libtool configure failed" 1>&2; exit 1; }
 ${CONFIG_SHELL-/bin/sh} $ac_aux_dir/ltconfig \
 $libtool_flags --no-verify $ac_aux_dir/ltmain.sh $host \
 || { echo "configure: error: libtool configure failed" 1>&2; exit 1; }
@@ -1333,7 +1493,7 @@ fi
 # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
 # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1337: checking for $ac_word" >&5
+echo "configure:1497: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1362,7 +1522,7 @@ if test -z "$CC"; then
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1366: checking for $ac_word" >&5
+echo "configure:1526: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_prog_CC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1410,7 +1570,7 @@ fi
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works""... $ac_c" 1>&6
-echo "configure:1414: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
+echo "configure:1574: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) works" >&5
 
 ac_ext=c
 # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
 
 ac_ext=c
 # CFLAGS is not in ac_cpp because -g, -O, etc. are not valid cpp options.
@@ -1420,11 +1580,11 @@ ac_link='${CC-cc} -o conftest $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS
 cross_compiling=$ac_cv_prog_cc_cross
 
 cat > conftest.$ac_ext <<EOF
 cross_compiling=$ac_cv_prog_cc_cross
 
 cat > conftest.$ac_ext <<EOF
-#line 1424 "configure"
+#line 1584 "configure"
 #include "confdefs.h"
 main(){return(0);}
 EOF
 #include "confdefs.h"
 main(){return(0);}
 EOF
-if { (eval echo configure:1428: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:1588: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   ac_cv_prog_cc_works=yes
   # If we can't run a trivial program, we are probably using a cross compiler.
   if (./conftest; exit) 2>/dev/null; then
   ac_cv_prog_cc_works=yes
   # If we can't run a trivial program, we are probably using a cross compiler.
   if (./conftest; exit) 2>/dev/null; then
@@ -1444,12 +1604,12 @@ if test $ac_cv_prog_cc_works = no; then
   { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
 fi
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
   { echo "configure: error: installation or configuration problem: C compiler cannot create executables." 1>&2; exit 1; }
 fi
 echo $ac_n "checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler""... $ac_c" 1>&6
-echo "configure:1448: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
+echo "configure:1608: checking whether the C compiler ($CC $CFLAGS $LDFLAGS) is a cross-compiler" >&5
 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
 cross_compiling=$ac_cv_prog_cc_cross
 
 echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
 echo "$ac_t""$ac_cv_prog_cc_cross" 1>&6
 cross_compiling=$ac_cv_prog_cc_cross
 
 echo $ac_n "checking whether we are using GNU C""... $ac_c" 1>&6
-echo "configure:1453: checking whether we are using GNU C" >&5
+echo "configure:1613: checking whether we are using GNU C" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_prog_gcc'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1458,7 +1618,7 @@ else
   yes;
 #endif
 EOF
   yes;
 #endif
 EOF
-if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1462: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
+if { ac_try='${CC-cc} -E conftest.c'; { (eval echo configure:1622: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }; } | egrep yes >/dev/null 2>&1; then
   ac_cv_prog_gcc=yes
 else
   ac_cv_prog_gcc=no
   ac_cv_prog_gcc=yes
 else
   ac_cv_prog_gcc=no
@@ -1473,7 +1633,7 @@ if test $ac_cv_prog_gcc = yes; then
   ac_save_CFLAGS="$CFLAGS"
   CFLAGS=
   echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
   ac_save_CFLAGS="$CFLAGS"
   CFLAGS=
   echo $ac_n "checking whether ${CC-cc} accepts -g""... $ac_c" 1>&6
-echo "configure:1477: checking whether ${CC-cc} accepts -g" >&5
+echo "configure:1637: checking whether ${CC-cc} accepts -g" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_prog_cc_g'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1506,7 +1666,7 @@ do
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
 # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1510: checking for $ac_word" >&5
+echo "configure:1670: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_prog_YACC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1535,20 +1695,116 @@ test -n "$YACC" && break
 done
 test -n "$YACC" || YACC="yacc"
 
 done
 test -n "$YACC" || YACC="yacc"
 
-# Extract the first word of "flex", so it can be a program name with args.
-set dummy flex; ac_word=$2
-echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1542: checking for $ac_word" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then
+echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
+echo "configure:1700: checking how to run the C preprocessor" >&5
+# On Suns, sometimes $CPP names a directory.
+if test -n "$CPP" && test -d "$CPP"; then
+  CPP=
+fi
+if test -z "$CPP"; then
+if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  if test -n "$LEX"; then
-  ac_cv_prog_LEX="$LEX" # Let the user override the test.
-else
-  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
-  for ac_dir in $PATH; do
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$ac_word; then
+    # This must be in double quotes, not single quotes, because CPP may get
+  # substituted into the Makefile and "${CC-cc}" will confuse make.
+  CPP="${CC-cc} -E"
+  # On the NeXT, cc -E runs the code through the compiler's parser,
+  # not just through cpp.
+  cat > conftest.$ac_ext <<EOF
+#line 1715 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:1721: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out`
+if test -z "$ac_err"; then
+  :
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  CPP="${CC-cc} -E -traditional-cpp"
+  cat > conftest.$ac_ext <<EOF
+#line 1732 "configure"
+#include "confdefs.h"
+#include <assert.h>
+Syntax Error
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:1738: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out`
+if test -z "$ac_err"; then
+  :
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  CPP=/lib/cpp
+fi
+rm -f conftest*
+fi
+rm -f conftest*
+  ac_cv_prog_CPP="$CPP"
+fi
+  CPP="$ac_cv_prog_CPP"
+else
+  ac_cv_prog_CPP="$CPP"
+fi
+echo "$ac_t""$CPP" 1>&6
+
+missing_dir=`cd $ac_aux_dir && pwd`
+for ac_prog in flex lex
+do
+# Extract the first word of "$ac_prog", so it can be a program name with args.
+set dummy $ac_prog; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1766: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$LEX"; then
+  ac_cv_prog_LEX="$LEX" # Let the user override the test.
+else
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_prog_LEX="$ac_prog"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+fi
+fi
+LEX="$ac_cv_prog_LEX"
+if test -n "$LEX"; then
+  echo "$ac_t""$LEX" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+test -n "$LEX" && break
+done
+test -n "$LEX" || LEX=""$missing_dir/missing flex""
+
+# Extract the first word of "flex", so it can be a program name with args.
+set dummy flex; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:1798: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_LEX'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test -n "$LEX"; then
+  ac_cv_prog_LEX="$LEX" # Let the user override the test.
+else
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
       ac_cv_prog_LEX="flex"
       break
     fi
       ac_cv_prog_LEX="flex"
       break
     fi
@@ -1571,7 +1827,7 @@ then
   *) ac_lib=l ;;
   esac
   echo $ac_n "checking for yywrap in -l$ac_lib""... $ac_c" 1>&6
   *) ac_lib=l ;;
   esac
   echo $ac_n "checking for yywrap in -l$ac_lib""... $ac_c" 1>&6
-echo "configure:1575: checking for yywrap in -l$ac_lib" >&5
+echo "configure:1831: checking for yywrap in -l$ac_lib" >&5
 ac_lib_var=`echo $ac_lib'_'yywrap | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 ac_lib_var=`echo $ac_lib'_'yywrap | sed 'y%./+-%__p_%'`
 if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -1579,165 +1835,1728 @@ else
   ac_save_LIBS="$LIBS"
 LIBS="-l$ac_lib  $LIBS"
 cat > conftest.$ac_ext <<EOF
   ac_save_LIBS="$LIBS"
 LIBS="-l$ac_lib  $LIBS"
 cat > conftest.$ac_ext <<EOF
-#line 1583 "configure"
+#line 1839 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char yywrap();
+
+int main() {
+yywrap()
+; return 0; }
+EOF
+if { (eval echo configure:1850: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  LEXLIB="-l$ac_lib"
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+fi
+
+echo $ac_n "checking lex output file root""... $ac_c" 1>&6
+echo "configure:1873: checking lex output file root" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_lex_root'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  # The minimal lex program is just a single line: %%.  But some broken lexes
+# (Solaris, I think it was) want two %% lines, so accommodate them.
+echo '%%
+%%' | $LEX
+if test -f lex.yy.c; then
+  ac_cv_prog_lex_root=lex.yy
+elif test -f lexyy.c; then
+  ac_cv_prog_lex_root=lexyy
+else
+  { echo "configure: error: cannot find output from $LEX; giving up" 1>&2; exit 1; }
+fi
+fi
+
+echo "$ac_t""$ac_cv_prog_lex_root" 1>&6
+LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root
+
+echo $ac_n "checking whether yytext is a pointer""... $ac_c" 1>&6
+echo "configure:1894: checking whether yytext is a pointer" >&5
+if eval "test \"`echo '$''{'ac_cv_prog_lex_yytext_pointer'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  # POSIX says lex can declare yytext either as a pointer or an array; the
+# default is implementation-dependent. Figure out which it is, since
+# not all implementations provide the %pointer and %array declarations.
+ac_cv_prog_lex_yytext_pointer=no
+echo 'extern char *yytext;' >>$LEX_OUTPUT_ROOT.c
+ac_save_LIBS="$LIBS"
+LIBS="$LIBS $LEXLIB"
+cat > conftest.$ac_ext <<EOF
+#line 1906 "configure"
+#include "confdefs.h"
+`cat $LEX_OUTPUT_ROOT.c`
+int main() {
+
+; return 0; }
+EOF
+if { (eval echo configure:1913: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+  rm -rf conftest*
+  ac_cv_prog_lex_yytext_pointer=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+rm -f "${LEX_OUTPUT_ROOT}.c"
+
+fi
+
+echo "$ac_t""$ac_cv_prog_lex_yytext_pointer" 1>&6
+if test $ac_cv_prog_lex_yytext_pointer = yes; then
+  cat >> confdefs.h <<\EOF
+#define YYTEXT_POINTER 1
+EOF
+
+fi
+
+
+ALL_LINGUAS=
+echo $ac_n "checking for POSIXized ISC""... $ac_c" 1>&6
+echo "configure:1937: checking for POSIXized ISC" >&5
+if test -d /etc/conf/kconfig.d &&
+  grep _POSIX_VERSION /usr/include/sys/unistd.h >/dev/null 2>&1
+then
+  echo "$ac_t""yes" 1>&6
+  ISC=yes # If later tests want to check for ISC.
+  cat >> confdefs.h <<\EOF
+#define _POSIX_SOURCE 1
+EOF
+
+  if test "$GCC" = yes; then
+    CC="$CC -posix"
+  else
+    CC="$CC -Xp"
+  fi
+else
+  echo "$ac_t""no" 1>&6
+  ISC=
+fi
+
+echo $ac_n "checking for ANSI C header files""... $ac_c" 1>&6
+echo "configure:1958: checking for ANSI C header files" >&5
+if eval "test \"`echo '$''{'ac_cv_header_stdc'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 1963 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+#include <stdarg.h>
+#include <string.h>
+#include <float.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:1971: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out`
+if test -z "$ac_err"; then
+  rm -rf conftest*
+  ac_cv_header_stdc=yes
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+if test $ac_cv_header_stdc = yes; then
+  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
+cat > conftest.$ac_ext <<EOF
+#line 1988 "configure"
+#include "confdefs.h"
+#include <string.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "memchr" >/dev/null 2>&1; then
+  :
+else
+  rm -rf conftest*
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
+cat > conftest.$ac_ext <<EOF
+#line 2006 "configure"
+#include "confdefs.h"
+#include <stdlib.h>
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "free" >/dev/null 2>&1; then
+  :
+else
+  rm -rf conftest*
+  ac_cv_header_stdc=no
+fi
+rm -f conftest*
+
+fi
+
+if test $ac_cv_header_stdc = yes; then
+  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
+if test "$cross_compiling" = yes; then
+  :
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2027 "configure"
+#include "confdefs.h"
+#include <ctype.h>
+#define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
+#define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
+#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
+int main () { int i; for (i = 0; i < 256; i++)
+if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) exit(2);
+exit (0); }
+
+EOF
+if { (eval echo configure:2038: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+then
+  :
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -fr conftest*
+  ac_cv_header_stdc=no
+fi
+rm -fr conftest*
+fi
+
+fi
+fi
+
+echo "$ac_t""$ac_cv_header_stdc" 1>&6
+if test $ac_cv_header_stdc = yes; then
+  cat >> confdefs.h <<\EOF
+#define STDC_HEADERS 1
+EOF
+
+fi
+
+echo $ac_n "checking for working const""... $ac_c" 1>&6
+echo "configure:2062: checking for working const" >&5
+if eval "test \"`echo '$''{'ac_cv_c_const'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2067 "configure"
+#include "confdefs.h"
+
+int main() {
+
+/* Ultrix mips cc rejects this.  */
+typedef int charset[2]; const charset x;
+/* SunOS 4.1.1 cc rejects this.  */
+char const *const *ccp;
+char **p;
+/* NEC SVR4.0.2 mips cc rejects this.  */
+struct point {int x, y;};
+static struct point const zero = {0,0};
+/* AIX XL C 1.02.0.0 rejects this.
+   It does not let you subtract one const X* pointer from another in an arm
+   of an if-expression whose if-part is not a constant expression */
+const char *g = "string";
+ccp = &g + (g ? g-g : 0);
+/* HPUX 7.0 cc rejects these. */
+++ccp;
+p = (char**) ccp;
+ccp = (char const *const *) p;
+{ /* SCO 3.2v4 cc rejects this.  */
+  char *t;
+  char const *s = 0 ? (char *) 0 : (char const *) 0;
+
+  *t++ = 0;
+}
+{ /* Someone thinks the Sun supposedly-ANSI compiler will reject this.  */
+  int x[] = {25, 17};
+  const int *foo = &x[0];
+  ++foo;
+}
+{ /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */
+  typedef const int *iptr;
+  iptr p = 0;
+  ++p;
+}
+{ /* AIX XL C 1.02.0.0 rejects this saying
+     "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */
+  struct s { int j; const int *ap[3]; };
+  struct s *b; b->j = 5;
+}
+{ /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */
+  const int foo = 10;
+}
+
+; return 0; }
+EOF
+if { (eval echo configure:2116: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  ac_cv_c_const=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  ac_cv_c_const=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_c_const" 1>&6
+if test $ac_cv_c_const = no; then
+  cat >> confdefs.h <<\EOF
+#define const 
+EOF
+
+fi
+
+echo $ac_n "checking for inline""... $ac_c" 1>&6
+echo "configure:2137: checking for inline" >&5
+if eval "test \"`echo '$''{'ac_cv_c_inline'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_cv_c_inline=no
+for ac_kw in inline __inline__ __inline; do
+  cat > conftest.$ac_ext <<EOF
+#line 2144 "configure"
+#include "confdefs.h"
+
+int main() {
+} $ac_kw foo() {
+; return 0; }
+EOF
+if { (eval echo configure:2151: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+  rm -rf conftest*
+  ac_cv_c_inline=$ac_kw; break
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+fi
+rm -f conftest*
+done
+
+fi
+
+echo "$ac_t""$ac_cv_c_inline" 1>&6
+case "$ac_cv_c_inline" in
+  inline | yes) ;;
+  no) cat >> confdefs.h <<\EOF
+#define inline 
+EOF
+ ;;
+  *)  cat >> confdefs.h <<EOF
+#define inline $ac_cv_c_inline
+EOF
+ ;;
+esac
+
+echo $ac_n "checking for off_t""... $ac_c" 1>&6
+echo "configure:2177: checking for off_t" >&5
+if eval "test \"`echo '$''{'ac_cv_type_off_t'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2182 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "off_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+  rm -rf conftest*
+  ac_cv_type_off_t=yes
+else
+  rm -rf conftest*
+  ac_cv_type_off_t=no
+fi
+rm -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_type_off_t" 1>&6
+if test $ac_cv_type_off_t = no; then
+  cat >> confdefs.h <<\EOF
+#define off_t long
+EOF
+
+fi
+
+echo $ac_n "checking for size_t""... $ac_c" 1>&6
+echo "configure:2210: checking for size_t" >&5
+if eval "test \"`echo '$''{'ac_cv_type_size_t'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2215 "configure"
+#include "confdefs.h"
+#include <sys/types.h>
+#if STDC_HEADERS
+#include <stdlib.h>
+#include <stddef.h>
+#endif
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "size_t[^a-zA-Z_0-9]" >/dev/null 2>&1; then
+  rm -rf conftest*
+  ac_cv_type_size_t=yes
+else
+  rm -rf conftest*
+  ac_cv_type_size_t=no
+fi
+rm -f conftest*
+
+fi
+echo "$ac_t""$ac_cv_type_size_t" 1>&6
+if test $ac_cv_type_size_t = no; then
+  cat >> confdefs.h <<\EOF
+#define size_t unsigned
+EOF
+
+fi
+
+# The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
+# for constant arguments.  Useless!
+echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
+echo "configure:2245: checking for working alloca.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2250 "configure"
+#include "confdefs.h"
+#include <alloca.h>
+int main() {
+char *p = alloca(2 * sizeof(int));
+; return 0; }
+EOF
+if { (eval echo configure:2257: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+  rm -rf conftest*
+  ac_cv_header_alloca_h=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  ac_cv_header_alloca_h=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_header_alloca_h" 1>&6
+if test $ac_cv_header_alloca_h = yes; then
+  cat >> confdefs.h <<\EOF
+#define HAVE_ALLOCA_H 1
+EOF
+
+fi
+
+echo $ac_n "checking for alloca""... $ac_c" 1>&6
+echo "configure:2278: checking for alloca" >&5
+if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2283 "configure"
+#include "confdefs.h"
+
+#ifdef __GNUC__
+# define alloca __builtin_alloca
+#else
+# if HAVE_ALLOCA_H
+#  include <alloca.h>
+# else
+#  ifdef _AIX
+ #pragma alloca
+#  else
+#   ifndef alloca /* predefined by HP cc +Olibcalls */
+char *alloca ();
+#   endif
+#  endif
+# endif
+#endif
+
+int main() {
+char *p = (char *) alloca(1);
+; return 0; }
+EOF
+if { (eval echo configure:2306: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+  rm -rf conftest*
+  ac_cv_func_alloca_works=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  ac_cv_func_alloca_works=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$ac_cv_func_alloca_works" 1>&6
+if test $ac_cv_func_alloca_works = yes; then
+  cat >> confdefs.h <<\EOF
+#define HAVE_ALLOCA 1
+EOF
+
+fi
+
+if test $ac_cv_func_alloca_works = no; then
+  # The SVR3 libPW and SVR4 libucb both contain incompatible functions
+  # that cause trouble.  Some versions do not even contain alloca or
+  # contain a buggy version.  If you still want to use their alloca,
+  # use ar to extract alloca.o from them instead of compiling alloca.c.
+  ALLOCA=alloca.o
+  cat >> confdefs.h <<\EOF
+#define C_ALLOCA 1
+EOF
+
+
+echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
+echo "configure:2338: checking whether alloca needs Cray hooks" >&5
+if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2343 "configure"
+#include "confdefs.h"
+#if defined(CRAY) && ! defined(CRAY2)
+webecray
+#else
+wenotbecray
+#endif
+
+EOF
+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
+  egrep "webecray" >/dev/null 2>&1; then
+  rm -rf conftest*
+  ac_cv_os_cray=yes
+else
+  rm -rf conftest*
+  ac_cv_os_cray=no
+fi
+rm -f conftest*
+
+fi
+
+echo "$ac_t""$ac_cv_os_cray" 1>&6
+if test $ac_cv_os_cray = yes; then
+for ac_func in _getb67 GETB67 getb67; do
+  echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:2368: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2373 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:2396: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  cat >> confdefs.h <<EOF
+#define CRAY_STACKSEG_END $ac_func
+EOF
+
+  break
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+done
+fi
+
+echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
+echo "configure:2423: checking stack direction for C alloca" >&5
+if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test "$cross_compiling" = yes; then
+  ac_cv_c_stack_direction=0
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2431 "configure"
+#include "confdefs.h"
+find_stack_direction ()
+{
+  static char *addr = 0;
+  auto char dummy;
+  if (addr == 0)
+    {
+      addr = &dummy;
+      return find_stack_direction ();
+    }
+  else
+    return (&dummy > addr) ? 1 : -1;
+}
+main ()
+{
+  exit (find_stack_direction() < 0);
+}
+EOF
+if { (eval echo configure:2450: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+then
+  ac_cv_c_stack_direction=1
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -fr conftest*
+  ac_cv_c_stack_direction=-1
+fi
+rm -fr conftest*
+fi
+
+fi
+
+echo "$ac_t""$ac_cv_c_stack_direction" 1>&6
+cat >> confdefs.h <<EOF
+#define STACK_DIRECTION $ac_cv_c_stack_direction
+EOF
+
+fi
+
+for ac_hdr in unistd.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:2475: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2480 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2485: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out`
+if test -z "$ac_err"; then
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=yes"
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+for ac_func in getpagesize
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:2514: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2519 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:2542: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+echo $ac_n "checking for working mmap""... $ac_c" 1>&6
+echo "configure:2567: checking for working mmap" >&5
+if eval "test \"`echo '$''{'ac_cv_func_mmap_fixed_mapped'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  if test "$cross_compiling" = yes; then
+  ac_cv_func_mmap_fixed_mapped=no
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2575 "configure"
+#include "confdefs.h"
+
+/* Thanks to Mike Haertel and Jim Avera for this test.
+   Here is a matrix of mmap possibilities:
+       mmap private not fixed
+       mmap private fixed at somewhere currently unmapped
+       mmap private fixed at somewhere already mapped
+       mmap shared not fixed
+       mmap shared fixed at somewhere currently unmapped
+       mmap shared fixed at somewhere already mapped
+   For private mappings, we should verify that changes cannot be read()
+   back from the file, nor mmap's back from the file at a different
+   address.  (There have been systems where private was not correctly
+   implemented like the infamous i386 svr4.0, and systems where the
+   VM page cache was not coherent with the filesystem buffer cache
+   like early versions of FreeBSD and possibly contemporary NetBSD.)
+   For shared mappings, we should conversely verify that changes get
+   propogated back to all the places they're supposed to be.
+
+   Grep wants private fixed already mapped.
+   The main things grep needs to know about mmap are:
+   * does it exist and is it safe to write into the mmap'd area
+   * how to use it (BSD variants)  */
+#include <sys/types.h>
+#include <fcntl.h>
+#include <sys/mman.h>
+
+/* This mess was copied from the GNU getpagesize.h.  */
+#ifndef HAVE_GETPAGESIZE
+# ifdef HAVE_UNISTD_H
+#  include <unistd.h>
+# endif
+
+/* Assume that all systems that can run configure have sys/param.h.  */
+# ifndef HAVE_SYS_PARAM_H
+#  define HAVE_SYS_PARAM_H 1
+# endif
+
+# ifdef _SC_PAGESIZE
+#  define getpagesize() sysconf(_SC_PAGESIZE)
+# else /* no _SC_PAGESIZE */
+#  ifdef HAVE_SYS_PARAM_H
+#   include <sys/param.h>
+#   ifdef EXEC_PAGESIZE
+#    define getpagesize() EXEC_PAGESIZE
+#   else /* no EXEC_PAGESIZE */
+#    ifdef NBPG
+#     define getpagesize() NBPG * CLSIZE
+#     ifndef CLSIZE
+#      define CLSIZE 1
+#     endif /* no CLSIZE */
+#    else /* no NBPG */
+#     ifdef NBPC
+#      define getpagesize() NBPC
+#     else /* no NBPC */
+#      ifdef PAGESIZE
+#       define getpagesize() PAGESIZE
+#      endif /* PAGESIZE */
+#     endif /* no NBPC */
+#    endif /* no NBPG */
+#   endif /* no EXEC_PAGESIZE */
+#  else /* no HAVE_SYS_PARAM_H */
+#   define getpagesize() 8192  /* punt totally */
+#  endif /* no HAVE_SYS_PARAM_H */
+# endif /* no _SC_PAGESIZE */
+
+#endif /* no HAVE_GETPAGESIZE */
+
+#ifdef __cplusplus
+extern "C" { void *malloc(unsigned); }
+#else
+char *malloc();
+#endif
+
+int
+main()
+{
+       char *data, *data2, *data3;
+       int i, pagesize;
+       int fd;
+
+       pagesize = getpagesize();
+
+       /*
+        * First, make a file with some known garbage in it.
+        */
+       data = malloc(pagesize);
+       if (!data)
+               exit(1);
+       for (i = 0; i < pagesize; ++i)
+               *(data + i) = rand();
+       umask(0);
+       fd = creat("conftestmmap", 0600);
+       if (fd < 0)
+               exit(1);
+       if (write(fd, data, pagesize) != pagesize)
+               exit(1);
+       close(fd);
+
+       /*
+        * Next, try to mmap the file at a fixed address which
+        * already has something else allocated at it.  If we can,
+        * also make sure that we see the same garbage.
+        */
+       fd = open("conftestmmap", O_RDWR);
+       if (fd < 0)
+               exit(1);
+       data2 = malloc(2 * pagesize);
+       if (!data2)
+               exit(1);
+       data2 += (pagesize - ((int) data2 & (pagesize - 1))) & (pagesize - 1);
+       if (data2 != mmap(data2, pagesize, PROT_READ | PROT_WRITE,
+           MAP_PRIVATE | MAP_FIXED, fd, 0L))
+               exit(1);
+       for (i = 0; i < pagesize; ++i)
+               if (*(data + i) != *(data2 + i))
+                       exit(1);
+
+       /*
+        * Finally, make sure that changes to the mapped area
+        * do not percolate back to the file as seen by read().
+        * (This is a bug on some variants of i386 svr4.0.)
+        */
+       for (i = 0; i < pagesize; ++i)
+               *(data2 + i) = *(data2 + i) + 1;
+       data3 = malloc(pagesize);
+       if (!data3)
+               exit(1);
+       if (read(fd, data3, pagesize) != pagesize)
+               exit(1);
+       for (i = 0; i < pagesize; ++i)
+               if (*(data + i) != *(data3 + i))
+                       exit(1);
+       close(fd);
+       unlink("conftestmmap");
+       exit(0);
+}
+
+EOF
+if { (eval echo configure:2715: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+then
+  ac_cv_func_mmap_fixed_mapped=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -fr conftest*
+  ac_cv_func_mmap_fixed_mapped=no
+fi
+rm -fr conftest*
+fi
+
+fi
+
+echo "$ac_t""$ac_cv_func_mmap_fixed_mapped" 1>&6
+if test $ac_cv_func_mmap_fixed_mapped = yes; then
+  cat >> confdefs.h <<\EOF
+#define HAVE_MMAP 1
+EOF
+
+fi
+
+                              
+   for ac_hdr in argz.h limits.h locale.h nl_types.h malloc.h string.h \
+unistd.h values.h sys/param.h
+do
+ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
+echo "configure:2743: checking for $ac_hdr" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2748 "configure"
+#include "confdefs.h"
+#include <$ac_hdr>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2753: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out`
+if test -z "$ac_err"; then
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=yes"
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_hdr=HAVE_`echo $ac_hdr | sed 'y%abcdefghijklmnopqrstuvwxyz./-%ABCDEFGHIJKLMNOPQRSTUVWXYZ___%'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_hdr 1
+EOF
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+   for ac_func in getcwd munmap putenv setenv setlocale strchr strcasecmp \
+__argz_count __argz_stringify __argz_next
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:2783: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2788 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:2811: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+
+   if test "${ac_cv_func_stpcpy+set}" != "set"; then
+     for ac_func in stpcpy
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:2840: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2845 "configure"
+#include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func(); below.  */
+#include <assert.h>
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char $ac_func();
+
+int main() {
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
+; return 0; }
+EOF
+if { (eval echo configure:2868: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_func_$ac_func=no"
+fi
+rm -f conftest*
+fi
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
+else
+  echo "$ac_t""no" 1>&6
+fi
+done
+
+   fi
+   if test "${ac_cv_func_stpcpy}" = "yes"; then
+     cat >> confdefs.h <<\EOF
+#define HAVE_STPCPY 1
+EOF
+
+   fi
+
+   if test $ac_cv_header_locale_h = yes; then
+    echo $ac_n "checking for LC_MESSAGES""... $ac_c" 1>&6
+echo "configure:2902: checking for LC_MESSAGES" >&5
+if eval "test \"`echo '$''{'am_cv_val_LC_MESSAGES'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2907 "configure"
+#include "confdefs.h"
+#include <locale.h>
+int main() {
+return LC_MESSAGES
+; return 0; }
+EOF
+if { (eval echo configure:2914: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+  rm -rf conftest*
+  am_cv_val_LC_MESSAGES=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  am_cv_val_LC_MESSAGES=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$am_cv_val_LC_MESSAGES" 1>&6
+    if test $am_cv_val_LC_MESSAGES = yes; then
+      cat >> confdefs.h <<\EOF
+#define HAVE_LC_MESSAGES 1
+EOF
+
+    fi
+  fi
+   echo $ac_n "checking whether NLS is requested""... $ac_c" 1>&6
+echo "configure:2935: checking whether NLS is requested" >&5
+        # Check whether --enable-nls or --disable-nls was given.
+if test "${enable_nls+set}" = set; then
+  enableval="$enable_nls"
+  USE_NLS=$enableval
+else
+  USE_NLS=yes
+fi
+
+    echo "$ac_t""$USE_NLS" 1>&6
+    
+
+    USE_INCLUDED_LIBINTL=no
+
+        if test "$USE_NLS" = "yes"; then
+      cat >> confdefs.h <<\EOF
+#define ENABLE_NLS 1
+EOF
+
+      echo $ac_n "checking whether included gettext is requested""... $ac_c" 1>&6
+echo "configure:2955: checking whether included gettext is requested" >&5
+      # Check whether --with-included-gettext or --without-included-gettext was given.
+if test "${with_included_gettext+set}" = set; then
+  withval="$with_included_gettext"
+  nls_cv_force_use_gnu_gettext=$withval
+else
+  nls_cv_force_use_gnu_gettext=no
+fi
+
+      echo "$ac_t""$nls_cv_force_use_gnu_gettext" 1>&6
+
+      nls_cv_use_gnu_gettext="$nls_cv_force_use_gnu_gettext"
+      if test "$nls_cv_force_use_gnu_gettext" != "yes"; then
+                                       nls_cv_header_intl=
+       nls_cv_header_libgt=
+       CATOBJEXT=NONE
+
+       ac_safe=`echo "libintl.h" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for libintl.h""... $ac_c" 1>&6
+echo "configure:2974: checking for libintl.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 2979 "configure"
+#include "confdefs.h"
+#include <libintl.h>
+EOF
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:2984: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out`
+if test -z "$ac_err"; then
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=yes"
+else
+  echo "$ac_err" >&5
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
+fi
+rm -f conftest*
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  echo $ac_n "checking for gettext in libc""... $ac_c" 1>&6
+echo "configure:3001: checking for gettext in libc" >&5
+if eval "test \"`echo '$''{'gt_cv_func_gettext_libc'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3006 "configure"
+#include "confdefs.h"
+#include <libintl.h>
+int main() {
+return (int) gettext ("")
+; return 0; }
+EOF
+if { (eval echo configure:3013: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+  rm -rf conftest*
+  gt_cv_func_gettext_libc=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  gt_cv_func_gettext_libc=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$gt_cv_func_gettext_libc" 1>&6
+
+          if test "$gt_cv_func_gettext_libc" != "yes"; then
+            echo $ac_n "checking for bindtextdomain in -lintl""... $ac_c" 1>&6
+echo "configure:3029: checking for bindtextdomain in -lintl" >&5
+ac_lib_var=`echo intl'_'bindtextdomain | sed 'y%./+-%__p_%'`
+if eval "test \"`echo '$''{'ac_cv_lib_$ac_lib_var'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  ac_save_LIBS="$LIBS"
+LIBS="-lintl  $LIBS"
+cat > conftest.$ac_ext <<EOF
+#line 3037 "configure"
+#include "confdefs.h"
+/* Override any gcc2 internal prototype to avoid an error.  */
+/* We use char because int might match the return type of a gcc2
+    builtin and then its argument prototype would still apply.  */
+char bindtextdomain();
+
+int main() {
+bindtextdomain()
+; return 0; }
+EOF
+if { (eval echo configure:3048: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=yes"
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_lib_$ac_lib_var=no"
+fi
+rm -f conftest*
+LIBS="$ac_save_LIBS"
+
+fi
+if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  echo $ac_n "checking for gettext in libintl""... $ac_c" 1>&6
+echo "configure:3064: checking for gettext in libintl" >&5
+if eval "test \"`echo '$''{'gt_cv_func_gettext_libintl'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3069 "configure"
+#include "confdefs.h"
+
+int main() {
+return (int) gettext ("")
+; return 0; }
+EOF
+if { (eval echo configure:3076: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+  rm -rf conftest*
+  gt_cv_func_gettext_libintl=yes
+else
+  echo "configure: failed program was:" >&5
+  cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  gt_cv_func_gettext_libintl=no
+fi
+rm -f conftest*
+fi
+
+echo "$ac_t""$gt_cv_func_gettext_libintl" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+
+          fi
+
+          if test "$gt_cv_func_gettext_libc" = "yes" \
+             || test "$gt_cv_func_gettext_libintl" = "yes"; then
+             cat >> confdefs.h <<\EOF
+#define HAVE_GETTEXT 1
+EOF
+
+             # Extract the first word of "msgfmt", so it can be a program name with args.
+set dummy msgfmt; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:3104: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  case "$MSGFMT" in
+  /*)
+  ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path.
+  ;;
+  *)
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then
+       ac_cv_path_MSGFMT="$ac_dir/$ac_word"
+       break
+      fi
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="no"
+  ;;
+esac
+fi
+MSGFMT="$ac_cv_path_MSGFMT"
+if test -n "$MSGFMT"; then
+  echo "$ac_t""$MSGFMT" 1>&6
+else
+  echo "$ac_t""no" 1>&6
+fi
+             if test "$MSGFMT" != "no"; then
+               for ac_func in dcgettext
+do
+echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
+echo "configure:3138: checking for $ac_func" >&5
+if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  cat > conftest.$ac_ext <<EOF
+#line 3143 "configure"
 #include "confdefs.h"
 #include "confdefs.h"
+/* System header to define __stub macros and hopefully few prototypes,
+    which can conflict with char $ac_func(); below.  */
+#include <assert.h>
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
     builtin and then its argument prototype would still apply.  */
 /* Override any gcc2 internal prototype to avoid an error.  */
 /* We use char because int might match the return type of a gcc2
     builtin and then its argument prototype would still apply.  */
-char yywrap();
+char $ac_func();
 
 int main() {
 
 int main() {
-yywrap()
+
+/* The GNU C library defines this for functions which it implements
+    to always fail with ENOSYS.  Some functions are actually named
+    something starting with __ and the normal name is an alias.  */
+#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
+choke me
+#else
+$ac_func();
+#endif
+
 ; return 0; }
 EOF
 ; return 0; }
 EOF
-if { (eval echo configure:1594: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3166: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=yes"
+  eval "ac_cv_func_$ac_func=yes"
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
 else
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  eval "ac_cv_lib_$ac_lib_var=no"
+  eval "ac_cv_func_$ac_func=no"
 fi
 rm -f conftest*
 fi
 rm -f conftest*
-LIBS="$ac_save_LIBS"
-
 fi
 fi
-if eval "test \"`echo '$ac_cv_lib_'$ac_lib_var`\" = yes"; then
+
+if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
   echo "$ac_t""yes" 1>&6
   echo "$ac_t""yes" 1>&6
-  LEXLIB="-l$ac_lib"
+    ac_tr_func=HAVE_`echo $ac_func | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
+  cat >> confdefs.h <<EOF
+#define $ac_tr_func 1
+EOF
 else
   echo "$ac_t""no" 1>&6
 fi
 else
   echo "$ac_t""no" 1>&6
 fi
+done
 
 
+               # Extract the first word of "gmsgfmt", so it can be a program name with args.
+set dummy gmsgfmt; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:3193: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  case "$GMSGFMT" in
+  /*)
+  ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
+  ;;
+  ?:/*)                         
+  ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a dos path.
+  ;;
+  *)
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_path_GMSGFMT="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
+  ;;
+esac
 fi
 fi
-
-echo $ac_n "checking how to run the C preprocessor""... $ac_c" 1>&6
-echo "configure:1617: checking how to run the C preprocessor" >&5
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
-  CPP=
+GMSGFMT="$ac_cv_path_GMSGFMT"
+if test -n "$GMSGFMT"; then
+  echo "$ac_t""$GMSGFMT" 1>&6
+else
+  echo "$ac_t""no" 1>&6
 fi
 fi
-if test -z "$CPP"; then
-if eval "test \"`echo '$''{'ac_cv_prog_CPP'+set}'`\" = set"; then
+
+               # Extract the first word of "xgettext", so it can be a program name with args.
+set dummy xgettext; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:3228: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-    # This must be in double quotes, not single quotes, because CPP may get
-  # substituted into the Makefile and "${CC-cc}" will confuse make.
-  CPP="${CC-cc} -E"
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp.
-  cat > conftest.$ac_ext <<EOF
-#line 1632 "configure"
-#include "confdefs.h"
-#include <assert.h>
-Syntax Error
-EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1638: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
-if test -z "$ac_err"; then
-  :
+  case "$XGETTEXT" in
+  /*)
+  ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
+  ;;
+  *)
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then
+       ac_cv_path_XGETTEXT="$ac_dir/$ac_word"
+       break
+      fi
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":"
+  ;;
+esac
+fi
+XGETTEXT="$ac_cv_path_XGETTEXT"
+if test -n "$XGETTEXT"; then
+  echo "$ac_t""$XGETTEXT" 1>&6
 else
 else
-  echo "$ac_err" >&5
-  echo "configure: failed program was:" >&5
-  cat conftest.$ac_ext >&5
-  rm -rf conftest*
-  CPP="${CC-cc} -E -traditional-cpp"
-  cat > conftest.$ac_ext <<EOF
-#line 1649 "configure"
+  echo "$ac_t""no" 1>&6
+fi
+
+               cat > conftest.$ac_ext <<EOF
+#line 3260 "configure"
 #include "confdefs.h"
 #include "confdefs.h"
-#include <assert.h>
-Syntax Error
+
+int main() {
+extern int _nl_msg_cat_cntr;
+                              return _nl_msg_cat_cntr
+; return 0; }
 EOF
 EOF
-ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1655: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
-ac_err=`grep -v '^ *+' conftest.out`
-if test -z "$ac_err"; then
-  :
+if { (eval echo configure:3268: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+  rm -rf conftest*
+  CATOBJEXT=.gmo
+                  DATADIRNAME=share
 else
 else
-  echo "$ac_err" >&5
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   rm -rf conftest*
-  CPP=/lib/cpp
+  CATOBJEXT=.mo
+                  DATADIRNAME=lib
 fi
 rm -f conftest*
 fi
 rm -f conftest*
+               INSTOBJEXT=.mo
+             fi
+           fi
+       
+else
+  echo "$ac_t""no" 1>&6
 fi
 fi
-rm -f conftest*
-  ac_cv_prog_CPP="$CPP"
+
+
+               
+        if test "$CATOBJEXT" = "NONE"; then
+                         nls_cv_use_gnu_gettext=yes
+        fi
+      fi
+
+      if test "$nls_cv_use_gnu_gettext" = "yes"; then
+                INTLOBJS="\$(GETTOBJS)"
+        # Extract the first word of "msgfmt", so it can be a program name with args.
+set dummy msgfmt; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:3300: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_MSGFMT'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  case "$MSGFMT" in
+  /*)
+  ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path.
+  ;;
+  *)
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      if test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"; then
+       ac_cv_path_MSGFMT="$ac_dir/$ac_word"
+       break
+      fi
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT="msgfmt"
+  ;;
+esac
 fi
 fi
-  CPP="$ac_cv_prog_CPP"
+MSGFMT="$ac_cv_path_MSGFMT"
+if test -n "$MSGFMT"; then
+  echo "$ac_t""$MSGFMT" 1>&6
 else
 else
-  ac_cv_prog_CPP="$CPP"
+  echo "$ac_t""no" 1>&6
 fi
 fi
-echo "$ac_t""$CPP" 1>&6
 
 
-echo $ac_n "checking lex output file root""... $ac_c" 1>&6
-echo "configure:1678: checking lex output file root" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_lex_root'+set}'`\" = set"; then
+        # Extract the first word of "gmsgfmt", so it can be a program name with args.
+set dummy gmsgfmt; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:3334: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_GMSGFMT'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  # The minimal lex program is just a single line: %%.  But some broken lexes
-# (Solaris, I think it was) want two %% lines, so accommodate them.
-echo '%%
-%%' | $LEX
-if test -f lex.yy.c; then
-  ac_cv_prog_lex_root=lex.yy
-elif test -f lexyy.c; then
-  ac_cv_prog_lex_root=lexyy
+  case "$GMSGFMT" in
+  /*)
+  ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path.
+  ;;
+  ?:/*)                         
+  ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a dos path.
+  ;;
+  *)
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      ac_cv_path_GMSGFMT="$ac_dir/$ac_word"
+      break
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT"
+  ;;
+esac
+fi
+GMSGFMT="$ac_cv_path_GMSGFMT"
+if test -n "$GMSGFMT"; then
+  echo "$ac_t""$GMSGFMT" 1>&6
 else
 else
-  { echo "configure: error: cannot find output from $LEX; giving up" 1>&2; exit 1; }
+  echo "$ac_t""no" 1>&6
+fi
+
+        # Extract the first word of "xgettext", so it can be a program name with args.
+set dummy xgettext; ac_word=$2
+echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
+echo "configure:3369: checking for $ac_word" >&5
+if eval "test \"`echo '$''{'ac_cv_path_XGETTEXT'+set}'`\" = set"; then
+  echo $ac_n "(cached) $ac_c" 1>&6
+else
+  case "$XGETTEXT" in
+  /*)
+  ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path.
+  ;;
+  *)
+  IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
+  for ac_dir in $PATH; do
+    test -z "$ac_dir" && ac_dir=.
+    if test -f $ac_dir/$ac_word; then
+      if test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"; then
+       ac_cv_path_XGETTEXT="$ac_dir/$ac_word"
+       break
+      fi
+    fi
+  done
+  IFS="$ac_save_ifs"
+  test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":"
+  ;;
+esac
 fi
 fi
+XGETTEXT="$ac_cv_path_XGETTEXT"
+if test -n "$XGETTEXT"; then
+  echo "$ac_t""$XGETTEXT" 1>&6
+else
+  echo "$ac_t""no" 1>&6
 fi
 
 fi
 
-echo "$ac_t""$ac_cv_prog_lex_root" 1>&6
-LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root
+        
+       USE_INCLUDED_LIBINTL=yes
+        CATOBJEXT=.gmo
+        INSTOBJEXT=.mo
+        DATADIRNAME=share
+       INTLDEPS='$(top_builddir)/../intl/libintl.a'
+       INTLLIBS=$INTLDEPS
+       LIBS=`echo $LIBS | sed -e 's/-lintl//'`
+        nls_cv_header_intl=libintl.h
+        nls_cv_header_libgt=libgettext.h
+      fi
 
 
-echo $ac_n "checking whether yytext is a pointer""... $ac_c" 1>&6
-echo "configure:1699: checking whether yytext is a pointer" >&5
-if eval "test \"`echo '$''{'ac_cv_prog_lex_yytext_pointer'+set}'`\" = set"; then
+            if test "$XGETTEXT" != ":"; then
+                       if $XGETTEXT --omit-header /dev/null 2> /dev/null; then
+         : ;
+       else
+         echo "$ac_t""found xgettext programs is not GNU xgettext; ignore it" 1>&6
+         XGETTEXT=":"
+       fi
+      fi
+
+      # We need to process the po/ directory.
+      POSUB=po
+    else
+      DATADIRNAME=share
+      nls_cv_header_intl=libintl.h
+      nls_cv_header_libgt=libgettext.h
+    fi
+
+    # If this is used in GNU gettext we have to set USE_NLS to `yes'
+    # because some of the sources are only built for this goal.
+    if test "$PACKAGE" = gettext; then
+      USE_NLS=yes
+      USE_INCLUDED_LIBINTL=yes
+    fi
+
+                for lang in $ALL_LINGUAS; do
+      GMOFILES="$GMOFILES $lang.gmo"
+      POFILES="$POFILES $lang.po"
+    done
+
+        
+    
+    
+    
+    
+    
+    
+    
+    
+    
+    
+  
+
+   if test "x$CATOBJEXT" != "x"; then
+     if test "x$ALL_LINGUAS" = "x"; then
+       LINGUAS=
+     else
+       echo $ac_n "checking for catalogs to be installed""... $ac_c" 1>&6
+echo "configure:3459: checking for catalogs to be installed" >&5
+       NEW_LINGUAS=
+       for lang in ${LINGUAS=$ALL_LINGUAS}; do
+         case "$ALL_LINGUAS" in
+          *$lang*) NEW_LINGUAS="$NEW_LINGUAS $lang" ;;
+         esac
+       done
+       LINGUAS=$NEW_LINGUAS
+       echo "$ac_t""$LINGUAS" 1>&6
+     fi
+
+          if test -n "$LINGUAS"; then
+       for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done
+     fi
+   fi
+
+            if test $ac_cv_header_locale_h = yes; then
+     INCLUDE_LOCALE_H="#include <locale.h>"
+   else
+     INCLUDE_LOCALE_H="\
+/* The system does not provide the header <locale.h>.  Take care yourself.  */"
+   fi
+   
+
+            if test -f $srcdir/po2tbl.sed.in; then
+      if test "$CATOBJEXT" = ".cat"; then
+        ac_safe=`echo "linux/version.h" | sed 'y%./+-%__p_%'`
+echo $ac_n "checking for linux/version.h""... $ac_c" 1>&6
+echo "configure:3487: checking for linux/version.h" >&5
+if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  # POSIX says lex can declare yytext either as a pointer or an array; the
-# default is implementation-dependent. Figure out which it is, since
-# not all implementations provide the %pointer and %array declarations.
-ac_cv_prog_lex_yytext_pointer=no
-echo 'extern char *yytext;' >>$LEX_OUTPUT_ROOT.c
-ac_save_LIBS="$LIBS"
-LIBS="$LIBS $LEXLIB"
-cat > conftest.$ac_ext <<EOF
-#line 1711 "configure"
+  cat > conftest.$ac_ext <<EOF
+#line 3492 "configure"
 #include "confdefs.h"
 #include "confdefs.h"
-`cat $LEX_OUTPUT_ROOT.c`
-int main() {
-
-; return 0; }
+#include <linux/version.h>
 EOF
 EOF
-if { (eval echo configure:1718: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
+{ (eval echo configure:3497: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+ac_err=`grep -v '^ *+' conftest.out`
+if test -z "$ac_err"; then
   rm -rf conftest*
   rm -rf conftest*
-  ac_cv_prog_lex_yytext_pointer=yes
+  eval "ac_cv_header_$ac_safe=yes"
 else
 else
+  echo "$ac_err" >&5
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
   echo "configure: failed program was:" >&5
   cat conftest.$ac_ext >&5
+  rm -rf conftest*
+  eval "ac_cv_header_$ac_safe=no"
 fi
 rm -f conftest*
 fi
 rm -f conftest*
-LIBS="$ac_save_LIBS"
-rm -f "${LEX_OUTPUT_ROOT}.c"
-
+fi
+if eval "test \"`echo '$ac_cv_header_'$ac_safe`\" = yes"; then
+  echo "$ac_t""yes" 1>&6
+  msgformat=linux
+else
+  echo "$ac_t""no" 1>&6
+msgformat=xopen
 fi
 
 fi
 
-echo "$ac_t""$ac_cv_prog_lex_yytext_pointer" 1>&6
-if test $ac_cv_prog_lex_yytext_pointer = yes; then
-  cat >> confdefs.h <<\EOF
-#define YYTEXT_POINTER 1
-EOF
 
 
-fi
+                        sed -e '/^#/d' $srcdir/$msgformat-msg.sed > po2msg.sed
+      fi
+            sed -e '/^#.*[^\\]$/d' -e '/^#$/d' \
+        $srcdir/po2tbl.sed.in > po2tbl.sed
+   fi
 
 
+            if test "$PACKAGE" = "gettext"; then
+     GT_NO="#NO#"
+     GT_YES=
+   else
+     GT_NO=
+     GT_YES="#YES#"
+   fi
+   
+   
+
+   MKINSTALLDIRS="\$(srcdir)/../../mkinstalldirs"
+   
+
+      l=
+   
+
+            if test -d $srcdir/po; then
+      test -d po || mkdir po
+      if test "x$srcdir" != "x."; then
+        if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then
+           posrcprefix="$srcdir/"
+        else
+           posrcprefix="../$srcdir/"
+        fi
+      else
+        posrcprefix="../"
+      fi
+      rm -f po/POTFILES
+      sed -e "/^#/d" -e "/^\$/d" -e "s,.*,     $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \
+        < $srcdir/po/POTFILES.in > po/POTFILES
+   fi
+  
 
 echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
 
 echo $ac_n "checking whether to enable maintainer-specific portions of Makefiles""... $ac_c" 1>&6
-echo "configure:1741: checking whether to enable maintainer-specific portions of Makefiles" >&5
+echo "configure:3560: checking whether to enable maintainer-specific portions of Makefiles" >&5
     # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
 if test "${enable_maintainer_mode+set}" = set; then
   enableval="$enable_maintainer_mode"
     # Check whether --enable-maintainer-mode or --disable-maintainer-mode was given.
 if test "${enable_maintainer_mode+set}" = set; then
   enableval="$enable_maintainer_mode"
@@ -1755,19 +3574,19 @@ fi
   
 
 echo $ac_n "checking for Cygwin32 environment""... $ac_c" 1>&6
   
 
 echo $ac_n "checking for Cygwin32 environment""... $ac_c" 1>&6
-echo "configure:1759: checking for Cygwin32 environment" >&5
+echo "configure:3578: checking for Cygwin32 environment" >&5
 if eval "test \"`echo '$''{'am_cv_cygwin32'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'am_cv_cygwin32'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1764 "configure"
+#line 3583 "configure"
 #include "confdefs.h"
 
 int main() {
 return __CYGWIN32__;
 ; return 0; }
 EOF
 #include "confdefs.h"
 
 int main() {
 return __CYGWIN32__;
 ; return 0; }
 EOF
-if { (eval echo configure:1771: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3590: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   am_cv_cygwin32=yes
 else
   rm -rf conftest*
   am_cv_cygwin32=yes
 else
@@ -1784,19 +3603,19 @@ echo "$ac_t""$am_cv_cygwin32" 1>&6
 CYGWIN32=
 test "$am_cv_cygwin32" = yes && CYGWIN32=yes
 echo $ac_n "checking for Mingw32 environment""... $ac_c" 1>&6
 CYGWIN32=
 test "$am_cv_cygwin32" = yes && CYGWIN32=yes
 echo $ac_n "checking for Mingw32 environment""... $ac_c" 1>&6
-echo "configure:1788: checking for Mingw32 environment" >&5
+echo "configure:3607: checking for Mingw32 environment" >&5
 if eval "test \"`echo '$''{'am_cv_mingw32'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'am_cv_mingw32'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1793 "configure"
+#line 3612 "configure"
 #include "confdefs.h"
 
 int main() {
 return __MINGW32__;
 ; return 0; }
 EOF
 #include "confdefs.h"
 
 int main() {
 return __MINGW32__;
 ; return 0; }
 EOF
-if { (eval echo configure:1800: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3619: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   am_cv_mingw32=yes
 else
   rm -rf conftest*
   am_cv_mingw32=yes
 else
@@ -1815,12 +3634,11 @@ test "$am_cv_mingw32" = yes && MINGW32=yes
 
 
 echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
 
 
 echo $ac_n "checking for executable suffix""... $ac_c" 1>&6
-echo "configure:1819: checking for executable suffix" >&5
+echo "configure:3638: checking for executable suffix" >&5
 if eval "test \"`echo '$''{'am_cv_exeext'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'am_cv_exeext'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
-  
-if test "$CYGWIN32" = yes -o "$MINGW32" = yes; then
+  if test "$CYGWIN32" = yes || test "$MINGW32" = yes; then
 am_cv_exeext=.exe
 else
 cat > am_c_test.c << 'EOF'
 am_cv_exeext=.exe
 else
 cat > am_c_test.c << 'EOF'
@@ -1829,7 +3647,14 @@ int main() {
 }
 EOF
 ${CC-cc} -o am_c_test $CFLAGS $CPPFLAGS $LDFLAGS am_c_test.c $LIBS 1>&5
 }
 EOF
 ${CC-cc} -o am_c_test $CFLAGS $CPPFLAGS $LDFLAGS am_c_test.c $LIBS 1>&5
-am_cv_exeext=`echo am_c_test.* | grep -v am_c_test.c | sed -e s/am_c_test//`
+am_cv_exeext=
+for file in am_c_test.*; do
+   case $file in
+    *.c) ;;
+    *.o) ;;
+    *) am_cv_exeext=`echo $file | sed -e s/am_c_test//` ;;
+   esac
+done
 rm -f am_c_test*
 fi
 
 rm -f am_c_test*
 fi
 
@@ -1852,7 +3677,7 @@ AR=${AR-ar}
 # Extract the first word of "ranlib", so it can be a program name with args.
 set dummy ranlib; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
 # Extract the first word of "ranlib", so it can be a program name with args.
 set dummy ranlib; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:1856: checking for $ac_word" >&5
+echo "configure:3681: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_prog_RANLIB'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1896,7 +3721,7 @@ if test "x$cross_compiling" = "xno"; then
   EXEEXT_FOR_BUILD='$(EXEEXT)'
 else
   echo $ac_n "checking for build system executable suffix""... $ac_c" 1>&6
   EXEEXT_FOR_BUILD='$(EXEEXT)'
 else
   echo $ac_n "checking for build system executable suffix""... $ac_c" 1>&6
-echo "configure:1900: checking for build system executable suffix" >&5
+echo "configure:3725: checking for build system executable suffix" >&5
 if eval "test \"`echo '$''{'bfd_cv_build_exeext'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'bfd_cv_build_exeext'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -1921,17 +3746,17 @@ for ac_hdr in string.h strings.h stdlib.h unistd.h fcntl.h sys/file.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:1925: checking for $ac_hdr" >&5
+echo "configure:3750: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1930 "configure"
+#line 3755 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:1935: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:3760: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
 ac_err=`grep -v '^ *+' conftest.out`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -1958,12 +3783,12 @@ fi
 done
 
 echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6
 done
 
 echo $ac_n "checking for sys/wait.h that is POSIX.1 compatible""... $ac_c" 1>&6
-echo "configure:1962: checking for sys/wait.h that is POSIX.1 compatible" >&5
+echo "configure:3787: checking for sys/wait.h that is POSIX.1 compatible" >&5
 if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_header_sys_wait_h'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 1967 "configure"
+#line 3792 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/wait.h>
 #include "confdefs.h"
 #include <sys/types.h>
 #include <sys/wait.h>
@@ -1979,7 +3804,7 @@ wait (&s);
 s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
 ; return 0; }
 EOF
 s = WIFEXITED (s) ? WEXITSTATUS (s) : 1;
 ; return 0; }
 EOF
-if { (eval echo configure:1983: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:3808: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   ac_cv_header_sys_wait_h=yes
 else
   rm -rf conftest*
   ac_cv_header_sys_wait_h=yes
 else
@@ -2002,19 +3827,19 @@ fi
 # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
 # for constant arguments.  Useless!
 echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
 # The Ultrix 4.2 mips builtin alloca declared by alloca.h only works
 # for constant arguments.  Useless!
 echo $ac_n "checking for working alloca.h""... $ac_c" 1>&6
-echo "configure:2006: checking for working alloca.h" >&5
+echo "configure:3831: checking for working alloca.h" >&5
 if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_header_alloca_h'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2011 "configure"
+#line 3836 "configure"
 #include "confdefs.h"
 #include <alloca.h>
 int main() {
 char *p = alloca(2 * sizeof(int));
 ; return 0; }
 EOF
 #include "confdefs.h"
 #include <alloca.h>
 int main() {
 char *p = alloca(2 * sizeof(int));
 ; return 0; }
 EOF
-if { (eval echo configure:2018: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3843: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   ac_cv_header_alloca_h=yes
 else
   rm -rf conftest*
   ac_cv_header_alloca_h=yes
 else
@@ -2035,12 +3860,12 @@ EOF
 fi
 
 echo $ac_n "checking for alloca""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking for alloca""... $ac_c" 1>&6
-echo "configure:2039: checking for alloca" >&5
+echo "configure:3864: checking for alloca" >&5
 if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_func_alloca_works'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2044 "configure"
+#line 3869 "configure"
 #include "confdefs.h"
 
 #ifdef __GNUC__
 #include "confdefs.h"
 
 #ifdef __GNUC__
@@ -2063,7 +3888,7 @@ int main() {
 char *p = (char *) alloca(1);
 ; return 0; }
 EOF
 char *p = (char *) alloca(1);
 ; return 0; }
 EOF
-if { (eval echo configure:2067: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3892: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   ac_cv_func_alloca_works=yes
 else
   rm -rf conftest*
   ac_cv_func_alloca_works=yes
 else
@@ -2095,12 +3920,12 @@ EOF
 
 
 echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
 
 
 echo $ac_n "checking whether alloca needs Cray hooks""... $ac_c" 1>&6
-echo "configure:2099: checking whether alloca needs Cray hooks" >&5
+echo "configure:3924: checking whether alloca needs Cray hooks" >&5
 if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_os_cray'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2104 "configure"
+#line 3929 "configure"
 #include "confdefs.h"
 #if defined(CRAY) && ! defined(CRAY2)
 webecray
 #include "confdefs.h"
 #if defined(CRAY) && ! defined(CRAY2)
 webecray
@@ -2125,12 +3950,12 @@ echo "$ac_t""$ac_cv_os_cray" 1>&6
 if test $ac_cv_os_cray = yes; then
 for ac_func in _getb67 GETB67 getb67; do
   echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
 if test $ac_cv_os_cray = yes; then
 for ac_func in _getb67 GETB67 getb67; do
   echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2129: checking for $ac_func" >&5
+echo "configure:3954: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2134 "configure"
+#line 3959 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -2153,7 +3978,7 @@ $ac_func();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:2157: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:3982: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -2180,7 +4005,7 @@ done
 fi
 
 echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking stack direction for C alloca""... $ac_c" 1>&6
-echo "configure:2184: checking stack direction for C alloca" >&5
+echo "configure:4009: checking stack direction for C alloca" >&5
 if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
 if eval "test \"`echo '$''{'ac_cv_c_stack_direction'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2188,7 +4013,7 @@ else
   ac_cv_c_stack_direction=0
 else
   cat > conftest.$ac_ext <<EOF
   ac_cv_c_stack_direction=0
 else
   cat > conftest.$ac_ext <<EOF
-#line 2192 "configure"
+#line 4017 "configure"
 #include "confdefs.h"
 find_stack_direction ()
 {
 #include "confdefs.h"
 find_stack_direction ()
 {
@@ -2207,7 +4032,7 @@ main ()
   exit (find_stack_direction() < 0);
 }
 EOF
   exit (find_stack_direction() < 0);
 }
 EOF
-if { (eval echo configure:2211: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
+if { (eval echo configure:4036: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest && (./conftest; exit) 2>/dev/null
 then
   ac_cv_c_stack_direction=1
 else
 then
   ac_cv_c_stack_direction=1
 else
@@ -2231,12 +4056,12 @@ fi
 for ac_func in sbrk utimes
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
 for ac_func in sbrk utimes
 do
 echo $ac_n "checking for $ac_func""... $ac_c" 1>&6
-echo "configure:2235: checking for $ac_func" >&5
+echo "configure:4060: checking for $ac_func" >&5
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'ac_cv_func_$ac_func'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2240 "configure"
+#line 4065 "configure"
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
 #include "confdefs.h"
 /* System header to define __stub macros and hopefully few prototypes,
     which can conflict with char $ac_func(); below.  */
@@ -2259,7 +4084,7 @@ $ac_func();
 
 ; return 0; }
 EOF
 
 ; return 0; }
 EOF
-if { (eval echo configure:2263: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
+if { (eval echo configure:4088: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest; then
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
   rm -rf conftest*
   eval "ac_cv_func_$ac_func=yes"
 else
@@ -2285,19 +4110,19 @@ done
 
 
 echo $ac_n "checking for time_t in time.h""... $ac_c" 1>&6
 
 
 echo $ac_n "checking for time_t in time.h""... $ac_c" 1>&6
-echo "configure:2289: checking for time_t in time.h" >&5
+echo "configure:4114: checking for time_t in time.h" >&5
 if eval "test \"`echo '$''{'bu_cv_decl_time_t_time_h'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'bu_cv_decl_time_t_time_h'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2294 "configure"
+#line 4119 "configure"
 #include "confdefs.h"
 #include <time.h>
 int main() {
 time_t i;
 ; return 0; }
 EOF
 #include "confdefs.h"
 #include <time.h>
 int main() {
 time_t i;
 ; return 0; }
 EOF
-if { (eval echo configure:2301: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4126: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   bu_cv_decl_time_t_time_h=yes
 else
   rm -rf conftest*
   bu_cv_decl_time_t_time_h=yes
 else
@@ -2318,19 +4143,19 @@ EOF
 fi
 
 echo $ac_n "checking for time_t in sys/types.h""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking for time_t in sys/types.h""... $ac_c" 1>&6
-echo "configure:2322: checking for time_t in sys/types.h" >&5
+echo "configure:4147: checking for time_t in sys/types.h" >&5
 if eval "test \"`echo '$''{'bu_cv_decl_time_t_types_h'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'bu_cv_decl_time_t_types_h'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2327 "configure"
+#line 4152 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 int main() {
 time_t i;
 ; return 0; }
 EOF
 #include "confdefs.h"
 #include <sys/types.h>
 int main() {
 time_t i;
 ; return 0; }
 EOF
-if { (eval echo configure:2334: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4159: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   bu_cv_decl_time_t_types_h=yes
 else
   rm -rf conftest*
   bu_cv_decl_time_t_types_h=yes
 else
@@ -2353,12 +4178,12 @@ fi
 # Under Next 3.2 <utime.h> apparently does not define struct utimbuf
 # by default.
 echo $ac_n "checking for utime.h""... $ac_c" 1>&6
 # Under Next 3.2 <utime.h> apparently does not define struct utimbuf
 # by default.
 echo $ac_n "checking for utime.h""... $ac_c" 1>&6
-echo "configure:2357: checking for utime.h" >&5
+echo "configure:4182: checking for utime.h" >&5
 if eval "test \"`echo '$''{'bu_cv_header_utime_h'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'bu_cv_header_utime_h'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2362 "configure"
+#line 4187 "configure"
 #include "confdefs.h"
 #include <sys/types.h>
 #ifdef HAVE_TIME_H
 #include "confdefs.h"
 #include <sys/types.h>
 #ifdef HAVE_TIME_H
@@ -2369,7 +4194,7 @@ int main() {
 struct utimbuf s;
 ; return 0; }
 EOF
 struct utimbuf s;
 ; return 0; }
 EOF
-if { (eval echo configure:2373: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4198: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   bu_cv_header_utime_h=yes
 else
   rm -rf conftest*
   bu_cv_header_utime_h=yes
 else
@@ -2390,12 +4215,12 @@ EOF
 fi
 
 echo $ac_n "checking whether fprintf must be declared""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking whether fprintf must be declared""... $ac_c" 1>&6
-echo "configure:2394: checking whether fprintf must be declared" >&5
+echo "configure:4219: checking whether fprintf must be declared" >&5
 if eval "test \"`echo '$''{'bfd_cv_decl_needed_fprintf'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'bfd_cv_decl_needed_fprintf'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2399 "configure"
+#line 4224 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -2416,7 +4241,7 @@ int main() {
 char *(*pfn) = (char *(*)) fprintf
 ; return 0; }
 EOF
 char *(*pfn) = (char *(*)) fprintf
 ; return 0; }
 EOF
-if { (eval echo configure:2420: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4245: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   bfd_cv_decl_needed_fprintf=no
 else
   rm -rf conftest*
   bfd_cv_decl_needed_fprintf=no
 else
@@ -2438,12 +4263,12 @@ EOF
 fi
 
 echo $ac_n "checking whether strstr must be declared""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking whether strstr must be declared""... $ac_c" 1>&6
-echo "configure:2442: checking whether strstr must be declared" >&5
+echo "configure:4267: checking whether strstr must be declared" >&5
 if eval "test \"`echo '$''{'bfd_cv_decl_needed_strstr'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'bfd_cv_decl_needed_strstr'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2447 "configure"
+#line 4272 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -2464,7 +4289,7 @@ int main() {
 char *(*pfn) = (char *(*)) strstr
 ; return 0; }
 EOF
 char *(*pfn) = (char *(*)) strstr
 ; return 0; }
 EOF
-if { (eval echo configure:2468: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4293: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   bfd_cv_decl_needed_strstr=no
 else
   rm -rf conftest*
   bfd_cv_decl_needed_strstr=no
 else
@@ -2486,12 +4311,12 @@ EOF
 fi
 
 echo $ac_n "checking whether sbrk must be declared""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking whether sbrk must be declared""... $ac_c" 1>&6
-echo "configure:2490: checking whether sbrk must be declared" >&5
+echo "configure:4315: checking whether sbrk must be declared" >&5
 if eval "test \"`echo '$''{'bfd_cv_decl_needed_sbrk'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'bfd_cv_decl_needed_sbrk'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2495 "configure"
+#line 4320 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -2512,7 +4337,7 @@ int main() {
 char *(*pfn) = (char *(*)) sbrk
 ; return 0; }
 EOF
 char *(*pfn) = (char *(*)) sbrk
 ; return 0; }
 EOF
-if { (eval echo configure:2516: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4341: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   bfd_cv_decl_needed_sbrk=no
 else
   rm -rf conftest*
   bfd_cv_decl_needed_sbrk=no
 else
@@ -2534,12 +4359,12 @@ EOF
 fi
 
 echo $ac_n "checking whether getenv must be declared""... $ac_c" 1>&6
 fi
 
 echo $ac_n "checking whether getenv must be declared""... $ac_c" 1>&6
-echo "configure:2538: checking whether getenv must be declared" >&5
+echo "configure:4363: checking whether getenv must be declared" >&5
 if eval "test \"`echo '$''{'bfd_cv_decl_needed_getenv'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
 if eval "test \"`echo '$''{'bfd_cv_decl_needed_getenv'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2543 "configure"
+#line 4368 "configure"
 #include "confdefs.h"
 
 #include <stdio.h>
 #include "confdefs.h"
 
 #include <stdio.h>
@@ -2560,7 +4385,7 @@ int main() {
 char *(*pfn) = (char *(*)) getenv
 ; return 0; }
 EOF
 char *(*pfn) = (char *(*)) getenv
 ; return 0; }
 EOF
-if { (eval echo configure:2564: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
+if { (eval echo configure:4389: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then
   rm -rf conftest*
   bfd_cv_decl_needed_getenv=no
 else
   rm -rf conftest*
   bfd_cv_decl_needed_getenv=no
 else
@@ -2786,7 +4611,7 @@ done
 ac_given_srcdir=$srcdir
 ac_given_INSTALL="$INSTALL"
 
 ac_given_srcdir=$srcdir
 ac_given_INSTALL="$INSTALL"
 
-trap 'rm -fr `echo "Makefile config.h:config.in" | sed "s/:[^ ]*//g"` conftest*; exit 1' 1 2 15
+trap 'rm -fr `echo "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
 
@@ -2849,18 +4674,40 @@ s%@LD@%$LD%g
 s%@NM@%$NM%g
 s%@LN_S@%$LN_S%g
 s%@LIBTOOL@%$LIBTOOL%g
 s%@NM@%$NM%g
 s%@LN_S@%$LN_S%g
 s%@LIBTOOL@%$LIBTOOL%g
+s%@DLLTOOL@%$DLLTOOL%g
+s%@AS@%$AS%g
 s%@YACC@%$YACC%g
 s%@LEX@%$LEX%g
 s%@LEXLIB@%$LEXLIB%g
 s%@CPP@%$CPP%g
 s%@LEX_OUTPUT_ROOT@%$LEX_OUTPUT_ROOT%g
 s%@YACC@%$YACC%g
 s%@LEX@%$LEX%g
 s%@LEXLIB@%$LEXLIB%g
 s%@CPP@%$CPP%g
 s%@LEX_OUTPUT_ROOT@%$LEX_OUTPUT_ROOT%g
+s%@ALLOCA@%$ALLOCA%g
+s%@USE_NLS@%$USE_NLS%g
+s%@MSGFMT@%$MSGFMT%g
+s%@GMSGFMT@%$GMSGFMT%g
+s%@XGETTEXT@%$XGETTEXT%g
+s%@USE_INCLUDED_LIBINTL@%$USE_INCLUDED_LIBINTL%g
+s%@CATALOGS@%$CATALOGS%g
+s%@CATOBJEXT@%$CATOBJEXT%g
+s%@DATADIRNAME@%$DATADIRNAME%g
+s%@GMOFILES@%$GMOFILES%g
+s%@INSTOBJEXT@%$INSTOBJEXT%g
+s%@INTLDEPS@%$INTLDEPS%g
+s%@INTLLIBS@%$INTLLIBS%g
+s%@INTLOBJS@%$INTLOBJS%g
+s%@POFILES@%$POFILES%g
+s%@POSUB@%$POSUB%g
+s%@INCLUDE_LOCALE_H@%$INCLUDE_LOCALE_H%g
+s%@GT_NO@%$GT_NO%g
+s%@GT_YES@%$GT_YES%g
+s%@MKINSTALLDIRS@%$MKINSTALLDIRS%g
+s%@l@%$l%g
 s%@MAINT@%$MAINT%g
 s%@EXEEXT@%$EXEEXT%g
 s%@HDEFINES@%$HDEFINES%g
 s%@AR@%$AR%g
 s%@CC_FOR_BUILD@%$CC_FOR_BUILD%g
 s%@EXEEXT_FOR_BUILD@%$EXEEXT_FOR_BUILD%g
 s%@MAINT@%$MAINT%g
 s%@EXEEXT@%$EXEEXT%g
 s%@HDEFINES@%$HDEFINES%g
 s%@AR@%$AR%g
 s%@CC_FOR_BUILD@%$CC_FOR_BUILD%g
 s%@EXEEXT_FOR_BUILD@%$EXEEXT_FOR_BUILD%g
-s%@ALLOCA@%$ALLOCA%g
 s%@NLMCONV_DEFS@%$NLMCONV_DEFS%g
 s%@BUILD_NLMCONV@%$BUILD_NLMCONV%g
 s%@BUILD_SRCONV@%$BUILD_SRCONV%g
 s%@NLMCONV_DEFS@%$NLMCONV_DEFS%g
 s%@BUILD_NLMCONV@%$BUILD_NLMCONV%g
 s%@BUILD_SRCONV@%$BUILD_SRCONV%g
@@ -2909,7 +4756,7 @@ EOF
 
 cat >> $CONFIG_STATUS <<EOF
 
 
 cat >> $CONFIG_STATUS <<EOF
 
-CONFIG_FILES=\${CONFIG_FILES-"Makefile"}
+CONFIG_FILES=\${CONFIG_FILES-"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
@@ -3082,7 +4929,7 @@ cat >> $CONFIG_STATUS <<EOF
 EOF
 cat >> $CONFIG_STATUS <<\EOF
 test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h
 EOF
 cat >> $CONFIG_STATUS <<\EOF
 test -z "$CONFIG_HEADERS" || echo timestamp > stamp-h
-
+sed -e '/POTFILES =/r po/POTFILES' po/Makefile.in > po/Makefile
 exit 0
 EOF
 chmod +x $CONFIG_STATUS
 exit 0
 EOF
 chmod +x $CONFIG_STATUS
index f41e42d23fdd3ba8eef79da6545a1a0542d7bda6..f763fd73a8d11c648552eb98ebbbebea90ce84ad 100644 (file)
@@ -5,7 +5,7 @@ AC_INIT(ar.c)
 
 AC_CANONICAL_SYSTEM
 
 
 AC_CANONICAL_SYSTEM
 
-AM_INIT_AUTOMAKE(binutils, 2.8.2)
+AM_INIT_AUTOMAKE(binutils, 2.9.1)
 
 AM_PROG_LIBTOOL
 
 
 AM_PROG_LIBTOOL
 
@@ -37,8 +37,10 @@ fi
 AC_PROG_CC
 
 AC_PROG_YACC
 AC_PROG_CC
 
 AC_PROG_YACC
-AC_PROG_LEX
-AC_DECL_YYTEXT
+AM_PROG_LEX
+
+ALL_LINGUAS=
+CY_GNU_GETTEXT
 
 AM_MAINTAINER_MODE
 AM_CYGWIN32
 
 AM_MAINTAINER_MODE
 AM_CYGWIN32
@@ -62,13 +64,6 @@ AC_CHECK_HEADERS(string.h strings.h stdlib.h unistd.h fcntl.h sys/file.h)
 AC_HEADER_SYS_WAIT
 AC_FUNC_ALLOCA
 AC_CHECK_FUNCS(sbrk utimes)
 AC_HEADER_SYS_WAIT
 AC_FUNC_ALLOCA
 AC_CHECK_FUNCS(sbrk utimes)
-dnl Temporary workaround for bug in autoconf 2.12.  When the bug is
-dnl fixed, we can just call AC_FUNC_VFORK in all cases.
-if test "x$cross_compiling" = "xno"; then
-  AC_FUNC_VFORK
-else
-  AC_CHECK_FUNC(vfork, , AC_DEFINE(vfork, fork))
-fi
 
 AC_MSG_CHECKING(for time_t in time.h)
 AC_CACHE_VAL(bu_cv_decl_time_t_time_h,
 
 AC_MSG_CHECKING(for time_t in time.h)
 AC_CACHE_VAL(bu_cv_decl_time_t_time_h,
@@ -173,7 +168,7 @@ changequote([,])dnl
          BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
         ;;
 changequote(,)dnl
          BUILD_WINDRES='$(WINDRES_PROG)$(EXEEXT)'
         ;;
 changequote(,)dnl
-       i[3-6]86-*pe* | i[3-6]86-*-cygwin32)
+       i[3-6]86-*pe* | i[3-6]86-*-cygwin32* | i[3-6]86-*-mingw32*)
 changequote([,])dnl
          BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
          DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_I386"
 changequote([,])dnl
          BUILD_DLLTOOL='$(DLLTOOL_PROG)$(EXEEXT)'
          DLLTOOL_DEFS="$DLLTOOL_DEFS -DDLLTOOL_I386"
@@ -195,6 +190,8 @@ AC_SUBST(BUILD_DLLTOOL)
 AC_SUBST(DLLTOOL_DEFS)
 AC_SUBST(BUILD_WINDRES)
 
 AC_SUBST(DLLTOOL_DEFS)
 AC_SUBST(BUILD_WINDRES)
 
+AC_DEFINE_UNQUOTED(TARGET, "${target}")
+
 targ=$target
 . $srcdir/../bfd/config.bfd
 if test "x$targ_underscore" = "xyes"; then
 targ=$target
 . $srcdir/../bfd/config.bfd
 if test "x$targ_underscore" = "xyes"; then
@@ -204,4 +201,5 @@ else
 fi
 AC_SUBST(UNDERSCORE)
 
 fi
 AC_SUBST(UNDERSCORE)
 
-AC_OUTPUT(Makefile)
+AC_OUTPUT(Makefile po/Makefile.in:po/Make-in,
+[sed -e '/POTFILES =/r po/POTFILES' po/Makefile.in > po/Makefile])
index 0a484e44388a386b9894877b057cf1def3a14e1f..78ff1abbb01d208819a3217a0d94505b1bf80023 100644 (file)
@@ -15,7 +15,8 @@
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+   02111-1307, USA.  */
 
 
 /*
 
 
 /*
 
 #ifdef HAVE_SYS_WAIT_H
 #include <sys/wait.h>
 
 #ifdef HAVE_SYS_WAIT_H
 #include <sys/wait.h>
-#else
+#else /* ! HAVE_SYS_WAIT_H */
+#if ! defined (_WIN32) || defined (__CYGWIN32__)
 #ifndef WIFEXITED
 #define WIFEXITED(w)   (((w)&0377) == 0)
 #endif
 #ifndef WIFEXITED
 #define WIFEXITED(w)   (((w)&0377) == 0)
 #endif
 #ifndef WEXITSTATUS
 #define WEXITSTATUS(w) (((w) >> 8) & 0377)
 #endif
 #ifndef WEXITSTATUS
 #define WEXITSTATUS(w) (((w) >> 8) & 0377)
 #endif
+#else /* defined (_WIN32) && ! defined (__CYGWIN32__) */
+#ifndef WIFEXITED
+#define WIFEXITED(w)   (((w) & 0xff) == 0)
 #endif
 #endif
+#ifndef WIFSIGNALED
+#define WIFSIGNALED(w) (((w) & 0xff) != 0 && ((w) & 0xff) != 0x7f)
+#endif
+#ifndef WTERMSIG
+#define WTERMSIG(w)    ((w) & 0x7f)
+#endif
+#ifndef WEXITSTATUS
+#define WEXITSTATUS(w) (((w) & 0xff00) >> 8)
+#endif
+#endif /* defined (_WIN32) && ! defined (__CYGWIN32__) */
+#endif /* ! HAVE_SYS_WAIT_H */
 
 static char *as_name = "as";
 
 
 static char *as_name = "as";
 
@@ -483,7 +499,7 @@ process_def_file (name)
   FILE *f = fopen (name, FOPEN_RT);
   if (!f)
     {
   FILE *f = fopen (name, FOPEN_RT);
   if (!f)
     {
-      fprintf (stderr, "%s: Can't open def file %s\n", program_name, name);
+      fprintf (stderr, _("%s: Can't open def file %s\n"), program_name, name);
       exit (1);
     }
 
       exit (1);
     }
 
@@ -513,7 +529,7 @@ int
 yyerror (err)
      const char *err;
 {
 yyerror (err)
      const char *err;
 {
-  fprintf (stderr, "%s: Syntax error in def file %s:%d\n",
+  fprintf (stderr, _("%s: Syntax error in def file %s:%d\n"),
           program_name, def_file, linenumber);
   return 0;
 }
           program_name, def_file, linenumber);
   return 0;
 }
@@ -546,10 +562,10 @@ def_name (name, base)
      int base;
 {
   if (verbose)
      int base;
 {
   if (verbose)
-    fprintf (stderr, "%s NAME %s base %x\n", program_name, name, base);
+    fprintf (stderr, _("%s NAME %s base %x\n"), program_name, name, base);
   if (d_is_dll)
     {
   if (d_is_dll)
     {
-      fprintf (stderr, "Can't have LIBRARY and NAME\n");
+      fprintf (stderr, _("Can't have LIBRARY and NAME\n"));
     }
   d_name = name;
   d_is_exe = 1;
     }
   d_name = name;
   d_is_exe = 1;
@@ -561,10 +577,10 @@ def_library (name, base)
      int base;
 {
   if (verbose)
      int base;
 {
   if (verbose)
-    printf ("%s: LIBRARY %s base %x\n", program_name, name, base);
+    printf (_("%s: LIBRARY %s base %x\n"), program_name, name, base);
   if (d_is_exe)
     {
   if (d_is_exe)
     {
-      fprintf (stderr, "%s: Can't have LIBRARY and NAME\n", program_name);
+      fprintf (stderr, _("%s: Can't have LIBRARY and NAME\n"), program_name);
     }
   d_name = name;
   d_is_dll = 1;
     }
   d_name = name;
   d_is_dll = 1;
@@ -623,7 +639,7 @@ def_import (internal, module, entry)
      const char *entry;
 {
   if (verbose)
      const char *entry;
 {
   if (verbose)
-    fprintf (stderr, "%s: IMPORTS are ignored", program_name);
+    fprintf (stderr, _("%s: IMPORTS are ignored"), program_name);
 }
 
 void
 }
 
 void
@@ -725,19 +741,19 @@ run (what, args)
   pid = pwait (pid, &wait_status, 0);
   if (pid == -1)
     {
   pid = pwait (pid, &wait_status, 0);
   if (pid == -1)
     {
-      fprintf (stderr, "%s: wait: %s\n", program_name, strerror (errno));
+      fprintf (stderr, _("%s: wait: %s\n"), program_name, strerror (errno));
       exit (1);
     }
   else if (WIFSIGNALED (wait_status))
     {
       exit (1);
     }
   else if (WIFSIGNALED (wait_status))
     {
-      fprintf (stderr, "%s: subprocess got fatal signal %d\n",
+      fprintf (stderr, _("%s: subprocess got fatal signal %d\n"),
               program_name, WTERMSIG (wait_status));
       exit (1);
     }
   else if (WIFEXITED (wait_status))
     {
       if (WEXITSTATUS (wait_status) != 0)
               program_name, WTERMSIG (wait_status));
       exit (1);
     }
   else if (WIFEXITED (wait_status))
     {
       if (WEXITSTATUS (wait_status) != 0)
-       fprintf (stderr, "%s: %s exited with status %d\n",
+       fprintf (stderr, _("%s: %s exited with status %d\n"),
                 program_name, what, WEXITSTATUS (wait_status));
     }
   else
                 program_name, what, WEXITSTATUS (wait_status));
     }
   else
@@ -765,7 +781,7 @@ scan_open_obj_file (abfd)
       char *e;
       bfd_get_section_contents (abfd, s, buf, 0, size);
       if (verbose)
       char *e;
       bfd_get_section_contents (abfd, s, buf, 0, size);
       if (verbose)
-       fprintf (stderr, "%s: Sucking in info from %s\n",
+       fprintf (stderr, _("%s: Sucking in info from %s\n"),
                 program_name,
                 bfd_get_filename (abfd));
 
                 program_name,
                 bfd_get_filename (abfd));
 
@@ -800,7 +816,7 @@ scan_open_obj_file (abfd)
   basenames (abfd);
 
   if (verbose)
   basenames (abfd);
 
   if (verbose)
-    fprintf (stderr, "%s: Done readin\n",
+    fprintf (stderr, _("%s: Done readin\n"),
             program_name);
 }
 
             program_name);
 }
 
@@ -812,7 +828,7 @@ scan_obj_file (filename)
 
   if (!f)
     {
 
   if (!f)
     {
-      fprintf (stderr, "%s: Unable to open object file %s\n",
+      fprintf (stderr, _("%s: Unable to open object file %s\n"),
               program_name,
               filename);
       exit (1);
               program_name,
               filename);
       exit (1);
@@ -937,18 +953,18 @@ gen_exp_file ()
   sprintf (outfile, "t%s", exp_name);
 
   if (verbose)
   sprintf (outfile, "t%s", exp_name);
 
   if (verbose)
-    fprintf (stderr, "%s: Generate exp file %s\n",
+    fprintf (stderr, _("%s: Generate exp file %s\n"),
             program_name, exp_name);
 
   f = fopen (outfile, FOPEN_WT);
   if (!f)
     {
             program_name, exp_name);
 
   f = fopen (outfile, FOPEN_WT);
   if (!f)
     {
-      fprintf (stderr, "%s: Unable to open output file %s\n", program_name, outfile);
+      fprintf (stderr, _("%s: Unable to open output file %s\n"), program_name, outfile);
       exit (1);
     }
   if (verbose)
     {
       exit (1);
     }
   if (verbose)
     {
-      fprintf (stderr, "%s: Opened file %s\n",
+      fprintf (stderr, _("%s: Opened file %s\n"),
               program_name, outfile);
     }
 
               program_name, outfile);
     }
 
@@ -1081,8 +1097,13 @@ gen_exp_file ()
       for (i = 0, exp = d_exports; exp; i++, exp = exp->next)
        if (!exp->noname || show_allnames)
          {
       for (i = 0, exp = d_exports; exp; i++, exp = exp->next)
        if (!exp->noname || show_allnames)
          {
+           /* We use a single underscore for MS compatibility, and a
+               double underscore for backward compatibility with old
+               cygwin releases.  */
            fprintf (f, "\t%s\t__imp_%s\n", ASM_GLOBAL, exp->name);
            fprintf (f, "\t%s\t__imp_%s\n", ASM_GLOBAL, exp->name);
+           fprintf (f, "\t%s\t_imp__%s\n", ASM_GLOBAL, exp->name);
            fprintf (f, "__imp_%s:\n", exp->name);
            fprintf (f, "__imp_%s:\n", exp->name);
+           fprintf (f, "_imp__%s:\n", exp->name);
            fprintf (f, "\t%s\t%s\n", ASM_LONG, exp->name);
          }
     }
            fprintf (f, "\t%s\t%s\n", ASM_LONG, exp->name);
          }
     }
@@ -1266,7 +1287,8 @@ static sinfo secdata[NSECS] =
 #endif
 
 /*
 #endif
 
 /*
-This is what we're trying to make
+This is what we're trying to make.  We generate the imp symbols with
+both single and double underscores, for compatibility.
 
        .text
        .global _GetFileVersionInfoSizeW@8
 
        .text
        .global _GetFileVersionInfoSizeW@8
@@ -1330,6 +1352,7 @@ make_one_lib_file (exp, i)
       fprintf (f, "\t.text\n");
       fprintf (f, "\t%s\t%s%s\n", ASM_GLOBAL, ASM_PREFIX, exp->name);
       fprintf (f, "\t%s\t__imp_%s\n", ASM_GLOBAL, exp->name);
       fprintf (f, "\t.text\n");
       fprintf (f, "\t%s\t%s%s\n", ASM_GLOBAL, ASM_PREFIX, exp->name);
       fprintf (f, "\t%s\t__imp_%s\n", ASM_GLOBAL, exp->name);
+      fprintf (f, "\t%s\t_imp__%s\n", ASM_GLOBAL, exp->name);
       fprintf (f, "%s%s:\n\t%s\t__imp_%s\n", ASM_PREFIX,
               exp->name, ASM_JUMP, exp->name);
 
       fprintf (f, "%s%s:\n\t%s\t__imp_%s\n", ASM_PREFIX,
               exp->name, ASM_JUMP, exp->name);
 
@@ -1341,6 +1364,7 @@ make_one_lib_file (exp, i)
 
       fprintf (f, "\t.section  .idata$5\n");
       fprintf (f, "__imp_%s:\n", exp->name);
 
       fprintf (f, "\t.section  .idata$5\n");
       fprintf (f, "__imp_%s:\n", exp->name);
+      fprintf (f, "_imp__%s:\n", exp->name);
 
       dump_iat (f, exp);
 
 
       dump_iat (f, exp);
 
@@ -1371,7 +1395,7 @@ make_one_lib_file (exp, i)
       bfd *abfd;
 
       asymbol *exp_label;
       bfd *abfd;
 
       asymbol *exp_label;
-      asymbol *iname;
+      asymbol *iname, *iname2;
       asymbol *iname_lab;
       asymbol **iname_lab_pp;
       asymbol **iname_pp;
       asymbol *iname_lab;
       asymbol **iname_lab_pp;
       asymbol **iname_pp;
@@ -1388,8 +1412,7 @@ make_one_lib_file (exp, i)
       asymbol **toc_pp;
 #endif
 
       asymbol **toc_pp;
 #endif
 
-      /* one symbol for each section, 2 extra + a null */
-      asymbol *ptrs[NSECS+3+EXTRA+1];
+      asymbol *ptrs[NSECS + 4 + EXTRA + 1];
 
       char *outname = xmalloc (10);
       int oidx = 0;
 
       char *outname = xmalloc (10);
       int oidx = 0;
@@ -1397,7 +1420,7 @@ make_one_lib_file (exp, i)
       abfd = bfd_openw (outname, HOW_BFD_TARGET);
       if (!abfd)
        {
       abfd = bfd_openw (outname, HOW_BFD_TARGET);
       if (!abfd)
        {
-         fprintf (stderr, "%s: bfd_open failed open output file %s\n"
+         fprintf (stderr, _("%s: bfd_open failed open output file %s\n")
                   program_name, outname);
          exit (1);
        }
                   program_name, outname);
          exit (1);
        }
@@ -1454,12 +1477,20 @@ make_one_lib_file (exp, i)
          ptrs[oidx++] = exp_label;
        }
 
          ptrs[oidx++] = exp_label;
        }
 
+      /* Generate imp symbols with one underscore for Microsoft
+         compatibility, and with two underscores for backward
+         compatibility with old versions of cygwin.  */
       iname = bfd_make_empty_symbol(abfd);
       iname->name = make_label ("__imp_", exp->name);
       iname->section = secdata[IDATA5].sec;
       iname->flags = BSF_GLOBAL;
       iname->value = 0;
 
       iname = bfd_make_empty_symbol(abfd);
       iname->name = make_label ("__imp_", exp->name);
       iname->section = secdata[IDATA5].sec;
       iname->flags = BSF_GLOBAL;
       iname->value = 0;
 
+      iname2 = bfd_make_empty_symbol(abfd);
+      iname2->name = make_label ("_imp__", exp->name);
+      iname2->section = secdata[IDATA5].sec;
+      iname2->flags = BSF_GLOBAL;
+      iname2->value = 0;
 
       iname_lab = bfd_make_empty_symbol(abfd);
 
 
       iname_lab = bfd_make_empty_symbol(abfd);
 
@@ -1471,6 +1502,7 @@ make_one_lib_file (exp, i)
 
       iname_pp = ptrs + oidx;
       ptrs[oidx++] = iname;
 
       iname_pp = ptrs + oidx;
       ptrs[oidx++] = iname;
+      ptrs[oidx++] = iname2;
 
       iname_lab_pp = ptrs + oidx;
       ptrs[oidx++] = iname_lab;
 
       iname_lab_pp = ptrs + oidx;
       ptrs[oidx++] = iname_lab;
@@ -1581,7 +1613,10 @@ make_one_lib_file (exp, i)
            case IDATA6:
              if (!exp->noname) 
                {
            case IDATA6:
              if (!exp->noname) 
                {
-                 int idx = exp->hint + 1;
+                 /* This used to add 1 to exp->hint.  I don't know
+                     why it did that, and it does not match what I see
+                     in programs compiled with the MS tools.  */
+                 int idx = exp->hint;
                  si->size = strlen (xlate (exp->name)) + 3;
                  si->data = xmalloc (si->size);
                  si->data[0] = idx & 0xff;
                  si->size = strlen (xlate (exp->name)) + 3;
                  si->data = xmalloc (si->size);
                  si->data[0] = idx & 0xff;
@@ -1874,7 +1909,8 @@ gen_lib_file ()
 
   if (!outarch)
     {
 
   if (!outarch)
     {
-      fprintf (stderr, "%s: Can't open .lib file %s\n", program_name, imp_name);
+      fprintf (stderr, _("%s: Can't open .lib file %s\n"),
+              program_name, imp_name);
       exit (1);
     }
   bfd_set_format (outarch, bfd_archive);
       exit (1);
     }
   bfd_set_format (outarch, bfd_archive);
@@ -1928,13 +1964,17 @@ gen_lib_file ()
     }
 
   if (dontdeltemps < 2)
     }
 
   if (dontdeltemps < 2)
-    for (i = 0, exp = d_exports; exp; i++, exp = exp->next)
-      {
-       sprintf (outfile, "ds%d.o",i);
-       unlink (outfile);
-      }
-
+    {
+      for (i = 0, exp = d_exports; exp; i++, exp = exp->next)
+       {
+         sprintf (outfile, "ds%d.o",i);
+         if (unlink (outfile) < 0)
+           fprintf (stderr, _("%s: cannot delete %s: %s\n"), program_name,
+                    outfile, strerror (errno));
+       }
+    }
 }
 }
+
 /**********************************************************************/
 
 /* Run through the information gathered from the .o files and the
 /**********************************************************************/
 
 /* Run through the information gathered from the .o files and the
@@ -2032,7 +2072,7 @@ process_duplicates (d_export_vec)
 
              more = 1;
              if (verbose)
 
              more = 1;
              if (verbose)
-               fprintf (stderr, "Warning, ignoring duplicate EXPORT %s %d,%d\n",
+               fprintf (stderr, _("Warning, ignoring duplicate EXPORT %s %d,%d\n"),
                         a->name,
                         a->ordinal,
                         b->ordinal);
                         a->name,
                         a->ordinal,
                         b->ordinal);
@@ -2040,7 +2080,7 @@ process_duplicates (d_export_vec)
                  && b->ordinal != -1)
                {
 
                  && b->ordinal != -1)
                {
 
-                 fprintf (stderr, "Error, duplicate EXPORT with oridinals %s\n",
+                 fprintf (stderr, _("Error, duplicate EXPORT with oridinals %s\n"),
                           a->name);
                  exit (1);
                }
                           a->name);
                  exit (1);
                }
@@ -2212,22 +2252,22 @@ usage (file, status)
      FILE *file;
      int status;
 {
      FILE *file;
      int status;
 {
-  fprintf (file, "Usage %s <options> <object-files>\n", program_name);
-  fprintf (file, "   --machine <machine>\n");
-  fprintf (file, "   --output-exp <outname> Generate export file.\n");
-  fprintf (file, "   --output-lib <outname> Generate input library.\n");
-  fprintf (file, "   --add-indirect         Add dll indirects to export file.\n");
-  fprintf (file, "   --dllname <name>       Name of input dll to put into output lib.\n");
-  fprintf (file, "   --def <deffile>        Name input .def file\n");
-  fprintf (file, "   --output-def <deffile> Name output .def file\n");
-  fprintf (file, "   --base-file <basefile> Read linker generated base file\n");
-  fprintf (file, "   --no-idata4           Don't generate idata$4 section\n");
-  fprintf (file, "   --no-idata5           Don't generate idata$5 section\n");
-  fprintf (file, "   -v                     Verbose\n");
-  fprintf (file, "   -U                     Add underscores to .lib\n");
-  fprintf (file, "   -k                     Kill @<n> from exported names\n");
-  fprintf (file, "   --as <name>            Use <name> for assembler\n");
-  fprintf (file, "   --nodelete             Keep temp files.\n");
+  fprintf (file, _("Usage %s <options> <object-files>\n"), program_name);
+  fprintf (file, _("   --machine <machine>\n"));
+  fprintf (file, _("   --output-exp <outname> Generate export file.\n"));
+  fprintf (file, _("   --output-lib <outname> Generate input library.\n"));
+  fprintf (file, _("   --add-indirect         Add dll indirects to export file.\n"));
+  fprintf (file, _("   --dllname <name>       Name of input dll to put into output lib.\n"));
+  fprintf (file, _("   --def <deffile>        Name input .def file\n"));
+  fprintf (file, _("   --output-def <deffile> Name output .def file\n"));
+  fprintf (file, _("   --base-file <basefile> Read linker generated base file\n"));
+  fprintf (file, _("   --no-idata4           Don't generate idata$4 section\n"));
+  fprintf (file, _("   --no-idata5           Don't generate idata$5 section\n"));
+  fprintf (file, _("   -v                     Verbose\n"));
+  fprintf (file, _("   -U                     Add underscores to .lib\n"));
+  fprintf (file, _("   -k                     Kill @<n> from exported names\n"));
+  fprintf (file, _("   --as <name>            Use <name> for assembler\n"));
+  fprintf (file, _("   --nodelete             Keep temp files.\n"));
   exit (status);
 }
 
   exit (status);
 }
 
@@ -2330,7 +2370,7 @@ main (ac, av)
          base_file = fopen (optarg, FOPEN_RB);
          if (!base_file)
            {
          base_file = fopen (optarg, FOPEN_RB);
          if (!base_file)
            {
-             fprintf (stderr, "%s: Unable to open base-file %s\n",
+             fprintf (stderr, _("%s: Unable to open base-file %s\n"),
                       av[0],
                       optarg);
              exit (1);
                       av[0],
                       optarg);
              exit (1);
@@ -2350,7 +2390,7 @@ main (ac, av)
 
   if (!mtable[i].type)
     {
 
   if (!mtable[i].type)
     {
-      fprintf (stderr, "Machine not supported\n");
+      fprintf (stderr, _("Machine not supported\n"));
       exit (1);
     }
   machine = i;
       exit (1);
     }
   machine = i;
index e1df03313cbf01854090a4fa7846ce1037b41f35..8544ba0e4f99a415dae7072580f74f3a371d4f50 100644 (file)
@@ -1,5 +1,5 @@
 /* nlmconv.c -- NLM conversion program
 /* nlmconv.c -- NLM conversion program
-   Copyright (C) 1993, 94, 95, 96, 1997 Free Software Foundation, Inc.
+   Copyright (C) 1993, 94, 95, 96, 97, 1998 Free Software Foundation, Inc.
 
 This file is part of GNU Binutils.
 
 
 This file is part of GNU Binutils.
 
@@ -186,12 +186,25 @@ main (argc, argv)
   char inlead, outlead;
   boolean gotstart, gotexit, gotcheck;
   struct stat st;
   char inlead, outlead;
   boolean gotstart, gotexit, gotcheck;
   struct stat st;
-  FILE *custom_data, *help_data, *message_data, *rpc_data, *shared_data;
-  size_t custom_size, help_size, message_size, module_size, rpc_size;
-  asection *custom_section, *help_section, *message_section, *module_section;
-  asection *rpc_section, *shared_section;
+  FILE *custom_data = NULL;
+  FILE *help_data = NULL;
+  FILE *message_data = NULL;
+  FILE *rpc_data = NULL;
+  FILE *shared_data = NULL;
+  size_t custom_size = 0;
+  size_t help_size = 0;
+  size_t message_size = 0;
+  size_t module_size = 0;
+  size_t rpc_size = 0;
+  asection *custom_section = NULL;
+  asection *help_section = NULL;
+  asection *message_section = NULL;
+  asection *module_section = NULL;
+  asection *rpc_section = NULL;
+  asection *shared_section = NULL;
   bfd *sharedbfd;
   bfd *sharedbfd;
-  size_t shared_offset, shared_size;
+  size_t shared_offset = 0;
+  size_t shared_size = 0;
   Nlm_Internal_Fixed_Header sharedhdr;
   int len;
   char *modname;
   Nlm_Internal_Fixed_Header sharedhdr;
   int len;
   char *modname;
@@ -253,7 +266,7 @@ main (argc, argv)
          if (strcmp (input_file, output_file) == 0)
            {
              fprintf (stderr,
          if (strcmp (input_file, output_file) == 0)
            {
              fprintf (stderr,
-                      "%s: input and output files must be different\n",
+                      _("%s: input and output files must be different\n"),
                       program_name);
              exit (1);
            }
                       program_name);
              exit (1);
            }
@@ -303,7 +316,7 @@ main (argc, argv)
       if (input_file != NULL)
        {
          fprintf (stderr,
       if (input_file != NULL)
        {
          fprintf (stderr,
-                  "%s: input file named both on command line and with INPUT\n",
+                  _("%s: input file named both on command line and with INPUT\n"),
                   program_name);
          exit (1);
        }
                   program_name);
          exit (1);
        }
@@ -314,7 +327,7 @@ main (argc, argv)
     }
   else if (input_file == NULL)
     {
     }
   else if (input_file == NULL)
     {
-      fprintf (stderr, "%s: no input file\n", program_name);
+      fprintf (stderr, _("%s: no input file\n"), program_name);
       show_usage (stderr, 1);
     }
 
       show_usage (stderr, 1);
     }
 
@@ -344,7 +357,7 @@ main (argc, argv)
      Otherwise use the file named in the OUTPUT statement.  */
   if (output_file == NULL)
     {
      Otherwise use the file named in the OUTPUT statement.  */
   if (output_file == NULL)
     {
-      fprintf (stderr, "%s: no name for output file\n",
+      fprintf (stderr, _("%s: no name for output file\n"),
               program_name);
       show_usage (stderr, 1);
     }
               program_name);
       show_usage (stderr, 1);
     }
@@ -359,7 +372,7 @@ main (argc, argv)
 
   if (bfd_arch_get_compatible (inbfd, outbfd) == NULL)
     fprintf (stderr,
 
   if (bfd_arch_get_compatible (inbfd, outbfd) == NULL)
     fprintf (stderr,
-            "%s: warning:input and output formats are not compatible\n",
+            _("%s: warning:input and output formats are not compatible\n"),
             program_name);
 
   /* Move the values read from the command file into outbfd.  */
             program_name);
 
   /* Move the values read from the command file into outbfd.  */
@@ -389,7 +402,7 @@ main (argc, argv)
       if (bss_sec == NULL
          || ! bfd_set_section_flags (outbfd, bss_sec, SEC_ALLOC)
          || ! bfd_set_section_alignment (outbfd, bss_sec, 1))
       if (bss_sec == NULL
          || ! bfd_set_section_flags (outbfd, bss_sec, SEC_ALLOC)
          || ! bfd_set_section_alignment (outbfd, bss_sec, 1))
-       bfd_fatal ("make .bss section");
+       bfd_fatal (_("make .bss section"));
     }
 
   /* We store the original section names in the .nlmsections section,
     }
 
   /* We store the original section names in the .nlmsections section,
@@ -398,9 +411,9 @@ main (argc, argv)
      the NLM header area.  */
   secsec = bfd_make_section (outbfd, ".nlmsections");
   if (secsec == NULL)
      the NLM header area.  */
   secsec = bfd_make_section (outbfd, ".nlmsections");
   if (secsec == NULL)
-    bfd_fatal ("make .nlmsections section");
+    bfd_fatal (_("make .nlmsections section"));
   if (! bfd_set_section_flags (outbfd, secsec, SEC_HAS_CONTENTS))
   if (! bfd_set_section_flags (outbfd, secsec, SEC_HAS_CONTENTS))
-    bfd_fatal ("set .nlmsections flags");
+    bfd_fatal (_("set .nlmsections flags"));
 
 #ifdef NLMCONV_POWERPC
   /* For PowerPC NetWare we need to build stubs for calls to undefined
 
 #ifdef NLMCONV_POWERPC
   /* For PowerPC NetWare we need to build stubs for calls to undefined
@@ -428,14 +441,14 @@ main (argc, argv)
       add = ((vma + align - 1) &~ (align - 1)) - vma;
       vma += add;
       if (! bfd_set_section_vma (outbfd, bss_sec, vma))
       add = ((vma + align - 1) &~ (align - 1)) - vma;
       vma += add;
       if (! bfd_set_section_vma (outbfd, bss_sec, vma))
-       bfd_fatal ("set .bss vma");
+       bfd_fatal (_("set .bss vma"));
       if (add != 0)
        {
          bfd_size_type data_size;
 
          data_size = bfd_get_section_size_before_reloc (data_sec);
          if (! bfd_set_section_size (outbfd, data_sec, data_size + add))
       if (add != 0)
        {
          bfd_size_type data_size;
 
          data_size = bfd_get_section_size_before_reloc (data_sec);
          if (! bfd_set_section_size (outbfd, data_sec, data_size + add))
-           bfd_fatal ("set .data size");
+           bfd_fatal (_("set .data size"));
        }
     }
 
        }
     }
 
@@ -616,7 +629,7 @@ main (argc, argv)
            }
          if (l == NULL)
            fprintf (stderr,
            }
          if (l == NULL)
            fprintf (stderr,
-                    "%s: warning: symbol %s imported but not in import list\n",
+                    _("%s: warning: symbol %s imported but not in import list\n"),
                     program_name, bfd_asymbol_name (sym));
        }
        
                     program_name, bfd_asymbol_name (sym));
        }
        
@@ -636,7 +649,7 @@ main (argc, argv)
                  && text_sec != (asection *) NULL)
                val += bfd_section_size (outbfd, text_sec);
              if (! bfd_set_start_address (outbfd, val))
                  && text_sec != (asection *) NULL)
                val += bfd_section_size (outbfd, text_sec);
              if (! bfd_set_start_address (outbfd, val))
-               bfd_fatal ("set start address");
+               bfd_fatal (_("set start address"));
              gotstart = true;
            }
          if (strcmp (bfd_asymbol_name (sym), exit_procedure) == 0)
              gotstart = true;
            }
          if (strcmp (bfd_asymbol_name (sym), exit_procedure) == 0)
@@ -685,14 +698,14 @@ main (argc, argv)
   bfd_set_symtab (outbfd, outsyms, symcount + newsymcount);
     
   if (! gotstart)
   bfd_set_symtab (outbfd, outsyms, symcount + newsymcount);
     
   if (! gotstart)
-    fprintf (stderr, "%s: warning: START procedure %s not defined\n",
+    fprintf (stderr, _("%s: warning: START procedure %s not defined\n"),
             program_name, start_procedure);
   if (! gotexit)
             program_name, start_procedure);
   if (! gotexit)
-    fprintf (stderr, "%s: warning: EXIT procedure %s not defined\n",
+    fprintf (stderr, _("%s: warning: EXIT procedure %s not defined\n"),
             program_name, exit_procedure);
   if (check_procedure != NULL
       && ! gotcheck)
             program_name, exit_procedure);
   if (check_procedure != NULL
       && ! gotcheck)
-    fprintf (stderr, "%s: warning: CHECK procedure %s not defined\n",
+    fprintf (stderr, _("%s: warning: CHECK procedure %s not defined\n"),
             program_name, check_procedure);
 
   /* Add additional sections required for the header information.  */
             program_name, check_procedure);
 
   /* Add additional sections required for the header information.  */
@@ -714,7 +727,7 @@ main (argc, argv)
              || ! bfd_set_section_size (outbfd, custom_section, custom_size)
              || ! bfd_set_section_flags (outbfd, custom_section,
                                          SEC_HAS_CONTENTS))
              || ! bfd_set_section_size (outbfd, custom_section, custom_size)
              || ! bfd_set_section_flags (outbfd, custom_section,
                                          SEC_HAS_CONTENTS))
-           bfd_fatal ("custom section");
+           bfd_fatal (_("custom section"));
        }
     }
   if (help_file != NULL)
        }
     }
   if (help_file != NULL)
@@ -735,7 +748,7 @@ main (argc, argv)
              || ! bfd_set_section_size (outbfd, help_section, help_size)
              || ! bfd_set_section_flags (outbfd, help_section,
                                          SEC_HAS_CONTENTS))
              || ! bfd_set_section_size (outbfd, help_section, help_size)
              || ! bfd_set_section_flags (outbfd, help_section,
                                          SEC_HAS_CONTENTS))
-           bfd_fatal ("help section");
+           bfd_fatal (_("help section"));
          strncpy (nlm_extended_header (outbfd)->stamp, "MeSsAgEs", 8);
        }
     }
          strncpy (nlm_extended_header (outbfd)->stamp, "MeSsAgEs", 8);
        }
     }
@@ -757,7 +770,7 @@ main (argc, argv)
              || ! bfd_set_section_size (outbfd, message_section, message_size)
              || ! bfd_set_section_flags (outbfd, message_section,
                                          SEC_HAS_CONTENTS))
              || ! bfd_set_section_size (outbfd, message_section, message_size)
              || ! bfd_set_section_flags (outbfd, message_section,
                                          SEC_HAS_CONTENTS))
-           bfd_fatal ("message section");
+           bfd_fatal (_("message section"));
          strncpy (nlm_extended_header (outbfd)->stamp, "MeSsAgEs", 8);
        }
     }
          strncpy (nlm_extended_header (outbfd)->stamp, "MeSsAgEs", 8);
        }
     }
@@ -773,7 +786,7 @@ main (argc, argv)
          || ! bfd_set_section_size (outbfd, module_section, module_size)
          || ! bfd_set_section_flags (outbfd, module_section,
                                      SEC_HAS_CONTENTS))
          || ! bfd_set_section_size (outbfd, module_section, module_size)
          || ! bfd_set_section_flags (outbfd, module_section,
                                      SEC_HAS_CONTENTS))
-       bfd_fatal ("module section");
+       bfd_fatal (_("module section"));
     }
   if (rpc_file != NULL)
     {
     }
   if (rpc_file != NULL)
     {
@@ -793,7 +806,7 @@ main (argc, argv)
              || ! bfd_set_section_size (outbfd, rpc_section, rpc_size)
              || ! bfd_set_section_flags (outbfd, rpc_section,
                                          SEC_HAS_CONTENTS))
              || ! bfd_set_section_size (outbfd, rpc_section, rpc_size)
              || ! bfd_set_section_flags (outbfd, rpc_section,
                                          SEC_HAS_CONTENTS))
-           bfd_fatal ("rpc section");
+           bfd_fatal (_("rpc section"));
          strncpy (nlm_extended_header (outbfd)->stamp, "MeSsAgEs", 8);
        }
     }
          strncpy (nlm_extended_header (outbfd)->stamp, "MeSsAgEs", 8);
        }
     }
@@ -830,19 +843,19 @@ main (argc, argv)
                {
                  /* There is no place to record this information.  */
                  fprintf (stderr,
                {
                  /* There is no place to record this information.  */
                  fprintf (stderr,
-                          "%s:%s: warning: shared libraries can not have uninitialized data\n",
+                          _("%s:%s: warning: shared libraries can not have uninitialized data\n"),
                           program_name, sharelib_file);
                }
              shared_offset = st.st_size;
                           program_name, sharelib_file);
                }
              shared_offset = st.st_size;
-             if (shared_offset > sharedhdr.codeImageOffset)
+             if (shared_offset > (size_t) sharedhdr.codeImageOffset)
                shared_offset = sharedhdr.codeImageOffset;
                shared_offset = sharedhdr.codeImageOffset;
-             if (shared_offset > sharedhdr.dataImageOffset)
+             if (shared_offset > (size_t) sharedhdr.dataImageOffset)
                shared_offset = sharedhdr.dataImageOffset;
                shared_offset = sharedhdr.dataImageOffset;
-             if (shared_offset > sharedhdr.relocationFixupOffset)
+             if (shared_offset > (size_t) sharedhdr.relocationFixupOffset)
                shared_offset = sharedhdr.relocationFixupOffset;
                shared_offset = sharedhdr.relocationFixupOffset;
-             if (shared_offset > sharedhdr.externalReferencesOffset)
+             if (shared_offset > (size_t) sharedhdr.externalReferencesOffset)
                shared_offset = sharedhdr.externalReferencesOffset;
                shared_offset = sharedhdr.externalReferencesOffset;
-             if (shared_offset > sharedhdr.publicsOffset)
+             if (shared_offset > (size_t) sharedhdr.publicsOffset)
                shared_offset = sharedhdr.publicsOffset;
              shared_size = st.st_size - shared_offset;
              shared_section = bfd_make_section (outbfd, ".nlmshared");
                shared_offset = sharedhdr.publicsOffset;
              shared_size = st.st_size - shared_offset;
              shared_section = bfd_make_section (outbfd, ".nlmshared");
@@ -851,7 +864,7 @@ main (argc, argv)
                                             shared_size)
                  || ! bfd_set_section_flags (outbfd, shared_section,
                                              SEC_HAS_CONTENTS))
                                             shared_size)
                  || ! bfd_set_section_flags (outbfd, shared_section,
                                              SEC_HAS_CONTENTS))
-               bfd_fatal ("shared section");
+               bfd_fatal (_("shared section"));
              strncpy (nlm_extended_header (outbfd)->stamp, "MeSsAgEs", 8);
            }
        }
              strncpy (nlm_extended_header (outbfd)->stamp, "MeSsAgEs", 8);
            }
        }
@@ -859,7 +872,7 @@ main (argc, argv)
 
   /* Check whether a version was given.  */
   if (strncmp (version_hdr->stamp, "VeRsIoN#", 8) != 0)
 
   /* Check whether a version was given.  */
   if (strncmp (version_hdr->stamp, "VeRsIoN#", 8) != 0)
-    fprintf (stderr, "%s: warning: No version number given\n",
+    fprintf (stderr, _("%s: warning: No version number given\n"),
             program_name);
 
   /* At least for now, always create an extended header, because that
             program_name);
 
   /* At least for now, always create an extended header, because that
@@ -900,13 +913,13 @@ main (argc, argv)
 
       data = xmalloc (custom_size);
       if (fread (data, 1, custom_size, custom_data) != custom_size)
 
       data = xmalloc (custom_size);
       if (fread (data, 1, custom_size, custom_data) != custom_size)
-       fprintf (stderr, "%s:%s: read: %s\n", program_name, custom_file,
+       fprintf (stderr, _("%s:%s: read: %s\n"), program_name, custom_file,
                 strerror (errno));
       else
        {
          if (! bfd_set_section_contents (outbfd, custom_section, data,
                                          (file_ptr) 0, custom_size))
                 strerror (errno));
       else
        {
          if (! bfd_set_section_contents (outbfd, custom_section, data,
                                          (file_ptr) 0, custom_size))
-           bfd_fatal ("custom section");
+           bfd_fatal (_("custom section"));
          nlm_fixed_header (outbfd)->customDataOffset =
            custom_section->filepos;
          nlm_fixed_header (outbfd)->customDataSize = custom_size;
          nlm_fixed_header (outbfd)->customDataOffset =
            custom_section->filepos;
          nlm_fixed_header (outbfd)->customDataSize = custom_size;
@@ -924,7 +937,7 @@ main (argc, argv)
     }
   if (map_file != NULL)
     fprintf (stderr,
     }
   if (map_file != NULL)
     fprintf (stderr,
-            "%s: warning: MAP and FULLMAP are not supported; try ld -M\n",
+            _("%s: warning: MAP and FULLMAP are not supported; try ld -M\n"),
             program_name);
   if (help_file != NULL)
     {
             program_name);
   if (help_file != NULL)
     {
@@ -932,13 +945,13 @@ main (argc, argv)
 
       data = xmalloc (help_size);
       if (fread (data, 1, help_size, help_data) != help_size)
 
       data = xmalloc (help_size);
       if (fread (data, 1, help_size, help_data) != help_size)
-       fprintf (stderr, "%s:%s: read: %s\n", program_name, help_file,
+       fprintf (stderr, _("%s:%s: read: %s\n"), program_name, help_file,
                 strerror (errno));
       else
        {
          if (! bfd_set_section_contents (outbfd, help_section, data,
                                          (file_ptr) 0, help_size))
                 strerror (errno));
       else
        {
          if (! bfd_set_section_contents (outbfd, help_section, data,
                                          (file_ptr) 0, help_size))
-           bfd_fatal ("help section");
+           bfd_fatal (_("help section"));
          nlm_extended_header (outbfd)->helpFileOffset =
            help_section->filepos;
          nlm_extended_header (outbfd)->helpFileLength = help_size;
          nlm_extended_header (outbfd)->helpFileOffset =
            help_section->filepos;
          nlm_extended_header (outbfd)->helpFileLength = help_size;
@@ -951,13 +964,13 @@ main (argc, argv)
 
       data = xmalloc (message_size);
       if (fread (data, 1, message_size, message_data) != message_size)
 
       data = xmalloc (message_size);
       if (fread (data, 1, message_size, message_data) != message_size)
-       fprintf (stderr, "%s:%s: read: %s\n", program_name, message_file,
+       fprintf (stderr, _("%s:%s: read: %s\n"), program_name, message_file,
                 strerror (errno));
       else
        {
          if (! bfd_set_section_contents (outbfd, message_section, data,
                                          (file_ptr) 0, message_size))
                 strerror (errno));
       else
        {
          if (! bfd_set_section_contents (outbfd, message_section, data,
                                          (file_ptr) 0, message_size))
-           bfd_fatal ("message section");
+           bfd_fatal (_("message section"));
          nlm_extended_header (outbfd)->messageFileOffset =
            message_section->filepos;
          nlm_extended_header (outbfd)->messageFileLength = message_size;
          nlm_extended_header (outbfd)->messageFileOffset =
            message_section->filepos;
          nlm_extended_header (outbfd)->messageFileLength = message_size;
@@ -990,7 +1003,7 @@ main (argc, argv)
        }
       if (! bfd_set_section_contents (outbfd, module_section, data,
                                      (file_ptr) 0, module_size))
        }
       if (! bfd_set_section_contents (outbfd, module_section, data,
                                      (file_ptr) 0, module_size))
-       bfd_fatal ("module section");
+       bfd_fatal (_("module section"));
       nlm_fixed_header (outbfd)->moduleDependencyOffset =
        module_section->filepos;
       nlm_fixed_header (outbfd)->numberOfModuleDependencies = c;
       nlm_fixed_header (outbfd)->moduleDependencyOffset =
        module_section->filepos;
       nlm_fixed_header (outbfd)->numberOfModuleDependencies = c;
@@ -1001,13 +1014,13 @@ main (argc, argv)
 
       data = xmalloc (rpc_size);
       if (fread (data, 1, rpc_size, rpc_data) != rpc_size)
 
       data = xmalloc (rpc_size);
       if (fread (data, 1, rpc_size, rpc_data) != rpc_size)
-       fprintf (stderr, "%s:%s: read: %s\n", program_name, rpc_file,
+       fprintf (stderr, _("%s:%s: read: %s\n"), program_name, rpc_file,
                 strerror (errno));
       else
        {
          if (! bfd_set_section_contents (outbfd, rpc_section, data,
                                          (file_ptr) 0, rpc_size))
                 strerror (errno));
       else
        {
          if (! bfd_set_section_contents (outbfd, rpc_section, data,
                                          (file_ptr) 0, rpc_size))
-           bfd_fatal ("rpc section");
+           bfd_fatal (_("rpc section"));
          nlm_extended_header (outbfd)->RPCDataOffset =
            rpc_section->filepos;
          nlm_extended_header (outbfd)->RPCDataLength = rpc_size;
          nlm_extended_header (outbfd)->RPCDataOffset =
            rpc_section->filepos;
          nlm_extended_header (outbfd)->RPCDataLength = rpc_size;
@@ -1021,13 +1034,13 @@ main (argc, argv)
       data = xmalloc (shared_size);
       if (fseek (shared_data, shared_offset, SEEK_SET) != 0
          || fread (data, 1, shared_size, shared_data) != shared_size)
       data = xmalloc (shared_size);
       if (fseek (shared_data, shared_offset, SEEK_SET) != 0
          || fread (data, 1, shared_size, shared_data) != shared_size)
-       fprintf (stderr, "%s:%s: read: %s\n", program_name, sharelib_file,
+       fprintf (stderr, _("%s:%s: read: %s\n"), program_name, sharelib_file,
                 strerror (errno));
       else
        {
          if (! bfd_set_section_contents (outbfd, shared_section, data,
                                          (file_ptr) 0, shared_size))
                 strerror (errno));
       else
        {
          if (! bfd_set_section_contents (outbfd, shared_section, data,
                                          (file_ptr) 0, shared_size))
-           bfd_fatal ("shared section");
+           bfd_fatal (_("shared section"));
        }
       nlm_extended_header (outbfd)->sharedCodeOffset =
        sharedhdr.codeImageOffset - shared_offset + shared_section->filepos;
        }
       nlm_extended_header (outbfd)->sharedCodeOffset =
        sharedhdr.codeImageOffset - shared_offset + shared_section->filepos;
@@ -1074,7 +1087,7 @@ main (argc, argv)
   for (modname = nlm_fixed_header (outbfd)->moduleName;
        *modname != '\0';
        modname++)
   for (modname = nlm_fixed_header (outbfd)->moduleName;
        *modname != '\0';
        modname++)
-    if (islower (*modname))
+    if (islower ((unsigned char) *modname))
       *modname = toupper (*modname);
 
   strncpy (nlm_variable_header (outbfd)->oldThreadName, " LONG",
       *modname = toupper (*modname);
 
   strncpy (nlm_variable_header (outbfd)->oldThreadName, " LONG",
@@ -1099,7 +1112,7 @@ main (argc, argv)
 static void
 show_help ()
 {
 static void
 show_help ()
 {
-  printf ("%s: Convert an object file into a NetWare Loadable Module\n",
+  printf (_("%s: Convert an object file into a NetWare Loadable Module\n"),
          program_name);
   show_usage (stdout, 0);
 }
          program_name);
   show_usage (stdout, 0);
 }
@@ -1111,15 +1124,15 @@ show_usage (file, status)
      FILE *file;
      int status;
 {
      FILE *file;
      int status;
 {
-  fprintf (file, "\
+  fprintf (file, _("\
 Usage: %s [-dhV] [-I bfdname] [-O bfdname] [-T header-file] [-l linker]\n\
        [--input-target=bfdname] [--output-target=bfdname]\n\
        [--header-file=file] [--linker=linker] [--debug]\n\
        [--help] [--version]\n\
 Usage: %s [-dhV] [-I bfdname] [-O bfdname] [-T header-file] [-l linker]\n\
        [--input-target=bfdname] [--output-target=bfdname]\n\
        [--header-file=file] [--linker=linker] [--debug]\n\
        [--help] [--version]\n\
-       [in-file [out-file]]\n",
+       [in-file [out-file]]\n"),
           program_name);
   if (status == 0)
           program_name);
   if (status == 0)
-    fprintf (file, "Report bugs to bug-gnu-utils@prep.ai.mit.edu\n");
+    fprintf (file, _("Report bugs to bug-gnu-utils@gnu.org\n"));
   exit (status);
 }
 \f
   exit (status);
 }
 \f
@@ -1151,7 +1164,7 @@ select_output_format (arch, mach, bigendian)
       return "nlm32-powerpc";
 #endif
     default:
       return "nlm32-powerpc";
 #endif
     default:
-      fprintf (stderr, "%s: support not compiled in for %s\n",
+      fprintf (stderr, _("%s: support not compiled in for %s\n"),
               program_name, bfd_printable_arch_mach (arch, mach));
       exit (1);
       /* Avoid warning.  */
               program_name, bfd_printable_arch_mach (arch, mach));
       exit (1);
       /* Avoid warning.  */
@@ -1194,7 +1207,7 @@ setup_sections (inbfd, insec, data_ptr)
     {
       outsec = bfd_make_section (outbfd, outname);
       if (outsec == NULL)
     {
       outsec = bfd_make_section (outbfd, outname);
       if (outsec == NULL)
-       bfd_fatal ("make section");
+       bfd_fatal (_("make section"));
     }
 
   insec->output_section = outsec;
     }
 
   insec->output_section = outsec;
@@ -1208,17 +1221,17 @@ setup_sections (inbfd, insec, data_ptr)
                              (bfd_section_size (outbfd, outsec)
                               + bfd_section_size (inbfd, insec)
                               + add)))
                              (bfd_section_size (outbfd, outsec)
                               + bfd_section_size (inbfd, insec)
                               + add)))
-    bfd_fatal ("set section size");
+    bfd_fatal (_("set section size"));
 
   if ((bfd_section_alignment (inbfd, insec)
        > bfd_section_alignment (outbfd, outsec))
       && ! bfd_set_section_alignment (outbfd, outsec,
                                      bfd_section_alignment (inbfd, insec)))
 
   if ((bfd_section_alignment (inbfd, insec)
        > bfd_section_alignment (outbfd, outsec))
       && ! bfd_set_section_alignment (outbfd, outsec,
                                      bfd_section_alignment (inbfd, insec)))
-    bfd_fatal ("set section alignment");
+    bfd_fatal (_("set section alignment"));
 
   if (! bfd_set_section_flags (outbfd, outsec,
                               f | bfd_get_section_flags (outbfd, outsec)))
 
   if (! bfd_set_section_flags (outbfd, outsec,
                               f | bfd_get_section_flags (outbfd, outsec)))
-    bfd_fatal ("set section flags");
+    bfd_fatal (_("set section flags"));
 
   bfd_set_reloc (outbfd, outsec, (arelent **) NULL, 0);
 
 
   bfd_set_reloc (outbfd, outsec, (arelent **) NULL, 0);
 
@@ -1229,7 +1242,7 @@ setup_sections (inbfd, insec, data_ptr)
   secsecsize = (secsecsize + 3) &~ 3;
   secsecsize += 8;
   if (! bfd_set_section_size (outbfd, secsec, secsecsize))
   secsecsize = (secsecsize + 3) &~ 3;
   secsecsize += 8;
   if (! bfd_set_section_size (outbfd, secsec, secsecsize))
-    bfd_fatal ("set .nlmsections size");
+    bfd_fatal (_("set .nlmsections size"));
 }
 
 /* Copy the section contents.  */
 }
 
 /* Copy the section contents.  */
@@ -1317,7 +1330,7 @@ copy_sections (inbfd, insec, data_ptr)
   /* Add this section to .nlmsections.  */
   if (! bfd_set_section_contents (outbfd, secsec, (PTR) inname, secsecoff,
                                  strlen (inname) + 1))
   /* Add this section to .nlmsections.  */
   if (! bfd_set_section_contents (outbfd, secsec, (PTR) inname, secsecoff,
                                  strlen (inname) + 1))
-    bfd_fatal ("set .nlmsection contents");
+    bfd_fatal (_("set .nlmsection contents"));
   secsecoff += strlen (inname) + 1;
 
   add = ((secsecoff + 3) &~ 3) - secsecoff;
   secsecoff += strlen (inname) + 1;
 
   add = ((secsecoff + 3) &~ 3) - secsecoff;
@@ -1325,7 +1338,7 @@ copy_sections (inbfd, insec, data_ptr)
     {
       bfd_h_put_32 (outbfd, (bfd_vma) 0, buf);
       if (! bfd_set_section_contents (outbfd, secsec, buf, secsecoff, add))
     {
       bfd_h_put_32 (outbfd, (bfd_vma) 0, buf);
       if (! bfd_set_section_contents (outbfd, secsec, buf, secsecoff, add))
-       bfd_fatal ("set .nlmsection contents");
+       bfd_fatal (_("set .nlmsection contents"));
       secsecoff += add;
     }
 
       secsecoff += add;
     }
 
@@ -1334,12 +1347,12 @@ copy_sections (inbfd, insec, data_ptr)
   else
     bfd_h_put_32 (outbfd, (bfd_vma) 0, buf);
   if (! bfd_set_section_contents (outbfd, secsec, buf, secsecoff, 4))
   else
     bfd_h_put_32 (outbfd, (bfd_vma) 0, buf);
   if (! bfd_set_section_contents (outbfd, secsec, buf, secsecoff, 4))
-    bfd_fatal ("set .nlmsection contents");
+    bfd_fatal (_("set .nlmsection contents"));
   secsecoff += 4;
 
   bfd_h_put_32 (outbfd, (bfd_vma) size, buf);
   if (! bfd_set_section_contents (outbfd, secsec, buf, secsecoff, 4))
   secsecoff += 4;
 
   bfd_h_put_32 (outbfd, (bfd_vma) size, buf);
   if (! bfd_set_section_contents (outbfd, secsec, buf, secsecoff, 4))
-    bfd_fatal ("set .nlmsection contents");
+    bfd_fatal (_("set .nlmsection contents"));
   secsecoff += 4;
 }
 
   secsecoff += 4;
 }
 
@@ -1663,7 +1676,7 @@ alpha_mangle_relocs (outbfd, insec, relocs_ptr, reloc_count_ptr, contents,
     {
       register bfd_size_type i;
 
     {
       register bfd_size_type i;
 
-      for (i = 0; i < old_reloc_count; i++, relocs++)
+      for (i = 0; i < (bfd_size_type) old_reloc_count; i++, relocs++)
        (*relocs)->address += insec->output_offset;
     }
 }
        (*relocs)->address += insec->output_offset;
     }
 }
@@ -1842,7 +1855,7 @@ powerpc_build_stubs (inbfd, outbfd, symbols_ptr, symcount_ptr)
                                     (got_base
                                      + (stubcount
                                         * POWERPC_STUB_TOC_ENTRY_SIZE))))
                                     (got_base
                                      + (stubcount
                                         * POWERPC_STUB_TOC_ENTRY_SIZE))))
-       bfd_fatal ("stub section sizes");
+       bfd_fatal (_("stub section sizes"));
     }
 }
 
     }
 }
 
@@ -1891,7 +1904,7 @@ powerpc_resolve_stubs (inbfd, outbfd)
                                      buf,
                                      l->start->value,
                                      POWERPC_STUB_SIZE))
                                      buf,
                                      l->start->value,
                                      POWERPC_STUB_SIZE))
-       bfd_fatal ("writing stub");
+       bfd_fatal (_("writing stub"));
 
       /* Create a new reloc for the TOC entry.  */
       reloc = (arelent *) xmalloc (sizeof (arelent));
 
       /* Create a new reloc for the TOC entry.  */
       reloc = (arelent *) xmalloc (sizeof (arelent));
@@ -1981,7 +1994,7 @@ powerpc_mangle_relocs (outbfd, insec, relocs_ptr, reloc_count_ptr, contents,
             between two sections both of which were placed in the
             same output section.  This should not happen.  */
          if (bfd_get_section (sym) != insec->output_section)
             between two sections both of which were placed in the
             same output section.  This should not happen.  */
          if (bfd_get_section (sym) != insec->output_section)
-           fprintf (stderr, "%s: unresolved PC relative reloc against %s\n",
+           fprintf (stderr, _("%s: unresolved PC relative reloc against %s\n"),
                     program_name, bfd_asymbol_name (sym));
          else
            {
                     program_name, bfd_asymbol_name (sym));
          else
            {
@@ -2046,7 +2059,7 @@ powerpc_mangle_relocs (outbfd, insec, relocs_ptr, reloc_count_ptr, contents,
              if ((bfd_signed_vma) val < - 0x8000
                  || (bfd_signed_vma) val >= 0x8000)
                fprintf (stderr,
              if ((bfd_signed_vma) val < - 0x8000
                  || (bfd_signed_vma) val >= 0x8000)
                fprintf (stderr,
-                        "%s: overflow when adjusting relocation against %s\n",
+                        _("%s: overflow when adjusting relocation against %s\n"),
                         program_name, bfd_asymbol_name (sym));
              bfd_put_16 (outbfd, val, (bfd_byte *) contents + rel->address);
              break;
                         program_name, bfd_asymbol_name (sym));
              bfd_put_16 (outbfd, val, (bfd_byte *) contents + rel->address);
              break;
@@ -2169,7 +2182,7 @@ link_inputs (inputs, ld)
                  PEXECUTE_SEARCH | PEXECUTE_ONE);
   if (pid == -1)
     {
                  PEXECUTE_SEARCH | PEXECUTE_ONE);
   if (pid == -1)
     {
-      fprintf (stderr, "%s: execution of %s failed: ", program_name, ld);
+      fprintf (stderr, _("%s: execution of %s failed: "), program_name, ld);
       fprintf (stderr, errfmt, errarg);
       unlink (unlink_on_exit);
       exit (1);
       fprintf (stderr, errfmt, errarg);
       unlink (unlink_on_exit);
       exit (1);
@@ -2184,7 +2197,7 @@ link_inputs (inputs, ld)
 
   if (status != 0)
     {
 
   if (status != 0)
     {
-      fprintf (stderr, "%s: Execution of %s failed\n", program_name, ld);
+      fprintf (stderr, _("%s: Execution of %s failed\n"), program_name, ld);
       unlink (unlink_on_exit);
       exit (1);
     }
       unlink (unlink_on_exit);
       exit (1);
     }
index 835036818e0b42d1cc16be5c64b5a9d1d15a0d8b..204c6a2f0cc0e949918fa42d2a0a8df0b3f9f65e 100644 (file)
@@ -1,5 +1,5 @@
 /* nm.c -- Describe symbol table of a rel file.
 /* nm.c -- Describe symbol table of a rel file.
-   Copyright 1991, 92, 93, 94 Free Software Foundation, Inc.
+   Copyright 1991, 92, 93, 94, 95, 96, 97, 1998 Free Software Foundation, Inc.
 
    This file is part of GNU Binutils.
 
 
    This file is part of GNU Binutils.
 
@@ -35,6 +35,29 @@ struct size_sym
   bfd_vma size;
 };
 
   bfd_vma size;
 };
 
+/* When fetching relocs, we use this structure to pass information to
+   get_relocs.  */
+
+struct get_relocs_info
+{
+  asection **secs;
+  arelent ***relocs;
+  long *relcount;
+  asymbol **syms;
+};
+
+static void
+usage PARAMS ((FILE *, int));
+
+static void
+set_print_radix PARAMS ((char *));
+
+static void
+set_output_format PARAMS ((char *));
+
+static void
+display_archive PARAMS ((bfd *));
+
 static boolean
 display_file PARAMS ((char *filename));
 
 static boolean
 display_file PARAMS ((char *filename));
 
@@ -54,6 +77,9 @@ print_symbols PARAMS ((bfd *, boolean, PTR, long, unsigned int, bfd *));
 static void
 print_size_symbols PARAMS ((bfd *, boolean, struct size_sym *, long, bfd *));
 
 static void
 print_size_symbols PARAMS ((bfd *, boolean, struct size_sym *, long, bfd *));
 
+static void
+print_symname PARAMS ((const char *, const char *, bfd *));
+
 static void
 print_symbol PARAMS ((bfd *, asymbol *, bfd *));
 
 static void
 print_symbol PARAMS ((bfd *, asymbol *, bfd *));
 
@@ -134,6 +160,8 @@ print_symbol_info_sysv PARAMS ((symbol_info * info, bfd * abfd));
 static void
 print_symbol_info_posix PARAMS ((symbol_info * info, bfd * abfd));
 
 static void
 print_symbol_info_posix PARAMS ((symbol_info * info, bfd * abfd));
 
+static void
+get_relocs PARAMS ((bfd *, asection *, PTR));
 
 /* Support for different output formats.  */
 struct output_fns
 
 /* Support for different output formats.  */
 struct output_fns
@@ -187,6 +215,7 @@ static struct output_fns *format = &formats[FORMAT_DEFAULT];
 
 static int do_demangle = 0;    /* Pretty print C++ symbol names.  */
 static int external_only = 0;  /* print external symbols only */
 
 static int do_demangle = 0;    /* Pretty print C++ symbol names.  */
 static int external_only = 0;  /* print external symbols only */
+static int defined_only = 0;   /* Print defined symbols only */
 static int no_sort = 0;                /* don't sort; print syms in order found */
 static int print_debug_syms = 0;       /* print debugger-only symbols too */
 static int print_armap = 0;    /* describe __.SYMDEF data in archive files.  */
 static int no_sort = 0;                /* don't sort; print syms in order found */
 static int print_debug_syms = 0;       /* print debugger-only symbols too */
 static int print_armap = 0;    /* describe __.SYMDEF data in archive files.  */
@@ -197,6 +226,7 @@ static int undefined_only = 0;      /* print undefined symbols only */
 static int dynamic = 0;                /* print dynamic symbols.  */
 static int show_version = 0;   /* show the version number */
 static int show_stats = 0;     /* show statistics */
 static int dynamic = 0;                /* print dynamic symbols.  */
 static int show_version = 0;   /* show the version number */
 static int show_stats = 0;     /* show statistics */
+static int line_numbers = 0;   /* print line numbers for symbols */
 
 /* When to print the names of files.  Not mutually exclusive in SYSV format.  */
 static int filename_per_file = 0;      /* Once per file, on its own line.  */
 
 /* When to print the names of files.  Not mutually exclusive in SYSV format.  */
 static int filename_per_file = 0;      /* Once per file, on its own line.  */
@@ -217,11 +247,11 @@ static int print_radix = 16;
 static char other_format[] = "%02x";
 static char desc_format[] = "%04x";
 
 static char other_format[] = "%02x";
 static char desc_format[] = "%04x";
 
-/* IMPORT */
-extern char *program_name;
-extern char *program_version;
-extern char *target;
-extern int print_version;
+static char *target = NULL;
+
+/* Used to cache the line numbers for a BFD.  */
+static bfd *lineno_cache_bfd;
+static bfd *lineno_cache_rel_bfd;
 
 static struct option long_options[] =
 {
 
 static struct option long_options[] =
 {
@@ -231,6 +261,7 @@ static struct option long_options[] =
   {"extern-only", no_argument, &external_only, 1},
   {"format", required_argument, 0, 'f'},
   {"help", no_argument, 0, 'h'},
   {"extern-only", no_argument, &external_only, 1},
   {"format", required_argument, 0, 'f'},
   {"help", no_argument, 0, 'h'},
+  {"line-numbers", no_argument, 0, 'l'},
   {"no-cplus", no_argument, &do_demangle, 0},  /* Linux compatibility.  */
   {"no-demangle", no_argument, &do_demangle, 0},
   {"no-sort", no_argument, &no_sort, 1},
   {"no-cplus", no_argument, &do_demangle, 0},  /* Linux compatibility.  */
   {"no-demangle", no_argument, &do_demangle, 0},
   {"no-sort", no_argument, &no_sort, 1},
@@ -243,6 +274,7 @@ static struct option long_options[] =
   {"size-sort", no_argument, &sort_by_size, 1},
   {"stats", no_argument, &show_stats, 1},
   {"target", required_argument, 0, 200},
   {"size-sort", no_argument, &sort_by_size, 1},
   {"stats", no_argument, &show_stats, 1},
   {"target", required_argument, 0, 200},
+  {"defined-only", no_argument, &defined_only, 1},
   {"undefined-only", no_argument, &undefined_only, 1},
   {"version", no_argument, &show_version, 1},
   {0, no_argument, 0, 0}
   {"undefined-only", no_argument, &undefined_only, 1},
   {"version", no_argument, &show_version, 1},
   {0, no_argument, 0, 0}
@@ -250,27 +282,30 @@ static struct option long_options[] =
 \f
 /* Some error-reporting functions */
 
 \f
 /* Some error-reporting functions */
 
-void
+static void
 usage (stream, status)
      FILE *stream;
      int status;
 {
 usage (stream, status)
      FILE *stream;
      int status;
 {
-  fprintf (stream, "\
-Usage: %s [-aABCDgnopPrsuvV] [-t radix] [--radix=radix] [--target=bfdname]\n\
+  fprintf (stream, _("\
+Usage: %s [-aABCDglnopPrsuvV] [-t radix] [--radix=radix] [--target=bfdname]\n\
        [--debug-syms] [--extern-only] [--print-armap] [--print-file-name]\n\
        [--numeric-sort] [--no-sort] [--reverse-sort] [--size-sort]\n\
        [--undefined-only] [--portability] [-f {bsd,sysv,posix}]\n\
        [--format={bsd,sysv,posix}] [--demangle] [--no-demangle] [--dynamic]\n\
        [--debug-syms] [--extern-only] [--print-armap] [--print-file-name]\n\
        [--numeric-sort] [--no-sort] [--reverse-sort] [--size-sort]\n\
        [--undefined-only] [--portability] [-f {bsd,sysv,posix}]\n\
        [--format={bsd,sysv,posix}] [--demangle] [--no-demangle] [--dynamic]\n\
+       [--defined-only] [--line-numbers]\n\
        [--version] [--help]\n\
        [--version] [--help]\n\
-       [file...]\n",
+       [file...]\n"),
           program_name);
   list_supported_targets (program_name, stream);
           program_name);
   list_supported_targets (program_name, stream);
+  if (status == 0)
+    fprintf (stream, _("Report bugs to bug-gnu-utils@gnu.org\n"));
   exit (status);
 }
 
 /* Set the radix for the symbol value and size according to RADIX.  */
 
   exit (status);
 }
 
 /* Set the radix for the symbol value and size according to RADIX.  */
 
-void
+static void
 set_print_radix (radix)
      char *radix;
 {
 set_print_radix (radix)
      char *radix;
 {
@@ -297,12 +332,12 @@ set_print_radix (radix)
       other_format[3] = desc_format[3] = *radix;
       break;
     default:
       other_format[3] = desc_format[3] = *radix;
       break;
     default:
-      fprintf (stderr, "%s: %s: invalid radix\n", program_name, radix);
+      fprintf (stderr, _("%s: %s: invalid radix\n"), program_name, radix);
       exit (1);
     }
 }
 
       exit (1);
     }
 }
 
-void
+static void
 set_output_format (f)
      char *f;
 {
 set_output_format (f)
      char *f;
 {
@@ -323,7 +358,7 @@ set_output_format (f)
       i = FORMAT_SYSV;
       break;
     default:
       i = FORMAT_SYSV;
       break;
     default:
-      fprintf (stderr, "%s: %s: invalid output format\n", program_name, f);
+      fprintf (stderr, _("%s: %s: invalid output format\n"), program_name, f);
       exit (1);
     }
   format = &formats[i];
       exit (1);
     }
   format = &formats[i];
@@ -343,8 +378,9 @@ main (argc, argv)
   START_PROGRESS (program_name, 0);
 
   bfd_init ();
   START_PROGRESS (program_name, 0);
 
   bfd_init ();
+  set_default_bfd_target ();
 
 
-  while ((c = getopt_long (argc, argv, "aABCDef:gnopPrst:uvV", long_options, (int *) 0)) != EOF)
+  while ((c = getopt_long (argc, argv, "aABCDef:glnopPrst:uvV", long_options, (int *) 0)) != EOF)
     {
       switch (c)
        {
     {
       switch (c)
        {
@@ -375,6 +411,9 @@ main (argc, argv)
          break;
        case 'h':
          usage (stdout, 0);
          break;
        case 'h':
          usage (stdout, 0);
+       case 'l':
+         line_numbers = 1;
+         break;
        case 'n':
        case 'v':
          sort_numerically = 1;
        case 'n':
        case 'v':
          sort_numerically = 1;
@@ -414,10 +453,7 @@ main (argc, argv)
     }
 
   if (show_version)
     }
 
   if (show_version)
-    {
-      printf ("GNU %s version %s\n", program_name, program_version);
-      exit (0);
-    }
+    print_version ("nm");
 
   /* OK, all options now parsed.  If no filename specified, do a.out.  */
   if (optind == argc)
 
   /* OK, all options now parsed.  If no filename specified, do a.out.  */
   if (optind == argc)
@@ -444,7 +480,7 @@ main (argc, argv)
       extern char **environ;
       char *lim = (char *) sbrk (0);
 
       extern char **environ;
       char *lim = (char *) sbrk (0);
 
-      fprintf (stderr, "%s: data size %ld\n", program_name,
+      fprintf (stderr, _("%s: data size %ld\n"), program_name,
               (long) (lim - (char *) &environ));
     }
 #endif
               (long) (lim - (char *) &environ));
     }
 #endif
@@ -496,12 +532,20 @@ display_archive (file)
        }
 
       if (last_arfile != NULL)
        }
 
       if (last_arfile != NULL)
-       bfd_close (last_arfile);
+       {
+         bfd_close (last_arfile);
+         lineno_cache_bfd = NULL;
+         lineno_cache_rel_bfd = NULL;
+       }
       last_arfile = arfile;
     }
 
   if (last_arfile != NULL)
       last_arfile = arfile;
     }
 
   if (last_arfile != NULL)
-    bfd_close (last_arfile);
+    {
+      bfd_close (last_arfile);
+      lineno_cache_bfd = NULL;
+      lineno_cache_rel_bfd = NULL;
+    }
 }
 
 static boolean
 }
 
 static boolean
@@ -542,6 +586,9 @@ display_file (filename)
   if (bfd_close (file) == false)
     bfd_fatal (filename);
 
   if (bfd_close (file) == false)
     bfd_fatal (filename);
 
+  lineno_cache_bfd = NULL;
+  lineno_cache_rel_bfd = NULL;
+
   return retval;
 }
 \f
   return retval;
 }
 \f
@@ -745,7 +792,7 @@ sort_symbols_by_size (abfd, dynamic, minisyms, symcount, size, symsizesp)
 {
   struct size_sym *symsizes;
   bfd_byte *from, *fromend;
 {
   struct size_sym *symsizes;
   bfd_byte *from, *fromend;
-  asymbol *sym;
+  asymbol *sym = NULL;
   asymbol *store_sym, *store_next;
 
   qsort (minisyms, symcount, size, size_forward1);
   asymbol *store_sym, *store_next;
 
   qsort (minisyms, symcount, size, size_forward1);
@@ -789,6 +836,8 @@ sort_symbols_by_size (abfd, dynamic, minisyms, symcount, size, symsizesp)
          if (next == NULL)
            bfd_fatal (bfd_get_filename (abfd));
        }
          if (next == NULL)
            bfd_fatal (bfd_get_filename (abfd));
        }
+      else
+       next = NULL;
 
       sec = bfd_get_section (sym);
 
 
       sec = bfd_get_section (sym);
 
@@ -843,7 +892,7 @@ display_rel_file (abfd, archive_bfd)
     {
       if (!(bfd_get_file_flags (abfd) & HAS_SYMS))
        {
     {
       if (!(bfd_get_file_flags (abfd) & HAS_SYMS))
        {
-         printf ("No symbols in \"%s\".\n", bfd_get_filename (abfd));
+         printf (_("No symbols in \"%s\".\n"), bfd_get_filename (abfd));
          return;
        }
     }
          return;
        }
     }
@@ -854,7 +903,7 @@ display_rel_file (abfd, archive_bfd)
 
   if (symcount == 0)
     {
 
   if (symcount == 0)
     {
-      fprintf (stderr, "%s: no symbols\n", bfd_get_filename (abfd));
+      fprintf (stderr, _("%s: no symbols\n"), bfd_get_filename (abfd));
       return;
     }
 
       return;
     }
 
@@ -928,6 +977,7 @@ filter_symbols (abfd, dynamic, minisyms, symcount, size)
        keep = bfd_is_und_section (sym->section);
       else if (external_only)
        keep = ((sym->flags & BSF_GLOBAL) != 0
        keep = bfd_is_und_section (sym->section);
       else if (external_only)
        keep = ((sym->flags & BSF_GLOBAL) != 0
+               || (sym->flags & BSF_WEAK) != 0
                || bfd_is_und_section (sym->section)
                || bfd_is_com_section (sym->section));
       else
                || bfd_is_und_section (sym->section)
                || bfd_is_com_section (sym->section));
       else
@@ -944,6 +994,13 @@ filter_symbols (abfd, dynamic, minisyms, symcount, size)
              || bfd_is_und_section (sym->section)))
        keep = 0;
 
              || bfd_is_und_section (sym->section)))
        keep = 0;
 
+      if (keep
+         && defined_only)
+       {
+         if (bfd_is_und_section (sym->section))
+           keep = 0;
+       }
+
       if (keep)
        {
          memcpy (to, from, size);
       if (keep)
        {
          memcpy (to, from, size);
@@ -959,7 +1016,8 @@ filter_symbols (abfd, dynamic, minisyms, symcount, size)
 
 static void
 print_symname (format, name, abfd)
 
 static void
 print_symname (format, name, abfd)
-     char *format, *name;
+     const char *format;
+     const char *name;
      bfd *abfd;
 {
   if (do_demangle && *name)
      bfd *abfd;
 {
   if (do_demangle && *name)
@@ -1067,7 +1125,7 @@ print_symbol (abfd, sym, archive_bfd)
   if (undefined_only)
     {
       if (bfd_is_und_section (bfd_get_section (sym)))
   if (undefined_only)
     {
       if (bfd_is_und_section (bfd_get_section (sym)))
-       print_symname ("%s\n", bfd_asymbol_name (sym), abfd);
+       print_symname ("%s", bfd_asymbol_name (sym), abfd);
     }
   else
     {
     }
   else
     {
@@ -1075,8 +1133,121 @@ print_symbol (abfd, sym, archive_bfd)
 
       bfd_get_symbol_info (abfd, sym, &syminfo);
       (*format->print_symbol_info) (&syminfo, abfd);
 
       bfd_get_symbol_info (abfd, sym, &syminfo);
       (*format->print_symbol_info) (&syminfo, abfd);
-      putchar ('\n');
     }
     }
+
+  if (line_numbers)
+    {
+      static asymbol **syms;
+      static long symcount;
+      const char *filename, *functionname;
+      unsigned int lineno;
+
+      /* We need to get the canonical symbols in order to call
+         bfd_find_nearest_line.  This is inefficient, but, then, you
+         don't have to use --line-numbers.  */
+      if (abfd != lineno_cache_bfd && syms != NULL)
+       {
+         free (syms);
+         syms = NULL;
+       }
+      if (syms == NULL)
+       {
+         long symsize;
+
+         symsize = bfd_get_symtab_upper_bound (abfd);
+         if (symsize < 0)
+           bfd_fatal (bfd_get_filename (abfd));
+         syms = (asymbol **) xmalloc (symsize);
+         symcount = bfd_canonicalize_symtab (abfd, syms);
+         if (symcount < 0)
+           bfd_fatal (bfd_get_filename (abfd));
+         lineno_cache_bfd = abfd;
+       }
+
+      if (bfd_is_und_section (bfd_get_section (sym)))
+       {
+         static asection **secs;
+         static arelent ***relocs;
+         static long *relcount;
+         static unsigned int seccount;
+         unsigned int i;
+         const char *symname;
+
+         /* For an undefined symbol, we try to find a reloc for the
+             symbol, and print the line number of the reloc.  */
+
+         if (abfd != lineno_cache_rel_bfd && relocs != NULL)
+           {
+             for (i = 0; i < seccount; i++)
+               if (relocs[i] != NULL)
+                 free (relocs[i]);
+             free (secs);
+             free (relocs);
+             free (relcount);
+             secs = NULL;
+             relocs = NULL;
+             relcount = NULL;
+           }
+
+         if (relocs == NULL)
+           {
+             struct get_relocs_info info;
+
+             seccount = bfd_count_sections (abfd);
+
+             secs = (asection **) xmalloc (seccount * sizeof *secs);
+             relocs = (arelent ***) xmalloc (seccount * sizeof *relocs);
+             relcount = (long *) xmalloc (seccount * sizeof *relcount);
+
+             info.secs = secs;
+             info.relocs = relocs;
+             info.relcount = relcount;
+             info.syms = syms;
+             bfd_map_over_sections (abfd, get_relocs, (PTR) &info);
+             lineno_cache_rel_bfd = abfd;
+           }
+
+         symname = bfd_asymbol_name (sym);
+         for (i = 0; i < seccount; i++)
+           {
+             long j;
+
+             for (j = 0; j < relcount[i]; j++)
+               {
+                 arelent *r;
+
+                 r = relocs[i][j];
+                 if (r->sym_ptr_ptr != NULL
+                     && (*r->sym_ptr_ptr)->section == sym->section
+                     && (*r->sym_ptr_ptr)->value == sym->value
+                     && strcmp (symname,
+                                bfd_asymbol_name (*r->sym_ptr_ptr)) == 0
+                     && bfd_find_nearest_line (abfd, secs[i], syms,
+                                               r->address, &filename,
+                                               &functionname, &lineno))
+                   {
+                     /* We only print the first one we find.  */
+                     printf ("\t%s:%u", filename, lineno);
+                     i = seccount;
+                     break;
+                   }
+               }
+           }
+       }
+      else if (bfd_get_section (sym)->owner == abfd)
+       {
+         if (bfd_find_nearest_line (abfd, bfd_get_section (sym), syms,
+                                    sym->value, &filename, &functionname,
+                                    &lineno)
+             && filename != NULL
+             && lineno != 0)
+           {
+             printf ("\t%s:%u", filename, lineno);
+           }
+       }
+    }
+
+  putchar ('\n');
 }
 \f
 /* The following 3 groups of functions are called unconditionally,
 }
 \f
 /* The following 3 groups of functions are called unconditionally,
@@ -1100,11 +1271,11 @@ print_object_filename_sysv (filename)
      char *filename;
 {
   if (undefined_only)
      char *filename;
 {
   if (undefined_only)
-    printf ("\n\nUndefined symbols from %s:\n\n", filename);
+    printf (_("\n\nUndefined symbols from %s:\n\n"), filename);
   else
   else
-    printf ("\n\nSymbols from %s:\n\n", filename);
-  printf ("\
-Name                  Value   Class        Type         Size   Line  Section\n\n");
+    printf (_("\n\nSymbols from %s:\n\n"), filename);
+  printf (_("\
+Name                  Value   Class        Type         Size   Line  Section\n\n"));
 }
 
 static void
 }
 
 static void
@@ -1154,11 +1325,11 @@ print_archive_member_sysv (archive, filename)
      CONST char *filename;
 {
   if (undefined_only)
      CONST char *filename;
 {
   if (undefined_only)
-    printf ("\n\nUndefined symbols from %s[%s]:\n\n", archive, filename);
+    printf (_("\n\nUndefined symbols from %s[%s]:\n\n"), archive, filename);
   else
   else
-    printf ("\n\nSymbols from %s[%s]:\n\n", archive, filename);
-  printf ("\
-Name                  Value   Class        Type         Size   Line  Section\n\n");
+    printf (_("\n\nSymbols from %s[%s]:\n\n"), archive, filename);
+  printf (_("\
+Name                  Value   Class        Type         Size   Line  Section\n\n"));
 }
 
 static void
 }
 
 static void
@@ -1327,7 +1498,7 @@ print_symdef_entry (abfd)
       bfd *elt;
       if (!everprinted)
        {
       bfd *elt;
       if (!everprinted)
        {
-         printf ("\nArchive index:\n");
+         printf (_("\nArchive index:\n"));
          everprinted = true;
        }
       elt = bfd_get_elt_at_index (abfd, idx);
          everprinted = true;
        }
       elt = bfd_get_elt_at_index (abfd, idx);
@@ -1340,3 +1511,41 @@ print_symdef_entry (abfd)
        }
     }
 }
        }
     }
 }
+\f
+/* This function is used to get the relocs for a particular section.
+   It is called via bfd_map_over_sections.  */
+
+static void
+get_relocs (abfd, sec, dataarg)
+     bfd *abfd;
+     asection *sec;
+     PTR dataarg;
+{
+  struct get_relocs_info *data = (struct get_relocs_info *) dataarg;
+
+  *data->secs = sec;
+
+  if ((sec->flags & SEC_RELOC) == 0)
+    {
+      *data->relocs = NULL;
+      *data->relcount = 0;
+    }
+  else
+    {
+      long relsize;
+
+      relsize = bfd_get_reloc_upper_bound (abfd, sec);
+      if (relsize < 0)
+       bfd_fatal (bfd_get_filename (abfd));
+
+      *data->relocs = (arelent **) xmalloc (relsize);
+      *data->relcount = bfd_canonicalize_reloc (abfd, sec, *data->relocs,
+                                               data->syms);
+      if (*data->relcount < 0)
+       bfd_fatal (bfd_get_filename (abfd));
+    }
+
+  ++data->secs;
+  ++data->relocs;
+  ++data->relcount;
+}
index 2c5575fa8f18403433601ea63951631f1ac11d83..b9da0c991139d89cb74ad8c20e1a40f1f5ea003c 100644 (file)
@@ -291,14 +291,14 @@ copy_usage (stream, exit_status)
      FILE *stream;
      int exit_status;
 {
      FILE *stream;
      int exit_status;
 {
-  fprintf (stream, "\
+  fprintf (stream, _("\
 Usage: %s [-vVSpgxX] [-I bfdname] [-O bfdname] [-F bfdname] [-b byte]\n\
        [-R section] [-i interleave] [--interleave=interleave] [--byte=byte]\n\
        [--input-target=bfdname] [--output-target=bfdname] [--target=bfdname]\n\
        [--strip-all] [--strip-debug] [--strip-unneeded] [--discard-all]\n\
 Usage: %s [-vVSpgxX] [-I bfdname] [-O bfdname] [-F bfdname] [-b byte]\n\
        [-R section] [-i interleave] [--interleave=interleave] [--byte=byte]\n\
        [--input-target=bfdname] [--output-target=bfdname] [--target=bfdname]\n\
        [--strip-all] [--strip-debug] [--strip-unneeded] [--discard-all]\n\
-       [--discard-locals] [--debugging] [--remove-section=section]\n",
+       [--discard-locals] [--debugging] [--remove-section=section]\n"),
           program_name);
           program_name);
-  fprintf (stream, "\
+  fprintf (stream, _("\
        [--gap-fill=val] [--pad-to=address] [--preserve-dates]\n\
        [--set-start=val] [--adjust-start=incr]\n\
        [--adjust-vma=incr] [--adjust-section-vma=section{=,+,-}val]\n\
        [--gap-fill=val] [--pad-to=address] [--preserve-dates]\n\
        [--set-start=val] [--adjust-start=incr]\n\
        [--adjust-vma=incr] [--adjust-section-vma=section{=,+,-}val]\n\
@@ -307,10 +307,10 @@ Usage: %s [-vVSpgxX] [-I bfdname] [-O bfdname] [-F bfdname] [-b byte]\n\
        [--keep-symbol symbol] [-K symbol] [--strip-symbol symbol] [-N symbol]\n\
        [--localize-symbol symbol] [-L symbol] [--weaken-symbol symbol]\n\
        [-W symbol] [--change-leading-char] [--remove-leading-char] [--weaken]\n\
        [--keep-symbol symbol] [-K symbol] [--strip-symbol symbol] [-N symbol]\n\
        [--localize-symbol symbol] [-L symbol] [--weaken-symbol symbol]\n\
        [-W symbol] [--change-leading-char] [--remove-leading-char] [--weaken]\n\
-       [--verbose] [--version] [--help] in-file [out-file]\n");
+       [--verbose] [--version] [--help] in-file [out-file]\n"));
   list_supported_targets (program_name, stream);
   if (exit_status == 0)
   list_supported_targets (program_name, stream);
   if (exit_status == 0)
-    fprintf (stream, "Report bugs to bug-gnu-utils@gnu.org\n");
+    fprintf (stream, _("Report bugs to bug-gnu-utils@gnu.org\n"));
   exit (exit_status);
 }
 
   exit (exit_status);
 }
 
@@ -319,17 +319,17 @@ strip_usage (stream, exit_status)
      FILE *stream;
      int exit_status;
 {
      FILE *stream;
      int exit_status;
 {
-  fprintf (stream, "\
+  fprintf (stream, _("\
 Usage: %s [-vVsSpgxX] [-I bfdname] [-O bfdname] [-F bfdname] [-R section]\n\
        [--input-target=bfdname] [--output-target=bfdname] [--target=bfdname]\n\
        [--strip-all] [--strip-debug] [--strip-unneeded] [--discard-all]\n\
        [--discard-locals] [--keep-symbol symbol] [-K symbol]\n\
        [--strip-symbol symbol] [-N symbol] [--remove-section=section]\n\
 Usage: %s [-vVsSpgxX] [-I bfdname] [-O bfdname] [-F bfdname] [-R section]\n\
        [--input-target=bfdname] [--output-target=bfdname] [--target=bfdname]\n\
        [--strip-all] [--strip-debug] [--strip-unneeded] [--discard-all]\n\
        [--discard-locals] [--keep-symbol symbol] [-K symbol]\n\
        [--strip-symbol symbol] [-N symbol] [--remove-section=section]\n\
-       [-o file] [--preserve-dates] [--verbose] [--version] [--help] file...\n",
+       [-o file] [--preserve-dates] [--verbose] [--version] [--help] file...\n"),
           program_name);
   list_supported_targets (program_name, stream);
   if (exit_status == 0)
           program_name);
   list_supported_targets (program_name, stream);
   if (exit_status == 0)
-    fprintf (stream, "Report bugs to bug-gnu-utils@gnu.org\n");
+    fprintf (stream, _("Report bugs to bug-gnu-utils@gnu.org\n"));
   exit (exit_status);
 }
 
   exit (exit_status);
 }
 
@@ -375,10 +375,10 @@ parse_flags (s)
          copy = xmalloc (len + 1);
          strncpy (copy, s, len);
          copy[len] = '\0';
          copy = xmalloc (len + 1);
          strncpy (copy, s, len);
          copy[len] = '\0';
-         fprintf (stderr, "%s: unrecognized section flag `%s'\n",
+         fprintf (stderr, _("%s: unrecognized section flag `%s'\n"),
                   program_name, copy);
          fprintf (stderr,
                   program_name, copy);
          fprintf (stderr,
-                  "%s: supported flags: alloc, load, readonly, code, data, rom, contents\n",
+                  _("%s: supported flags: alloc, load, readonly, code, data, rom, contents\n"),
                   program_name);
          exit (1);
        }
                   program_name);
          exit (1);
        }
@@ -608,7 +608,7 @@ copy_object (ibfd, obfd)
     }
 
   if (verbose)
     }
 
   if (verbose)
-    printf ("copy from %s(%s) to %s(%s)\n",
+    printf (_("copy from %s(%s) to %s(%s)\n"),
            bfd_get_filename(ibfd), bfd_get_target(ibfd),
            bfd_get_filename(obfd), bfd_get_target(obfd));
 
            bfd_get_filename(ibfd), bfd_get_target(ibfd),
            bfd_get_filename(obfd), bfd_get_target(obfd));
 
@@ -631,7 +631,7 @@ copy_object (ibfd, obfd)
                          bfd_get_mach (ibfd)))
     {
       fprintf (stderr,
                          bfd_get_mach (ibfd)))
     {
       fprintf (stderr,
-              "Warning: Output file cannot represent architecture %s\n",
+              _("Warning: Output file cannot represent architecture %s\n"),
               bfd_printable_arch_mach (bfd_get_arch (ibfd),
                                        bfd_get_mach (ibfd)));
     }
               bfd_printable_arch_mach (bfd_get_arch (ibfd),
                                        bfd_get_mach (ibfd)));
     }
@@ -659,7 +659,7 @@ copy_object (ibfd, obfd)
          padd->section = bfd_make_section (obfd, padd->name);
          if (padd->section == NULL)
            {
          padd->section = bfd_make_section (obfd, padd->name);
          if (padd->section == NULL)
            {
-             fprintf (stderr, "%s: can't create section `%s': %s\n",
+             fprintf (stderr, _("%s: can't create section `%s': %s\n"),
                       program_name, padd->name,
                       bfd_errmsg (bfd_get_error ()));
              status = 1;
                       program_name, padd->name,
                       bfd_errmsg (bfd_get_error ()));
              status = 1;
@@ -736,7 +736,7 @@ copy_object (ibfd, obfd)
                  if (! bfd_set_section_size (obfd, osections[i],
                                              size + (gap_stop - gap_start)))
                    {
                  if (! bfd_set_section_size (obfd, osections[i],
                                              size + (gap_stop - gap_start)))
                    {
-                     fprintf (stderr, "%s: Can't fill gap after %s: %s\n",
+                     fprintf (stderr, _("%s: Can't fill gap after %s: %s\n"),
                               program_name,
                               bfd_get_section_name (obfd, osections[i]),
                               bfd_errmsg (bfd_get_error()));
                               program_name,
                               bfd_get_section_name (obfd, osections[i]),
                               bfd_errmsg (bfd_get_error()));
@@ -762,7 +762,7 @@ copy_object (ibfd, obfd)
              if (! bfd_set_section_size (obfd, osections[c - 1],
                                          pad_to - lma))
                {
              if (! bfd_set_section_size (obfd, osections[c - 1],
                                          pad_to - lma))
                {
-                 fprintf (stderr, "%s: Can't add padding to %s: %s\n",
+                 fprintf (stderr, _("%s: Can't add padding to %s: %s\n"),
                           program_name,
                           bfd_get_section_name (obfd, osections[c - 1]),
                           bfd_errmsg (bfd_get_error ()));
                           program_name,
                           bfd_get_section_name (obfd, osections[c - 1]),
                           bfd_errmsg (bfd_get_error ()));
@@ -911,7 +911,7 @@ copy_object (ibfd, obfd)
      important for the ECOFF code at least.  */
   if (!bfd_copy_private_bfd_data (ibfd, obfd))
     {
      important for the ECOFF code at least.  */
   if (!bfd_copy_private_bfd_data (ibfd, obfd))
     {
-      fprintf (stderr, "%s: %s: error copying private BFD data: %s\n",
+      fprintf (stderr, _("%s: %s: error copying private BFD data: %s\n"),
               program_name, bfd_get_filename (obfd),
               bfd_errmsg (bfd_get_error ()));
       status = 1;
               program_name, bfd_get_filename (obfd),
               bfd_errmsg (bfd_get_error ()));
       status = 1;
@@ -945,7 +945,7 @@ copy_archive (ibfd, obfd, output_target)
   if (mkdir (dir, 0700) != 0)
 #endif
     {
   if (mkdir (dir, 0700) != 0)
 #endif
     {
-      fatal ("cannot mkdir %s for archive copying (error: %s)",
+      fatal (_("cannot mkdir %s for archive copying (error: %s)"),
             dir, strerror (errno));
     }
   obfd->has_armap = ibfd->has_armap;
             dir, strerror (errno));
     }
   obfd->has_armap = ibfd->has_armap;
@@ -1198,7 +1198,7 @@ setup_section (ibfd, isection, obfdarg)
   return;
 
 loser:
   return;
 
 loser:
-  fprintf (stderr, "%s: %s: section `%s': error in %s: %s\n",
+  fprintf (stderr, _("%s: %s: section `%s': error in %s: %s\n"),
           program_name,
           bfd_get_filename (ibfd), bfd_section_name (ibfd, isection),
           err, bfd_errmsg (bfd_get_error ()));
           program_name,
           bfd_get_filename (ibfd), bfd_section_name (ibfd, isection),
           err, bfd_errmsg (bfd_get_error ()));
@@ -1461,7 +1461,7 @@ write_debugging_info (obfd, dhandle, symcountp, symppp)
                                       | SEC_READONLY
                                       | SEC_DEBUGGING)))
        {
                                       | SEC_READONLY
                                       | SEC_DEBUGGING)))
        {
-         fprintf (stderr, "%s: can't create debugging section: %s\n",
+         fprintf (stderr, _("%s: can't create debugging section: %s\n"),
                   bfd_get_filename (obfd), bfd_errmsg (bfd_get_error ()));
          return false;
        }
                   bfd_get_filename (obfd), bfd_errmsg (bfd_get_error ()));
          return false;
        }
@@ -1475,7 +1475,7 @@ write_debugging_info (obfd, dhandle, symcountp, symppp)
          || ! bfd_set_section_contents (obfd, stabstrsec, strings,
                                         (file_ptr) 0, stringsize))
        {
          || ! bfd_set_section_contents (obfd, stabstrsec, strings,
                                         (file_ptr) 0, stringsize))
        {
-         fprintf (stderr, "%s: can't set debugging section contents: %s\n",
+         fprintf (stderr, _("%s: can't set debugging section contents: %s\n"),
                   bfd_get_filename (obfd), bfd_errmsg (bfd_get_error ()));
          return false;
        }
                   bfd_get_filename (obfd), bfd_errmsg (bfd_get_error ()));
          return false;
        }
@@ -1484,7 +1484,7 @@ write_debugging_info (obfd, dhandle, symcountp, symppp)
     }
 
   fprintf (stderr,
     }
 
   fprintf (stderr,
-          "%s: don't know how to write debugging information for %s\n",
+          _("%s: don't know how to write debugging information for %s\n"),
           bfd_get_filename (obfd), bfd_get_target (obfd));
   return false;
 }
           bfd_get_filename (obfd), bfd_get_target (obfd));
   return false;
 }
@@ -1669,7 +1669,7 @@ set_times (destination, statbuf)
   if (result != 0)
     {
       fprintf (stderr, "%s: ", destination);
   if (result != 0)
     {
       fprintf (stderr, "%s: ", destination);
-      perror ("can not set time");
+      perror (_("can not set time"));
     }
 }
 
     }
 }
 
@@ -1774,7 +1774,7 @@ strip_main (argc, argv)
          if (stat (argv[i], &statbuf) < 0)
            {
              fprintf (stderr, "%s: ", argv[i]);
          if (stat (argv[i], &statbuf) < 0)
            {
              fprintf (stderr, "%s: ", argv[i]);
-             perror ("cannot stat");
+             perror (_("cannot stat"));
              continue;
            }
        }
              continue;
            }
        }
@@ -1825,7 +1825,7 @@ copy_main (argc, argv)
          copy_byte = atoi(optarg);
          if (copy_byte < 0)
            {
          copy_byte = atoi(optarg);
          if (copy_byte < 0)
            {
-             fprintf (stderr, "%s: byte number must be non-negative\n",
+             fprintf (stderr, _("%s: byte number must be non-negative\n"),
                       program_name);
              exit (1);
            }
                       program_name);
              exit (1);
            }
@@ -1834,7 +1834,7 @@ copy_main (argc, argv)
          interleave = atoi(optarg);
          if (interleave < 1)
            {
          interleave = atoi(optarg);
          if (interleave < 1)
            {
-             fprintf(stderr, "%s: interleave must be positive\n",
+             fprintf(stderr, _("%s: interleave must be positive\n"),
                      program_name);
              exit (1);
            }
                      program_name);
              exit (1);
            }
@@ -1907,7 +1907,7 @@ copy_main (argc, argv)
            if (s == NULL)
              {
                fprintf (stderr,
            if (s == NULL)
              {
                fprintf (stderr,
-                        "%s: bad format for --add-section NAME=FILENAME\n",
+                        _("%s: bad format for --add-section NAME=FILENAME\n"),
                         program_name);
                exit (1);
              }
                         program_name);
                exit (1);
              }
@@ -1942,7 +1942,7 @@ copy_main (argc, argv)
            if (fread (pa->contents, 1, pa->size, f) == 0
                || ferror (f))
              {
            if (fread (pa->contents, 1, pa->size, f) == 0
                || ferror (f))
              {
-               fprintf (stderr, "%s: %s: fread failed\n",
+               fprintf (stderr, _("%s: %s: fread failed\n"),
                         program_name, pa->filename);
                exit (1);
              }
                         program_name, pa->filename);
                exit (1);
              }
@@ -1971,7 +1971,7 @@ copy_main (argc, argv)
                    if (s == NULL)
                      {
                        fprintf (stderr,
                    if (s == NULL)
                      {
                        fprintf (stderr,
-                                "%s: bad format for --adjust-section-vma\n",
+                                _("%s: bad format for --adjust-section-vma\n"),
                                 program_name);
                        exit (1);
                      }
                                 program_name);
                        exit (1);
                      }
@@ -2018,7 +2018,7 @@ copy_main (argc, argv)
            gap_fill = (bfd_byte) gap_fill_vma;
            if ((bfd_vma) gap_fill != gap_fill_vma)
              {
            gap_fill = (bfd_byte) gap_fill_vma;
            if ((bfd_vma) gap_fill != gap_fill_vma)
              {
-               fprintf (stderr, "%s: warning: truncating gap-fill from 0x",
+               fprintf (stderr, _("%s: warning: truncating gap-fill from 0x"),
                         program_name);
                fprintf_vma (stderr, gap_fill_vma);
                fprintf (stderr, "to 0x%x\n", (unsigned int) gap_fill);
                         program_name);
                fprintf_vma (stderr, gap_fill_vma);
                fprintf (stderr, "to 0x%x\n", (unsigned int) gap_fill);
@@ -2045,7 +2045,7 @@ copy_main (argc, argv)
            s = strchr (optarg, '=');
            if (s == NULL)
              {
            s = strchr (optarg, '=');
            if (s == NULL)
              {
-               fprintf (stderr, "%s: bad format for --set-section-flags\n",
+               fprintf (stderr, _("%s: bad format for --set-section-flags\n"),
                         program_name);
                exit (1);
              }
                         program_name);
                exit (1);
              }
@@ -2079,7 +2079,7 @@ copy_main (argc, argv)
 
   if (copy_byte >= interleave)
     {
 
   if (copy_byte >= interleave)
     {
-      fprintf (stderr, "%s: byte number must be less than interleave\n",
+      fprintf (stderr, _("%s: byte number must be less than interleave\n"),
               program_name);
       exit (1);
     }
               program_name);
       exit (1);
     }
@@ -2103,7 +2103,7 @@ copy_main (argc, argv)
       if (stat (input_filename, &statbuf) < 0)
        {
          fprintf (stderr, "%s: ", input_filename);
       if (stat (input_filename, &statbuf) < 0)
        {
          fprintf (stderr, "%s: ", input_filename);
-         perror ("cannot stat");
+         perror (_("cannot stat"));
          exit (1);
        }
     }
          exit (1);
        }
     }
@@ -2138,11 +2138,11 @@ copy_main (argc, argv)
        {
          if (! p->used && p->adjust != ignore_vma)
            {
        {
          if (! p->used && p->adjust != ignore_vma)
            {
-             fprintf (stderr, "%s: warning: --adjust-section-vma %s%c0x",
+             fprintf (stderr, _("%s: warning: --adjust-section-vma %s%c0x"),
                       program_name, p->name,
                       p->adjust == set_vma ? '=' : '+');
              fprintf_vma (stderr, p->val);
                       program_name, p->name,
                       p->adjust == set_vma ? '=' : '+');
              fprintf_vma (stderr, p->val);
-             fprintf (stderr, " never used\n");
+             fprintf (stderr, _(" never used\n"));
            }
        }
     }
            }
        }
     }
index ecfce4253d0499b32bdd529348ba5ec19b312f96..29c440eeb6eb86753a54104c66fbced2e5911061 100644 (file)
@@ -1,5 +1,6 @@
 /* objdump.c -- dump information about an object file.
 /* objdump.c -- dump information about an object file.
-   Copyright 1990, 91, 92, 93, 94, 95, 96, 1997 Free Software Foundation, Inc.
+   Copyright 1990, 91, 92, 93, 94, 95, 96, 97, 1998
+   Free Software Foundation, Inc.
 
 This file is part of GNU Binutils.
 
 
 This file is part of GNU Binutils.
 
@@ -215,24 +216,24 @@ usage (stream, status)
      FILE *stream;
      int status;
 {
      FILE *stream;
      int status;
 {
-  fprintf (stream, "\
+  fprintf (stream, _("\
 Usage: %s [-ahifCdDprRtTxsSlw] [-b bfdname] [-m machine] [-j section-name]\n\
        [--archive-headers] [--target=bfdname] [--debugging] [--disassemble]\n\
        [--disassemble-all] [--disassemble-zeroes] [--file-headers]\n\
        [--section-headers] [--headers]\n\
 Usage: %s [-ahifCdDprRtTxsSlw] [-b bfdname] [-m machine] [-j section-name]\n\
        [--archive-headers] [--target=bfdname] [--debugging] [--disassemble]\n\
        [--disassemble-all] [--disassemble-zeroes] [--file-headers]\n\
        [--section-headers] [--headers]\n\
-       [--info] [--section=section-name] [--line-numbers] [--source]\n",
+       [--info] [--section=section-name] [--line-numbers] [--source]\n"),
           program_name);
           program_name);
-  fprintf (stream, "\
+  fprintf (stream, _("\
        [--architecture=machine] [--reloc] [--full-contents] [--stabs]\n\
        [--syms] [--all-headers] [--dynamic-syms] [--dynamic-reloc]\n\
        [--wide] [--version] [--help] [--private-headers]\n\
        [--start-address=addr] [--stop-address=addr]\n\
        [--prefix-addresses] [--[no-]show-raw-insn] [--demangle]\n\
        [--adjust-vma=offset] [-EB|-EL] [--endian={big|little}] objfile...\n\
        [--architecture=machine] [--reloc] [--full-contents] [--stabs]\n\
        [--syms] [--all-headers] [--dynamic-syms] [--dynamic-reloc]\n\
        [--wide] [--version] [--help] [--private-headers]\n\
        [--start-address=addr] [--stop-address=addr]\n\
        [--prefix-addresses] [--[no-]show-raw-insn] [--demangle]\n\
        [--adjust-vma=offset] [-EB|-EL] [--endian={big|little}] objfile...\n\
-at least one option besides -l (--line-numbers) must be given\n");
+at least one option besides -l (--line-numbers) must be given\n"));
   list_supported_targets (program_name, stream);
   if (status == 0)
   list_supported_targets (program_name, stream);
   if (status == 0)
-    fprintf (stream, "Report bugs to bug-gnu-utils@prep.ai.mit.edu\n");
+    fprintf (stream, _("Report bugs to bug-gnu-utils@gnu.org\n"));
   exit (status);
 }
 
   exit (status);
 }
 
@@ -357,11 +358,11 @@ static void
 dump_headers (abfd)
      bfd *abfd;
 {
 dump_headers (abfd)
      bfd *abfd;
 {
-  printf ("Sections:\n");
+  printf (_("Sections:\n"));
 #ifndef BFD64
 #ifndef BFD64
-  printf ("Idx Name          Size      VMA       LMA       File off  Algn\n");
+  printf (_("Idx Name          Size      VMA       LMA       File off  Algn\n"));
 #else
 #else
-  printf ("Idx Name          Size      VMA               LMA               File off  Algn\n");
+  printf (_("Idx Name          Size      VMA               LMA               File off  Algn\n"));
 #endif
   bfd_map_over_sections (abfd, dump_section_header, (PTR) NULL);
 }
 #endif
   bfd_map_over_sections (abfd, dump_section_header, (PTR) NULL);
 }
@@ -375,7 +376,7 @@ slurp_symtab (abfd)
 
   if (!(bfd_get_file_flags (abfd) & HAS_SYMS))
     {
 
   if (!(bfd_get_file_flags (abfd) & HAS_SYMS))
     {
-      printf ("No symbols in \"%s\".\n", bfd_get_filename (abfd));
+      printf (_("No symbols in \"%s\".\n"), bfd_get_filename (abfd));
       symcount = 0;
       return NULL;
     }
       symcount = 0;
       return NULL;
     }
@@ -392,7 +393,7 @@ slurp_symtab (abfd)
   if (symcount < 0)
     bfd_fatal (bfd_get_filename (abfd));
   if (symcount == 0)
   if (symcount < 0)
     bfd_fatal (bfd_get_filename (abfd));
   if (symcount == 0)
-    fprintf (stderr, "%s: %s: No symbols\n",
+    fprintf (stderr, _("%s: %s: No symbols\n"),
             program_name, bfd_get_filename (abfd));
   return sy;
 }
             program_name, bfd_get_filename (abfd));
   return sy;
 }
@@ -411,7 +412,7 @@ slurp_dynamic_symtab (abfd)
     {
       if (!(bfd_get_file_flags (abfd) & DYNAMIC))
        {
     {
       if (!(bfd_get_file_flags (abfd) & DYNAMIC))
        {
-         fprintf (stderr, "%s: %s: not a dynamic object\n",
+         fprintf (stderr, _("%s: %s: not a dynamic object\n"),
                   program_name, bfd_get_filename (abfd));
          dynsymcount = 0;
          return NULL;
                   program_name, bfd_get_filename (abfd));
          dynsymcount = 0;
          return NULL;
@@ -428,7 +429,7 @@ slurp_dynamic_symtab (abfd)
   if (dynsymcount < 0)
     bfd_fatal (bfd_get_filename (abfd));
   if (dynsymcount == 0)
   if (dynsymcount < 0)
     bfd_fatal (bfd_get_filename (abfd));
   if (dynsymcount == 0)
-    fprintf (stderr, "%s: %s: No dynamic symbols\n",
+    fprintf (stderr, _("%s: %s: No dynamic symbols\n"),
             program_name, bfd_get_filename (abfd));
   return sy;
 }
             program_name, bfd_get_filename (abfd));
   return sy;
 }
@@ -828,9 +829,6 @@ objdump_print_addr_with_sym (abfd, sec, sym, vma, info, skip_zeroes)
          objdump_print_value (vma - bfd_asymbol_value (sym), info, true);
        }
       (*info->fprintf_func) (info->stream, ">");
          objdump_print_value (vma - bfd_asymbol_value (sym), info, true);
        }
       (*info->fprintf_func) (info->stream, ">");
-      
-      /* Notify the disassembler of the symbol being used:  */
-      disasm_symaddr (sym, info);
     }
 }
 
     }
 }
 
@@ -1232,7 +1230,8 @@ disassemble_bytes (info, disassemble_fn, insns, data, start, stop, relppp,
        {
          char buf[1000];
          SFILE sfile;
        {
          char buf[1000];
          SFILE sfile;
-         int bpc, pb = 0;
+         int bpc = 0;
+         int pb = 0;
 
          done_dot = false;
 
 
          done_dot = false;
 
@@ -1265,6 +1264,11 @@ disassemble_bytes (info, disassemble_fn, insns, data, start, stop, relppp,
              info->stream = (FILE *) &sfile;
              info->bytes_per_line = 0;
              info->bytes_per_chunk = 0;
              info->stream = (FILE *) &sfile;
              info->bytes_per_line = 0;
              info->bytes_per_chunk = 0;
+             if ((*relppp < relppend) && ((**relppp)->address >= (bfd_vma) i &&
+                                      (**relppp)->address < (bfd_vma) i + bytes))
+               info->flags = INSN_HAS_RELOC;
+             else
+               info->flags = 0;
              bytes = (*disassemble_fn) (section->vma + i, info);
              info->fprintf_func = (fprintf_ftype) fprintf;
              info->stream = stdout;
              bytes = (*disassemble_fn) (section->vma + i, info);
              info->fprintf_func = (fprintf_ftype) fprintf;
              info->stream = stdout;
@@ -1489,7 +1493,7 @@ disassemble_data (abfd)
       const bfd_arch_info_type *info = bfd_scan_arch (machine);
       if (info == NULL)
        {
       const bfd_arch_info_type *info = bfd_scan_arch (machine);
       if (info == NULL)
        {
-         fprintf (stderr, "%s: Can't use supplied machine %s\n",
+         fprintf (stderr, _("%s: Can't use supplied machine %s\n"),
                   program_name,
                   machine);
          exit (1);
                   program_name,
                   machine);
          exit (1);
@@ -1510,7 +1514,7 @@ disassemble_data (abfd)
   disassemble_fn = disassembler (abfd);
   if (!disassemble_fn)
     {
   disassemble_fn = disassembler (abfd);
   if (!disassemble_fn)
     {
-      fprintf (stderr, "%s: Can't disassemble for architecture %s\n",
+      fprintf (stderr, _("%s: Can't disassemble for architecture %s\n"),
               program_name,
               bfd_printable_arch_mach (bfd_get_arch (abfd), 0));
       return;
               program_name,
               bfd_printable_arch_mach (bfd_get_arch (abfd), 0));
       return;
@@ -1575,7 +1579,7 @@ disassemble_data (abfd)
            }
        }
 
            }
        }
 
-      printf ("Disassembly of section %s:\n", section->name);
+      printf (_("Disassembly of section %s:\n"), section->name);
 
       datasize = bfd_get_section_size_before_reloc (section);
       if (datasize == 0)
 
       datasize = bfd_get_section_size_before_reloc (section);
       if (datasize == 0)
@@ -1608,7 +1612,7 @@ disassemble_data (abfd)
 
       sym = find_symbol_for_address (abfd, section, section->vma + i,
                                     true, &place);
 
       sym = find_symbol_for_address (abfd, section, section->vma + i,
                                     true, &place);
-      ++place;
+
       while (i < stop)
        {
          asymbol *nextsym;
       while (i < stop)
        {
          asymbol *nextsym;
@@ -1616,10 +1620,20 @@ disassemble_data (abfd)
          boolean insns;
          
          if (sym != NULL && bfd_asymbol_value (sym) <= section->vma + i)
          boolean insns;
          
          if (sym != NULL && bfd_asymbol_value (sym) <= section->vma + i)
-           disasm_info.symbol = sym;
+           {
+             int x;
+
+             for (x = place;
+                  (x < sorted_symcount
+                   && bfd_asymbol_value (sorted_syms[x]) <= section->vma + i);
+                  ++x)
+               continue;
+             disasm_info.symbols = & sorted_syms[place];
+             disasm_info.num_symbols = x - place;
+           }
          else
          else
-           disasm_info.symbol = NULL;
-         
+           disasm_info.symbols = NULL;
+
          if (! prefix_addresses)
            {
              printf ("\n");
          if (! prefix_addresses)
            {
              printf ("\n");
@@ -1637,6 +1651,7 @@ disassemble_data (abfd)
          else
            {
              while (place < sorted_symcount
          else
            {
              while (place < sorted_symcount
+                    /* ??? Why the test for != section?  */
                     && (sorted_syms[place]->section != section
                         || (bfd_asymbol_value (sorted_syms[place])
                             <= bfd_asymbol_value (sym))))
                     && (sorted_syms[place]->section != section
                         || (bfd_asymbol_value (sorted_syms[place])
                             <= bfd_asymbol_value (sym))))
@@ -1735,14 +1750,14 @@ read_section_stabs (abfd, stabsect_name, strsect_name)
   stabsect = bfd_get_section_by_name (abfd, stabsect_name);
   if (0 == stabsect)
     {
   stabsect = bfd_get_section_by_name (abfd, stabsect_name);
   if (0 == stabsect)
     {
-      printf ("No %s section present\n\n", stabsect_name);
+      printf (_("No %s section present\n\n"), stabsect_name);
       return false;
     }
 
   stabstrsect = bfd_get_section_by_name (abfd, strsect_name);
   if (0 == stabstrsect)
     {
       return false;
     }
 
   stabstrsect = bfd_get_section_by_name (abfd, strsect_name);
   if (0 == stabstrsect)
     {
-      fprintf (stderr, "%s: %s has no %s section\n", program_name,
+      fprintf (stderr, _("%s: %s has no %s section\n"), program_name,
               bfd_get_filename (abfd), strsect_name);
       return false;
     }
               bfd_get_filename (abfd), strsect_name);
       return false;
     }
@@ -1755,7 +1770,7 @@ read_section_stabs (abfd, stabsect_name, strsect_name)
   
   if (! bfd_get_section_contents (abfd, stabsect, (PTR) stabs, 0, stab_size))
     {
   
   if (! bfd_get_section_contents (abfd, stabsect, (PTR) stabs, 0, stab_size))
     {
-      fprintf (stderr, "%s: Reading %s section of %s failed: %s\n",
+      fprintf (stderr, _("%s: Reading %s section of %s failed: %s\n"),
               program_name, stabsect_name, bfd_get_filename (abfd),
               bfd_errmsg (bfd_get_error ()));
       free (stabs);
               program_name, stabsect_name, bfd_get_filename (abfd),
               bfd_errmsg (bfd_get_error ()));
       free (stabs);
@@ -1766,7 +1781,7 @@ read_section_stabs (abfd, stabsect_name, strsect_name)
   if (! bfd_get_section_contents (abfd, stabstrsect, (PTR) strtab, 0,
                                  stabstr_size))
     {
   if (! bfd_get_section_contents (abfd, stabstrsect, (PTR) strtab, 0,
                                  stabstr_size))
     {
-      fprintf (stderr, "%s: Reading %s section of %s failed: %s\n",
+      fprintf (stderr, _("%s: Reading %s section of %s failed: %s\n"),
               program_name, strsect_name, bfd_get_filename (abfd),
               bfd_errmsg (bfd_get_error ()));
       free (stabs);
               program_name, strsect_name, bfd_get_filename (abfd),
               bfd_errmsg (bfd_get_error ()));
       free (stabs);
@@ -1808,7 +1823,7 @@ print_section_stabs (abfd, stabsect_name, strsect_name)
   stabp = stabs;
   stabs_end = stabp + stab_size;
 
   stabp = stabs;
   stabs_end = stabp + stab_size;
 
-  printf ("Contents of %s section:\n\n", stabsect_name);
+  printf (_("Contents of %s section:\n\n"), stabsect_name);
   printf ("Symnum n_type n_othr n_desc n_value  n_strx String\n");
 
   /* Loop through all symbols and print them.
   printf ("Symnum n_type n_othr n_desc n_value  n_strx String\n");
 
   /* Loop through all symbols and print them.
@@ -1885,11 +1900,12 @@ dump_section_stabs (abfd, stabsect_name, strsect_name)
 
       len = strlen (stabsect_name);
 
 
       len = strlen (stabsect_name);
 
-/* If the prefix matches, and the files section name ends with a nul or a digit,
-   then we match.  Ie: we want either an exact match or a a section followed by 
-   a number.  */
+      /* If the prefix matches, and the files section name ends with a
+        nul or a digit, then we match.  I.e., we want either an exact
+        match or a section followed by a number.  */
       if (strncmp (stabsect_name, s->name, len) == 0
       if (strncmp (stabsect_name, s->name, len) == 0
-         && (s->name[len] == '\000' || isdigit (s->name[len])))
+         && (s->name[len] == '\000'
+             || isdigit ((unsigned char) s->name[len])))
        {
          if (read_section_stabs (abfd, s->name, strsect_name))
            {
        {
          if (read_section_stabs (abfd, s->name, strsect_name))
            {
@@ -1907,10 +1923,10 @@ dump_bfd_header (abfd)
 {
   char *comma = "";
 
 {
   char *comma = "";
 
-  printf ("architecture: %s, ",
+  printf (_("architecture: %s, "),
          bfd_printable_arch_mach (bfd_get_arch (abfd),
                                   bfd_get_mach (abfd)));
          bfd_printable_arch_mach (bfd_get_arch (abfd),
                                   bfd_get_mach (abfd)));
-  printf ("flags 0x%08x:\n", abfd->flags);
+  printf (_("flags 0x%08x:\n"), abfd->flags);
 
 #define PF(x, y)    if (abfd->flags & x) {printf("%s%s", comma, y); comma=", ";}
   PF (HAS_RELOC, "HAS_RELOC");
 
 #define PF(x, y)    if (abfd->flags & x) {printf("%s%s", comma, y); comma=", ";}
   PF (HAS_RELOC, "HAS_RELOC");
@@ -1923,7 +1939,7 @@ dump_bfd_header (abfd)
   PF (WP_TEXT, "WP_TEXT");
   PF (D_PAGED, "D_PAGED");
   PF (BFD_IS_RELAXABLE, "BFD_IS_RELAXABLE");
   PF (WP_TEXT, "WP_TEXT");
   PF (D_PAGED, "D_PAGED");
   PF (BFD_IS_RELAXABLE, "BFD_IS_RELAXABLE");
-  printf ("\nstart address 0x");
+  printf (_("\nstart address 0x"));
   printf_vma (abfd->start_address);
   printf ("\n");
 }
   printf_vma (abfd->start_address);
   printf ("\n");
 }
@@ -1966,7 +1982,7 @@ display_bfd (abfd)
        }
     }
 
        }
     }
 
-  printf ("\n%s:     file format %s\n", bfd_get_filename (abfd),
+  printf (_("\n%s:     file format %s\n"), bfd_get_filename (abfd),
          abfd->xvec->name);
   if (dump_ar_hdrs)
     print_arelt_descr (stdout, abfd, true);
          abfd->xvec->name);
   if (dump_ar_hdrs)
     print_arelt_descr (stdout, abfd, true);
@@ -2007,7 +2023,7 @@ display_bfd (abfd)
       if (dhandle != NULL)
        {
          if (! print_debugging_info (stdout, dhandle))
       if (dhandle != NULL)
        {
          if (! print_debugging_info (stdout, dhandle))
-           fprintf (stderr, "%s: printing debugging information failed\n",
+           fprintf (stderr, _("%s: printing debugging information failed\n"),
                     bfd_get_filename (abfd));
        }
     }
                     bfd_get_filename (abfd));
        }
     }
@@ -2041,7 +2057,7 @@ display_file (filename, target)
     {
       bfd *last_arfile = NULL;
 
     {
       bfd *last_arfile = NULL;
 
-      printf ("In archive %s:\n", bfd_get_filename (file));
+      printf (_("In archive %s:\n"), bfd_get_filename (file));
       for (;;)
        {
          bfd_set_error (bfd_error_no_error);
       for (;;)
        {
          bfd_set_error (bfd_error_no_error);
@@ -2094,7 +2110,7 @@ dump_data (abfd)
        {
          if (section->flags & SEC_HAS_CONTENTS)
            {
        {
          if (section->flags & SEC_HAS_CONTENTS)
            {
-             printf ("Contents of section %s:\n", section->name);
+             printf (_("Contents of section %s:\n"), section->name);
 
              if (bfd_section_size (abfd, section) == 0)
                continue;
 
              if (bfd_section_size (abfd, section) == 0)
                continue;
@@ -2597,7 +2613,7 @@ display_target_tables ()
 static void
 display_info ()
 {
 static void
 display_info ()
 {
-  printf ("BFD header file version %s\n", BFD_VERSION);
+  printf (_("BFD header file version %s\n"), BFD_VERSION);
   display_target_list ();
   display_target_tables ();
 }
   display_target_list ();
   display_target_tables ();
 }
@@ -2716,7 +2732,7 @@ main (argc, argv)
            endian = BFD_ENDIAN_LITTLE;
          else
            {
            endian = BFD_ENDIAN_LITTLE;
          else
            {
-             fprintf (stderr, "%s: unrecognized -E option\n", program_name);
+             fprintf (stderr, _("%s: unrecognized -E option\n"), program_name);
              usage (stderr, 1);
            }
          break;
              usage (stderr, 1);
            }
          break;
@@ -2727,7 +2743,7 @@ main (argc, argv)
            endian = BFD_ENDIAN_LITTLE;
          else
            {
            endian = BFD_ENDIAN_LITTLE;
          else
            {
-             fprintf (stderr, "%s: unrecognized --endian type `%s'\n",
+             fprintf (stderr, _("%s: unrecognized --endian type `%s'\n"),
                      program_name, optarg);
              usage (stderr, 1);
            }
                      program_name, optarg);
              usage (stderr, 1);
            }
diff --git a/binutils/po/Make-in b/binutils/po/Make-in
new file mode 100644 (file)
index 0000000..82d3590
--- /dev/null
@@ -0,0 +1,250 @@
+# Makefile for program source directory in GNU NLS utilities package.
+# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
+#
+# This file file be copied and used freely without restrictions.  It can
+# be used in projects which are not available under the GNU Public License
+# but which still want to provide support for the GNU gettext functionality.
+# Please note that the actual code is *not* freely available.
+
+PACKAGE = @PACKAGE@
+VERSION = @VERSION@
+
+SHELL = /bin/sh
+@SET_MAKE@
+
+srcdir = @srcdir@
+top_srcdir = @top_srcdir@
+VPATH = @srcdir@
+
+prefix = @prefix@
+exec_prefix = @exec_prefix@
+datadir = $(prefix)/@DATADIRNAME@
+localedir = $(datadir)/locale
+gnulocaledir = $(prefix)/share/locale
+gettextsrcdir = $(prefix)/share/gettext/po
+subdir = po
+
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+MKINSTALLDIRS = $(top_srcdir)/@MKINSTALLDIRS@
+
+CC = @CC@
+GENCAT = @GENCAT@
+GMSGFMT = PATH=../src:$$PATH @GMSGFMT@
+MSGFMT = @MSGFMT@
+XGETTEXT = PATH=../src:$$PATH @XGETTEXT@
+MSGMERGE = PATH=../src:$$PATH msgmerge
+
+DEFS = @DEFS@
+CFLAGS = @CFLAGS@
+CPPFLAGS = @CPPFLAGS@
+
+INCLUDES = -I.. -I$(top_srcdir)/intl
+
+COMPILE = $(CC) -c $(DEFS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $(XCFLAGS)
+
+SOURCES = cat-id-tbl.c
+POFILES = @POFILES@
+GMOFILES = @GMOFILES@
+DISTFILES = ChangeLog Makefile.in.in POTFILES.in $(PACKAGE).pot \
+stamp-cat-id $(POFILES) $(GMOFILES) $(SOURCES)
+
+POTFILES = \
+
+CATALOGS = @CATALOGS@
+CATOBJEXT = @CATOBJEXT@
+INSTOBJEXT = @INSTOBJEXT@
+
+.SUFFIXES:
+.SUFFIXES: .c .o .po .pox .gmo .mo .msg .cat
+
+.c.o:
+       $(COMPILE) $<
+
+.po.pox:
+       $(MAKE) $(PACKAGE).pot
+       $(MSGMERGE) $< $(srcdir)/$(PACKAGE).pot -o $*.pox
+
+.po.mo:
+       $(MSGFMT) -o $@ $<
+
+.po.gmo:
+       file=$(srcdir)/`echo $* | sed 's,.*/,,'`.gmo \
+         && rm -f $$file && $(GMSGFMT) -o $$file $<
+
+.po.cat:
+       sed -f ../intl/po2msg.sed < $< > $*.msg \
+         && rm -f $@ && $(GENCAT) $@ $*.msg
+
+
+all: all-@USE_NLS@
+
+all-yes: $(CATALOGS)
+all-no:
+
+$(srcdir)/$(PACKAGE).pot: @MAINT@ $(POTFILES)
+       $(XGETTEXT) --default-domain=$(PACKAGE) --directory=$(top_srcdir) \
+         --add-comments --keyword=_ --keyword=N_ \
+         --files-from=$(srcdir)/POTFILES.in
+       rm -f $(srcdir)/$(PACKAGE).pot
+       mv $(PACKAGE).po $(srcdir)/$(PACKAGE).pot
+
+$(srcdir)/cat-id-tbl.c: stamp-cat-id; @:
+$(srcdir)/stamp-cat-id: $(PACKAGE).pot
+       rm -f cat-id-tbl.tmp
+       sed -f ../intl/po2tbl.sed $(srcdir)/$(PACKAGE).pot \
+               | sed -e "s/@PACKAGE NAME@/$(PACKAGE)/" > cat-id-tbl.tmp
+       if cmp -s cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; then \
+         rm cat-id-tbl.tmp; \
+       else \
+         echo cat-id-tbl.c changed; \
+         rm -f $(srcdir)/cat-id-tbl.c; \
+         mv cat-id-tbl.tmp $(srcdir)/cat-id-tbl.c; \
+       fi
+       cd $(srcdir) && rm -f stamp-cat-id && echo timestamp > stamp-cat-id
+
+
+install: install-exec install-data
+install-exec:
+install-data: install-data-@USE_NLS@
+install-data-no: all
+install-data-yes: all
+       if test -r $(MKINSTALLDIRS); then \
+         $(MKINSTALLDIRS) $(datadir); \
+       else \
+         $(top_srcdir)/mkinstalldirs $(datadir); \
+       fi
+       @catalogs='$(CATALOGS)'; \
+       for cat in $$catalogs; do \
+         cat=`basename $$cat`; \
+         case "$$cat" in \
+           *.gmo) destdir=$(gnulocaledir);; \
+           *)     destdir=$(localedir);; \
+         esac; \
+         lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
+         dir=$$destdir/$$lang/LC_MESSAGES; \
+         if test -r $(MKINSTALLDIRS); then \
+           $(MKINSTALLDIRS) $$dir; \
+         else \
+           $(top_srcdir)/mkinstalldirs $$dir; \
+         fi; \
+         if test -r $$cat; then \
+           $(INSTALL_DATA) $$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \
+           echo "installing $$cat as $$dir/$(PACKAGE)$(INSTOBJEXT)"; \
+         else \
+           $(INSTALL_DATA) $(srcdir)/$$cat $$dir/$(PACKAGE)$(INSTOBJEXT); \
+           echo "installing $(srcdir)/$$cat as" \
+                "$$dir/$(PACKAGE)$(INSTOBJEXT)"; \
+         fi; \
+         if test -r $$cat.m; then \
+           $(INSTALL_DATA) $$cat.m $$dir/$(PACKAGE)$(INSTOBJEXT).m; \
+           echo "installing $$cat.m as $$dir/$(PACKAGE)$(INSTOBJEXT).m"; \
+         else \
+           if test -r $(srcdir)/$$cat.m ; then \
+             $(INSTALL_DATA) $(srcdir)/$$cat.m \
+               $$dir/$(PACKAGE)$(INSTOBJEXT).m; \
+             echo "installing $(srcdir)/$$cat as" \
+                  "$$dir/$(PACKAGE)$(INSTOBJEXT).m"; \
+           else \
+             true; \
+           fi; \
+         fi; \
+       done
+       if test "$(PACKAGE)" = "gettext"; then \
+         if test -r $(MKINSTALLDIRS); then \
+           $(MKINSTALLDIRS) $(gettextsrcdir); \
+         else \
+           $(top_srcdir)/mkinstalldirs $(gettextsrcdir); \
+         fi; \
+         $(INSTALL_DATA) $(srcdir)/Makefile.in.in \
+                         $(gettextsrcdir)/Makefile.in.in; \
+       else \
+         : ; \
+       fi
+
+# Define this as empty until I found a useful application.
+installcheck:
+
+uninstall:
+       catalogs='$(CATALOGS)'; \
+       for cat in $$catalogs; do \
+         cat=`basename $$cat`; \
+         lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
+         rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
+         rm -f $(localedir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
+         rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT); \
+         rm -f $(gnulocaledir)/$$lang/LC_MESSAGES/$(PACKAGE)$(INSTOBJEXT).m; \
+       done
+       rm -f $(gettextsrcdir)/po-Makefile.in.in
+
+check: all
+
+cat-id-tbl.o: ../intl/libgettext.h
+
+dvi info tags TAGS ID:
+
+mostlyclean:
+       rm -f core core.* *.pox $(PACKAGE).po *.old.po cat-id-tbl.tmp
+       rm -fr *.o
+
+clean: mostlyclean
+
+distclean: clean
+       rm -f Makefile Makefile.in POTFILES *.mo *.msg *.cat *.cat.m
+
+maintainer-clean: distclean
+       @echo "This command is intended for maintainers to use;"
+       @echo "it deletes files that may require special tools to rebuild."
+       rm -f $(GMOFILES)
+
+distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
+dist distdir: update-po $(DISTFILES)
+       dists="$(DISTFILES)"; \
+       for file in $$dists; do \
+         ln $(srcdir)/$$file $(distdir) 2> /dev/null \
+           || cp -p $(srcdir)/$$file $(distdir); \
+       done
+
+update-po: Makefile
+       $(MAKE) $(PACKAGE).pot
+       PATH=`pwd`/../src:$$PATH; \
+       cd $(srcdir); \
+       catalogs='$(CATALOGS)'; \
+       for cat in $$catalogs; do \
+         cat=`basename $$cat`; \
+         lang=`echo $$cat | sed 's/\$(CATOBJEXT)$$//'`; \
+         mv $$lang.po $$lang.old.po; \
+         echo "$$lang:"; \
+         if $(MSGMERGE) $$lang.old.po $(PACKAGE).pot -o $$lang.po; then \
+           rm -f $$lang.old.po; \
+         else \
+           echo "msgmerge for $$cat failed!"; \
+           rm -f $$lang.po; \
+           mv $$lang.old.po $$lang.po; \
+         fi; \
+       done
+
+POTFILES: POTFILES.in
+       ( if test 'x$(srcdir)' != 'x.'; then \
+           posrcprefix='$(top_srcdir)/'; \
+         else \
+           posrcprefix="../"; \
+         fi; \
+         rm -f $@-t $@ \
+           && (sed -e '/^#/d' -e '/^[  ]*$$/d' \
+                   -e "s@.*@   $$posrcprefix& \\\\@" < $(srcdir)/$@.in \
+               | sed -e '$$s/\\$$//') > $@-t \
+           && chmod a-w $@-t \
+           && mv $@-t $@ )
+
+POTFILES.in: @MAINT@ ../Makefile
+       cd .. && $(MAKE) po/POTFILES.in
+
+Makefile: Make-in ../config.status POTFILES
+       cd .. \
+         && CONFIG_FILES=$(subdir)/Makefile.in:$(subdir)/Make-in \
+            CONFIG_HEADERS= $(SHELL) ./config.status
+
+# Tell versions [3.59,3.63) of GNU make not to export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/binutils/po/POTFILES.in b/binutils/po/POTFILES.in
new file mode 100644 (file)
index 0000000..04fddb2
--- /dev/null
@@ -0,0 +1,47 @@
+addr2line.c
+ar.c
+arsup.c
+arsup.h
+bucomm.c
+bucomm.h
+budbg.h
+coffdump.c
+coffgrok.c
+coffgrok.h
+debug.c
+debug.c
+debug.h
+dlltool.c
+dlltool.h
+filemode.c
+ieee.c
+ieee.c
+is-ranlib.c
+is-strip.c
+maybe-ranlib.c
+maybe-strip.c
+nlmconv.c
+nlmconv.h
+nm.c
+not-ranlib.c
+not-strip.c
+objcopy.c
+objdump.c
+prdbg.c
+rdcoff.c
+rdcoff.c
+rddbg.c
+rddbg.c
+resbin.c
+rescoff.c
+resrc.c
+size.c
+srconv.c
+stabs.c
+stabs.c
+strings.c
+sysdump.c
+version.c
+windres.c
+windres.h
+wrstabs.c
index 175e3ff4054d4982ebbaee56348e9093f27d64b3..4ed355558798dcdfc412dab9cf0af8977202467e 100644 (file)
@@ -1,5 +1,5 @@
 /* size.c -- report size of various sections of an executable file.
 /* size.c -- report size of various sections of an executable file.
-   Copyright 1991, 92, 93, 94 Free Software Foundation, Inc.
+   Copyright 1991, 92, 93, 94, 95, 96, 97, 1998 Free Software Foundation, Inc.
 
 This file is part of GNU Binutils.
 
 
 This file is part of GNU Binutils.
 
@@ -15,7 +15,7 @@ GNU General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
-Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
 \f
 /* Extensions/incompatibilities:
    o - BSD output has filenames at the end.
 \f
 /* Extensions/incompatibilities:
    o - BSD output has filenames at the end.
@@ -29,9 +29,9 @@ Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 */
 
 #include "bfd.h"
 */
 
 #include "bfd.h"
-#include "sysdep.h"
 #include "getopt.h"
 #include "bucomm.h"
 #include "getopt.h"
 #include "bucomm.h"
+#include "libiberty.h"
 
 #ifndef BSD_DEFAULT
 #define BSD_DEFAULT 1
 
 #ifndef BSD_DEFAULT
 #define BSD_DEFAULT 1
@@ -50,31 +50,42 @@ int show_help = 0;
 /* Program exit status.  */
 int return_code = 0;
 
 /* Program exit status.  */
 int return_code = 0;
 
-/* IMPORTS */
-extern char *program_version;
-extern char *target;
+static char *target = NULL;
 
 
-/* Forward declarations */
+/* Static declarations */
 
 
+static void usage PARAMS ((FILE *, int));
 static void display_file PARAMS ((char *filename));
 static void display_file PARAMS ((char *filename));
-
+static void display_bfd PARAMS ((bfd *));
+static void display_archive PARAMS ((bfd *));
+static int size_number PARAMS ((bfd_size_type));
+#if 0
+static void lprint_number PARAMS ((int, bfd_size_type));
+#endif
+static void rprint_number PARAMS ((int, bfd_size_type));
+static void print_berkeley_format PARAMS ((bfd *));
+static void sysv_internal_sizer PARAMS ((bfd *, asection *, PTR));
+static void sysv_internal_printer PARAMS ((bfd *, asection *, PTR));
+static void print_sysv_format PARAMS ((bfd *));
 static void print_sizes PARAMS ((bfd * file));
 static void print_sizes PARAMS ((bfd * file));
-
 static void berkeley_sum PARAMS ((bfd *, sec_ptr, PTR));
 \f
 static void berkeley_sum PARAMS ((bfd *, sec_ptr, PTR));
 \f
-void
+static void
 usage (stream, status)
      FILE *stream;
      int status;
 {
 usage (stream, status)
      FILE *stream;
      int status;
 {
-  fprintf (stream, "\
+  fprintf (stream, _("\
 Usage: %s [-ABdoxV] [--format=berkeley|sysv] [--radix=8|10|16]\n\
 Usage: %s [-ABdoxV] [--format=berkeley|sysv] [--radix=8|10|16]\n\
-       [--target=bfdname] [--version] [--help] [file...]\n", program_name);
+       [--target=bfdname] [--version] [--help] [file...]\n"), program_name);
 #if BSD_DEFAULT
 #if BSD_DEFAULT
-  fputs ("default is --format=berkeley\n", stream);
+  fputs (_("default is --format=berkeley\n"), stream);
 #else
 #else
-  fputs ("default is --format=sysv\n", stream);
+  fputs (_("default is --format=sysv\n"), stream);
 #endif
 #endif
+  list_supported_targets (program_name, stream);
+  if (status == 0)
+    fprintf (stream, _("Report bugs to bug-gnu-utils@gnu.org\n"));
   exit (status);
 }
 
   exit (status);
 }
 
@@ -97,8 +108,10 @@ main (argc, argv)
   int c;
 
   program_name = *argv;
   int c;
 
   program_name = *argv;
+  xmalloc_set_program_name (program_name);
 
   bfd_init ();
 
   bfd_init ();
+  set_default_bfd_target ();
 
   while ((c = getopt_long (argc, argv, "ABVdox", long_options,
                           (int *) 0)) != EOF)
 
   while ((c = getopt_long (argc, argv, "ABVdox", long_options,
                           (int *) 0)) != EOF)
@@ -116,7 +129,7 @@ main (argc, argv)
            berkeley_format = 0;
            break;
          default:
            berkeley_format = 0;
            break;
          default:
-           fprintf (stderr, "invalid argument to --format: %s\n", optarg);
+           fprintf (stderr, _("invalid argument to --format: %s\n"), optarg);
            usage (stderr, 1);
          }
        break;
            usage (stderr, 1);
          }
        break;
@@ -143,7 +156,7 @@ main (argc, argv)
            radix = hex;
            break;
          default:
            radix = hex;
            break;
          default:
-           printf ("Invalid radix: %s\n", optarg);
+           printf (_("Invalid radix: %s\n"), optarg);
            usage (stderr, 1);
          }
        break;
            usage (stderr, 1);
          }
        break;
@@ -173,10 +186,7 @@ main (argc, argv)
       }
 
   if (show_version)
       }
 
   if (show_version)
-    {
-      printf ("GNU %s version %s\n", program_name, program_version);
-      exit (0);
-    }
+    print_version ("size");
   if (show_help)
     usage (stdout, 0);
 
   if (show_help)
     usage (stdout, 0);
 
@@ -191,7 +201,7 @@ main (argc, argv)
 \f
 /* Display stats on file or archive member ABFD.  */
 
 \f
 /* Display stats on file or archive member ABFD.  */
 
-void
+static void
 display_bfd (abfd)
      bfd *abfd;
 {
 display_bfd (abfd)
      bfd *abfd;
 {
@@ -208,7 +218,7 @@ display_bfd (abfd)
       return;
     }
 
       return;
     }
 
-  if (bfd_error == file_ambiguously_recognized)
+  if (bfd_get_error () == bfd_error_file_ambiguously_recognized)
     {
       bfd_nonfatal (bfd_get_filename (abfd));
       list_matching_formats (matching);
     {
       bfd_nonfatal (bfd_get_filename (abfd));
       list_matching_formats (matching);
@@ -234,7 +244,7 @@ display_bfd (abfd)
 
   bfd_nonfatal (bfd_get_filename (abfd));
 
 
   bfd_nonfatal (bfd_get_filename (abfd));
 
-  if (bfd_error == file_ambiguously_recognized)
+  if (bfd_get_error () == bfd_error_file_ambiguously_recognized)
     {
       list_matching_formats (matching);
       free (matching);
     {
       list_matching_formats (matching);
       free (matching);
@@ -251,12 +261,12 @@ display_archive (file)
 
   for (;;)
     {
 
   for (;;)
     {
-      bfd_error = no_error;
+      bfd_set_error (bfd_error_no_error);
 
       arfile = bfd_openr_next_archived_file (file, arfile);
       if (arfile == NULL)
        {
 
       arfile = bfd_openr_next_archived_file (file, arfile);
       if (arfile == NULL)
        {
-         if (bfd_error != no_more_archived_files)
+         if (bfd_get_error () != bfd_error_no_more_archived_files)
            {
              bfd_nonfatal (bfd_get_filename (file));
              return_code = 2;
            {
              bfd_nonfatal (bfd_get_filename (file));
              return_code = 2;
@@ -296,24 +306,51 @@ display_file (filename)
 \f
 /* This is what lexical functions are for.  */
 
 \f
 /* This is what lexical functions are for.  */
 
-void
+static int
+size_number (num)
+     bfd_size_type num;
+{
+  char buffer[40];
+  sprintf (buffer,
+          (radix == decimal ? "%lu" :
+          ((radix == octal) ? "0%lo" : "0x%lx")),
+          (unsigned long) num);
+
+  return strlen (buffer);
+}
+
+#if 0
+
+/* This is not used.  */
+
+static void
 lprint_number (width, num)
      int width;
      bfd_size_type num;
 {
 lprint_number (width, num)
      int width;
      bfd_size_type num;
 {
-  printf ((radix == decimal ? "%-*lu\t" :
-          ((radix == octal) ? "%-*lo\t" : "%-*lx\t")),
-         width, (unsigned long) num);
+  char buffer[40];
+  sprintf (buffer,
+          (radix == decimal ? "%lu" :
+          ((radix == octal) ? "0%lo" : "0x%lx")),
+          (unsigned long) num);
+
+  printf ("%-*s", width, buffer);
 }
 
 }
 
-void
+#endif
+
+static void
 rprint_number (width, num)
      int width;
      bfd_size_type num;
 {
 rprint_number (width, num)
      int width;
      bfd_size_type num;
 {
-  printf ((radix == decimal ? "%*lu\t" :
-          ((radix == octal) ? "%*lo\t" : "%*lx\t")),
-         width, (unsigned long) num);
+  char buffer[40];
+  sprintf (buffer,
+          (radix == decimal ? "%lu" :
+          ((radix == octal) ? "0%lo" : "0x%lx")),
+          (unsigned long) num);
+
+  printf ("%*s", width, buffer);
 }
 
 static bfd_size_type bsssize;
 }
 
 static bfd_size_type bsssize;
@@ -326,18 +363,23 @@ berkeley_sum (abfd, sec, ignore)
      sec_ptr sec;
      PTR ignore;
 {
      sec_ptr sec;
      PTR ignore;
 {
+  flagword flags;
   bfd_size_type size;
 
   bfd_size_type size;
 
+  flags = bfd_get_section_flags (abfd, sec);
+  if ((flags & SEC_ALLOC) == 0)
+    return;
+
   size = bfd_get_section_size_before_reloc (sec);
   size = bfd_get_section_size_before_reloc (sec);
-  if (bfd_get_section_flags (abfd, sec) & SEC_CODE)
+  if ((flags & SEC_CODE) != 0 || (flags & SEC_READONLY) != 0)
     textsize += size;
     textsize += size;
-  else if (bfd_get_section_flags (abfd, sec) & SEC_DATA)
+  else if ((flags & SEC_HAS_CONTENTS) != 0)
     datasize += size;
     datasize += size;
-  else if (bfd_get_section_flags (abfd, sec) & SEC_ALLOC)
+  else
     bsssize += size;
 }
 
     bsssize += size;
 }
 
-void 
+static void 
 print_berkeley_format (abfd)
      bfd *abfd;
 {
 print_berkeley_format (abfd)
      bfd *abfd;
 {
@@ -353,19 +395,21 @@ print_berkeley_format (abfd)
   if (files_seen++ == 0)
 #if 0
     /* Intel doesn't like bss/stk because they don't have core files.  */
   if (files_seen++ == 0)
 #if 0
     /* Intel doesn't like bss/stk because they don't have core files.  */
-    puts ((radix == octal) ? "text\tdata\tbss/stk\toct\thex\tfilename" :
-         "text\tdata\tbss/stk\tdec\thex\tfilename");
+    puts ((radix == octal) ? "   text\t   data\tbss/stk\t    oct\t    hex\tfilename" :
+         "   text\t   data\tbss/stk\t    dec\t    hex\tfilename");
 #else
 #else
-    puts ((radix == octal) ? "text\tdata\tbss\toct\thex\tfilename" :
-         "text\tdata\tbss\tdec\thex\tfilename");
+    puts ((radix == octal) ? "   text\t   data\t    bss\t    oct\t    hex\tfilename" :
+         "   text\t   data\t    bss\t    dec\t    hex\tfilename");
 #endif
 
   total = textsize + datasize + bsssize;
 
 #endif
 
   total = textsize + datasize + bsssize;
 
-  lprint_number (7, textsize);
-  lprint_number (7, datasize);
-  lprint_number (7, bsssize);
-  printf (((radix == octal) ? "%-7lo\t%-7lx\t" : "%-7lu\t%-7lx\t"),
+  rprint_number (7, textsize);
+  putchar ('\t');
+  rprint_number (7, datasize);
+  putchar ('\t');
+  rprint_number (7, bsssize);
+  printf (((radix == octal) ? "\t%7lo\t%7lx\t" : "\t%7lu\t%7lx\t"),
          (unsigned long) total, (unsigned long) total);
 
   fputs (bfd_get_filename (abfd), stdout);
          (unsigned long) total, (unsigned long) total);
 
   fputs (bfd_get_filename (abfd), stdout);
@@ -375,43 +419,81 @@ print_berkeley_format (abfd)
 
 /* I REALLY miss lexical functions! */
 bfd_size_type svi_total = 0;
 
 /* I REALLY miss lexical functions! */
 bfd_size_type svi_total = 0;
+bfd_vma svi_maxvma = 0;
+int svi_namelen = 0;
+int svi_vmalen = 0;
+int svi_sizelen = 0;
 
 
-void
+static void
+sysv_internal_sizer (file, sec, ignore)
+     bfd *file;
+     sec_ptr sec;
+     PTR ignore;
+{
+  bfd_size_type size = bfd_section_size (file, sec);
+  if (!bfd_is_abs_section (sec)
+      && !bfd_is_com_section (sec)
+      && !bfd_is_und_section (sec))
+    {
+      int namelen = strlen (bfd_section_name (file, sec));
+      if (namelen > svi_namelen)
+       svi_namelen = namelen;
+
+      svi_total += size;
+      if (bfd_section_vma (file, sec) > svi_maxvma)
+       svi_maxvma = bfd_section_vma (file, sec);
+    }
+}
+
+static void
 sysv_internal_printer (file, sec, ignore)
      bfd *file;
      sec_ptr sec;
      PTR ignore;
 {
   bfd_size_type size = bfd_section_size (file, sec);
 sysv_internal_printer (file, sec, ignore)
      bfd *file;
      sec_ptr sec;
      PTR ignore;
 {
   bfd_size_type size = bfd_section_size (file, sec);
-  if (sec != &bfd_abs_section
+  if (!bfd_is_abs_section (sec)
       && !bfd_is_com_section (sec)
       && !bfd_is_com_section (sec)
-      && sec != &bfd_und_section)
+      && !bfd_is_und_section (sec))
     {
       svi_total += size;
 
     {
       svi_total += size;
 
-      printf ("%-12s", bfd_section_name (file, sec));
-      rprint_number (8, size);
-      printf (" ");
-      rprint_number (8, bfd_section_vma (file, sec));
+      printf ("%-*s   ", svi_namelen, bfd_section_name (file, sec));
+      rprint_number (svi_sizelen, size);
+      printf ("   ");
+      rprint_number (svi_vmalen, bfd_section_vma (file, sec));
       printf ("\n");
     }
 }
 
       printf ("\n");
     }
 }
 
-void
+static void
 print_sysv_format (file)
      bfd *file;
 {
 print_sysv_format (file)
      bfd *file;
 {
+  /* size all of the columns */
   svi_total = 0;
   svi_total = 0;
+  svi_maxvma = 0;
+  svi_namelen = 0;
+  bfd_map_over_sections (file, sysv_internal_sizer, (PTR) NULL);
+  svi_vmalen = size_number ((bfd_size_type)svi_maxvma);
+  if ((size_t) svi_vmalen < sizeof ("addr") - 1)
+    svi_vmalen = sizeof ("addr")-1;
 
 
+  svi_sizelen = size_number (svi_total);
+  if ((size_t) svi_sizelen < sizeof ("size") - 1)
+    svi_sizelen = sizeof ("size")-1;
+
+  svi_total = 0;
   printf ("%s  ", bfd_get_filename (file));
   if (bfd_my_archive (file))
     printf (" (ex %s)", bfd_get_filename (bfd_my_archive (file)));
 
   printf ("%s  ", bfd_get_filename (file));
   if (bfd_my_archive (file))
     printf (" (ex %s)", bfd_get_filename (bfd_my_archive (file)));
 
-  puts (":\nsection\t\tsize\t     addr");
+  printf (":\n%-*s   %*s   %*s\n", svi_namelen, "section",
+         svi_sizelen, "size", svi_vmalen, "addr");
   bfd_map_over_sections (file, sysv_internal_printer, (PTR) NULL);
 
   bfd_map_over_sections (file, sysv_internal_printer, (PTR) NULL);
 
-  printf ("Total       ");
-  rprint_number (8, svi_total);
+  printf ("%-*s   ", svi_namelen, "Total");
+  rprint_number (svi_sizelen, svi_total);
   printf ("\n\n");
 }
 
   printf ("\n\n");
 }
 
index fca3dfdefdaf66b5225e19837e02ebdac87c662c..098a6d415a9f154b28ecaf0bd76b5400a2f1b3d2 100644 (file)
@@ -1,5 +1,5 @@
 /* srconv.c -- Sysroff conversion program
 /* srconv.c -- Sysroff conversion program
-   Copyright (C) 1994 Free Software Foundation, Inc.
+   Copyright (C) 1994, 95, 96, 1998 Free Software Foundation, Inc.
 
    This file is part of GNU Binutils.
 
 
    This file is part of GNU Binutils.
 
@@ -15,7 +15,8 @@
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
-   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+   02111-1307, USA.  */
 
 /* Written by Steve Chamberlain (sac@cygnus.com)
 
 
 /* Written by Steve Chamberlain (sac@cygnus.com)
 
 #define PROGRAM_VERSION "1.5"
 /*#define FOOP1 1 */
 
 #define PROGRAM_VERSION "1.5"
 /*#define FOOP1 1 */
 
-static int sh;
-static int h8300;
+static int addrsize;
+static char *toolname;
+static char **rnames;
+
 static void wr_cs ();
 static void walk_tree_scope ();
 static void wr_globals ();
 static void wr_cs ();
 static void walk_tree_scope ();
 static void wr_globals ();
@@ -171,12 +174,7 @@ writeINT (n, ptr, idx, size, file)
   int byte = *idx / 8;
 
   if (size == -2)
   int byte = *idx / 8;
 
   if (size == -2)
-    {
-      if (sh)  
-       size = 4;
-      else if (h8300)
-       size = 2;
-    }
+    size = addrsize;
   else if (size == -1)
     size = 0;
 
   else if (size == -1)
     size = 0;
 
@@ -319,14 +317,14 @@ wr_un (ptr, sfile, first, nsecs)
 
   un.spare1 = 0;
 
 
   un.spare1 = 0;
 
-  if (abfd->flags & EXEC_P)
+  if (bfd_get_file_flags (abfd) & EXEC_P)
     un.format = FORMAT_LM;
   else
     un.format = FORMAT_OM;
   un.spare1 = 0;
 
 
     un.format = FORMAT_LM;
   else
     un.format = FORMAT_OM;
   un.spare1 = 0;
 
 
-#if 0
+#if 1
   un.nsections = ptr->nsections - 1;   /*  Don't count the abs section */
 #else
   /*NEW - only count sections with size */
   un.nsections = ptr->nsections - 1;   /*  Don't count the abs section */
 #else
   /*NEW - only count sections with size */
@@ -349,10 +347,7 @@ wr_un (ptr, sfile, first, nsecs)
            un.nextrefs++;
        }
     }
            un.nextrefs++;
        }
     }
-  if (sh)
-    un.tool = "C_SH";
-  else if (h8300)
-    un.tool = "C_H8/300H";
+  un.tool = toolname;
   un.tcd = DATE;
   un.linker = "L_GX00";
   un.lcd = DATE;
   un.tcd = DATE;
   un.linker = "L_GX00";
   un.lcd = DATE;
@@ -368,7 +363,7 @@ wr_hd (p)
   struct IT_hd hd;
 
   hd.spare1 = 0;
   struct IT_hd hd;
 
   hd.spare1 = 0;
-  if (abfd->flags & EXEC_P)
+  if (bfd_get_file_flags (abfd) & EXEC_P)
     {
       hd.mt = MTYPE_ABS_LM;
     }
     {
       hd.mt = MTYPE_ABS_LM;
     }
@@ -381,17 +376,38 @@ wr_hd (p)
   hd.nu = p->nsources;         /* Always one unit */
   hd.code = 0;                 /* Always ASCII */
   hd.ver = "0200";             /* Version 2.00 */
   hd.nu = p->nsources;         /* Always one unit */
   hd.code = 0;                 /* Always ASCII */
   hd.ver = "0200";             /* Version 2.00 */
-  switch (abfd->arch_info->arch)
+  switch (bfd_get_arch (abfd))
     {
     case bfd_arch_h8300:
       hd.au = 8;
       hd.si = 0;
     {
     case bfd_arch_h8300:
       hd.au = 8;
       hd.si = 0;
-      hd.afl = 2;
       hd.spcsz = 32;
       hd.segsz = 0;
       hd.segsh = 0;
       hd.spcsz = 32;
       hd.segsz = 0;
       hd.segsh = 0;
-      hd.cpu = "H8300H";
-      h8300 = 1;
+      switch (bfd_get_mach (abfd))
+       {
+       case bfd_mach_h8300:
+         hd.cpu = "H8300";
+         hd.afl = 2;
+         addrsize = 2;
+         toolname = "C_H8/300";
+         break;
+       case bfd_mach_h8300h:
+         hd.cpu = "H8300H";
+         hd.afl = 4;
+         addrsize = 4;
+         toolname = "C_H8/300H";
+         break;
+       case bfd_mach_h8300s:
+         hd.cpu = "H8300S";
+         hd.afl = 4;
+         addrsize = 4;
+         toolname = "C_H8/300S";
+         break;
+       default:
+         abort();
+       }
+      rnames = rname_h8300;
       break;
     case bfd_arch_sh:
       hd.au = 8;
       break;
     case bfd_arch_sh:
       hd.au = 8;
@@ -401,13 +417,15 @@ wr_hd (p)
       hd.segsz = 0;
       hd.segsh = 0;
       hd.cpu = "SH";
       hd.segsz = 0;
       hd.segsh = 0;
       hd.cpu = "SH";
-      sh = 1;
+      addrsize = 4;
+      toolname = "C_SH";
+      rnames = rname_sh;
       break;
     default:
       abort ();
     }
 
       break;
     default:
       abort ();
     }
 
-  if (!abfd->flags & EXEC_P)
+  if (! bfd_get_file_flags(abfd) & EXEC_P)
     {
       hd.ep = 0;
     }
     {
       hd.ep = 0;
     }
@@ -422,8 +440,7 @@ wr_hd (p)
 
   hd.os = "";
   hd.sys = "";
 
   hd.os = "";
   hd.sys = "";
-  hd.mn = strip_suffix (abfd->filename);
-
+  hd.mn = strip_suffix (bfd_get_filename (abfd));
 
   sysroff_swap_hd_out (file, &hd);
 }
 
   sysroff_swap_hd_out (file, &hd);
 }
@@ -449,7 +466,7 @@ wr_ob (p, section)
      struct coff_ofile *p;
      struct coff_section *section;
 {
      struct coff_ofile *p;
      struct coff_section *section;
 {
-  int i;
+  bfd_size_type i;
   int first = 1;
   unsigned char stuff[200];
 
   int first = 1;
   unsigned char stuff[200];
 
@@ -465,7 +482,7 @@ wr_ob (p, section)
       if (first)
        {
          ob.saf = 1;
       if (first)
        {
          ob.saf = 1;
-         if (abfd->flags & EXEC_P)
+         if (bfd_get_file_flags (abfd) & EXEC_P)
            ob.address = section->address;
          else
            ob.address = 0;
            ob.address = section->address;
          else
            ob.address = 0;
@@ -485,12 +502,12 @@ wr_ob (p, section)
       i += todo;
     }
   /* Now fill the rest with blanks */
       i += todo;
     }
   /* Now fill the rest with blanks */
-  while (i < section->size)
+  while (i < (bfd_size_type) section->size)
     {
       struct IT_ob ob;
       int todo = 200;          /* Copy in 200 byte lumps */
       ob.spare = 0;
     {
       struct IT_ob ob;
       int todo = 200;          /* Copy in 200 byte lumps */
       ob.spare = 0;
-      if (i + todo > section->size)
+      if (i + todo > (bfd_size_type) section->size)
        todo = section->size - i;
       ob.saf = 0;
 
        todo = section->size - i;
       ob.saf = 0;
 
@@ -959,7 +976,7 @@ walk_tree_symbol (sfile, section, symbol, nest)
 {
   struct IT_dsy dsy;
 
 {
   struct IT_dsy dsy;
 
-  dsy.spare2 = 0;
+  memset(&dsy, 0, sizeof(dsy));
   dsy.nesting = nest;
 
   switch (symbol->type->type)
   dsy.nesting = nest;
 
   switch (symbol->type->type)
@@ -1116,12 +1133,7 @@ walk_tree_symbol (sfile, section, symbol, nest)
     }
 
   if (symbol->where->where == coff_where_register)
     }
 
   if (symbol->where->where == coff_where_register)
-    {
-      if (sh)
-       dsy.reg = rname_sh[symbol->where->offset];
-      else if (h8300)
-       dsy.reg = rname_h8300[symbol->where->offset];
-    }
+    dsy.reg = rnames[symbol->where->offset];
 
   switch (symbol->visible->type)
     {
 
   switch (symbol->visible->type)
     {
@@ -1230,9 +1242,10 @@ wr_du (p, sfile, n)
   int j;
   unsigned int *lowest = (unsigned *) nints (p->nsections);
   unsigned int *highest = (unsigned *) nints (p->nsections);
   int j;
   unsigned int *lowest = (unsigned *) nints (p->nsections);
   unsigned int *highest = (unsigned *) nints (p->nsections);
-  du.spare = 0;
-  du.format = abfd->flags & EXEC_P ? 0 : 1;
+  du.format = bfd_get_file_flags (abfd) & EXEC_P ? 0 : 1;
   du.optimized = 0;
   du.optimized = 0;
+  du.stackfrmt = 0;
+  du.spare = 0;
   du.unit = n;
   du.sections = p->nsections - 1;
   du.san = (int *) xcalloc (sizeof (int), du.sections);
   du.unit = n;
   du.sections = p->nsections - 1;
   du.san = (int *) xcalloc (sizeof (int), du.sections);
@@ -1275,7 +1288,7 @@ wr_du (p, sfile, n)
        }
       du.san[used] = i;
       du.length[used] = highest[i] - lowest[i];
        }
       du.san[used] = i;
       du.length[used] = highest[i] - lowest[i];
-      du.address[used] = abfd->flags & EXEC_P ? lowest[i] : 0;
+      du.address[used] = bfd_get_file_flags (abfd) & EXEC_P ? lowest[i] : 0;
       if (debug)
        {
          printf (" section %6s 0x%08x..0x%08x\n",
       if (debug)
        {
          printf (" section %6s 0x%08x..0x%08x\n",
@@ -1664,14 +1677,14 @@ int scount = 0;
        {
          /* Don't have a symbol set aside for this section, which means that nothing
             in this file does anything for the section. */
        {
          /* Don't have a symbol set aside for this section, which means that nothing
             in this file does anything for the section. */
-         sc.format = !(abfd->flags & EXEC_P);
+         sc.format = !(bfd_get_file_flags (abfd) & EXEC_P);
          sc.addr = 0;
          sc.length = 0;
          name = info[i].sec->name;
        }
       else
        {
          sc.addr = 0;
          sc.length = 0;
          name = info[i].sec->name;
        }
       else
        {
-         if (abfd->flags & EXEC_P)
+         if (bfd_get_file_flags (abfd) & EXEC_P)
            {
              sc.format = 0;
              sc.addr = symbol->where->offset;
            {
              sc.format = 0;
              sc.addr = symbol->where->offset;
@@ -1713,11 +1726,15 @@ int scount = 0;
        {
          sc.contents = CONTENTS_CODE;
        }
        {
          sc.contents = CONTENTS_CODE;
        }
+#if 0
       /* NEW */
       if (sc.length) {
       /* NEW */
       if (sc.length) {
+#endif
        sysroff_swap_sc_out (file, &sc);
        scount++;
        sysroff_swap_sc_out (file, &sc);
        scount++;
+#if 0
       }
       }
+#endif
     }
 return scount;
 }
     }
 return scount;
 }
@@ -1869,14 +1886,14 @@ show_usage (file, status)
      FILE *file;
      int status;
 {
      FILE *file;
      int status;
 {
-  fprintf (file, "Usage: %s [-dhVq] in-file [out-file]\n", program_name);
+  fprintf (file, _("Usage: %s [-dhVq] in-file [out-file]\n"), program_name);
   exit (status);
 }
 
 static void
 show_help ()
 {
   exit (status);
 }
 
 static void
 show_help ()
 {
-  printf ("%s: Convert a COFF object file into a SYSROFF object file\n",
+  printf (_("%s: Convert a COFF object file into a SYSROFF object file\n"),
          program_name);
   show_usage (stdout, 0);
 }
          program_name);
   show_usage (stdout, 0);
 }
@@ -1924,7 +1941,7 @@ main (ac, av)
          show_help ();
          /*NOTREACHED */
        case 'V':
          show_help ();
          /*NOTREACHED */
        case 'V':
-         printf ("GNU %s version %s\n", program_name, PROGRAM_VERSION);
+         printf (_("GNU %s version %s\n"), program_name, PROGRAM_VERSION);
          exit (0);
          /*NOTREACHED */
        case 0:
          exit (0);
          /*NOTREACHED */
        case 0:
@@ -1950,7 +1967,7 @@ main (ac, av)
          if (strcmp (input_file, output_file) == 0)
            {
              fprintf (stderr,
          if (strcmp (input_file, output_file) == 0)
            {
              fprintf (stderr,
-                      "%s: input and output files must be different\n",
+                      _("%s: input and output files must be different\n"),
                       program_name);
              exit (1);
            }
                       program_name);
              exit (1);
            }
@@ -1961,7 +1978,7 @@ main (ac, av)
 
   if (!input_file)
     {
 
   if (!input_file)
     {
-      fprintf (stderr, "%s: no input file specified\n",
+      fprintf (stderr, _("%s: no input file specified\n"),
               program_name);
       exit (1);
     }
               program_name);
       exit (1);
     }
@@ -2008,7 +2025,7 @@ main (ac, av)
 
   if (!file)
     {
 
   if (!file)
     {
-      fprintf (stderr, "%s: unable to open output file %s\n",
+      fprintf (stderr, _("%s: unable to open output file %s\n"),
               program_name, output_file);
       exit (1);
     }
               program_name, output_file);
       exit (1);
     }
index 02ef67ba37ac890bb5d1cdfdf41a74b4ae461825..5cf573a123b175be2c026deff507299dfb3a0cc8 100644 (file)
@@ -1,5 +1,5 @@
 /* strings -- print the strings of printable characters in files
 /* strings -- print the strings of printable characters in files
-   Copyright (C) 1993, 94 Free Software Foundation, Inc.
+   Copyright (C) 1993, 94, 95, 96, 97, 1998 Free Software Foundation, Inc.
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
 
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -13,7 +13,8 @@
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
 
    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
-   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+   02111-1307, USA.  */
 \f
 /* Usage: strings [options] file...
 
 \f
 /* Usage: strings [options] file...
 
    Written by Richard Stallman <rms@gnu.ai.mit.edu>
    and David MacKenzie <djm@gnu.ai.mit.edu>.  */
 
    Written by Richard Stallman <rms@gnu.ai.mit.edu>
    and David MacKenzie <djm@gnu.ai.mit.edu>.  */
 
+#include "bfd.h"
 #include <stdio.h>
 #include <getopt.h>
 #include <ctype.h>
 #include <errno.h>
 #include <stdio.h>
 #include <getopt.h>
 #include <ctype.h>
 #include <errno.h>
-#include "bfd.h"
 #include "bucomm.h"
 #include "bucomm.h"
+#include "libiberty.h"
 
 #ifdef isascii
 #define isgraphic(c) (isascii (c) && isprint (c))
 
 #ifdef isascii
 #define isgraphic(c) (isascii (c) && isprint (c))
@@ -67,7 +69,7 @@ extern int errno;
 #endif
 
 /* The BFD section flags that identify an initialized data section.  */
 #endif
 
 /* The BFD section flags that identify an initialized data section.  */
-#define DATA_FLAGS (SEC_ALLOC | SEC_LOAD | SEC_DATA | SEC_HAS_CONTENTS)
+#define DATA_FLAGS (SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS)
 
 /* Radix for printing addresses (must be 8, 10 or 16).  */
 static int address_radix;
 
 /* Radix for printing addresses (must be 8, 10 or 16).  */
 static int address_radix;
@@ -90,8 +92,6 @@ static boolean got_a_section;
 /* The BFD object file format.  */
 static char *target;
 
 /* The BFD object file format.  */
 static char *target;
 
-extern char *program_version;
-
 static struct option long_options[] =
 {
   {"all", no_argument, NULL, 'a'},
 static struct option long_options[] =
 {
   {"all", no_argument, NULL, 'a'},
@@ -104,14 +104,16 @@ static struct option long_options[] =
   {NULL, 0, NULL, 0}
 };
 
   {NULL, 0, NULL, 0}
 };
 
+static void strings_a_section PARAMS ((bfd *, asection *, PTR));
+static boolean strings_object_file PARAMS ((const char *));
 static boolean strings_file PARAMS ((char *file));
 static int integer_arg PARAMS ((char *s));
 static boolean strings_file PARAMS ((char *file));
 static int integer_arg PARAMS ((char *s));
-static void print_strings PARAMS ((char *filename, FILE *stream,
+static void print_strings PARAMS ((const char *filename, FILE *stream,
                                  file_ptr address, int stop_point,
                                  int magiccount, char *magic));
 static void usage PARAMS ((FILE *stream, int status));
 \f
                                  file_ptr address, int stop_point,
                                  int magiccount, char *magic));
 static void usage PARAMS ((FILE *stream, int status));
 \f
-void
+int
 main (argc, argv)
      int argc;
      char **argv;
 main (argc, argv)
      int argc;
      char **argv;
@@ -121,6 +123,7 @@ main (argc, argv)
   boolean files_given = false;
 
   program_name = argv[0];
   boolean files_given = false;
 
   program_name = argv[0];
+  xmalloc_set_program_name (program_name);
   string_min = -1;
   print_addresses = false;
   print_filenames = false;
   string_min = -1;
   print_addresses = false;
   print_filenames = false;
@@ -147,7 +150,7 @@ main (argc, argv)
          string_min = integer_arg (optarg);
          if (string_min < 1)
            {
          string_min = integer_arg (optarg);
          if (string_min < 1)
            {
-             fprintf (stderr, "%s: invalid number %s\n",
+             fprintf (stderr, _("%s: invalid number %s\n"),
                       program_name, optarg);
              exit (1);
            }
                       program_name, optarg);
              exit (1);
            }
@@ -186,8 +189,8 @@ main (argc, argv)
          break;
 
        case 'v':
          break;
 
        case 'v':
-         printf ("GNU %s version %s\n", program_name, program_version);
-         exit (0);
+         print_version ("strings");
+         break;
 
        case '?':
          usage (stderr, 1);
 
        case '?':
          usage (stderr, 1);
@@ -205,22 +208,32 @@ main (argc, argv)
     string_min = 4;
 
   bfd_init ();
     string_min = 4;
 
   bfd_init ();
+  set_default_bfd_target ();
 
 
-  for (; optind < argc; ++optind)
+  if (optind >= argc)
     {
     {
-      if (!strcmp (argv[optind], "-"))
-       datasection_only = false;
-      else
+      datasection_only = false;
+      print_strings ("{standard input}", stdin, 0, 0, 0, (char *) NULL);
+      files_given = true;
+    }
+  else
+    {
+      for (; optind < argc; ++optind)
        {
        {
-         files_given = true;
-         exit_status |= (strings_file (argv[optind]) == false);
+         if (strcmp (argv[optind], "-") == 0)
+           datasection_only = false;
+         else
+           {
+             files_given = true;
+             exit_status |= (strings_file (argv[optind]) == false);
+           }
        }
     }
 
   if (files_given == false)
     usage (stderr, 1);
 
        }
     }
 
   if (files_given == false)
     usage (stderr, 1);
 
-  exit (exit_status);
+  return (exit_status);
 }
 \f
 /* Scan section SECT of the file ABFD, whose printable name is FILE.
 }
 \f
 /* Scan section SECT of the file ABFD, whose printable name is FILE.
@@ -228,11 +241,13 @@ main (argc, argv)
    set `got_a_section' and print the strings in it.  */
 
 static void
    set `got_a_section' and print the strings in it.  */
 
 static void
-strings_a_section (abfd, sect, file)
+strings_a_section (abfd, sect, filearg)
      bfd *abfd;
      asection *sect;
      bfd *abfd;
      asection *sect;
-     PTR file;
+     PTR filearg;
 {
 {
+  const char *file = (const char *) filearg;
+
   if ((sect->flags & DATA_FLAGS) == DATA_FLAGS)
     {
       bfd_size_type sz = bfd_get_section_size_before_reloc (sect);
   if ((sect->flags & DATA_FLAGS) == DATA_FLAGS)
     {
       bfd_size_type sz = bfd_get_section_size_before_reloc (sect);
@@ -254,7 +269,7 @@ strings_a_section (abfd, sect, file)
 
 static boolean
 strings_object_file (file)
 
 static boolean
 strings_object_file (file)
-     char *file;
+     const char *file;
 {
   bfd *abfd = bfd_openr (file, target);
 
 {
   bfd *abfd = bfd_openr (file, target);
 
@@ -274,7 +289,7 @@ strings_object_file (file)
     }
 
   got_a_section = false;
     }
 
   got_a_section = false;
-  bfd_map_over_sections (abfd, strings_a_section, file);
+  bfd_map_over_sections (abfd, strings_a_section, (PTR) file);
 
   if (!bfd_close (abfd))
     {
 
   if (!bfd_close (abfd))
     {
@@ -299,7 +314,10 @@ strings_file (file)
     {
       FILE *stream;
 
     {
       FILE *stream;
 
-      stream = fopen (file, "r");
+      stream = fopen (file, "rb");
+      /* Not all systems permit "rb", so try "r" if it failed.  */
+      if (stream == NULL)
+       stream = fopen (file, "r");
       if (stream == NULL)
        {
          fprintf (stderr, "%s: ", program_name);
       if (stream == NULL)
        {
          fprintf (stderr, "%s: ", program_name);
@@ -334,18 +352,18 @@ strings_file (file)
 
 static void
 print_strings (filename, stream, address, stop_point, magiccount, magic)
 
 static void
 print_strings (filename, stream, address, stop_point, magiccount, magic)
-     char *filename;
+     const char *filename;
      FILE *stream;
      file_ptr address;
      int stop_point;
      int magiccount;
      char *magic;
 {
      FILE *stream;
      file_ptr address;
      int stop_point;
      int magiccount;
      char *magic;
 {
-  int bufsize = 100;
-  char *buf = (char *) xmalloc (bufsize);
+  char *buf = (char *) xmalloc (string_min + 1);
 
   while (1)
     {
 
   while (1)
     {
+      file_ptr start;
       int i;
       int c;
 
       int i;
       int c;
 
@@ -353,6 +371,7 @@ print_strings (filename, stream, address, stop_point, magiccount, magic)
     tryline:
       if (stop_point && address >= stop_point)
        break;
     tryline:
       if (stop_point && address >= stop_point)
        break;
+      start = address;
       for (i = 0; i < string_min; i++)
        {
          if (magiccount)
       for (i = 0; i < string_min; i++)
        {
          if (magiccount)
@@ -365,7 +384,7 @@ print_strings (filename, stream, address, stop_point, magiccount, magic)
              if (stream == NULL)
                return;
              c = getc (stream);
              if (stream == NULL)
                return;
              c = getc (stream);
-             if (c < 0)
+             if (c == EOF)
                return;
            }
          address++;
                return;
            }
          address++;
@@ -375,78 +394,51 @@ print_strings (filename, stream, address, stop_point, magiccount, magic)
          buf[i] = c;
        }
 
          buf[i] = c;
        }
 
-      /* We found a run of `string_min' graphic characters.
-        Now see if it is terminated with a NUL byte or a newline.   */
-      while (1)
-       {
-         if (i == bufsize)
-           {
-             bufsize *= 2;
-             buf = (char *) xrealloc (buf, bufsize);
-           }
-         if (magiccount)
-           {
-             magiccount--;
-             c = *magic++;
-           }
-         else
-           {
-             if (stream == NULL)
-               return;
-             c = getc (stream);
-             if (c < 0)
-               return;
-           }
-         address++;
-         if (c == '\0' || c == '\n')
-           break;              /* It is; print this string.  */
-         if (!isgraphic (c))
-           goto tryline;       /* It isn't; give up on this string.  */
-         buf[i++] = c;         /* The string continues; store it all.  */
-       }
+      /* We found a run of `string_min' graphic characters.  Print up
+         to the next non-graphic character.  */
 
 
-      /* If we get here, the string is all graphics and properly terminated,
-        so print it.  It is all in `buf' and `i' is its length.  */
-      buf[i] = '\0';
       if (print_filenames)
        printf ("%s: ", filename);
       if (print_addresses)
        switch (address_radix)
          {
          case 8:
       if (print_filenames)
        printf ("%s: ", filename);
       if (print_addresses)
        switch (address_radix)
          {
          case 8:
-           printf ("%7lo ", (unsigned long) (address - i - 1));
+           printf ("%7lo ", (unsigned long) start);
            break;
 
          case 10:
            break;
 
          case 10:
-           printf ("%7ld ", (long) (address - i - 1));
+           printf ("%7ld ", (long) start);
            break;
 
          case 16:
            break;
 
          case 16:
-           printf ("%7lx ", (unsigned long) (address - i - 1));
+           printf ("%7lx ", (unsigned long) start);
            break;
          }
 
            break;
          }
 
-      for (i = 0; (c = buf[i]) != '\0'; i++)
-       switch (c)
-         {
-         case '\n':
-           printf ("\\n");
-           break;
-         case '\t':
-           printf ("\\t");
-           break;
-         case '\f':
-           printf ("\\f");
-           break;
-         case '\b':
-           printf ("\\b");
-           break;
-         case '\r':
-           printf ("\\r");
+      buf[i] = '\0';
+      fputs (buf, stdout);
+
+      while (1)
+       {
+         if (magiccount)
+           {
+             magiccount--;
+             c = *magic++;
+           }
+         else
+           {
+             if (stream == NULL)
+               break;
+             c = getc (stream);
+             if (c == EOF)
+               break;
+           }
+         address++;
+         if (! isgraphic (c))
            break;
            break;
-         default:
-           putchar (c);
-         }
+         putchar (c);
+       }
+
       putchar ('\n');
     }
 }
       putchar ('\n');
     }
 }
@@ -493,7 +485,7 @@ integer_arg (s)
 
   if (*p)
     {
 
   if (*p)
     {
-      fprintf (stderr, "%s: invalid integer argument %s\n", program_name, s);
+      fprintf (stderr, _("%s: invalid integer argument %s\n"), program_name, s);
       exit (1);
     }
   return value;
       exit (1);
     }
   return value;
@@ -504,10 +496,13 @@ usage (stream, status)
      FILE *stream;
      int status;
 {
      FILE *stream;
      int status;
 {
-  fprintf (stream, "\
+  fprintf (stream, _("\
 Usage: %s [-afov] [-n min-len] [-min-len] [-t {o,x,d}] [-]\n\
        [--all] [--print-file-name] [--bytes=min-len] [--radix={o,x,d}]\n\
 Usage: %s [-afov] [-n min-len] [-min-len] [-t {o,x,d}] [-]\n\
        [--all] [--print-file-name] [--bytes=min-len] [--radix={o,x,d}]\n\
-       [--target=bfdname] [--help] [--version] file...\n",
+       [--target=bfdname] [--help] [--version] file...\n"),
           program_name);
           program_name);
+  list_supported_targets (program_name, stream);
+  if (status == 0)
+    fprintf (stream, _("Report bugs to bug-gnu-utils@gnu.org\n"));
   exit (status);
 }
   exit (status);
 }
index 891ce1396cc8eb7fc3db56461904b3ca72d8a383..ed365b4221e4cba886f7c1ea5dc0b8a65c97225a 100644 (file)
@@ -1,21 +1,22 @@
 /* Sysroff object format dumper.
 /* Sysroff object format dumper.
Copyright (C) 1994 Free Software Foundation, Inc.
  Copyright (C) 1994, 95, 1998 Free Software Foundation, Inc.
 
 
-This file is part of GNU Binutils.
+   This file is part of GNU Binutils.
 
 
-This program is free software; you can redistribute it and/or modify
-it under the terms of the GNU General Public License as published by
-the Free Software Foundation; either version 2 of the License, or
-(at your option) any later version.
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
 
 
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-GNU General Public License for more details.
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
 
-You should have received a copy of the GNU General Public License
-along with this program; if not, write to the Free Software
-Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+   02111-1307, USA.  */
 
 
 /* Written by Steve Chamberlain <sac@cygnus.com>.
 
 
 /* Written by Steve Chamberlain <sac@cygnus.com>.
@@ -23,19 +24,21 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  */
  This program reads a SYSROFF object file and prints it in an
  almost human readable form to stdout. */
 
  This program reads a SYSROFF object file and prints it in an
  almost human readable form to stdout. */
 
+#include "bfd.h"
+#include "bucomm.h"
+
 #include <stdio.h>
 #include <ctype.h>
 #include <libiberty.h>
 #include <getopt.h>
 #include "sysroff.h"
 #include <stdio.h>
 #include <ctype.h>
 #include <libiberty.h>
 #include <getopt.h>
 #include "sysroff.h"
-#include <stdlib.h>
-#include "sysdep.h"
+
 #define PROGRAM_VERSION "1.0"
 #define PROGRAM_VERSION "1.0"
-static int h8300;
-static int sh;
+
 static int dump = 1;
 static int segmented_p;
 static int code;
 static int dump = 1;
 static int segmented_p;
 static int code;
+static int addrsize = 4;
 static FILE *file;
 
 static char *
 static FILE *file;
 
 static char *
@@ -43,7 +46,7 @@ xcalloc (a, b)
      int a;
      int b;
 {
      int a;
      int b;
 {
-  char *r = xmalloc (a, b);
+  char *r = xmalloc (a * b);
   memset (r, 0, a * b);
   return r;
 }
   memset (r, 0, a * b);
   return r;
 }
@@ -130,7 +133,8 @@ fillup (ptr)
     }
   if (dump)
     dh (ptr, size);
     }
   if (dump)
     dh (ptr, size);
-  return size;
+
+  return size - 1;
 }
 
 barray
 }
 
 barray
@@ -168,7 +172,7 @@ getINT (ptr, idx, size, max)
       return 0;
     }
   if (size == -2)
       return 0;
     }
   if (size == -2)
-    size = 4;
+    size = addrsize;
   if (size == -1)
     size = 0;
   switch (size)
   if (size == -1)
     size = 0;
   switch (size)
@@ -192,14 +196,17 @@ getINT (ptr, idx, size, max)
 }
 
 int
 }
 
 int
-getBITS (ptr, idx, size)
+getBITS (ptr, idx, size, max)
      char *ptr;
      int *idx;
      char *ptr;
      int *idx;
-     int size;
+     int size, max;
 {
   int byte = *idx / 8;
   int bit = *idx % 8;
 
 {
   int byte = *idx / 8;
   int bit = *idx % 8;
 
+  if (byte >= max)
+    return 0;
+
   *idx += size;
 
   return (ptr[byte] >> (8 - bit - size)) & ((1 << size) - 1);
   *idx += size;
 
   return (ptr[byte] >> (8 - bit - size)) & ((1 << size) - 1);
@@ -305,6 +312,7 @@ getone (type)
       {
        struct IT_hd dummy;
        sysroff_swap_hd_in (&dummy);
       {
        struct IT_hd dummy;
        sysroff_swap_hd_in (&dummy);
+       addrsize = dummy.afl;
        sysroff_print_hd_out (&dummy);
       }
       break;
        sysroff_print_hd_out (&dummy);
       }
       break;
@@ -484,6 +492,10 @@ opt (x)
   return getone (x);
 }
 
   return getone (x);
 }
 
+#if 0
+
+/* This is no longer used.  */
+
 static void
 unit_info_list ()
 {
 static void
 unit_info_list ()
 {
@@ -502,6 +514,12 @@ unit_info_list ()
     }
 }
 
     }
 }
 
+#endif
+
+#if 0
+
+/* This is no longer used.  */
+
 static void
 object_body_list ()
 {
 static void
 object_body_list ()
 {
@@ -514,6 +532,8 @@ object_body_list ()
     }
 }
 
     }
 }
 
+#endif
+
 static void
 must (x)
      int x;
 static void
 must (x)
      int x;
@@ -541,7 +561,7 @@ tab (i, s)
 static void derived_type ();
 
 static void
 static void derived_type ();
 
 static void
-symbol_info ()
+dump_symbol_info ()
 {
   tab (1, "SYMBOL INFO");
   while (opt (IT_dsy_CODE))
 {
   tab (1, "SYMBOL INFO");
   while (opt (IT_dsy_CODE))
@@ -564,27 +584,27 @@ derived_type ()
     {
       if (opt (IT_dpp_CODE))
        {
     {
       if (opt (IT_dpp_CODE))
        {
-         symbol_info ();
+         dump_symbol_info ();
          must (IT_dpp_CODE);
        }
       else if (opt (IT_dfp_CODE))
        {
          must (IT_dpp_CODE);
        }
       else if (opt (IT_dfp_CODE))
        {
-         symbol_info ();
+         dump_symbol_info ();
          must (IT_dfp_CODE);
        }
       else if (opt (IT_den_CODE))
        {
          must (IT_dfp_CODE);
        }
       else if (opt (IT_den_CODE))
        {
-         symbol_info ();
+         dump_symbol_info ();
          must (IT_den_CODE);
        }
       else if (opt (IT_den_CODE))
        {
          must (IT_den_CODE);
        }
       else if (opt (IT_den_CODE))
        {
-         symbol_info ();
+         dump_symbol_info ();
          must (IT_den_CODE);
        }
       else if (opt (IT_dds_CODE))
        {
          must (IT_den_CODE);
        }
       else if (opt (IT_dds_CODE))
        {
-         symbol_info ();
+         dump_symbol_info ();
          must (IT_dds_CODE);
        }
       else if (opt (IT_dar_CODE))
          must (IT_dds_CODE);
        }
       else if (opt (IT_dar_CODE))
@@ -609,6 +629,10 @@ derived_type ()
   tab (-1, "");
 }
 
   tab (-1, "");
 }
 
+#if 0
+
+/* This is no longer used.  */
+
 static void
 program_structure ()
 {
 static void
 program_structure ()
 {
@@ -617,12 +641,18 @@ program_structure ()
     {
       must (IT_dso_CODE);
       opt (IT_dss_CODE);
     {
       must (IT_dso_CODE);
       opt (IT_dss_CODE);
-      symbol_info ();
+      dump_symbol_info ();
       must (IT_dps_CODE);
     }
   tab (-1, "");
 }
 
       must (IT_dps_CODE);
     }
   tab (-1, "");
 }
 
+#endif
+
+#if 0
+
+/* This is no longer used.  */
+
 static void
 debug_list ()
 {
 static void
 debug_list ()
 {
@@ -636,6 +666,8 @@ debug_list ()
   tab (-1, "");
 }
 
   tab (-1, "");
 }
 
+#endif
+
 static void
 module ()
 {
 static void
 module ()
 {
@@ -687,14 +719,14 @@ show_usage (file, status)
      FILE *file;
      int status;
 {
      FILE *file;
      int status;
 {
-  fprintf (file, "Usage: %s [-hV] in-file\n", program_name);
+  fprintf (file, _("Usage: %s [-hV] in-file\n"), program_name);
   exit (status);
 }
 
 static void
 show_help ()
 {
   exit (status);
 }
 
 static void
 show_help ()
 {
-  printf ("%s: Print a human readable interpretation of a SYSROFF object file\n",
+  printf (_("%s: Print a human readable interpretation of a SYSROFF object file\n"),
          program_name);
   show_usage (stdout, 0);
 }
          program_name);
   show_usage (stdout, 0);
 }
@@ -724,7 +756,7 @@ main (ac, av)
          show_help ();
          /*NOTREACHED*/
        case 'V':
          show_help ();
          /*NOTREACHED*/
        case 'V':
-         printf ("GNU %s version %s\n", program_name, PROGRAM_VERSION);
+         printf (_("GNU %s version %s\n"), program_name, PROGRAM_VERSION);
          exit (0);
          /*NOTREACHED*/
        case 0:
          exit (0);
          /*NOTREACHED*/
        case 0:
@@ -744,7 +776,7 @@ main (ac, av)
 
   if (!input_file)
     {
 
   if (!input_file)
     {
-      fprintf (stderr, "%s: no input file specified\n",
+      fprintf (stderr, _("%s: no input file specified\n"),
               program_name);
       exit (1);
     }
               program_name);
       exit (1);
     }
@@ -752,7 +784,7 @@ main (ac, av)
   file = fopen (input_file, FOPEN_RB);
   if (!file)
     {
   file = fopen (input_file, FOPEN_RB);
   if (!file)
     {
-      fprintf (stderr, "%s: cannot open input file %s\n",
+      fprintf (stderr, _("%s: cannot open input file %s\n"),
               program_name, input_file);
       exit (1);
     }
               program_name, input_file);
       exit (1);
     }
index 359026bf4f6016f97ee33a80ef489d3e2154bfe4..b4a17df3778d6968ced9a0c8676327def611bb2e 100644 (file)
@@ -1,5 +1,5 @@
 /* windres.c -- a program to manipulate Windows resources
 /* windres.c -- a program to manipulate Windows resources
-   Copyright 1997 Free Software Foundation, Inc.
+   Copyright 1997, 1998 Free Software Foundation, Inc.
    Written by Ian Lance Taylor, Cygnus Support.
 
    This file is part of GNU Binutils.
    Written by Ian Lance Taylor, Cygnus Support.
 
    This file is part of GNU Binutils.
@@ -44,6 +44,7 @@
 
 #include <assert.h>
 #include <ctype.h>
 
 #include <assert.h>
 #include <ctype.h>
+#include <time.h>
 
 /* An enumeration of format types.  */
 
 
 /* An enumeration of format types.  */
 
@@ -224,7 +225,7 @@ open_file_search (filename, mode, errmsg, real_filename)
        }
     }
 
        }
     }
 
-  fatal ("can't open %s `%s': %s", errmsg, filename, strerror (errno));
+  fatal (_("can't open %s `%s': %s"), errmsg, filename, strerror (errno));
 
   /* Return a value to avoid a compiler warning.  */
   return NULL;
 
   /* Return a value to avoid a compiler warning.  */
   return NULL;
@@ -283,8 +284,50 @@ unicode_print (e, unicode, length)
 
       ++unicode;
 
 
       ++unicode;
 
-      if ((ch & 0x7f) == ch && isprint (ch))
-       putc (ch, e);
+      if ((ch & 0x7f) == ch)
+       {
+         if (ch == '\\')
+           fputs ("\\", e);
+         else if (isprint (ch))
+           putc (ch, e);
+         else
+           {
+             switch (ch)
+               {
+               case ESCAPE_A:
+                 fputs ("\\a", e);
+                 break;
+
+               case ESCAPE_B:
+                 fputs ("\\b", e);
+                 break;
+
+               case ESCAPE_F:
+                 fputs ("\\f", e);
+                 break;
+
+               case ESCAPE_N:
+                 fputs ("\\n", e);
+                 break;
+
+               case ESCAPE_R:
+                 fputs ("\\r", e);
+                 break;
+
+               case ESCAPE_T:
+                 fputs ("\\t", e);
+                 break;
+
+               case ESCAPE_V:
+                 fputs ("\\v", e);
+                 break;
+
+               default:
+                 fprintf (e, "\\%03o", (unsigned int) ch);
+                 break;
+               }
+           }
+       }
       else if ((ch & 0xff) == ch)
        fprintf (e, "\\%03o", (unsigned int) ch);
       else
       else if ((ch & 0xff) == ch)
        fprintf (e, "\\%03o", (unsigned int) ch);
       else
@@ -418,10 +461,17 @@ define_resource (resources, cids, ids, dupok)
 
       if (*resources == NULL)
        {
 
       if (*resources == NULL)
        {
+         static unsigned long timeval;
+
+         /* Use the same timestamp for every resource created in a
+             single run.  */
+         if (timeval == 0)
+           timeval = time (NULL);
+
          *resources = ((struct res_directory *)
                        res_alloc (sizeof **resources));
          (*resources)->characteristics = 0;
          *resources = ((struct res_directory *)
                        res_alloc (sizeof **resources));
          (*resources)->characteristics = 0;
-         (*resources)->time = 0;
+         (*resources)->time = timeval;
          (*resources)->major = 0;
          (*resources)->minor = 0;
          (*resources)->entries = NULL;
          (*resources)->major = 0;
          (*resources)->minor = 0;
          (*resources)->entries = NULL;
@@ -458,7 +508,7 @@ define_resource (resources, cids, ids, dupok)
            {
              fprintf (stderr, "%s: ", program_name);
              res_ids_print (stderr, i, ids);
            {
              fprintf (stderr, "%s: ", program_name);
              res_ids_print (stderr, i, ids);
-             fprintf (stderr, ": expected to be a directory\n");
+             fprintf (stderr, _(": expected to be a directory\n"));
              xexit (1);
            }
 
              xexit (1);
            }
 
@@ -470,7 +520,7 @@ define_resource (resources, cids, ids, dupok)
     {
       fprintf (stderr, "%s: ", program_name);
       res_ids_print (stderr, cids, ids);
     {
       fprintf (stderr, "%s: ", program_name);
       res_ids_print (stderr, cids, ids);
-      fprintf (stderr, ": expected to be a leaf\n");
+      fprintf (stderr, _(": expected to be a leaf\n"));
       xexit (1);
     }
 
       xexit (1);
     }
 
@@ -479,9 +529,9 @@ define_resource (resources, cids, ids, dupok)
       if (dupok)
        return re->u.res;
 
       if (dupok)
        return re->u.res;
 
-      fprintf (stderr, "%s: warning: ", program_name);
+      fprintf (stderr, _("%s: warning: "), program_name);
       res_ids_print (stderr, cids, ids);
       res_ids_print (stderr, cids, ids);
-      fprintf (stderr, ": duplicate value\n");
+      fprintf (stderr, _(": duplicate value\n"));
     }
 
   re->u.res = ((struct res_resource *)
     }
 
   re->u.res = ((struct res_resource *)
@@ -644,8 +694,8 @@ format_from_name (name)
 
   if (m->name == NULL)
     {
 
   if (m->name == NULL)
     {
-      fprintf (stderr, "%s: unknown format type `%s'\n", program_name, name);
-      fprintf (stderr, "%s: supported formats:", program_name);
+      fprintf (stderr, _("%s: unknown format type `%s'\n"), program_name, name);
+      fprintf (stderr, _("%s: supported formats:"), program_name);
       for (m = format_names; m->name != NULL; m++)
        fprintf (stderr, " %s", m->name);
       fprintf (stderr, "\n");
       for (m = format_names; m->name != NULL; m++)
        fprintf (stderr, " %s", m->name);
       fprintf (stderr, "\n");
@@ -732,7 +782,7 @@ format_from_filename (filename, input)
     return RES_FORMAT_RC;
 
   /* Otherwise, we give up.  */
     return RES_FORMAT_RC;
 
   /* Otherwise, we give up.  */
-  fatal ("can not determine type of file `%s'; use the -I option",
+  fatal (_("can not determine type of file `%s'; use the -I option"),
         filename);
 
   /* Return something to silence the compiler warning.  */
         filename);
 
   /* Return something to silence the compiler warning.  */
@@ -746,9 +796,9 @@ usage (stream, status)
      FILE *stream;
      int status;
 {
      FILE *stream;
      int status;
 {
-  fprintf (stream, "Usage: %s [options] [input-file] [output-file]\n",
+  fprintf (stream, _("Usage: %s [options] [input-file] [output-file]\n"),
           program_name);
           program_name);
-  fprintf (stream, "\
+  fprintf (stream, _("\
 Options:\n\
   -i FILE, --input FILE       Name input file\n\
   -o FILE, --output FILE      Name output file\n\
 Options:\n\
   -i FILE, --input FILE       Name input file\n\
   -o FILE, --output FILE      Name output file\n\
@@ -760,21 +810,21 @@ Options:\n\
   --preprocessor PROGRAM      Program to use to preprocess rc file\n\
   --include-dir DIR           Include directory when preprocessing rc file\n\
   --define SYM[=VAL]          Define SYM when preprocessing rc file\n\
   --preprocessor PROGRAM      Program to use to preprocess rc file\n\
   --include-dir DIR           Include directory when preprocessing rc file\n\
   --define SYM[=VAL]          Define SYM when preprocessing rc file\n\
-  --language VAL              Set language when reading rc file\n");
+  --language VAL              Set language when reading rc file\n"));
 #ifdef YYDEBUG
 #ifdef YYDEBUG
-  fprintf (stream, "\
-  --yydebug                   Turn on parser debugging\n");
+  fprintf (stream, _("\
+  --yydebug                   Turn on parser debugging\n"));
 #endif
 #endif
-  fprintf (stream, "\
+  fprintf (stream, _("\
   --help                      Print this help message\n\
   --help                      Print this help message\n\
-  --version                   Print version information\n");
-  fprintf (stream, "\
+  --version                   Print version information\n"));
+  fprintf (stream, _("\
 FORMAT is one of rc, res, or coff, and is deduced from the file name\n\
 extension if not specified.  A single file name is an input file.\n\
 FORMAT is one of rc, res, or coff, and is deduced from the file name\n\
 extension if not specified.  A single file name is an input file.\n\
-No input-file is stdin, default rc.  No output-file is stdout, default rc.\n");
+No input-file is stdin, default rc.  No output-file is stdout, default rc.\n"));
   list_supported_targets (program_name, stream);
   if (status == 0)
   list_supported_targets (program_name, stream);
   if (status == 0)
-    fprintf (stream, "Report bugs to bug-gnu-utils@prep.ai.mit.edu\n");
+    fprintf (stream, _("Report bugs to bug-gnu-utils@gnu.org\n"));
   exit (status);
 }
 
   exit (status);
 }
 
@@ -963,7 +1013,7 @@ main (argc, argv)
     }
 
   if (resources == NULL)
     }
 
   if (resources == NULL)
-    fatal ("no resources");
+    fatal (_("no resources"));
 
   /* Sort the resources.  This is required for COFF, convenient for
      rc, and unimportant for res.  */
 
   /* Sort the resources.  This is required for COFF, convenient for
      rc, and unimportant for res.  */
@@ -997,7 +1047,7 @@ struct res_directory *
 read_res_file (filename)
      const char *filename;
 {
 read_res_file (filename)
      const char *filename;
 {
-  fatal ("read_res_file unimplemented");
+  fatal (_("read_res_file unimplemented"));
   return NULL;
 }
 
   return NULL;
 }
 
@@ -1006,5 +1056,5 @@ write_res_file (filename, resources)
      const char *filename;
      const struct res_directory *resources;
 {
      const char *filename;
      const struct res_directory *resources;
 {
-  fatal ("write_res_file unimplemented");
+  fatal (_("write_res_file unimplemented"));
 }
 }
This page took 0.165616 seconds and 4 git commands to generate.