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

Rust 1.79+ stdlib is unusable with MSVC when creating static libraries #129020

Closed
amyspark opened this issue Aug 12, 2024 · 17 comments · Fixed by #129257
Closed

Rust 1.79+ stdlib is unusable with MSVC when creating static libraries #129020

amyspark opened this issue Aug 12, 2024 · 17 comments · Fixed by #129257
Labels
A-linkage Area: linking into static, shared libraries and binaries C-bug Category: This is a bug. I-prioritize Issue: Indicates that prioritization has been requested for this issue. O-windows-msvc Toolchain: MSVC, Operating system: Windows regression-from-stable-to-stable Performance or correctness regression from one stable version to another. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.

Comments

@amyspark
Copy link
Contributor

amyspark commented Aug 12, 2024

Code

I tried to build librsvg using a simple meson setup build -Ddefault_library=both then meson compile -C build.

I expected to see this happen: linking success.

Instead, this happened: MSVC link returns LNK2005 and fails to /WHOLEARCHIVE the static library.

Version it worked on

It most recently worked on: 1.77.2

Version with regression

rustc --version --verbose:

rustc 1.79.0 (129f3b996 2024-06-10)
binary: rustc
commit-hash: 129f3b9964af4d4a709d1383930ade12dfe7c081
commit-date: 2024-06-10
host: x86_64-pc-windows-msvc
release: 1.79.0
LLVM version: 18.1.7

This is caused by both #121337 and #124019. When creating stdlibs, each MR causes the Rust compiler to add an export of __NULL_IMPORT_DESCRIPTOR; one comes from api-ms-win-core-synch-l1-2-0.dll and the other from bcryptprimitives.dll. This error will not be found until one consumes the Rust-generated library.

I am filing this report to consolidate the ones in rust-lang/cc-rs#1167 (comment) and mesonbuild/meson#13236 (comment).

Backtrace

Backtrace

[4/6] "link"  /MACHINE:x64 /OUT:rsvg/rsvg-2-2.dll rsvg/rsvg-2-2.dll.p/meson-generated_..__rsvg_dummy.c.obj "/LIBPATH:E:/cerbero-sources/dist/msvc_x86_64/lib" "/release" "/nologo" "/DEBUG" "/PDB:rsvg\rsvg-2-2.pdb" "/DLL" "/DEF:rsvg\librsvg-2.0.def" "/IMPLIB:rsvg\rsvg-2.lib" "/WHOLEARCHIVE:rsvg/rsvg_2.lib" "rsvg/rsvg_2.lib" "E:/cerbero-sources/dist/msvc_x86_64/lib/cairo.lib" "E:/cerbero-sources/dist/msvc_x86_64/lib/cairo-gobject.lib" "E:/cerbero-sources/dist/msvc_x86_64/lib/gobject-2.0.lib" "E:/cerbero-sources/dist/msvc_x86_64/lib/glib-2.0.lib" "E:/cerbero-sources/dist/msvc_x86_64/lib/intl.lib" "E:/cerbero-sources/dist/msvc_x86_64/lib/png16.lib" "E:/cerbero-sources/dist/msvc_x86_64/lib/z.lib" "E:/cerbero-sources/dist/msvc_x86_64/lib/dav1d.lib" "E:/cerbero-sources/dist/msvc_x86_64/lib/freetype.lib" "E:/cerbero-sources/dist/msvc_x86_64/lib/gdk_pixbuf-2.0.lib" "E:/cerbero-sources/dist/msvc_x86_64/lib/gio-2.0.lib" "E:/cerbero-sources/dist/msvc_x86_64/lib/harfbuzz.lib" "E:/cerbero-sources/dist/msvc_x86_64/lib/xml2.lib" "E:/cerbero-sources/dist/msvc_x86_64/lib/pangocairo-1.0.lib" "E:/cerbero-sources/dist/msvc_x86_64/lib/pango-1.0.lib" "E:/cerbero-sources/dist/msvc_x86_64/lib/pangoft2-1.0.lib" "E:/cerbero-sources/dist/msvc_x86_64/lib/fontconfig.lib" "E:/cerbero-sources/dist/msvc_x86_64/lib/gmodule-2.0.lib" "advapi32.lib" "ws2_32.lib" "userenv.lib" "kernel32.lib" "/defaultlib:msvcrt.lib" "ntdll.lib" "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "comdlg32.lib" "advapi32.lib"
FAILED: rsvg/rsvg-2-2.dll rsvg/rsvg-2-2.pdb
"link"  /MACHINE:x64 /OUT:rsvg/rsvg-2-2.dll rsvg/rsvg-2-2.dll.p/meson-generated_..__rsvg_dummy.c.obj "/LIBPATH:E:/cerbero-sources/dist/msvc_x86_64/lib" "/release" "/nologo" "/DEBUG" "/PDB:rsvg\rsvg-2-2.pdb" "/DLL" "/DEF:rsvg\librsvg-2.0.def" "/IMPLIB:rsvg\rsvg-2.lib" "/WHOLEARCHIVE:rsvg/rsvg_2.lib" "rsvg/rsvg_2.lib" "E:/cerbero-sources/dist/msvc_x86_64/lib/cairo.lib" "E:/cerbero-sources/dist/msvc_x86_64/lib/cairo-gobject.lib" "E:/cerbero-sources/dist/msvc_x86_64/lib/gobject-2.0.lib" "E:/cerbero-sources/dist/msvc_x86_64/lib/glib-2.0.lib" "E:/cerbero-sources/dist/msvc_x86_64/lib/intl.lib" "E:/cerbero-sources/dist/msvc_x86_64/lib/png16.lib" "E:/cerbero-sources/dist/msvc_x86_64/lib/z.lib" "E:/cerbero-sources/dist/msvc_x86_64/lib/dav1d.lib" "E:/cerbero-sources/dist/msvc_x86_64/lib/freetype.lib" "E:/cerbero-sources/dist/msvc_x86_64/lib/gdk_pixbuf-2.0.lib" "E:/cerbero-sources/dist/msvc_x86_64/lib/gio-2.0.lib" "E:/cerbero-sources/dist/msvc_x86_64/lib/harfbuzz.lib" "E:/cerbero-sources/dist/msvc_x86_64/lib/xml2.lib" "E:/cerbero-sources/dist/msvc_x86_64/lib/pangocairo-1.0.lib" "E:/cerbero-sources/dist/msvc_x86_64/lib/pango-1.0.lib" "E:/cerbero-sources/dist/msvc_x86_64/lib/pangoft2-1.0.lib" "E:/cerbero-sources/dist/msvc_x86_64/lib/fontconfig.lib" "E:/cerbero-sources/dist/msvc_x86_64/lib/gmodule-2.0.lib" "advapi32.lib" "ws2_32.lib" "userenv.lib" "kernel32.lib" "/defaultlib:msvcrt.lib" "ntdll.lib" "kernel32.lib" "user32.lib" "gdi32.lib" "winspool.lib" "shell32.lib" "ole32.lib" "oleaut32.lib" "uuid.lib" "comdlg32.lib" "advapi32.lib"
rsvg_2.lib(api-ms-win-core-synch-l1-2-0.dll) : error LNK2005: __NULL_IMPORT_DESCRIPTOR already defined in rsvg_2.lib(bcryptprimitives.dll)

   Creating library rsvg\rsvg-2.lib and object rsvg\rsvg-2.exp

