Skip to content

Commit 2bc301f

Browse files
committed
auto merge of #5264 : brson/rust/cross7, r=brson
Follow up to #5242. All credit to @yichoi.
2 parents 194c27b + 81e3702 commit 2bc301f

27 files changed

+977
-755
lines changed

Diff for: .gitmodules

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,4 +3,4 @@
33
url = git://github.com/brson/llvm.git
44
[submodule "src/libuv"]
55
path = src/libuv
6-
url = git://github.com/joyent/libuv.git
6+
url = git://github.com/brson/libuv.git

Diff for: Makefile.in

+127-94
Original file line numberDiff line numberDiff line change
@@ -70,16 +70,22 @@ include config.mk
7070
ALL_OBJ_FILES :=
7171

7272
MKFILE_DEPS := config.stamp $(call rwildcard,$(CFG_SRC_DIR)mk/,*)
73-
NON_HOST_TRIPLES = $(filter-out $(CFG_HOST_TRIPLE),$(CFG_TARGET_TRIPLES))
73+
NON_BUILD_HOST_TRIPLES = $(filter-out $(CFG_BUILD_TRIPLE),$(CFG_HOST_TRIPLES))
74+
NON_BUILD_TARGET_TRIPLES = $(filter-out $(CFG_BUILD_TRIPLE),$(CFG_TARGET_TRIPLES))
7475

7576
ifneq ($(MAKE_RESTARTS),)
7677
CFG_INFO := $(info cfg: make restarts: $(MAKE_RESTARTS))
7778
endif
7879

79-
CFG_INFO := $(info cfg: shell host triple $(CFG_HOST_TRIPLE))
80+
CFG_INFO := $(info cfg: build triple $(CFG_BUILD_TRIPLE))
81+
CFG_INFO := $(info cfg: host triples $(CFG_HOST_TRIPLES))
82+
CFG_INFO := $(info cfg: target triples $(CFG_TARGET_TRIPLES))
8083

81-
ifneq ($(wildcard $(NON_HOST_TRIPLES)),)
82-
CFG_INFO := $(info cfg: non host triples $(NON_HOST_TRIPLES))
84+
ifneq ($(wildcard $(NON_BUILD_HOST_TRIPLES)),)
85+
CFG_INFO := $(info cfg: non-build host triples $(NON_BUILD_HOST_TRIPLES))
86+
endif
87+
ifneq ($(wildcard $(NON_BUILD_TARGET_TRIPLES)),)
88+
CFG_INFO := $(info cfg: non-build target triples $(NON_BUILD_TARGET_TRIPLES))
8389
endif
8490

8591
CFG_RUSTC_FLAGS := $(RUSTFLAGS)
@@ -124,37 +130,6 @@ else
124130
CFG_VALGRIND_COMPILE :=
125131
endif
126132

