Skip to content

Commit

Permalink
Auto merge of #52177 - ljedrz:bare_gcc_warning, r=alexcrichton
Browse files Browse the repository at this point in the history
Warn windows-gnu users that the bundled gcc can't compile

Add a `DO NOT USE THIS gcc.exe FOR COMPILATION.txt` file to `lib\rustlib\*-pc-windows-gnu\bin` folders in `windows-gnu` installations in order to warn against attempting to use the bundled `gcc.exe` as a C compiler. I'm pretty sure that location is usually found manually, so this should be easily noticeable.

This mistake has been made plenty of times and has lead to misunderstandings:
Rust: [Bundled gcc (windows x64) is unable to build any c file](#24418)
gtk-rs:    [Compiling on windows](gtk-rs/gtk#625)
bzip2-rs: [Build failure at gcc level: blocksort.c not found](alexcrichton/bzip2-rs#30)

Alternatives: rename the bundled `gcc.exe` to e.g. `rustc-gcc.exe` or `gcc-linker.exe`. This might require a more comprehensive change or break crates already using it as a linker.

r? @alexcrichton
  • Loading branch information
bors committed Jul 10, 2018
2 parents b3e7d70 + 232e77e commit 77117e3
Showing 1 changed file with 8 additions and 0 deletions.
8 changes: 8 additions & 0 deletions src/bootstrap/dist.rs
Original file line number Diff line number Diff line change
Expand Up @@ -308,6 +308,14 @@ fn make_win_dist(
builder.copy_to_folder(&src, &target_bin_dir);
}

// Warn windows-gnu users that the bundled GCC cannot compile C files
builder.create(
&target_bin_dir.join("GCC-WARNING.txt"),
"gcc.exe contained in this folder cannot be used for compiling C files - it is only\
used as a linker. In order to be able to compile projects containing C code use\
the GCC provided by MinGW or Cygwin."
);

//Copy platform libs to platform-specific lib directory
let target_lib_dir = plat_root.join("lib").join("rustlib").join(target_triple).join("lib");
fs::create_dir_all(&target_lib_dir).expect("creating target_lib_dir failed");
Expand Down

0 comments on commit 77117e3

Please sign in to comment.