Modern ELF platforms use -fuse-init-array to emit .init_array instead of
.ctors . ld.bfd and gold merge .--ctors-in-init_-array and .ctors intomerge .init_array and
.ctors into .init_array but lld doesn't do that.
If crtbegin*.o crtend*.o don't provide .ctors/.dtors, such .ctors in
.ctors/.dtors,user object files can lead to crash (see PR42002. such .ctors in user object files can lead to crashThe first and the last
(see PR42002. The first and the last elements in .ctors/.dtors are ignored - they are traditionally provided
- they are traditionally provided by crtbegin*.o crtend*.o).
Call addClangTargetOptions() to ensure -fuse-init-array is rendered on
modern ELF platforms. On Hexagon, this renders -target-feature
+reserved-r19 for -ffixed-r19.