about summary refs log tree commit diff
path: root/src/liballoc_system
diff options
context:
space:
mode:
authorMichal 'vorner' Vaner <vorner@vorner.cz>2017-09-10 19:59:42 +0200
committerMichal 'vorner' Vaner <vorner@vorner.cz>2017-09-10 19:59:42 +0200
commit94297c67465c3bd124063de717f7574491f5cc7d (patch)
treef61293a30e402108589cfd9f8c2e71bfacb3caa0 /src/liballoc_system
parentd290dec97f8bace2a2585505518b109b1e368f4c (diff)
downloadrust-94297c67465c3bd124063de717f7574491f5cc7d.tar.gz
rust-94297c67465c3bd124063de717f7574491f5cc7d.zip
Autodetect the type of allocator crate used
Annotate the allocator crates (allocator_system, allocator_jemalloc) by
the type of allocator they are. If one is requested as an exe allocator,
detect its type by the flags.

This has the effect that using this (de jure wrong) configuration in the
target spec works instead of producing a really unhelpful and arcane
linker error:

"exe-allocation-crate": "alloc_system"

Fixes #43524.
Diffstat (limited to 'src/liballoc_system')
-rw-r--r--src/liballoc_system/lib.rs3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/liballoc_system/lib.rs b/src/liballoc_system/lib.rs
index 599d79104c3..2eb659699eb 100644
--- a/src/liballoc_system/lib.rs
+++ b/src/liballoc_system/lib.rs
@@ -9,6 +9,7 @@
 // except according to those terms.
 
 #![no_std]
+#![allow(unused_attributes)]
 #![deny(warnings)]
 #![unstable(feature = "alloc_system",
             reason = "this library is unlikely to be stabilized in its current \
@@ -19,7 +20,9 @@
 #![feature(alloc)]
 #![feature(core_intrinsics)]
 #![feature(staged_api)]
+#![feature(rustc_attrs)]
 #![cfg_attr(any(unix, target_os = "redox"), feature(libc))]
+#![rustc_alloc_kind = "lib"]
 
 // The minimum alignment guaranteed by the architecture. This value is used to
 // add fast paths for low alignment values. In practice, the alignment is a