aboutsummaryrefslogtreecommitdiff
path: root/gas/config
diff options
context:
space:
mode:
authorIan Lance Taylor <ian@airs.com>1993-03-25 22:09:27 +0000
committerIan Lance Taylor <ian@airs.com>1993-03-25 22:09:27 +0000
commit61001d969df165f3637663c1c9d336faae72dab6 (patch)
tree13140860617e0cae1750e68ba2706e3e8369d6c3 /gas/config
parent5f2912ccceab356e4da79d3f6d6358c7c45e2d92 (diff)
downloadgdb-61001d969df165f3637663c1c9d336faae72dab6.zip
gdb-61001d969df165f3637663c1c9d336faae72dab6.tar.gz
gdb-61001d969df165f3637663c1c9d336faae72dab6.tar.bz2
* config/obj-coffbfd.c (do_relocs_for): Remove a29k special case.
(fixup_segment): Add a29k special case; the linker is not prepared to see a segment offset here.
Diffstat (limited to 'gas/config')
-rw-r--r--gas/config/obj-coffbfd.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/gas/config/obj-coffbfd.c b/gas/config/obj-coffbfd.c
index 2cce1ae..2ab28a6 100644
--- a/gas/config/obj-coffbfd.c
+++ b/gas/config/obj-coffbfd.c
@@ -434,14 +434,6 @@ DEFUN (do_relocs_for, (abfd, h, file_cursor),
/* now emit the second bit */
intr.r_type = R_IHCONST;
intr.r_symndx = fix_ptr->fx_addnumber;
-
- /* The offset to the segment holding the symbol
- has already been counted in the R_IHIHALF.
- We don't want to add it in again for the
- R_IHCONST. */
- if (symbol_ptr)
- intr.r_symndx -=
- segment_info[S_GET_SEGMENT (symbol_ptr)].scnhdr.s_paddr;
(void) bfd_coff_swap_reloc_out (abfd, &intr, ext_ptr);
ext_ptr++;
}
@@ -2513,8 +2505,14 @@ DEFUN (fixup_segment, (segP, this_segment_type),
break;
default:
+#ifdef TC_A29K
+ /* This really should be handled in the linker, but
+ backward compatibility forbids. */
+ add_number += S_GET_VALUE (add_symbolP);
+#else
add_number += S_GET_VALUE (add_symbolP) +
segment_info[S_GET_SEGMENT (add_symbolP)].scnhdr.s_paddr;
+#endif
break;
case SEG_UNKNOWN: