David Carlier
7e48eb033c
haiku support.
...
TLS unsupported thus disabled.
2020-06-28 13:53:45 +00:00
Uwe L. Korn
1f08317f3c
Add option to install directly in CMAKE_INSTALL_PREFIX
2020-05-30 10:36:37 +02:00
daan
fd9faee5d4
update cmake with nicer message which targets are build
2020-05-04 11:01:11 -07:00
Daan
ff4f1c3e5d
Merge branch 'dev' into cmake-build-variants
2020-05-04 09:51:09 -07:00
Daan
866fd0e8f5
Merge pull request #240 from andronat/master
...
Use position independent code (PIC) for static and object libraries.
2020-05-01 14:15:17 -07:00
Anastasios Andronidis
5c03e9dc79
Compile static and obj targets with PIC
2020-05-01 21:53:51 +01:00
daan
9a33f23b5f
fix MI_SHOW_ERRORS on msvc
2020-04-28 11:11:23 -07:00
Daan
07e80aebb7
Merge branch 'dev' into xmalloc
2020-04-28 10:53:34 -07:00
Daan
9ba16f2df9
Merge pull request #232 from asl/cmake-err-warn-default
...
Add cmake option to specify whether warnings / errors are enabled by default
2020-04-28 10:51:30 -07:00
Anton Korobeynikov
d4363bbaf8
Add possibility to selectively enable / disable builing of different targets.
2020-04-28 18:12:43 +03:00
Anton Korobeynikov
079b886feb
Add cmake option to specify whether warnings / errors are enabled by default.
...
Currently warnings / errors are enabled by default in debug build.
Otherwise they could be enabled only via environmental variable or
API option call. Add possibility to specify the default during the
build time. This simplifies e.g. integration of the library into
bigger projects as no source changes would be required.
2020-04-28 16:44:44 +03:00
Anton Korobeynikov
2f1fc1df5c
Add xmalloc()-like functionality.
...
xmalloc is a non-standard extension forcing malloc() to
abort should the memory allocation failed instead of returning a
null pointer. Such functionality is quite useful as it provides one
single point of error handling if the caller of malloc() does not
check the result (as it often does!) and segfault is ocurring somewhere
else. If more fine-grained control is necessary one could register a custom
error handler, however, this might not be an option while interposing.
2020-04-28 16:38:47 +03:00
Anton Korobeynikov
07d72f4fba
Do not forget to include malloc zone implementation in the static object
2020-04-21 15:08:27 +03:00
David Carlier
80aeb1bd1d
Fix compiler detection
2020-04-15 05:34:07 +01:00
David Carlier
6c5039bad1
Android build fix proposal.
...
malloc_usable_size has different signature on this platform.
thread and real time apis are part of bionic.
2020-04-14 14:20:56 +01:00
daan
69a0846478
add MI_PADDING flag to cmake to supress use of padding in debug mode
2020-04-07 10:01:18 -07:00
David Carlier
2884affbd7
Using host data rather.
2020-03-07 12:19:48 +00:00
David Carlier
854e81c11d
build fix for arm, adding native arch flag to be able to generate
...
yield asm instruction.
2020-03-07 09:18:45 +00:00
Orkhan Hasanli
b41183e8a3
Creation of symbolic link was failing. #166
2020-03-04 20:45:20 -05:00
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