diff options
author | Ian Lance Taylor <ian@airs.com> | 1996-12-05 16:06:14 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 1996-12-05 16:06:14 +0000 |
commit | 00a69b895a5ff0836c14a1d7c799963e9f0e10a6 (patch) | |
tree | b5c9a13df166c4034e6cf8fa6848f64ec7edbf41 | |
parent | c6571f118d392784e35d70fbf0341f150417d92f (diff) | |
download | gdb-00a69b895a5ff0836c14a1d7c799963e9f0e10a6.zip gdb-00a69b895a5ff0836c14a1d7c799963e9f0e10a6.tar.gz gdb-00a69b895a5ff0836c14a1d7c799963e9f0e10a6.tar.bz2 |
* write.c (fixup_segment): Don't discard the symbol for a PC
relative fixup to an absolute symbol.
PR 11204.
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/write.c | 12 |
2 files changed, 15 insertions, 2 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 03d606f..5733d0e 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +Thu Dec 5 11:03:31 1996 Ian Lance Taylor <ian@cygnus.com> + + * write.c (fixup_segment): Don't discard the symbol for a PC + relative fixup to an absolute symbol. + start-sanitize-d10v Wed Dec 4 15:42:41 1996 Martin M. Hunt <hunt@pizza.cygnus.com> diff --git a/gas/write.c b/gas/write.c index 736e150..b85ffa7 100644 --- a/gas/write.c +++ b/gas/write.c @@ -297,7 +297,8 @@ fix_new_exp (frag, where, size, exp, pcrel, r_type) break; default: - as_bad ("expression too complex for fixup"); + add = make_expr_symbol (exp); + break; } return fix_new_internal (frag, where, size, add, sub, off, @@ -2429,7 +2430,8 @@ fixup_segment (fixP, this_segment_type) } else { - if (add_symbol_segment == absolute_section) + if (add_symbol_segment == absolute_section + && ! pcrel) { #ifdef TC_I960 /* See comment about reloc_callj() above. */ @@ -2480,9 +2482,15 @@ fixup_segment (fixP, this_segment_type) else { seg_reloc_count++; +/* start-sanitize-v850 */ +#if !(defined (TC_V850) && defined (OBJ_ELF)) +/* end-sanitize-v850 */ #if !(defined (TC_M68K) && defined (OBJ_ELF)) #if !defined (TC_I386) || !(defined (OBJ_ELF) || defined (OBJ_COFF)) add_number += S_GET_VALUE (add_symbolP); +/* start-sanitize-v850 */ +#endif +/* end-sanitize-v850 */ #endif #endif } |