Skip to content

Commit 04380e7

Browse files
committed
Merge branch 'rc-4.5.0'
2 parents f1f7635 + 700253e commit 04380e7

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

83 files changed

+2388
-515
lines changed

.appveyor.yml

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,20 @@ environment:
1212
CPU: x86_64
1313
- MSYSTEM: MINGW32
1414
CPU: i686
15+
- MSYSTEM: MINGW64
16+
CPU: x86_64
17+
MSVC: amd64
18+
CONFIG_FLAGS: --enable-debug
19+
- MSYSTEM: MINGW32
20+
CPU: i686
21+
MSVC: x86
22+
CONFIG_FLAGS: --enable-debug
23+
- MSYSTEM: MINGW64
24+
CPU: x86_64
25+
CONFIG_FLAGS: --enable-debug
26+
- MSYSTEM: MINGW32
27+
CPU: i686
28+
CONFIG_FLAGS: --enable-debug
1529

1630
install:
1731
- set PATH=c:\msys64\%MSYSTEM%\bin;c:\msys64\usr\bin;%PATH%
@@ -21,7 +35,7 @@ install:
2135

2236
build_script:
2337
- bash -c "autoconf"
24-
- bash -c "./configure"
38+
- bash -c "./configure $CONFIG_FLAGS"
2539
- mingw32-make -j3
2640
- file lib/jemalloc.dll
2741
- mingw32-make -j3 tests

.travis.yml

Lines changed: 77 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,95 @@
1-
language: c
1+
language: generic
22

33
matrix:
44
include:
55
- os: linux
6-
compiler: gcc
6+
env: CC=gcc COMPILER_FLAGS="" CONFIGURE_FLAGS=""
7+
- os: osx
8+
env: CC=gcc COMPILER_FLAGS="" CONFIGURE_FLAGS=""
9+
- os: linux
10+
env: CC=clang COMPILER_FLAGS="" CONFIGURE_FLAGS=""
711
- os: linux
8-
compiler: gcc
9-
env:
10-
- EXTRA_FLAGS=-m32
12+
env: CC=gcc COMPILER_FLAGS="-m32" CONFIGURE_FLAGS=""
1113
addons:
1214
apt:
1315
packages:
14-
- gcc-multilib
16+
- gcc-multilib
17+
- os: linux
18+
env: CC=gcc COMPILER_FLAGS="" CONFIGURE_FLAGS="--enable-debug"
19+
- os: linux
20+
env: CC=gcc COMPILER_FLAGS="" CONFIGURE_FLAGS="--enable-prof"
21+
- os: linux
22+
env: CC=gcc COMPILER_FLAGS="" CONFIGURE_FLAGS="--disable-stats"
23+
- os: linux
24+
env: CC=gcc COMPILER_FLAGS="" CONFIGURE_FLAGS="--disable-tcache"
1525
- os: osx
16-
compiler: clang
26+
env: CC=clang COMPILER_FLAGS="" CONFIGURE_FLAGS=""
1727
- os: osx
18-
compiler: clang
19-
env:
20-
- EXTRA_FLAGS=-m32
28+
env: CC=gcc COMPILER_FLAGS="-m32" CONFIGURE_FLAGS=""
29+
- os: osx
30+
env: CC=gcc COMPILER_FLAGS="" CONFIGURE_FLAGS="--enable-debug"
31+
- os: osx
32+
env: CC=gcc COMPILER_FLAGS="" CONFIGURE_FLAGS="--disable-stats"
33+
- os: osx
34+
env: CC=gcc COMPILER_FLAGS="" CONFIGURE_FLAGS="--disable-tcache"
35+
- os: linux
36+
env: CC=clang COMPILER_FLAGS="-m32" CONFIGURE_FLAGS=""
37+
addons:
38+
apt:
39+
packages:
40+
- gcc-multilib
41+
- os: linux
42+
env: CC=clang COMPILER_FLAGS="" CONFIGURE_FLAGS="--enable-debug"
43+
- os: linux
44+
env: CC=clang COMPILER_FLAGS="" CONFIGURE_FLAGS="--enable-prof"
45+
- os: linux
46+
env: CC=clang COMPILER_FLAGS="" CONFIGURE_FLAGS="--disable-stats"
47+
- os: linux
48+
env: CC=clang COMPILER_FLAGS="" CONFIGURE_FLAGS="--disable-tcache"
49+
- os: linux
50+
env: CC=gcc COMPILER_FLAGS="-m32" CONFIGURE_FLAGS="--enable-debug"
51+
addons:
52+
apt:
53+
packages:
54+
- gcc-multilib
55+
- os: linux
56+
env: CC=gcc COMPILER_FLAGS="-m32" CONFIGURE_FLAGS="--enable-prof"
57+
addons:
58+
apt:
59+
packages:
60+
- gcc-multilib
61+
- os: linux
62+
env: CC=gcc COMPILER_FLAGS="-m32" CONFIGURE_FLAGS="--disable-stats"
63+
addons:
64+
apt:
65+
packages:
66+
- gcc-multilib
67+
- os: linux
68+
env: CC=gcc COMPILER_FLAGS="-m32" CONFIGURE_FLAGS="--disable-tcache"
69+
addons:
70+
apt:
71+
packages:
72+
- gcc-multilib
73+
- os: linux
74+
env: CC=gcc COMPILER_FLAGS="" CONFIGURE_FLAGS="--enable-debug --enable-prof"
75+
- os: linux
76+
env: CC=gcc COMPILER_FLAGS="" CONFIGURE_FLAGS="--enable-debug --disable-stats"
77+
- os: linux
78+
env: CC=gcc COMPILER_FLAGS="" CONFIGURE_FLAGS="--enable-debug --disable-tcache"
79+
- os: linux
80+
env: CC=gcc COMPILER_FLAGS="" CONFIGURE_FLAGS="--enable-prof --disable-stats"
81+
- os: linux
82+
env: CC=gcc COMPILER_FLAGS="" CONFIGURE_FLAGS="--enable-prof --disable-tcache"
83+
- os: linux
84+
env: CC=gcc COMPILER_FLAGS="" CONFIGURE_FLAGS="--disable-stats --disable-tcache"
85+
2186

