Import of Binutils from the FSF 2.11 branch [checked out 19-July-2001].

This fixes an annoying `ld' bug.
This commit is contained in:
David E. O'Brien 2001-07-20 03:29:51 +00:00
parent dfb1a3b23c
commit e3bf29e1d6
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/vendor/binutils/dist/; revision=80016
34 changed files with 1557 additions and 235 deletions

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,103 @@
Please feel free to add, edit, delete this file.
Please do not make ChangeLog entries.
COPYING, COPYING.LIB, README
http://gnu.org.
Makefile.in; configure; configure.in
Please notify the following of any committed patches.
binutils@sources.redhat.com
gdb-patches@sources.redhat.com
bfd/; binutils/; gas/; gprof/; ld/; opcodes/; BFD's part of include/
binutils: http://sources.redhat.com/binutils/
Patches to binutils@sources.redhat.com.
Please notify the following of any interface changes:
gdb-patches@sources.redhat.com
cgen/; cgen parts of opcodes/, sim/ & include/
cgen: http://sources.redhat.com/cgen/
Patches to cgen@sources.redhat.com
May need separate opcodes/ or sim/ approval for
commits of regenerated files there.
config.guess; config.sub
config: http://gnu.org
Patches to config-patches@gnu.org.
Changes need to be done in tandem with the official CONFIG
sources or submitted to the master file maintainer and brought
in via a merge.
dejagnu/
Notify http://dejagnu.sourceforge.net/ of generic changes.
Generic patches to gdb-patches@sources.redhat.com &
sid@sources.redhat.com.
See also SID & GDB.
gdb/; mmalloc/; readline/; sim/; GDB's part of include/ & dejagnu/
gdb: http://sources.redhat.com/gdb/
Patches to gdb-patches@sources.redhat.com.
See also gdb/MAINTAINERS, sim/MAINTAINERS, mmalloc/MAINTAINERS.
include/
See binutils/, gdb/, sid/, gcc/, libiberty/ etc.
libiberty/; libiberty's part of include/
gcc: http://gcc.gnu.org
Changes need to be done in tandem with the official GCC
sources or submitted to the master file maintainer and brought
in via a merge.
ltconfig; ltmain.sh
libtool: http://gnu.org
Changes need to be done in tandem with the official LIBTOOL
sources or submitted to the master file maintainer and brought
in via a merge.
mkinstalldirs; move-if-change; symlink-tree
autoconf: http://gnu.org
Patches to autoconf-patches@gnu.org.
Changes need to be done in tandem with the official AUTOCONF
sources or submitted to the master file maintainer and brought
in via a merge.
newlib/; libgloss/
http://sources.redhat.com/newlib/
Patches to newlib@sources.redhat.com.
sid/; SID's part of cgen/ & dejagnu/
sid: http://sources.redhat.com/sid/
Patches to sid@sources.redhat.com
texinfo/texinfo.tex
texinfo: http://ftp.gnu.org.
Latest version can be found on ftp://ftp.gnu.org and can be
imported at any (reasonable) time.
Please not use GCC's texinfo. Please do not import texinfo.
tcl/; tix/; itcl/; tk/; libgui/
insight: http://sources.redhat.com/insight/
Contact insight@sources.redhat.com.
winsup/
cygwin: http://sources.redhat.com/cygwin
Patches to cygwin-patches@sources.redhat.com.
General discussion cygwin@sources.redhat.com.
See also winsup/MAINTAINERS.
expect/; config-ml.in; mpw-README; mpw-build.in; mpw-config.in;
mpw-configure; mpw-install; setup.com; missing; makefile.vms; utils/;
config/; config.if; makefile.vms; missing; ylwrap; mkdep; etc/;
install-sh; intl/
Ask.
modules file
Obviously changes to this file should not go through
overseers@sources.redhat.com. If you understand the file
format (or can cut-and-paste existing entries), modify it. If
it scares you, get someone who does understand it to help you.
Be prepared to fix it if you do break it.
/* Local variables: */
/* change-log-default-name: "/dev/null" */
/* End: */

View File

@ -0,0 +1,14 @@
Notes on enabling maintainer mode
Note that if you configure with --enable-maintainer-mode, you will need
special versions of automake, autoconf, libtool and gettext. You will
find the sources for these in ftp://sourceware.cygnus.com/pub/binutils.
Note - "make distclean" does not work with maintainer mode enabled.
The Makefiles in the some of the po/ subdirectories depend upon the
Makefiles in their parent directories, and distclean will delete the
Makefiles in the parent directories before running the Makefiles in
the child directories. There is no easy way around this (short of
changing the automake macros) as these dependencies need to exist in
order to correctly build the NLS files.

View File

@ -1,3 +1,31 @@
2001-07-06 Philip Blundell <philb@gnu.org>
* elf32-arm.h (elf32_arm_merge_private_bfd_data): Correct sense of
`interworking' warning message.
2001-07-05 Nick Clifton <nickc@cambridge.redhat.com>
* peicode.h (coff_swap_scnhdr_in): For sections containing
uninitialised data, only set their size to s_paddr if this does
not reset their size to zero. MS's latest compilers will set
s_paddr to zero.
2001-06-20 Bo Thorsen <bo@suse.co.uk>
* elf64-x86-64.c (elf64_x86_64_relocate_section): Fix linking of
shared libraries.
2001-06-21 Alan Modra <amodra@bigpond.net.au>
* elf32-hppa.c (elf32_hppa_size_dynamic_sections): Always
allocate local .got space. Use shortcuts from hash table for .got
and .plt rather than comparing section names.
(elf32_hppa_check_relocs): Use local_plt_refcounts var rather than
adjusting index into local_got_refcounts to document what we are
really doing.
(elf32_hppa_relocate_section): Similarly for local_plt_offsets.
Tidy .got and .plt error checking.
2001-06-19 Philip Blundell <philb@gnu.org>
* configure.in: Set version to 2.11.2.

View File

@ -2188,7 +2188,7 @@ Warning: %s %s interworking, whereas %s %s"),
bfd_get_filename (ibfd),
in_flags & EF_INTERWORK ? _("supports") : _("does not support"),
bfd_get_filename (obfd),
out_flags & EF_INTERWORK ? _("does not") : _("does"));
out_flags & EF_INTERWORK ? _("does") : _("does not"));
}
return flags_compatible;

View File

@ -0,0 +1,7 @@
elf32-ia64.c
elf32-target.h
elf64-ia64.c
elf64-target.h
peigen.c
pepigen.c
targmatch.h

View File