rsvg\rsvg-2-2.dll : fatal error LNK1169: one or more multiply defined symbols found

@rustbot modify labels: +regression-from-stable-to-stable -regression-untriaged

@amyspark amyspark added C-bug Category: This is a bug. regression-untriaged Untriaged performance or correctness regression. labels Aug 12, 2024
@rustbot rustbot added I-prioritize Issue: Indicates that prioritization has been requested for this issue. needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. regression-from-stable-to-stable Performance or correctness regression from one stable version to another. and removed regression-untriaged Untriaged performance or correctness regression. labels Aug 12, 2024
@jieyouxu jieyouxu added O-windows-msvc Toolchain: MSVC, Operating system: Windows T-libs Relevant to the library team, which will review and decide on the PR/issue. labels Aug 12, 2024
@workingjubilee
Copy link
Member

cc @ChrisDenton

@ChrisDenton
Copy link
Member

Using /WHOLEARCHIVE for a rust staticlib seems weird to me but cc @dpaoliello

@amyspark
Copy link
Contributor Author

@ChrisDenton The purpose is to allow reexporting a subset of symbols on MSVC. This can be achieved with partial linking elsewhere, but this is not doable on Windows. I wrote about a specific application here: https://www.amyspark.me/blog/posts/2024/01/10/stripping-rust-libraries.html

@dpaoliello
Copy link
Contributor

Sorry, I'm confused, are you trying to create a dynamic or static library?

The article that you linked to talks about static libraries, but the backtrace in the OP shows that you are creating a dynamic library.

@amyspark
Copy link
Contributor Author

@dpaoliello Both: I'm using the Rust-produced static library through /WHOLEARCHIVE, plus a module definition file, to create a dynamic library.

This is because (apart from size considerations) GNOME's gobject-introspection needs a shared library, and Meson will only accept targets that are generated by itself.

Further context is here: https://github.com/GNOME/librsvg/blob/main/rsvg/meson.build#L176-L244

@amyspark
Copy link
Contributor Author

@dpaoliello In this particular case, because of the imports present in the stdlib, linking something against the Rust-produced static librsvg is enough to trigger the issue.

@jieyouxu jieyouxu added T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. A-linkage Area: linking into static, shared libraries and binaries and removed T-libs Relevant to the library team, which will review and decide on the PR/issue. labels Aug 13, 2024
@ChrisDenton
Copy link
Member

ChrisDenton commented Aug 13, 2024

I am still struggling to understand why /WHOLEARCHIVE is needed, at least for MSVC.

So the DLL is created here:

librsvg_shared_lib = shared_library(
    rsvg_ver,
    rsvg_dummy,
    link_whole: librsvg_c_lib,
    link_args: link_args,
    link_depends: librsvg_ver,
    dependencies: library_dependencies,
    include_directories: [includeinc],
    vs_module_defs: librsvg_def,
    install: true,
    version: meson.project_version() # it's not exact as m4
  )

link_whole is used so that the DLL includes every single object in the staticlib, even if it's unneeded or indeed causes conflicts. But then vs_module_defs is used to add a .def which presumably defines what actually gets exported from the DLL. What I'm not understanding is what would be different if, for MSVC, it just linked librsvg_c_lib normally without link_whole? I.e. using link_with instead.

@amyspark
Copy link
Contributor Author

amyspark commented Aug 13, 2024

@ChrisDenton On MSVC, static linking doesn't let you reexport dependencies' symbols automatically, they're subject to DCE. That's what /WHOLEARCHIVE fixes. However, PE-COFF static libraries don't support symbol visibility, so the /DEF is there to make all Rust symbols private and keep only the librsvg ones. See e.g. #126633 and #111594 (comment) for consequences of not blocking out symbols like rust_eh_personality.

@ChrisDenton
Copy link
Member

Sure but the /def should work regardless of if /wholearchive is used or not because using the export will force the linker to go looking for the symbol(s) listed in the .def file.

E.g. as a test I have the following static lib (using no_mangle to make symbols easier to find):

