aboutsummaryrefslogtreecommitdiff
path: root/contrib/binutils/bfd/ecoff.c
diff options
context:
space:
mode:
authorDavid E. O'Brien <obrien@FreeBSD.org>2002-04-12 19:33:52 +0000
committerDavid E. O'Brien <obrien@FreeBSD.org>2002-04-12 19:33:52 +0000
commit0aecce1e344d43b8c267e4097a6add59b602e1e6 (patch)
treeb6180daa6d6e558ce86214f98d103e01ff4e70ff /contrib/binutils/bfd/ecoff.c
parent55ba99bb8dde491eff144f287834f17d0c9e541e (diff)
downloadsrc-0aecce1e344d43b8c267e4097a6add59b602e1e6.tar.gz
src-0aecce1e344d43b8c267e4097a6add59b602e1e6.zip
Import of Binutils from the FSF 2.12 branch.
(this fixes several linker problems and coredumps) These bits are taken from the FSF anoncvs repo on 10-April-2002 13:24 Zulu
Notes
Notes: svn path=/vendor/binutils/dist/; revision=94536
Diffstat (limited to 'contrib/binutils/bfd/ecoff.c')
-rw-r--r--contrib/binutils/bfd/ecoff.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/contrib/binutils/bfd/ecoff.c b/contrib/binutils/bfd/ecoff.c
index 1e3b6a97a9cb..70224cb2a9de 100644
--- a/contrib/binutils/bfd/ecoff.c
+++ b/contrib/binutils/bfd/ecoff.c
@@ -1,5 +1,5 @@
/* Generic ECOFF (Extended-COFF) routines.
- Copyright 1990, 1991, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001
+ Copyright 1990, 1991, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
Free Software Foundation, Inc.
Original version by Per Bothner.
Full support added by Ian Lance Taylor, ian@cygnus.com.
@@ -4393,6 +4393,13 @@ ecoff_link_write_external (h, data)
bfd *output_bfd = einfo->abfd;
boolean strip;
+ if (h->root.type == bfd_link_hash_warning)
+ {
+ h = (struct ecoff_link_hash_entry *) h->root.u.i.link;
+ if (h->root.type == bfd_link_hash_new)
+ return true;
+ }
+
/* We need to check if this symbol is being stripped. */
if (h->root.type == bfd_link_hash_undefined
|| h->root.type == bfd_link_hash_undefweak)
@@ -4474,6 +4481,7 @@ ecoff_link_write_external (h, data)
switch (h->root.type)
{
default:
+ case bfd_link_hash_warning:
case bfd_link_hash_new:
abort ();
case bfd_link_hash_undefined:
@@ -4502,9 +4510,8 @@ ecoff_link_write_external (h, data)
h->esym.asym.value = h->root.u.c.size;
break;
case bfd_link_hash_indirect:
- case bfd_link_hash_warning:
- /* FIXME: Ignore these for now. The circumstances under which
- they should be written out are not clear to me. */
+ /* We ignore these symbols, since the indirected symbol is
+ already in the hash table. */
return true;
}