From 7e68cf89275e77a2a2877e829122413c55280c41 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Miku=C5=82a?= Date: Sat, 11 Apr 2020 13:22:21 +0200 Subject: [PATCH 1/2] [windows] Add testcase to make sure executables are self-contained --- .../windows-binary-no-external-deps/Makefile | 9 +++++++++ .../windows-binary-no-external-deps/hello.rs | 3 +++ 2 files changed, 12 insertions(+) create mode 100644 src/test/run-make-fulldeps/windows-binary-no-external-deps/Makefile create mode 100644 src/test/run-make-fulldeps/windows-binary-no-external-deps/hello.rs diff --git a/src/test/run-make-fulldeps/windows-binary-no-external-deps/Makefile b/src/test/run-make-fulldeps/windows-binary-no-external-deps/Makefile new file mode 100644 index 0000000000000..f6adb6d76279d --- /dev/null +++ b/src/test/run-make-fulldeps/windows-binary-no-external-deps/Makefile @@ -0,0 +1,9 @@ +-include ../tools.mk + +# only-windows + +PATH=$(SYSTEMROOT)/system32 + +all: + $(RUSTC) hello.rs + $(TMPDIR)/hello.exe diff --git a/src/test/run-make-fulldeps/windows-binary-no-external-deps/hello.rs b/src/test/run-make-fulldeps/windows-binary-no-external-deps/hello.rs new file mode 100644 index 0000000000000..47ad8c634112b --- /dev/null +++ b/src/test/run-make-fulldeps/windows-binary-no-external-deps/hello.rs @@ -0,0 +1,3 @@ +fn main() { + println!("Hello World!"); +} From a32e3408bf061787d81eac9d8bfdd5874efd56a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mateusz=20Miku=C5=82a?= Date: Sun, 12 Apr 2020 18:11:11 +0200 Subject: [PATCH 2/2] [windows-gnu] Link pthread statically --- src/librustc_target/spec/windows_base.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/librustc_target/spec/windows_base.rs b/src/librustc_target/spec/windows_base.rs index 34fcdf251b89b..392b9f4999143 100644 --- a/src/librustc_target/spec/windows_base.rs +++ b/src/librustc_target/spec/windows_base.rs @@ -57,9 +57,9 @@ pub fn opts() -> TargetOptions { // binaries to be redistributed without the libgcc_s-dw2-1.dll // dependency, but unfortunately break unwinding across DLL // boundaries when unwinding across FFI boundaries. - "-lgcc".to_string(), "-lgcc_eh".to_string(), - "-lpthread".to_string(), + "-l:libpthread.a".to_string(), + "-lgcc".to_string(), // libpthread depends on libmsvcrt, so we need to link it *again*. "-lmsvcrt".to_string(), "-lkernel32".to_string(),