Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Custom rustc target for Windows especially #191

Open
CGMossa opened this issue Nov 2, 2023 · 2 comments
Open

Custom rustc target for Windows especially #191

CGMossa opened this issue Nov 2, 2023 · 2 comments

Comments

@CGMossa
Copy link
Member

CGMossa commented Nov 2, 2023

I've been on a journey to remove libgcc_eh and libgcc_s.a, and this is what I found out.

C:\Users\tpb398\Documents\GitHub\libR-sys>rustc +nightly -Z unstable-options --target=x86_64-pc-windows-gnu --print target-spec-json > x86_64-pc-windows-gnu_target_file.json

Resulting in:

Details

{
  "abi-return-struct-as-int": true,
  "allows-weak-linkage": false,
  "arch": "x86_64",
  "cpu": "x86-64",
  "crt-objects-fallback": "mingw",
  "data-layout": "e-m:w-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128",
  "debuginfo-kind": "pdb",
  "dll-prefix": "",
  "dll-suffix": ".dll",
  "dll-tls-export": false,
  "dynamic-linking": true,
  "eh-frame-header": false,
  "emit-debug-gdb-scripts": false,
  "env": "gnu",
  "exe-suffix": ".exe",
  "function-sections": false,
  "is-builtin": true,
  "is-like-windows": true,
  "late-link-args": {
    "gnu": [
      "-lmsvcrt",
      "-lmingwex",
      "-lmingw32",
      "-lgcc",
      "-lmsvcrt",
      "-luser32",
      "-lkernel32"
    ],
    "gnu-cc": [
      "-lmsvcrt",
      "-lmingwex",
      "-lmingw32",
      "-lgcc",
      "-lmsvcrt",
      "-luser32",
      "-lkernel32"
    ],
    "gnu-lld": [
      "-lmsvcrt",
      "-lmingwex",
      "-lmingw32",
      "-lgcc",
      "-lmsvcrt",
      "-luser32",
      "-lkernel32"
    ],
    "gnu-lld-cc": [
      "-lmsvcrt",
      "-lmingwex",
      "-lmingw32",
      "-lgcc",
      "-lmsvcrt",
      "-luser32",
      "-lkernel32"
    ]
  },
  "late-link-args-dynamic": {
    "gnu": [
      "-lgcc_s"
    ],
    "gnu-cc": [
      "-lgcc_s"
    ],
    "gnu-lld": [
      "-lgcc_s"
    ],
    "gnu-lld-cc": [
      "-lgcc_s"
    ]
  },
  "late-link-args-static": {
    "gnu": [
      "-lgcc_eh",
      "-l:libpthread.a"
    ],
    "gnu-cc": [
      "-lgcc_eh",
      "-l:libpthread.a"
    ],
    "gnu-lld": [
      "-lgcc_eh",
      "-l:libpthread.a"
    ],
    "gnu-lld-cc": [
      "-lgcc_eh",
      "-l:libpthread.a"
    ]
  },
  "linker": "x86_64-w64-mingw32-gcc",
  "linker-flavor": "gnu-cc",
  "llvm-target": "x86_64-pc-windows-gnu",
  "max-atomic-width": 64,
  "os": "windows",
  "plt-by-default": false,
  "post-link-objects": {
    "dynamic-dylib": [
      "rsend.o"
    ],
    "dynamic-nopic-exe": [
      "rsend.o"
    ],
    "dynamic-pic-exe": [
      "rsend.o"
    ],
    "static-dylib": [
      "rsend.o"
    ],
    "static-nopic-exe": [
      "rsend.o"
    ],
    "static-pic-exe": [
      "rsend.o"
    ]
  },
  "post-link-objects-fallback": {
    "dynamic-dylib": [
      "rsend.o"
    ],
    "dynamic-nopic-exe": [
      "rsend.o"
    ],
    "dynamic-pic-exe": [
      "rsend.o"
    ],
    "static-dylib": [
      "rsend.o"
    ],
    "static-nopic-exe": [
      "rsend.o"
    ],
    "static-pic-exe": [
      "rsend.o"
    ]
  },
  "pre-link-args": {
    "gnu": [
      "--dynamicbase",
      "--disable-auto-image-base",
      "-m",
      "i386pep",
      "--high-entropy-va"
    ],
    "gnu-cc": [
      "-fno-use-linker-plugin",
      "-Wl,--dynamicbase",
      "-Wl,--disable-auto-image-base",
      "-m64",
      "-Wl,--high-entropy-va"
    ],
    "gnu-lld": [
      "--dynamicbase",
      "--disable-auto-image-base",
      "-m",
      "i386pep",
      "--high-entropy-va"
    ],
    "gnu-lld-cc": [
      "-fno-use-linker-plugin",
      "-Wl,--dynamicbase",
      "-Wl,--disable-auto-image-base",
      "-m64",
      "-Wl,--high-entropy-va"
    ]
  },
  "pre-link-objects": {
    "dynamic-dylib": [
      "rsbegin.o"
    ],
    "dynamic-nopic-exe": [
      "rsbegin.o"
    ],
    "dynamic-pic-exe": [
      "rsbegin.o"
    ],
    "static-dylib": [
      "rsbegin.o"
    ],
    "static-nopic-exe": [
      "rsbegin.o"
    ],
    "static-pic-exe": [
      "rsbegin.o"
    ]
  },
  "pre-link-objects-fallback": {
    "dynamic-dylib": [
      "dllcrt2.o",
      "rsbegin.o"
    ],
    "dynamic-nopic-exe": [
      "crt2.o",
      "rsbegin.o"
    ],
    "dynamic-pic-exe": [
      "crt2.o",
      "rsbegin.o"
    ],
    "static-dylib": [
      "dllcrt2.o",
      "rsbegin.o"
    ],
    "static-nopic-exe": [
      "crt2.o",
      "rsbegin.o"
    ],
    "static-pic-exe": [
      "crt2.o",
      "rsbegin.o"
    ]
  },
  "requires-uwtable": true,
  "target-family": [
    "windows"
  ],
  "target-pointer-width": "64",
  "vendor": "pc"
}

Information about what can be set in these files are: https://doc.rust-lang.org/beta/nightly-rustc/rustc_target/spec/struct.TargetOptions.html

