Import of Binutils from the FSF 2.12 branch (post-.1 release).

This commit is contained in:
obrien 2002-08-31 20:20:07 +00:00
parent f3c54bd2c1
commit 0570468a60
18 changed files with 8283 additions and 1477 deletions

View File

@ -1,3 +1,8 @@
2002-07-20 Jason Thorpe <thorpej@wasabisystems.com>
* elf64-alpha.c (elf64_alpha_size_dynamic_sections): Only insert
DT_PLTGOT into the dynamic section if there is a PLT.
2002-05-14 Daniel Jacobowitz <drow@mvista.com>
* configure.in: Set is_release=y for 2.12.1 release.

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,6 @@
/* BFD library support routines for the Hitachi-SH architecture.
Copyright (C) 1993 Free Software Foundation, Inc.
Copyright 1993, 1994, 1997, 1998, 2000, 2001
Free Software Foundation, Inc.
Hacked by Steve Chamberlain of Cygnus Support.
This file is part of BFD, the Binary File Descriptor library.
@ -22,8 +23,10 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
#include "sysdep.h"
#include "libbfd.h"
static boolean scan_mach
PARAMS ((const struct bfd_arch_info *, const char *));
static boolean
static boolean
scan_mach (info, string)
const struct bfd_arch_info *info;
const char *string;
@ -33,7 +36,6 @@ scan_mach (info, string)
return false;
}
#if 0
/* This routine is provided two arch_infos and returns whether
they'd be compatible */
@ -49,13 +51,47 @@ compatible (a,b)
}
#endif
#define SH_NEXT &arch_info_struct[0]
#define SH3_NEXT &arch_info_struct[1]
#define SH3E_NEXT &arch_info_struct[2]
#define SH4_NEXT NULL
#define SH_NEXT &arch_info_struct[0]
#define SH2_NEXT &arch_info_struct[1]
#define SH_DSP_NEXT &arch_info_struct[2]
#define SH3_NEXT &arch_info_struct[3]
#define SH3_DSP_NEXT &arch_info_struct[4]
#define SH3E_NEXT &arch_info_struct[5]
#define SH4_NEXT NULL
#undef SH4_NEXT
#define SH4_NEXT &arch_info_struct[6]
#define SH64_NEXT NULL
static const bfd_arch_info_type arch_info_struct[] =
static const bfd_arch_info_type arch_info_struct[] =
{
{
32, /* 32 bits in a word */
32, /* 32 bits in an address */
8, /* 8 bits in a byte */
bfd_arch_sh,
bfd_mach_sh2,
"sh", /* arch_name */
"sh2", /* printable name */
1,
false, /* not the default */
bfd_default_compatible,
scan_mach,
SH2_NEXT
},
{
32, /* 32 bits in a word */
32, /* 32 bits in an address */
8, /* 8 bits in a byte */
bfd_arch_sh,
bfd_mach_sh_dsp,
"sh", /* arch_name */
"sh-dsp", /* printable name */
1,
false, /* not the default */
bfd_default_compatible,
scan_mach,
SH_DSP_NEXT
},
{
32, /* 32 bits in a word */
32, /* 32 bits in an address */
@ -70,6 +106,20 @@ static const bfd_arch_info_type arch_info_struct[] =
scan_mach,
SH3_NEXT
},
{
32, /* 32 bits in a word */
32, /* 32 bits in an address */
8, /* 8 bits in a byte */
bfd_arch_sh,
bfd_mach_sh3_dsp,
"sh", /* arch_name */
"sh3-dsp", /* printable name */
1,
false, /* not the default */
bfd_default_compatible,
scan_mach,
SH3_DSP_NEXT
},
{
32, /* 32 bits in a word */
32, /* 32 bits in an address */
@ -98,6 +148,20 @@ static const bfd_arch_info_type arch_info_struct[] =
scan_mach,
SH4_NEXT
},
{
64, /* 64 bits in a word */
64, /* 64 bits in an address */
8, /* 8 bits in a byte */
bfd_arch_sh,
bfd_mach_sh5,
"sh", /* arch_name */
"sh5", /* printable name */
1,
false, /* not the default */
bfd_default_compatible,
scan_mach,
SH64_NEXT
},
};
const bfd_arch_info_type bfd_sh_arch =

File diff suppressed because it is too large Load Diff

View File

