From 2fa250529bb42e00433528c763d2bef245787ed1 Mon Sep 17 00:00:00 2001 From: Alan Modra Date: Thu, 17 Nov 2022 07:58:31 +1030 Subject: [PATCH] COFF compressed debug support Since commit 4bea06d73c04 COFF support for compressed debug sections has been broken due to the "flags" variable not getting SEC_HAS_CONTENTS. * coffgen.c (make_a_section_from_file): Correct section flags handling. Delete extraneous condition. Update error messages to be the same as in elf.c. --- bfd/coffgen.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/bfd/coffgen.c b/bfd/coffgen.c index f2c71b19880..e072e168cb8 100644 --- a/bfd/coffgen.c +++ b/bfd/coffgen.c @@ -131,18 +131,18 @@ make_a_section_from_file (bfd *abfd, & flags)) result = false; - return_section->flags = flags; - /* At least on i386-coff, the line number count for a shared library section must be ignored. */ - if ((return_section->flags & SEC_COFF_SHARED_LIBRARY) != 0) + if ((flags & SEC_COFF_SHARED_LIBRARY) != 0) return_section->lineno_count = 0; if (hdr->s_nreloc != 0) - return_section->flags |= SEC_RELOC; + flags |= SEC_RELOC; /* FIXME: should this check 'hdr->s_size > 0'. */ if (hdr->s_scnptr != 0) - return_section->flags |= SEC_HAS_CONTENTS; + flags |= SEC_HAS_CONTENTS; + + return_section->flags = flags; /* Compress/decompress DWARF debug sections with names: .debug_* and .zdebug_*, after the section flags is set. */ @@ -161,7 +161,7 @@ make_a_section_from_file (bfd *abfd, if ((abfd->flags & BFD_DECOMPRESS)) action = decompress; } - else if (!bfd_is_section_compressed (abfd, return_section)) + else { /* Normal section. Check if we should compress. */ if ((abfd->flags & BFD_COMPRESS) && return_section->size != 0) @@ -177,7 +177,7 @@ make_a_section_from_file (bfd *abfd, { _bfd_error_handler /* xgettext: c-format */ - (_("%pB: unable to initialize compress status for section %s"), + (_("%pB: unable to compress section %s"), abfd, name); return false; } @@ -194,7 +194,7 @@ make_a_section_from_file (bfd *abfd, { _bfd_error_handler /* xgettext: c-format */ - (_("%pB: unable to initialize decompress status for section %s"), + (_("%pB: unable to decompress section %s"), abfd, name); return false; } -- 2.30.2