From 4fbc0800337724f71af8f89a09dfc8679ed6e34f Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Thu, 25 Feb 2016 09:37:47 -0800 Subject: [PATCH 1/2] std: Update jemalloc again to the 4.* track --- mk/cfg/i686-pc-windows-gnu.mk | 2 -- mk/cfg/x86_64-pc-windows-gnu.mk | 2 -- src/jemalloc | 2 +- 3 files changed, 1 insertion(+), 5 deletions(-) diff --git a/mk/cfg/i686-pc-windows-gnu.mk b/mk/cfg/i686-pc-windows-gnu.mk index 0ed65effbdf48..3426b30aeeb85 100644 --- a/mk/cfg/i686-pc-windows-gnu.mk +++ b/mk/cfg/i686-pc-windows-gnu.mk @@ -25,5 +25,3 @@ 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 -# FIXME(#31030) - there's not a great reason to disable jemalloc here -CFG_DISABLE_JEMALLOC_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 f7fc4a2f26abe..f0732d08c71ea 100644 --- a/mk/cfg/x86_64-pc-windows-gnu.mk +++ b/mk/cfg/x86_64-pc-windows-gnu.mk @@ -25,5 +25,3 @@ 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 -# FIXME(#31030) - there's not a great reason to disable jemalloc here -CFG_DISABLE_JEMALLOC_x86_64-pc-windows-gnu := 1 diff --git a/src/jemalloc b/src/jemalloc index e24a1a025a1f2..aab1c0a0e0b39 160000 --- a/src/jemalloc +++ b/src/jemalloc @@ -1 +1 @@ -Subproject commit e24a1a025a1f214e40eedafe3b9c7b1d69937922 +Subproject commit aab1c0a0e0b39825b16673128729ef46310a5da8 From df9e1733537bee656f36a3c89fd473f5f1a1dff5 Mon Sep 17 00:00:00 2001 From: Alex Crichton Date: Thu, 25 Feb 2016 09:51:45 -0800 Subject: [PATCH 2/2] test: Clean up alloc_jemalloc usage in tests Right now there's just a smattering of `// ignore-foo` platforms which is ever expanding as new ones are added. Instead switch to only running these tests on Linux/OSX and then use a guaranteed-to-work but not-as-well-tested alternative on other platforms. --- .../compile-fail/allocator-dylib-is-system.rs | 17 ++++++++++---- .../allocator-rust-dylib-is-jemalloc.rs | 18 +++++++++++---- src/test/run-pass/allocator-default.rs | 6 ++--- src/test/run-pass/allocator-jemalloc.rs | 23 ------------------- 4 files changed, 28 insertions(+), 36 deletions(-) delete mode 100644 src/test/run-pass/allocator-jemalloc.rs diff --git a/src/test/compile-fail/allocator-dylib-is-system.rs b/src/test/compile-fail/allocator-dylib-is-system.rs index 5f8948ac5f1e9..db7f304227f01 100644 --- a/src/test/compile-fail/allocator-dylib-is-system.rs +++ b/src/test/compile-fail/allocator-dylib-is-system.rs @@ -8,11 +8,9 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// ignore-windows everything is the system allocator on windows -// ignore-musl no dylibs on musl yet -// ignore-bitrig no jemalloc on bitrig -// ignore-openbsd no jemalloc on openbsd +// ignore-musl no dylibs // aux-build:allocator-dylib.rs +// aux-build:allocator1.rs // no-prefer-dynamic // error-pattern: cannot link together two allocators @@ -23,7 +21,18 @@ #![feature(alloc_jemalloc)] extern crate allocator_dylib; + +// The main purpose of this test is to ensure that `alloc_jemalloc` **fails** +// here (specifically the jemalloc allocator), but currently jemalloc is +// disabled on quite a few platforms (bsds, emscripten, msvc, etc). To ensure +// that this just passes on those platforms we link in some other allocator to +// ensure we get the same error. +// +// So long as we CI linux/OSX we should be good. +#[cfg(any(target_os = "linux", target_os = "macos"))] extern crate alloc_jemalloc; +#[cfg(not(any(target_os = "linux", target_os = "macos")))] +extern crate allocator1; fn main() { allocator_dylib::foo(); diff --git a/src/test/compile-fail/allocator-rust-dylib-is-jemalloc.rs b/src/test/compile-fail/allocator-rust-dylib-is-jemalloc.rs index b29797f329526..46ad226d25564 100644 --- a/src/test/compile-fail/allocator-rust-dylib-is-jemalloc.rs +++ b/src/test/compile-fail/allocator-rust-dylib-is-jemalloc.rs @@ -8,11 +8,9 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -// ignore-windows everything is the system allocator on windows -// ignore-musl no dylibs on musl right now -// ignore-bitrig no jemalloc on bitrig -// ignore-openbsd no jemalloc on openbsd +// ignore-musl no dylibs // aux-build:allocator-dylib2.rs +// aux-build:allocator1.rs // error-pattern: cannot link together two allocators // Ensure that rust dynamic libraries use jemalloc as their allocator, verifying @@ -21,9 +19,19 @@ #![feature(alloc_system)] extern crate allocator_dylib2; + +// The main purpose of this test is to ensure that `alloc_system` **fails** +// here (specifically the system allocator), but currently system is +// disabled on quite a few platforms (bsds, emscripten, msvc, etc). To ensure +// that this just passes on those platforms we link in some other allocator to +// ensure we get the same error. +// +// So long as we CI linux/OSX we should be good. +#[cfg(any(target_os = "linux", target_os = "macos"))] extern crate alloc_system; +#[cfg(not(any(target_os = "linux", target_os = "macos")))] +extern crate allocator1; fn main() { allocator_dylib2::foo(); } - diff --git a/src/test/run-pass/allocator-default.rs b/src/test/run-pass/allocator-default.rs index be69a4eaddfa1..32ed2b330118d 100644 --- a/src/test/run-pass/allocator-default.rs +++ b/src/test/run-pass/allocator-default.rs @@ -8,12 +8,10 @@ // option. This file may not be copied, modified, or distributed // except according to those terms. -#![feature(alloc_jemalloc, alloc_system)] +#![feature(alloc_jemalloc)] -#[cfg(not(any(windows, target_os = "bitrig", target_os = "openbsd", target_os="emscripten")))] +#[cfg(any(target_os = "linux", target_os = "macos"))] extern crate alloc_jemalloc; -#[cfg(any(windows, target_os = "bitrig", target_os = "openbsd", target_os="emscripten"))] -extern crate alloc_system; fn main() { println!("{:?}", Box::new(3)); diff --git a/src/test/run-pass/allocator-jemalloc.rs b/src/test/run-pass/allocator-jemalloc.rs deleted file mode 100644 index ad1438f75fc50..0000000000000 --- a/src/test/run-pass/allocator-jemalloc.rs +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright 2015 The Rust Project Developers. See the COPYRIGHT -// file at the top-level directory of this distribution and at -// http://rust-lang.org/COPYRIGHT. -// -// Licensed under the Apache License, Version 2.0 or the MIT license -// , at your -// option. This file may not be copied, modified, or distributed -// except according to those terms. - -// no-prefer-dynamic -// ignore-windows no jemalloc on windows -// ignore-bitrig no jemalloc on bitrig -// ignore-openbsd no jemalloc on openbsd -// ignore-emscripten no jemalloc on emscripten - -#![feature(alloc_jemalloc)] - -extern crate alloc_jemalloc; - -fn main() { - println!("{:?}", Box::new(3)); -}