Skip to content

Add windows support #10

Description

@makavity

Hello, just tried to compile it on windows and I suppose, there is no problem to add windows support.

C:\Users\admin>cargo install openentropy-cli --target x86_64-pc-windows-gnu
    Updating crates.io index
  Installing openentropy-cli v0.12.3
    Updating crates.io index
     Locking 245 packages to latest compatible versions
      Adding crossterm v0.28.1 (available: v0.29.0)
      Adding crypto-common v0.1.6 (available: v0.1.7)
      Adding matchit v0.8.4 (available: v0.8.6)
      Adding ratatui v0.29.0 (available: v0.30.0)
      Adding unicode-width v0.2.0 (available: v0.2.2)
   Compiling cfg-if v1.0.4
   Compiling proc-macro2 v1.0.106
   Compiling unicode-ident v1.0.24
   Compiling quote v1.0.45
   Compiling typenum v1.19.0
   Compiling windows-link v0.2.1
   Compiling zeroize v1.8.2
   Compiling version_check v0.9.5
   Compiling autocfg v1.5.0
   Compiling const-oid v0.9.6
   Compiling subtle v2.6.1
   Compiling libm v0.2.16
   Compiling itoa v1.0.18
   Compiling scopeguard v1.2.0
   Compiling zerocopy v0.8.47
   Compiling base64ct v1.8.3
   Compiling getrandom v0.2.17
   Compiling windows-sys v0.61.2
   Compiling parking_lot_core v0.9.12
   Compiling bytes v1.11.1
   Compiling pin-project-lite v0.2.17
   Compiling smallvec v1.15.1
   Compiling rand_core v0.6.4
   Compiling lock_api v0.4.14
   Compiling pem-rfc7468 v0.7.0
   Compiling generic-array v0.14.9
   Compiling futures-core v0.3.32
   Compiling serde_core v1.0.228
   Compiling num-traits v0.2.19
   Compiling once_cell v1.21.4
   Compiling ff v0.13.1
   Compiling windows_x86_64_gnu v0.52.6
   Compiling der v0.7.10
   Compiling base16ct v0.2.0
   Compiling group v0.13.0
   Compiling log v0.4.29
   Compiling http v1.4.0
   Compiling parking_lot v0.12.5
   Compiling paste v1.0.15
   Compiling rustversion v1.0.22
   Compiling getrandom v0.3.4
   Compiling zmij v1.0.21
   Compiling spki v0.7.3
   Compiling crc32fast v1.5.0
   Compiling syn v2.0.117
   Compiling pkcs8 v0.10.2
   Compiling httparse v1.10.1
   Compiling bytemuck v1.25.0
   Compiling getrandom v0.4.2
   Compiling winapi-x86_64-pc-windows-gnu v0.4.0
   Compiling serde v1.0.228
   Compiling safe_arch v0.7.4
   Compiling num-integer v0.1.46
   Compiling http-body v1.0.1
   Compiling num-complex v0.4.6
   Compiling socket2 v0.6.3
   Compiling mio v1.1.1
   Compiling crypto-common v0.1.6
   Compiling block-buffer v0.10.4
   Compiling sec1 v0.7.3
   Compiling crypto-bigint v0.5.5
   Compiling windows-targets v0.52.6
   Compiling tracing-core v0.1.36
   Compiling digest v0.10.7
   Compiling matrixmultiply v0.3.10
   Compiling adler2 v2.0.1
   Compiling thiserror v2.0.18
   Compiling cpufeatures v0.2.17
   Compiling simd-adler32 v0.3.8
   Compiling serde_json v1.0.149
   Compiling hmac v0.12.1
   Compiling signature v2.2.0
   Compiling rfc6979 v0.4.0
   Compiling ryu v1.0.23
   Compiling winapi v0.3.9
   Compiling strsim v0.11.1
   Compiling ident_case v1.0.1
   Compiling heck v0.5.0
   Compiling tower-service v0.3.3
   Compiling miniz_oxide v0.8.9
   Compiling tracing v0.1.44
   Compiling sha2 v0.10.9
   Compiling windows-sys v0.52.0
   Compiling rand_core v0.9.5
   Compiling wide v0.7.33
   Compiling approx v0.5.1
   Compiling futures-channel v0.3.32
   Compiling elliptic-curve v0.13.8
   Compiling sync_wrapper v1.0.2
   Compiling libc v0.2.183
   Compiling pin-utils v0.1.0
   Compiling slab v0.4.12
   Compiling memchr v2.8.0
   Compiling atomic-waker v1.1.2
   Compiling percent-encoding v2.3.2
   Compiling tower-layer v0.3.3
   Compiling anstyle v1.0.14
   Compiling futures-task v0.3.32
   Compiling darling_core v0.23.0
   Compiling ecdsa v0.16.9
   Compiling primeorder v0.13.6
   Compiling once_cell_polyfill v1.70.2
   Compiling utf8parse v0.2.2
   Compiling httpdate v1.0.3
   Compiling rawpointer v0.2.1
   Compiling anstyle-wincon v3.0.11
   Compiling anstyle-parse v1.0.0
   Compiling futures-util v0.3.32
   Compiling p256 v0.13.2
   Compiling form_urlencoded v1.2.2
   Compiling flate2 v1.1.9
   Compiling num-rational v0.4.2
   Compiling http-body-util v0.1.3
   Compiling anstyle-query v1.1.5
   Compiling ppv-lite86 v0.2.21
   Compiling equivalent v1.0.2
   Compiling strength_reduce v0.2.4
   Compiling mime v0.3.17
   Compiling openentropy-core v0.12.3
   Compiling simba v0.9.1
   Compiling allocator-api2 v0.2.21
   Compiling rand_chacha v0.3.1
   Compiling rand_chacha v0.9.0
   Compiling either v1.15.0
   Compiling tokio-macros v2.6.1
   Compiling serde_derive v1.0.228
   Compiling thiserror-impl v2.0.18
   Compiling rand v0.8.5
   Compiling foldhash v0.1.5
   Compiling is_terminal_polyfill v1.70.2
   Compiling fastrand v2.3.0
   Compiling colorchoice v1.0.5
   Compiling instability v0.3.12
   Compiling anstream v1.0.0
   Compiling hashbrown v0.15.5
   Compiling itertools v0.13.0
   Compiling tempfile v3.27.0
   Compiling strum_macros v0.26.4
   Compiling tokio v1.50.0
   Compiling crossterm_winapi v0.9.1
   Compiling rand_distr v0.4.3
   Compiling rand v0.9.2
   Compiling darling_macro v0.23.0
   Compiling axum-core v0.5.6
   Compiling transpose v0.2.3
   Compiling uuid v1.22.0
   Compiling serde_path_to_error v0.1.20
   Compiling castaway v0.2.4
   Compiling darling v0.23.0
   Compiling primal-check v0.3.4
   Compiling serialport v4.9.0
   Compiling matchit v0.8.4
   Compiling unicode-width v0.1.14
   Compiling unicode-segmentation v1.12.0
   Compiling static_assertions v1.1.0
   Compiling indoc v2.0.7
   Compiling clap_lex v1.1.0
   Compiling bitflags v2.11.0
   Compiling compact_str v0.8.1
   Compiling qcicada v0.2.2
   Compiling unicode-truncate v1.1.0
   Compiling clap_builder v4.6.0
   Compiling crossterm v0.28.1
   Compiling rustfft v6.4.1
   Compiling lru v0.12.5
   Compiling clap_derive v4.6.0
   Compiling cassowary v0.3.0
   Compiling strum v0.26.3
   Compiling unicode-width v0.2.0
   Compiling ctrlc v3.5.2
   Compiling ratatui v0.29.0
   Compiling serde_urlencoded v0.7.1
   Compiling nalgebra v0.33.2
