This patch is mainly based on D45508. The main differences between this patch and D45508 are:
- This patch simply renames the .ctors section and changes its type, instead of creating a new section. I did so since I find that the newly created section wouldn't be relocated since the relocation information is lost.
- This patch reverse the contents of .ctors after relocation as the original author mentioned.
Test-Plan: check-lld
clang-tidy: warning: invalid case style for member 'CtorsInInitArray' [readability-identifier-naming]
not useful