Skip to content

Commit

Permalink
Fix build on FreeBSD (#815)
Browse files Browse the repository at this point in the history
* Fix build on FreeBSD

error[E0432]: unresolved import `libc::__errno_location`
  --> src/platform/linux/x11/mod.rs:22:85
   |
22 | use libc::{select, fd_set, FD_SET, FD_ZERO, FD_ISSET, EINTR, EINVAL, ENOMEM, EBADF, __errno_location};
   |                                                                                     ^^^^^^^^^^^^^^^^ no `__errno_location` in the root

__errno_location is called __error on FreeBSD and __errno on Open- and NetBSD.

Signed-off-by: Tobias Kortkamp <[email protected]>

* Import __error / __errno on *BSD as __errno_location

Signed-off-by: Tobias Kortkamp <[email protected]>

* Add changelog entry

Signed-off-by: Tobias Kortkamp <[email protected]>
  • Loading branch information
Tobias Kortkamp authored and elinorbgr committed Apr 7, 2019
1 parent 6b7bd32 commit cb93554
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 1 deletion.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@
- Removed `serde` implementations from `ControlFlow`.

- On Windows, fix `CursorMoved(0, 0)` getting dispatched on window focus.
- On FreeBSD, NetBSD, and OpenBSD, fix build of X11 backend.

# Version 0.19.0 (2019-03-06)

Expand Down
8 changes: 7 additions & 1 deletion src/platform_impl/linux/x11/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,13 @@ use std::collections::HashMap;
use std::ffi::CStr;
use std::ops::Deref;
use std::os::raw::*;
use libc::{select, fd_set, FD_SET, FD_ZERO, FD_ISSET, EINTR, EINVAL, ENOMEM, EBADF, __errno_location};
use libc::{select, fd_set, FD_SET, FD_ZERO, FD_ISSET, EINTR, EINVAL, ENOMEM, EBADF};
#[cfg(target_os = "linux")]
use libc::__errno_location;
#[cfg(target_os = "freebsd")]
use libc::__error as __errno_location;
#[cfg(any(target_os = "netbsd", target_os = "openbsd"))]
use libc::__errno as __errno_location;
use std::sync::{Arc, mpsc, Weak};
use std::sync::atomic::{self, AtomicBool};

Expand Down

0 comments on commit cb93554

Please sign in to comment.