* write.c (adjust_reloc_syms): Make sure that symbols are
resolved; expression symbols may have been skipped. PR 11240.
This commit is contained in:
parent
e5c3708d54
commit
73d2578427
|
@ -1,3 +1,8 @@
|
||||||
|
Thu Dec 12 16:40:47 1996 Ian Lance Taylor <ian@cygnus.com>
|
||||||
|
|
||||||
|
* write.c (adjust_reloc_syms): Make sure that symbols are
|
||||||
|
resolved; expression symbols may have been skipped.
|
||||||
|
|
||||||
Thu Dec 12 15:18:21 1996 Michael Meissner <meissner@tiktok.cygnus.com>
|
Thu Dec 12 15:18:21 1996 Michael Meissner <meissner@tiktok.cygnus.com>
|
||||||
|
|
||||||
* config/tc-ppc.c (ppc_elf_suffix): Move @plt to
|
* config/tc-ppc.c (ppc_elf_suffix): Move @plt to
|
||||||
|
|
12
gas/write.c
12
gas/write.c
|
@ -669,6 +669,15 @@ adjust_reloc_syms (abfd, sec, xxx)
|
||||||
sym = fixp->fx_addsy;
|
sym = fixp->fx_addsy;
|
||||||
symsec = sym->bsym->section;
|
symsec = sym->bsym->section;
|
||||||
|
|
||||||
|
/* All symbols should have already been resolved at this
|
||||||
|
point. It is possible to see unresolved expression
|
||||||
|
symbols, though, since they are not in the regular symbol
|
||||||
|
table. */
|
||||||
|
if (sym != NULL && ! sym->sy_resolved)
|
||||||
|
resolve_symbol_value (sym);
|
||||||
|
if (fixp->fx_subsy != NULL && ! fixp->fx_subsy->sy_resolved)
|
||||||
|
resolve_symbol_value (fixp->fx_subsy);
|
||||||
|
|
||||||
if (sym != NULL && sym->sy_mri_common)
|
if (sym != NULL && sym->sy_mri_common)
|
||||||
{
|
{
|
||||||
/* These symbols are handled specially in fixup_segment. */
|
/* These symbols are handled specially in fixup_segment. */
|
||||||
|
@ -912,7 +921,8 @@ write_relocs (abfd, sec, xxx)
|
||||||
data = fixp->fx_frag->fr_literal + fixp->fx_where;
|
data = fixp->fx_frag->fr_literal + fixp->fx_where;
|
||||||
if (fixp->fx_where + fixp->fx_size
|
if (fixp->fx_where + fixp->fx_size
|
||||||
> fixp->fx_frag->fr_fix + fixp->fx_frag->fr_offset)
|
> fixp->fx_frag->fr_fix + fixp->fx_frag->fr_offset)
|
||||||
abort ();
|
as_bad_where (fixp->fx_file, fixp->fx_line,
|
||||||
|
"internal error: fixup not contained within frag");
|
||||||
for (j = 0; reloc[j]; j++)
|
for (j = 0; reloc[j]; j++)
|
||||||
{
|
{
|
||||||
s = bfd_install_relocation (stdoutput, reloc[j],
|
s = bfd_install_relocation (stdoutput, reloc[j],
|
||||||
|
|
Loading…
Reference in New Issue