From 31764a98ffb33adc99b30482c2b70ee076bc0adb Mon Sep 17 00:00:00 2001 From: Will Andrews Date: Sat, 23 May 2015 14:02:00 -0600 Subject: [PATCH 1/6] Don't force FreeBSD to use clang. Newer gcc can be installed, so it should be used if possible. Checks elsewhere in configure should enforce this. --- configure | 7 ------- 1 file changed, 7 deletions(-) diff --git a/configure b/configure index efa836ca976..4537615bb12 100755 --- a/configure +++ b/configure @@ -848,13 +848,6 @@ then putvar CFG_LOCAL_RUST_ROOT fi -# Force freebsd to build with clang; gcc doesn't like us there -if [ $CFG_OSTYPE = unknown-freebsd ] -then - step_msg "on FreeBSD, forcing use of clang" - CFG_ENABLE_CLANG=1 -fi - # Force bitrig to build with clang; gcc doesn't like us there if [ $CFG_OSTYPE = unknown-bitrig ] then From b5ad86f98a64e2a2990b5313af62ab3f97b51125 Mon Sep 17 00:00:00 2001 From: Will Andrews Date: Sat, 23 May 2015 14:02:52 -0600 Subject: [PATCH 2/6] FreeBSD: Don't add -L/usr/local/lib{,/gcc4[46]}. The first one in particular results in Rust not being able to build itself if it is installed. The latter two shouldn't be necessary, and should only be included if they are actually going to be used. --- src/librustc_back/target/freebsd_base.rs | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/librustc_back/target/freebsd_base.rs b/src/librustc_back/target/freebsd_base.rs index dcf1a12f2c9..3ec6307c72f 100644 --- a/src/librustc_back/target/freebsd_base.rs +++ b/src/librustc_back/target/freebsd_base.rs @@ -18,11 +18,6 @@ pub fn opts() -> TargetOptions { executables: true, morestack: true, has_rpath: true, - pre_link_args: vec!( - "-L/usr/local/lib".to_string(), - "-L/usr/local/lib/gcc46".to_string(), - "-L/usr/local/lib/gcc44".to_string(), - ), .. Default::default() } From e1a33aa98758252c806d0bf1966690fe6c96291b Mon Sep 17 00:00:00 2001 From: Steve Klabnik Date: Tue, 2 Jun 2015 09:37:54 -0400 Subject: [PATCH 3/6] Link to cell in TRPL: mutability --- src/doc/trpl/mutability.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/doc/trpl/mutability.md b/src/doc/trpl/mutability.md index e30825badcc..ef569a09e21 100644 --- a/src/doc/trpl/mutability.md +++ b/src/doc/trpl/mutability.md @@ -159,7 +159,7 @@ b.x = 10; // error: cannot assign to immutable field `b.x` [struct]: structs.html -However, by using `Cell`, you can emulate field-level mutability: +However, by using [`Cell`][cell], you can emulate field-level mutability: ```rust use std::cell::Cell; @@ -176,4 +176,6 @@ point.y.set(7); println!("y: {:?}", point.y); ``` +[cell]: ../std/cell/struct.Cell.html + This will print `y: Cell { value: 7 }`. We’ve successfully updated `y`. From b936b1bd7cd28dd55f5ff4dfd47a808452da2b28 Mon Sep 17 00:00:00 2001 From: Gleb Kozyrev Date: Wed, 3 Jun 2015 00:49:47 +0300 Subject: [PATCH 4/6] mk: fix the CFG_ENABLE_COMPILER_DOCS spelling --- mk/docs.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mk/docs.mk b/mk/docs.mk index f3fa4fd908c..922b67d7cc9 100644 --- a/mk/docs.mk +++ b/mk/docs.mk @@ -265,7 +265,7 @@ endef $(foreach crate,$(CRATES),$(eval $(call DEF_LIB_DOC,$(crate)))) COMPILER_DOC_TARGETS := $(CRATES:%=doc/%/index.html) -ifdef CFG_COMPILER_DOCS +ifdef CFG_ENABLE_COMPILER_DOCS DOC_TARGETS += $(COMPILER_DOC_TARGETS) else DOC_TARGETS += $(DOC_CRATES:%=doc/%/index.html) From de4a1dca2bbf392de98c556b6fdee05282a9558c Mon Sep 17 00:00:00 2001 From: Richo Healey Date: Tue, 2 Jun 2015 15:16:30 -0700 Subject: [PATCH 5/6] configure: Allow specifying your python with --python --- configure | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/configure b/configure index 20a5fa390f0..1f411df73fd 100755 --- a/configure +++ b/configure @@ -582,6 +582,7 @@ valopt sysconfdir "/etc" "install system configuration files" valopt datadir "${CFG_PREFIX}/share" "install data" valopt infodir "${CFG_PREFIX}/share/info" "install additional info" valopt llvm-root "" "set LLVM root" +valopt python "" "set path to python" valopt jemalloc-root "" "set directory where libjemalloc_pic.a is located" valopt build "${DEFAULT_BUILD}" "GNUs ./configure syntax LLVM build triple" valopt android-cross-path "/opt/ndk_standalone" "Android NDK standalone path" @@ -694,7 +695,9 @@ putvar CFG_BOOTSTRAP_KEY step_msg "looking for build programs" probe_need CFG_CURLORWGET curl wget -probe_need CFG_PYTHON python2.7 python2.6 python2 python +if [ -z "$CFG_PYTHON_PROVIDED" ]; then + probe_need CFG_PYTHON python2.7 python2.6 python2 python +fi python_version=$($CFG_PYTHON -V 2>&1) if [ $(echo $python_version | grep -c '^Python 2\.[4567]') -ne 1 ]; then From 506d5a8d1946d53f6d052c5b7d6c6d50caa4ff0a Mon Sep 17 00:00:00 2001 From: Richo Healey Date: Tue, 2 Jun 2015 16:55:50 -0700 Subject: [PATCH 6/6] std: clarify comments about sp* implementations --- src/libstd/sys/common/stack.rs | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/libstd/sys/common/stack.rs b/src/libstd/sys/common/stack.rs index fadeebc8150..11982ebc572 100644 --- a/src/libstd/sys/common/stack.rs +++ b/src/libstd/sys/common/stack.rs @@ -139,7 +139,6 @@ pub unsafe fn record_os_managed_stack_bounds(stack_lo: usize, _stack_hi: usize) pub unsafe fn record_sp_limit(limit: usize) { return target_record_sp_limit(limit); - // x86-64 #[cfg(all(target_arch = "x86_64", any(target_os = "macos", target_os = "ios")))] #[inline(always)] @@ -164,7 +163,6 @@ pub unsafe fn record_sp_limit(limit: usize) { asm!("movq $0, %fs:32" :: "r"(limit) :: "volatile") } - // x86 #[cfg(all(target_arch = "x86", any(target_os = "macos", target_os = "ios")))] #[inline(always)] @@ -182,8 +180,8 @@ pub unsafe fn record_sp_limit(limit: usize) { unsafe fn target_record_sp_limit(_: usize) { } - // mips, arm - Some brave soul can port these to inline asm, but it's over - // my head personally + // mips, arm - The implementations are a bit big for inline asm! + // They can be found in src/rt/arch/$target_arch/record_sp.S #[cfg(any(target_arch = "mips", target_arch = "mipsel", all(target_arch = "arm", not(target_os = "ios"))))] @@ -221,7 +219,6 @@ pub unsafe fn record_sp_limit(limit: usize) { pub unsafe fn get_sp_limit() -> usize { return target_get_sp_limit(); - // x86-64 #[cfg(all(target_arch = "x86_64", any(target_os = "macos", target_os = "ios")))] #[inline(always)] @@ -255,7 +252,6 @@ pub unsafe fn get_sp_limit() -> usize { return limit; } - // x86 #[cfg(all(target_arch = "x86", any(target_os = "macos", target_os = "ios")))] #[inline(always)] @@ -278,8 +274,8 @@ pub unsafe fn get_sp_limit() -> usize { return 1024; } - // mips, arm - Some brave soul can port these to inline asm, but it's over - // my head personally + // mips, arm - The implementations are a bit big for inline asm! + // They can be found in src/rt/arch/$target_arch/record_sp.S #[cfg(any(target_arch = "mips", target_arch = "mipsel", all(target_arch = "arm", not(target_os = "ios"))))]