summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--build.rs9
-rw-r--r--src/errno.rs24
-rw-r--r--src/errno_dragonfly.c3
3 files changed, 3 insertions, 33 deletions
diff --git a/build.rs b/build.rs
deleted file mode 100644
index c527748b..00000000
--- a/build.rs
+++ /dev/null
@@ -1,9 +0,0 @@
-#[cfg(target_os = "dragonfly")]
-fn main() {
- cc::Build::new()
- .file("src/errno_dragonfly.c")
- .compile("liberrno_dragonfly.a");
-}
-
-#[cfg(not(target_os = "dragonfly"))]
-fn main() {}
diff --git a/src/errno.rs b/src/errno.rs
index eda097d8..03a7f0e2 100644
--- a/src/errno.rs
+++ b/src/errno.rs
@@ -1,5 +1,4 @@
use cfg_if::cfg_if;
-#[cfg(not(target_os = "dragonfly"))]
use libc::{c_int, c_void};
use std::{fmt, io, error};
use crate::{Error, Result};
@@ -13,32 +12,15 @@ cfg_if! {
unsafe fn errno_location() -> *mut c_int {
libc::__error()
}
- } else if #[cfg(target_os = "dragonfly")] {
- // DragonFly uses a thread-local errno variable, but #[thread_local] is
- // feature-gated and not available in stable Rust as of this writing
- // (Rust 1.21.0). We have to use a C extension to access it
- // (src/errno_dragonfly.c).
- //
- // Tracking issue for `thread_local` stabilization:
- //
- // https://github.com/rust-lang/rust/issues/29594
- //
- // Once this becomes stable, we can remove build.rs,
- // src/errno_dragonfly.c, and use:
- //
- // extern { #[thread_local] static errno: c_int; }
- //
- #[link(name="errno_dragonfly", kind="static")]
- extern {
- pub fn errno_location() -> *mut c_int;
- }
} else if #[cfg(any(target_os = "android",
target_os = "netbsd",
target_os = "openbsd"))] {
unsafe fn errno_location() -> *mut c_int {
libc::__errno()
}
- } else if #[cfg(any(target_os = "linux", target_os = "redox"))] {
+ } else if #[cfg(any(target_os = "linux",
+ target_os = "redox",
+ target_os = "dragonfly"))] {
unsafe fn errno_location() -> *mut c_int {
libc::__errno_location()
}
diff --git a/src/errno_dragonfly.c b/src/errno_dragonfly.c
deleted file mode 100644
index 32fb4dab..00000000
--- a/src/errno_dragonfly.c
+++ /dev/null
@@ -1,3 +0,0 @@
-#include <errno.h>
-
-int *errno_location() { return &errno; }