This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
[RFC PATCH] Enabling ld -r ELF .stab/.stabstr optimization
- From: Earl Chew <earl_chew at agilent dot com>
- To: binutils at sources dot redhat dot com
- Date: Wed, 25 Sep 2002 22:03:29 -0700
- Subject: [RFC PATCH] Enabling ld -r ELF .stab/.stabstr optimization
- Organization: Agilent Technologies
Here is a patch to enable .stab/.stabstr optimization in the presence
of ld -r. This patch was generated against binutils-2.10.1 --- sorry
the baseline is a little dated, but that's what I'm running.
* bfd/elflink.h (elf_link_add_object_symbols): optimize .stabstr
even if relocatable
* ld/ldlang.c (wild_doit): discard debugging sections that have
been marked SEC_EXCLUDE
--- elflink.h Mon Oct 22 21:45:07 2001
+++ ../../xbinutils/bfd/elflink.h Wed Sep 25 14:50:07 2002
@@ -2005,10 +2005,9 @@
}
}
- /* If this is a non-traditional, non-relocateable link, try to
- optimize the handling of the .stab/.stabstr sections. */
+ /* If this is a non-traditional link try to optimize the handling
+ of the .stab/.stabstr sections. */
if (! dynamic
- && ! info->relocateable
&& ! info->traditional_format
&& info->hash->creator->flavour == bfd_target_elf_flavour
&& (info->strip != strip_all && info->strip != strip_debugger))
--- ldlang.c Thu Oct 25 10:52:25 2001
+++ ../../xbinutils/ld/ldlang.c Wed Sep 25 21:28:37 2002
@@ -1101,9 +1101,11 @@
discard = true;
/* Discard debugging sections if we are stripping debugging
- information. */
- if ((link_info.strip == strip_debugger || link_info.strip == strip_all)
- && (flags & SEC_DEBUGGING) != 0)
+ information or if marked with SEC_EXCLUDE. */
+ if ((flags & SEC_DEBUGGING) != 0
+ && (link_info.strip == strip_debugger
+ || link_info.strip == strip_all
+ || (flags & SEC_EXCLUDE) != 0))
discard = true;
if (discard)