aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ld/ChangeLog5
-rw-r--r--ld/ldlang.c3
-rw-r--r--ld/testsuite/ChangeLog6
-rw-r--r--ld/testsuite/ld-scripts/map-address.d2
-rw-r--r--ld/testsuite/ld-scripts/map-address.t2
5 files changed, 17 insertions, 1 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 8a94b2e..1579bec 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,8 @@
+2007-08-31 Tristan Gingold <gingold@adacore.com>
+
+ * ldlang.c (lang_map): Increment lang_statement_iteration so that
+ DEFINED() expressions are correctly computed.
+
2007-08-31 Alan Modra <amodra@bigpond.net.au>
* ldlang.c (lang_record_phdrs): Give a fatal error if no sections
diff --git a/ld/ldlang.c b/ld/ldlang.c
index f247a17..7ecd477 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
@@ -1811,6 +1811,7 @@ lang_map (void)
bfd_map_over_sections (p, init_map_userdata, 0);
bfd_link_hash_traverse (link_info.hash, sort_def_symbol, 0);
}
+ lang_statement_iteration ++;
print_statements ();
}
@@ -3539,7 +3540,7 @@ print_assignment (lang_assignment_statement_type *assignment,
value = h->u.def.value;
if (expld.result.section)
- value += expld.result.section->vma;
+ value += expld.result.section->vma;
minfo ("[0x%V]", value);
}
diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog
index ec3cf04..5b0ce32 100644
--- a/ld/testsuite/ChangeLog
+++ b/ld/testsuite/ChangeLog
@@ -1,3 +1,9 @@
+2007-08-31 Tristan Gingold <gingold@adacore.com>
+
+ * ld-script/map-address.t: Add a test for testing DEFINED in map
+ output.
+ * ld-script/map-address.d: Update expected output.
+
2007-08-28 Mark Shinwell <shinwell@codesourcery.com>
Joseph Myers <joseph@codesourcery.com>
diff --git a/ld/testsuite/ld-scripts/map-address.d b/ld/testsuite/ld-scripts/map-address.d
index 289b685..7877ca4 100644
--- a/ld/testsuite/ld-scripts/map-address.d
+++ b/ld/testsuite/ld-scripts/map-address.d
@@ -1,6 +1,8 @@
#...
Linker script and memory map
#...
+ *0x0*000020 *def1 = .*
+ *0x0*000020 *def2 = def1
*0x0*010001 *\. = 0x10001
*0x0*010001 *foo = \.
*0x0*010201 *\. = \(\. \+ 0x200\)
diff --git a/ld/testsuite/ld-scripts/map-address.t b/ld/testsuite/ld-scripts/map-address.t
index 8f2dfeb..e077ed1 100644
--- a/ld/testsuite/ld-scripts/map-address.t
+++ b/ld/testsuite/ld-scripts/map-address.t
@@ -1,5 +1,7 @@
SECTIONS
{
+ def1 = DEFINED(foo) ? 0x10 : 0x20;
+ def2 = def1;
. = 0x10001;
foo = .;
. += 0x200;