error[E0425]: cannot find function `posix_memalign` in crate `libc`
   --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\openentropy-core-0.12.3\src\sources\io\nvme_raw_device.rs:123:30
    |
123 |     let ret = unsafe { libc::posix_memalign(&mut aligned_buf, BLOCK_SIZE, BLOCK_SIZE) };
    |                              ^^^^^^^^^^^^^^ not found in `libc`

error[E0425]: cannot find function `fcntl` in crate `libc`
   --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\openentropy-core-0.12.3\src\sources\ipc\pipe_buffer.rs:147:43
    |
147 |                         let flags = libc::fcntl(fds[1], libc::F_GETFL);
    |                                           ^^^^^ not found in `libc`

error[E0425]: cannot find value `F_GETFL` in crate `libc`
   --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\openentropy-core-0.12.3\src\sources\ipc\pipe_buffer.rs:147:63
    |
147 |                         let flags = libc::fcntl(fds[1], libc::F_GETFL);
    |                                                               ^^^^^^^ not found in `libc`

error[E0425]: cannot find function `fcntl` in crate `libc`
   --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\openentropy-core-0.12.3\src\sources\ipc\pipe_buffer.rs:149:35
    |
149 | ...                   libc::fcntl(fds[1], libc::F_SETFL, flags | libc::O_NONBLOCK);
    |                             ^^^^^ not found in `libc`

