diff options
author | David E. O'Brien <obrien@FreeBSD.org> | 2002-04-12 19:33:52 +0000 |
---|---|---|
committer | David E. O'Brien <obrien@FreeBSD.org> | 2002-04-12 19:33:52 +0000 |
commit | 0aecce1e344d43b8c267e4097a6add59b602e1e6 (patch) | |
tree | b6180daa6d6e558ce86214f98d103e01ff4e70ff /contrib/binutils/bfd/ecoff.c | |
parent | 55ba99bb8dde491eff144f287834f17d0c9e541e (diff) | |
download | src-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.c | 15 |
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; } |