about summary refs log tree commit diff
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2013-08-28 17:35:35 -0700
committerbors <bors@rust-lang.org>2013-08-28 17:35:35 -0700
commit26e925a1f01f830f6ca1ff377461a6fab30dc9e6 (patch)
tree8e75034aa10b0c93dc9b6a8fc55829d083139885
parent7971c46c44420f2b72086ff0b8726b1ada308bcc (diff)
parent188a9dd210e5cbc1db6a31992dc298d143d80526 (diff)
downloadrust-26e925a1f01f830f6ca1ff377461a6fab30dc9e6.tar.gz
rust-26e925a1f01f830f6ca1ff377461a6fab30dc9e6.zip
auto merge of #8832 : alexcrichton/rust/fix-libuv-build, r=pcwalton
It turns out that gyp (libuv's new build system) wants x64 for a 64-bit x86
architecture and ia32 for a 32-bit architecture, so this performs the relevant
mapping and then invokes libuv's configure script with the appropriate target
architecture.

This can be verified by running make with VERBOSE=1 and seeing that beforehand
on a 64-bit build libuv was passed "-arch i386" and now it's passed
"-arch x86_64"

Closes #8826
-rw-r--r--mk/rt.mk7
1 files changed, 6 insertions, 1 deletions
diff --git a/mk/rt.mk b/mk/rt.mk
index 823dfd94c1a..366acb7e379 100644
--- a/mk/rt.mk
+++ b/mk/rt.mk
@@ -41,6 +41,11 @@ ifneq ($(strip $(findstring snap,$(MAKECMDGOALS))),)
 	SNAP_DEFINES=-DRUST_SNAPSHOT
 endif
 
+define DEF_LIBUV_ARCH_VAR
+  LIBUV_ARCH_$(1) = $$(subst i386,ia32,$$(subst x86_64,x64,$$(HOST_$(1))))
+endef
+$(foreach t,$(CFG_TARGET_TRIPLES),$(eval $(call DEF_LIBUV_ARCH_VAR,$(t))))
+
 define DEF_RUNTIME_TARGETS
 
 ######################################################################
@@ -170,7 +175,7 @@ LIBUV_NO_LOAD = run-benchmarks.target.mk run-tests.target.mk \
 
 $$(LIBUV_MAKEFILE_$(1)_$(2)): $$(LIBUV_GYP)
 	(cd $(S)src/libuv/ && \
-	 $$(CFG_PYTHON) ./gyp_uv -f make -Dtarget_arch=$$(HOST_$(1)) -D ninja \
+	 $$(CFG_PYTHON) ./gyp_uv -f make -Dtarget_arch=$$(LIBUV_ARCH_$(1)) -D ninja \
 	   -Goutput_dir=$$(@D) --generator-output $$(@D))
 
 # XXX: Shouldn't need platform-specific conditions here