diff options
author | Nick Clifton <nickc@redhat.com> | 2003-12-20 08:01:47 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2003-12-20 08:01:47 +0000 |
commit | 31a91399d17d79d437ded1275a841d917e3af2ed (patch) | |
tree | fc64eecad05db76c0eb07aa5601d5a088003468d /gas | |
parent | 6c55c395b7607381b175954a11523d6d8047c84a (diff) | |
download | gdb-31a91399d17d79d437ded1275a841d917e3af2ed.zip gdb-31a91399d17d79d437ded1275a841d917e3af2ed.tar.gz gdb-31a91399d17d79d437ded1275a841d917e3af2ed.tar.bz2 |
(md_apply_fix3): Handle the case where a .byte directive generates a
pc-relative relocation.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/tc-ppc.c | 17 |
2 files changed, 18 insertions, 4 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 512b58c..dc47f4d 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2003-12-20 Nick Clifton <nickc@redhat.com> + + * config/tc-ppc.c (md_apply_fix3): Handle the case where a + .byte directive generates a pc-relative relocation. + 2003-12-19 Nick Clifton <nickc@redhat.com> Andreas Schwab <schwab@suse.de> diff --git a/gas/config/tc-ppc.c b/gas/config/tc-ppc.c index f4cf419..86daea0 100644 --- a/gas/config/tc-ppc.c +++ b/gas/config/tc-ppc.c @@ -5899,10 +5899,19 @@ md_apply_fix3 (fixP, valP, seg) case BFD_RELOC_8: if (fixP->fx_pcrel) - abort (); - - md_number_to_chars (fixP->fx_frag->fr_literal + fixP->fx_where, - value, 1); + { + /* This can occur if there is a bug in the input assembler, eg: + ".byte <undefined_symbol> - ." */ + if (fixP->fx_addsy) + as_bad (_("Unable to handle reference to symbol %s"), + S_GET_NAME (fixP->fx_addsy)); + else + as_bad (_("Unable to resolve expression")); + fixP->fx_done = 1; + } + else + md_number_to_chars (fixP->fx_frag->fr_literal + fixP->fx_where, + value, 1); break; case BFD_RELOC_24_PLT_PCREL: |