aboutsummaryrefslogtreecommitdiff
path: root/ld/ldmain.c
diff options
context:
space:
mode:
Diffstat (limited to 'ld/ldmain.c')
-rw-r--r--ld/ldmain.c25
1 files changed, 16 insertions, 9 deletions
diff --git a/ld/ldmain.c b/ld/ldmain.c
index 10f7a05..a28f341 100644
--- a/ld/ldmain.c
+++ b/ld/ldmain.c
@@ -352,7 +352,7 @@ main (int argc, char **argv)
link_info.spare_dynamic_tags = 5;
link_info.path_separator = ':';
#ifdef DEFAULT_FLAG_COMPRESS_DEBUG
- link_info.compress_debug = DEFAULT_COMPRESSED_DEBUG_ALGORITHM;
+ config.compress_debug = DEFAULT_COMPRESSED_DEBUG_ALGORITHM;
#endif
#ifdef DEFAULT_NEW_DTAGS
link_info.new_dtags = DEFAULT_NEW_DTAGS;
@@ -503,16 +503,23 @@ main (int argc, char **argv)
else
link_info.output_bfd->flags |= EXEC_P;
- if ((link_info.compress_debug & COMPRESS_DEBUG))
+ flagword flags = 0;
+ switch (config.compress_debug)
{
- link_info.output_bfd->flags |= BFD_COMPRESS;
- if (link_info.compress_debug != COMPRESS_DEBUG_GNU_ZLIB)
- {
- link_info.output_bfd->flags |= BFD_COMPRESS_GABI;
- if (link_info.compress_debug == COMPRESS_DEBUG_ZSTD)
- link_info.output_bfd->flags |= BFD_COMPRESS_ZSTD;
- }
+ case COMPRESS_DEBUG_GNU_ZLIB:
+ flags = BFD_COMPRESS;
+ break;
+ case COMPRESS_DEBUG_GABI_ZLIB:
+ flags = BFD_COMPRESS | BFD_COMPRESS_GABI;
+ break;
+ case COMPRESS_DEBUG_ZSTD:
+ flags = BFD_COMPRESS | BFD_COMPRESS_GABI | BFD_COMPRESS_ZSTD;
+ break;
+ default:
+ break;
}
+ link_info.output_bfd->flags
+ |= flags & bfd_applicable_file_flags (link_info.output_bfd);
ldwrite ();