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 >