// static.rs
#![crate_type = "staticlib"]

#[no_mangle]
pub extern "C" fn hello() {
    println!("Hello world!");
}

#[no_mangle]
pub extern "C" fn number() -> u32 {
    42
}

Which I compile into a static lib using:

rustc static.rs -O --crate-type=staticlib

And I have the following .def file:

// dll.def
LIBRARY dll
EXPORTS
        hello
        number

Which for simplicity I compile via rustc but I'm using an empty dll.rs file and also raw linker arguments:

rustc dll.rs -O --crate-type=cdylib -C link-args="./static.lib /def:dll.def"

This compiles and if dumpbin /exports dll.dll I see the two functions I wanted:

    ordinal hint RVA      name

          1    0 00015F00 hello = hello
          2    1 00015F40 number = number

No std symbols are exported.

@bjorn3
Copy link
Member

bjorn3 commented Aug 13, 2024

Independent of whether whole-archive is necessary for this specific use case, we should support linking rust staticlibs with whole-archive, even if because of the fact that not linking with whole-archive can mask linker errors, which will later show up when any change to the cgu partitioning is made, which often causes people to report a regression even though their crate is at fault.

@ChrisDenton
Copy link
Member

ChrisDenton commented Aug 13, 2024

If I repeat the above using /WHOLEARCHIVE even in this simple case I get a bunch of errors, not just __NULL_IMPORT_DESCRIPTOR:

= note: static.lib(static.3af68w0z3h1h5wohn67bam2t5.rcgu.o) : error LNK2005: __rust_alloc already defined in dll.5sbrdvh9pgq2lh7uwwimwezk0.rcgu.o
          static.lib(static.3af68w0z3h1h5wohn67bam2t5.rcgu.o) : error LNK2005: __rust_dealloc already defined in dll.5sbrdvh9pgq2lh7uwwimwezk0.rcgu.o
          static.lib(static.3af68w0z3h1h5wohn67bam2t5.rcgu.o) : error LNK2005: __rust_realloc already defined in dll.5sbrdvh9pgq2lh7uwwimwezk0.rcgu.o
          static.lib(static.3af68w0z3h1h5wohn67bam2t5.rcgu.o) : error LNK2005: __rust_alloc_zeroed already defined in dll.5sbrdvh9pgq2lh7uwwimwezk0.rcgu.o
          static.lib(static.3af68w0z3h1h5wohn67bam2t5.rcgu.o) : error LNK2005: __rust_alloc_error_handler already defined in dll.5sbrdvh9pgq2lh7uwwimwezk0.rcgu.o
          static.lib(static.3af68w0z3h1h5wohn67bam2t5.rcgu.o) : error LNK2005: __rust_alloc_error_handler_should_panic already defined in dll.5sbrdvh9pgq2lh7uwwimwezk0.rcgu.o
          static.lib(static.3af68w0z3h1h5wohn67bam2t5.rcgu.o) : error LNK2005: __rust_no_alloc_shim_is_unstable already defined in dll.5sbrdvh9pgq2lh7uwwimwezk0.rcgu.o
          static.lib(api-ms-win-core-synch-l1-2-0.dll) : error LNK2005: __NULL_IMPORT_DESCRIPTOR already defined in static.lib(bcryptprimitives.dll)

I'm not really sure if rustc can currently guarantee that whole archive will work without doing some of the work of a linker. Which sounds like a new feature and not specific to MSVC.

@bjorn3
Copy link
Member

bjorn3 commented Aug 13, 2024

All duplicate symbol errors for __rust_* are caused by #104707. That it works without /WHOLEARCHIVE is by accident and likely to break in case of cgu partitioning changes.

@ChrisDenton
Copy link
Member

ChrisDenton commented Aug 13, 2024

Sure, and then if I compile the static library with -C codegen-units=1 -C opt-level=3 -C lto=thin and use whole archive then I get a whole slew of errors, which I'll spoiler for length

