[PATCH] bfd: Discard region regardless of warning flag

Christophe Lyon christophe.lyon.oss@gmail.com
Sat Dec 17 16:13:23 GMT 2022


Hi Torbjörn,

On Sat, Dec 17, 2022 at 11:29 AM Torbjörn SVENSSON via Binutils <
binutils@sourceware.org> wrote:

> The discard of the region should be performed regardless if the warning
> for the discard is enabled or not.
> Without this patch, ld would segfault in bfd_section_removed_from_list,
> called in the if-statement right after this block, as the argument
> isec->output_section can be NULL.
>
> Signed-off-by: Torbjörn SVENSSON <torbjorn.svensson@foss.st.com>
> ---
>  bfd/elflink.c | 10 +++++-----
>  1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/bfd/elflink.c b/bfd/elflink.c
> index fc3edef9a05..0368256970b 100644
> --- a/bfd/elflink.c
> +++ b/bfd/elflink.c
> @@ -11154,12 +11154,12 @@ elf_link_input_bfd (struct elf_final_link_info
> *flinfo, bfd *input_bfd)
>        if (isym->st_shndx != SHN_UNDEF
>           && isym->st_shndx < SHN_LORESERVE
>           && isec->output_section == NULL
> -         && flinfo->info->non_contiguous_regions
> -         && flinfo->info->non_contiguous_regions_warnings)
> +         && flinfo->info->non_contiguous_regions)
>         {
> -         _bfd_error_handler (_("warning: --enable-non-contiguous-regions "
> -                               "discards section `%s' from '%s'\n"),
> -                             isec->name, bfd_get_filename (isec->owner));
> +         if (flinfo->info->non_contiguous_regions_warnings)
> +           _bfd_error_handler (_("warning:
> --enable-non-contiguous-regions "
> +                                 "discards section `%s' from '%s'\n"),
> +                               isec->name, bfd_get_filename
> (isec->owner));
>           continue;
>         }
>
>
Thanks for catching this, it makes sense indeed.
Any change you can add a testcase?

Best,

Christophe



> --
> 2.25.1
>
>


More information about the Binutils mailing list