* elf-bfd.h (RELOC_AGAINST_DISCARDED_SECTION): Handle compound
authorMaciej W. Rozycki <macro@linux-mips.org>
Mon, 7 May 2012 03:27:52 +0000 (03:27 +0000)
committerMaciej W. Rozycki <macro@linux-mips.org>
Mon, 7 May 2012 03:27:52 +0000 (03:27 +0000)
relocations.
* elfxx-mips.c (mips_reloc_against_discarded_section): New
function.
(_bfd_mips_elf_relocate_section): Call it, in place of
RELOC_AGAINST_DISCARDED_SECTION.
* elf-m10200.c (mn10200_elf_relocate_section): Update arguments
to RELOC_AGAINST_DISCARDED_SECTION.
* elf-m10300.c (mn10300_elf_relocate_section): Likewise.
* elf32-arm.c (elf32_arm_relocate_section): Likewise.
* elf32-avr.c (elf32_avr_relocate_section): Likewise.
* elf32-bfin.c (bfin_relocate_section): Likewise.
(bfinfdpic_relocate_section): Likewise.
* elf32-cr16.c (elf32_cr16_relocate_section): Likewise.
* elf32-cr16c.c (elf32_cr16c_relocate_section): Likewise.
* elf32-cris.c (cris_elf_relocate_section): Likewise.
* elf32-crx.c (elf32_crx_relocate_section): Likewise.
* elf32-d10v.c (elf32_d10v_relocate_section): Likewise.
* elf32-epiphany.c (epiphany_elf_relocate_section): Likewise.
* elf32-fr30.c (fr30_elf_relocate_section): Likewise.
* elf32-frv.c (elf32_frv_relocate_section): Likewise.
* elf32-h8300.c (elf32_h8_relocate_section): Likewise.
* elf32-hppa.c (elf32_hppa_relocate_section): Likewise.
* elf32-i370.c (i370_elf_relocate_section): Likewise.
* elf32-i386.c (elf_i386_relocate_section): Likewise.
* elf32-i860.c (elf32_i860_relocate_section): Likewise.
* elf32-ip2k.c (ip2k_elf_relocate_section): Likewise.
* elf32-iq2000.c (iq2000_elf_relocate_section): Likewise.
* elf32-lm32.c (lm32_elf_relocate_section): Likewise.
* elf32-m32c.c (m32c_elf_relocate_section): Likewise.
* elf32-m32r.c (m32r_elf_relocate_section): Likewise.
* elf32-m68hc1x.c (elf32_m68hc11_relocate_section): Likewise.
* elf32-m68k.c (elf_m68k_relocate_section): Likewise.
* elf32-mcore.c (mcore_elf_relocate_section): Likewise.
* elf32-mep.c (mep_elf_relocate_section): Likewise.
* elf32-moxie.c (moxie_elf_relocate_section): Likewise.
* elf32-msp430.c (elf32_msp430_relocate_section): Likewise.
* elf32-mt.c (mt_elf_relocate_section): Likewise.
* elf32-openrisc.c (openrisc_elf_relocate_section): Likewise.
* elf32-ppc.c (ppc_elf_relocate_section): Likewise.
* elf32-rl78.c (rl78_elf_relocate_section): Likewise.
* elf32-rx.c (rx_elf_relocate_section): Likewise.
* elf32-s390.c (elf_s390_relocate_section): Likewise.
* elf32-score.c (s3_bfd_score_elf_relocate_section): Likewise.
* elf32-score7.c (s7_bfd_score_elf_relocate_section): Likewise.
* elf32-sh.c (sh_elf_relocate_section): Likewise.
* elf32-spu.c (spu_elf_relocate_section): Likewise.
* elf32-tic6x.c (elf32_tic6x_relocate_section): Likewise.
* elf32-tilepro.c (tilepro_elf_relocate_section): Likewise.
* elf32-v850.c (v850_elf_relocate_section): Likewise.
* elf32-vax.c (elf_vax_relocate_section): Likewise.
* elf32-xc16x.c (elf32_xc16x_relocate_section): Likewise.
* elf32-xstormy16.c (xstormy16_elf_relocate_section): Likewise.
* elf32-xtensa.c (elf_xtensa_relocate_section): Likewise.
* elf64-alpha.c (elf64_alpha_relocate_section_r): Likewise.
(elf64_alpha_relocate_section): Likewise.
* elf64-hppa.c (elf64_hppa_relocate_section): Likewise.
* elf64-mmix.c (mmix_elf_relocate_section): Likewise.
* elf64-ppc.c (ppc64_elf_relocate_section): Likewise.
* elf64-s390.c (elf_s390_relocate_section): Likewise.
* elf64-sh64.c (sh_elf64_relocate_section): Likewise.
* elf64-x86-64.c (elf_x86_64_relocate_section): Likewise.
* elfnn-ia64.c (elfNN_ia64_relocate_section): Likewise.
* elfxx-sparc.c (_bfd_sparc_elf_relocate_section): Likewise.
* elfxx-tilegx.c (tilegx_elf_relocate_section): Likewise.