linker errors
  = note: static.lib(static.3af68w0z3h1h5wohn67bam2t5.rcgu.o) : error LNK2005: __rust_alloc already defined in dll.5sbrdvh9pgq2lh7uwwimwezk0.rcgu.o
          static.lib(static.3af68w0z3h1h5wohn67bam2t5.rcgu.o) : error LNK2005: __rust_dealloc already defined in dll.5sbrdvh9pgq2lh7uwwimwezk0.rcgu.o
          static.lib(static.3af68w0z3h1h5wohn67bam2t5.rcgu.o) : error LNK2005: __rust_realloc already defined in dll.5sbrdvh9pgq2lh7uwwimwezk0.rcgu.o
          static.lib(static.3af68w0z3h1h5wohn67bam2t5.rcgu.o) : error LNK2005: __rust_alloc_error_handler already defined in dll.5sbrdvh9pgq2lh7uwwimwezk0.rcgu.o
          static.lib(static.3af68w0z3h1h5wohn67bam2t5.rcgu.o) : error LNK2005: __rust_no_alloc_shim_is_unstable already defined in dll.5sbrdvh9pgq2lh7uwwimwezk0.rcgu.o
          static.lib(static.3af68w0z3h1h5wohn67bam2t5.rcgu.o) : error LNK2005: __rust_alloc_error_handler_should_panic already defined in dll.5sbrdvh9pgq2lh7uwwimwezk0.rcgu.o
          static.lib(api-ms-win-core-synch-l1-2-0.dll) : error LNK2005: __NULL_IMPORT_DESCRIPTOR already defined in static.lib(bcryptprimitives.dll)
          libstd-d12b180ae2af61db.rlib(std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o) : error LNK2005: _ZN3std3env11current_dir17hb882b8fbcc4e7ddcE already defined in static.lib(static.std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o.rcgu.o)
          libstd-d12b180ae2af61db.rlib(std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o) : error LNK2005: _ZN3std3env7_var_os17hd1d0b3d5249228f7E already defined in static.lib(static.std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o.rcgu.o)
          libstd-d12b180ae2af61db.rlib(std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o) : error LNK2005: _ZN60_$LT$std..io..error..Error$u20$as$u20$core..fmt..Display$GT$3fmt17hf1bc7f46baf3a0ceE already defined in static.lib(static.std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o.rcgu.o)
          libstd-d12b180ae2af61db.rlib(std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o) : error LNK2005: _ZN61_$LT$$RF$std..io..stdio..Stdout$u20$as$u20$std..io..Write$GT$9write_fmt17hcff2479570144451E already defined in static.lib(static.std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o.rcgu.o)
          libstd-d12b180ae2af61db.rlib(std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o) : error LNK2005: _ZN61_$LT$std..io..stdio..StdoutLock$u20$as$u20$std..io..Write$GT$9write_all17h2ab7bb77901a509dE already defined in static.lib(static.std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o.rcgu.o)
          libstd-d12b180ae2af61db.rlib(std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o) : error LNK2005: _ZN3std2io5stdio6_print17hfb1cb878ecb43904E already defined in static.lib(static.std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o.rcgu.o)
          libstd-d12b180ae2af61db.rlib(std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o) : error LNK2005: _ZN81_$LT$std..ffi..os_str..OsString$u20$as$u20$std..os..windows..ffi..OsStringExt$GT$9from_wide17hac20e654203e156fE already defined in static.lib(static.std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o.rcgu.o)
          libstd-d12b180ae2af61db.rlib(std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o) : error LNK2005: _ZN3std5panic19get_backtrace_style17hff4a5327e0771eb1E already defined in static.lib(static.std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o.rcgu.o)
          libstd-d12b180ae2af61db.rlib(std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o) : error LNK2005: _ZN3std4path10Components7as_path17h9031c0075c7d4cefE already defined in static.lib(static.std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o.rcgu.o)
          libstd-d12b180ae2af61db.rlib(std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o) : error LNK2005: _ZN80_$LT$std..path..Components$u20$as$u20$core..iter..traits..iterator..Iterator$GT$4next17hb99077dfec9e4f8eE already defined in static.lib(static.std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o.rcgu.o)
          libstd-d12b180ae2af61db.rlib(std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o) : error LNK2005: _ZN3std4path4Path11is_absolute17hd885e59088861b15E already defined in static.lib(static.std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o.rcgu.o)
          libstd-d12b180ae2af61db.rlib(std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o) : error LNK2005: _ZN3std4path4Path13_strip_prefix17hb48b88784cdf831cE already defined in static.lib(static.std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o.rcgu.o)
          libstd-d12b180ae2af61db.rlib(std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o) : error LNK2005: _ZN91_$LT$std..sys_common..backtrace.._print..DisplayBacktrace$u20$as$u20$core..fmt..Display$GT$3fmt17h672d2e30beb457abE already defined in static.lib(static.std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o.rcgu.o)
          libstd-d12b180ae2af61db.rlib(std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o) : error LNK2005: _ZN3std10sys_common4wtf87Wtf8Buf25push_code_point_unchecked17h4ffe851d4e30852dE already defined in static.lib(static.std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o.rcgu.o)
          libstd-d12b180ae2af61db.rlib(std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o) : error LNK2005: _ZN66_$LT$std..sys_common..wtf8..Wtf8$u20$as$u20$core..fmt..Display$GT$3fmt17hd2b8f84ca8cbb97bE already defined in static.lib(static.std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o.rcgu.o)
          libstd-d12b180ae2af61db.rlib(std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o) : error LNK2005: __rdl_alloc already defined in static.lib(static.std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o.rcgu.o)
          libstd-d12b180ae2af61db.rlib(std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o) : error LNK2005: __rdl_dealloc already defined in static.lib(static.std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o.rcgu.o)
          libstd-d12b180ae2af61db.rlib(std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o) : error LNK2005: __rdl_realloc already defined in static.lib(static.std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o.rcgu.o)
          libstd-d12b180ae2af61db.rlib(std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o) : error LNK2005: __rust_drop_panic already defined in static.lib(static.std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o.rcgu.o)
          libstd-d12b180ae2af61db.rlib(std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o) : error LNK2005: _ZN3std9panicking12default_hook17hda6005552b80eb02E already defined in static.lib(static.std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o.rcgu.o)
          libstd-d12b180ae2af61db.rlib(std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o) : error LNK2005: _ZN3std9panicking11panic_count17is_zero_slow_path17h3e5a8a26e75b6c3bE already defined in static.lib(static.std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o.rcgu.o)
          libstd-d12b180ae2af61db.rlib(std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o) : error LNK2005: rust_begin_unwind already defined in static.lib(static.std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o.rcgu.o)
          libstd-d12b180ae2af61db.rlib(std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o) : error LNK2005: _ZN102_$LT$std..panicking..begin_panic_handler..FormatStringPayload$u20$as$u20$core..panic..PanicPayload$GT$8take_box17h971cd55dd516abceE already defined in static.lib(static.std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o.rcgu.o)
          libstd-d12b180ae2af61db.rlib(std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o) : error LNK2005: _ZN102_$LT$std..panicking..begin_panic_handler..FormatStringPayload$u20$as$u20$core..panic..PanicPayload$GT$3get17hf5ddc7e905804f70E already defined in static.lib(static.std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o.rcgu.o)
          libstd-d12b180ae2af61db.rlib(std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o) : error LNK2005: _ZN99_$LT$std..panicking..begin_panic_handler..StaticStrPayload$u20$as$u20$core..panic..PanicPayload$GT$8take_box17hf95f53737f017a13E already defined in static.lib(static.std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o.rcgu.o)
          libstd-d12b180ae2af61db.rlib(std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o) : error LNK2005: _ZN3std9panicking20rust_panic_with_hook17h20725ba0eab22267E already defined in static.lib(static.std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o.rcgu.o)
          libstd-d12b180ae2af61db.rlib(std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o) : error LNK2005: rust_panic already defined in static.lib(static.std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o.rcgu.o)
          libstd-d12b180ae2af61db.rlib(std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o) : error LNK2005: _ZN79_$LT$std..backtrace_rs..symbolize..SymbolName$u20$as$u20$core..fmt..Display$GT$3fmt17h4c251f238eb290b0E already defined in static.lib(static.std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o.rcgu.o)
          libstd-d12b180ae2af61db.rlib(std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o) : error LNK2005: _ZN3std3sys3pal7windows5alloc18process_heap_alloc17h6a7f4a845728a1d0E already defined in static.lib(static.std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o.rcgu.o)
          libstd-d12b180ae2af61db.rlib(std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o) : error LNK2005: _ZN72_$LT$std..sys..pal..windows..stdio..Stderr$u20$as$u20$std..io..Write$GT$5write17h468036444caa7a43E already defined in static.lib(static.std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o.rcgu.o)
          libstd-d12b180ae2af61db.rlib(std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o) : error LNK2005: _ZN3std3sys3pal7windows16thread_local_key21register_keyless_dtor17hbe76087716750257E already defined in static.lib(static.std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o.rcgu.o)
          libstd-d12b180ae2af61db.rlib(std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o) : error LNK2005: rust_eh_personality already defined in static.lib(static.std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o.rcgu.o)
          libstd-d12b180ae2af61db.rlib(std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o) : error LNK2005: _ZN3std3sys4path7windows12parse_prefix17h4f3bd41b5a4f7065E already defined in static.lib(static.std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o.rcgu.o)
          libstd-d12b180ae2af61db.rlib(std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o) : error LNK2005: _ZN3std3sys4sync5mutex5futex5Mutex14lock_contended17h8c9dc019590b3cfeE already defined in static.lib(static.std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o.rcgu.o)
          libstd-d12b180ae2af61db.rlib(std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o) : error LNK2005: _ZN3std3sys4sync4once5queue4Once4call17h028ada4c67e00e11E already defined in static.lib(static.std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o.rcgu.o)
          libstd-d12b180ae2af61db.rlib(std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o) : error LNK2005: _ZN82_$LT$std..sys..sync..once..queue..WaiterQueue$u20$as$u20$core..ops..drop..Drop$GT$4drop17h3d7abbf31b11cd9fE already defined in static.lib(static.std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o.rcgu.o)
          libstd-d12b180ae2af61db.rlib(std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o) : error LNK2005: _ZN3std3sys4sync6rwlock5futex6RwLock14read_contended17hecf2920d6641da89E already defined in static.lib(static.std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o.rcgu.o)
          libstd-d12b180ae2af61db.rlib(std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o) : error LNK2005: _ZN3std3sys4sync6rwlock5futex6RwLock22wake_writer_or_readers17hb3c78d73deb6e620E already defined in static.lib(static.std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o.rcgu.o)
          libstd-d12b180ae2af61db.rlib(std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o) : error LNK2005: _ZN3std5alloc8rust_oom17hf9b508903b9a1075E already defined in static.lib(static.std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o.rcgu.o)
          libstd-d12b180ae2af61db.rlib(std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o) : error LNK2005: __rg_oom already defined in static.lib(static.std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o.rcgu.o)
          libstd-d12b180ae2af61db.rlib(std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o) : error LNK2005: _ZN3std12backtrace_rs9symbolize7dbghelp7resolve17h49998ae9c03f773bE already defined in static.lib(static.std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o.rcgu.o)
          libstd-d12b180ae2af61db.rlib(std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o) : error LNK2005: _ZN3std9panicking4HOOK17h364ac41ea808fdd5E already defined in static.lib(static.std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o.rcgu.o)
          libstd-d12b180ae2af61db.rlib(std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o) : error LNK2005: _ZN3std9panicking11panic_count18GLOBAL_PANIC_COUNT17h7807a23afebe65bbE already defined in static.lib(static.std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o.rcgu.o)
          libstd-d12b180ae2af61db.rlib(std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o) : error LNK2005: _ZN3std3sys3pal7windows5alloc4HEAP17h8b665d05d0d184ecE already defined in static.lib(static.std-d12b180ae2af61db.std.4f3d19e5cfafb1ab-cgu.0.rcgu.o.rcgu.o)
          libpanic_unwind-1381ab952b622680.rlib(panic_unwind-1381ab952b622680.panic_unwind.72baeae31b56309f-cgu.0.rcgu.o) : error LNK2005: __rust_start_panic already defined in static.lib(static.panic_unwind-1381ab952b622680.panic_unwind.72baeae31b56309f-cgu.0.rcgu.o.rcgu.o)
          librustc_demangle-1794455ce6ed0225.rlib(rustc_demangle-1794455ce6ed0225.rustc_demangle.efb2452aaf45d8fe-cgu.0.rcgu.o) : error LNK2005: _ZN71_$LT$rustc_demangle..legacy..Demangle$u20$as$u20$core..fmt..Display$GT$3fmt17h022686e3d55ddc9aE already defined in static.lib(static.rustc_demangle-1794455ce6ed0225.rustc_demangle.efb2452aaf45d8fe-cgu.0.rcgu.o.rcgu.o)
          librustc_demangle-1794455ce6ed0225.rlib(rustc_demangle-1794455ce6ed0225.rustc_demangle.efb2452aaf45d8fe-cgu.0.rcgu.o) : error LNK2005: _ZN64_$LT$rustc_demangle..v0..Ident$u20$as$u20$core..fmt..Display$GT$3fmt17h84172cfc5acec74cE already defined in static.lib(static.rustc_demangle-1794455ce6ed0225.rustc_demangle.efb2452aaf45d8fe-cgu.0.rcgu.o.rcgu.o)
          librustc_demangle-1794455ce6ed0225.rlib(rustc_demangle-1794455ce6ed0225.rustc_demangle.efb2452aaf45d8fe-cgu.0.rcgu.o) : error LNK2005: _ZN14rustc_demangle8demangle17hd0fefd57576dfc17E already defined in static.lib(static.rustc_demangle-1794455ce6ed0225.rustc_demangle.efb2452aaf45d8fe-cgu.0.rcgu.o.rcgu.o)
          librustc_demangle-1794455ce6ed0225.rlib(rustc_demangle-1794455ce6ed0225.rustc_demangle.efb2452aaf45d8fe-cgu.0.rcgu.o) : error LNK2005: _ZN14rustc_demangle12try_demangle17h293b6bd01fd2f8c0E already defined in static.lib(static.rustc_demangle-1794455ce6ed0225.rustc_demangle.efb2452aaf45d8fe-cgu.0.rcgu.o.rcgu.o)
          librustc_demangle-1794455ce6ed0225.rlib(rustc_demangle-1794455ce6ed0225.rustc_demangle.efb2452aaf45d8fe-cgu.0.rcgu.o) : error LNK2005: _ZN63_$LT$rustc_demangle..Demangle$u20$as$u20$core..fmt..Display$GT$3fmt17h9967b98f638b837fE already defined in static.lib(static.rustc_demangle-1794455ce6ed0225.rustc_demangle.efb2452aaf45d8fe-cgu.0.rcgu.o.rcgu.o)
          liballoc-47499d42920da425.rlib(alloc-47499d42920da425.alloc.3d8bda2084a76de4-cgu.0.rcgu.o) : error LNK2005: _ZN5alloc7raw_vec12handle_error17h6d6a669fe9ec9e86E already defined in static.lib(static.alloc-47499d42920da425.alloc.3d8bda2084a76de4-cgu.0.rcgu.o.rcgu.o)
          liballoc-47499d42920da425.rlib(alloc-47499d42920da425.alloc.3d8bda2084a76de4-cgu.0.rcgu.o) : error LNK2005: _ZN5alloc5alloc18handle_alloc_error17ha480bc829c06c161E already defined in static.lib(static.alloc-47499d42920da425.alloc.3d8bda2084a76de4-cgu.0.rcgu.o.rcgu.o)
          liballoc-47499d42920da425.rlib(alloc-47499d42920da425.alloc.3d8bda2084a76de4-cgu.0.rcgu.o) : error LNK2005: _ZN5alloc3fmt6format12format_inner17hd18f316631a5b9e9E already defined in static.lib(static.alloc-47499d42920da425.alloc.3d8bda2084a76de4-cgu.0.rcgu.o.rcgu.o)
          liballoc-47499d42920da425.rlib(alloc-47499d42920da425.alloc.3d8bda2084a76de4-cgu.0.rcgu.o) : error LNK2005: _ZN5alloc6string6String10from_utf1617hc8a5d0e40aa2cf31E already defined in static.lib(static.alloc-47499d42920da425.alloc.3d8bda2084a76de4-cgu.0.rcgu.o.rcgu.o)
          liballoc-47499d42920da425.rlib(alloc-47499d42920da425.alloc.3d8bda2084a76de4-cgu.0.rcgu.o) : error LNK2005: _ZN5alloc4sync32arcinner_layout_for_value_layout17h1713bb3a5c22b58eE already defined in static.lib(static.alloc-47499d42920da425.alloc.3d8bda2084a76de4-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core3num23from_str_radix_panic_rt17h09fb81cdd7ecfcedE already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core3num20from_str_radix_panic17hfded7590635429f8E already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN63_$LT$core..cell..BorrowMutError$u20$as$u20$core..fmt..Debug$GT$3fmt17ha8fe9667685726adE already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core4cell22panic_already_borrowed17h095d34830450ba60E already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core6option13unwrap_failed17h9b84e09b113862d2E already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core6option13expect_failed17haa025fff87318a32E already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN70_$LT$core..panic..location..Location$u20$as$u20$core..fmt..Display$GT$3fmt17h1c2d9d42bf9bf7b6E already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN73_$LT$core..panic..panic_info..PanicInfo$u20$as$u20$core..fmt..Display$GT$3fmt17h44aee2cc46df87cbE already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core9panicking9panic_fmt17hffb095124efd0a90E already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core9panicking18panic_nounwind_fmt17h3f471fb8cdd2dbb1E already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core9panicking5panic17h8518909e0ec9875bE already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core9panicking14panic_nounwind17h517c4792a4a42160E already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core9panicking18panic_bounds_check17h7c188e473e257eabE already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core9panicking19panic_cannot_unwind17h0e2a6821f8410fbfE already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core9panicking19assert_failed_inner17h3777c311397a03cdE already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core6result13unwrap_failed17h77060c222a1dc3baE already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN68_$LT$core..fmt..builders..PadAdapter$u20$as$u20$core..fmt..Write$GT$9write_str17hdda335cf531ebef1E already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN68_$LT$core..fmt..builders..PadAdapter$u20$as$u20$core..fmt..Write$GT$10write_char17hc8fd98a001a71ee4E already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core3fmt8builders11DebugStruct5field17h17b6f00df7d4ab9aE already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core3fmt8builders10DebugTuple5field17ha70d403e57ea722aE already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core3fmt8builders8DebugSet5entry17h952eb53f0e1633f1E already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core3fmt8builders9DebugList6finish17h360ef797aa451479E already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN59_$LT$core..fmt..Arguments$u20$as$u20$core..fmt..Display$GT$3fmt17h43e4326a921c1e1aE already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core3fmt5write17h0bc6f6ba474e2f31E already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core3fmt9Formatter12pad_integral17h5e3faa89a672b3c4E already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core3fmt9Formatter3pad17hd4149da2cc6505feE already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core3fmt9Formatter9write_str17h286ab1437a1dd885E already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core3fmt9Formatter26debug_struct_field1_finish17hd507fb698003f94dE already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core3fmt9Formatter26debug_struct_field2_finish17he04cbee8bd7222edE already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core3fmt9Formatter25debug_tuple_field1_finish17h7b3ff7acfff28c35E already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core3fmt9Formatter10debug_list17h176370d2b3f344f8E already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN57_$LT$core..fmt..Formatter$u20$as$u20$core..fmt..Write$GT$10write_char17hd4cee20764e98a7cE already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN40_$LT$str$u20$as$u20$core..fmt..Debug$GT$3fmt17h29bf846f9d1e146cE already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN42_$LT$str$u20$as$u20$core..fmt..Display$GT$3fmt17h299824f42871ccbaE already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN41_$LT$char$u20$as$u20$core..fmt..Debug$GT$3fmt17h0b790e2621f2f61fE already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN43_$LT$char$u20$as$u20$core..fmt..Display$GT$3fmt17h56a0e93db33c1e97E already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core3fmt17pointer_fmt_inner17h7b9b4c511ec04cf3E already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core5slice6memchr14memchr_aligned17h4b0ef1e14b948a9aE already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core5slice6memchr7memrchr17h34f1d8f4675f037aE already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core5slice5index26slice_start_index_len_fail17h9b90e2443e97643bE already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core5slice5index24slice_end_index_len_fail17hdb3a58d47a790d76E already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core5slice5index22slice_index_order_fail17hcaa8603f264e51c3E already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core3str8converts9from_utf817h3eb536f177e351b4E already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core3str5count14do_count_chars17h63ea4c4cadd82e5cE already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core3str5count23char_count_general_case17h40894f2e285503a5E already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core3str6traits23str_index_overflow_fail17h8350feae41adad96E already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core3str7pattern11StrSearcher3new17h86b0d6217113b394E already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core3str16slice_error_fail17heb690b605274ed1dE already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core3str19slice_error_fail_rt17h2cd2c5eb43d2117dE already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core7unicode9printable12is_printable17hd54602b16d108e9cE already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core3num62_$LT$impl$u20$core..str..traits..FromStr$u20$for$u20$usize$GT$8from_str17h7d1878a371799654E already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core3num21_$LT$impl$u20$u32$GT$14from_str_radix17hf8f7afca1d9c264dE already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core3fmt3num52_$LT$impl$u20$core..fmt..LowerHex$u20$for$u20$i8$GT$3fmt17h623ea3272e09c44aE already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core3fmt3num52_$LT$impl$u20$core..fmt..UpperHex$u20$for$u20$i8$GT$3fmt17hb7b94aa57d8140faE already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core3fmt3num53_$LT$impl$u20$core..fmt..LowerHex$u20$for$u20$i64$GT$3fmt17h375be9d5e4cbc087E already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core3fmt3num53_$LT$impl$u20$core..fmt..UpperHex$u20$for$u20$i64$GT$3fmt17h6017c9d85427276dE already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core3fmt3num3imp51_$LT$impl$u20$core..fmt..Display$u20$for$u20$u8$GT$3fmt17h94880423e6d513cfE already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$i32$GT$3fmt17hcff5348487353385E already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u32$GT$3fmt17hf777d8b0b7b4c65cE already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core3fmt3num3imp52_$LT$impl$u20$core..fmt..Display$u20$for$u20$u64$GT$3fmt17h6aa13d959fbff40aE already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core7unicode12unicode_data2cc6lookup17h120be95c5875e940E already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core7unicode12unicode_data15grapheme_extend11lookup_slow17h04b69c874df7522bE already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core7unicode12unicode_data11white_space14WHITESPACE_MAP17h5b8e2232bb3cf6abE already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core3fmt3num52_$LT$impl$u20$core..fmt..LowerHex$u20$for$u20$u8$GT$3fmt17h8c2f3b9c339361ebE already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core3fmt3num52_$LT$impl$u20$core..fmt..UpperHex$u20$for$u20$u8$GT$3fmt17h44b8ae336a325682E already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core3fmt3num3imp54_$LT$impl$u20$core..fmt..Display$u20$for$u20$usize$GT$3fmt17h8cfc498d4c90441dE already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN57_$LT$core..fmt..Formatter$u20$as$u20$core..fmt..Write$GT$9write_str17h6ea2a03b5db0526cE already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core3fmt8builders9DebugList5entry17hf425ab3a54bcffecE already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core3fmt3num55_$LT$impl$u20$core..fmt..LowerHex$u20$for$u20$usize$GT$3fmt17hbb0e5a209643614aE already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core3fmt3num55_$LT$impl$u20$core..fmt..UpperHex$u20$for$u20$usize$GT$3fmt17hd05a3389a48e0983E already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)
          libcore-66f9258885a5c25f.rlib(core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o) : error LNK2005: _ZN4core3fmt3num53_$LT$impl$u20$core..fmt..LowerHex$u20$for$u20$u64$GT$3fmt17hb51b09c13e4f6086E already defined in static.lib(static.core-66f9258885a5c25f.core.788d601b121ab5d5-cgu.0.rcgu.o.rcgu.o)

