Skip site navigation (1)Skip section navigation (2)
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>