127-
CFG_RUNTIME :=$(call CFG_LIB_NAME,rustrt)
128-
CFG_RUSTLLVM :=$(call CFG_LIB_NAME,rustllvm)
129-
CFG_CORELIB :=$(call CFG_LIB_NAME,core)
130-
CFG_STDLIB :=$(call CFG_LIB_NAME,std)
131-
CFG_LIBRUSTC :=$(call CFG_LIB_NAME,rustc)
132-
CFG_LIBSYNTAX :=$(call CFG_LIB_NAME,syntax)
133-
CFG_LIBFUZZER :=$(call CFG_LIB_NAME,fuzzer)
134-
CFG_LIBRUSTPKG :=$(call CFG_LIB_NAME,rustpkg)
135-
CFG_LIBRUSTDOC :=$(call CFG_LIB_NAME,rustdoc)
136-
CFG_LIBRUSTI :=$(call CFG_LIB_NAME,rusti)
137-
CFG_LIBRUST :=$(call CFG_LIB_NAME,rust)
138-
139-
STDLIB_GLOB :=$(call CFG_LIB_GLOB,std)
140-
CORELIB_GLOB :=$(call CFG_LIB_GLOB,core)
141-
LIBRUSTC_GLOB :=$(call CFG_LIB_GLOB,rustc)
142-
LIBSYNTAX_GLOB :=$(call CFG_LIB_GLOB,syntax)
143-
LIBFUZZER_GLOB :=$(call CFG_LIB_GLOB,fuzzer)
144-
LIBRUSTPKG_GLOB :=$(call CFG_LIB_GLOB,rustpkg)
145-
LIBRUSTDOC_GLOB :=$(call CFG_LIB_GLOB,rustdoc)
146-
LIBRUSTI_GLOB :=$(call CFG_LIB_GLOB,rusti)
147-
LIBRUST_GLOB :=$(call CFG_LIB_GLOB,rust)
148-
STDLIB_DSYM_GLOB :=$(call CFG_LIB_DSYM_GLOB,std)
149-
CORELIB_DSYM_GLOB :=$(call CFG_LIB_DSYM_GLOB,core)
150-
LIBRUSTC_DSYM_GLOB :=$(call CFG_LIB_DSYM_GLOB,rustc)
151-
LIBSYNTAX_DSYM_GLOB :=$(call CFG_LIB_DSYM_GLOB,syntax)
152-
LIBFUZZER_DSYM_GLOB :=$(call CFG_LIB_DSYM_GLOB,fuzzer)
153-
LIBRUSTPKG_DSYM_GLOB :=$(call CFG_LIB_DSYM_GLOB,rustpkg)
154-
LIBRUSTDOC_DSYM_GLOB :=$(call CFG_LIB_DSYM_GLOB,rustdoc)
155-
LIBRUSTI_DSYM_GLOB :=$(call CFG_LIB_DSYM_GLOB,rusti)
156-
LIBRUST_DSYM_GLOB :=$(call CFG_LIB_DSYM_GLOB,rust)
157-
158133
# version-string calculation
159134
CFG_GIT_DIR := $(CFG_SRC_DIR).git
160135
CFG_RELEASE = 0.6
@@ -193,7 +168,12 @@ else
193168
endif
194169

195170
S := $(CFG_SRC_DIR)
196-
X := $(CFG_EXE_SUFFIX)
171+
172+
define DEF_X
173+
X_$(1) := $(CFG_EXE_SUFFIX_$(1))
174+
endef
175+
$(foreach target,$(CFG_TARGET_TRIPLES),\
176+
$(eval $(call DEF_X,$(target))))
197177

198178
# Look in doc and src dirs.
199179
VPATH := $(S)doc $(S)src
@@ -209,6 +189,49 @@ GENERATED :=
209189
%:: s.%
210190
%:: SCCS/s.%
211191

