Commit Graph

55 Commits

Author SHA1 Message Date
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