59 files changed:
bfd/ChangeLog
bfd/elf-bfd.h
bfd/elf-m10200.c
bfd/elf-m10300.c
bfd/elf32-arm.c
bfd/elf32-avr.c
bfd/elf32-bfin.c
bfd/elf32-cr16.c
bfd/elf32-cr16c.c
bfd/elf32-cris.c
bfd/elf32-crx.c
bfd/elf32-d10v.c
bfd/elf32-epiphany.c
bfd/elf32-fr30.c
bfd/elf32-frv.c
bfd/elf32-h8300.c
bfd/elf32-hppa.c
bfd/elf32-i370.c
bfd/elf32-i386.c
bfd/elf32-i860.c
bfd/elf32-ip2k.c
bfd/elf32-iq2000.c
bfd/elf32-lm32.c
bfd/elf32-m32c.c
bfd/elf32-m32r.c
bfd/elf32-m68hc1x.c
bfd/elf32-m68k.c
bfd/elf32-mcore.c
bfd/elf32-mep.c
bfd/elf32-moxie.c
bfd/elf32-msp430.c
bfd/elf32-mt.c
bfd/elf32-openrisc.c
bfd/elf32-ppc.c
bfd/elf32-rl78.c
bfd/elf32-rx.c
bfd/elf32-s390.c
bfd/elf32-score.c
bfd/elf32-score7.c
bfd/elf32-sh.c
bfd/elf32-spu.c
bfd/elf32-tic6x.c
bfd/elf32-tilepro.c
bfd/elf32-v850.c
bfd/elf32-vax.c
bfd/elf32-xc16x.c
bfd/elf32-xstormy16.c
bfd/elf32-xtensa.c
bfd/elf64-alpha.c
bfd/elf64-hppa.c
bfd/elf64-mmix.c
bfd/elf64-ppc.c
bfd/elf64-s390.c
bfd/elf64-sh64.c
bfd/elf64-x86-64.c
bfd/elfnn-ia64.c
bfd/elfxx-mips.c
bfd/elfxx-sparc.c
bfd/elfxx-tilegx.c

