dcuddeback / termios-rs

Safe bindings for the termios library.
http://dcuddeback.github.io/termios-rs/termios/
MIT License
75 stars 25 forks source link

NetBSD build failure: unresolved import `os::target` #23

Closed 0-wiz-0 closed 4 years ago

0-wiz-0 commented 5 years ago

I stumbled over this crate when trying to build pijul on NetBSD. It stopped that build, so I tried building termos-rs directly, but this failed too:

# git clone https://github.com/dcuddeback/termios-rs.git
...
# cd termios-rs
# cargo build
    Updating crates.io index
 Downloading crates ...
  Downloaded libc v0.2.51
   Compiling libc v0.2.51
   Compiling termios v0.3.1 (/disk/6/archive/foreign/termios-rs)
error[E0432]: unresolved import `os::target`
   --> src/lib.rs:121:15
    |
121 | pub use ::os::target::{cc_t,speed_t,tcflag_t}; // types
    |               ^^^^^^ could not find `target` in `os`

error[E0432]: unresolved import `os::target`
   --> src/lib.rs:122:15
    |
122 | pub use ::os::target::{VEOF,VEOL,VERASE,VINTR,VKILL,VMIN,VQUIT,VSTART,VSTOP,VSUSP,VTIME}; // c_cc subscripts
    |               ^^^^^^ could not find `target` in `os`

error[E0432]: unresolved import `os::target`
   --> src/lib.rs:123:15
    |
123 | pub use ::os::target::{BRKINT,ICRNL,IGNBRK,IGNCR,IGNPAR,INLCR,INPCK,ISTRIP,IXANY,IXOFF,IXON,PARMRK}; // input modes
    |               ^^^^^^ could not find `target` in `os`

error[E0432]: unresolved import `os::target`
   --> src/lib.rs:124:15
    |
124 | pub use ::os::target::{OPOST,ONLCR,OCRNL,ONOCR,ONLRET}; // output modes
    |               ^^^^^^ could not find `target` in `os`

error[E0432]: unresolved import `os::target`
   --> src/lib.rs:125:15
    |
125 | pub use ::os::target::{B0,B50,B75,B110,B134,B150,B200,B300,B600,B1200,B1800,B2400,B4800,B9600,B19200,B38400}; // baud rate selection
    |               ^^^^^^ could not find `target` in `os`

error[E0432]: unresolved import `os::target`
   --> src/lib.rs:126:15
    |
126 | pub use ::os::target::{CSIZE,CS5,CS6,CS7,CS8,CSTOPB,CREAD,PARENB,PARODD,HUPCL,CLOCAL}; // control modes
    |               ^^^^^^ could not find `target` in `os`

error[E0432]: unresolved import `os::target`
   --> src/lib.rs:127:15
    |
127 | pub use ::os::target::{ECHO,ECHOE,ECHOK,ECHONL,ICANON,IEXTEN,ISIG,NOFLSH,TOSTOP}; // local modes
    |               ^^^^^^ could not find `target` in `os`

error[E0432]: unresolved import `os::target`
   --> src/lib.rs:128:15
    |
128 | pub use ::os::target::{TCSANOW,TCSADRAIN,TCSAFLUSH}; // attribute selection
    |               ^^^^^^ could not find `target` in `os`

error[E0432]: unresolved import `os::target`
   --> src/lib.rs:129:15
    |
129 | pub use ::os::target::{TCIFLUSH,TCIOFLUSH,TCOFLUSH,TCIOFF,TCION,TCOOFF,TCOON}; // line control
    |               ^^^^^^ could not find `target` in `os`

error[E0433]: failed to resolve: could not find `target` in `os`
 --> src/ffi.rs:7:55
  |
7 |     pub fn tcgetattr(fd: c_int, termios_p: *mut ::os::target::termios) -> c_int;
  |                                                       ^^^^^^ could not find `target` in `os`

error[E0433]: failed to resolve: could not find `target` in `os`
 --> src/ffi.rs:8:82
  |
8 |     pub fn tcsetattr(fd: c_int, optional_actions: c_int, termios_p: *const ::os::target::termios) -> c_int;
  |                                                                                  ^^^^^^ could not find `target` in `os`

error[E0433]: failed to resolve: could not find `target` in `os`
  --> src/ffi.rs:13:44
   |
13 |     pub fn cfmakeraw(termios_p: *mut ::os::target::termios);
   |                                            ^^^^^^ could not find `target` in `os`

error[E0433]: failed to resolve: could not find `target` in `os`
  --> src/ffi.rs:14:48
   |
14 |     pub fn cfgetispeed(termios_p: *const ::os::target::termios) -> ::os::target::speed_t;
   |                                                ^^^^^^ could not find `target` in `os`

