Date: Wed, 09 Aug 2017 22:00:51 +0000 From: bugzilla-noreply@freebsd.org To: freebsd-ports-bugs@FreeBSD.org Subject: [Bug 221378] lang/rust: libc needs to be patched after `struct kevent` change in 12-CURRENT Message-ID: <bug-221378-13@https.bugs.freebsd.org/bugzilla/>
next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D221378 Bug ID: 221378 Summary: lang/rust: libc needs to be patched after `struct kevent` change in 12-CURRENT Product: Ports & Packages Version: Latest Hardware: Any OS: Any Status: New Severity: Affects Some People Priority: --- Component: Individual Port(s) Assignee: freebsd-ports-bugs@FreeBSD.org Reporter: dumbbell@FreeBSD.org In r320043 (https://svnweb.freebsd.org/changeset/base/320043), `struct keve= nt` was modified in the following way: @@ -62,8 +66,9 @@ short filter; /* filter for event */ unsigned short flags; unsigned int fflags; - __intptr_t data; + __int64_t data; void *udata; /* opaque user data identifier */ + __uint64_t ext[4]; }; It means we need to patch libc's Rust version of that structure in `src/unix/bsd/freebsdlike/mod.rs`, when built on FreeBSD 12-CURRENT: pub struct kevent { pub ident: ::uintptr_t, pub filter: ::c_short, pub flags: ::c_ushort, pub fflags: ::c_uint, pub data: ::intptr_t, pub udata: *mut ::c_void, } I don't know if it's a consequence of this problem, but the `mio` crate doe= sn't work on my laptop running HEAD: $ cargo test Updating registry `https://github.com/rust-lang/crates.io-index` Compiling libc v0.2.29 Compiling slab v0.3.0 ... Finished dev [unoptimized + debuginfo] target(s) in 9.10 secs Running target/debug/deps/mio-368f23a642284461 running 3 tests test sys::unix::kqueue::test_coalesce_aio ... ok test poll::as_raw_fd ... FAILED test sys::unix::kqueue::does_not_register_rw ... FAILED failures: ---- poll::as_raw_fd stdout ---- thread 'poll::as_raw_fd' panicked at 'assertion failed: `(left =3D= =3D right)` (left: `0`, right: `16384`)', src/sys/unix/kqueue.rs:117 ---- sys::unix::kqueue::does_not_register_rw stdout ---- thread 'sys::unix::kqueue::does_not_register_rw' panicked at 'asser= tion failed: `(left =3D=3D right)` (left: `0`, right: `16384`)', src/sys/unix/kqueue.rs:117 note: Run with `RUST_BACKTRACE=3D1` for a backtrace. failures: poll::as_raw_fd sys::unix::kqueue::does_not_register_rw test result: FAILED. 1 passed; 2 failed; 0 ignored; 0 measured; 0 filte= red out error: test failed, to rerun pass '--lib' This is quite problematic because important crates such as `tokio-core` or `hyper` do not work... --- Comment #1 from Bugzilla Automation <bugzilla@FreeBSD.org> --- Maintainer informed via mail --=20 You are receiving this mail because: You are the assignee for the bug.=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-221378-13>