index 2705feb167336c5b9a25a2857677ebfd42d6e957..7eedaae66cd7d4e7386b527154aba4b24dca3222 100644 (file)
@@ -1,3 +1,71 @@
+2012-05-07  Maciej W. Rozycki  <macro@linux-mips.org>
+
+       * elf-bfd.h (RELOC_AGAINST_DISCARDED_SECTION): Handle compound
+       relocations.
+       * elfxx-mips.c (mips_reloc_against_discarded_section): New
+       function.
+       (_bfd_mips_elf_relocate_section): Call it, in place of
+       RELOC_AGAINST_DISCARDED_SECTION.
+       * elf-m10200.c (mn10200_elf_relocate_section): Update arguments
+       to RELOC_AGAINST_DISCARDED_SECTION.
+       * elf-m10300.c (mn10300_elf_relocate_section): Likewise.
+       * elf32-arm.c (elf32_arm_relocate_section): Likewise.
+       * elf32-avr.c (elf32_avr_relocate_section): Likewise.
+       * elf32-bfin.c (bfin_relocate_section): Likewise.
+       (bfinfdpic_relocate_section): Likewise.
+       * elf32-cr16.c (elf32_cr16_relocate_section): Likewise.
+       * elf32-cr16c.c (elf32_cr16c_relocate_section): Likewise.
+       * elf32-cris.c (cris_elf_relocate_section): Likewise.
+       * elf32-crx.c (elf32_crx_relocate_section): Likewise.
+       * elf32-d10v.c (elf32_d10v_relocate_section): Likewise.
+       * elf32-epiphany.c (epiphany_elf_relocate_section): Likewise.
+       * elf32-fr30.c (fr30_elf_relocate_section): Likewise.
+       * elf32-frv.c (elf32_frv_relocate_section): Likewise.
+       * elf32-h8300.c (elf32_h8_relocate_section): Likewise.
+       * elf32-hppa.c (elf32_hppa_relocate_section): Likewise.
+       * elf32-i370.c (i370_elf_relocate_section): Likewise.
+       * elf32-i386.c (elf_i386_relocate_section): Likewise.
+       * elf32-i860.c (elf32_i860_relocate_section): Likewise.
+       * elf32-ip2k.c (ip2k_elf_relocate_section): Likewise.
+       * elf32-iq2000.c (iq2000_elf_relocate_section): Likewise.
+       * elf32-lm32.c (lm32_elf_relocate_section): Likewise.
+       * elf32-m32c.c (m32c_elf_relocate_section): Likewise.
+       * elf32-m32r.c (m32r_elf_relocate_section): Likewise.
+       * elf32-m68hc1x.c (elf32_m68hc11_relocate_section): Likewise.
+       * elf32-m68k.c (elf_m68k_relocate_section): Likewise.
+       * elf32-mcore.c (mcore_elf_relocate_section): Likewise.
+       * elf32-mep.c (mep_elf_relocate_section): Likewise.
+       * elf32-moxie.c (moxie_elf_relocate_section): Likewise.
+       * elf32-msp430.c (elf32_msp430_relocate_section): Likewise.
+       * elf32-mt.c (mt_elf_relocate_section): Likewise.
+       * elf32-openrisc.c (openrisc_elf_relocate_section): Likewise.
+       * elf32-ppc.c (ppc_elf_relocate_section): Likewise.
+       * elf32-rl78.c (rl78_elf_relocate_section): Likewise.
+       * elf32-rx.c (rx_elf_relocate_section): Likewise.
+       * elf32-s390.c (elf_s390_relocate_section): Likewise.
+       * elf32-score.c (s3_bfd_score_elf_relocate_section): Likewise.
+       * elf32-score7.c (s7_bfd_score_elf_relocate_section): Likewise.
+       * elf32-sh.c (sh_elf_relocate_section): Likewise.
+       * elf32-spu.c (spu_elf_relocate_section): Likewise.
+       * elf32-tic6x.c (elf32_tic6x_relocate_section): Likewise.
+       * elf32-tilepro.c (tilepro_elf_relocate_section): Likewise.
+       * elf32-v850.c (v850_elf_relocate_section): Likewise.
+       * elf32-vax.c (elf_vax_relocate_section): Likewise.
+       * elf32-xc16x.c (elf32_xc16x_relocate_section): Likewise.
+       * elf32-xstormy16.c (xstormy16_elf_relocate_section): Likewise.
+       * elf32-xtensa.c (elf_xtensa_relocate_section): Likewise.
+       * elf64-alpha.c (elf64_alpha_relocate_section_r): Likewise.
+       (elf64_alpha_relocate_section): Likewise.
+       * elf64-hppa.c (elf64_hppa_relocate_section): Likewise.
+       * elf64-mmix.c (mmix_elf_relocate_section): Likewise.
+       * elf64-ppc.c (ppc64_elf_relocate_section): Likewise.
+       * elf64-s390.c (elf_s390_relocate_section): Likewise.
+       * elf64-sh64.c (sh_elf64_relocate_section): Likewise.
+       * elf64-x86-64.c (elf_x86_64_relocate_section): Likewise.
+       * elfnn-ia64.c (elfNN_ia64_relocate_section): Likewise.
+       * elfxx-sparc.c (_bfd_sparc_elf_relocate_section): Likewise.
+       * elfxx-tilegx.c (tilegx_elf_relocate_section): Likewise.
+
 2012-05-05  Alan Modra  <amodra@gmail.com>
 
        PR ld/14052
index 5af924c4c601da6bf5b0c64b28cc162f5ffb163a..a016d473c26550dc921ad4b2f56244044479c83e 100644 (file)
@@ -2408,10 +2408,11 @@ extern asection _bfd_elf_large_com_section;
    link, we remove such relocations.  Otherwise, we just want the
    section contents zeroed and avoid any special processing.  */
 #define RELOC_AGAINST_DISCARDED_SECTION(info, input_bfd, input_section,        \