@mati865
Copy link
Contributor

mati865 commented Aug 13, 2024

There are also some technical details in msys2/MINGW-packages#21017 that kleisauke linked.

windows-gnu is unaffected because it uses legacy import libraries format.

@ChrisDenton
Copy link
Member

To get back to address /WHOLEARCHIVE case we could either:

  • Filter symbols when building a staticlib
  • Try using COMDAT in generated raw-dylibs (might not work in this situation)

@bjorn3
Copy link
Member

bjorn3 commented Aug 13, 2024

Filter symbols when building a staticlib

Filter in what way?

@ChrisDenton
Copy link
Member

When linking raw dylibs into a staticlib we could exclude the objects containing __NULL_IMPORT_DESCRIPTOR. Except for one.

tgross35 added a commit to tgross35/rust that referenced this issue Aug 17, 2024
Use `ar_archive_writer` for writing COFF import libs on all backends

This is mostly the same as the llvm backend but with the cranelift version copy/pasted in place of the LLVM library.

Also updates ar_archive_writer to 0.4.0 which fixes rust-lang#129020
bors added a commit to rust-lang-ci/rust that referenced this issue Aug 17, 2024
Use `ar_archive_writer` for writing COFF import libs on all backends

This is mostly the same as the llvm backend but with the cranelift version copy/pasted in place of the LLVM library.