@ -0,0 +1,254 @@
aix386-core.c
aout-adobe.c
aout-arm.c
aout-cris.c
aout-ns32k.c
aout-sparcle.c
aout-target.h
aout-tic30.c
aout0.c
aout32.c
aout64.c
aoutf1.h
aoutx.h
archive.c
archures.c
armnetbsd.c
bfd.c
binary.c
bout.c
cache.c
cf-i386lynx.c
cf-m68klynx.c
cf-sparclynx.c
cisco-core.c
coff-a29k.c
coff-alpha.c
coff-apollo.c
coff-arm.c
coff-aux.c
coff-go32.c
coff-h8300.c
coff-h8500.c
coff-i386.c
coff-i860.c
coff-i960.c
coff-m68k.c
coff-m88k.c
coff-mips.c
coff-pmac.c
coff-rs6000.c
coff-sh.c
coff-sparc.c
coff-stgo32.c
coff-svm68k.c
coff-tic30.c
coff-tic54x.c
coff-tic80.c
coff-u68k.c
coff-w65.c
coff-we32k.c
coff-z8k.c
coff64-rs6000.c
coffcode.h
coffgen.c
cofflink.c
coffswap.h
corefile.c
cpu-a29k.c
cpu-alpha.c
cpu-arc.c
cpu-arm.c
cpu-avr.c
cpu-cris.c
cpu-d10v.c
cpu-d30v.c
cpu-fr30.c
cpu-h8300.c
cpu-h8500.c
cpu-hppa.c
cpu-i370.c
cpu-i386.c
cpu-i860.c
cpu-i960.c
cpu-ia64.c
cpu-m10200.c
cpu-m10300.c
cpu-m32r.c
cpu-m68hc11.c
cpu-m68hc12.c
cpu-m68k.c
cpu-m88k.c
cpu-mcore.c
cpu-mips.c
cpu-ns32k.c
cpu-pj.c
cpu-powerpc.c
cpu-rs6000.c
cpu-sh.c
cpu-sparc.c
cpu-tic30.c
cpu-tic54x.c
cpu-tic80.c
cpu-v850.c
cpu-vax.c
cpu-w65.c
cpu-we32k.c
cpu-z8k.c
demo64.c
dwarf1.c
dwarf2.c
ecoff.c
ecofflink.c
ecoffswap.h
efi-app-ia32.c
efi-app-ia64.c
elf-bfd.h
elf-hppa.h
elf-m10200.c
elf-m10300.c
elf.c
elf32-arc.c
elf32-arm.h
elf32-avr.c
elf32-cris.c
elf32-d10v.c
elf32-d30v.c
elf32-fr30.c
elf32-gen.c
elf32-hppa.c
elf32-hppa.h
elf32-i370.c
elf32-i386.c
elf32-i860.c
elf32-i960.c
elf32-m32r.c
elf32-m68hc11.c
elf32-m68hc12.c
elf32-m68k.c
elf32-m88k.c
elf32-mcore.c
elf32-mips.c
elf32-pj.c
elf32-ppc.c
elf32-sh-lin.c
elf32-sh.c
elf32-sparc.c
elf32-v850.c
elf32.c
elf64-alpha.c
elf64-gen.c
elf64-hppa.c
elf64-hppa.h
elf64-mips.c
elf64-sparc.c
elf64-x86-64.c
elf64.c
elfarm-nabi.c
elfarm-oabi.c
elfcode.h
elfcore.h
elflink.c
elflink.h
epoc-pe-arm.c
epoc-pei-arm.c
format.c
freebsd.h
genlink.h
go32stub.h
hash.c
hp300bsd.c
hp300hpux.c
hpux-core.c
i386aout.c
i386bsd.c
i386dynix.c
i386freebsd.c
i386linux.c
i386lynx.c
i386mach3.c
i386msdos.c
i386netbsd.c
i386os9k.c
ieee.c
ihex.c
init.c
irix-core.c
libaout.h
libbfd.c
libbfd.h
libcoff.h
libecoff.h
libhppa.h
libieee.h
libnlm.h
liboasys.h
libpei.h
linker.c
lynx-core.c
m68k4knetbsd.c
m68klinux.c
m68klynx.c
m68knetbsd.c
m88kmach3.c
mipsbsd.c
netbsd.h
newsos3.c
nlm-target.h
nlm.c
nlm32-alpha.c
nlm32-i386.c
nlm32-ppc.c
nlm32-sparc.c
nlm32.c
nlm64.c
nlmcode.h
nlmswap.h
ns32k.h
ns32knetbsd.c
oasys.c
opncls.c
osf-core.c
pc532-mach.c
pe-arm.c
pe-i386.c
pe-mcore.c
pe-mips.c
pe-ppc.c
pe-sh.c
pei-arm.c
pei-i386.c
pei-mcore.c
pei-mips.c
pei-ppc.c
pei-sh.c
peicode.h
ppcboot.c
reloc.c
reloc16.c
riscix.c
sco5-core.c
section.c
som.c
som.h
sparclinux.c
sparclynx.c
sparcnetbsd.c
srec.c
stab-syms.c
stabs.c
sunos.c
syms.c
targets.c
tekhex.c
trad-core.c
vaxnetbsd.c
versados.c
vms-gsd.c
vms-hdr.c
vms-misc.c
vms-tir.c
vms.c
vms.h
xcoff-target.h
xcofflink.c

View File

@ -1,3 +1,11 @@
2001-06-29 James Cownie <jcownie@etnus.com>
* readelf.c: Support DWARF 2.1 attributes.
2001-06-27 Nick Clifton <nickc@cambridge.redhat.com>
* objcopy.c (strip_main): Accept -o command line switch.
2001-06-11 Alan Modra <amodra@bigpond.net.au>
Merge from mainline.

View File