2287
before_script:
2388
- autoconf
24-
- ./configure${EXTRA_FLAGS:+ CC="$CC $EXTRA_FLAGS"}
89+
- ./configure ${COMPILER_FLAGS:+ CC="$CC $COMPILER_FLAGS" } $CONFIGURE_FLAGS
2590
- make -j3
2691
- make -j3 tests
2792

2893
script:
2994
- make check
95+

ChangeLog

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,41 @@ brevity. Much more detail can be found in the git revision history:
44

55
https://github.com/jemalloc/jemalloc
66

7+
* 4.5.0 (February 28, 2017)
8+
9+
This is the first release to benefit from much broader continuous integration
10+
testing, thanks to @davidtgoldblatt. Had we had this testing infrastructure
11+
in place for prior releases, it would have caught all of the most serious
12+
regressions fixed by this release.
13+
14+
New features:
15+
- Add --disable-thp and the opt.thp to provide opt-out mechanisms for
16+
transparent huge page integration. (@jasone)
17+
- Update zone allocator integration to work with macOS 10.12. (@glandium)
18+
- Restructure *CFLAGS configuration, so that CFLAGS behaves typically, and
19+
EXTRA_CFLAGS provides a way to specify e.g. -Werror during building, but not
20+
during configuration. (@jasone, @ronawho)
21+
22+
Bug fixes:
23+
- Fix DSS (sbrk(2)-based) allocation. This regression was first released in
24+
4.3.0. (@jasone)
25+
- Handle race in per size class utilization computation. This functionality
26+
was first released in 4.0.0. (@interwq)
27+
- Fix lock order reversal during gdump. (@jasone)
28+
- Fix-refactor tcache synchronization. This regression was first released in
29+
4.0.0. (@jasone)
30+
- Fix various JSON-formatted malloc_stats_print() bugs. This functionality
31+
was first released in 4.3.0. (@jasone)
32+
- Fix huge-aligned allocation. This regression was first released in 4.4.0.
33+
(@jasone)
34+
- When transparent huge page integration is enabled, detect what state pages
35+
start in according to the kernel's current operating mode, and only convert
36+
arena chunks to non-huge during purging if that is not their initial state.
37+
This functionality was first released in 4.4.0. (@jasone)
38+
- Fix lg_chunk clamping for the --enable-cache-oblivious --disable-fill case.
39+
This regression was first released in 4.0.0. (@jasone, @428desmo)
40+
- Properly detect sparc64 when building for Linux. (@glaubitz)
41+
742
* 4.4.0 (December 3, 2016)
843