-                                       rel, relend, howto, contents)   \
+                                       rel, count, relend,             \
+                                       howto, index, contents)         \
   {                                                                    \
     _bfd_clear_contents (howto, input_bfd, input_section,              \
-                        contents + rel->r_offset);                     \
+                        contents + rel[index].r_offset);               \
                                                                        \
     if (info->relocatable                                              \
        && (input_section->flags & SEC_DEBUGGING))                      \
@@ -2423,23 +2424,28 @@ extern asection _bfd_elf_large_com_section;
        rel_hdr = _bfd_elf_single_rel_hdr (input_section->output_section); \
                                                                        \
        /* Avoid empty output section.  */                              \
-       if (rel_hdr->sh_size > rel_hdr->sh_entsize)                     \
+       if (rel_hdr->sh_size > count * rel_hdr->sh_entsize)             \
          {                                                             \
-           rel_hdr->sh_size -= rel_hdr->sh_entsize;                    \
+           rel_hdr->sh_size -= count * rel_hdr->sh_entsize;            \
            rel_hdr = _bfd_elf_single_rel_hdr (input_section);          \
-           rel_hdr->sh_size -= rel_hdr->sh_entsize;                    \
+           rel_hdr->sh_size -= count * rel_hdr->sh_entsize;            \
                                                                        \
-           memmove (rel, rel + 1, (relend - rel - 1) * sizeof (*rel)); \
+           memmove (rel, rel + count,                                  \
+                    (relend - rel - count) * sizeof (*rel));           \
                                                                        \
-           input_section->reloc_count--;                               \
-           relend--;                                                   \
+           input_section->reloc_count -= count;                        \
+           relend -= count;                                            \
            rel--;                                                      \
            continue;                                                   \
          }                                                             \
       }                                                                        \
                                                                        \
-    rel->r_info = 0;                                                   \
-    rel->r_addend = 0;                                                 \
+    for (i = 0; i < count; i++)                                                \
+      {                                                                        \
+       rel[i].r_info = 0;                                              \
+       rel[i].r_addend = 0;                                            \
+      }                                                                        \
+    rel += count - 1;                                                  \
     continue;                                                          \
   }
 