@ -240,6 +240,7 @@ static struct option strip_options[] =
{"keep-symbol", required_argument, 0, 'K'},
{"output-format", required_argument, 0, 'O'}, /* Obsolete */
{"output-target", required_argument, 0, 'O'},
{"output-file", required_argument, 0, 'o'},
{"preserve-dates", no_argument, 0, 'p'},
{"remove-section", required_argument, 0, 'R'},
{"strip-all", no_argument, 0, 's'},
@ -772,7 +773,7 @@ filter_symbols (abfd, obfd, osyms, isyms, symcount)
even if relocatable is false. External users of the
library containing the $idata section may reference these
symbols. */
keep = 1;
keep = 1;
else if ((flags & BSF_GLOBAL) != 0 /* Global symbol. */
|| (flags & BSF_WEAK) != 0
|| bfd_is_und_section (bfd_get_section (sym))
@ -782,6 +783,10 @@ filter_symbols (abfd, obfd, osyms, isyms, symcount)
keep = (strip_symbols != STRIP_DEBUG
&& strip_symbols != STRIP_UNNEEDED
&& ! convert_debugging);
else if (bfd_get_section (sym)->comdat)
/* COMDAT sections store special information in local
symbols, so we cannot risk stripping any of them. */
keep = 1;
else /* Local symbol. */
keep = (strip_symbols != STRIP_UNNEEDED
&& (discard_locals != LOCALS_ALL
@ -1835,7 +1840,7 @@ strip_main (argc, argv)
struct section_list *p;
char *output_file = NULL;
while ((c = getopt_long (argc, argv, "b:i:I:j:K:N:s:O:d:F:L:G:R:SpgxXVvW:",
while ((c = getopt_long (argc, argv, "I:O:F:K:N:R:o:sSpdgxXVv",
strip_options, (int *) 0)) != EOF)
{
switch (c)
@ -1967,7 +1972,7 @@ copy_main (argc, argv)
struct section_list *p;
struct stat statbuf;
while ((c = getopt_long (argc, argv, "b:i:I:j:K:N:s:O:d:F:L:R:SpgxXVvW:",
while ((c = getopt_long (argc, argv, "b:i:I:j:K:N:s:O:d:F:L:G:R:SpgxXVvW:",
copy_options, (int *) 0)) != EOF)
{
switch (c)
@ -2360,10 +2365,8 @@ copy_main (argc, argv)
output_target = input_target;
if (preserve_dates)
{
if (stat (input_filename, &statbuf) < 0)
fatal (_("Cannot stat: %s: %s"), input_filename, strerror (errno));
}
if (stat (input_filename, & statbuf) < 0)
fatal (_("Cannot stat: %s: %s"), input_filename, strerror (errno));
/* If there is no destination file then create a temp and rename
the result into the input. */

View File

@ -2,7 +2,7 @@
Copyright 1998, 1999, 2000, 2001 Free Software Foundation, Inc.
Originally developed by Eric Youngdale <eric@andante.jic.com>
Modifications by Nick Clifton <nickc@cygnus.com>
Modifications by Nick Clifton <nickc@redhat.com>
This file is part of GNU Binutils.
@ -5896,6 +5896,20 @@ get_AT_name (attribute)
case DW_AT_variable_parameter: return "DW_AT_variable_parameter";
case DW_AT_virtuality: return "DW_AT_virtuality";
case DW_AT_vtable_elem_location: return "DW_AT_vtable_elem_location";
/* DWARF 2.1 values. */
case DW_AT_allocated: return "DW_AT_allocated";
case DW_AT_associated: return "DW_AT_associated";
case DW_AT_data_location: return "DW_AT_data_location";
case DW_AT_stride: return "DW_AT_stride";
case DW_AT_entry_pc: return "DW_AT_entry_pc";
case DW_AT_use_UTF8: return "DW_AT_use_UTF8";
case DW_AT_extension: return "DW_AT_extension";
case DW_AT_ranges: return "DW_AT_ranges";
case DW_AT_trampoline: return "DW_AT_trampoline";
case DW_AT_call_column: return "DW_AT_call_column";
case DW_AT_call_file: return "DW_AT_call_file";
case DW_AT_call_line: return "DW_AT_call_line";
/* SGI/MIPS extensions. */
case DW_AT_MIPS_fde: return "DW_AT_MIPS_fde";
case DW_AT_MIPS_loop_begin: return "DW_AT_MIPS_loop_begin";
case DW_AT_MIPS_tail_loop_begin: return "DW_AT_MIPS_tail_loop_begin";
@ -5907,6 +5921,7 @@ get_AT_name (attribute)
case DW_AT_MIPS_abstract_name: return "DW_AT_MIPS_abstract_name";
case DW_AT_MIPS_clone_origin: return "DW_AT_MIPS_clone_origin";
case DW_AT_MIPS_has_inlines: return "DW_AT_MIPS_has_inlines";
/* GNU extensions. */
case DW_AT_sf_names: return "DW_AT_sf_names";
case DW_AT_src_info: return "DW_AT_src_info";
case DW_AT_mac_info: return "DW_AT_mac_info";
@ -6472,6 +6487,22 @@ decode_location_expression (data, pointer_size, length)
printf ("DW_OP_nop");
break;
/* DWARF 2.1 extensions. */
case DW_OP_push_object_address:
printf ("DW_OP_push_object_address");
break;
case DW_OP_call2:
printf ("DW_OP_call2: <%lx>", (long) byte_get (data, 2));
data += 2;
break;
case DW_OP_call4:
printf ("DW_OP_call4: <%lx>", (long) byte_get (data, 4));
data += 4;
break;
case DW_OP_calli:
printf ("DW_OP_calli");
break;
default:
if (op >= DW_OP_lo_user
&& op <= DW_OP_hi_user)
@ -6725,10 +6756,25 @@ read_and_display_attr (attribute, form, data, cu_offset, pointer_size)
}
break;
case DW_AT_ordering:
switch (uvalue)
{
case -1: printf ("(undefined)"); break;
case 0: printf ("(row major)"); break;
case 1: printf ("(column major)"); break;
}
break;
case DW_AT_frame_base:
case DW_AT_location:
case DW_AT_data_member_location:
case DW_AT_vtable_elem_location:
case DW_AT_allocated:
case DW_AT_associated:
case DW_AT_data_location:
case DW_AT_stride:
case DW_AT_upper_bound:
case DW_AT_lower_bound:
if (block_start)
{
printf ("(");

View File

@ -3,7 +3,7 @@
### WARNING: this file contains embedded tabs. Do not run untabify on this file.
# Configuration script
# Copyright (C) 1988, 90, 91, 92, 93, 94, 95, 96, 97, 98, 1999
# Copyright (C) 1988, 90, 91, 92, 93, 94, 95, 96, 97, 98, 1999, 2000, 2001
# Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
@ -804,46 +804,57 @@ fi
# If CC and CXX are not set in the environment, and the Makefile
# exists, try to extract them from it. This is to handle running
# ./config.status by hand.
if [ -z "${CC}" ] && [ -r Makefile ]; then
sed -n -e ':loop
/\\$/ N
s/\\\n//g
t loop
/^CC[ ]*=/ s/CC[ ]*=[ ]*\(.*\)/\1/p' < Makefile > Makefile.cc
CC=`tail -1 Makefile.cc`
rm -f Makefile.cc
fi
# ./config.status by hand. Do the same for various Makefile fragments
# so that they can specify these vars.
for file in Mafefile ${package_makefile_rules_frag} \
${site:+config/ms-${site}} ${host_makefile_frag} \
${target_makefile_frag} ${package_makefile_frag}
do
if ! test -r $file; then
file=${srcdir}/${file}
if ! test -r $file; then continue; fi
fi
if [ -z "${CFLAGS}" ] && [ -r Makefile ]; then
sed -n -e ':loop
if [ -z "${CC}" ]; then
sed -n -e ':loop
/\\$/ N
s/\\\n//g
t loop
/^CFLAGS[ ]*=/ s/CFLAGS[ ]*=[ ]*\(.*\)/\1/p' < Makefile > Makefile.cc
CFLAGS=`tail -1 Makefile.cc`
rm -f Makefile.cc
fi
/^CC[ ]*=/ s/CC[ ]*=[ ]*\(.*\)/\1/p' < $file > Makefile.cc
CC=`tail -1 Makefile.cc`
rm -f Makefile.cc
fi
if [ -z "${CXX}" ] && [ -r Makefile ]; then
sed -n -e ':loop
if [ -z "${CFLAGS}" ]; then
sed -n -e ':loop
/\\$/ N
s/\\\n//g
t loop
/^CXX[ ]*=/ s/CXX[ ]*=[ ]*\(.*\)/\1/p' < Makefile > Makefile.cc
CXX=`tail -1 Makefile.cc`
rm -f Makefile.cc
fi
/^CFLAGS[ ]*=/ s/CFLAGS[ ]*=[ ]*\(.*\)/\1/p' < $file > Makefile.cc
CFLAGS=`tail -1 Makefile.cc`
rm -f Makefile.cc
fi
if [ -z "${CXXFLAGS}" ] && [ -r Makefile ]; then
sed -n -e ':loop
if [ -z "${CXX}" ]; then
sed -n -e ':loop
/\\$/ N
s/\\\n//g
t loop
/^CXXFLAGS[ ]*=/ s/CXXFLAGS[ ]*=[ ]*\(.*\)/\1/p' < Makefile > Makefile.cc
CXXFLAGS=`tail -1 Makefile.cc`
rm -f Makefile.cc
fi
/^CXX[ ]*=/ s/CXX[ ]*=[ ]*\(.*\)/\1/p' < $file > Makefile.cc
CXX=`tail -1 Makefile.cc`
rm -f Makefile.cc
fi
if [ -z "${CXXFLAGS}" ]; then
sed -n -e ':loop
/\\$/ N
s/\\\n//g
t loop
/^CXXFLAGS[ ]*=/ s/CXXFLAGS[ ]*=[ ]*\(.*\)/\1/p' < $file > Makefile.cc
CXXFLAGS=`tail -1 Makefile.cc`
rm -f Makefile.cc
fi
done
# Generate a default definition for YACC. This is used if the makefile can't
# locate bison or byacc in objdir.

View File

@ -60,7 +60,7 @@ fi
# these tools are built for the host environment
# Note, the powerpc-eabi build depends on sim occurring before gdb in order to
# know that we are building the simulator.
host_tools="byacc flex bison binutils ld gas gcc cgen sid sim gdb make patch prms send-pr gprof gdbtest tgas etc expect dejagnu ash bash bzip2 m4 autoconf automake libtool ispell grep diff rcs cvssrc fileutils shellutils time textutils wdiff find emacs emacs19 uudecode hello tar gzip indent recode release sed utils guile perl apache inet gawk findutils snavigator libtool gettext zip"
host_tools="texinfo byacc flex bison binutils ld gas gcc cgen sid sim gdb make patch prms send-pr gprof gdbtest tgas etc expect dejagnu ash bash bzip2 m4 autoconf automake libtool ispell grep diff rcs cvssrc fileutils shellutils time textutils wdiff find emacs emacs19 uudecode hello tar gzip indent recode release sed utils guile perl apache inet gawk findutils snavigator libtool gettext zip"
# these libraries are built for the target environment, and are built after
# the host libraries and the host tools (which may be a cross compiler)
@ -127,6 +127,9 @@ appdirs=""
# Work in distributions that contain no compiler tools, like Autoconf.
if [ -d ${srcdir}/config ]; then
case "${host}" in
alpha*-*-freebsd*)
host_makefile_frag="${host_makefile_frag} config/mh-fbsdaxp"
;;
m68k-hp-hpux*)
host_makefile_frag="${host_makefile_frag} config/mh-hp300"
;;

View File

@ -1,3 +1,22 @@
2001-07-14 matthew green <mrg@eterna.com.au>
* configure.in (i386-*-netbsdelf*): New target.
* configure: Regenerate.
2001-07-07 Nick Clifton <nickc@cambridge.redhat.com>
* ecoff.c (add_file): Only set debug_type to DEBUG_NONE if it is
DEBUG_UNSPECIFIED.
2001-06-27 Nick Clifton <nickc@cambridge.redhat.com>
* config/tc-arm.c (do_ldst): Use MVN to build simple inverted
constants.
2000-06-20 Tom Rix <trix@redhat.com>
* config/tc-ppc.c (ppc_comm): Change default alignment to 4 bytes.
2001-06-18 Philip Blundell <philb@gnu.org>
* config/tc-arm.c (do_msr): Remove restriction on usage of

View File

@ -4431,38 +4431,52 @@ do_ldst (str, flags)
return;
}
if (inst.reloc.exp.X_op == O_constant
&& (value = validate_immediate (inst.reloc.exp.X_add_number)) != FAIL)
if (inst.reloc.exp.X_op == O_constant)
{
/* This can be done with a mov instruction. */
inst.instruction &= LITERAL_MASK;
inst.instruction |= INST_IMMEDIATE | (OPCODE_MOV << DATA_OP_SHIFT);
inst.instruction |= (flags & COND_MASK) | (value & 0xfff);
end_of_line (str);
return;
}
else
{
/* Insert into literal pool. */
if (add_to_lit_pool () == FAIL)
value = validate_immediate (inst.reloc.exp.X_add_number);
if (value != FAIL)
{
if (!inst.error)
inst.error = _("literal pool insertion failed");
/* This can be done with a mov instruction. */
inst.instruction &= LITERAL_MASK;
inst.instruction |= INST_IMMEDIATE | (OPCODE_MOV << DATA_OP_SHIFT);
inst.instruction |= (flags & COND_MASK) | (value & 0xfff);
end_of_line (str);
return;
}
value = validate_immediate (~ inst.reloc.exp.X_add_number);
/* Change the instruction exp to point to the pool. */
if (halfword)
if (value != FAIL)
{
inst.instruction |= HWOFFSET_IMM;
inst.reloc.type = BFD_RELOC_ARM_HWLITERAL;
/* This can be done with a mvn instruction. */
inst.instruction &= LITERAL_MASK;
inst.instruction |= INST_IMMEDIATE | (OPCODE_MVN << DATA_OP_SHIFT);
inst.instruction |= (flags & COND_MASK) | (value & 0xfff);
end_of_line (str);
return;
}
else
inst.reloc.type = BFD_RELOC_ARM_LITERAL;
inst.reloc.pc_rel = 1;
inst.instruction |= (REG_PC << 16);
pre_inc = 1;
}
/* Insert into literal pool. */
if (add_to_lit_pool () == FAIL)
{
if (!inst.error)
inst.error = _("literal pool insertion failed");
return;
}
/* Change the instruction exp to point to the pool. */
if (halfword)
{
inst.instruction |= HWOFFSET_IMM;
inst.reloc.type = BFD_RELOC_ARM_HWLITERAL;
}
else
inst.reloc.type = BFD_RELOC_ARM_LITERAL;
inst.reloc.pc_rel = 1;
inst.instruction |= (REG_PC << 16);
pre_inc = 1;
}
else
{

View File

@ -2340,7 +2340,8 @@ static boolean ppc_stab_symbol;
/* The .comm and .lcomm pseudo-ops for XCOFF. XCOFF puts common
symbols in the .bss segment as though they were local common
symbols, and uses a different smclas. */
symbols, and uses a different smclas. The native Aix 4.3.3 assember
aligns .comm and .lcomm to 4 bytes. */
static void
ppc_comm (lcomm)
@ -2382,7 +2383,7 @@ ppc_comm (lcomm)
{
/* The third argument to .comm is the alignment. */
if (*input_line_pointer != ',')
align = 3;
align = 2;
else
{
++input_line_pointer;
@ -2390,7 +2391,7 @@ ppc_comm (lcomm)
if (align <= 0)
{
as_warn (_("ignoring bad alignment"));
align = 3;
align = 2;
}
}
}
@ -2399,11 +2400,7 @@ ppc_comm (lcomm)
char *lcomm_name;
char lcomm_endc;
if (size <= 1)
align = 0;
else if (size <= 2)
align = 1;
else if (size <= 4)
if (size <= 4)
align = 2;
else
align = 3;

View File

@ -2356,6 +2356,7 @@ for this_target in $target $canon_targets ; do
i386-*-beoself* | i386-*-beos*) fmt=elf bfd_gas=yes ;;
i386-*-bsd*) fmt=aout em=386bsd ;;
i386-*-netbsd0.8) fmt=aout em=386bsd ;;
i386-*-netbsdelf*) fmt=elf em=nbsd bfd_gas=yes;;
i386-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes;;
i386-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes;;
i386-*-linux*aout* | i386-*-linux*oldld) fmt=aout em=linux ;;

View File

@ -240,6 +240,7 @@ changequote([,])dnl
i386-*-beoself* | i386-*-beos*) fmt=elf bfd_gas=yes ;;
i386-*-bsd*) fmt=aout em=386bsd ;;
i386-*-netbsd0.8) fmt=aout em=386bsd ;;
i386-*-netbsdelf*) fmt=elf em=nbsd bfd_gas=yes;;
i386-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes;;
i386-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes;;
i386-*-linux*aout* | i386-*-linux*oldld) fmt=aout em=linux ;;

