diff options
| author | Scott Abbey <scottabbey2@gmail.com> | 2017-12-21 21:43:16 -0600 |
|---|---|---|
| committer | Scott Abbey <scottabbey2@gmail.com> | 2017-12-22 02:34:13 -0600 |
| commit | b989428f7dec7b52d68bed6a21e9b5b0a8086267 (patch) | |
| tree | 620ea9b0272b41915d07045f5faaa9f1b46f7445 | |
| parent | f7a0dffc7870224f87263b4cda81d98b2436d8f0 (diff) | |
Don't try to statically link libstdc++ on FreeBSD
The code inside this conditional will not work on FreeBSD 10+ because those versions use clang and libc++ rather than libstdc++. Since FreeBSD comes with libc++ in the base, presumably all 10+ systems will have it present. Searching for libstdc++.a will not work if it is not present. As a result, this would previously have set `LLVM_STATIC_STDCPP=libstdc++.a`, which isn't a valid path and caused problems later on when building `librustc_llvm`. This could possibly be updated in the future to look for `libc++.a` on FreeBSD, by expanding the code inside the conditional. In one attempt to run this on x86_64-freebsd, I found that libc++ was not compiled with PIC, so it failed anyway.
| -rw-r--r-- | src/bootstrap/compile.rs | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/bootstrap/compile.rs b/src/bootstrap/compile.rs index 4c76230ced8..c8e500a4f68 100644 --- a/src/bootstrap/compile.rs +++ b/src/bootstrap/compile.rs @@ -550,6 +550,7 @@ pub fn rustc_cargo(build: &Build, // Building with a static libstdc++ is only supported on linux right now, // not for MSVC or macOS if build.config.llvm_static_stdcpp && + !target.contains("freebsd") && !target.contains("windows") && !target.contains("apple") { cargo.env("LLVM_STATIC_STDCPP", |
