2011-06-28 Tristan Gingold <gingold@adacore.com>
authorTristan Gingold <gingold@adacore.com>
Tue, 28 Jun 2011 08:39:39 +0000 (08:39 +0000)
committerTristan Gingold <gingold@adacore.com>
Tue, 28 Jun 2011 08:39:39 +0000 (08:39 +0000)
* vms-alpha.c (vms_private_data_struct): Make vms_linkage_index
unsigned int.
(_bfd_vms_write_etir): Write linkage index from reloc.

bfd/ChangeLog
bfd/vms-alpha.c

index d131ecc3bcbc118c5a3b002b574fd93931bbb215..292ec0a7fdd367d1260a5140cd577b0ebae5d8b0 100644 (file)
@@ -1,3 +1,9 @@
+2011-06-28  Tristan Gingold  <gingold@adacore.com>
+
+       * vms-alpha.c (vms_private_data_struct): Make vms_linkage_index
+       unsigned int.
+       (_bfd_vms_write_etir): Write linkage index from reloc.
+
 2011-06-28  Fawzi Mohamed <fawzi.mohamed@nokia.com>
 
        * mach-o.c (bfd_mach_o_read_command): Also ignore
index 1e2ab30d6c7e7844d4a29d2fa429a6b86cf80af0..87e35edf7ae98ca36eb7e6a591bd8127295ec831 100644 (file)
@@ -330,7 +330,7 @@ struct vms_private_data_struct
   struct vms_internal_eisd_map *gbl_eisd_tail;
 
   /* linkage index counter used by conditional store commands */
-  int vms_linkage_index;
+  unsigned int vms_linkage_index;
 
   /* see tc-alpha.c of gas for a description.  */
   int flag_hash_long_names;    /* -+, hash instead of truncate */
@@ -3947,8 +3947,9 @@ _bfd_vms_write_etir (bfd * abfd, int objtype ATTRIBUTE_UNUSED)
                  etir_output_check (abfd, section, curr_addr, 64);
                  _bfd_vms_output_begin_subrec (recwr, ETIR__C_STC_LP_PSB);
                  _bfd_vms_output_long
-                   (recwr, (unsigned long) PRIV (vms_linkage_index));
-                 PRIV (vms_linkage_index) += 2;
+                   (recwr, (unsigned long) rptr->addend);
+                  if (rptr->addend > PRIV (vms_linkage_index))
+                    PRIV (vms_linkage_index) = rptr->addend;
                  hash = _bfd_vms_length_hash_symbol
                     (abfd, sym->name, EOBJ__C_SYMSIZ);
                  _bfd_vms_output_counted (recwr, hash);