index 4c6564b421405abe3e35ada08e918005a54c4dd8..a46c86dcb213ce3eb9bbb054a649ef0b99ab51bc 100644 (file)
@@ -403,7 +403,7 @@ mn10200_elf_relocate_section (output_bfd, info, input_bfd, input_section,
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
        continue;
index adbb0091924cbb92e54ec954d72ef0a20cc6abba..8b5afa56d7d0254233d411278c068d3c94ebc830 100644 (file)
@@ -2117,7 +2117,7 @@ mn10300_elf_relocate_section (bfd *output_bfd,
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
        continue;
index f5bad392dae0e9bdaf0e7359ddfd2809a65d74ab..bc600c22a384f6c6829a3156f60d6b055874e492 100644 (file)
@@ -10483,7 +10483,7 @@ elf32_arm_relocate_section (bfd *                  output_bfd,
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
        {
index 41ab3f62b56b07be22fd0f1f2a3dee43058f158b..9fb72f583f5be7503da68762cd6bad85b433014c 100644 (file)
@@ -1192,7 +1192,7 @@ elf32_avr_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
        continue;
index e5d94018076846a3aaeb74031f7fa492e1a83726..c7f634b774e7785a67f3849475a17731bb9ff6d6 100644 (file)
@@ -1446,7 +1446,7 @@ bfin_relocate_section (bfd * output_bfd,
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
        continue;
@@ -2667,7 +2667,7 @@ bfinfdpic_relocate_section (bfd * output_bfd,
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
        continue;
index a162191c8bd561958ceb05029308a71ad5274b50..56d1c542789bfed35c683d242481d73729ea72a3 100644 (file)
@@ -1433,7 +1433,7 @@ elf32_cr16_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
         continue;
index 9dcbddebb1645c60431d314aa9b3f14ab8e1439e..ea227016aee89455a9be97c27c8f32b16f142eaf 100644 (file)
@@ -725,7 +725,7 @@ elf32_cr16c_relocate_section (bfd *output_bfd,
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
        {
index 370bf1abf8552a740c1b22d54dbf00fd22009253..1f7d20d44c62d9e5f830ff9c8fb0adf1279ae7e1 100644 (file)
@@ -1186,7 +1186,7 @@ cris_elf_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
        continue;
index d36c0ea95fdf4f006ac8d5ec59583d3c36422414..b4cbd77c6827633c155f23b785857fc05a5b23b5 100644 (file)
@@ -875,7 +875,7 @@ elf32_crx_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
        continue;
index e0e93c8470fc814f03d62f2691076bfc2f9dd7fe..246e5f51650c4b3f0f8049f9bc5d8b0ddc34ed4c 100644 (file)
@@ -465,7 +465,7 @@ elf32_d10v_relocate_section (bfd *output_bfd,
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
        continue;
index 7330204a17f04646d25bb0c6b3d3007b4b78f43e..b427ef33e097982ff33fef891153c201d7f8896d 100644 (file)
@@ -526,7 +526,7 @@ epiphany_elf_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
        continue;
index 462e51bcf5766f649cc1270d70be57733b92c4cc..89aab8870c41b8212765e7ce36903fded003ce58 100644 (file)
@@ -580,7 +580,7 @@ fr30_elf_relocate_section (output_bfd, info, input_bfd, input_section,
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
        continue;
index 57de3c02f21c1bbe80e31179031123fbdfdcc337..05e9c58b4af2944c050470ba0c7aa794c706a546 100644 (file)
@@ -2814,7 +2814,7 @@ elf32_frv_relocate_section (output_bfd, info, input_bfd, input_section,
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
        continue;
index 28fab3269ee984572a4a5fadf99b039adf18fc8e..758dc75c1a191eae7dceb0fedacbf31ce9057456 100644 (file)
@@ -462,7 +462,7 @@ elf32_h8_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
        continue;
index 82a0db611d1ff5b8f606e0b3db392b295907c998..8d86cb85f853f7c0dc71e00ea97a4ad7029be9b7 100644 (file)
@@ -3736,8 +3736,8 @@ elf32_hppa_relocate_section (bfd *output_bfd,
 
       if (sym_sec != NULL && discarded_section (sym_sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rela, relend,
-                                        elf_hppa_howto_table + r_type,
+                                        rela, 1, relend,
+                                        elf_hppa_howto_table + r_type, 0,
                                         contents);
 
       if (info->relocatable)
index 2022aaffcaf973c0f91cde0cff7f18a093594815..4d1d037e509db5396d7bdd00750ec8edaf118187 100644 (file)
@@ -1133,7 +1133,7 @@ i370_elf_relocate_section (bfd *output_bfd,
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
        continue;
index 832ad8998051524dfbfbebbce6d0461cf58830a5..270a7c7ee8af03f42c173f190e0f280aa4774b61 100644 (file)
@@ -3192,7 +3192,7 @@ elf_i386_relocate_section (bfd *output_bfd,
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
        continue;
index b890384bc86e9c922cc2bad80e1afe915aec2b64..f50e51b24f71d73d3d59468f7355bfe800191963 100644 (file)
@@ -1131,7 +1131,7 @@ elf32_i860_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
        continue;
index fe9461543d5e6fd85ecfde578a795e10fa2f7604..d696a27e2993b82ff56fa86b4b24c50860bb0a2e 100644 (file)
@@ -1438,7 +1438,7 @@ ip2k_elf_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
        continue;
index fd3b26394883f07a53341cdc859d6f775687fef1..079a96219434be4a6ff2ed8129c14d36a1d3eff4 100644 (file)
@@ -635,7 +635,7 @@ iq2000_elf_relocate_section (bfd *               output_bfd ATTRIBUTE_UNUSED,
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
        continue;
index bd560e1ba326e605a30052d214954a8ae7a66199..b18f08f459f8ae8700b0ae86410e24b36cc9007e 100644 (file)
@@ -895,7 +895,7 @@ lm32_elf_relocate_section (bfd *output_bfd,
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
         {
index 84cd6d37a7090098e864a39f82c98bcb2c91dba0..e11a2e579defc486525f38c815cba6cd51de4556 100644 (file)
@@ -436,7 +436,7 @@ m32c_elf_relocate_section
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
        {
index 7ab7b601816b5a091513fc1781b2c9e50c45692d..763c90d5c64832df449e8841ae1131ad5963b937 100644 (file)
@@ -2615,7 +2615,7 @@ m32r_elf_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable && !use_rel)
        {
index f1d45860da680a1350d89b2df37f4fc5f479ec17..f5762a481aa78f4e6ff15720f756855b6b81dc1b 100644 (file)
@@ -986,7 +986,7 @@ elf32_m68hc11_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
        {
index 78d7464f427c0e7561e5104b9da93d3b07d624cf..bba4c791b27b7f5e65152f8004c6797fc6f30c70 100644 (file)
@@ -3724,7 +3724,7 @@ elf_m68k_relocate_section (output_bfd, info, input_bfd, input_section,
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
        continue;
index c0769a89dd06889a036d7bd433aaabe609286d1e..727969728ed5c919f114e0c32e6351a2d3fa2337 100644 (file)
@@ -468,7 +468,7 @@ mcore_elf_relocate_section (bfd * output_bfd,
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
        continue;
index 9c53f3dfbd1f636ffcf09204dc5f7f4a34ac89e8..f356fd06ffe0c2010a10f2b091ddf4bb7b059fce 100644 (file)
@@ -502,7 +502,7 @@ mep_elf_relocate_section
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
        continue;
index bc1d4c7ae593167476cf8f3e4837f164dc567219..c1a793e50f207e388af30c57d0411b4d1f7c46d4 100644 (file)
@@ -252,7 +252,7 @@ moxie_elf_relocate_section (bfd *output_bfd,
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
        continue;
index c79c474525157608eca1fabac55040c1b6cd4515..c0459f43945dd33beec4de50b1b43a845e9cef05 100644 (file)
@@ -456,7 +456,7 @@ elf32_msp430_relocate_section (bfd * output_bfd ATTRIBUTE_UNUSED,
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
        continue;
index 7d187747a5c3b238f03c146755d2e90e7663532e..c03d8f429d4471112ad8d6488bfe9bea63b49f86 100644 (file)
@@ -356,7 +356,7 @@ mt_elf_relocate_section
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
        continue;
index 1c9e14ad3c71b76955e1961915fd3914d6196194..2b002abcc73b8c8e559e605eac4f8c83d19b2dc6 100644 (file)
@@ -375,7 +375,7 @@ openrisc_elf_relocate_section (bfd *output_bfd,
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
        continue;
index ca6df26e59e4b153446c379f347265d94c86e0a7..5716b8247f8d42a7add0622009ac7117205da1aa 100644 (file)
@@ -6888,7 +6888,7 @@ ppc_elf_relocate_section (bfd *output_bfd,
          if (r_type < R_PPC_max)
            howto = ppc_elf_howto_table[r_type];
          RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                          rel, relend, howto, contents);
+                                          rel, 1, relend, howto, 0, contents);
        }
 
       if (info->relocatable)
index 2806cd3c82d9455dee91787c0b13f433e60123b0..c454e5f84124cda1c9a18546ceb33283b6decb2d 100644 (file)
@@ -473,7 +473,7 @@ rl78_elf_relocate_section
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
        {
index 942d4e09d0c9187d3f29997a0f313f80e7226ec3..e74f5465d9197a1c896f0e3d57c5870d8ad8c8a2 100644 (file)
@@ -523,7 +523,7 @@ rx_elf_relocate_section
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
        {
index 4b2b38001e7f2d9a9f05faf57e9e801cd93fbe16..8b90c8cb71c3d1dc1cc8bfa7ee77fc5ce9883b48 100644 (file)
@@ -2302,7 +2302,7 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
        continue;
index bb9454106142e6e5b935e25991f9e6ae83737cc9..eb3002e95266b9a4e1e4b7adad17f9550c6a822e 100644 (file)
@@ -2674,7 +2674,7 @@ s3_bfd_score_elf_relocate_section (bfd *output_bfd,
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
         {
index b0eb56cf878ec9e38db1f06abe3c22f4c3c13895..b18991b4129c60b3970c0925bf9b9b98cfc1e8d6 100644 (file)
@@ -2445,7 +2445,7 @@ s7_bfd_score_elf_relocate_section (bfd *output_bfd,
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
         {
index 2ce0875e69e560a5e76648b20dd0506ee9242bb7..c7a8b2b69850924b61aa3a6b60af14fc542af8c5 100644 (file)
@@ -4242,7 +4242,7 @@ sh_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
        continue;
index f5bc3ecdf494bce1b6bf02da5b338122f47ec1cb..28628f83adde7f43e1be1a8c9d715ecb1fce1004 100644 (file)
@@ -4898,7 +4898,7 @@ spu_elf_relocate_section (bfd *output_bfd,
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
        continue;
index 4d7f9237cec58b23814e3bb4a3e20e7e75d85f12..1aec02883e5ad963b6791c8c1fee4352142a5d58 100644 (file)
@@ -2329,7 +2329,7 @@ elf32_tic6x_relocate_section (bfd *output_bfd,
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
        {
index 23073c1e522f0439dcd96414a05bf7b6744d1fcd..88c1326fdd53036e7fb2138ae8256d7252b85065 100644 (file)
@@ -2876,7 +2876,7 @@ tilepro_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
        continue;
index 236a0b28bc1d6f4919e2572bd4decf488d824379..11fbbb4cbc302d2e83a4a839401a1277f518d2ed 100644 (file)
@@ -2096,7 +2096,7 @@ v850_elf_relocate_section (bfd *output_bfd,
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
        continue;
index f1b5d760da0691f79b99c170b405c9cd8f9eb8a4..d55cdc5ef630148716ef807d3e63387da0acf980 100644 (file)
@@ -1445,7 +1445,7 @@ elf_vax_relocate_section (bfd *output_bfd,
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
        continue;
index dc8cab562bc54226882839c579c2da4756b0734a..b7e0d412d50b3df6b7e59879c89f7c3ef2da12fd 100644 (file)
@@ -389,7 +389,7 @@ elf32_xc16x_relocate_section (bfd *output_bfd,
          reloc_howto_type *howto;
          howto = xc16x_reloc_type_lookup (input_bfd, r_type);
          RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                          rel, relend, howto, contents);
+                                          rel, 1, relend, howto, 0, contents);
        }
 
       if (info->relocatable)
index 57445ba6f89de2aa1bb43d7fe6359bf3fc9a8381..d6a48bf7bbe9a988e87d20a91a69ad8eef416dc3 100644 (file)
@@ -827,7 +827,7 @@ xstormy16_elf_relocate_section (bfd *                   output_bfd ATTRIBUTE_UNU
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
        continue;
index cfbdff0bd8984505872e3afb0188170da5094681..c6c9c12ccf12c93481bfe2847754f339703d864a 100644 (file)
@@ -2658,7 +2658,7 @@ elf_xtensa_relocate_section (bfd *output_bfd,
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
        {
index 495b60149498337aa05e6fe7f0f800d711da36c4..c8d76a0be66463293c6bcf16ad2df10f26021992 100644 (file)
@@ -4110,8 +4110,8 @@ elf64_alpha_relocate_section_r (bfd *output_bfd ATTRIBUTE_UNUSED,
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend,
-                                        elf64_alpha_howto_table + r_type,
+                                        rel, 1, relend,
+                                        elf64_alpha_howto_table + r_type, 0,
                                         contents);
 
       if (sym != NULL && ELF_ST_TYPE (sym->st_info) == STT_SECTION)
@@ -4319,7 +4319,7 @@ elf64_alpha_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       addend = rel->r_addend;
       value += addend;
index b3a5e24ff08b27c44f230b0e1378670b46cebb88..e3de2a6c60c8a98ebc1ffdf49884dd19865c50da 100644 (file)
@@ -3922,7 +3922,7 @@ elf64_hppa_relocate_section (bfd *output_bfd,
 
       if (sym_sec != NULL && discarded_section (sym_sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
        continue;
index fd5921a66086cafb7418f081b8343252550769c9..5366df4f6fe8f99ce0871627f7b993232a95878a 100644 (file)
@@ -1478,7 +1478,7 @@ mmix_elf_relocate_section (output_bfd, info, input_bfd, input_section,
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
        {
index 0d6dd99e5435c161d50b57aceb33c807cee5f1eb..433fabf4432ae583a884e6c72de20ac7d738197c 100644 (file)
@@ -12275,8 +12275,8 @@ ppc64_elf_relocate_section (bfd *output_bfd,
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend,
-                                        ppc64_elf_howto_table[r_type],
+                                        rel, 1, relend,
+                                        ppc64_elf_howto_table[r_type], 0,
                                         contents);
 
       if (info->relocatable)
index c3ec24c264d845c074683b63c098292ae24b26cf..cc0e473119a0402497c44709caafe7219d5619cf 100644 (file)
@@ -2246,7 +2246,7 @@ elf_s390_relocate_section (bfd *output_bfd,
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
        continue;
index 60f13cdf42a1dde1430e96ed68397823c7223ffa..e041bdae418f78cf7cdb19e265f3c85a8623046f 100644 (file)
@@ -1663,7 +1663,7 @@ sh_elf64_relocate_section (bfd *output_bfd ATTRIBUTE_UNUSED,
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
        continue;
index e91324639fee57694730bbb690dec9bf006e063a..de7fd6f957fac0c172b31aaf7f3321c9d820765e 100644 (file)
@@ -3145,7 +3145,7 @@ elf_x86_64_relocate_section (bfd *output_bfd,
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
        continue;
index a1294ff297e5a85ccae96af6f4e3567289c006ce..fdefb03ca07ba4a9c07a90862a947e8572386eb1 100644 (file)
@@ -3913,7 +3913,7 @@ elfNN_ia64_relocate_section (bfd *output_bfd,
 
       if (sym_sec != NULL && discarded_section (sym_sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
        continue;
index 35109381ab0f90f40c81905437d626a5fc475557..6dd0592917dbfd67c7d52c4ac805d8d168cb6202 100644 (file)
@@ -9324,6 +9324,55 @@ mips_elf_adjust_addend (bfd *output_bfd, struct bfd_link_info *info,
     }
 }
 
+/* Handle relocations against symbols from removed linkonce sections,
+   or sections discarded by a linker script.  We use this wrapper around
+   RELOC_AGAINST_DISCARDED_SECTION to handle triplets of compound relocs
+   on 64-bit ELF targets.  In this case for any relocation handled, which
+   always be the first in a triplet, the remaining two have to be processed
+   together with the first, even if they are R_MIPS_NONE.  It is the symbol
+   index referred by the first reloc that applies to all the three and the
+   remaining two never refer to an object symbol.  And it is the final
+   relocation (the last non-null one) that determines the output field of
+   the whole relocation so retrieve the corresponding howto structure for
+   the relocatable field to be cleared by RELOC_AGAINST_DISCARDED_SECTION.
+
+   Note that RELOC_AGAINST_DISCARDED_SECTION is a macro that uses "continue"
+   and therefore requires to be pasted in a loop.  It also defines a block
+   and does not protect any of its arguments, hence the extra brackets.  */
+
+static void
+mips_reloc_against_discarded_section (bfd *output_bfd,
+                                     struct bfd_link_info *info,
+                                     bfd *input_bfd, asection *input_section,
+                                     Elf_Internal_Rela **rel,
+                                     const Elf_Internal_Rela **relend,
+                                     bfd_boolean rel_reloc,
+                                     reloc_howto_type *howto,
+                                     bfd_byte *contents)
+{
+  const struct elf_backend_data *bed = get_elf_backend_data (output_bfd);
+  int count = bed->s->int_rels_per_ext_rel;
+  unsigned int r_type;
+  int i;
+
+  for (i = count - 1; i > 0; i--)
+    {
+      r_type = ELF_R_TYPE (output_bfd, (*rel)[i].r_info);
+      if (r_type != R_MIPS_NONE)
+       {
+         howto = MIPS_ELF_RTYPE_TO_HOWTO (input_bfd, r_type, !rel_reloc);
+         break;
+       }
+    }
+  do
+    {
+       RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
+                                       (*rel), count, (*relend),
+                                       howto, i, contents);
+    }
+  while (0);
+}
+
 /* Relocate a MIPS ELF section.  */
 
 bfd_boolean
@@ -9390,8 +9439,12 @@ _bfd_mips_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
        }
 
       if (sec != NULL && discarded_section (sec))
-       RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+       {
+         mips_reloc_against_discarded_section (output_bfd, info, input_bfd,
+                                               input_section, &rel, &relend,
+                                               rel_reloc, howto, contents);
+         continue;
+       }
 
       if (r_type == R_MIPS_64 && ! NEWABI_P (input_bfd))
        {
index 9a0a1a4e68ad66ea7bc3712c07b20d00c1cbab68..06f02bfff4c352b036ce65873737adb0562cd544 100644 (file)
@@ -3013,7 +3013,7 @@ _bfd_sparc_elf_relocate_section (bfd *output_bfd,
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
        continue;
index d87edf504a319306ee9bccbd6109da420ab65906..9939228fbcef8294cba729c8bbe974897e9de625 100644 (file)
@@ -3142,7 +3142,7 @@ tilegx_elf_relocate_section (bfd *output_bfd, struct bfd_link_info *info,
 
       if (sec != NULL && discarded_section (sec))
        RELOC_AGAINST_DISCARDED_SECTION (info, input_bfd, input_section,
-                                        rel, relend, howto, contents);
+                                        rel, 1, relend, howto, 0, contents);
 
       if (info->relocatable)
        continue;
This page took 0.094079 seconds and 4 git commands to generate.