Also updates ar_archive_writer to 0.4.0 which fixes rust-lang#129020

try-job: x86_64-msvc
@saethlin saethlin removed the needs-triage This issue may need triage. Remove it if it has been sufficiently triaged. label Aug 20, 2024
jieyouxu added a commit to jieyouxu/rust that referenced this issue Aug 20, 2024
…, r=jieyouxu

Allow rust staticlib to work with MSVC's /WHOLEARCHIVE

This fixes rust-lang#129020 by renaming the `__NULL_IMPORT_DESCRIPTOR` to prevent conflicts.
bors added a commit to rust-lang-ci/rust that referenced this issue Aug 20, 2024
…r=<try>

Allow rust staticlib to work with MSVC's /WHOLEARCHIVE

This fixes rust-lang#129020 by renaming the `__NULL_IMPORT_DESCRIPTOR` to prevent conflicts.

try-job: dist-i686-msvc
bors added a commit to rust-lang-ci/rust that referenced this issue Aug 20, 2024
…r=<try>

Allow rust staticlib to work with MSVC's /WHOLEARCHIVE

This fixes rust-lang#129020 by renaming the `__NULL_IMPORT_DESCRIPTOR` to prevent conflicts.

try-job: dist-i686-msvc
tgross35 added a commit to tgross35/rust that referenced this issue Aug 21, 2024
…, r=jieyouxu

