On 201105 1718, Daniele Buono wrote:
> LLVM's linker, LLD, supports the keyword "INSERT AFTER", starting with
> version 11.
> However, when multiple sections are defined in the same "INSERT AFTER",
> they are added in a reversed order, compared to BFD's LD.
> 
> This patch makes fork_fuzz.ld generic enough to work with both linkers.
> Each section now has its own "INSERT AFTER" keyword, so proper ordering is
> defined between the sections added.
> 

Hi Daniele,
Good to know that LLVM now has support for "INSERT AFTER" :)

I compared the resulting symbols between __FUZZ_COUNTERS_{START,END}
(after linking with BFD) before/after this patch, and they look good. I
also ran a test-build with OSS-Fuzz container and confirmed that the
resulting binary also had proper symbols.

Reviewed-by: Alexander Bulekov <alx...@bu.edu>
Tested-by: Alexander Bulekov <alx...@bu.edu>

Thanks

> Signed-off-by: Daniele Buono <dbu...@linux.vnet.ibm.com>
> ---
>  tests/qtest/fuzz/fork_fuzz.ld | 12 +++++++++++-
>  1 file changed, 11 insertions(+), 1 deletion(-)
> 
> diff --git a/tests/qtest/fuzz/fork_fuzz.ld b/tests/qtest/fuzz/fork_fuzz.ld
> index bfb667ed06..cfb88b7fdb 100644
> --- a/tests/qtest/fuzz/fork_fuzz.ld
> +++ b/tests/qtest/fuzz/fork_fuzz.ld
> @@ -16,6 +16,11 @@ SECTIONS
>        /* Lowest stack counter */
>        *(__sancov_lowest_stack);
>    }
> +}
> +INSERT AFTER .data;
> +
> +SECTIONS
> +{
>    .data.fuzz_ordered :
>    {
>        /*
> @@ -34,6 +39,11 @@ SECTIONS
>         */
>         *(.bss._ZN6fuzzer3TPCE);
>    }
> +}
> +INSERT AFTER .data.fuzz_start;
> +
> +SECTIONS
> +{
>    .data.fuzz_end : ALIGN(4K)
>    {
>        __FUZZ_COUNTERS_END = .;
> @@ -43,4 +53,4 @@ SECTIONS
>   * Don't overwrite the SECTIONS in the default linker script. Instead insert 
> the
>   * above into the default script
>   */
> -INSERT AFTER .data;
> +INSERT AFTER .data.fuzz_ordered;
> -- 
> 2.17.1
> 

Reply via email to