192+
193+
######################################################################
194+
# Crates
195+
######################################################################
196+
197+
define DEF_LIBS
198+
199+
CFG_RUNTIME_$(1) :=$(call CFG_LIB_NAME_$(1),rustrt)
200+
CFG_RUSTLLVM_$(1) :=$(call CFG_LIB_NAME_$(1),rustllvm)
201+
CFG_CORELIB_$(1) :=$(call CFG_LIB_NAME_$(1),core)
202+
CFG_STDLIB_$(1) :=$(call CFG_LIB_NAME_$(1),std)
203+
CFG_LIBRUSTC_$(1) :=$(call CFG_LIB_NAME_$(1),rustc)
204+
CFG_LIBSYNTAX_$(1) :=$(call CFG_LIB_NAME_$(1),syntax)
205+
CFG_LIBFUZZER_$(1) :=$(call CFG_LIB_NAME_$(1),fuzzer)
206+
CFG_LIBRUSTPKG_$(1) :=$(call CFG_LIB_NAME_$(1),rustpkg)
207+
CFG_LIBRUSTDOC_$(1) :=$(call CFG_LIB_NAME_$(1),rustdoc)
208+
CFG_LIBRUSTI_$(1) :=$(call CFG_LIB_NAME_$(1),rusti)
209+
CFG_LIBRUST_$(1) :=$(call CFG_LIB_NAME_$(1),rust)
210+
211+
STDLIB_GLOB_$(1) :=$(call CFG_LIB_GLOB_$(1),std)
212+
CORELIB_GLOB_$(1) :=$(call CFG_LIB_GLOB_$(1),core)
213+
LIBRUSTC_GLOB_$(1) :=$(call CFG_LIB_GLOB_$(1),rustc)
214+
LIBSYNTAX_GLOB_$(1) :=$(call CFG_LIB_GLOB_$(1),syntax)
215+
LIBFUZZER_GLOB_$(1) :=$(call CFG_LIB_GLOB_$(1),fuzzer)
216+
LIBRUSTPKG_GLOB_$(1) :=$(call CFG_LIB_GLOB_$(1),rustpkg)
217+
LIBRUSTDOC_GLOB_$(1) :=$(call CFG_LIB_GLOB_$(1),rustdoc)
218+
LIBRUSTI_GLOB_$(1) :=$(call CFG_LIB_GLOB_$(1),rusti)
219+
LIBRUST_GLOB_$(1) :=$(call CFG_LIB_GLOB_$(1),rust)
220+
STDLIB_DSYM_GLOB_$(1) :=$(call CFG_LIB_DSYM_GLOB_$(1),std)
221+
CORELIB_DSYM_GLOB_$(1) :=$(call CFG_LIB_DSYM_GLOB_$(1),core)
222+
LIBRUSTC_DSYM_GLOB_$(1) :=$(call CFG_LIB_DSYM_GLOB_$(1),rustc)
223+
LIBSYNTAX_DSYM_GLOB_$(1) :=$(call CFG_LIB_DSYM_GLOB_$(1),syntax)
224+
LIBFUZZER_DSYM_GLOB_$(1) :=$(call CFG_LIB_DSYM_GLOB_$(1),fuzzer)
225+
LIBRUSTPKG_DSYM_GLOB_$(1) :=$(call CFG_LIB_DSYM_GLOB_$(1),rustpkg)
226+
LIBRUSTDOC_DSYM_GLOB_$(1) :=$(call CFG_LIB_DSYM_GLOB_$(1),rustdoc)
227+
LIBRUSTI_DSYM_GLOB_$(1) :=$(call CFG_LIB_DSYM_GLOB_$(1),rusti)
228+
LIBRUST_DSYM_GLOB_$(1) :=$(call CFG_LIB_DSYM_GLOB_$(1),rust)
229+
230+
endef
231+
232+
$(foreach target,$(CFG_TARGET_TRIPLES),\
233+
$(eval $(call DEF_LIBS,$(target))))
234+
212235
######################################################################
213236
# Core library variables
214237
######################################################################
@@ -254,8 +277,8 @@ CFG_LLVM_BUILD_DIR_$(1):=$$(CFG_LLVM_BUILD_DIR_$(subst -,_,$(1)))
254277
CFG_LLVM_INST_DIR_$(1):=$$(CFG_LLVM_INST_DIR_$(subst -,_,$(1)))
255278