View File

@ -2220,7 +2220,7 @@ add_file (file_name, indx, fake)
if (! symbol_table_frozen && debug_type == DEBUG_UNSPECIFIED)
debug_type = DEBUG_ECOFF;
}
else
else if (debug_type == DEBUG_UNSPECIFIED)
debug_type = DEBUG_NONE;
#ifndef NO_LISTING

View File

@ -1,3 +1,7 @@
2001-07-19 David O'Brien <obrien@FreeBSD.org>
* libiberty.h: Add lbasename.
2001-06-07 Alan Modra <amodra@bigpond.net.au>
* Many files: Update copyright notices.

View File

@ -1,3 +1,7 @@
2001-06-29 James Cownie <jcownie@etnus.com>
* dwarf2.h: Add DWARF 2.1 attribues.
2001-06-11 Alan Modra <amodra@bigpond.net.au>
Merge from mainline.

View File

@ -1,6 +1,7 @@
/* Declarations and definitions of codes relating to the DWARF symbolic
/* Declarations and definitions of codes relating to the DWARF2 symbolic
debugging information format.
Copyright 1992, 1993, 1995, 1996, 1999 Free Software Foundation, Inc.
Copyright 1992, 1993, 1995, 1996, 1999, 2000, 2001
Free Software Foundation, Inc.
Written by Gary Funck (gary@intrepid.com) The Ada Joint Program
Office (AJPO), Florida State Unviversity and Silicon Graphics Inc.
@ -29,7 +30,13 @@ Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
Revision 2.0.0 (July 27, 1993) developed by the UNIX International
Programming Languages Special Interest Group (UI/PLSIG) and distributed
by UNIX International. Copies of this specification are available from
UNIX International, 20 Waterview Boulevard, Parsippany, NJ, 07054. */
UNIX International, 20 Waterview Boulevard, Parsippany, NJ, 07054.
This file also now contains definitions from the DWARF 2.1 specification. */
/* This file is shared between GCC and GDB, and should not contain
prototypes. */
#ifndef _ELF_DWARF2_H
#define _ELF_DWARF2_H
@ -121,7 +128,6 @@ DWARF2_Internal_ARange;
/* Tag names and codes. */
enum dwarf_tag
{
DW_TAG_padding = 0x00,
@ -172,18 +178,20 @@ enum dwarf_tag
DW_TAG_variant_part = 0x33,
DW_TAG_variable = 0x34,
DW_TAG_volatile_type = 0x35,
/* SGI/MIPS Extensions */
/* SGI/MIPS Extensions. */
DW_TAG_MIPS_loop = 0x4081,
/* GNU extensions */
DW_TAG_format_label = 0x4101, /* for FORTRAN 77 and Fortran 90 */
/* GNU extensions. */
DW_TAG_format_label = 0x4101, /* For FORTRAN 77 and Fortran 90. */
DW_TAG_function_template = 0x4102, /* for C++ */
DW_TAG_class_template = 0x4103 /* for C++ */
DW_TAG_class_template = 0x4103, /* for C++ */
DW_TAG_GNU_BINCL = 0x4104,
DW_TAG_GNU_EINCL = 0x4105
};
#define DW_TAG_lo_user 0x4080
#define DW_TAG_hi_user 0xffff
/* flag that tells whether entry has a child or not */
/* Flag that tells whether entry has a child or not. */
#define DW_children_no 0
#define DW_children_yes 1
@ -279,7 +287,20 @@ enum dwarf_attribute
DW_AT_variable_parameter = 0x4b,
DW_AT_virtuality = 0x4c,
DW_AT_vtable_elem_location = 0x4d,
/* SGI/MIPS Extensions */
/* DWARF 2.1 values. */
DW_AT_allocated = 0x4e,
DW_AT_associated = 0x4f,
DW_AT_data_location = 0x50,
DW_AT_stride = 0x51,
DW_AT_entry_pc = 0x52,
DW_AT_use_UTF8 = 0x53,
DW_AT_extension = 0x54,
DW_AT_ranges = 0x55,
DW_AT_trampoline = 0x56,
DW_AT_call_column = 0x57,
DW_AT_call_file = 0x58,
DW_AT_call_line = 0x59,
/* SGI/MIPS Extensions. */
DW_AT_MIPS_fde = 0x2001,
DW_AT_MIPS_loop_begin = 0x2002,
DW_AT_MIPS_tail_loop_begin = 0x2003,
@ -292,19 +313,18 @@ enum dwarf_attribute
DW_AT_MIPS_clone_origin = 0x200a,
DW_AT_MIPS_has_inlines = 0x200b,
/* GNU extensions. */
DW_AT_sf_names = 0x2101,
DW_AT_src_info = 0x2102,
DW_AT_mac_info = 0x2103,
DW_AT_sf_names = 0x2101,
DW_AT_src_info = 0x2102,
DW_AT_mac_info = 0x2103,
DW_AT_src_coords = 0x2104,
DW_AT_body_begin = 0x2105,
DW_AT_body_end = 0x2106
DW_AT_body_end = 0x2106
};
#define DW_AT_lo_user 0x2000 /* implementation-defined range start */
#define DW_AT_hi_user 0x3ff0 /* implementation-defined range end */
#define DW_AT_lo_user 0x2000 /* Implementation-defined range start. */
#define DW_AT_hi_user 0x3ff0 /* Implementation-defined range end. */
/* Location atom names and codes. */
enum dwarf_location_atom
{
DW_OP_addr = 0x03,
@ -451,14 +471,18 @@ enum dwarf_location_atom
DW_OP_piece = 0x93,
DW_OP_deref_size = 0x94,
DW_OP_xderef_size = 0x95,
DW_OP_nop = 0x96
DW_OP_nop = 0x96,
/* DWARF 2.1 extensions. */
DW_OP_push_object_address = 0x97,
DW_OP_call2 = 0x98, /* 1 2-byte offset of DIE. */
DW_OP_call4 = 0x99, /* 1 4-byte offset of DIE. */
DW_OP_calli = 0x9a
};
#define DW_OP_lo_user 0x80 /* implementation-defined range start */
#define DW_OP_hi_user 0xff /* implementation-defined range end */
#define DW_OP_lo_user 0x80 /* Implementation-defined range start. */
#define DW_OP_hi_user 0xff /* Implementation-defined range end. */
/* Type encodings. */
enum dwarf_type
{
DW_ATE_void = 0x0,
@ -482,7 +506,7 @@ enum dwarf_array_dim_ordering
DW_ORD_col_major = 1
};
/* access attribute */
/* Access attribute. */
enum dwarf_access_attribute
{
DW_ACCESS_public = 1,
@ -490,7 +514,7 @@ enum dwarf_access_attribute
DW_ACCESS_private = 3
};
/* visibility */
/* Visibility. */
enum dwarf_visibility_attribute
{
DW_VIS_local = 1,
@ -498,7 +522,7 @@ enum dwarf_visibility_attribute
DW_VIS_qualified = 3
};
/* virtuality */
/* Virtuality. */
enum dwarf_virtuality_attribute
{
DW_VIRTUALITY_none = 0,
@ -506,7 +530,7 @@ enum dwarf_virtuality_attribute
DW_VIRTUALITY_pure_virtual = 2
};
/* case sensitivity */
/* Case sensitivity. */
enum dwarf_id_case
{
DW_ID_case_sensitive = 0,
@ -515,7 +539,7 @@ enum dwarf_id_case
DW_ID_case_insensitive = 3
};
/* calling convention */
/* Calling convention. */
enum dwarf_calling_convention
{
DW_CC_normal = 0x1,
@ -526,7 +550,7 @@ enum dwarf_calling_convention
#define DW_CC_lo_user 0x40
#define DW_CC_hi_user 0xff
/* inline attribute */
/* Inline attribute. */
enum dwarf_inline_attribute
{
DW_INL_not_inlined = 0,
@ -535,14 +559,14 @@ enum dwarf_inline_attribute
DW_INL_declared_inlined = 3
};
/* descriminant lists */
/* Descriminant lists. */
enum dwarf_descrim_list
{
DW_DSC_label = 0,
DW_DSC_range = 1
};
/* line number opcodes */
/* Line number opcodes. */
enum dwarf_line_number_ops
{
DW_LNS_extended_op = 0,
@ -557,7 +581,7 @@ enum dwarf_line_number_ops
DW_LNS_fixed_advance_pc = 9
};
/* line number extended opcodes */
/* Line number extended opcodes. */
enum dwarf_line_number_x_ops
{
DW_LNE_end_sequence = 1,
@ -565,7 +589,7 @@ enum dwarf_line_number_x_ops
DW_LNE_define_file = 3
};
/* call frame information */
/* Call frame information. */
enum dwarf_call_frame_info
{
DW_CFA_advance_loc = 0x40,
@ -586,8 +610,20 @@ enum dwarf_call_frame_info
DW_CFA_def_cfa = 0x0c,
DW_CFA_def_cfa_register = 0x0d,
DW_CFA_def_cfa_offset = 0x0e,
/* SGI/MIPS specific */
DW_CFA_MIPS_advance_loc8 = 0x1d
DW_CFA_def_cfa_expression = 0x0f,
DW_CFA_expression = 0x10,
/* Dwarf 2.1. */
DW_CFA_offset_extended_sf = 0x11,
DW_CFA_def_cfa_sf = 0x12,
DW_CFA_def_cfa_offset_sf = 0x13,
/* SGI/MIPS specific. */
DW_CFA_MIPS_advance_loc8 = 0x1d,
/* GNU extensions. */
DW_CFA_GNU_window_save = 0x2d,
DW_CFA_GNU_args_size = 0x2e,
DW_CFA_GNU_negative_offset_extended = 0x2f
};
#define DW_CIE_ID 0xffffffff
@ -603,7 +639,6 @@ enum dwarf_call_frame_info
#define DW_ADDR_none 0
/* Source language names and codes. */
enum dwarf_source_language
{
DW_LANG_C89 = 0x0001,
@ -621,11 +656,10 @@ enum dwarf_source_language
};
#define DW_LANG_lo_user 0x8000 /* implementation-defined range start */
#define DW_LANG_hi_user 0xffff /* implementation-defined range start */
#define DW_LANG_lo_user 0x8000 /* Implementation-defined range start. */
#define DW_LANG_hi_user 0xffff /* Implementation-defined range start. */
/* Names and codes for macro information. */
enum dwarf_macinfo_record_type
{
DW_MACINFO_define = 1,
@ -634,5 +668,4 @@ enum dwarf_macinfo_record_type
DW_MACINFO_end_file = 4,
DW_MACINFO_vendor_ext = 255
};
#endif /* _ELF_DWARF2_H */

View File

@ -81,6 +81,10 @@ extern char *basename ();
# endif
#endif
/* A well-defined basename () that is always compiled in. */
extern char *lbasename PARAMS ((const char *));
/* Concatenate an arbitrary number of strings, up to (char *) NULL.
Allocates memory using xmalloc. */

View File

@ -1,3 +1,29 @@
2001-07-19 David O'Brien <obrien@FreeBSD.org>
* emultempl/elf32.em: Do not assuming that contents of the buffer
returned from basename function will remain unchanged accross other
function calls.
2001-07-19 Nick Clifton <nickc@cambridge.redhat.com>
* ldlang.c (lang_leave_overlay): If a region is specified assign
it to all sections inside the overlay unless they have been
assigned to the own, non-default, memory region.
2001-07-14 matthew green <mrg@eterna.com.au>
* configure.tgt (i386-*-netbsdelf*): New target.
(i386-*-netbsd*): Set targ_extra_emuls to `elf_i386'
2001-06-27 Alan Modra <amodra@bigpond.net.au>
* emulparams/hppa64linux.sh: New file.
* configure.tgt: hppa*64*-*-linux* uses hppa64linux.sh
* Makefile.am (ALL_64_EMULATIONS): Add ehppa64linux.o
(ehppa64linux.c): Add rule to make it.
Run "make dep-am".
* Makefile.in: Regenerate.
2001-06-07 Andreas Jaeger <aj@suse.de>
* elf_x86_64.sh (NONPAGED_TEXT_START_ADDR): Increase.

View File

@ -248,7 +248,8 @@ ALL_64_EMULATIONS = \
eelf64bmip.o \
eelf64btsmip.o \
eelf64ltsmip.o \
eelf64hppa.o
eelf64hppa.o \
ehppa64linux.o
ALL_EMUL_EXTRA_OFILES = \
deffilep.o \
@ -560,6 +561,9 @@ ehppalinux.c: $(srcdir)/emulparams/hppalinux.sh \
$(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/hppaelf.em \
$(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} hppalinux "$(tdir_hppalinux)"
ehppa64linux.c: $(srcdir)/emulparams/hppa64linux.sh \
$(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} hppa64linux "$(tdir_hppa64linux)"
ei386aout.c: $(srcdir)/emulparams/i386aout.sh \
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS}
${GENSCRIPTS} i386aout "$(tdir_i386aout)"

View File

@ -357,7 +357,8 @@ ALL_64_EMULATIONS = \
eelf64bmip.o \
eelf64btsmip.o \
eelf64ltsmip.o \
eelf64hppa.o
eelf64hppa.o \
ehppa64linux.o
ALL_EMUL_EXTRA_OFILES = \
@ -1274,6 +1275,9 @@ ehppalinux.c: $(srcdir)/emulparams/hppalinux.sh \
$(srcdir)/emultempl/elf32.em $(srcdir)/emultempl/hppaelf.em \
$(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} hppalinux "$(tdir_hppalinux)"
ehppa64linux.c: $(srcdir)/emulparams/hppa64linux.sh \
$(srcdir)/emultempl/elf32.em $(srcdir)/scripttempl/elf.sc ${GEN_DEPENDS}
${GENSCRIPTS} hppa64linux "$(tdir_hppa64linux)"
ei386aout.c: $(srcdir)/emulparams/i386aout.sh \
$(srcdir)/emultempl/generic.em $(srcdir)/scripttempl/aout.sc ${GEN_DEPENDS}
${GENSCRIPTS} i386aout "$(tdir_i386aout)"

View File

@ -144,7 +144,12 @@ i[3456]86-*-sysv[45]*) targ_emul=elf_i386 ;;
i[3456]86-*-solaris2*) targ_emul=elf_i386 ;;
i[3456]86-*-unixware) targ_emul=elf_i386 ;;
i[3456]86-*-solaris*) targ_emul=elf_i386 ;;
i[3456]86-*-netbsd*) targ_emul=i386nbsd ;;
i[3456]86-*-netbsdelf*) targ_emul=elf_i386
targ_extra_emuls=i386nbsd
;;
i[3456]86-*-netbsd*) targ_emul=i386nbsd
targ_extra_emuls=elf_i386
;;
i[3456]86-*-netware) targ_emul=i386nw ;;
i[3456]86-*-elf*) targ_emul=elf_i386 ;;
i[3456]86-*-freebsdaout* | i[3456]86-*-freebsd[12].* | i[3456]86-*-freebsd[12])
@ -242,6 +247,7 @@ m68*-hp*-netbsd*) targ_emul=m68k4knbsd ;;
m68*-*-netbsd*) targ_emul=m68knbsd ;;
m68*-*-psos*) targ_emul=m68kpsos ;;
m68*-*-rtems*) targ_emul=m68kcoff ;;
hppa*64*-*-linux-gnu*) targ_emul=hppa64linux ;;
hppa*64*-*) targ_emul=elf64hppa ;;
hppa*-*-linux-gnu*) targ_emul=hppalinux ;;
hppa*-*-*elf*) targ_emul=hppaelf ;;

View File

@ -142,7 +142,7 @@ gld${EMULATION_NAME}_vercheck (s)
soname = bfd_elf_get_dt_soname (s->the_bfd);
if (soname == NULL)
soname = basename (bfd_get_filename (s->the_bfd));
soname = lbasename (bfd_get_filename (s->the_bfd));
for (l = global_vercheck_needed; l != NULL; l = l->next)
{
@ -224,7 +224,7 @@ gld${EMULATION_NAME}_stat_needed (s)
soname = bfd_elf_get_dt_soname (s->the_bfd);
if (soname == NULL)
soname = basename (s->filename);
soname = lbasename (s->filename);
if (strncmp (soname, global_needed->name,
suffix - global_needed->name) == 0)
@ -329,7 +329,7 @@ cat >>e${EMULATION_NAME}.c <<EOF
einfo ("%F%P:%B: bfd_stat failed: %E\n", abfd);
/* First strip off everything before the last '/'. */
soname = basename (abfd->filename);
soname = lbasename (abfd->filename);
if (trace_file_tries)
info_msg (_("found %s at %s\n"), soname, name);

View File

@ -4766,10 +4766,13 @@ lang_leave_overlay (fill, memspec, phdrs, lma_memspec)
const char *lma_memspec;
{
lang_memory_region_type *region;
lang_memory_region_type * default_region;
lang_memory_region_type *lma_region;
struct overlay_list *l;
struct lang_nocrossref *nocrossref;
default_region = lang_memory_region_lookup ("*default*");
if (memspec == NULL)
region = NULL;
else
@ -4789,8 +4792,15 @@ lang_leave_overlay (fill, memspec, phdrs, lma_memspec)
if (fill != 0 && l->os->fill == 0)
l->os->fill = fill;
if (region != NULL && l->os->region == NULL)
/* Assign a region to the sections, if one has been specified.
Override the assignment of the default section, but not
other sections. */
if (region != NULL &&
(l->os->region == NULL ||
l->os->region == default_region))
l->os->region = region;
/* We only set lma_region for the first overlay section, as
subsequent overlay sections will have load_base set relative
to the first section. Also, don't set lma_region if
@ -4800,6 +4810,7 @@ lang_leave_overlay (fill, memspec, phdrs, lma_memspec)
if (lma_region != NULL && l->os->lma_region == NULL
&& l->next == NULL && l->os->load_base == NULL)
l->os->lma_region = lma_region;
if (phdrs != NULL && l->os->phdrs == NULL)
l->os->phdrs = phdrs;

View File

@ -1,3 +1,7 @@
2001-07-19 David O'Brien <obrien@FreeBSD.org>
* lbasename.c: New file.
2000-12-29 DJ Delorie <dj@redhat.com>
* fnmatch.c: Make the note about the origins of this file more

View File

@ -128,7 +128,8 @@ CFILES = asprintf.c alloca.c argv.c atexit.c basename.c bcmp.c bcopy.c \
bzero.c calloc.c choose-temp.c clock.c concat.c cplus-dem.c \
cp-demangle.c dyn-string.c fdmatch.c fnmatch.c getcwd.c \
getpwd.c getopt.c getopt1.c getpagesize.c getruntime.c \
floatformat.c hashtab.c hex.c index.c insque.c md5.c memchr.c \
floatformat.c hashtab.c hex.c index.c insque.c lbasename.c \
md5.c memchr.c \
memcmp.c memcpy.c memmove.c memset.c mkstemps.c objalloc.c obstack.c \
partition.c pexecute.c putenv.c random.c rename.c rindex.c setenv.c \
sigsetmask.c safe-ctype.c sort.c spaces.c splay-tree.c strcasecmp.c \
@ -140,7 +141,8 @@ CFILES = asprintf.c alloca.c argv.c atexit.c basename.c bcmp.c bcopy.c \
# These are always included in the library.
REQUIRED_OFILES = argv.o choose-temp.o concat.o cplus-dem.o cp-demangle.o \
dyn-string.o fdmatch.o fnmatch.o getopt.o getopt1.o getpwd.o \
getruntime.o hashtab.o hex.o floatformat.o md5.o objalloc.o obstack.o \
getruntime.o hashtab.o hex.o floatformat.o lbasename.o md5.o \
objalloc.o obstack.o \
partition.o pexecute.o safe-ctype.o sort.o spaces.o splay-tree.o \
strerror.o strsignal.o xatexit.o xexit.o xmalloc.o xmemdup.o \
xstrdup.o xstrerror.o
@ -276,6 +278,7 @@ getpwd.o: config.h $(INCDIR)/libiberty.h
getruntime.o: config.h $(INCDIR)/libiberty.h
hex.o: $(INCDIR)/libiberty.h
floatformat.o: $(INCDIR)/floatformat.h
lbasename.o: $(INCDIR)/libiberty.h
mkstemps.o: config.h
md5.o: config.h
objalloc.o: config.h $(INCDIR)/objalloc.h

View File

@ -0,0 +1,89 @@
/* Libiberty basename. Like basename, but is not overridden by the
system C library.
Copyright (C) 2001 Free Software Foundation, Inc.
This file is part of the libiberty library.
Libiberty is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
License as published by the Free Software Foundation; either
version 2 of the License, or (at your option) any later version.
Libiberty is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Library General Public License for more details.
You should have received a copy of the GNU Library General Public
License along with libiberty; see the file COPYING.LIB. If
not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
Boston, MA 02111-1307, USA. */
/*
NAME
lbasename -- return pointer to last component of a pathname
SYNOPSIS
char *lbasename (const char *name)
DESCRIPTION
Given a pointer to a string containing a typical pathname
(/usr/src/cmd/ls/ls.c for example), returns a pointer to the
last component of the pathname ("ls.c" in this case). The
returned pointer is guaranteed to lie within the original
string. This latter fact is not true of many vendor C
libraries, which return special strings or modify the passed
strings for particular input.
In particular, the empty string returns the same empty string,
and a path ending in '/' returns the empty string after it.
*/
#include "ansidecl.h"
#include "libiberty.h"
#include "safe-ctype.h"
#ifndef DIR_SEPARATOR
# define DIR_SEPARATOR '/'
#endif
#if defined (_WIN32) || defined (__MSDOS__) \
|| defined (__DJGPP__) || defined (__OS2__)
# define HAVE_DOS_BASED_FILE_SYSTEM
# ifndef DIR_SEPARATOR_2
# define DIR_SEPARATOR_2 '\\'
# endif
#endif
/* Define IS_DIR_SEPARATOR. VMS uses '::', ':', '[...]' and '<...>' to
separate the different components of a file specification. It's a
bit of a stretch to call ':', ']' and '>' directory separators, so
just define the test to find the file name component. */
#ifdef VMS
# define IS_DIR_SEPARATOR(ch) ((ch) == ':' || (ch) == ']' || (ch) == '>')
#else
# ifndef DIR_SEPARATOR_2
# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
# else
# define IS_DIR_SEPARATOR(ch) \
(((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
# endif
#endif
char *
lbasename (name)
const char *name;
{
const char *base;
#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
/* Skip over a possible disk name. */
if (ISALPHA (name[0]) && name[1] == ':')
name += 2;
#endif
for (base = name; *name; name++)
if (IS_DIR_SEPARATOR (*name))
base = name + 1;
return (char *) base;
}

View File

@ -1,3 +1,11 @@
2001-07-16 Philip Blundell <philb@gnu.org>
* arm-dis.c (print_insn_arm): Use decimal for offsets in LDR/STR.
2001-07-03 Zoltan Hidvegi <hzoli@hzoli.2y.net>
* ppc-opc.c: Fix encoding of 'clf' instruction.
2001-06-11 Alan Modra <amodra@bigpond.net.au>
Merge from mainline.

View File

@ -201,7 +201,7 @@ print_insn_arm (pc, info, given)
offset = - offset;
/* pre-indexed */
func (stream, ", #%x]", offset);
func (stream, ", #%d]", offset);
offset += pc + 8;
@ -215,7 +215,7 @@ print_insn_arm (pc, info, given)
else
{
/* Post indexed. */
func (stream, "], #%x", offset);
func (stream, "], #%d", offset);
offset = pc + 8; /* ie ignore the offset. */
}
@ -280,7 +280,7 @@ print_insn_arm (pc, info, given)
if ((given & 0x00800000) == 0)
offset = -offset;
func (stream, "[pc, #%x]\t; ", offset);
func (stream, "[pc, #%d]\t; ", offset);
(*info->print_address_func)
(offset + pc + 8, info);

View File

@ -2480,7 +2480,7 @@ const struct powerpc_opcode powerpc_opcodes[] = {
{ "mtsrdin", X(31,114), XRA_MASK, PPC64, { RS, RB } },
{ "clf", X(31,118), XRB_MASK, POWER, { RT, RA } },
{ "clf", X(31,118), XTO_MASK, POWER, { RA, RB } },
{ "lbzux", X(31,119), X_MASK, COM, { RT, RAL, RB } },