rust/src/librustc_llvm
bors b1da18fe9b Auto merge of #37822 - cuviper:llvm-link-shared, r=alexcrichton
rustbuild: allow dynamically linking LLVM

The makefiles and `mklldeps.py` called `llvm-config --shared-mode` to
find out if LLVM defaulted to shared or static libraries, and just went
with that.  But under rustbuild, `librustc_llvm/build.rs` was assuming
that LLVM should be static, and even forcing `--link-static` for 3.9+.

Now that build script also uses `--shared-mode` to learn the default,
which should work better for pre-3.9 configured for dynamic linking, as
it wasn't possible back then to choose differently via `llvm-config`.

Further, the configure script now has a new `--enable-llvm-link-shared`
option, which allows one to manually override `--link-shared` on 3.9+
instead of forcing static.

Update: There are now four static/shared scenarios that can happen
for the supported LLVM versions:

- 3.9+: By default use `llvm-config --link-static`
- 3.9+ and `--enable-llvm-link-shared`: Use `--link-shared` instead.
- 3.8: Use `llvm-config --shared-mode` and go with its answer.
- 3.7: Just assume static, maintaining the status quo.
2016-11-19 08:08:26 -08:00
..
archive_ro.rs run rustfmt on librustc_llvm folder 2016-05-29 14:57:34 +05:30
build.rs rustbuild: update the llvm link logic further 2016-11-17 21:50:59 -08:00
Cargo.toml Update gcc crate dependency to 0.3.27. 2016-07-30 15:39:13 -05:00
diagnostic.rs run rustfmt on librustc_llvm folder 2016-10-22 18:37:35 +05:30
ffi.rs fix extern "aapcs" fn 2016-11-16 18:38:32 -05:00
lib.rs enable the MSP430 LLVM backend 2016-11-12 17:33:35 -05:00