256279
# Any rules that depend on LLVM should depend on LLVM_CONFIG
257-
LLVM_CONFIG_$(1):=$$(CFG_LLVM_INST_DIR_$(1))/bin/llvm-config$$(X)
258-
LLVM_MC_$(1):=$$(CFG_LLVM_INST_DIR_$(1))/bin/llvm-mc$$(X)
280+
LLVM_CONFIG_$(1):=$$(CFG_LLVM_INST_DIR_$(1))/bin/llvm-config$$(X_$(1))
281+
LLVM_MC_$(1):=$$(CFG_LLVM_INST_DIR_$(1))/bin/llvm-mc$$(X_$(1))
259282
LLVM_VERSION_$(1)=$$(shell "$$(LLVM_CONFIG_$(1))" --version)
260283
LLVM_BINDIR_$(1)=$$(shell "$$(LLVM_CONFIG_$(1))" --bindir)
261284
LLVM_INCDIR_$(1)=$$(shell "$$(LLVM_CONFIG_$(1))" --includedir)
@@ -267,13 +290,13 @@ LLVM_LDFLAGS_$(1)=$$(shell "$$(LLVM_CONFIG_$(1))" --ldflags)
267290
LLVM_CXXFLAGS_$(1)=$$(subst -I, -iquote , $$(shell "$$(LLVM_CONFIG_$(1))" --cxxflags))
268291
LLVM_HOST_TRIPLE_$(1)=$$(shell "$$(LLVM_CONFIG_$(1))" --host-target)
269292

270-
LLVM_AS_$(1)=$$(CFG_LLVM_INST_DIR_$(1))/bin/llvm-as$$(X)
271-
LLC_$(1)=$$(CFG_LLVM_INST_DIR_$(1))/bin/llc$$(X)
293+
LLVM_AS_$(1)=$$(CFG_LLVM_INST_DIR_$(1))/bin/llvm-as$$(X_$(1))
294+
LLC_$(1)=$$(CFG_LLVM_INST_DIR_$(1))/bin/llc$$(X_$(1))
272295

273296
endef
274297

275-
$(foreach target,$(CFG_TARGET_TRIPLES), \
276-
$(eval $(call DEF_LLVM_VARS,$(target))))
298+
$(foreach host,$(CFG_HOST_TRIPLES), \
299+
$(eval $(call DEF_LLVM_VARS,$(host))))
277300

278301
######################################################################
279302
# Exports for sub-utilities
@@ -285,7 +308,7 @@ $(foreach target,$(CFG_TARGET_TRIPLES), \
285308
export CFG_SRC_DIR
286309
export CFG_BUILD_DIR
287310
export CFG_VERSION
288-
export CFG_HOST_TRIPLE
311+
export CFG_BUILD_TRIPLE
289312
export CFG_LLVM_ROOT
290313
export CFG_ENABLE_MINGW_CROSS
291314
export CFG_PREFIX
@@ -332,26 +355,26 @@ ifdef CFG_DISABLE_SHAREDSTD
332355
$$(TLIB$(1)_T_$(2)_H_$(3))/librustc.rlib
333356
else
334357
HCORELIB_DEFAULT$(1)_H_$(3) = \
335-
$$(HLIB$(1)_H_$(3))/$(CFG_CORELIB)
358+
$$(HLIB$(1)_H_$(3))/$(CFG_CORELIB_$(3))
336359
TCORELIB_DEFAULT$(1)_T_$(2)_H_$(3) = \
337-
$$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_CORELIB)
360+
$$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_CORELIB_$(2))
338361

339362
HSTDLIB_DEFAULT$(1)_H_$(3) = \
340-
$$(HLIB$(1)_H_$(3))/$(CFG_STDLIB)
363+
$$(HLIB$(1)_H_$(3))/$(CFG_STDLIB_$(3))
341364
TSTDLIB_DEFAULT$(1)_T_$(2)_H_$(3) = \
342-
$$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_STDLIB)
365+
$$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_STDLIB_$(2))
343366

344367
HLIBRUSTC_DEFAULT$(1)_H_$(3) = \
345-
$$(HLIB$(1)_H_$(3))/$(CFG_LIBRUSTC)
368+
$$(HLIB$(1)_H_$(3))/$(CFG_LIBRUSTC_$(3))
346369
TLIBRUSTC_DEFAULT$(1)_T_$(2)_H_$(3) = \
347-
$$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUSTC)
370+
$$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUSTC_$(2))
348371
endif
349372

