aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
authorJim Wilson <wilson@tuliptree.org>2003-11-19 02:40:55 +0000
committerJim Wilson <wilson@tuliptree.org>2003-11-19 02:40:55 +0000
commit5a46fe39b34aaaab38c776c686549fe7b5beb91f (patch)
treed4c0803d496a9310e9200b2c54311b62e395b945 /ld
parent55936540a78cd6b3480e5e72437b90328d3a5d98 (diff)
downloadfsf-binutils-gdb-5a46fe39b34aaaab38c776c686549fe7b5beb91f.zip
fsf-binutils-gdb-5a46fe39b34aaaab38c776c686549fe7b5beb91f.tar.gz
fsf-binutils-gdb-5a46fe39b34aaaab38c776c686549fe7b5beb91f.tar.bz2
Fix IA-64 linker failure reported by Andreas Schwab.
* ldlang.c (lang_process): Move lang_reset_memory_regions call after lang_do_assignments call.
Diffstat (limited to 'ld')
-rw-r--r--ld/ChangeLog3
-rw-r--r--ld/ldlang.c8
2 files changed, 8 insertions, 3 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 6bcd346..a83237d 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,5 +1,8 @@
2003-11-18 James E Wilson <wilson@specifixinc.com>
+ * ldlang.c (lang_process): Move lang_reset_memory_regions call after
+ lang_do_assignments call.
+
* emulparams/elf64_ia64.sh (OTHER_PLT_RELOC_SECTIONS): Include
.rela.opd if -pie.
diff --git a/ld/ldlang.c b/ld/ldlang.c
index 1dc2b1e..b7a11f8 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
@@ -4240,8 +4240,6 @@ lang_process (void)
do
{
- lang_reset_memory_regions ();
-
relax_again = FALSE;
/* Note: pe-dll.c does something like this also. If you find
@@ -4253,6 +4251,10 @@ lang_process (void)
lang_do_assignments (statement_list.head, abs_output_section,
NULL, 0);
+ /* We must do this after lang_do_assignments, because it uses
+ _raw_size. */
+ lang_reset_memory_regions ();
+
/* Perform another relax pass - this time we know where the
globals are, so can make a better guess. */
lang_size_sections (statement_list.head, abs_output_section,
@@ -4269,8 +4271,8 @@ lang_process (void)
while (relax_again);
/* Final extra sizing to report errors. */
- lang_reset_memory_regions ();
lang_do_assignments (statement_list.head, abs_output_section, NULL, 0);
+ lang_reset_memory_regions ();
lang_size_sections (statement_list.head, abs_output_section,
&statement_list.head, 0, 0, NULL, TRUE);
}