diff --git a/.travis.yml b/.travis.yml
index b522002531994e3d64a7f9e45c0effdaa3011076..d6d3ab581d95dfdb520d75e4e23bf978377799ae 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -3,6 +3,7 @@ sudo: required
 dist: trusty
 rust:
   - 1.0.0
+  - stable
   - beta
   - nightly
 services:
@@ -10,8 +11,11 @@ services:
 script:
   - if [[ $TRAVIS_RUST_VERSION = nightly* ]]; then
       sh ci/run-travis.sh;
+    elif [[ $TRAVIS_RUST_VERSION = "1.0.0" ]]; then
+      cargo build;
     else
       cargo build;
+      cargo build --no-default-features;
     fi
 os:
   - linux
diff --git a/Cargo.toml b/Cargo.toml
index 067d0785b5cc94679b5fcae7575dc3dc9e42d057..28e5b3359e8dc5a97bd61f348bb502ba25be8339 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -14,4 +14,5 @@ other common platform libraries.
 """
 
 [features]
-default = []
+default = ["use_std"]
+use_std = []
diff --git a/README.md b/README.md
index 801b73d3754411e876254747ee4d33316aa500b5..69ebadafccc1a2017d7f5dbd7248ec355dc4863b 100644
--- a/README.md
+++ b/README.md
@@ -24,6 +24,15 @@ Next, add this to your crate root:
 extern crate libc;
 ```
 
+Currently libc by default links to the standard library, but if you would
+instead like to use libc in a `#![no_std]` situation or crate you can request
+this via:
+
+```toml
+[dependencies]
+libc = { version = "0.2", default-features = false }
+```
+
 ## What is libc?
 
 The primary purpose of this crate is to provide all of the definitions necessary
diff --git a/src/lib.rs b/src/lib.rs
index bcb83fcb5daaf9a023c89d0532cbd75bc52746a2..c9d7701aa652525e20e8c410bc4f629367d12706 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -82,7 +82,9 @@
                                reason = "use `libc` from crates.io",
                                issue = "27783"))]
 
-#[cfg(all(not(stdbuild), not(dox)))]
+#![cfg_attr(not(feature = "use_std"), no_std)]
+
+#[cfg(all(not(stdbuild), not(dox), feature = "use_std"))]
 extern crate std as core;
 
 #[macro_use] mod macros;