aboutsummaryrefslogtreecommitdiff
path: root/ld/ldlang.c
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2005-03-16 21:52:48 +0000
committerH.J. Lu <hjl.tools@gmail.com>2005-03-16 21:52:48 +0000
commit57316bff0a1aebca7c9f92d125e5366014f0bb1a (patch)
tree4a49b5bee243f75a41d85143644c1e99f1ef271b /ld/ldlang.c
parent199fea98c99205f0fd3d2d3fd1a2670bdfe8a326 (diff)
downloadgdb-57316bff0a1aebca7c9f92d125e5366014f0bb1a.zip
gdb-57316bff0a1aebca7c9f92d125e5366014f0bb1a.tar.gz
gdb-57316bff0a1aebca7c9f92d125e5366014f0bb1a.tar.bz2
bfd/
2005-03-16 H.J. Lu <hongjiu.lu@intel.com> * elflink.c (elf_mark_used_section): New. (bfd_elf_gc_sections): Call elf_gc_mark_section for non-relocatable link if we don't do GC. include/ 2005-03-16 H.J. Lu <hongjiu.lu@intel.com> * bfdlink.h (bfd_link_info): Add gc_sections. ld/ 2005-03-16 H.J. Lu <hongjiu.lu@intel.com> * emultempl/elf32.em (gld${EMULATION_NAME}_finish): Remove unused empty output sections for non-relocatable link. * ld.h (args_type): Remove gc_sections. * ldlang.c (lang_mark_used_section): New. (lang_gc_sections): Use link_info.gc_sections instead of command_line.gc_sections. * ldmain.c (main): Likewise. * lexsup.c (parse_args): Likewise. * ldlang.c (lang_process): Call lang_mark_used_section. * ldmain.c (main): Initialize link_info.gc_sections to FALSE. ld/testsuite/ 2005-03-16 H.J. Lu <hongjiu.lu@intel.com> * ld-alpha/tlsbin.rd: Updated for empty section removal. * ld-alpha/tlsbinr.rd: Likewise. * ld-alpha/tlspic.rd: Likewise. * ld-arm/mixed-lib.sym: Likewise. * ld-i386/tlsbin.rd: Likewise. * ld-i386/tlsnopic.rd: Likewise. * ld-i386/tlspic.rd: Likewise. * ld-ia64/tlsbin.rd: Likewise. * ld-ia64/tlspic.rd: Likewise. * ld-powerpc/apuinfo.rd: Likewise. * ld-powerpc/powerpc.exp: Likewise. * ld-powerpc/tlsexe32.r: Likewise. * ld-s390/tlsbin.rd: Likewise. * ld-s390/tlsbin_64.rd: Likewise. * ld-s390/tlspic.rd: Likewise. * ld-s390/tlspic_64.rd: Likewise. * ld-sh/tlsbin-2.d: Likewise. * ld-sh/tlspic-2.d: Likewise. * ld-sparc/tlssunbin32.rd: Likewise. * ld-sparc/tlssunnopic32.rd: Likewise. * ld-sparc/tlssunpic32.rd: Likewise. * ld-x86-64/tlsbin.rd: Likewise. * ld-x86-64/tlspic.rd: Likewise.
Diffstat (limited to 'ld/ldlang.c')
-rw-r--r--ld/ldlang.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/ld/ldlang.c b/ld/ldlang.c
index 636dc7f..72545c2 100644
--- a/ld/ldlang.c
+++ b/ld/ldlang.c
@@ -4718,10 +4718,20 @@ lang_gc_sections (void)
}
}
- if (command_line.gc_sections)
+ if (link_info.gc_sections)
bfd_gc_sections (output_bfd, &link_info);
}
+static void
+lang_mark_used_section (void)
+{
+ unsigned int gc_sections = link_info.gc_sections;
+
+ link_info.gc_sections = 0;
+ bfd_gc_sections (output_bfd, &link_info);
+ link_info.gc_sections = gc_sections;
+}
+
void
lang_process (void)
{
@@ -4883,7 +4893,7 @@ lang_process (void)
lang_check_section_addresses ();
/* Final stuffs. */
-
+ lang_mark_used_section ();
ldemul_finish ();
lang_finish ();
}