diff options
author | H.J. Lu <hjl.tools@gmail.com> | 2003-04-29 01:53:46 +0000 |
---|---|---|
committer | H.J. Lu <hjl.tools@gmail.com> | 2003-04-29 01:53:46 +0000 |
commit | c7996ad62885c79a8d94f98dd03e390c6a2d4551 (patch) | |
tree | f0f0b43bb5010844385b4de688854926d73e9edb /ld | |
parent | 0ba6dca974b6df1fc1ac67608815cf5a2603856d (diff) | |
download | binutils-gdb-c7996ad62885c79a8d94f98dd03e390c6a2d4551.tar.gz |
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/ChangeLog | 7 | ||||
-rw-r--r-- | ld/ldlang.c | 8 | ||||
-rw-r--r-- | ld/ldmain.c | 1 |
3 files changed, 16 insertions, 0 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog index 4f2445425e3..ced3178bb03 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 5cca71ff345..884691702c9 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 d8ee1b23e7f..0b0b0383ac3 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 (""); |