about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFelix S. Klock II <pnkfelix@pnkfx.org>2015-12-08 14:56:22 +0100
committerFelix S. Klock II <pnkfelix@pnkfx.org>2015-12-08 14:56:22 +0100
commit31d383fcd2651d730187c0dc10bcc950473e48b5 (patch)
tree877427c967272e76ae0a8aa655d3bdb9c578ecfa
parent4dbdfb493357427a0f94ce09badef581f5d62bbd (diff)
downloadrust-31d383fcd2651d730187c0dc10bcc950473e48b5.tar.gz
rust-31d383fcd2651d730187c0dc10bcc950473e48b5.zip
Remove STARTUP_OBJS from Makefile deps for non win-gnu targets.
The `rsbegin.o` and `rsend.o` build products should not be generated
on non WinGnu platforms.

This is another path to resolving #30063 for non win-gnu targets.
(And it won't require a snapshot, unlike PR #30208.)
-rw-r--r--mk/cfg/i686-pc-windows-gnu.mk1
-rw-r--r--mk/cfg/x86_64-pc-windows-gnu.mk1
-rw-r--r--mk/target.mk2
3 files changed, 4 insertions, 0 deletions
diff --git a/mk/cfg/i686-pc-windows-gnu.mk b/mk/cfg/i686-pc-windows-gnu.mk
index 67453d8ca79..3426b30aeeb 100644
--- a/mk/cfg/i686-pc-windows-gnu.mk
+++ b/mk/cfg/i686-pc-windows-gnu.mk
@@ -24,3 +24,4 @@ CFG_RUN_TARG_i686-pc-windows-gnu=$(call CFG_RUN_i686-pc-windows-gnu,,$(2))
 CFG_GNU_TRIPLE_i686-pc-windows-gnu := i686-w64-mingw32
 CFG_THIRD_PARTY_OBJECTS_i686-pc-windows-gnu := crt2.o dllcrt2.o
 CFG_INSTALLED_OBJECTS_i686-pc-windows-gnu := crt2.o dllcrt2.o rsbegin.o rsend.o
+CFG_RUSTRT_HAS_STARTUP_OBJS_i686-pc-windows-gnu := 1
diff --git a/mk/cfg/x86_64-pc-windows-gnu.mk b/mk/cfg/x86_64-pc-windows-gnu.mk
index fc5001c3b02..f0732d08c71 100644
--- a/mk/cfg/x86_64-pc-windows-gnu.mk
+++ b/mk/cfg/x86_64-pc-windows-gnu.mk
@@ -24,3 +24,4 @@ CFG_RUN_TARG_x86_64-pc-windows-gnu=$(call CFG_RUN_x86_64-pc-windows-gnu,,$(2))
 CFG_GNU_TRIPLE_x86_64-pc-windows-gnu := x86_64-w64-mingw32
 CFG_THIRD_PARTY_OBJECTS_x86_64-pc-windows-gnu := crt2.o dllcrt2.o
 CFG_INSTALLED_OBJECTS_x86_64-pc-windows-gnu := crt2.o dllcrt2.o rsbegin.o rsend.o
+CFG_RUSTRT_HAS_STARTUP_OBJS_x86_64-pc-windows-gnu := 1
diff --git a/mk/target.mk b/mk/target.mk
index a88f0a33c07..f1b5f9e3155 100644
--- a/mk/target.mk
+++ b/mk/target.mk
@@ -152,12 +152,14 @@ $$(TLIB$(1)_T_$(2)_H_$(3))/$(4).o: \
 	@$$(call E, rustc: $$@)
 	$$(STAGE$(1)_T_$(2)_H_$(3)) --emit=obj -o $$@ $$<
 
+ifeq ($$(CFG_RUSTRT_HAS_STARTUP_OBJS_$(2)), 1)
 # Add dependencies on Rust startup objects to all crates that depend on core.
 # This ensures that they are built after core (since they depend on it),
 # but before everything else (since they are needed for linking dylib crates).
 $$(foreach crate, $$(TARGET_CRATES), \
 	$$(if $$(findstring core,$$(DEPS_$$(crate))), \
 		$$(TLIB$(1)_T_$(2)_H_$(3))/stamp.$$(crate))) : $$(TLIB$(1)_T_$(2)_H_$(3))/$(4).o
+endif
 
 endef