fuzz: Make fork_fuzz.ld compatible with LLVM's LLD

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.

Signed-off-by: Daniele Buono <dbuono@linux.vnet.ibm.com>
Message-Id: <20201105221905.1350-2-dbuono@linux.vnet.ibm.com>
Reviewed-by: Alexander Bulekov <alxndr@bu.edu>
Tested-by: Alexander Bulekov <alxndr@bu.edu>
Signed-off-by: Thomas Huth <thuth@redhat.com>
This commit is contained in:
Daniele Buono 2020-11-05 17:18:57 -05:00 committed by Thomas Huth
parent bb451d2487
commit aba378dee6

View File

@ -16,6 +16,11 @@ SECTIONS
/* Lowest stack counter */ /* Lowest stack counter */
*(__sancov_lowest_stack); *(__sancov_lowest_stack);
} }
}
INSERT AFTER .data;
SECTIONS
{
.data.fuzz_ordered : .data.fuzz_ordered :
{ {
/* /*
@ -34,6 +39,11 @@ SECTIONS
*/ */
*(.bss._ZN6fuzzer3TPCE); *(.bss._ZN6fuzzer3TPCE);
} }
}
INSERT AFTER .data.fuzz_start;
SECTIONS
{
.data.fuzz_end : ALIGN(4K) .data.fuzz_end : ALIGN(4K)
{ {
__FUZZ_COUNTERS_END = .; __FUZZ_COUNTERS_END = .;
@ -43,4 +53,4 @@ SECTIONS
* Don't overwrite the SECTIONS in the default linker script. Instead insert the * Don't overwrite the SECTIONS in the default linker script. Instead insert the
* above into the default script * above into the default script
*/ */
INSERT AFTER .data; INSERT AFTER .data.fuzz_ordered;