944
New features:

INSTALL

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,13 @@ any of the following arguments (not a definitive list) to 'configure':
157157
released in bulk, thus reducing the total number of mutex operations. See
158158
the "opt.tcache" option for usage details.
159159

160+
--disable-thp
161+
Disable transparent huge page (THP) integration. On systems with THP
162+
support, THPs are explicitly disabled as a side effect of unused dirty page
163+
purging for chunks that back small and/or large allocations, because such
164+
chunks typically comprise active, unused dirty, and untouched clean
165+
pages.
166+
160167
--disable-munmap
161168
Disable virtual memory deallocation via munmap(2); instead keep track of
162169
the virtual memory for later use. munmap() is disabled by default (i.e.
@@ -306,17 +313,16 @@ The following environment variables (not a definitive list) impact configure's
306313
behavior:
307314

308315
CFLAGS="?"
309-
Pass these flags to the compiler. You probably shouldn't define this unless
310-
you know what you are doing. (Use EXTRA_CFLAGS instead.)
316+
Pass these flags to the C compiler. Any flags set by the configure script
317+
are prepended, which means explicitly set flags generally take precedence.
318+
Take care when specifying flags such as -Werror, because configure tests may
319+
be affected in undesirable ways.
311320

312321
EXTRA_CFLAGS="?"
313-
Append these flags to CFLAGS. This makes it possible to add flags such as
314-
-Werror, while allowing the configure script to determine what other flags
315-
are appropriate for the specified configuration.
316-
317-
The configure script specifically checks whether an optimization flag (-O*)
318-
is specified in EXTRA_CFLAGS, and refrains from specifying an optimization
319-
level if it finds that one has already been specified.
322+
Append these flags to CFLAGS, without passing them to the compiler during
323+
configuration. This makes it possible to add flags such as -Werror, while
324+
allowing the configure script to determine what other flags are appropriate
325+
for the specified configuration.
320326

321327
CPPFLAGS="?"
322328
Pass these flags to the C preprocessor. Note that CFLAGS is not passed to

Makefile.in

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,10 @@ abs_objroot := @abs_objroot@
2424

2525
# Build parameters.
2626
CPPFLAGS := @CPPFLAGS@ -I$(srcroot)include -I$(objroot)include
27+
CONFIGURE_CFLAGS := @CONFIGURE_CFLAGS@
28+
SPECIFIED_CFLAGS := @SPECIFIED_CFLAGS@
2729
EXTRA_CFLAGS := @EXTRA_CFLAGS@
28-
CFLAGS := @CFLAGS@ $(EXTRA_CFLAGS)
30+
CFLAGS := $(strip $(CONFIGURE_CFLAGS) $(SPECIFIED_CFLAGS) $(EXTRA_CFLAGS))
2931
LDFLAGS := @LDFLAGS@
3032
EXTRA_LDFLAGS := @EXTRA_LDFLAGS@
3133
LIBS := @LIBS@
@@ -156,6 +158,7 @@ TESTS_UNIT := \
156158
$(srcroot)test/unit/bitmap.c \
157159
$(srcroot)test/unit/ckh.c \
158160
$(srcroot)test/unit/decay.c \
161+
$(srcroot)test/unit/extent_quantize.c \
159162
$(srcroot)test/unit/fork.c \
160163
$(srcroot)test/unit/hash.c \
161164
$(srcroot)test/unit/junk.c \
@@ -186,6 +189,7 @@ TESTS_UNIT := \
186189
$(srcroot)test/unit/size_classes.c \
187190
$(srcroot)test/unit/smoothstep.c \
188191
$(srcroot)test/unit/stats.c \
192+
$(srcroot)test/unit/stats_print.c \
189193
$(srcroot)test/unit/ticker.c \
190194
$(srcroot)test/unit/nstime.c \
191195
$(srcroot)test/unit/tsd.c \

0 commit comments

Comments
 (0)