From f6d29e26d6bf24dfcc42558390082aeb7ac034e5 Mon Sep 17 00:00:00 2001 From: Kai Tietz Date: Fri, 16 Jan 2009 15:09:20 +0000 Subject: 2009-01-16 Kai Tietz * coffcode.h (styp_to_sec_flags): Correct interpretation of IMAGE_SCN_MEM_DISCARDABLE. --- bfd/coffcode.h | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) (limited to 'bfd/coffcode.h') diff --git a/bfd/coffcode.h b/bfd/coffcode.h index 12d2ad5..db0b2e9 100644 --- a/bfd/coffcode.h +++ b/bfd/coffcode.h @@ -1069,10 +1069,19 @@ styp_to_sec_flags (bfd *abfd, sec_flags &= ~ SEC_READONLY; break; case IMAGE_SCN_MEM_DISCARDABLE: - /* The MS PE spec sets the DISCARDABLE flag on .reloc sections - but we do not want them to be labelled as debug section, since - then strip would remove them. */ - if (! CONST_STRNEQ (name, ".reloc")) + /* The MS PE spec says that debug sections are DISCARDABLE, + but the presence of a DISCARDABLE flag does not necessarily + mean that a given section contains debug information. Thus + we only set the SEC_DEBUGGING flag on sections that we + recognise as containing debug information. */ + if (CONST_STRNEQ (name, DOT_DEBUG) +#ifdef _COMMENT + || strcmp (name, _COMMENT) == 0 +#endif +#ifdef COFF_LONG_SECTION_NAMES + || CONST_STRNEQ (name, GNU_LINKONCE_WI) +#endif + || CONST_STRNEQ (name, ".stab")) sec_flags |= SEC_DEBUGGING; break; case IMAGE_SCN_MEM_SHARED: -- cgit v1.1