https://sourceware.org/bugzilla/show_bug.cgi?id=28709

Fangrui Song <maskray at sourceware dot org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |maskray at sourceware dot org

--- Comment #9 from Fangrui Song <maskray at sourceware dot org> ---
(In reply to Sourceware Commits from comment #6)
> The master branch has been updated by Alan Modra <[email protected]>:
> 
> https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;
> h=443aa5f05edb58fc1774f926e9259b7c5a180926
> 
> commit 443aa5f05edb58fc1774f926e9259b7c5a180926
> Author: Alan Modra <[email protected]>
> Date:   Tue Dec 21 01:09:13 2021 +1030
> 
>     gas reloc sorting
>     
>     In some cases, eg. riscv_pre_output_hook, gas generates out-of-order
>     relocations.  Various places in the linker assume relocs are sorted
>     by increasing r_offset, which is normally the case.  Provide
>     GAS_SORT_RELOCS to handle unsorted relocs.
>     
>     bfd/
>             PR 28709
>             * elf32-nds32.c (nds32_insertion_sort): Make static.
>             * elf32-nds32.h (nds32_insertion_sort): Delete declaration.
>     gas/
>             PR 28709
>             * write.c (write_relocs): Implement reloc sorting by r_offset
>             when GAS_SORT_RELOCS.
>             * config/tc-nds32.c (compar_relent, nds32_set_section_relocs):
> Delete.
>             * config/tc-nds32.h (nds32_set_section_relocs): Don't declare.
>             (SET_SECTION_RELOCS): Don't define.
>             (GAS_SORT_RELOCS): Define.
>             * config/tc-riscv.h (GAS_SORT_RELOCS): Define.

If the linker expected sorted relocations by r_offset, shouldn't the linker
sort the relocations instead?

The reproduce tarball does not use `.reloc` directives. I feel odd that
GAS_SORT_RELOCS is introduced to sort the relocations in the assembler.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Reply via email to