aboutsummaryrefslogtreecommitdiff
path: root/ld
diff options
context:
space:
mode:
Diffstat (limited to 'ld')
-rw-r--r--ld/ChangeLog6
-rw-r--r--ld/ldemul.c2
-rw-r--r--ld/ldlang.c1
3 files changed, 8 insertions, 1 deletions
diff --git a/ld/ChangeLog b/ld/ChangeLog
index 1d810a7..4b9d324 100644
--- a/ld/ChangeLog
+++ b/ld/ChangeLog
@@ -1,3 +1,9 @@
+2012-03-23 Alan Modra <amodra@gmail.com>
+
+ * ldemul.c (before_allocation_default): When emitrelocations,
+ don't strip sections..
+ * ldlang.c (lang_add_section): ..and don't set up map_head, map_tail.
+
2012-03-14 Kai Tietz <ktietz@redhat.com>
Pascal Obry <pascal@obry.net>
diff --git a/ld/ldemul.c b/ld/ldemul.c
index 85baeab..5e2fd82 100644
--- a/ld/ldemul.c
+++ b/ld/ldemul.c
@@ -237,7 +237,7 @@ after_allocation_default (void)
void
before_allocation_default (void)
{
- if (!link_info.relocatable)
+ if (!link_info.relocatable && !link_info.emitrelocations)
strip_excluded_output_sections ();
}
diff --git a/ld/ldlang.c b/ld/ldlang.c
index a95d2a5..73e0179 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
@@ -2380,6 +2380,7 @@ lang_add_section (lang_statement_list_type *ptr,
section->output_section = output->bfd_section;
if (!link_info.relocatable
+ && !link_info.emitrelocations
&& !stripped_excluded_sections)
{
asection *s = output->bfd_section->map_tail.s;