diff options
author | Martin Storsjö <martin@martin.st> | 2016-07-22 10:19:52 +0300 |
---|---|---|
committer | Martin Storsjö <martin@martin.st> | 2016-07-26 09:29:49 +0300 |
commit | 100fb0ddfda958da70f98feac81f924c02483789 (patch) | |
tree | 33e1260d694ca01a417b3cf11a9a59ca1251b4fd | |
parent | 79fb0692992c74214c6cf8e81350fc93eeffc5ec (diff) |
configure: Allow detecting and using LLVM lld-link as linker for windows
Signed-off-by: Martin Storsjö <martin@martin.st>
-rwxr-xr-x | configure | 12 |
1 files changed, 12 insertions, 0 deletions
@@ -3262,6 +3262,18 @@ probe_cc(){ # -Qvec- -Qsimd- to prevent miscompilation, -GS for consistency # with MSVC which enables it by default. _cflags='-Qms0 -Qvec- -Qsimd- -GS' + elif $_cc -? 2>/dev/null | grep -q 'LLVM.*Linker'; then + # lld can emulate multiple different linkers; in ms link.exe mode, + # the -? parameter gives the help output which contains an identifyable + # string, while it gives an error in other modes. + _type=lld-link + # The link.exe mode doesn't have a switch for getting the version, + # but we can force it back to gnu mode and get the version from there. + _ident=$($_cc -flavor gnu --version) + _ld_o='-out:$@' + _flags_filter=msvc_flags + _ld_lib='lib%.a' + _ld_path='-libpath:' elif $_cc --version 2>/dev/null | grep -q ^cparser; then _type=cparser _ident=$($_cc --version | head -n1) |