@ -3237,12 +3237,10 @@ elf64_alpha_size_dynamic_sections (output_bfd, info)
return false;
}
if (!add_dynamic_entry (DT_PLTGOT, 0))
return false;
if (relplt)
{
if (!add_dynamic_entry (DT_PLTRELSZ, 0)
if (!add_dynamic_entry (DT_PLTGOT, 0)
|| !add_dynamic_entry (DT_PLTRELSZ, 0)
|| !add_dynamic_entry (DT_PLTREL, DT_RELA)
|| !add_dynamic_entry (DT_JMPREL, 0))
return false;

View File

@ -1 +1 @@
#define BFD_VERSION_DATE 20020622
#define BFD_VERSION_DATE 20020720

View File

@ -7,7 +7,7 @@ AC_CANONICAL_SYSTEM
AC_ISC_POSIX
changequote(,)dnl
BFD_VERSION_STRING=`sed -n -e 's/^.._INIT_AUTOMAKE.*,[ ]*\([^ ]*\)[ ]*).*/\1/p' < ${srcdir}/../bfd/configure.in`
BFD_VERSION=`sed -n -e 's/^.._INIT_AUTOMAKE.*,[ ]*\([^ ]*\)[ ]*).*/\1/p' < ${srcdir}/../bfd/configure.in`
changequote([,])dnl
AM_INIT_AUTOMAKE(binutils, ${BFD_VERSION})

View File

@ -1,3 +1,11 @@
2002-01-26 Hans-Peter Nilsson <hp@bitrange.com>
* Makefile.in (install): Depend on install-info.
2001-03-25 Stephane Carrez <Stephane.Carrez@worldnet.fr>
* texi2pod.pl: New file (from gcc/contrib).
1999-04-01 Jim Blandy <jimb@zwingli.cygnus.com>
* add-log.el, add-log.vi: New files.

View File

@ -51,7 +51,8 @@ DVIFILES = standards.dvi configure.dvi
all:
install:
# We want install to imply install-info as per GNU standards.
install: install-info
uninstall:

File diff suppressed because it is too large Load Diff

View File

@ -1,5 +1,6 @@
/* This file is tc-sh.h
Copyright (C) 1993, 94, 95, 96, 1997 Free Software Foundation, Inc.
Copyright 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
Free Software Foundation, Inc.
This file is part of GAS, the GNU Assembler.
@ -20,12 +21,12 @@
#define TC_SH
#define TARGET_BYTES_BIG_ENDIAN 0
#define TARGET_ARCH bfd_arch_sh
/* Whether in little endian mode. */
extern int shl;
#if ANSI_PROTOTYPES
struct segment_info_struct;
struct internal_reloc;
#endif
/* Whether -relax was used. */
extern int sh_relax;
@ -36,6 +37,9 @@ extern int sh_small;
/* Don't try to break words. */
#define WORKING_DOT_WORD
/* All SH instructions are multiples of 16 bits. */
#define DWARF2_LINE_MIN_INSN_LENGTH 2
/* We require .long, et. al., to be aligned correctly. */
#define md_cons_align(nbytes) sh_cons_align (nbytes)
extern void sh_cons_align PARAMS ((int));
@ -45,24 +49,47 @@ extern void sh_cons_align PARAMS ((int));
#define HANDLE_ALIGN(frag) sh_handle_align (frag)
extern void sh_handle_align PARAMS ((fragS *));
#define MAX_MEM_FOR_RS_ALIGN_CODE (1 + 2)
/* We need to force out some relocations when relaxing. */
#define TC_FORCE_RELOCATION(fix) sh_force_relocation (fix)
extern int sh_force_relocation ();
/* The type fixS is defined (to struct fix) in write.h, but write.h uses
definitions from this file. To avoid problems with including write.h
after the "right" definitions, don't; just forward-declare struct fix
here. */
struct fix;
extern int sh_force_relocation PARAMS ((struct fix *));
#ifdef OBJ_ELF
#define obj_fix_adjustable(fixP) sh_fix_adjustable(fixP)
struct fix;
extern boolean sh_fix_adjustable PARAMS ((struct fix *));
/* This arranges for gas/write.c to not apply a relocation if
obj_fix_adjustable() says it is not adjustable. */
/* ??? fixups with symbols in SEC_MERGE sections are marked with
obj_fix_adjustable and have a non-section symbol, as in
"vwxyz"+1 in execute/string-opt-6.c . Maybe the test of
(symbol_used_in_reloc_p should be done in the machine-independent code. */
#define TC_FIX_ADJUSTABLE(fixP) \
(! symbol_used_in_reloc_p (fixP->fx_addsy) && obj_fix_adjustable (fixP))
#endif
#define MD_PCREL_FROM_SECTION(FIXP, SEC) md_pcrel_from_section (FIXP, SEC)
extern long md_pcrel_from_section PARAMS ((struct fix *, segT));
#define IGNORE_NONSTANDARD_ESCAPES
#define LISTING_HEADER (shl ? "Hitachi Super-H GAS Little Endian" : "Hitachi Super-H GAS Big Endian")
#define LISTING_HEADER \
(!target_big_endian \
? "Hitachi Super-H GAS Little Endian" : "Hitachi Super-H GAS Big Endian")
#define md_operand(x)
extern const struct relax_type md_relax_table[];
#define TC_GENERIC_RELAX_TABLE md_relax_table
/* We use a special alignment function to insert the correct nop
pattern. */
extern int sh_do_align PARAMS ((int, const char *, int, int));
#define md_do_align(n,fill,len,max,l) if (sh_do_align (n,fill,len,max)) goto l
/* We record, for each section, whether we have most recently output a
CODE reloc or a DATA reloc. */
struct sh_segment_info_type
@ -98,14 +125,16 @@ extern void sh_frob_file PARAMS ((void));
#define BFD_ARCH TARGET_ARCH
#define COFF_MAGIC (shl ? SH_ARCH_MAGIC_LITTLE : SH_ARCH_MAGIC_BIG)
#define COFF_MAGIC (!target_big_endian ? SH_ARCH_MAGIC_LITTLE : SH_ARCH_MAGIC_BIG)
/* We need to write out relocs which have not been completed. */
#define TC_COUNT_RELOC(fix) ((fix)->fx_addsy != NULL)
#define TC_RELOC_MANGLE(seg, fix, int, paddr) \
sh_coff_reloc_mangle ((seg), (fix), (int), (paddr))
extern void sh_coff_reloc_mangle ();
extern void sh_coff_reloc_mangle
PARAMS ((struct segment_info_struct *, struct fix *,
struct internal_reloc *, unsigned int));
#define tc_coff_symbol_emit_hook(a) ; /* not used */
@ -116,14 +145,20 @@ extern void sh_coff_reloc_mangle ();
#define TC_COFF_SIZEMACHDEP(frag) tc_coff_sizemachdep(frag)
extern int tc_coff_sizemachdep PARAMS ((fragS *));
#ifdef BFD_ASSEMBLER
#define SEG_NAME(SEG) segment_name (SEG)
#else
#define SEG_NAME(SEG) obj_segment_name (SEG)
#endif
/* We align most sections to a 16 byte boundary. */
#define SUB_SEGMENT_ALIGN(SEG) \
(strncmp (obj_segment_name (SEG), ".stabstr", 8) == 0 \
? 0 \
: ((strncmp (obj_segment_name (SEG), ".stab", 5) == 0 \
|| strcmp (obj_segment_name (SEG), ".ctors") == 0 \
|| strcmp (obj_segment_name (SEG), ".dtors") == 0) \
? 2 \
#define SUB_SEGMENT_ALIGN(SEG) \
(strncmp (SEG_NAME (SEG), ".stabstr", 8) == 0 \
? 0 \
: ((strncmp (SEG_NAME (SEG), ".stab", 5) == 0 \
|| strcmp (SEG_NAME (SEG), ".ctors") == 0 \
|| strcmp (SEG_NAME (SEG), ".dtors") == 0) \
? 2 \
: (sh_small ? 2 : 4)))
#endif /* OBJ_COFF */
@ -133,9 +168,65 @@ extern int tc_coff_sizemachdep PARAMS ((fragS *));
/* Whether or not the target is big endian */
extern int target_big_endian;
#ifdef TE_LINUX
#define TARGET_FORMAT (!target_big_endian ? "elf32-sh-linux" : "elf32-shbig-linux")
#elif defined(TE_NetBSD)
#define TARGET_FORMAT (!target_big_endian ? "elf32-shl-nbsd" : "elf32-sh-nbsd")
#else
#define TARGET_FORMAT (!target_big_endian ? "elf32-shl" : "elf32-sh")
#endif
#define TARGET_FORMAT (shl ? "elf32-shl" : "elf32-sh")
#define elf_tc_final_processing sh_elf_final_processing
extern void sh_elf_final_processing PARAMS ((void));
#define DIFF_EXPR_OK /* foo-. gets turned into PC relative relocs */
#define GLOBAL_OFFSET_TABLE_NAME "_GLOBAL_OFFSET_TABLE_"
/* This is the relocation type for direct references to
GLOBAL_OFFSET_TABLE. It comes up in complicated expressions such
as _GLOBAL_OFFSET_TABLE_+[.-.L284], which cannot be expressed
normally with the regular expressions. The fixup specified here
when used at runtime implies that we should add the address of the
GOT to the specified location, and as a result we have simplified
the expression into something we can use. */
#define TC_RELOC_GLOBAL_OFFSET_TABLE BFD_RELOC_SH_GOTPC
/* This expression evaluates to false if the relocation is for a local object
for which we still want to do the relocation at runtime. True if we
are willing to perform this relocation while building the .o file.
This is only used for pcrel relocations, so GOTOFF does not need to be
checked here. I am not sure if some of the others are ever used with
pcrel, but it is easier to be safe than sorry.
We can't resolve references to the GOT or the PLT when creating the
object file, since these tables are only created by the linker.
Also, if the symbol is global, weak, common or not defined, the
assembler can't compute the appropriate reloc, since its location
can only be determined at link time. */
#define TC_RELOC_RTSYM_LOC_FIXUP(FIX) \
((FIX)->fx_r_type != BFD_RELOC_32_PLT_PCREL \
&& (FIX)->fx_r_type != BFD_RELOC_32_GOT_PCREL \
&& (FIX)->fx_r_type != BFD_RELOC_SH_GOTPC \
&& ((FIX)->fx_addsy == NULL \
|| (! S_IS_EXTERNAL ((FIX)->fx_addsy) \
&& ! S_IS_WEAK ((FIX)->fx_addsy) \
&& S_IS_DEFINED ((FIX)->fx_addsy) \
&& ! S_IS_COMMON ((FIX)->fx_addsy))))
#define md_parse_name(name, exprP, nextcharP) \
sh_parse_name ((name), (exprP), (nextcharP))
int sh_parse_name PARAMS ((char const *name,
expressionS *exprP,
char *nextchar));
#define TC_CONS_FIX_NEW(FRAG, OFF, LEN, EXP) \
sh_cons_fix_new ((FRAG), (OFF), (LEN), (EXP))
void sh_cons_fix_new PARAMS ((fragS *, int, int, expressionS *));
/* This is used to construct expressions out of @GOTOFF, @PLT and @GOT
symbols. The relocation type is stored in X_md. */
#define O_PIC_reloc O_md1
#endif /* OBJ_ELF */
/* end of tc-sh.h */

View File

@ -0,0 +1,251 @@
# 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 = @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) @MAINT@ $(PACKAGE).pot
all-no:
$(srcdir)/$(PACKAGE).pot: $(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-info:
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:

View File

@ -0,0 +1,38 @@
alpha.c
basic_blocks.c
basic_blocks.h
call_graph.c
call_graph.h
cg_arcs.c
cg_arcs.h
cg_dfn.c
cg_dfn.h
cg_print.c
cg_print.h
corefile.c
corefile.h
gmon.h
gmon_io.c
gmon_io.h
gmon_out.h
gprof.c
gprof.h
hertz.c
hertz.h
hist.c
hist.h
i386.c
mips.c
search_list.c
search_list.h
source.c
source.h
sparc.c
sym_ids.c
sym_ids.h
symtab.c
symtab.h
tahoe.c
utils.c
utils.h
vax.c

View File

@ -0,0 +1,505 @@
# SOME DESCRIPTIVE TITLE.
# Copyright (C) YEAR Free Software Foundation, Inc.
# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
#
#, fuzzy
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2002-01-31 18:32+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: 8bit\n"
#: alpha.c:93 mips.c:47
msgid "<indirect child>"
msgstr ""
#: alpha.c:110 mips.c:64
#, c-format
msgid "[find_call] %s: 0x%lx to 0x%lx\n"
msgstr ""
#: alpha.c:132
#, c-format
msgid "[find_call] 0x%lx: jsr%s <indirect_child>\n"
msgstr ""
#: alpha.c:142
#, c-format
msgid "[find_call] 0x%lx: bsr"
msgstr ""
#: basic_blocks.c:122 call_graph.c:90 hist.c:93
#, c-format
msgid "%s: %s: unexpected end of file\n"
msgstr ""
#: basic_blocks.c:190
#, c-format
msgid "%s: warning: ignoring basic-block exec counts (use -l or --line)\n"
msgstr ""
#. FIXME: This only works if bfd_vma is unsigned long.
#: basic_blocks.c:281 basic_blocks.c:291
#, c-format
msgid "%s:%d: (%s:0x%lx) %lu executions\n"
msgstr ""
#: basic_blocks.c:282 basic_blocks.c:292
msgid "<unknown>"
msgstr ""
#: basic_blocks.c:536
#, c-format
msgid ""
"\n"
"\n"
"Top %d Lines:\n"
"\n"
" Line Count\n"
"\n"
msgstr ""
#: basic_blocks.c:560
msgid ""
"\n"
"Execution Summary:\n"
"\n"
msgstr ""
#: basic_blocks.c:561
#, c-format
msgid "%9ld Executable lines in this file\n"
msgstr ""
#: basic_blocks.c:563
#, c-format
msgid "%9ld Lines executed\n"
msgstr ""
#: basic_blocks.c:564
#, c-format
msgid "%9.2f Percent of the file executed\n"
msgstr ""
#: basic_blocks.c:568
#, c-format
msgid ""
"\n"
"%9lu Total number of line executions\n"
msgstr ""
#: basic_blocks.c:570
#, c-format
msgid "%9.2f Average executions per line\n"
msgstr ""
#: call_graph.c:69
#, c-format
msgid "[cg_tally] arc from %s to %s traversed %lu times\n"
msgstr ""
#: cg_print.c:58
msgid ""
"\t\t Call graph (explanation follows)\n"
"\n"
msgstr ""
#: cg_print.c:60
msgid ""
"\t\t\tCall graph\n"
"\n"
msgstr ""
#: cg_print.c:63 hist.c:355
#, c-format
msgid ""
"\n"
"granularity: each sample hit covers %ld byte(s)"
msgstr ""
#: cg_print.c:67
#, c-format
msgid ""
" for %.2f%% of %.2f seconds\n"
"\n"
msgstr ""
#: cg_print.c:71
msgid ""
" no time propagated\n"
"\n"
msgstr ""
#: cg_print.c:80 cg_print.c:83 cg_print.c:85
msgid "called"
msgstr ""
#: cg_print.c:80 cg_print.c:85
msgid "total"
msgstr ""
#: cg_print.c:80
msgid "parents"
msgstr ""
#: cg_print.c:82 cg_print.c:83
msgid "index"
msgstr ""
#: cg_print.c:82
msgid "%time"
msgstr ""
#: cg_print.c:82 cg_print.c:83
msgid "self"
msgstr ""
#: cg_print.c:82
msgid "descendants"
msgstr ""
#: cg_print.c:83 hist.c:381
msgid "name"
msgstr ""
#: cg_print.c:85
msgid "children"
msgstr ""
#: cg_print.c:90
#, c-format
msgid "index %% time self children called name\n"
msgstr ""
#: cg_print.c:113
#, c-format
msgid " <cycle %d as a whole> [%d]\n"
msgstr ""
#: cg_print.c:339
#, c-format
msgid "%6.6s %5.5s %7.7s %11.11s %7.7s %7.7s <spontaneous>\n"
msgstr ""
#: cg_print.c:340
#, c-format
msgid "%6.6s %5.5s %7.7s %7.7s %7.7s %7.7s <spontaneous>\n"
msgstr ""
#: cg_print.c:574
msgid ""
"Index by function name\n"
"\n"
msgstr ""
#: cg_print.c:631 cg_print.c:640
#, c-format
msgid "<cycle %d>"
msgstr ""
#: corefile.c:64
#, c-format
msgid "%s: could not open %s.\n"
msgstr ""
#: corefile.c:78 corefile.c:112
#, c-format
msgid "%s: unable to parse mapping file %s.\n"
msgstr ""
#: corefile.c:154
#, c-format
msgid "%s: %s: not in a.out format\n"
msgstr ""
#: corefile.c:165
#, c-format
msgid "%s: can't find .text section in %s\n"
msgstr ""
#: corefile.c:223
#, c-format
msgid "%s: ran out room for %lu bytes of text space\n"
msgstr ""
#: corefile.c:237
#, c-format
msgid "%s: can't do -c\n"
msgstr ""
#: corefile.c:272
#, c-format
msgid "%s: -c not supported on architecture %s\n"
msgstr ""
#: corefile.c:439
#, c-format
msgid "%s: file `%s' has no symbols\n"
msgstr ""
#: corefile.c:739
#, c-format
msgid "%s: somebody miscounted: ltab.len=%d instead of %ld\n"
msgstr ""
#: gmon_io.c:83 gmon_io.c:137 gmon_io.c:188 gmon_io.c:216 gmon_io.c:386
#: gmon_io.c:413 gmon_io.c:609 gmon_io.c:634
#, c-format
msgid "%s: bits per address has unexpected value of %u\n"
msgstr ""
#: gmon_io.c:252 gmon_io.c:347
#, c-format
msgid "%s: file too short to be a gmon file\n"
msgstr ""
#: gmon_io.c:262 gmon_io.c:396
#, c-format
msgid "%s: file `%s' has bad magic cookie\n"
msgstr ""
#: gmon_io.c:273
#, c-format
msgid "%s: file `%s' has unsupported version %d\n"
msgstr ""
#: gmon_io.c:303
#, c-format
msgid "%s: %s: found bad tag %d (file corrupted?)\n"
msgstr ""
#: gmon_io.c:369
#, c-format
msgid "%s: profiling rate incompatible with first gmon file\n"
msgstr ""
#: gmon_io.c:429
#, c-format
msgid "%s: incompatible with first gmon file\n"
msgstr ""
#: gmon_io.c:457
#, c-format
msgid "%s: file '%s' does not appear to be in gmon.out format\n"
msgstr ""
#: gmon_io.c:478
#, c-format
msgid "%s: unexpected EOF after reading %d/%d bins\n"
msgstr ""
#: gmon_io.c:511
msgid "time is in ticks, not seconds\n"
msgstr ""
#: gmon_io.c:517 gmon_io.c:704
#, c-format
msgid "%s: don't know how to deal with file format %d\n"
msgstr ""
#: gmon_io.c:524
#, c-format
msgid "File `%s' (version %d) contains:\n"
msgstr ""
#: gmon_io.c:527
#, c-format
msgid "\t%d histogram record\n"
msgstr ""
#: gmon_io.c:528
#, c-format
msgid "\t%d histogram records\n"
msgstr ""
#: gmon_io.c:530
#, c-format
msgid "\t%d call-graph record\n"
msgstr ""
#: gmon_io.c:531
#, c-format
msgid "\t%d call-graph records\n"
msgstr ""
#: gmon_io.c:533
#, c-format
msgid "\t%d basic-block count record\n"
msgstr ""
#: gmon_io.c:534
#, c-format
msgid "\t%d basic-block count records\n"
msgstr ""
#: gprof.c:147
#, c-format
msgid ""
"Usage: %s [-[abcDhilLsTvwxyz]] [-[ACeEfFJnNOpPqQZ][name]] [-I dirs]\n"
"\t[-d[num]] [-k from/to] [-m min-count] [-t table-length]\n"
"\t[--[no-]annotated-source[=name]] [--[no-]exec-counts[=name]]\n"
"\t[--[no-]flat-profile[=name]] [--[no-]graph[=name]]\n"
"\t[--[no-]time=name] [--all-lines] [--brief] [--debug[=level]]\n"
"\t[--function-ordering] [--file-ordering]\n"
"\t[--directory-path=dirs] [--display-unused-functions]\n"
"\t[--file-format=name] [--file-info] [--help] [--line] [--min-count=n]\n"
"\t[--no-static] [--print-path] [--separate-files]\n"
"\t[--static-call-graph] [--sum] [--table-length=len] [--traditional]\n"
"\t[--version] [--width=n] [--ignore-non-functions]\n"
"\t[--demangle[=STYLE]] [--no-demangle]\n"
"\t[image-file] [profile-file...]\n"
msgstr ""
#: gprof.c:163
#, c-format
msgid "Report bugs to %s\n"
msgstr ""
#: gprof.c:235
#, c-format
msgid "%s: debugging not supported; -d ignored\n"
msgstr ""
#: gprof.c:315
#, c-format
msgid "%s: unknown file format %s\n"
msgstr ""
#. This output is intended to follow the GNU standards document.
#: gprof.c:399
#, c-format
msgid "GNU gprof %s\n"
msgstr ""
#: gprof.c:400
msgid ""
"Based on BSD gprof, copyright 1983 Regents of the University of California.\n"
msgstr ""
#: gprof.c:401
msgid ""
"This program is free software. This program has absolutely no warranty.\n"
msgstr ""
#: gprof.c:442
#, c-format
msgid "%s: unknown demangling style `%s'\n"
msgstr ""
#: gprof.c:462
#, c-format
msgid ""
"%s: Only one of --function-ordering and --file-ordering may be specified.\n"
msgstr ""
#: gprof.c:562
#, c-format
msgid "%s: sorry, file format `prof' is not yet supported\n"
msgstr ""
#: gprof.c:623
#, c-format
msgid "%s: gmon.out file is missing histogram\n"
msgstr ""
#: gprof.c:630
#, c-format
msgid "%s: gmon.out file is missing call-graph data\n"
msgstr ""
#: hist.c:122
#, c-format
msgid "%s: `%s' is incompatible with first gmon file\n"
msgstr ""
#: hist.c:138
#, c-format
msgid "%s: %s: unexpected EOF after reading %d of %d samples\n"
msgstr ""
#: hist.c:351
#, c-format
msgid "%c%c/call"
msgstr ""
#: hist.c:359
#, c-format
msgid ""
" for %.2f%% of %.2f %s\n"
"\n"
msgstr ""
#: hist.c:365
#, c-format
msgid ""
"\n"
"Each sample counts as %g %s.\n"
msgstr ""
#: hist.c:370
msgid ""
" no time accumulated\n"
"\n"
msgstr ""
#: hist.c:377
msgid "cumulative"
msgstr ""
#: hist.c:377
msgid "self "
msgstr ""
#: hist.c:377
msgid "total "
msgstr ""
#: hist.c:380
msgid "time"
msgstr ""
#: hist.c:380
msgid "calls"
msgstr ""
#: hist.c:469
msgid ""
"\n"
"\n"
"\n"
"flat profile:\n"
msgstr ""
#: hist.c:475
msgid "Flat profile:\n"
msgstr ""
#: mips.c:75
#, c-format
msgid "[find_call] 0x%lx: jal"
msgstr ""
#: mips.c:100
#, c-format
msgid "[find_call] 0x%lx: jalr\n"
msgstr ""
#: source.c:163
#, c-format
msgid "%s: could not locate `%s'\n"
msgstr ""
#: source.c:238
#, c-format
msgid "*** File %s:\n"
msgstr ""
#: utils.c:96
#, c-format
msgid " <cycle %d>"
msgstr ""

View File

@ -16,181 +16,12 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/********************** FILE HEADER **********************/
struct external_filehdr {
char f_magic[2]; /* magic number */
char f_nscns[2]; /* number of sections */
char f_timdat[4]; /* time & date stamp */
char f_symptr[4]; /* file pointer to symtab */
char f_nsyms[4]; /* number of symtab entries */
char f_opthdr[2]; /* sizeof(optional hdr) */
char f_flags[2]; /* flags */
};
#define L_LNNO_SIZE 4
#include "coff/external.h"
#define TIC30MAGIC 0xC000
#define TIC30BADMAG(x) (((x).f_magic!=TIC30MAGIC))
#define FILHDR struct external_filehdr
#define FILHSZ 20
/********************** AOUT "OPTIONAL HEADER" **********************/
typedef struct
{
char magic[2]; /* type of file */
char vstamp[2]; /* version stamp */
char tsize[4]; /* text size in bytes, padded to FW bdry*/
char dsize[4]; /* initialized data " " */
char bsize[4]; /* uninitialized data " " */
char entry[4]; /* entry pt. */
char text_start[4]; /* base of text used for this file */
char data_start[4]; /* base of data used for this file */
}
AOUTHDR;
#define AOUTHDRSZ 28
#define AOUTSZ 28
/********************** SECTION HEADER **********************/
struct external_scnhdr {
char s_name[8]; /* section name */
char s_paddr[4]; /* physical address, aliased s_nlib */
char s_vaddr[4]; /* virtual address */
char s_size[4]; /* section size */
char s_scnptr[4]; /* file ptr to raw data for section */
char s_relptr[4]; /* file ptr to relocation */
char s_lnnoptr[4]; /* file ptr to line numbers */
char s_nreloc[2]; /* number of relocation entries */
char s_nlnno[2]; /* number of line number entries*/
char s_flags[4]; /* flags */
};
/*
* names of "special" sections
*/
#define _TEXT ".text"
#define _DATA ".data"
#define _BSS ".bss"
#define SCNHDR struct external_scnhdr
#define SCNHSZ 40
/********************** LINE NUMBERS **********************/
/* 1 line number entry for every "breakpointable" source line in a section.
* Line numbers are grouped on a per function basis; first entry in a function
* grouping will have l_lnno = 0 and in place of physical address will be the
* symbol table index of the function name.
*/
struct external_lineno {
union {
char l_symndx[4]; /* function name symbol index, iff l_lnno == 0*/
char l_paddr[4]; /* (physical) address of line number */
} l_addr;
char l_lnno[4]; /* line number */
};
#define GET_LINENO_LNNO(abfd, ext) bfd_h_get_32(abfd, (bfd_byte *) (ext->l_lnno));
#define PUT_LINENO_LNNO(abfd,val, ext) bfd_h_put_32(abfd,val, (bfd_byte *) (ext->l_lnno));
#define LINENO struct external_lineno
#define LINESZ 8
/********************** SYMBOLS **********************/
#define E_SYMNMLEN 8 /* # characters in a symbol name */
#define E_FILNMLEN 14 /* # characters in a file name */
#define E_DIMNUM 4 /* # array dimensions in auxiliary entry */
struct external_syment
{
union {
char e_name[E_SYMNMLEN];
struct {
char e_zeroes[4];
char e_offset[4];
} e;
} e;
char e_value[4];
char e_scnum[2];
char e_type[2];
char e_sclass[1];
char e_numaux[1];
};
#define N_BTMASK (017)
#define N_TMASK (060)
#define N_BTSHFT (4)
#define N_TSHIFT (2)
union external_auxent {
struct {
char x_tagndx[4]; /* str, un, or enum tag indx */
union {
struct {
char x_lnno[2]; /* declaration line number */
char x_size[2]; /* str/union/array size */
} x_lnsz;
char x_fsize[4]; /* size of function */
} x_misc;
union {
struct { /* if ISFCN, tag, or .bb */
char x_lnnoptr[4]; /* ptr to fcn line # */
char x_endndx[4]; /* entry ndx past block end */
} x_fcn;
struct { /* if ISARY, up to 4 dimen. */
char x_dimen[E_DIMNUM][2];
} x_ary;
} x_fcnary;
char x_tvndx[2]; /* tv index */
} x_sym;
union {
char x_fname[E_FILNMLEN];
struct {
char x_zeroes[4];
char x_offset[4];
} x_n;
} x_file;
struct {
char x_scnlen[4]; /* section length */
char x_nreloc[2]; /* # relocation entries */
char x_nlinno[2]; /* # line numbers */
} x_scn;
struct {
char x_tvfill[4]; /* tv fill value */
char x_tvlen[2]; /* length of .tv */
char x_tvran[2][2]; /* tv range */
} x_tv; /* info about .tv section (in auxent of symbol .tv)) */
};
#define SYMENT struct external_syment
#define SYMESZ 18
#define AUXENT union external_auxent
#define AUXESZ 18
#define TIC30BADMAG(x) (((x).f_magic != TIC30MAGIC))
/********************** RELOCATION DIRECTIVES **********************/
@ -198,7 +29,8 @@ union external_auxent {
types on the z8k don't have room in the instruction for the entire
offset - eg with segments */
struct external_reloc {
struct external_reloc
{
char r_vaddr[4];
char r_symndx[4];
char r_offset[4];
@ -206,7 +38,6 @@ struct external_reloc {
char r_stuff[2];
};
#define RELOC struct external_reloc
#define RELSZ 16

View File

@ -16,194 +16,26 @@
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
/********************** FILE HEADER **********************/
struct external_filehdr {
char f_magic[2]; /* magic number */
char f_nscns[2]; /* number of sections */
char f_timdat[4]; /* time & date stamp */
char f_symptr[4]; /* file pointer to symtab */
char f_nsyms[4]; /* number of symtab entries */
char f_opthdr[2]; /* sizeof(optional hdr) */
char f_flags[2]; /* flags */
};
#define L_LNNO_SIZE 4
#include "coff/external.h"
/* Type of cpu is stored in flags */
#define F_Z8001 0x1000
#define F_Z8002 0x2000
#define F_MACHMASK 0xf000
#define Z8KMAGIC 0x8000
#define Z8KMAGIC 0x8000
#define Z8KBADMAG(x) (((x).f_magic!=Z8KMAGIC))
#define FILHDR struct external_filehdr
#define FILHSZ 20
/********************** AOUT "OPTIONAL HEADER" **********************/
typedef struct
{
char magic[2]; /* type of file */
char vstamp[2]; /* version stamp */
char tsize[4]; /* text size in bytes, padded to FW bdry*/
char dsize[4]; /* initialized data " " */
char bsize[4]; /* uninitialized data " " */
char entry[4]; /* entry pt. */
char text_start[4]; /* base of text used for this file */
char data_start[4]; /* base of data used for this file */
}
AOUTHDR;
#define AOUTHDRSZ 28
#define AOUTSZ 28
/********************** SECTION HEADER **********************/
struct external_scnhdr {
char s_name[8]; /* section name */
char s_paddr[4]; /* physical address, aliased s_nlib */
char s_vaddr[4]; /* virtual address */
char s_size[4]; /* section size */
char s_scnptr[4]; /* file ptr to raw data for section */
char s_relptr[4]; /* file ptr to relocation */
char s_lnnoptr[4]; /* file ptr to line numbers */
char s_nreloc[2]; /* number of relocation entries */
char s_nlnno[2]; /* number of line number entries*/
char s_flags[4]; /* flags */
};
/*
* names of "special" sections
*/
#define _TEXT ".text"
#define _DATA ".data"
#define _BSS ".bss"
#define SCNHDR struct external_scnhdr
#define SCNHSZ 40
/********************** LINE NUMBERS **********************/
/* 1 line number entry for every "breakpointable" source line in a section.
* Line numbers are grouped on a per function basis; first entry in a function
* grouping will have l_lnno = 0 and in place of physical address will be the
* symbol table index of the function name.
*/
struct external_lineno {
union {
char l_symndx[4]; /* function name symbol index, iff l_lnno == 0*/
char l_paddr[4]; /* (physical) address of line number */
} l_addr;
char l_lnno[4]; /* line number */
};
#define GET_LINENO_LNNO(abfd, ext) bfd_h_get_32(abfd, (bfd_byte *) (ext->l_lnno));
#define PUT_LINENO_LNNO(abfd,val, ext) bfd_h_put_32(abfd,val, (bfd_byte *) (ext->l_lnno));
#define LINENO struct external_lineno
#define LINESZ 8
/********************** SYMBOLS **********************/
#define E_SYMNMLEN 8 /* # characters in a symbol name */
#define E_FILNMLEN 14 /* # characters in a file name */
#define E_DIMNUM 4 /* # array dimensions in auxiliary entry */
struct external_syment
{
union {
char e_name[E_SYMNMLEN];
struct {
char e_zeroes[4];
char e_offset[4];
} e;
} e;
char e_value[4];
char e_scnum[2];
char e_type[2];
char e_sclass[1];
char e_numaux[1];
};
#define N_BTMASK (017)
#define N_TMASK (060)
#define N_BTSHFT (4)
#define N_TSHIFT (2)
#define Z8KBADMAG(x) (((x).f_magic != Z8KMAGIC))
union external_auxent {
struct {
char x_tagndx[4]; /* str, un, or enum tag indx */
union {
struct {
char x_lnno[2]; /* declaration line number */
char x_size[2]; /* str/union/array size */
} x_lnsz;
char x_fsize[4]; /* size of function */
} x_misc;
union {
struct { /* if ISFCN, tag, or .bb */
char x_lnnoptr[4]; /* ptr to fcn line # */
char x_endndx[4]; /* entry ndx past block end */
} x_fcn;
struct { /* if ISARY, up to 4 dimen. */
char x_dimen[E_DIMNUM][2];
} x_ary;
} x_fcnary;
char x_tvndx[2]; /* tv index */
} x_sym;
union {
char x_fname[E_FILNMLEN];
struct {
char x_zeroes[4];
char x_offset[4];
} x_n;
} x_file;
struct {
char x_scnlen[4]; /* section length */
char x_nreloc[2]; /* # relocation entries */
char x_nlinno[2]; /* # line numbers */
} x_scn;
struct {
char x_tvfill[4]; /* tv fill value */
char x_tvlen[2]; /* length of .tv */
char x_tvran[2][2]; /* tv range */
} x_tv; /* info about .tv section (in auxent of symbol .tv)) */
};
#define SYMENT struct external_syment
#define SYMESZ 18
#define AUXENT union external_auxent
#define AUXESZ 18
/********************** RELOCATION DIRECTIVES **********************/
/* The external reloc has an offset field, because some of the reloc
types on the z8k don't have room in the instruction for the entire
offset - eg with segments */
offset - eg with segments. */
struct external_reloc {
struct external_reloc
{
char r_vaddr[4];
char r_symndx[4];
char r_offset[4];
@ -211,7 +43,6 @@ struct external_reloc {
char r_stuff[2];
};
#define RELOC struct external_reloc
#define RELSZ 16

View File

@ -1,3 +1,9 @@
2002-07-07 Alan Modra <amodra@bigpond.net.au>
Merge from mainline.
2002-07-05 Alan Modra <amodra@bigpond.net.au>
* ldlang.c (print_wild_statement): Fix output formatting.
2002-05-09 Alan Modra <amodra@bigpond.net.au>
Merge from mainline.

View File

@ -2492,10 +2492,10 @@ print_wild_statement (w, os)
if (sec->spec.exclude_name_list != NULL)
{
name_list *tmp;
minfo ("EXCLUDE_FILE ( %s", sec->spec.exclude_name_list->name);
minfo ("EXCLUDE_FILE(%s", sec->spec.exclude_name_list->name);
for (tmp = sec->spec.exclude_name_list->next; tmp; tmp = tmp->next)
minfo (", %s", tmp->name);
minfo (")");
minfo (" %s", tmp->name);
minfo (") ");
}
if (sec->spec.name != NULL)
minfo ("%s", sec->spec.name);
@ -2503,6 +2503,8 @@ print_wild_statement (w, os)
minfo ("*");
if (sec->spec.sorted)
minfo (")");
if (sec->next)
minfo (" ");
}
minfo (")");