Then I read about how one could make their own custom target json file and use that instead of relaying on these ones, see https://docs.rust-embedded.org/embedonomicon/custom-target.html

  • Set "is-builtin": false
  • Removed lines with -lgcc_s, and -lgcc_eh from everywhere.
  • Set "panic-strategy": "abort" as gcc_eh is the one responsible for normal panics.
  • Changed linker from x86_64-w64-mingw32-gcc, to x86_64-w64-mingw32.static.posix-gcc.exe
  • Changed linker-flavor to gcc.
  • Added to pre-link-args:
  "pre-link-args": {
    "gcc": [
        "-Wl,--as-needed",
        "-Wl,-z,noexecstack",
        "-m64"
    ],
  • Added
  "post-link-args": {
    "gcc": [
        "-Wl,--allow-multiple-definition",
        "-Wl,--start-group,-lc,-lm,-lgcc,-lstdc++,-lsupc++,--end-group"
    ]
  },

Maybe I should use R CMD config --ldflags:

I've tried this with libR-sys on main-branch:

cargo +nightly build -Z build-std -Z build-std-features --features use-bindgen --target custom_rtools_target.json -vv 

with .cargo/config.toml file that is:

[env]
LIBRSYS_BINDINGS_OUTPUT_PATH = "bindings"
LIBRSYS_LIBCLANG_INCLUDE_PATH = "C:/Users/tpb398/scoop/apps/rtools/current/x86_64-w64-mingw32.static.posix/include"
~\Documents\GitHub\libR-sys> rustc --print cfg --target .\custom_rtools_target.json                                                                                                                                                                                               debug_assertions      
overflow_checks       
panic="abort"
relocation_model="pic"
target_abi=""
target_arch="x86_64"  
target_endian="little"
target_env="gnu"
target_family="windows"
target_feature="fxsr"
target_feature="sse"
target_feature="sse2"
target_has_atomic
target_has_atomic="16"
target_has_atomic="32"
target_has_atomic="64"
target_has_atomic="8"
target_has_atomic="ptr"
target_has_atomic_equal_alignment="16"
target_has_atomic_equal_alignment="32"
target_has_atomic_equal_alignment="64"
target_has_atomic_equal_alignment="8"
target_has_atomic_equal_alignment="ptr"
target_has_atomic_load_store
target_has_atomic_load_store="16"
target_has_atomic_load_store="32"
target_has_atomic_load_store="64"
target_has_atomic_load_store="8"
target_has_atomic_load_store="ptr"
target_os="windows"
target_pointer_width="64"
target_vendor="pc"
windows

But I get these weird net missing issues or something. See below:

Details

       Fresh core v0.0.0 (C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\core)
       Fresh glob v0.3.1
       Fresh rustc-std-workspace-core v1.99.0 (C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\rustc-std-workspace-core)
       Fresh compiler_builtins v0.1.101
warning: unused import: `self::acos::acos`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:197:9
    |
197 | pub use self::acos::acos;
    |         ^^^^^^^^^^^^^^^^
    |
    = note: `#[warn(unused_imports)]` on by default

warning: unused import: `self::acosf::acosf`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:198:9
    |
198 | pub use self::acosf::acosf;
    |         ^^^^^^^^^^^^^^^^^^

warning: unused import: `self::acosh::acosh`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:199:9
    |
199 | pub use self::acosh::acosh;
    |         ^^^^^^^^^^^^^^^^^^

warning: unused import: `self::acoshf::acoshf`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:200:9
    |
200 | pub use self::acoshf::acoshf;
    |         ^^^^^^^^^^^^^^^^^^^^

warning: unused import: `self::asin::asin`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:201:9
    |
201 | pub use self::asin::asin;
    |         ^^^^^^^^^^^^^^^^

warning: unused import: `self::asinf::asinf`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:202:9
    |
202 | pub use self::asinf::asinf;
    |         ^^^^^^^^^^^^^^^^^^

warning: unused import: `self::asinh::asinh`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:203:9
    |
203 | pub use self::asinh::asinh;
    |         ^^^^^^^^^^^^^^^^^^

warning: unused import: `self::asinhf::asinhf`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:204:9
    |
204 | pub use self::asinhf::asinhf;
    |         ^^^^^^^^^^^^^^^^^^^^

warning: unused import: `self::atan2::atan2`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:206:9
    |
206 | pub use self::atan2::atan2;
    |         ^^^^^^^^^^^^^^^^^^

warning: unused import: `self::atan2f::atan2f`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:207:9
    |
207 | pub use self::atan2f::atan2f;
    |         ^^^^^^^^^^^^^^^^^^^^

warning: unused import: `self::atanh::atanh`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:209:9
    |
209 | pub use self::atanh::atanh;
    |         ^^^^^^^^^^^^^^^^^^

warning: unused import: `self::atanhf::atanhf`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:210:9
    |
210 | pub use self::atanhf::atanhf;
    |         ^^^^^^^^^^^^^^^^^^^^

warning: unused import: `self::cbrt::cbrt`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:211:9
    |
211 | pub use self::cbrt::cbrt;
    |         ^^^^^^^^^^^^^^^^

warning: unused import: `self::cbrtf::cbrtf`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:212:9
    |
212 | pub use self::cbrtf::cbrtf;
    |         ^^^^^^^^^^^^^^^^^^

warning: unused import: `self::ceil::ceil`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:213:9
    |
213 | pub use self::ceil::ceil;
    |         ^^^^^^^^^^^^^^^^

warning: unused import: `self::ceilf::ceilf`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:214:9
    |
214 | pub use self::ceilf::ceilf;
    |         ^^^^^^^^^^^^^^^^^^

warning: unused import: `self::cosh::cosh`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:219:9
    |
219 | pub use self::cosh::cosh;
    |         ^^^^^^^^^^^^^^^^

warning: unused import: `self::coshf::coshf`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:220:9
    |
220 | pub use self::coshf::coshf;
    |         ^^^^^^^^^^^^^^^^^^

warning: unused import: `self::erf::erf`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:221:9
    |
221 | pub use self::erf::erf;
    |         ^^^^^^^^^^^^^^

warning: unused import: `self::erf::erfc`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:222:9
    |
222 | pub use self::erf::erfc;
    |         ^^^^^^^^^^^^^^^

warning: unused import: `self::erff::erfcf`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:223:9
    |
223 | pub use self::erff::erfcf;
    |         ^^^^^^^^^^^^^^^^^

warning: unused import: `self::erff::erff`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:224:9
    |
224 | pub use self::erff::erff;
    |         ^^^^^^^^^^^^^^^^

warning: unused import: `self::exp10::exp10`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:226:9
    |
226 | pub use self::exp10::exp10;
    |         ^^^^^^^^^^^^^^^^^^

warning: unused import: `self::exp10f::exp10f`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:227:9
    |
227 | pub use self::exp10f::exp10f;
    |         ^^^^^^^^^^^^^^^^^^^^

warning: unused import: `self::fdim::fdim`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:235:9
    |
235 | pub use self::fdim::fdim;
    |         ^^^^^^^^^^^^^^^^

warning: unused import: `self::fdimf::fdimf`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:236:9
    |
236 | pub use self::fdimf::fdimf;
    |         ^^^^^^^^^^^^^^^^^^

warning: unused import: `self::fma::fma`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:239:9
    |
239 | pub use self::fma::fma;
    |         ^^^^^^^^^^^^^^

warning: unused import: `self::fmaf::fmaf`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:240:9
    |
240 | pub use self::fmaf::fmaf;
    |         ^^^^^^^^^^^^^^^^

warning: unused import: `self::fmax::fmax`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:241:9
    |
241 | pub use self::fmax::fmax;
    |         ^^^^^^^^^^^^^^^^

warning: unused import: `self::fmaxf::fmaxf`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:242:9
    |
242 | pub use self::fmaxf::fmaxf;
    |         ^^^^^^^^^^^^^^^^^^

warning: unused import: `self::fmin::fmin`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:243:9
    |
243 | pub use self::fmin::fmin;
    |         ^^^^^^^^^^^^^^^^

warning: unused import: `self::fminf::fminf`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:244:9
    |
244 | pub use self::fminf::fminf;
    |         ^^^^^^^^^^^^^^^^^^

warning: unused import: `self::fmod::fmod`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:245:9
    |
245 | pub use self::fmod::fmod;
    |         ^^^^^^^^^^^^^^^^

warning: unused import: `self::fmodf::fmodf`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:246:9
    |
246 | pub use self::fmodf::fmodf;
    |         ^^^^^^^^^^^^^^^^^^

warning: unused import: `self::frexp::frexp`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:247:9
    |
247 | pub use self::frexp::frexp;
    |         ^^^^^^^^^^^^^^^^^^

warning: unused import: `self::frexpf::frexpf`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:248:9
    |
248 | pub use self::frexpf::frexpf;
    |         ^^^^^^^^^^^^^^^^^^^^

warning: unused import: `self::hypot::hypot`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:249:9
    |
249 | pub use self::hypot::hypot;
    |         ^^^^^^^^^^^^^^^^^^

warning: unused import: `self::hypotf::hypotf`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:250:9
    |
250 | pub use self::hypotf::hypotf;
    |         ^^^^^^^^^^^^^^^^^^^^

warning: unused import: `self::ilogb::ilogb`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:251:9
    |
251 | pub use self::ilogb::ilogb;
    |         ^^^^^^^^^^^^^^^^^^

warning: unused import: `self::ilogbf::ilogbf`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:252:9
    |
252 | pub use self::ilogbf::ilogbf;
    |         ^^^^^^^^^^^^^^^^^^^^

warning: unused import: `self::jn::jn`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:261:9
    |
261 | pub use self::jn::jn;
    |         ^^^^^^^^^^^^

warning: unused import: `self::jn::yn`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:262:9
    |
262 | pub use self::jn::yn;
    |         ^^^^^^^^^^^^

warning: unused import: `self::jnf::jnf`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:263:9
    |
263 | pub use self::jnf::jnf;
    |         ^^^^^^^^^^^^^^

warning: unused import: `self::jnf::ynf`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:264:9
    |
264 | pub use self::jnf::ynf;
    |         ^^^^^^^^^^^^^^

warning: unused import: `self::ldexp::ldexp`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:265:9
    |
265 | pub use self::ldexp::ldexp;
    |         ^^^^^^^^^^^^^^^^^^

warning: unused import: `self::ldexpf::ldexpf`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:266:9
    |
266 | pub use self::ldexpf::ldexpf;
    |         ^^^^^^^^^^^^^^^^^^^^

warning: unused import: `self::lgamma::lgamma`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:267:9
    |
267 | pub use self::lgamma::lgamma;
    |         ^^^^^^^^^^^^^^^^^^^^

warning: unused import: `self::lgammaf::lgammaf`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:269:9
    |
269 | pub use self::lgammaf::lgammaf;
    |         ^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `self::log10::log10`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:272:9
    |
272 | pub use self::log10::log10;
    |         ^^^^^^^^^^^^^^^^^^

warning: unused import: `self::log10f::log10f`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:273:9
    |
273 | pub use self::log10f::log10f;
    |         ^^^^^^^^^^^^^^^^^^^^

warning: unused import: `self::log2::log2`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:276:9
    |
276 | pub use self::log2::log2;
    |         ^^^^^^^^^^^^^^^^

warning: unused import: `self::log2f::log2f`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:277:9
    |
277 | pub use self::log2f::log2f;
    |         ^^^^^^^^^^^^^^^^^^

warning: unused import: `self::nextafter::nextafter`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:281:9
    |
281 | pub use self::nextafter::nextafter;
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `self::nextafterf::nextafterf`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:282:9
    |
282 | pub use self::nextafterf::nextafterf;
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `self::powf::powf`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:284:9
    |
284 | pub use self::powf::powf;
    |         ^^^^^^^^^^^^^^^^

warning: unused import: `self::remainder::remainder`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:285:9
    |
285 | pub use self::remainder::remainder;
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `self::remainderf::remainderf`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:286:9
    |
286 | pub use self::remainderf::remainderf;
    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `self::rint::rint`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:289:9
    |
289 | pub use self::rint::rint;
    |         ^^^^^^^^^^^^^^^^

warning: unused import: `self::rintf::rintf`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:290:9
    |
290 | pub use self::rintf::rintf;
    |         ^^^^^^^^^^^^^^^^^^

warning: unused import: `self::round::round`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:291:9
    |
291 | pub use self::round::round;
    |         ^^^^^^^^^^^^^^^^^^

warning: unused import: `self::roundf::roundf`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:292:9
    |
292 | pub use self::roundf::roundf;
    |         ^^^^^^^^^^^^^^^^^^^^

warning: unused import: `self::sincos::sincos`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:296:9
    |
296 | pub use self::sincos::sincos;
    |         ^^^^^^^^^^^^^^^^^^^^

warning: unused import: `self::sincosf::sincosf`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:297:9
    |
297 | pub use self::sincosf::sincosf;
    |         ^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `self::sinh::sinh`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:299:9
    |
299 | pub use self::sinh::sinh;
    |         ^^^^^^^^^^^^^^^^

warning: unused import: `self::sinhf::sinhf`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:300:9
    |
300 | pub use self::sinhf::sinhf;
    |         ^^^^^^^^^^^^^^^^^^

warning: unused import: `self::tan::tan`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:303:9
    |
303 | pub use self::tan::tan;
    |         ^^^^^^^^^^^^^^

warning: unused import: `self::tanf::tanf`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:304:9
    |
304 | pub use self::tanf::tanf;
    |         ^^^^^^^^^^^^^^^^

warning: unused import: `self::tanh::tanh`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:305:9
    |
305 | pub use self::tanh::tanh;
    |         ^^^^^^^^^^^^^^^^

warning: unused import: `self::tanhf::tanhf`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:306:9
    |
306 | pub use self::tanhf::tanhf;
    |         ^^^^^^^^^^^^^^^^^^

warning: unused import: `self::tgammaf::tgammaf`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\compiler_builtins-0.1.101\src\..\libm\src\math\mod.rs:308:9
    |
308 | pub use self::tgammaf::tgammaf;
    |         ^^^^^^^^^^^^^^^^^^^^^^

       Fresh windows_x86_64_msvc v0.48.5
       Fresh winapi v0.3.9
warning: `compiler_builtins` (lib) generated 70 warnings
       Fresh windows-targets v0.48.5
       Fresh alloc v0.0.0 (C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\alloc)
       Fresh cfg-if v1.0.0
       Fresh unicode-ident v1.0.12
       Fresh windows-sys v0.48.0
       Fresh cc v1.0.79
       Fresh proc-macro2 v1.0.69
       Fresh libc v0.2.149
       Fresh errno v0.3.5
       Fresh libloading v0.7.4
       Fresh minimal-lexical v0.2.1
       Fresh regex-syntax v0.8.2
       Fresh memchr v2.6.4
       Fresh bitflags v2.4.1
warning: unused import: `external::__private::*`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\bitflags-2.4.1\src\lib.rs:255:21
    |
255 |     pub use crate::{external::__private::*, traits::__private::*};
    |                     ^^^^^^^^^^^^^^^^^^^^^^
    |
    = note: `#[warn(unused_imports)]` on by default

       Fresh regex-automata v0.4.3
       Fresh nom v7.1.3
warning: unused import: `self::str::*`
   --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\nom-7.1.3\src\lib.rs:439:9
    |
439 | pub use self::str::*;
    |         ^^^^^^^^^^^^
    |
    = note: `#[warn(unused_imports)]` on by default

       Fresh clang-sys v1.6.1
warning: `bitflags` (lib) generated 1 warning
warning: `nom` (lib) generated 1 warning
       Fresh rustix v0.38.21
       Fresh quote v1.0.33
       Fresh home v0.5.5
       Fresh rustc-std-workspace-alloc v1.99.0 (C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\rustc-std-workspace-alloc)
       Fresh either v1.9.0
       Fresh once_cell v1.18.0
       Fresh syn v1.0.109
       Fresh cexpr v0.6.0
       Fresh unwind v0.0.0 (C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\unwind)
       Fresh which v4.4.2
       Fresh regex v1.10.2
       Fresh rustc-hash v1.1.0
       Fresh peeking_take_while v0.1.2
       Fresh shlex v1.2.0
       Fresh lazycell v1.3.0
       Fresh lazy_static v1.4.0
       Fresh log v0.4.20
       Fresh bitflags v1.3.2
       Fresh hashbrown v0.14.2
warning: `extern crate` is not idiomatic in the new edition
  --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\hashbrown-0.14.2\src\lib.rs:46:1
   |
46 | extern crate alloc;
   | ^^^^^^^^^^^^^^^^^^^
   |
note: the lint level is defined here
  --> C:\Users\tpb398\.cargo\registry\src\index.crates.io-6f17d22bba15001f\hashbrown-0.14.2\src\lib.rs:38:9
   |
38 | #![warn(rust_2018_idioms)]
   |         ^^^^^^^^^^^^^^^^
   = note: `#[warn(unused_extern_crates)]` implied by `#[warn(rust_2018_idioms)]`
help: convert it to a `use`
   |
46 | use alloc;
   | ~~~

       Fresh std_detect v0.1.5 (C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\stdarch\crates\std_detect)
warning: `hashbrown` (lib) generated 1 warning
       Fresh bindgen v0.64.0
       Fresh clang v2.0.0
       Fresh panic_abort v0.0.0 (C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\panic_abort)
       Fresh rustc-demangle v0.1.23
       Fresh panic_unwind v0.0.0 (C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\panic_unwind)
   Compiling std v0.0.0 (C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std)
     Running `set CARGO=\\?\C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\bin\cargo.exe&& set CARGO_CRATE_NAME=std&& set CARGO_MANIFEST_DIR=C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std&& set CARGO_PKG_AUTHORS=""&& set CARGO_PKG_DESCRIPTION="The Rust Standard Library"&& set CARGO_PKG_HOMEPAGE=""&& set CARGO_PKG_LICENSE="MIT OR Apache-2.0"&& set CARGO_PKG_LICENSE_FILE=""&& set CARGO_PKG_NAME=std&& set CARGO_PKG_README=""&& set CARGO_PKG_REPOSITORY=https://github.com/rust-lang/rust.git&& set CARGO_PKG_RUST_VERSION=""&& set CARGO_PKG_VERSION=0.0.0&& set CARGO_PKG_VERSION_MAJOR=0&& set CARGO_PKG_VERSION_MINOR=0&& set CARGO_PKG_VERSION_PATCH=0&& set CARGO_PKG_VERSION_PRE=""&& set LIBRSYS_BINDINGS_OUTPUT_PATH=bindings&& set LIBRSYS_LIBCLANG_INCLUDE_PATH=C:/Users/tpb398/scoop/apps/rtools/current/x86_64-w64-mingw32.static.posix/include&& set OUT_DIR=C:/cargo_target_dir\custom_rtools_target\debug\build\std-2c021b97771a10eb\out&& set PATH="C:/cargo_target_dir\debug\deps;C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\bin;C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\bin;C:\Users\tpb398\scoop\apps\R\current/bin/x64;C:/rtools42/x86_64-w64-mingw32.static.posix/bin;C:/rtools42/usr/bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\dotnet\;C:\Users\tpb398\scoop\apps\vscode\current\bin;C:\Users\tpb398\scoop\apps\llvm\current\bin;C:\Users\tpb398\scoop\apps\imagemagick\current;C:\Users\tpb398\scoop\apps\ghostscript\current\lib;C:\Users\tpb398\scoop\apps\python\current\Scripts;C:\Users\tpb398\scoop\apps\python\current;C:\Users\tpb398\scoop\apps\dotnet-sdk\current;C:\Users\tpb398\scoop\apps\latex\current\texmfs\install\miktex\bin\x64;C:\Users\tpb398\scoop\apps\nodejs\current\bin;C:\Users\tpb398\scoop\apps\nodejs\current;C:\Users\tpb398\.cargo\bin;C:\Users\tpb398\scoop\apps\perl\current\perl\site\bin;C:\Users\tpb398\scoop\apps\perl\current\perl\bin;C:\Users\tpb398\scoop\apps\miniconda3\current\scripts;C:\Users\tpb398\scoop\apps\miniconda3\current\Library\bin;C:\Users\tpb398\scoop\shims;C:\Users\tpb398\AppData\Local\Microsoft\WindowsApps;C:\Users\tpb398\scoop\apps\R\current\bin\x64;C:\rtools43\x86_64-w64-mingw32.static.posix\bin;"&& set RUSTC_BOOTSTRAP=1&& set STD_ENV_ARCH=x86_64&& rustc --crate-name std --edition=2021 C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type rlib --emit=dep-info,metadata,link -C embed-bitcode=no -C debuginfo=2 -C metadata=77657a7ae0c1e6a9 -C extra-filename=-77657a7ae0c1e6a9 --out-dir C:/cargo_target_dir\custom_rtools_target\debug\deps --target \\?\C:\Users\tpb398\Documents\GitHub\libR-sys\custom_rtools_target.json -Z force-unstable-if-unmarked -L dependency=C:/cargo_target_dir\custom_rtools_target\debug\deps -L dependency=C:/cargo_target_dir\debug\deps --extern alloc=C:/cargo_target_dir\custom_rtools_target\debug\deps\liballoc-78386e5fd1781ccb.rmeta --extern priv:cfg_if=C:/cargo_target_dir\custom_rtools_target\debug\deps\libcfg_if-72aeef5bfc82a638.rmeta --extern priv:compiler_builtins=C:/cargo_target_dir\custom_rtools_target\debug\deps\libcompiler_builtins-12ad31c11349612a.rmeta --extern core=C:/cargo_target_dir\custom_rtools_target\debug\deps\libcore-c4c7d83fccd33768.rmeta --extern priv:hashbrown=C:/cargo_target_dir\custom_rtools_target\debug\deps\libhashbrown-2213c512fd96d0ff.rmeta --extern libc=C:/cargo_target_dir\custom_rtools_target\debug\deps\liblibc-5ffa82a4159fbab5.rmeta --extern priv:panic_abort=C:/cargo_target_dir\custom_rtools_target\debug\deps\libpanic_abort-ce3b9b90f4188be0.rmeta --extern priv:rustc_demangle=C:/cargo_target_dir\custom_rtools_target\debug\deps\librustc_demangle-248b641be5e092ff.rmeta --extern priv:std_detect=C:/cargo_target_dir\custom_rtools_target\debug\deps\libstd_detect-8bb3fa2911476f2b.rmeta --extern priv:unwind=C:/cargo_target_dir\custom_rtools_target\debug\deps\libunwind-660ea960f2850abc.rmeta -Z unstable-options --cap-lints warn -Ctarget-cpu=native --cfg "feature=\"restricted-std\"" --cfg backtrace_in_libstd`
error[E0432]: unresolved import `crate::sys_common::net::LookupHost`
  --> C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\net\socket_addr.rs:12:5
   |
12 | use crate::sys_common::net::LookupHost;
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ no `LookupHost` in `sys::windows::net`

error[E0412]: cannot find type `TcpStream` in module `net_imp`
  --> C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\net\tcp.rs:50:31
   |
50 | pub struct TcpStream(net_imp::TcpStream);
   |                               ^^^^^^^^^ not found in `net_imp`
   |
help: consider importing this struct through its public re-export
   |
6  + use crate::net::TcpStream;
   |
help: if you import `TcpStream`, refer to it directly
   |
50 - pub struct TcpStream(net_imp::TcpStream);
50 + pub struct TcpStream(TcpStream);
   |

error[E0412]: cannot find type `TcpListener` in module `net_imp`
  --> C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\net\tcp.rs:86:33
   |
86 | pub struct TcpListener(net_imp::TcpListener);
   |                                 ^^^^^^^^^^^ not found in `net_imp`
   |
help: consider importing this struct through its public re-export
   |
6  + use crate::net::TcpListener;
   |
help: if you import `TcpListener`, refer to it directly
   |
86 - pub struct TcpListener(net_imp::TcpListener);
86 + pub struct TcpListener(TcpListener);
   |

error[E0433]: failed to resolve: could not find `TcpStream` in `net_imp`
   --> C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\net\tcp.rs:157:41
    |
157 |         super::each_addr(addr, net_imp::TcpStream::connect).map(TcpStream)
    |                                         ^^^^^^^^^ could not find `TcpStream` in `net_imp`
    |
help: consider importing this struct through its public re-export
    |
6   + use crate::net::TcpStream;
    |
help: if you import `TcpStream`, refer to it directly
    |
157 -         super::each_addr(addr, net_imp::TcpStream::connect).map(TcpStream)
157 +         super::each_addr(addr, TcpStream::connect).map(TcpStream)
    |

error[E0433]: failed to resolve: could not find `TcpStream` in `net_imp`
   --> C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\net\tcp.rs:173:18
    |
173 |         net_imp::TcpStream::connect_timeout(addr, timeout).map(TcpStream)
    |                  ^^^^^^^^^ could not find `TcpStream` in `net_imp`
    |
help: consider importing this struct through its public re-export
    |
6   + use crate::net::TcpStream;
    |
help: if you import `TcpStream`, refer to it directly
    |
173 -         net_imp::TcpStream::connect_timeout(addr, timeout).map(TcpStream)
173 +         TcpStream::connect_timeout(addr, timeout).map(TcpStream)
    |

error[E0412]: cannot find type `TcpStream` in module `net_imp`
   --> C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\net\tcp.rs:695:23
    |
695 | impl AsInner<net_imp::TcpStream> for TcpStream {
    |                       ^^^^^^^^^ not found in `net_imp`
    |
help: consider importing this struct through its public re-export
    |
6   + use crate::net::TcpStream;
    |
help: if you import `TcpStream`, refer to it directly
    |
695 - impl AsInner<net_imp::TcpStream> for TcpStream {
695 + impl AsInner<TcpStream> for TcpStream {
    |

error[E0412]: cannot find type `TcpStream` in module `net_imp`
   --> C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\net\tcp.rs:697:37
    |
697 |     fn as_inner(&self) -> &net_imp::TcpStream {
    |                                     ^^^^^^^^^ not found in `net_imp`
    |
help: consider importing this struct through its public re-export
    |
6   + use crate::net::TcpStream;
    |
help: if you import `TcpStream`, refer to it directly
    |
697 -     fn as_inner(&self) -> &net_imp::TcpStream {
697 +     fn as_inner(&self) -> &TcpStream {
    |

error[E0412]: cannot find type `TcpStream` in module `net_imp`
   --> C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\net\tcp.rs:702:25
    |
702 | impl FromInner<net_imp::TcpStream> for TcpStream {
    |                         ^^^^^^^^^ not found in `net_imp`
    |
help: consider importing this struct through its public re-export
    |
6   + use crate::net::TcpStream;
    |
help: if you import `TcpStream`, refer to it directly
    |
702 - impl FromInner<net_imp::TcpStream> for TcpStream {
702 + impl FromInner<TcpStream> for TcpStream {
    |

error[E0412]: cannot find type `TcpStream` in module `net_imp`
   --> C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\net\tcp.rs:703:35
    |
703 |     fn from_inner(inner: net_imp::TcpStream) -> TcpStream {
    |                                   ^^^^^^^^^ not found in `net_imp`
    |
help: consider importing this struct through its public re-export
    |
6   + use crate::net::TcpStream;
    |
help: if you import `TcpStream`, refer to it directly
    |
703 -     fn from_inner(inner: net_imp::TcpStream) -> TcpStream {
703 +     fn from_inner(inner: TcpStream) -> TcpStream {
    |

error[E0412]: cannot find type `TcpStream` in module `net_imp`
   --> C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\net\tcp.rs:708:25
    |
708 | impl IntoInner<net_imp::TcpStream> for TcpStream {
    |                         ^^^^^^^^^ not found in `net_imp`
    |
help: consider importing this struct through its public re-export
    |
6   + use crate::net::TcpStream;
    |
help: if you import `TcpStream`, refer to it directly
    |
708 - impl IntoInner<net_imp::TcpStream> for TcpStream {
708 + impl IntoInner<TcpStream> for TcpStream {
    |

error[E0412]: cannot find type `TcpStream` in module `net_imp`
   --> C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\net\tcp.rs:709:37
    |
709 |     fn into_inner(self) -> net_imp::TcpStream {
    |                                     ^^^^^^^^^ not found in `net_imp`
    |
help: consider importing this struct through its public re-export
    |
6   + use crate::net::TcpStream;
    |
help: if you import `TcpStream`, refer to it directly
    |
709 -     fn into_inner(self) -> net_imp::TcpStream {
709 +     fn into_inner(self) -> TcpStream {
    |

error[E0433]: failed to resolve: could not find `TcpListener` in `net_imp`
   --> C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\net\tcp.rs:772:41
    |
772 |         super::each_addr(addr, net_imp::TcpListener::bind).map(TcpListener)
    |                                         ^^^^^^^^^^^ could not find `TcpListener` in `net_imp`
    |
help: consider importing this struct through its public re-export
    |
6   + use crate::net::TcpListener;
    |
help: if you import `TcpListener`, refer to it directly
    |
772 -         super::each_addr(addr, net_imp::TcpListener::bind).map(TcpListener)
772 +         super::each_addr(addr, TcpListener::bind).map(TcpListener)
    |

error[E0412]: cannot find type `TcpListener` in module `net_imp`
    --> C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\net\tcp.rs:1047:23
     |
1047 | impl AsInner<net_imp::TcpListener> for TcpListener {
     |                       ^^^^^^^^^^^ not found in `net_imp`
     |
help: consider importing this struct through its public re-export
     |
6    + use crate::net::TcpListener;
     |
help: if you import `TcpListener`, refer to it directly
     |
1047 - impl AsInner<net_imp::TcpListener> for TcpListener {
1047 + impl AsInner<TcpListener> for TcpListener {
     |

error[E0412]: cannot find type `TcpListener` in module `net_imp`
    --> C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\net\tcp.rs:1049:37
     |
1049 |     fn as_inner(&self) -> &net_imp::TcpListener {
     |                                     ^^^^^^^^^^^ not found in `net_imp`
     |
help: consider importing this struct through its public re-export
     |
6    + use crate::net::TcpListener;
     |
help: if you import `TcpListener`, refer to it directly
     |
1049 -     fn as_inner(&self) -> &net_imp::TcpListener {
1049 +     fn as_inner(&self) -> &TcpListener {
     |

error[E0412]: cannot find type `TcpListener` in module `net_imp`
    --> C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\net\tcp.rs:1054:25
     |
1054 | impl FromInner<net_imp::TcpListener> for TcpListener {
     |                         ^^^^^^^^^^^ not found in `net_imp`
     |
help: consider importing this struct through its public re-export
     |
6    + use crate::net::TcpListener;
     |
help: if you import `TcpListener`, refer to it directly
     |
1054 - impl FromInner<net_imp::TcpListener> for TcpListener {
1054 + impl FromInner<TcpListener> for TcpListener {
     |

error[E0412]: cannot find type `TcpListener` in module `net_imp`
    --> C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\net\tcp.rs:1055:35
     |
1055 |     fn from_inner(inner: net_imp::TcpListener) -> TcpListener {
     |                                   ^^^^^^^^^^^ not found in `net_imp`
     |
help: consider importing this struct through its public re-export
     |
6    + use crate::net::TcpListener;
     |
help: if you import `TcpListener`, refer to it directly
     |
1055 -     fn from_inner(inner: net_imp::TcpListener) -> TcpListener {
1055 +     fn from_inner(inner: TcpListener) -> TcpListener {
     |

error[E0412]: cannot find type `TcpListener` in module `net_imp`
    --> C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\net\tcp.rs:1060:25
     |
1060 | impl IntoInner<net_imp::TcpListener> for TcpListener {
     |                         ^^^^^^^^^^^ not found in `net_imp`
     |
help: consider importing this struct through its public re-export
     |
6    + use crate::net::TcpListener;
     |
help: if you import `TcpListener`, refer to it directly
     |
1060 - impl IntoInner<net_imp::TcpListener> for TcpListener {
1060 + impl IntoInner<TcpListener> for TcpListener {
     |

error[E0412]: cannot find type `TcpListener` in module `net_imp`
    --> C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\net\tcp.rs:1061:37
     |
1061 |     fn into_inner(self) -> net_imp::TcpListener {
     |                                     ^^^^^^^^^^^ not found in `net_imp`
     |
help: consider importing this struct through its public re-export
     |
6    + use crate::net::TcpListener;
     |
help: if you import `TcpListener`, refer to it directly
     |
1061 -     fn into_inner(self) -> net_imp::TcpListener {
1061 +     fn into_inner(self) -> TcpListener {
     |

error[E0412]: cannot find type `UdpSocket` in module `net_imp`
   --> C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\net\udp.rs:58:31
    |
58  | pub struct UdpSocket(net_imp::UdpSocket);
    |                               ^^^^^^^^^
    |
   ::: C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\os\windows\io\socket.rs:235:1
    |
235 | pub trait AsSocket {
    | ------------------ similarly named trait `AsSocket` defined here
    |
help: a trait with a similar name exists
    |
58  | pub struct UdpSocket(net_imp::AsSocket);
    |                               ~~~~~~~~
help: consider importing this struct through its public re-export
    |
4   + use crate::net::UdpSocket;
    |
help: if you import `UdpSocket`, refer to it directly
    |
58  - pub struct UdpSocket(net_imp::UdpSocket);
58  + pub struct UdpSocket(UdpSocket);
    |

error[E0433]: failed to resolve: could not find `UdpSocket` in `net_imp`
   --> C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\net\udp.rs:114:41
    |
114 |         super::each_addr(addr, net_imp::UdpSocket::bind).map(UdpSocket)
    |                                         ^^^^^^^^^ could not find `UdpSocket` in `net_imp`
    |
help: a trait with a similar name exists
    |
114 |         super::each_addr(addr, net_imp::AsSocket::bind).map(UdpSocket)
    |                                         ~~~~~~~~
help: consider importing this struct through its public re-export
    |
4   + use crate::net::UdpSocket;
    |
help: if you import `UdpSocket`, refer to it directly
    |
114 -         super::each_addr(addr, net_imp::UdpSocket::bind).map(UdpSocket)
114 +         super::each_addr(addr, UdpSocket::bind).map(UdpSocket)
    |

error[E0412]: cannot find type `UdpSocket` in module `net_imp`
   --> C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\net\udp.rs:818:23
    |
818 | impl AsInner<net_imp::UdpSocket> for UdpSocket {
    |                       ^^^^^^^^^
    |
   ::: C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\os\windows\io\socket.rs:235:1
    |
235 | pub trait AsSocket {
    | ------------------ similarly named trait `AsSocket` defined here
    |
help: a trait with a similar name exists
    |
818 | impl AsInner<net_imp::AsSocket> for UdpSocket {
    |                       ~~~~~~~~
help: consider importing this struct through its public re-export
    |
4   + use crate::net::UdpSocket;
    |
help: if you import `UdpSocket`, refer to it directly
    |
818 - impl AsInner<net_imp::UdpSocket> for UdpSocket {
818 + impl AsInner<UdpSocket> for UdpSocket {
    |

error[E0412]: cannot find type `UdpSocket` in module `net_imp`
   --> C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\net\udp.rs:820:37
    |
820 |     fn as_inner(&self) -> &net_imp::UdpSocket {
    |                                     ^^^^^^^^^
    |
   ::: C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\os\windows\io\socket.rs:235:1
    |
235 | pub trait AsSocket {
    | ------------------ similarly named trait `AsSocket` defined here
    |
help: a trait with a similar name exists
    |
820 |     fn as_inner(&self) -> &net_imp::AsSocket {
    |                                     ~~~~~~~~
help: consider importing this struct through its public re-export
    |
4   + use crate::net::UdpSocket;
    |
help: if you import `UdpSocket`, refer to it directly
    |
820 -     fn as_inner(&self) -> &net_imp::UdpSocket {
820 +     fn as_inner(&self) -> &UdpSocket {
    |

error[E0412]: cannot find type `UdpSocket` in module `net_imp`
   --> C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\net\udp.rs:825:25
    |
825 | impl FromInner<net_imp::UdpSocket> for UdpSocket {
    |                         ^^^^^^^^^
    |
   ::: C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\os\windows\io\socket.rs:235:1
    |
235 | pub trait AsSocket {
    | ------------------ similarly named trait `AsSocket` defined here
    |
help: a trait with a similar name exists
    |
825 | impl FromInner<net_imp::AsSocket> for UdpSocket {
    |                         ~~~~~~~~
help: consider importing this struct through its public re-export
    |
4   + use crate::net::UdpSocket;
    |
help: if you import `UdpSocket`, refer to it directly
    |
825 - impl FromInner<net_imp::UdpSocket> for UdpSocket {
825 + impl FromInner<UdpSocket> for UdpSocket {
    |

error[E0412]: cannot find type `UdpSocket` in module `net_imp`
   --> C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\net\udp.rs:826:35
    |
826 |     fn from_inner(inner: net_imp::UdpSocket) -> UdpSocket {
    |                                   ^^^^^^^^^
    |
   ::: C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\os\windows\io\socket.rs:235:1
    |
235 | pub trait AsSocket {
    | ------------------ similarly named trait `AsSocket` defined here
    |
help: a trait with a similar name exists
    |
826 |     fn from_inner(inner: net_imp::AsSocket) -> UdpSocket {
    |                                   ~~~~~~~~
help: consider importing this struct through its public re-export
    |
4   + use crate::net::UdpSocket;
    |
help: if you import `UdpSocket`, refer to it directly
    |
826 -     fn from_inner(inner: net_imp::UdpSocket) -> UdpSocket {
826 +     fn from_inner(inner: UdpSocket) -> UdpSocket {
    |

error[E0412]: cannot find type `UdpSocket` in module `net_imp`
   --> C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\net\udp.rs:831:25
    |
831 | impl IntoInner<net_imp::UdpSocket> for UdpSocket {
    |                         ^^^^^^^^^
    |
   ::: C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\os\windows\io\socket.rs:235:1
    |
235 | pub trait AsSocket {
    | ------------------ similarly named trait `AsSocket` defined here
    |
help: a trait with a similar name exists
    |
831 | impl IntoInner<net_imp::AsSocket> for UdpSocket {
    |                         ~~~~~~~~
help: consider importing this struct through its public re-export
    |
4   + use crate::net::UdpSocket;
    |
help: if you import `UdpSocket`, refer to it directly
    |
831 - impl IntoInner<net_imp::UdpSocket> for UdpSocket {
831 + impl IntoInner<UdpSocket> for UdpSocket {
    |

error[E0412]: cannot find type `UdpSocket` in module `net_imp`
   --> C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\net\udp.rs:832:37
    |
832 |     fn into_inner(self) -> net_imp::UdpSocket {
    |                                     ^^^^^^^^^
    |
   ::: C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\os\windows\io\socket.rs:235:1
    |
235 | pub trait AsSocket {
    | ------------------ similarly named trait `AsSocket` defined here
    |
help: a trait with a similar name exists
    |
832 |     fn into_inner(self) -> net_imp::AsSocket {
    |                                     ~~~~~~~~
help: consider importing this struct through its public re-export
    |
4   + use crate::net::UdpSocket;
    |
help: if you import `UdpSocket`, refer to it directly
    |
832 -     fn into_inner(self) -> net_imp::UdpSocket {
832 +     fn into_inner(self) -> UdpSocket {
    |

error[E0433]: failed to resolve: could not find `TcpStream` in `net`
   --> C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\os\windows\io\raw.rs:264:53
    |
264 |         net::TcpStream::from_inner(sys_common::net::TcpStream::from_inner(sock))
    |                                                     ^^^^^^^^^ could not find `TcpStream` in `net`
    |
help: consider importing this struct through its public re-export
    |
5   + use crate::net::TcpStream;
    |
help: if you import `TcpStream`, refer to it directly
    |
264 -         net::TcpStream::from_inner(sys_common::net::TcpStream::from_inner(sock))
264 +         net::TcpStream::from_inner(TcpStream::from_inner(sock))
    |

error[E0433]: failed to resolve: could not find `TcpListener` in `net`
   --> C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\os\windows\io\raw.rs:272:55
    |
272 |         net::TcpListener::from_inner(sys_common::net::TcpListener::from_inner(sock))
    |                                                       ^^^^^^^^^^^ could not find `TcpListener` in `net`
    |
help: consider importing this struct through its public re-export
    |
5   + use crate::net::TcpListener;
    |
help: if you import `TcpListener`, refer to it directly
    |
272 -         net::TcpListener::from_inner(sys_common::net::TcpListener::from_inner(sock))
272 +         net::TcpListener::from_inner(TcpListener::from_inner(sock))
    |

error[E0433]: failed to resolve: could not find `UdpSocket` in `net`
   --> C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\os\windows\io\raw.rs:280:53
    |
280 |         net::UdpSocket::from_inner(sys_common::net::UdpSocket::from_inner(sock))
    |                                                     ^^^^^^^^^ could not find `UdpSocket` in `net`
    |
help: a trait with a similar name exists
    |
280 |         net::UdpSocket::from_inner(sys_common::net::AsSocket::from_inner(sock))
    |                                                     ~~~~~~~~
help: consider importing this struct through its public re-export
    |
5   + use crate::net::UdpSocket;
    |
help: if you import `UdpSocket`, refer to it directly
    |
280 -         net::UdpSocket::from_inner(sys_common::net::UdpSocket::from_inner(sock))
280 +         net::UdpSocket::from_inner(UdpSocket::from_inner(sock))
    |

error[E0425]: cannot find function `sockaddr_to_addr` in module `net`
   --> C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\sys\windows\net.rs:323:33
    |
323 |                     Ok((0, net::sockaddr_to_addr(&storage, addrlen as usize)?))
    |                                 ^^^^^^^^^^^^^^^^ not found in `net`

error[E0425]: cannot find function `sockaddr_to_addr` in module `net`
   --> C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\sys\windows\net.rs:328:44
    |
328 |             _ => Ok((result as usize, net::sockaddr_to_addr(&storage, addrlen as usize)?)),
    |                                            ^^^^^^^^^^^^^^^^ not found in `net`

error[E0425]: cannot find function `setsockopt` in module `net`
   --> C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\sys\windows\net.rs:376:14
    |
376 |         net::setsockopt(self, c::SOL_SOCKET, kind, timeout)
    |              ^^^^^^^^^^ not found in `net`
    |
help: consider importing one of these items
    |
3   + use crate::sys::c::setsockopt;
    |
3   + use libc::setsockopt;
    |
help: if you import `setsockopt`, refer to it directly
    |
376 -         net::setsockopt(self, c::SOL_SOCKET, kind, timeout)
376 +         setsockopt(self, c::SOL_SOCKET, kind, timeout)
    |

error[E0425]: cannot find function `getsockopt` in module `net`
   --> C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\sys\windows\net.rs:380:34
    |
380 |         let raw: c::DWORD = net::getsockopt(self, c::SOL_SOCKET, kind)?;
    |                                  ^^^^^^^^^^ not found in `net`
    |
help: consider importing one of these items
    |
3   + use crate::sys::c::getsockopt;
    |
3   + use libc::getsockopt;
    |
help: if you import `getsockopt`, refer to it directly
    |
380 -         let raw: c::DWORD = net::getsockopt(self, c::SOL_SOCKET, kind)?;
380 +         let raw: c::DWORD = getsockopt(self, c::SOL_SOCKET, kind)?;
    |

error[E0425]: cannot find function `setsockopt` in module `net`
   --> C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\sys\windows\net.rs:413:14
    |
413 |         net::setsockopt(self, c::SOL_SOCKET, c::SO_LINGER, linger)
    |              ^^^^^^^^^^ not found in `net`
    |
help: consider importing one of these items
    |
3   + use crate::sys::c::setsockopt;
    |
3   + use libc::setsockopt;
    |
help: if you import `setsockopt`, refer to it directly
    |
413 -         net::setsockopt(self, c::SOL_SOCKET, c::SO_LINGER, linger)
413 +         setsockopt(self, c::SOL_SOCKET, c::SO_LINGER, linger)
    |

error[E0425]: cannot find function `getsockopt` in module `net`
   --> C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\sys\windows\net.rs:417:35
    |
417 |         let val: c::linger = net::getsockopt(self, c::SOL_SOCKET, c::SO_LINGER)?;
    |                                   ^^^^^^^^^^ not found in `net`
    |
help: consider importing one of these items
    |
3   + use crate::sys::c::getsockopt;
    |
3   + use libc::getsockopt;
    |
help: if you import `getsockopt`, refer to it directly
    |
417 -         let val: c::linger = net::getsockopt(self, c::SOL_SOCKET, c::SO_LINGER)?;
417 +         let val: c::linger = getsockopt(self, c::SOL_SOCKET, c::SO_LINGER)?;
    |

error[E0425]: cannot find function `setsockopt` in module `net`
   --> C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\sys\windows\net.rs:423:14
    |
423 |         net::setsockopt(self, c::IPPROTO_TCP, c::TCP_NODELAY, nodelay as c::BOOL)
    |              ^^^^^^^^^^ not found in `net`
    |
help: consider importing one of these items
    |
3   + use crate::sys::c::setsockopt;
    |
3   + use libc::setsockopt;
    |
help: if you import `setsockopt`, refer to it directly
    |
423 -         net::setsockopt(self, c::IPPROTO_TCP, c::TCP_NODELAY, nodelay as c::BOOL)
423 +         setsockopt(self, c::IPPROTO_TCP, c::TCP_NODELAY, nodelay as c::BOOL)
    |

error[E0425]: cannot find function `getsockopt` in module `net`
   --> C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\sys\windows\net.rs:427:33
    |
427 |         let raw: c::BOOL = net::getsockopt(self, c::IPPROTO_TCP, c::TCP_NODELAY)?;
    |                                 ^^^^^^^^^^ not found in `net`
    |
help: consider importing one of these items
    |
3   + use crate::sys::c::getsockopt;
    |
3   + use libc::getsockopt;
    |
help: if you import `getsockopt`, refer to it directly
    |
427 -         let raw: c::BOOL = net::getsockopt(self, c::IPPROTO_TCP, c::TCP_NODELAY)?;
427 +         let raw: c::BOOL = getsockopt(self, c::IPPROTO_TCP, c::TCP_NODELAY)?;
    |

error[E0425]: cannot find function `getsockopt` in module `net`
   --> C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\sys\windows\net.rs:432:31
    |
432 |         let raw: c_int = net::getsockopt(self, c::SOL_SOCKET, c::SO_ERROR)?;
    |                               ^^^^^^^^^^ not found in `net`
    |
help: consider importing one of these items
    |
3   + use crate::sys::c::getsockopt;
    |
3   + use libc::getsockopt;
    |
help: if you import `getsockopt`, refer to it directly
    |
432 -         let raw: c_int = net::getsockopt(self, c::SOL_SOCKET, c::SO_ERROR)?;
432 +         let raw: c_int = getsockopt(self, c::SOL_SOCKET, c::SO_ERROR)?;
    |

warning: unused import: `crate::sys::c::ADDRINFOA as addrinfo`
  --> C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\sys\windows\net.rs:24:13
   |
24 |     pub use crate::sys::c::ADDRINFOA as addrinfo;
   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
   |
   = note: `#[warn(unused_imports)]` on by default

warning: unused import: `crate::sys::c::SOCKADDR as sockaddr`
  --> C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\sys\windows\net.rs:25:13
   |
25 |     pub use crate::sys::c::SOCKADDR as sockaddr;
   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

warning: unused import: `crate::sys::c::SOCKADDR_STORAGE_LH as sockaddr_storage`
  --> C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\sys\windows\net.rs:26:13
   |
26 |     pub use crate::sys::c::SOCKADDR_STORAGE_LH as sockaddr_storage;
   |             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Some errors have detailed explanations: E0412, E0425, E0432, E0433.
For more information about an error, try `rustc --explain E0412`.
warning: `std` (lib) generated 3 warnings
error: could not compile `std` (lib) due to 38 previous errors; 3 warnings emitted

Caused by:
  process didn't exit successfully: `set CARGO=\\?\C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\bin\cargo.exe&& set CARGO_CRATE_NAME=std&& set CARGO_MANIFEST_DIR=C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std&& set CARGO_PKG_AUTHORS=""&& set CARGO_PKG_DESCRIPTION="The Rust Standard Library"&& set CARGO_PKG_HOMEPAGE=""&& set CARGO_PKG_LICENSE="MIT OR Apache-2.0"&& set CARGO_PKG_LICENSE_FILE=""&& set CARGO_PKG_NAME=std&& set CARGO_PKG_README=""&& set CARGO_PKG_REPOSITORY=https://github.com/rust-lang/rust.git&& set CARGO_PKG_RUST_VERSION=""&& set CARGO_PKG_VERSION=0.0.0&& set CARGO_PKG_VERSION_MAJOR=0&& set CARGO_PKG_VERSION_MINOR=0&& set CARGO_PKG_VERSION_PATCH=0&& set CARGO_PKG_VERSION_PRE=""&& set LIBRSYS_BINDINGS_OUTPUT_PATH=bindings&& set LIBRSYS_LIBCLANG_INCLUDE_PATH=C:/Users/tpb398/scoop/apps/rtools/current/x86_64-w64-mingw32.static.posix/include&& set OUT_DIR=C:/cargo_target_dir\custom_rtools_target\debug\build\std-2c021b97771a10eb\out&& set PATH="C:/cargo_target_dir\debug\deps;C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\bin;C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\bin;C:\Users\tpb398\scoop\apps\R\current/bin/x64;C:/rtools42/x86_64-w64-mingw32.static.posix/bin;C:/rtools42/usr/bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\dotnet\;C:\Users\tpb398\scoop\apps\vscode\current\bin;C:\Users\tpb398\scoop\apps\llvm\current\bin;C:\Users\tpb398\scoop\apps\imagemagick\current;C:\Users\tpb398\scoop\apps\ghostscript\current\lib;C:\Users\tpb398\scoop\apps\python\current\Scripts;C:\Users\tpb398\scoop\apps\python\current;C:\Users\tpb398\scoop\apps\dotnet-sdk\current;C:\Users\tpb398\scoop\apps\latex\current\texmfs\install\miktex\bin\x64;C:\Users\tpb398\scoop\apps\nodejs\current\bin;C:\Users\tpb398\scoop\apps\nodejs\current;C:\Users\tpb398\.cargo\bin;C:\Users\tpb398\scoop\apps\perl\current\perl\site\bin;C:\Users\tpb398\scoop\apps\perl\current\perl\bin;C:\Users\tpb398\scoop\apps\miniconda3\current\scripts;C:\Users\tpb398\scoop\apps\miniconda3\current\Library\bin;C:\Users\tpb398\scoop\shims;C:\Users\tpb398\AppData\Local\Microsoft\WindowsApps;C:\Users\tpb398\scoop\apps\R\current\bin\x64;C:\rtools43\x86_64-w64-mingw32.static.posix\bin;"&& set RUSTC_BOOTSTRAP=1&& set STD_ENV_ARCH=x86_64&& rustc --crate-name std --edition=2021 C:\Users\tpb398\.rustup\toolchains\nightly-x86_64-pc-windows-msvc\lib\rustlib\src\rust\library\std\src\lib.rs --error-format=json --json=diagnostic-rendered-ansi,artifacts,future-incompat --crate-type rlib --emit=dep-info,metadata,link -C embed-bitcode=no -C debuginfo=2 -C metadata=77657a7ae0c1e6a9 -C extra-filename=-77657a7ae0c1e6a9 --out-dir C:/cargo_target_dir\custom_rtools_target\debug\deps --target \\?\C:\Users\tpb398\Documents\GitHub\libR-sys\custom_rtools_target.json -Z force-unstable-if-unmarked -L dependency=C:/cargo_target_dir\custom_rtools_target\debug\deps -L dependency=C:/cargo_target_dir\debug\deps --extern alloc=C:/cargo_target_dir\custom_rtools_target\debug\deps\liballoc-78386e5fd1781ccb.rmeta --extern priv:cfg_if=C:/cargo_target_dir\custom_rtools_target\debug\deps\libcfg_if-72aeef5bfc82a638.rmeta --extern priv:compiler_builtins=C:/cargo_target_dir\custom_rtools_target\debug\deps\libcompiler_builtins-12ad31c11349612a.rmeta --extern core=C:/cargo_target_dir\custom_rtools_target\debug\deps\libcore-c4c7d83fccd33768.rmeta --extern priv:hashbrown=C:/cargo_target_dir\custom_rtools_target\debug\deps\libhashbrown-2213c512fd96d0ff.rmeta --extern libc=C:/cargo_target_dir\custom_rtools_target\debug\deps\liblibc-5ffa82a4159fbab5.rmeta --extern priv:panic_abort=C:/cargo_target_dir\custom_rtools_target\debug\deps\libpanic_abort-ce3b9b90f4188be0.rmeta --extern priv:rustc_demangle=C:/cargo_target_dir\custom_rtools_target\debug\deps\librustc_demangle-248b641be5e092ff.rmeta --extern priv:std_detect=C:/cargo_target_dir\custom_rtools_target\debug\deps\libstd_detect-8bb3fa2911476f2b.rmeta --extern priv:unwind=C:/cargo_target_dir\custom_rtools_target\debug\deps\libunwind-660ea960f2850abc.rmeta -Z unstable-options --cap-lints warn -Ctarget-cpu=native --cfg "feature=\"restricted-std\"" --cfg backtrace_in_libstd` (exit code: 1)

@CGMossa
Copy link
Member Author

CGMossa commented Nov 2, 2023

It would be nice if all the native R commands was used to compile the whole thing, with linker, etc.

~\Documents\GitHub\libR-sys> R CMD config --ldflags
-LC:/Users/tpb398/scoop/apps/R/current/bin/x64 -lR -lm
~\Documents\GitHub\libR-sys> R CMD config --cppflags
-IC:/Users/tpb398/scoop/apps/R/current/include -IC:/Users/tpb398/scoop/apps/R/current/include/x64
Details

11/02/2023 12:57:17 PMCC = gcc
CFLAGS = -O2 -Wall -mfpmath=sse -msse2 -mstackrealign
CPICFLAGS =
CPPFLAGS =
CC17 = gcc
C17FLAGS = -O2 -Wall -std=gnu17 -mfpmath=sse -msse2 -mstackrealign
CC23 = gcc
C23FLAGS = -O2 -Wall -std=gnu2x -mfpmath=sse -msse2 -mstackrealign
CC90 = gcc
C90FLAGS = -O2 -Wall -std=gnu90 -mfpmath=sse -msse2 -mstackrealign
CC99 = gcc
C99FLAGS = -O2 -Wall -std=gnu99 -mfpmath=sse -msse2 -mstackrealign
CXX = g++ -std=gnu++17
CXXFLAGS = -O2 -Wall -mfpmath=sse -msse2 -mstackrealign
CXXPICFLAGS =
CXX11 = g++
CXX11STD = -std=gnu++11
CXX11FLAGS = -O2 -Wall -mfpmath=sse -msse2 -mstackrealign
CXX11PICFLAGS =
CXX14 = g++
CXX14STD = -std=gnu++14
CXX14FLAGS = -O2 -Wall -mfpmath=sse -msse2 -mstackrealign
CXX14PICFLAGS =
CXX17 = g++
CXX17STD = -std=gnu++17
CXX17FLAGS = -O2 -Wall -mfpmath=sse -msse2 -mstackrealign
CXX17PICFLAGS =
CXX20 = g++
CXX20STD = -std=gnu++20
CXX20FLAGS = -O2 -Wall -mfpmath=sse -msse2 -mstackrealign
CXX20PICFLAG =
CXX23 = g++
CXX23STD = -std=gnu++2b
CXX23FLAGS = -O2 -Wall -mfpmath=sse -msse2 -mstackrealign
CXX23PICFLAGS =
DYLIB_EXT = .dll
DYLIB_LD = gcc
DYLIB_LDFLAGS = -shared
FC = gfortran
FFLAGS = -O2 -mfpmath=sse -msse2 -mstackrealign
FPICFLAGS =
FLIBS = -lgfortran -lm -lquadmath
FCFLAGS = -O2 -mfpmath=sse -msse2 -mstackrealign
SAFE_FFLAGS = -O2 -msse2 -mfpmath=sse
OBJC = gcc
OBJCFLAGS = -O2
JAVA =
JAVAC =
JAVAH =
JAR =
JAVA_HOME =
JAVA_LIBS = -L/bin/client -ljvm -ljvm-w32
JAVA_CPPFLAGS = -I/../include -I/../include/win32
LDFLAGS =
SHLIB_CFLAGS =
SHLIB_CXXFLAGS =
SHLIB_CXXLD = g++ -std=gnu++17
SHLIB_CXXLDFLAGS = -shared
SHLIB_CXX11LD = g++
SHLIB_CXX11LDFLAGS = -shared
SHLIB_CXX14LD = g++
SHLIB_CXX14LDFLAGS = -shared
SHLIB_CXX17LD = g++
SHLIB_CXX17LDFLAGS = -shared
SHLIB_CXX20LD = g++
SHLIB_CXX20LDFLAGS = -shared
SHLIB_CXX23LD = g++
SHLIB_CXX23LDFLAGS = -shared
SHLIB_EXT = .dll
SHLIB_FFLAGS =
SHLIB_LD = gcc
SHLIB_LDFLAGS = -shared
TCLTK_CPPFLAGS = -I C:/Users/tpb398/scoop/apps/R/current/Tcl/include -DWin32
TCLTK_LIBS = -LC:/Users/tpb398/scoop/apps/R/current/Tcl/bin -ltcl86 -ltk86
BLAS_LIBS = -LC:/Users/tpb398/scoop/apps/R/current/bin/x64 -lRblas
LAPACK_LIBS = -LC:/Users/tpb398/scoop/apps/R/current/bin/x64 -lRlapack
MAKE = make
LIBnn = lib
AR = ar
NM = nm
RANLIB = ranlib
LTO =
LTO_FC =
LTO_LD =
LOCAL_SOFT = c:/rtools43/x86_64-w64-mingw32.static.posix
R_TOOLS_SOFT = c:/rtools43/x86_64-w64-mingw32.static.posix
COMPILED_BY = gcc-12.2.0
OBJDUMP = objdump

@CGMossa CGMossa changed the title [draft] Custom rustc target for Windows especially Custom rustc target for Windows especially Nov 2, 2023
@CGMossa
Copy link
Member Author

CGMossa commented Nov 18, 2023

Progress! rust-lang/rust#104761

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant