aboutsummaryrefslogtreecommitdiff
path: root/ld/ldlang.c
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/ldlang.c
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/ldlang.c')
-rw-r--r--ld/ldlang.c8
1 files changed, 8 insertions, 0 deletions
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);