350373
# Preqrequisites for using the stageN compiler
351374
HSREQ$(1)_H_$(3) = \
352-
$$(HBIN$(1)_H_$(3))/rustc$$(X) \
353-
$$(HLIB$(1)_H_$(3))/$$(CFG_RUNTIME) \
354-
$$(HLIB$(1)_H_$(3))/$$(CFG_RUSTLLVM) \
375+
$$(HBIN$(1)_H_$(3))/rustc$$(X_$(3)) \
376+
$$(HLIB$(1)_H_$(3))/$(CFG_RUNTIME_$(3)) \
377+
$$(HLIB$(1)_H_$(3))/$(CFG_RUSTLLVM_$(3)) \
355378
$$(HCORELIB_DEFAULT$(1)_H_$(3)) \
356379
$$(HSTDLIB_DEFAULT$(1)_H_$(3)) \
357380
$$(HLIBSYNTAX_DEFAULT$(1)_H_$(3)) \
@@ -361,37 +384,37 @@ HSREQ$(1)_H_$(3) = \
361384
# Prerequisites for using the stageN compiler to build target artifacts
362385
TSREQ$(1)_T_$(2)_H_$(3) = \
363386
$$(HSREQ$(1)_H_$(3)) \
364-
$$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_RUNTIME) \
387+
$$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_RUNTIME_$(2)) \
365388
$$(TLIB$(1)_T_$(2)_H_$(3))/libmorestack.a
366389

367390
# Prerequisites for a working stageN compiler and libraries, for a specific target
368391
SREQ$(1)_T_$(2)_H_$(3) = \
369392
$$(TSREQ$(1)_T_$(2)_H_$(3)) \
370-
$$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_CORELIB) \
371-
$$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_STDLIB)
393+
$$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_CORELIB_$(2)) \
394+
$$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_STDLIB_$(2))
372395

373396
# Prerequisites for a working stageN compiler and libraries, for a specific target
374397
CSREQ$(1)_T_$(2)_H_$(3) = \
375398
$$(TSREQ$(1)_T_$(2)_H_$(3)) \
376-
$$(HBIN$(1)_H_$(3))/fuzzer$$(X) \
377-
$$(HBIN$(1)_H_$(3))/rustpkg$$(X) \
378-
$$(HBIN$(1)_H_$(3))/rustdoc$$(X) \
379-
$$(HBIN$(1)_H_$(3))/rusti$$(X) \
380-
$$(HBIN$(1)_H_$(3))/rust$$(X) \
381-
$$(HLIB$(1)_H_$(3))/$$(CFG_LIBFUZZER) \
382-
$$(HLIB$(1)_H_$(3))/$$(CFG_LIBRUSTPKG) \
383-
$$(HLIB$(1)_H_$(3))/$$(CFG_LIBRUSTDOC) \
384-
$$(HLIB$(1)_H_$(3))/$$(CFG_LIBRUSTI) \
385-
$$(HLIB$(1)_H_$(3))/$$(CFG_LIBRUST) \
386-
$$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_CORELIB) \
387-
$$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_STDLIB) \
388-
$$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_LIBSYNTAX) \
389-
$$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_LIBRUSTC) \
390-
$$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_LIBFUZZER) \
391-
$$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_LIBRUSTPKG) \
392-
$$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_LIBRUSTDOC) \
393-
$$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_LIBRUSTI) \
394-
$$(TLIB$(1)_T_$(2)_H_$(3))/$$(CFG_LIBRUST)
399+
$$(HBIN$(1)_H_$(3))/fuzzer$$(X_$(3)) \
400+
$$(HBIN$(1)_H_$(3))/rustpkg$$(X_$(3)) \
401+
$$(HBIN$(1)_H_$(3))/rustdoc$$(X_$(3)) \
402+
$$(HBIN$(1)_H_$(3))/rusti$$(X_$(3)) \
403+
$$(HBIN$(1)_H_$(3))/rust$$(X_$(3)) \
404+
$$(HLIB$(1)_H_$(3))/$(CFG_LIBFUZZER_$(3)) \
405+
$$(HLIB$(1)_H_$(3))/$(CFG_LIBRUSTPKG_$(3)) \
406+
$$(HLIB$(1)_H_$(3))/$(CFG_LIBRUSTDOC_$(3)) \
407+
$$(HLIB$(1)_H_$(3))/$(CFG_LIBRUSTI_$(3)) \
408+
$$(HLIB$(1)_H_$(3))/$(CFG_LIBRUST_$(3)) \
409+
$$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_CORELIB_$(2)) \
410+
$$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_STDLIB_$(2)) \
411+
$$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBSYNTAX_$(2)) \
412+
$$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUSTC_$(2)) \
413+
$$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBFUZZER_$(2)) \
414+
$$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUSTPKG_$(2)) \
415+
$$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUSTDOC_$(2)) \
416+
$$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUSTI_$(2)) \
417+
$$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUST_$(2))
395418

