]> granicus.if.org Git - clang/commit
Use -fuse-init-array if no gcc installation is found.
authorNico Weber <nicolasweber@gmx.de>
Thu, 26 Oct 2017 23:26:29 +0000 (23:26 +0000)
committerNico Weber <nicolasweber@gmx.de>
Thu, 26 Oct 2017 23:26:29 +0000 (23:26 +0000)
commitd724af7fa85aee225bfe4876b602151cc83f5dd0
tree6043f4f134649d09008c54742b1ae893dc8f8f82
parent3b4d273c998f39c228f0940515b9b2924451eadb
Use -fuse-init-array if no gcc installation is found.

clang currently uses .init_array instead of .ctors on Linux if it detects gcc
4.7+. Make it so that it also uses .init_array if no gcc installation is found
at all – if there's no old gcc, there's nothing we need to be compatible with.

icecc for example runs clang in a very small chroot, so before this change
clang would use .ctors if run under icecc. And lld currently silently mislinks
inputs with .ctors sections, so before this clang + icecc + lld would produce
broken binaries. (But this seems like a good change independent of that lld
bug.)

https://reviews.llvm.org/D39317

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@316713 91177308-0d34-0410-b5e6-96231b3b80d8
docs/ReleaseNotes.rst
lib/Driver/ToolChains/Gnu.cpp
test/Driver/constructors.c