[PATCH] objcopy: Don't add zstd to the debug compression options if not available

Pietro Monteiro pietro@sociotechnical.xyz
Wed Oct 22 04:50:26 GMT 2025


On Tue, Oct 21, 2025, at 11:40 PM, Alan Modra wrote:
> On Mon, Oct 20, 2025 at 01:28:41PM -0400, Pietro Monteiro wrote:
>> On Mon, Oct 20, 2025, at 3:41 AM, Jan Beulich wrote:
>> > On 20.10.2025 02:14, Pietro Monteiro wrote:
>> >> If zstd is not available or was intentionally disabled by the user
>> >> don't add it to the list of the available options to compress debug
>> >> sections when showing usage.
>> >> 
>> >> binutils/ChangeLog:
>> >> 
>> >> 	* objcopy.c (copy_usage): Output
>> >> 	--compress-debug-sections=zstd if HAVE_ZSTD.
>> >> 	* po/binutils.pot: Regenerate.
>> >
>> > I'm not sure this file wants updating by isolated changes. Nick, Alan -
>> > can you provide any guidance here?
>> 
>> Yeah, it looks like this file is updated when a new release is created.
>
> Yes, updating .pot files is something that tends to happen a little
> while before a release.  I'll push the following variant of your patch
> if you're happy for me to leave your name as the author.

Yes, that look good. Thanks!

pietro

> From 4cfcc5412cc2dd1ebe31ca467f2afe4752d45952 Mon Sep 17 00:00:00 2001
> From: Pietro Monteiro <pietro@sociotechnical.xyz>
> Date: Sun, 19 Oct 2025 20:14:51 -0400
> Subject: objcopy: Don't add zstd to the debug compression options if not
>  available
>
> If zstd is not available or was intentionally disabled by the user
> don't add it to the list of the available options to compress debug
> sections when showing usage.
>
> binutils/
> 	* objcopy.c (copy_usage): Only output
> 	--compress-debug-sections=zstd if HAVE_ZSTD.
>
> diff --git a/binutils/objcopy.c b/binutils/objcopy.c
> index 3c1bcf622ff..9373b75d6ed 100644
> --- a/binutils/objcopy.c
> +++ b/binutils/objcopy.c
> @@ -570,6 +570,12 @@ static bool write_debugging_info (bfd *, void *, 
> long *, asymbol ***);
>  static const char *lookup_sym_redefinition (const char *);
>  static const char *find_section_rename (const char *, flagword *);
> 
> +#ifdef HAVE_ZSTD
> +#define ZSTD_OPT "|zstd"
> +#else
> +#define ZSTD_OPT ""
> +#endif
> +
>  ATTRIBUTE_NORETURN static void
>  copy_usage (FILE *stream, int exit_status)
>  {
> @@ -692,8 +698,8 @@ copy_usage (FILE *stream, int exit_status)
>                                     <commit>\n\
>       --subsystem <name>[:<version>]\n\
>                                     Set PE subsystem to <name> [& 
> <version>]\n\
> -     --compress-debug-sections[={none|zlib|zlib-gnu|zlib-gabi|zstd}]\n\
> -				   Compress DWARF debug sections\n\
> +     --compress-debug-sections[={none|zlib|zlib-gnu|zlib-gabi" 
> ZSTD_OPT "}]\n\
> +                                   Compress DWARF debug sections\n\
>       --decompress-debug-sections   Decompress DWARF debug sections 
> using zlib\n\
>       --elf-stt-common=[yes|no]     Generate ELF common symbols with 
> STT_COMMON\n\
>                                       type\n\
>
>
> -- 
> Alan Modra


More information about the Binutils mailing list