aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2003-04-29 01:53:46 +0000
committerH.J. Lu <hjl.tools@gmail.com>2003-04-29 01:53:46 +0000
commitc7996ad62885c79a8d94f98dd03e390c6a2d4551 (patch)
treef0f0b43bb5010844385b4de688854926d73e9edb /ld
parent0ba6dca974b6df1fc1ac67608815cf5a2603856d (diff)
downloadgdb-c7996ad62885c79a8d94f98dd03e390c6a2d4551.zip
gdb-c7996ad62885c79a8d94f98dd03e390c6a2d4551.tar.gz
gdb-c7996ad62885c79a8d94f98dd03e390c6a2d4551.tar.bz2
bfd/
2003-04-28 H.J. Lu <hjl@gnu.org> * elfxx-ia64.c (elfNN_ia64_relax_section): Relax ldxmov during the relax finalize pass. * section.c (struct sec): Add need_finalize_relax and remove flag11. (STD_SECTION): Update struct sec initializer. * bfd-in2.h: Regenerated. include/ 2003-04-28 H.J. Lu <hjl@gnu.org> * bfdlink.h (bfd_link_info): Add relax_finalizing. ld/ 2003-04-28 H.J. Lu <hjl@gnu.org> * ldlang.c (lang_process): Add the relax finalize pass. * ldmain.c (main): Initialize link_info.relax_finalizing to FALSE.
Diffstat (limited to 'ld')
-rw-r--r--ld/ChangeLog7
-rw-r--r--ld/ldlang.c8
-rw-r--r--ld/ldmain.c1
3 files changed, 16 insertions, 0 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 4f24454..ced3178 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,10 @@
+2003-04-28 H.J. Lu <hjl@gnu.org>
+
+ * ldlang.c (lang_process): Add the relax finalize pass.
+
+ * ldmain.c (main): Initialize link_info.relax_finalizing to
+ FALSE.
+
2003-04-24 Roland McGrath <roland@redhat.com>
* ldgram.y (phdr_type): Grok PT_TLS and PT_GNU_EH_FRAME names.
diff --git a/ld/ldlang.c b/ld/ldlang.c
index 5cca71f..8846917 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
@@ -4393,6 +4393,14 @@ lang_process ()
abs_output_section,
&statement_list.head, 0, (bfd_vma) 0,
&relax_again, FALSE);
+
+ /* If the normal relax is done and the relax finalize pass
+ is not performed yet, we perform another relax pass. */
+ if (!relax_again && !link_info.relax_finalizing)
+ {
+ link_info.relax_finalizing = TRUE;
+ relax_again = TRUE;
+ }
}
while (relax_again);
diff --git a/ld/ldmain.c b/ld/ldmain.c
index d8ee1b2..0b0b038 100644
--- a/ld/ldmain.c
+++ b/ld/ldmain.c
@@ -329,6 +329,7 @@ main (argc, argv)
link_info.spare_dynamic_tags = 5;
link_info.flags = (bfd_vma) 0;
link_info.flags_1 = (bfd_vma) 0;
+ link_info.relax_finalizing = FALSE;
ldfile_add_arch ("");