The GC algorithm implementation in lld marks all sections for which
there are start_<section> and stop_<section> references as live.
This leads to an issue where the section with the same name could be
in multiple groups, and while only some of these groups are referenced,
the current implementation will keep all of them.
Concrete example of this issue is LLVM profile instrumentation where for
every function symbol we create a section (assuming -ffunction-sections)
and corresponding llvm_prf_data section that contains associated
metadata, both of which are in a group. When there aren't any references
to the function section, we'd expect the entire group to be collected,
but that won't be the case because of start___llvm_prf_data and
stop_llvm_prf_data symbol references in profile runtime.
This patch changes the behavior to ignore start/stop symbols in section
groups which allows for these groups to be collected. This also matches
the behavior of BFD linker.