about summary refs log tree commit diff
diff options
context:
space:
mode:
authorGraydon Hoare <graydon@mozilla.com>2012-03-26 15:54:22 -0700
committerGraydon Hoare <graydon@mozilla.com>2012-03-26 18:03:53 -0700
commitbd0399863fd2e012c46d0fed50e016f5dd147d82 (patch)
treeeb4f479a53d26d067e8383c122b657f336e0857e
parent45a709766c60869ebdcad776ef9c9804aee7f506 (diff)
downloadrust-bd0399863fd2e012c46d0fed50e016f5dd147d82.tar.gz
rust-bd0399863fd2e012c46d0fed50e016f5dd147d82.zip
Disable some advanced (post glibc-2.3) libuv features when building snaps.
-rw-r--r--mk/rt.mk14
m---------src/libuv0
-rw-r--r--src/rt/rust_run_program.cpp2
3 files changed, 13 insertions, 3 deletions
diff --git a/mk/rt.mk b/mk/rt.mk
index ceded06ea6d..c0223070e57 100644
--- a/mk/rt.mk
+++ b/mk/rt.mk
@@ -27,6 +27,15 @@
 LIBUV_FLAGS_i386 = -m32 -fPIC
 LIBUV_FLAGS_x86_64 = -m64 -fPIC
 
+# when we're doing a snapshot build, we intentionally degrade as many
+# features in libuv and the runtime as possible, to ease portability.
+
+SNAP_DEFINES:=
+ifneq ($(strip $(findstring snap,$(MAKECMDGOALS))),)
+	SNAP_DEFINES=-DRUST_SNAPSHOT
+endif
+
+
 define DEF_RUNTIME_TARGETS
 
 ######################################################################
@@ -107,7 +116,8 @@ RUNTIME_LIBS_$(1) := $$(LIBUV_LIB_$(1))
 
 rt/$(1)/%.o: rt/%.cpp $$(RUNTIME_HDR_$(1)) $$(MKFILE_DEPS)
 	@$$(call E, compile: $$@)
-	$$(Q)$$(call CFG_COMPILE_C_$(1), $$@, $$(RUNTIME_INCS_$(1))) $$<
+	$$(Q)$$(call CFG_COMPILE_C_$(1), $$@, $$(RUNTIME_INCS_$(1)) \
+                 $$(SNAP_DEFINES)) $$<
 
 rt/$(1)/%.o: rt/%.S  $$(RUNTIME_HDR_$(1)) $$(MKFILE_DEPS) \
                      $$(LLVM_CONFIG_$$(CFG_HOST_TRIPLE))
@@ -144,7 +154,7 @@ endif
 
 $$(LIBUV_LIB_$(1)): $$(LIBUV_DEPS)
 	$$(Q)$$(MAKE) -C $$(S)mk/libuv/$$(LIBUV_ARCH_$(1))/$$(LIBUV_OSTYPE_$(1)) \
-		CFLAGS="$$(LIBUV_FLAGS_$$(HOST_$(1)))" \
+		CFLAGS="$$(LIBUV_FLAGS_$$(HOST_$(1))) $$(SNAP_DEFINES)" \
         LDFLAGS="$$(LIBUV_FLAGS_$$(HOST_$(1)))" \
 		CC="$$(CFG_GCCISH_CROSS)$$(CC)" \
 		CXX="$$(CFG_GCCISH_CROSS)$$(CXX)" \
diff --git a/src/libuv b/src/libuv
-Subproject 1170ffba3ac5191930b40c897d4569a9d8a296a
+Subproject 1d6aec9d54c7a684ade521f71a4d538a6a88b14
diff --git a/src/rt/rust_run_program.cpp b/src/rt/rust_run_program.cpp
index 7ccecb2f99a..313ab74995a 100644
--- a/src/rt/rust_run_program.cpp
+++ b/src/rt/rust_run_program.cpp
@@ -168,7 +168,7 @@ rust_run_program(const char* argv[],
         *_NSGetEnviron() = (char **)envp;
     }
     execvp(argv[0], (char * const *)argv);
-#elif __FreeBSD__
+#elif __FreeBSD__ || (defined(__linux__) && defined(RUST_SNAPSHOT))
     if (envp) { environ = (char **)envp; }
     execvp(argv[0], (char * const *)argv);
 #else