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

link.exe fail on Windows with MSVC involving logging and generic struct #28169

Closed
alexbool opened this issue Sep 2, 2015 · 1 comment
Closed
Labels
O-windows Operating system: Windows

Comments

@alexbool
Copy link
Contributor

alexbool commented Sep 2, 2015

$ cargo build
   Compiling libc v0.1.10
   Compiling log v0.3.2
   Compiling link-crash v0.1.0 (file:///C:/Users/%D0%90%D0%BB%D0%B5%D0%BA%D1%81%D0%B0%D0%BD%D0%B4%D1%80/Document
s/link-crash)
error: linking with `link.exe` failed: exit code: 1120
note: "C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC/bin\\link.exe" "/LIBPATH:C:\\Program Files (x86
)\\Microsoft Visual Studio 14.0\\VC/lib\\" "/LIBPATH:C:\\Program Files (x86)\\Windows Kits\\10\\Lib\\10.0.10150.
0\\ucrt\\x86" "/LIBPATH:C:\\Program Files (x86)\\Windows Kits\\8.1\\Lib\\winv6.3\\um\\x86" "/NOLOGO" "/NXCOMPAT"
 "/LIBPATH:C:\\Program Files\\rust-nightly-i686-pc-windows-msvc\\rustc\\bin\\rustlib\\i686-pc-windows-msvc\\lib"
 "C:\\Users\\\u{410}\u{43b}\u{435}\u{43a}\u{441}\u{430}\u{43d}\u{434}\u{440}\\Documents\\link-crash\\target\\deb
ug\\link_crash.0.o" "/OUT:C:\\Users\\\u{410}\u{43b}\u{435}\u{43a}\u{441}\u{430}\u{43d}\u{434}\u{440}\\Documents\
\link-crash\\target\\debug\\link_crash.exe" "/OPT:REF,ICF" "/DEBUG" "C:\\Users\\\u{410}\u{43b}\u{435}\u{43a}\u{4
41}\u{430}\u{43d}\u{434}\u{440}\\Documents\\link-crash\\target\\debug\\liblink_crash.rlib" "C:\\Users\\\u{410}\u
{43b}\u{435}\u{43a}\u{441}\u{430}\u{43d}\u{434}\u{440}\\Documents\\link-crash\\target\\debug\\deps\\liblog-f18a3
e885170bd3f.rlib" "C:\\Users\\\u{410}\u{43b}\u{435}\u{43a}\u{441}\u{430}\u{43d}\u{434}\u{440}\\Documents\\link-c
rash\\target\\debug\\deps\\liblibc-144c435538abd757.rlib" "C:\\Program Files\\rust-nightly-i686-pc-windows-msvc\
\rustc\\bin\\rustlib\\i686-pc-windows-msvc\\lib\\libstd-35017696.rlib" "C:\\Program Files\\rust-nightly-i686-pc-
windows-msvc\\rustc\\bin\\rustlib\\i686-pc-windows-msvc\\lib\\libcollections-35017696.rlib" "C:\\Program Files\\
rust-nightly-i686-pc-windows-msvc\\rustc\\bin\\rustlib\\i686-pc-windows-msvc\\lib\\librustc_unicode-35017696.rli
b" "C:\\Program Files\\rust-nightly-i686-pc-windows-msvc\\rustc\\bin\\rustlib\\i686-pc-windows-msvc\\lib\\libran
d-35017696.rlib" "C:\\Program Files\\rust-nightly-i686-pc-windows-msvc\\rustc\\bin\\rustlib\\i686-pc-windows-msv
c\\lib\\liballoc-35017696.rlib" "C:\\Program Files\\rust-nightly-i686-pc-windows-msvc\\rustc\\bin\\rustlib\\i686
-pc-windows-msvc\\lib\\liballoc_system-35017696.rlib" "C:\\Program Files\\rust-nightly-i686-pc-windows-msvc\\rus
tc\\bin\\rustlib\\i686-pc-windows-msvc\\lib\\liblibc-35017696.rlib" "C:\\Program Files\\rust-nightly-i686-pc-win
dows-msvc\\rustc\\bin\\rustlib\\i686-pc-windows-msvc\\lib\\libcore-35017696.rlib" "/LIBPATH:C:\\Users\\\u{410}\u
{43b}\u{435}\u{43a}\u{441}\u{430}\u{43d}\u{434}\u{440}\\Documents\\link-crash\\target\\debug" "/LIBPATH:C:\\User
s\\\u{410}\u{43b}\u{435}\u{43a}\u{441}\u{430}\u{43d}\u{434}\u{440}\\Documents\\link-crash\\target\\debug\\deps"
"/LIBPATH:C:\\Program Files\\rust-nightly-i686-pc-windows-msvc\\rustc\\bin\\rustlib\\i686-pc-windows-msvc\\lib"
"/LIBPATH:C:\\Users\\\u{410}\u{43b}\u{435}\u{43a}\u{441}\u{430}\u{43d}\u{434}\u{440}\\Documents\\link-crash\\.ru
st\\bin\\i686-pc-windows-msvc" "/LIBPATH:C:\\Users\\\u{410}\u{43b}\u{435}\u{43a}\u{441}\u{430}\u{43d}\u{434}\u{4
40}\\Documents\\link-crash\\bin\\i686-pc-windows-msvc" "kernel32.lib" "shell32.lib" "msvcrt.lib" "ws2_32.lib" "u
serenv.lib" "advapi32.lib" "kernel32.lib" "shell32.lib" "msvcrt.lib" "compiler-rt.lib"
Could not compile `link-crash`.

To learn more, run the command again with --verbose.
$ rustc -vV
rustc 1.4.0-nightly (f3f23bf9c 2015-08-30)
binary: rustc
commit-hash: f3f23bf9c5ee16dab8c25bb5d301d689fbbe0cf1
commit-date: 2015-08-30
host: i686-pc-windows-msvc
release: 1.4.0-nightly

Here is the minimal test case:

  • Cargo.toml:
[package]
name = "link-crash"
version = "0.1.0"
authors = ["Alexander Bulaev <[email protected]>"]

[dependencies]
log = "*"
  • src/lib.rs:
#[macro_use]
extern crate log;

use std::fmt::Debug;

pub struct Logger<E: Debug> {
    field: E,
}

impl<E: Debug> Logger<E> {
    pub fn new(field: E) -> Logger<E> {
        Logger {
            field: field
        }
    }

    pub fn do_log(&self) {
        info!("This is the message: {:?}", self.field);
    }
}
  • src/main.rs:
extern crate link_crash;

fn main() {
    link_crash::Logger::new("123").do_log();
}
@alexbool alexbool changed the title link.exe fails on Windows with MSVC involving logging and generic struct link.exe fail on Windows with MSVC involving logging and generic struct Sep 2, 2015
@steveklabnik steveklabnik added the O-windows Operating system: Windows label Sep 2, 2015
@alexcrichton
Copy link
Member

I believe that this is a duplicate of #27438, so closing in favor of that, but thanks for the report!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
O-windows Operating system: Windows
Projects
None yet
Development

No branches or pull requests

3 participants