error[E0433]: failed to resolve: could not find `target` in `os`
  --> src/ffi.rs:14:74
   |
14 |     pub fn cfgetispeed(termios_p: *const ::os::target::termios) -> ::os::target::speed_t;
   |                                                                          ^^^^^^ could not find `target` in `os`

error[E0433]: failed to resolve: could not find `target` in `os`
  --> src/ffi.rs:15:48
   |
15 |     pub fn cfgetospeed(termios_p: *const ::os::target::termios) -> ::os::target::speed_t;
   |                                                ^^^^^^ could not find `target` in `os`

error[E0433]: failed to resolve: could not find `target` in `os`
  --> src/ffi.rs:15:74
   |
15 |     pub fn cfgetospeed(termios_p: *const ::os::target::termios) -> ::os::target::speed_t;
   |                                                                          ^^^^^^ could not find `target` in `os`

error[E0433]: failed to resolve: could not find `target` in `os`
  --> src/ffi.rs:16:46
   |
16 |     pub fn cfsetispeed(termios_p: *mut ::os::target::termios, speed: ::os::target::speed_t) -> c_int;
   |                                              ^^^^^^ could not find `target` in `os`

error[E0433]: failed to resolve: could not find `target` in `os`
  --> src/ffi.rs:16:76
   |
16 |     pub fn cfsetispeed(termios_p: *mut ::os::target::termios, speed: ::os::target::speed_t) -> c_int;
   |                                                                            ^^^^^^ could not find `target` in `os`

error[E0433]: failed to resolve: could not find `target` in `os`
  --> src/ffi.rs:17:46
   |
17 |     pub fn cfsetospeed(termios_p: *mut ::os::target::termios, speed: ::os::target::speed_t) -> c_int;
   |                                              ^^^^^^ could not find `target` in `os`

error[E0433]: failed to resolve: could not find `target` in `os`
  --> src/ffi.rs:17:76
   |
17 |     pub fn cfsetospeed(termios_p: *mut ::os::target::termios, speed: ::os::target::speed_t) -> c_int;
   |                                                                            ^^^^^^ could not find `target` in `os`

error[E0433]: failed to resolve: could not find `target` in `os`
  --> src/ffi.rs:18:45
   |
18 |     pub fn cfsetspeed(termios_p: *mut ::os::target::termios, speed: ::os::target::speed_t) -> c_int;
   |                                             ^^^^^^ could not find `target` in `os`

error[E0433]: failed to resolve: could not find `target` in `os`
  --> src/ffi.rs:18:75
   |
18 |     pub fn cfsetspeed(termios_p: *mut ::os::target::termios, speed: ::os::target::speed_t) -> c_int;
   |                                                                           ^^^^^^ could not find `target` in `os`

error[E0433]: failed to resolve: could not find `target` in `os`
   --> src/lib.rs:172:18
    |
172 |     inner: ::os::target::termios
    |                  ^^^^^^ could not find `target` in `os`

error[E0433]: failed to resolve: could not find `target` in `os`
   --> src/lib.rs:188:31
    |
188 |     fn inner(&self) -> &::os::target::termios {
    |                               ^^^^^^ could not find `target` in `os`

error[E0433]: failed to resolve: could not find `target` in `os`
   --> src/lib.rs:192:43
    |
192 |     fn inner_mut(&mut self) -> &mut ::os::target::termios {
    |                                           ^^^^^^ could not find `target` in `os`

error[E0433]: failed to resolve: could not find `target` in `os`
   --> src/lib.rs:198:25
    |
198 |     type Target = ::os::target::termios;
    |                         ^^^^^^ could not find `target` in `os`

error[E0433]: failed to resolve: could not find `target` in `os`
   --> src/lib.rs:200:31
    |
200 |     fn deref(&self) -> &::os::target::termios {
    |                               ^^^^^^ could not find `target` in `os`

error[E0433]: failed to resolve: could not find `target` in `os`
   --> src/lib.rs:206:43
    |
206 |     fn deref_mut(&mut self) -> &mut ::os::target::termios {
    |                                           ^^^^^^ could not find `target` in `os`

error: aborting due to 28 previous errors

Some errors occurred: E0432, E0433.
For more information about an error, try `rustc --explain E0432`.
error: Could not compile `termios`.

To learn more, run the command again with --verbose.

This is with rustc 1.33.0 on NetBSD 8.99.36/amd64. (This is my first interaction with rust and cargo, so please let me know if this bug report should go somewhere else or if you need more information. Thank you.)

ghost commented 5 years ago

Related PR: https://github.com/dcuddeback/termios-rs/pull/22

dcuddeback commented 4 years ago

Merged #22. Will cut a release later this weekend.