Allow rust staticlib to work with MSVC's /WHOLEARCHIVE

This fixes rust-lang#129020 by renaming the `__NULL_IMPORT_DESCRIPTOR` to prevent conflicts.

try-job: dist-i686-msvc
tgross35 added a commit to tgross35/rust that referenced this issue Aug 21, 2024
…, r=jieyouxu

Allow rust staticlib to work with MSVC's /WHOLEARCHIVE

This fixes rust-lang#129020 by renaming the `__NULL_IMPORT_DESCRIPTOR` to prevent conflicts.

try-job: dist-i686-msvc
tgross35 added a commit to tgross35/rust that referenced this issue Aug 21, 2024
…, r=jieyouxu

Allow rust staticlib to work with MSVC's /WHOLEARCHIVE

This fixes rust-lang#129020 by renaming the `__NULL_IMPORT_DESCRIPTOR` to prevent conflicts.

try-job: dist-i686-msvc
bors added a commit to rust-lang-ci/rust that referenced this issue Aug 21, 2024
…r=jieyouxu

Allow rust staticlib to work with MSVC's /WHOLEARCHIVE

This fixes rust-lang#129020 by renaming the `__NULL_IMPORT_DESCRIPTOR` to prevent conflicts.

try-job: dist-i686-msvc
bors added a commit to rust-lang-ci/rust that referenced this issue Aug 22, 2024
…r=jieyouxu

Allow rust staticlib to work with MSVC's /WHOLEARCHIVE

This fixes rust-lang#129020 by renaming the `__NULL_IMPORT_DESCRIPTOR` to prevent conflicts.

try-job: dist-i686-msvc
jieyouxu added a commit to jieyouxu/rust that referenced this issue Aug 22, 2024
…, r=jieyouxu

Allow rust staticlib to work with MSVC's /WHOLEARCHIVE

This fixes rust-lang#129020 by renaming the `__NULL_IMPORT_DESCRIPTOR` to prevent conflicts.

try-job: dist-i686-msvc
tgross35 added a commit to tgross35/rust that referenced this issue Aug 22, 2024
…, r=jieyouxu

Allow rust staticlib to work with MSVC's /WHOLEARCHIVE

This fixes rust-lang#129020 by renaming the `__NULL_IMPORT_DESCRIPTOR` to prevent conflicts.

try-job: dist-i686-msvc
@bors bors closed this as completed in 5ad98b4 Aug 22, 2024
TobiasFella added a commit to quotient-im/libQuotient that referenced this issue Sep 1, 2024
TobiasFella added a commit to quotient-im/libQuotient that referenced this issue Sep 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-linkage Area: linking into static, shared libraries and binaries C-bug Category: This is a bug. I-prioritize Issue: Indicates that prioritization has been requested for this issue. O-windows-msvc Toolchain: MSVC, Operating system: Windows regression-from-stable-to-stable Performance or correctness regression from one stable version to another. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

9 participants