error[E0425]: cannot find value `F_SETFL` in crate `libc`
   --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\openentropy-core-0.12.3\src\sources\ipc\pipe_buffer.rs:149:55
    |
149 | ...                   libc::fcntl(fds[1], libc::F_SETFL, flags | libc::O_NONBLOCK);
    |                                                 ^^^^^^^ not found in `libc`

error[E0425]: cannot find value `O_NONBLOCK` in crate `libc`
   --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\openentropy-core-0.12.3\src\sources\ipc\pipe_buffer.rs:149:78
    |
149 | ...                   libc::fcntl(fds[1], libc::F_SETFL, flags | libc::O_NONBLOCK);
    |                                                                        ^^^^^^^^^^ not found in `libc`

error[E0425]: cannot find function `sysconf` in crate `libc`
   --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\openentropy-core-0.12.3\src\sources\microarch\tlb_shootdown.rs:126:40
    |
126 |         let page_size = unsafe { libc::sysconf(libc::_SC_PAGESIZE) as usize };
    |                                        ^^^^^^^ not found in `libc`

error[E0425]: cannot find value `_SC_PAGESIZE` in crate `libc`
   --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\openentropy-core-0.12.3\src\sources\microarch\tlb_shootdown.rs:126:54
    |
126 |         let page_size = unsafe { libc::sysconf(libc::_SC_PAGESIZE) as usize };
    |                                                      ^^^^^^^^^^^^ not found in `libc`

error[E0425]: cannot find function `mmap` in crate `libc`
   --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\openentropy-core-0.12.3\src\sources\microarch\tlb_shootdown.rs:136:19
    |
136 |             libc::mmap(
    |                   ^^^^ not found in `libc`

error[E0425]: cannot find value `PROT_READ` in crate `libc`
   --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\openentropy-core-0.12.3\src\sources\microarch\tlb_shootdown.rs:139:23
    |
139 |                 libc::PROT_READ | libc::PROT_WRITE,
    |                       ^^^^^^^^^ not found in `libc`

error[E0425]: cannot find value `PROT_WRITE` in crate `libc`
   --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\openentropy-core-0.12.3\src\sources\microarch\tlb_shootdown.rs:139:41
    |
139 |                 libc::PROT_READ | libc::PROT_WRITE,
    |                                         ^^^^^^^^^^ not found in `libc`

error[E0425]: cannot find value `MAP_ANONYMOUS` in crate `libc`
   --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\openentropy-core-0.12.3\src\sources\microarch\tlb_shootdown.rs:140:23
    |
140 |                 libc::MAP_ANONYMOUS | libc::MAP_PRIVATE,
    |                       ^^^^^^^^^^^^^ not found in `libc`

error[E0425]: cannot find value `MAP_PRIVATE` in crate `libc`
   --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\openentropy-core-0.12.3\src\sources\microarch\tlb_shootdown.rs:140:45
    |
140 |                 libc::MAP_ANONYMOUS | libc::MAP_PRIVATE,
    |                                             ^^^^^^^^^^^ not found in `libc`

error[E0425]: cannot find value `MAP_FAILED` in crate `libc`
   --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\openentropy-core-0.12.3\src\sources\microarch\tlb_shootdown.rs:146:26
    |
146 |         if addr == libc::MAP_FAILED {
    |                          ^^^^^^^^^^ not found in `libc`

error[E0425]: cannot find function `mprotect` in crate `libc`
   --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\openentropy-core-0.12.3\src\sources\microarch\tlb_shootdown.rs:187:23
    |
187 |                 libc::mprotect(target, prot_size, libc::PROT_READ);
    |                       ^^^^^^^^ not found in `libc`

error[E0425]: cannot find value `PROT_READ` in crate `libc`
   --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\openentropy-core-0.12.3\src\sources\microarch\tlb_shootdown.rs:187:57
    |
187 |                 libc::mprotect(target, prot_size, libc::PROT_READ);
    |                                                         ^^^^^^^^^ not found in `libc`

error[E0425]: cannot find function `mprotect` in crate `libc`
   --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\openentropy-core-0.12.3\src\sources\microarch\tlb_shootdown.rs:188:23
    |
188 |                 libc::mprotect(target, prot_size, libc::PROT_READ | libc::PROT_WRITE);
    |                       ^^^^^^^^ not found in `libc`

error[E0425]: cannot find value `PROT_READ` in crate `libc`
   --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\openentropy-core-0.12.3\src\sources\microarch\tlb_shootdown.rs:188:57
    |
188 |                 libc::mprotect(target, prot_size, libc::PROT_READ | libc::PROT_WRITE);
    |                                                         ^^^^^^^^^ not found in `libc`

error[E0425]: cannot find value `PROT_WRITE` in crate `libc`
   --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\openentropy-core-0.12.3\src\sources\microarch\tlb_shootdown.rs:188:75
    |
188 |                 libc::mprotect(target, prot_size, libc::PROT_READ | libc::PROT_WRITE);
    |                                                                           ^^^^^^^^^^ not found in `libc`

error[E0425]: cannot find function `munmap` in crate `libc`
   --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\openentropy-core-0.12.3\src\sources\microarch\tlb_shootdown.rs:197:19
    |
197 |             libc::munmap(addr, region_size);
    |                   ^^^^^^ not found in `libc`

error[E0425]: cannot find function `sysconf` in crate `libc`
  --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\openentropy-core-0.12.3\src\sources\timing\page_fault_timing.rs:38:40
   |
38 |         let page_size = unsafe { libc::sysconf(libc::_SC_PAGESIZE) as usize };
   |                                        ^^^^^^^ not found in `libc`

error[E0425]: cannot find value `_SC_PAGESIZE` in crate `libc`
  --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\openentropy-core-0.12.3\src\sources\timing\page_fault_timing.rs:38:54
   |
38 |         let page_size = unsafe { libc::sysconf(libc::_SC_PAGESIZE) as usize };
   |                                                      ^^^^^^^^^^^^ not found in `libc`

error[E0425]: cannot find function `mmap` in crate `libc`
  --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\openentropy-core-0.12.3\src\sources\timing\page_fault_timing.rs:51:23
   |
51 |                 libc::mmap(
   |                       ^^^^ not found in `libc`

error[E0425]: cannot find value `PROT_READ` in crate `libc`
  --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\openentropy-core-0.12.3\src\sources\timing\page_fault_timing.rs:54:27
   |
54 |                     libc::PROT_READ | libc::PROT_WRITE,
   |                           ^^^^^^^^^ not found in `libc`

error[E0425]: cannot find value `PROT_WRITE` in crate `libc`
  --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\openentropy-core-0.12.3\src\sources\timing\page_fault_timing.rs:54:45
   |
54 |                     libc::PROT_READ | libc::PROT_WRITE,
   |                                             ^^^^^^^^^^ not found in `libc`

error[E0425]: cannot find value `MAP_ANONYMOUS` in crate `libc`
  --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\openentropy-core-0.12.3\src\sources\timing\page_fault_timing.rs:55:27
   |
55 |                     libc::MAP_ANONYMOUS | libc::MAP_PRIVATE,
   |                           ^^^^^^^^^^^^^ not found in `libc`

error[E0425]: cannot find value `MAP_PRIVATE` in crate `libc`
  --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\openentropy-core-0.12.3\src\sources\timing\page_fault_timing.rs:55:49
   |
55 |                     libc::MAP_ANONYMOUS | libc::MAP_PRIVATE,
   |                                                 ^^^^^^^^^^^ not found in `libc`

error[E0425]: cannot find value `MAP_FAILED` in crate `libc`
  --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\openentropy-core-0.12.3\src\sources\timing\page_fault_timing.rs:61:30
   |
61 |             if addr == libc::MAP_FAILED {
   |                              ^^^^^^^^^^ not found in `libc`

error[E0425]: cannot find function `munmap` in crate `libc`
  --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\openentropy-core-0.12.3\src\sources\timing\page_fault_timing.rs:86:23
   |
86 |                 libc::munmap(addr, map_size);
   |                       ^^^^^^ not found in `libc`

   Compiling clap v4.6.0
error[E0308]: mismatched types
   --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\openentropy-core-0.12.3\src\sources\io\nvme_raw_device.rs:140:52
    |
140 |         let seek_result = unsafe { libc::lseek(fd, offset, libc::SEEK_SET) };
    |                                    -----------     ^^^^^^ expected `i32`, found `i64`
    |                                    |
    |                                    arguments to this function are incorrect
    |
note: function defined here
   --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\libc-0.2.183\src\windows\mod.rs:510:12
    |
510 |     pub fn lseek(fd: c_int, offset: c_long, origin: c_int) -> c_long;
    |            ^^^^^
help: you can convert an `i64` to an `i32` and panic if the converted value doesn't fit
    |
140 |         let seek_result = unsafe { libc::lseek(fd, offset.try_into().unwrap(), libc::SEEK_SET) };
    |                                                          ++++++++++++++++++++

error[E0308]: mismatched types
   --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\openentropy-core-0.12.3\src\sources\io\nvme_raw_device.rs:149:64
    |
149 |         let _bytes_read = unsafe { libc::read(fd, aligned_buf, BLOCK_SIZE) };
    |                                    ----------                  ^^^^^^^^^^ expected `u32`, found `usize`
    |                                    |
    |                                    arguments to this function are incorrect
    |
note: function defined here
   --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\libc-0.2.183\src\windows\mod.rs:516:12
    |
516 |     pub fn read(fd: c_int, buf: *mut c_void, count: c_uint) -> c_int;
    |            ^^^^
help: you can convert a `usize` to a `u32` and panic if the converted value doesn't fit
    |
149 |         let _bytes_read = unsafe { libc::read(fd, aligned_buf, BLOCK_SIZE.try_into().unwrap()) };
    |                                                                          ++++++++++++++++++++

error[E0061]: this function takes 3 arguments but 1 argument was supplied
   --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\openentropy-core-0.12.3\src\sources\ipc\pipe_buffer.rs:142:32
    |
142 |             let ret = unsafe { libc::pipe(fds.as_mut_ptr()) };
    |                                ^^^^^^^^^^------------------ two arguments of type `u32` and `i32` are missing
    |
note: function defined here
   --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\libc-0.2.183\src\windows\mod.rs:514:12
    |
514 |     pub fn pipe(fds: *mut c_int, psize: c_uint, textmode: c_int) -> c_int;
    |            ^^^^
help: provide the arguments
    |
142 |             let ret = unsafe { libc::pipe(fds.as_mut_ptr(), /* u32 */, /* i32 */) };
    |                                                           ++++++++++++++++++++++

error[E0308]: mismatched types
   --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\openentropy-core-0.12.3\src\sources\ipc\pipe_buffer.rs:179:84
    |
179 |                 let written = libc::write(fds[1], write_data.as_ptr() as *const _, write_size);
    |                               ----------- arguments to this function are incorrect ^^^^^^^^^^ expected `u32`, found `usize`
    |
note: function defined here
   --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\libc-0.2.183\src\windows\mod.rs:522:12
    |
522 |     pub fn write(fd: c_int, buf: *const c_void, count: c_uint) -> c_int;
    |            ^^^^^
help: you can convert a `usize` to a `u32` and panic if the converted value doesn't fit
    |
179 |                 let written = libc::write(fds[1], write_data.as_ptr() as *const _, write_size.try_into().unwrap());
    |                                                                                              ++++++++++++++++++++

error[E0308]: mismatched types
   --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\openentropy-core-0.12.3\src\sources\ipc\pipe_buffer.rs:182:73
    |
182 |                     libc::read(fds[0], read_buf.as_mut_ptr() as *mut _, written as usize);
    |                     ---------- arguments to this function are incorrect ^^^^^^^^^^^^^^^^ expected `u32`, found `usize`
    |
note: function defined here
   --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\libc-0.2.183\src\windows\mod.rs:516:12
    |
516 |     pub fn read(fd: c_int, buf: *mut c_void, count: c_uint) -> c_int;
    |            ^^^^
help: you can convert a `usize` to a `u32` and panic if the converted value doesn't fit
    |
182 |                     libc::read(fds[0], read_buf.as_mut_ptr() as *mut _, (written as usize).try_into().unwrap());
    |                                                                         +                +++++++++++++++++++++

error[E0061]: this function takes 3 arguments but 1 argument was supplied
   --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\openentropy-core-0.12.3\src\sources\ipc\pipe_buffer.rs:193:36
    |
193 |                 let ret = unsafe { libc::pipe(extra_fds.as_mut_ptr()) };
    |                                    ^^^^^^^^^^------------------------ two arguments of type `u32` and `i32` are missing
    |
note: function defined here
   --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\libc-0.2.183\src\windows\mod.rs:514:12
    |
514 |     pub fn pipe(fds: *mut c_int, psize: c_uint, textmode: c_int) -> c_int;
    |            ^^^^
help: provide the arguments
    |
193 |                 let ret = unsafe { libc::pipe(extra_fds.as_mut_ptr(), /* u32 */, /* i32 */) };
    |                                                                     ++++++++++++++++++++++

error[E0061]: this function takes 3 arguments but 1 argument was supplied
   --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\openentropy-core-0.12.3\src\sources\ipc\pipe_buffer.rs:230:32
    |
230 |             let ret = unsafe { libc::pipe(fds.as_mut_ptr()) };
    |                                ^^^^^^^^^^------------------ two arguments of type `u32` and `i32` are missing
    |
note: function defined here
   --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\libc-0.2.183\src\windows\mod.rs:514:12
    |
514 |     pub fn pipe(fds: *mut c_int, psize: c_uint, textmode: c_int) -> c_int;
    |            ^^^^
help: provide the arguments
    |
230 |             let ret = unsafe { libc::pipe(fds.as_mut_ptr(), /* u32 */, /* i32 */) };
    |                                                           ++++++++++++++++++++++

error[E0308]: mismatched types
   --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\openentropy-core-0.12.3\src\sources\ipc\pipe_buffer.rs:235:70
    |
235 |                 libc::write(fds[1], write_data.as_ptr() as *const _, write_size);
    |                 ----------- arguments to this function are incorrect ^^^^^^^^^^ expected `u32`, found `usize`
    |
note: function defined here
   --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\libc-0.2.183\src\windows\mod.rs:522:12
    |
522 |     pub fn write(fd: c_int, buf: *const c_void, count: c_uint) -> c_int;
    |            ^^^^^
help: you can convert a `usize` to a `u32` and panic if the converted value doesn't fit
    |
235 |                 libc::write(fds[1], write_data.as_ptr() as *const _, write_size.try_into().unwrap());
    |                                                                                ++++++++++++++++++++

error[E0308]: mismatched types
   --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\openentropy-core-0.12.3\src\sources\ipc\pipe_buffer.rs:236:69
    |
236 |                 libc::read(fds[0], read_buf.as_mut_ptr() as *mut _, write_size);
    |                 ---------- arguments to this function are incorrect ^^^^^^^^^^ expected `u32`, found `usize`
    |
note: function defined here
   --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\libc-0.2.183\src\windows\mod.rs:516:12
    |
516 |     pub fn read(fd: c_int, buf: *mut c_void, count: c_uint) -> c_int;
    |            ^^^^
help: you can convert a `usize` to a `u32` and panic if the converted value doesn't fit
    |
236 |                 libc::read(fds[0], read_buf.as_mut_ptr() as *mut _, write_size.try_into().unwrap());
    |                                                                               ++++++++++++++++++++

   Compiling hyper v1.8.1
   Compiling tower v0.5.3
error[E0282]: type annotations needed for `&_`
    --> C:\Users\admin\.cargo\registry\src\index.crates.io-1949cf8c6b5b557f\openentropy-core-0.12.3\src\telemetry.rs:1606:22
     |
1606 |     metrics.sort_by(|a, b| {
     |                      ^
1607 |         a.domain
     |         -------- type must be known at this point
     |
help: consider giving this closure parameter an explicit type, where the type for type parameter `T` is specified
     |
1606 |     metrics.sort_by(|a: &T, b| {
     |                       ++++

Some errors have detailed explanations: E0061, E0282, E0308, E0425.
For more information about an error, try `rustc --explain E0061`.
error: could not compile `openentropy-core` (lib) due to 39 previous errors
warning: build failed, waiting for other jobs to finish...
error: failed to compile `openentropy-cli v0.12.3`, intermediate artifacts can be found at `C:\Users\admin\AppData\Local\Temp\cargo-installSqaNYJ`.
To reuse those artifacts with a future compilation, set the environment variable `CARGO_TARGET_DIR` to that path.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions