Commit Graph

112 Commits

Author SHA1 Message Date
daan
9062f39764 enable interpose separate from zones on macOS 2020-02-08 20:08:52 -08:00
daan
03b363a1c2 first working tls on macOS using interpose; still slow 2020-01-29 22:46:44 -08:00
daan
4faf412f53 move 'memory.c' to 'region.c' 2020-01-25 13:28:49 -08:00
daan
6fb434a99b use -fvisibility=hidden on clang as well 2020-01-23 10:31:47 -08:00
daan
9d7ac76d93 fix compilation under Intel C compiler (icc) 2020-01-19 18:35:45 -08:00
daan
dbe721de39 dont compile test-stress.c as C++ code (or we get atomic compilation errors) 2020-01-17 15:45:12 -08:00
daan
f4ee1760b8 Suppress C source compiled as C++ warning on clang 2020-01-17 15:39:41 -08:00
daan
ba87a39d9f updated random cookie generation using OS primitives and chacha20 2019-12-22 19:37:49 -08:00
daan
6568059cc6 merge from dev 2019-11-21 16:28:28 -08:00
daan
74dbfc30be improved security by encoding NULL values; double free mitigation on by default; more precise free list corruption detection 2019-11-21 15:21:23 -08:00
Daan Leijen
56b9fac4bf merge from dev 2019-11-20 13:31:04 -08:00
Daan Leijen
dccffea662 fix pr #173 by @zerodefect to use case-insensitive matching of the build type; also use MI_DEBUG_FULL option (instead of MI_CHECK_FULL) 2019-11-14 11:01:05 -08:00
daan
17ade3fca5 merge from dev 2019-11-13 17:52:20 -08:00
daan
d4f54dcf30 remove numaif dependency on linux 2019-11-12 10:37:15 -08:00
Daan Leijen
f0e02bab03 pr #168 by @zerodefect to update the install location 2019-11-08 12:22:03 -08:00
daan
6ccfb5a93e merge from dev 2019-11-07 11:00:50 -08:00
daan
56887aeb2f add MI_SECURE_FULL=ON as a cmake option to include double free mitigation 2019-11-07 10:59:45 -08:00
daan
378716c467 refactor and improve atomic bitmap usage 2019-11-07 10:26:52 -08:00
daan
9d6a5acb22 fix unix build warnings 2019-11-03 13:34:54 -08:00
daan
2c12d7f223 optimized numa calls; better Linux support 2019-11-01 22:01:52 -07:00
daan
2d10c78587 fix linux compilation 2019-11-01 20:19:00 -07:00
daan
2affdbbd2e stronger secure mode when defining MI_SECURE=4: checks for double free, corrupted free list, and invalid pointer frees. Performance is impacted but not too much -- more perf testing is needed 2019-10-18 18:11:04 -07:00
daan
3a697abf1f set SONAME and use symbolic link at install (issue #9 and #58) 2019-09-15 20:26:30 -07:00
daan
33f4ec4ac6 put new-delete overrides in separate header file 2019-09-15 19:19:00 -07:00
daan
efe083a548 Merge branch 'master' into dev 2019-09-09 08:06:35 -07:00
Antoine Pitrou
b69a4b52c0 Fix #147: provide CMake option for alternate TLS mechanism
This allows use of dlopen() with mimalloc on Unix.
2019-09-04 12:02:16 +02:00
daan
d7982f8733 make output name not depend on build type capitalization (issue #144) 2019-09-02 09:57:39 -07:00
daan
8ef8ddecc5 Merge branch 'master' into dev 2019-09-02 09:53:34 -07:00
Antoine Pitrou
cbc392434c Add an option to disable building tests 2019-08-28 17:26:56 +02:00
daan
cf7bb70117 Merge branch 'master' into dev 2019-08-27 10:01:20 -07:00
Jim Huang
99e071cf2c Link with -lrt for older glibc
Quoted from Linux Programmer's Manual (2017-09-15):
    #include <time.h>
    int clock_gettime(clockid_t clk_id, struct timespec *tp);
    Link with -lrt (only for glibc versions before 2.17).

This patch adds additional checks for librt availability and append
target_link_libraries accordingly. librt is absent on macOS.

Fixed #139
2019-08-24 21:24:56 +08:00
daan
62de76a327 fix C++ compilation of stress test 2019-08-12 08:55:20 -07:00
daan
7b105c4810 improve layout of page for x64 2019-08-11 10:31:00 -07:00
daan
ab022e4271 fix mimalloc-redirect path on windows cmake build 2019-07-23 15:00:13 -07:00
daan
c02a0c9b49 ensure cmake uses C++ compilation with MSVC 2019-07-23 15:00:13 -07:00
daan
f2f45ad5df fix cmake build on windows 2019-07-23 15:00:13 -07:00
daan
189ad0f81d small optimizations, use bitwise aligne 2019-07-23 15:00:13 -07:00
daan
306a542336 add mimalloc-override header file and use C++ compilation with msvc 2019-07-18 20:28:29 -07:00
daan
ae1794a852 remove accidental test in cmake 2019-07-15 13:36:12 -07:00
daan
ea9dbd1036 set better default options for performance 2019-07-15 13:19:26 -07:00
daan
8dc0b5345b Merge branch 'dev' into dev-exp 2019-07-14 16:50:38 -07:00
daan
a6aa905731 make sure older cmake versions work for build 2019-07-14 14:47:59 -07:00
daan
f844665c9f merge from dev-win 2019-07-10 22:57:37 -07:00
daan
12d3297db5 add allocator stress test to the test targets 2019-07-10 21:52:28 -07:00
daan
35b590de21 Merge branch 'dev' into dev-exp 2019-07-09 15:12:18 -07:00
daan
cf8815854c fix cmake issues with OBJECT install 2019-07-09 11:32:24 -07:00
daan
493dfc4b82 merge with dev 2019-07-08 15:42:42 -07:00
daan
fc35f6069a Add NO_SYSTEM_ENVIRONMENT_PATH and example of linking with the object file; pr #67 2019-07-08 13:37:41 -07:00
daan
c3528203b5 fix compilation with C++, fix overrides in C++ to adhere to the spec (issue #26) 2019-07-07 18:11:21 -07:00
daan
dd59a917ce Expose mi prefixed public standard implementations of various posix, unix, and c++ allocation functions. See issue #75 2019-07-07 13:44:33 -07:00
daan
8cb36c62e6 merge with dev branch 2019-07-02 16:44:35 -07:00
daan
c465f6ae35 Merge branch 'master' into dev 2019-07-02 16:32:52 -07:00
daan
06bcea1761 Initial commit of separate memory region layer and improved large OS pages support, see 'memory.c' 2019-07-02 07:23:24 -07:00
Jan Christoph Uhde
408b76d103 make includes available for projects that add mimalloc as subdirectory 2019-07-02 11:12:04 +02:00
myd7349
a5b22af7ec fix object install error 2019-06-29 21:53:47 +08:00
daan
ae47a2b13e Add initial testing file, test target, and readme about testing, issue #10, pr #57 2019-06-27 13:36:19 -07:00
Jim Huang
256eb97849 Avoid unnecessary symbol exposure with ELF-based systems
GCC's default visibility is "public" but can be changed to
"hidden" with the argument "-fvisibility=hidden".

Tested with x86_64 / Ubuntu Linux 18.04 LTS:

[before]
$ nm -g -C libmimalloc.so | grep "T " | wc -l
142

[after]
$ nm -g -C libmimalloc.so | grep "T " | wc -l
93

This patch does not change the build on macOS.
2019-06-25 10:00:22 +08:00
daan
91cb4cee8a use MI_ prefix for all options to better support subdirectory cmake, issue #3 2019-06-24 18:54:03 -07:00
Daan
30b8624d6e
Merge pull request #22 from myd7349/win32-cmake-patch
Fix CMake configuration on Windows
2019-06-24 18:19:49 -07:00
myd7349
b7c8d8f007 Fix CMake configuration on Windows
- Do not define MI_MALLOC_OVERRIDE when built as a static library
- Use different output names for shared lib and static lib
2019-06-25 08:02:17 +08:00
Jim Huang
a667971cbf Apple rebrands "OS X" as "macOS"
In 2012, with the release of OS X 10.8 Mountain Lion, the name of the
system was shortened from Mac OS X to OS X. In 2016, with the release
of macOS 10.12 Sierra, the name was changed from OS X to macOS to
streamline it with the branding of Apple's other primary operating
systems: iOS, watchOS, and tvOS.

Reference: https://en.wikipedia.org/wiki/MacOS
2019-06-24 10:15:50 +08:00
daan
b3212eef72 add cmake file 2019-06-19 16:52:36 -07:00