OSDN Git Service

* write.c (write_relocs): Call SET_SECTION_RELOCS if it is
authorian <ian>
Sun, 12 Sep 1999 03:44:41 +0000 (03:44 +0000)
committerian <ian>
Sun, 12 Sep 1999 03:44:41 +0000 (03:44 +0000)
defined.
* config/obj-coff.h (SET_SECTION_RELOCS): Define.
* doc/internals.texi (Object format backend): Document
SET_SECTION_RELOCS.

gas/ChangeLog
gas/config/obj-coff.c
gas/config/obj-coff.h
gas/doc/internals.texi
gas/write.c

index c41533d..c8da338 100644 (file)
@@ -5,6 +5,12 @@
 
 1999-09-11  Donn Terry  <donn@interix.com>
 
+       * write.c (write_relocs): Call SET_SECTION_RELOCS if it is
+       defined.
+       * config/obj-coff.h (SET_SECTION_RELOCS): Define.
+       * doc/internals.texi (Object format backend): Document
+       SET_SECTION_RELOCS.
+
        * config/tc-i386.c (tc_i386_fix_adjustable): Don't adjust
        relocations against global symbols if TE_PE.
 
index aa1ff29..3bdc73c 100644 (file)
@@ -1314,6 +1314,8 @@ coff_adjust_section_syms (abfd, sec, x)
       && sec != bss_section)
     return;
   secsym = section_symbol (sec);
+  /* This is an estimate; we'll plug in the real value using
+     SET_SECTION_RELOCS later */
   SA_SET_SCN_NRELOC (secsym, nrelocs);
   SA_SET_SCN_NLINNO (secsym, nlnno);
 }
index a8799a3..16d7986 100644 (file)
@@ -841,4 +841,8 @@ extern void obj_coff_pe_handle_link_once ();
 extern void obj_coff_init_stab_section PARAMS ((segT));
 #define INIT_STAB_SECTION(seg) obj_coff_init_stab_section (seg)
 
+/* Store the number of relocations in the section aux entry.  */
+#define SET_SECTION_RELOCS(sec, relocs, n) \
+  SA_SET_SCN_NRELOC (section_symbol (sec), n)
+
 #endif /* OBJ_FORMAT_H */
index 7f92105..6dc9ac7 100644 (file)
@@ -1374,6 +1374,13 @@ completed, but before the relocations have been generated.
 @item obj_frob_file_after_relocs
 If you define this macro, GAS will call it after the relocs have been
 generated.
+
+@item SET_SECTION_RELOCS (@var{sec}, @var{relocs}, @var{n})
+@cindex SET_SECTION_RELOCS
+If you define this, it will be called after the relocations have been set for
+the section @var{sec}.  The list of relocations is in @var{relocs}, and the
+number of relocations is in @var{n}.  This is only used with
+@code{BFD_ASSEMBLER}.
 @end table
 
 @node Emulations
index 20fdde0..e386ece 100644 (file)
@@ -1068,6 +1068,10 @@ write_relocs (abfd, sec, xxx)
                           (bfd_get_section_flags (abfd, sec)
                            & (flagword) ~SEC_RELOC));
 
+#ifdef SET_SECTION_RELOCS
+  SET_SECTION_RELOCS (sec, relocs, n);
+#endif
+
 #ifdef DEBUG3
   {
     int i;