Commit Graph

212 Commits

Author SHA1 Message Date
Daan
d575aacfde use find_library for pthread (issue #496) 2021-12-13 13:10:33 -08:00
Igor Vlasenko
acc64ee5cd added SOVERSION to mimalloc shared lib (issue #490)
This is a portability improvement.
A cross-platform library needs SOVERSION field for Unix platforms.
With SOVERSION field cmake itself will do proper management of
libmimalloc.so.SOVERSION -> libmimalloc.so.VERSION symlink on Unix,
so a piece of code that tried to emulate this behavior manually
is no more needed and is removed here too.
2021-11-28 19:59:09 +02:00
daan
6efd78c5e0 remove O3 flag 2021-11-15 10:52:39 -08:00
daan
4a456ba054 Merge branch 'dev' into dev-slice 2021-11-15 10:52:17 -08:00
daan
1c22650719 remove no-invalid-memory-model supression 2021-11-15 10:52:09 -08:00
Daan
18fc788201 merge from dev 2021-11-14 15:39:05 -08:00
Daan
5e55525e5e
Merge pull request #483 from joy4eg/install-dirs-dev
cmake: removed hardcoded names for top level configuration
2021-11-14 14:49:48 -08:00
daan
97a1584bb5 Merge branch 'dev' into dev-slice 2021-11-13 13:30:17 -08:00
daan
c56be7ac5a show cflags in cmake; fix -fno-builtin-malloc flag 2021-11-13 13:30:03 -08:00
daan
c6b82a4b37 wip: change decommit expiration 2021-11-12 17:31:21 -08:00
Daan
464cba833e Merge branch 'dev' into dev-slice 2021-11-04 18:55:34 -07:00
Daan
c47de7eb90 improve macOS overriding 2021-11-04 18:55:12 -07:00
Daan
f3ffa663f1 merge from dev 2021-11-02 22:42:25 -07:00
Daan
32ee13f41e improve macOS M1 performance; use interpose in combination with zone's; add -fno-builtin-malloc flag in building with MI_OVERRIDE 2021-11-02 21:54:44 -07:00
Yaroslav Syrytsia
0ead911b6b cmake: removed hardcoded names for top level configuration 2021-10-28 12:04:48 +03:00
Daan
de00de96fd merge with dev 2021-10-20 09:56:03 -07:00
Daan
e02f88a11c Fix warnings with g++-11 compilation 2021-10-20 09:55:03 -07:00
Daan
b47d0802d1 Merge branch 'dev' into dev-slice 2021-10-20 09:36:08 -07:00
Daan
4d89176eb4 add MI_USE_LIBATOMIC to link with -latomic on older systems (see also PR #429); rename MI_INTERPOSE to MI_OSX_INTERPOSE 2021-10-20 09:35:58 -07:00
Daan
aeb73b0cd4 merge from dev 2021-10-19 12:55:10 -07:00
Daan
2d821003b0 don't add prefix if build type is None (PR #427) 2021-10-19 10:56:13 -07:00
Daan
b4a5c8459d
Merge pull request #461 from objectx/patch-1
fix: Fix a typo
2021-10-19 10:25:16 -07:00
Daan
a4078df9d5 Merge branch 'dev' into dev-slice 2021-10-19 10:17:53 -07:00
Daan
60937b5bc8 add -Wstrict-prototypes flag during compilation 2021-10-19 09:39:33 -07:00
Masashi Fujita
9ee780894a
fix: Fix a typo 2021-09-16 03:35:56 +09:00
Daan Leijen
5869c85749 merge from dev 2021-06-17 19:18:57 -07:00
Daan Leijen
a83bca72b3 fixes for M1; disable interpose use zones; fix pedantic warnings 2021-06-17 19:15:09 -07:00
Daan Leijen
6ba9387bf8 Merge branch 'dev' into dev-slice 2021-06-07 17:51:42 -07:00
Daan Leijen
c8b5b74500 improve warnings 2021-06-07 17:51:27 -07:00
Daan Leijen
9974b0ee23 Merge branch 'dev' into dev-slice 2021-06-07 16:51:14 -07:00
Daan Leijen
4ba32c3160 Revert "make all includes relative"
This reverts commit 1feb6123d9.
2021-06-07 16:47:57 -07:00
Daan Leijen
7b595bd957 Merge branch 'dev' into dev-slice 2021-06-06 20:31:53 -07:00
Daan Leijen
1feb6123d9 make all includes relative 2021-06-06 20:31:36 -07:00
Daan Leijen
54b2c3525c merge with dev 2021-05-21 15:36:30 -07:00
Daan Leijen
e2c095fad2 fix installation directories on unix to use /lib, /include, /share; fix issues #399, #223, and #89 2021-05-21 15:15:50 -07:00
Daan Leijen
34172910e5 fix symlink and --prefix option with delayed CMAKE_INSTALL_PREFIX; fix issue #398 2021-05-21 13:01:11 -07:00
Daan
143cf9c3d6
Merge pull request #400 from mkurdej/redirect32
[Windows] Correctly choose 32-bit version of mimalloc-redirect{,32}.dll in CMake.
2021-05-21 12:17:33 -07:00
Yupeng Zhang
712e7d3de0 [CMake] Respect CMAKE_INSTALL_PREFIX at install time
The standard way of cmake install to a destination folder is the following pattern:
```shell
cd <BUILD_DIR>
cmake <SRC_DIR>
cmake --build <BUILD_DIR>
cmake --install <BUILD_DIR> --prefix <INSTALL_DIR>
```
Right now, the `<INSTALL_DIR>` folder passed in cmake --install command is ignored,
and always installed into `C:/Program Files(x86)/...`, which is the default
`CMAKE_INSTALL_PREFIX` value passed at the `cmake <SRC_DIR>` call.
Thus, it is not possible to install the binaries into different folders
without rerun the cmake/build process.

The important thing here is, the cmake variable `CMAKE_INSTALL_PREFIX`
is supposed to be passed at `cmake --install` time with the `--prefix` argument.
In cmake file, `install` with relative path will use that prefix automaticlly.
And it is the best practice to not include CMAKE_INSTALL_PREFIX
in the `install(... DESTINATION )` argument:
```
In particular, there is no need to make paths absolute by prepending
CMAKE_INSTALL_PREFIX; this prefix is used by default if the DESTINATION is a relative path.
```
referenced from: https://cmake.org/cmake/help/latest/command/install.html
2021-05-10 12:01:03 -04:00
Marek Kurdej
acba250e60 [Windows] Correctly choose 32-bit version of mimalloc-redirect{,32}.dll. 2021-05-04 11:26:07 +02:00
Daan Leijen
8f69e7095d Merge branch 'dev' into dev-slice 2021-02-22 14:28:22 -08:00
Daan Leijen
9f3c29c642 remove -march=native flag; see pr #362 for discussion 2021-02-22 13:09:41 -08:00
Daan Leijen
b93cba3b05 merge from dev 2021-01-29 16:53:52 -08:00
Daan Leijen
5291487dac fix cmake typo in merge for #255 2021-01-29 15:52:18 -08:00
Daan
71d80e914d
Merge branch 'dev' into patch-1 2021-01-29 15:49:57 -08:00
Daan Leijen
72559c5c49 merge from dev 2021-01-29 13:08:00 -08:00
Daan Leijen
f02643d9f2 Merge branch 'dev' into dev-slice 2021-01-29 12:33:52 -08:00
Tarcisio Rodrigues
eb5613563b Add /Zc:__cplusplus to MSVC compiler flags
Fix build errors for a clean build on Windows. For details about the
CMake teting code see https://stackoverflow.com/a/60890947/1254880
2021-01-28 23:58:41 -03:00
Tarcisio Rodrigues
335fbd9a43 Avoid MATCHES operator to check CMake options
Instead use simply the option name in conditional contexts.
2021-01-22 19:49:19 -03:00
Daan Leijen
da79629308 Merge branch 'dev' into dev-slice 2020-12-17 14:11:50 -08:00
Uwe L. Korn
62b6ccb03e Check for march=native before using it 2020-12-15 11:03:20 +01:00
Uwe L. Korn
d7f3d7679a Don't set march=native on Apple Silicon 2020-12-15 10:20:58 +01:00
daan
037285ac09 refactor segment cache and map in a separate source file 2020-09-08 13:27:34 -07:00
daan
a948724340 merge from dev (bitmap split) 2020-09-08 10:33:30 -07:00
daan
c86459afef split bitmap code into separate header and source file 2020-09-08 10:14:13 -07:00
daan
4f7bc7d98e Merge branch 'dev' into dev-slice 2020-09-06 08:50:44 -07:00
daan
f7b94fe21c experiment with bcrypt api again 2020-09-06 08:33:27 -07:00
daan
e740242978 link with advapi32 on windows 2020-09-06 08:29:08 -07:00
daan
03071dec0f merge from dev-atomic with new atomic interface 2020-09-03 12:13:09 -07:00
daan
2cffc3b851 merge from dev 2020-08-27 22:43:57 -07:00
daan
53cbc68de3 display compiler in cmake summary 2020-07-26 00:21:10 -07:00
daan
95afd0509f make segment abandoned_next atomic; tsan passes without warnings now (issue #130) 2020-07-25 23:50:22 -07:00
daan
73c109a04e add cmake option to build with ubsan 2020-07-25 19:55:36 -07:00
daan
529d74a282 use O1 with thread sanitizer 2020-07-22 12:45:53 -07:00
Daan
56b58a8021
Merge pull request #267 from devnexen/haiku_support
haiku support.
2020-07-21 18:32:40 -07:00
daan
01da026314 add option to build with thread sanitizer 2020-07-21 09:10:45 -07:00
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
53aa46890a merge from dev 2020-05-05 10:54:59 -07: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
84e1f7c92e merge from dev 2020-05-02 00:23:22 -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
1b0de9b4cf merge from dev 2020-04-28 16:22:38 -07: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
daan
1f396e64a0 merge from dev 2020-03-16 16:41:21 -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
09b98e0f7f merge from dev-exp; resolve conflicts 2020-01-27 22:14:10 -08:00
daan
b50bec463d merge from dev-exp; better abandoned reclamation 2020-01-27 22:12:23 -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
394a7a92ab merge from dev 2020-01-20 19:06:08 -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
4a27ea1643 merge from dev 2020-01-13 18:01:34 -08:00
daan
ba87a39d9f updated random cookie generation using OS primitives and chacha20 2019-12-22 19:37:49 -08:00