diff options
| author | arthurprs <arthurprs@gmail.com> | 2017-06-09 20:23:38 +0200 |
|---|---|---|
| committer | arthurprs <arthurprs@gmail.com> | 2017-06-09 20:23:38 +0200 |
| commit | 1cd077dd40e5bed789f803733db999015b66eda1 (patch) | |
| tree | 721767fed0de10d1aa4588abc9e41374952719bc /src/liballoc_jemalloc | |
| parent | 5fe923d43455f362408aad30ffc86a6ab71ff7c6 (diff) | |
| download | rust-1cd077dd40e5bed789f803733db999015b66eda1.tar.gz rust-1cd077dd40e5bed789f803733db999015b66eda1.zip | |
Revert "Update jemalloc to 4.5.0"
This reverts commit 65d0be3b7b540145c22409b1a79f7d263422e19b.
Diffstat (limited to 'src/liballoc_jemalloc')
| -rw-r--r-- | src/liballoc_jemalloc/build.rs | 24 |
1 files changed, 23 insertions, 1 deletions
diff --git a/src/liballoc_jemalloc/build.rs b/src/liballoc_jemalloc/build.rs index 859e414a6fe..f3a0eebe698 100644 --- a/src/liballoc_jemalloc/build.rs +++ b/src/liballoc_jemalloc/build.rs @@ -93,7 +93,29 @@ fn main() { .env("AR", &ar) .env("RANLIB", format!("{} s", ar.display())); - if target.contains("ios") { + if target.contains("windows") { + // A bit of history here, this used to be --enable-lazy-lock added in + // #14006 which was filed with jemalloc in jemalloc/jemalloc#83 which + // was also reported to MinGW: + // + // http://sourceforge.net/p/mingw-w64/bugs/395/ + // + // When updating jemalloc to 4.0, however, it was found that binaries + // would exit with the status code STATUS_RESOURCE_NOT_OWNED indicating + // that a thread was unlocking a mutex it never locked. Disabling this + // "lazy lock" option seems to fix the issue, but it was enabled by + // default for MinGW targets in 13473c7 for jemalloc. + // + // As a result of all that, force disabling lazy lock on Windows, and + // after reading some code it at least *appears* that the initialization + // of mutexes is otherwise ok in jemalloc, so shouldn't cause problems + // hopefully... + // + // tl;dr: make windows behave like other platforms by disabling lazy + // locking, but requires passing an option due to a historical + // default with jemalloc. + cmd.arg("--disable-lazy-lock"); + } else if target.contains("ios") { cmd.arg("--disable-tls"); } else if target.contains("android") { // We force android to have prefixed symbols because apparently |