396419
ifeq ($(1),0)
397420
# Don't run the the stage0 compiler under valgrind - that ship has sailed
@@ -409,28 +432,30 @@ CFGFLAG$(1)_T_$(2)_H_$(3) = stage$(1)
409432
# if you're building a cross config, the host->* parts are
410433
# effectively stage1, since it uses the just-built stage0.
411434
ifeq ($(1),0)
412-
ifneq ($(strip $(CFG_HOST_TRIPLE)),$(strip $(3)))
435+
ifneq ($(strip $(CFG_BUILD_TRIPLE)),$(strip $(3)))
413436
CFGFLAG$(1)_T_$(2)_H_$(3) = stage1
414437
endif
415438
endif
416439

417440
STAGE$(1)_T_$(2)_H_$(3) := \
418-
$$(Q)$$(call CFG_RUN_TARG,$(1), \
441+
$$(Q)$$(call CFG_RUN_TARG_$(3),$(1), \
419442
$$(CFG_VALGRIND_COMPILE$(1)) \
420-
$$(HBIN$(1)_H_$(3))/rustc$$(X) \
443+
$$(HBIN$(1)_H_$(3))/rustc$$(X_$(3)) \
421444
--cfg $$(CFGFLAG$(1)_T_$(2)_H_$(3)) \
422-
$$(CFG_RUSTC_FLAGS) $$(EXTRAFLAGS_STAGE$(1)) --target=$(2))
445+
$$(CFG_RUSTC_FLAGS) $$(EXTRAFLAGS_STAGE$(1)) --target=$(2)) \
446+
$$(RUSTC_FLAGS_$(2))
423447

424448
PERF_STAGE$(1)_T_$(2)_H_$(3) := \
425-
$$(Q)$$(call CFG_RUN_TARG,$(1), \
449+
$$(Q)$$(call CFG_RUN_TARG_$(3),$(1), \
426450
$$(CFG_PERF_TOOL) \
427-
$$(HBIN$(1)_H_$(3))/rustc$$(X) \
451+
$$(HBIN$(1)_H_$(3))/rustc$$(X_$(3)) \
428452
--cfg $$(CFGFLAG$(1)_T_$(2)_H_$(3)) \
429-
$$(CFG_RUSTC_FLAGS) $$(EXTRAFLAGS_STAGE$(1)) --target=$(2))
453+
$$(CFG_RUSTC_FLAGS) $$(EXTRAFLAGS_STAGE$(1)) --target=$(2)) \
454+
$$(RUSTC_FLAGS_$(2))
430455

431456
endef
432457

433-
$(foreach build,$(CFG_TARGET_TRIPLES), \
458+
$(foreach build,$(CFG_HOST_TRIPLES), \
434459
$(eval $(foreach target,$(CFG_TARGET_TRIPLES), \
435460
$(eval $(foreach stage,$(STAGES), \
436461
$(eval $(call SREQ,$(stage),$(target),$(build))))))))
@@ -451,13 +476,13 @@ rustc-stage$(2)-H-$(1): \
451476

452477
endef
453478

454-
$(foreach host,$(CFG_TARGET_TRIPLES), \
479+
$(foreach host,$(CFG_HOST_TRIPLES), \
455480
$(eval $(foreach stage,1 2 3, \
456481
$(eval $(call DEF_RUSTC_STAGE_TARGET,$(host),$(stage))))))
457482

458-
rustc-stage1: rustc-stage1-H-$(CFG_HOST_TRIPLE)
459-
rustc-stage2: rustc-stage2-H-$(CFG_HOST_TRIPLE)
460-
rustc-stage3: rustc-stage3-H-$(CFG_HOST_TRIPLE)
483+
rustc-stage1: rustc-stage1-H-$(CFG_BUILD_TRIPLE)
484+
rustc-stage2: rustc-stage2-H-$(CFG_BUILD_TRIPLE)
485+
rustc-stage3: rustc-stage3-H-$(CFG_BUILD_TRIPLE)
461486

462487
define DEF_RUSTC_TARGET
463488
# $(1) == architecture
@@ -468,12 +493,12 @@ endef
468493
$(foreach host,$(CFG_TARGET_TRIPLES), \
469494
$(eval $(call DEF_RUSTC_TARGET,$(host))))
470495

471-
rustc-stage1: rustc-stage1-H-$(CFG_HOST_TRIPLE)
472-
rustc-stage2: rustc-stage2-H-$(CFG_HOST_TRIPLE)
473-
rustc-stage3: rustc-stage3-H-$(CFG_HOST_TRIPLE)
474-
rustc: rustc-H-$(CFG_HOST_TRIPLE)
496+
rustc-stage1: rustc-stage1-H-$(CFG_BUILD_TRIPLE)
497+
rustc-stage2: rustc-stage2-H-$(CFG_BUILD_TRIPLE)
498+
rustc-stage3: rustc-stage3-H-$(CFG_BUILD_TRIPLE)
499+
rustc: rustc-H-$(CFG_BUILD_TRIPLE)
475500

476-
rustc-H-all: $(foreach host,$(CFG_TARGET_TRIPLES),rustc-H-$(host))
501+
rustc-H-all: $(foreach host,$(CFG_HOST_TRIPLES),rustc-H-$(host))
477502

478503
######################################################################
479504
# Entrypoint rule
@@ -489,19 +514,27 @@ CFG_INFO := $(info cfg: *** stage2 and later will not be built ***)
489514
CFG_INFO := $(info cfg:)
490515

491516
#XXX This is surely busted
492-
all: $(SREQ1$(CFG_HOST_TRIPLE)) $(GENERATED) docs
517+
all: $(SREQ1$(CFG_BUILD_TRIPLE)) $(GENERATED) docs
493518

494519
else
495520

496521
define ALL_TARGET_N
522+
ifneq ($$(findstring $(1),$$(CFG_HOST_TRIPLES)),)
523+
# This is a host
497524
all-target-$(1)-host-$(2): $$(CSREQ2_T_$(1)_H_$(2))
525+
else
526+
# This is a target only
527+
all-target-$(1)-host-$(2): $$(SREQ2_T_$(1)_H_$(2))
528+
endif
498529
endef
499530

500531
$(foreach target,$(CFG_TARGET_TRIPLES), \
501-
$(eval $(call ALL_TARGET_N,$(target),$(CFG_HOST_TRIPLE))))
532+
$(foreach host,$(CFG_HOST_TRIPLES), \
533+
$(eval $(call ALL_TARGET_N,$(target),$(host)))))
502534

503535
ALL_TARGET_RULES = $(foreach target,$(CFG_TARGET_TRIPLES), \
504-
all-target-$(target)-host-$(CFG_HOST_TRIPLE))
536+
$(foreach host,$(CFG_HOST_TRIPLES), \
537+
all-target-$(target)-host-$(host)))
505538

506539
all: $(ALL_TARGET_RULES) $(GENERATED) docs
507540

0 commit comments

Comments
 (0)