summaryrefslogtreecommitdiffstats
path: root/configure.ac
Commit message (Collapse)AuthorAgeFilesLines
* Fix TLS configuration.Jason Evans2015-09-021-8/+14
| | | | | | | | Fix TLS configuration such that it is enabled by default for platforms on which it works correctly. This regression was introduced by ac5db02034c01357a4ce90504886046a58117921 (Make --enable-tls and --enable-lazy-lock take precedence over configure.ac-hardcoded defaults).
* Stop forcing --enable-munmap on MinGW.Jason Evans2015-08-121-4/+0
| | | | | This is no longer necessary because of the more general chunk merge/split approach to dealing with map coalescing.
* Make --enable-tls and --enable-lazy-lock take precedence over ↵Mike Hommey2015-08-111-5/+9
| | | | configure.ac-hardcoded defaults
* Implement support for non-coalescing maps on MinGW.Jason Evans2015-07-251-0/+12
| | | | | | | | - Do not reallocate huge objects in place if the number of backing chunks would change. - Do not cache multi-chunk mappings. This resolves #213.
* Force lazy_lock on MinGW.Jason Evans2015-07-231-0/+1
| | | | This resolves #83.
* Add JEMALLOC_FORMAT_PRINTF().Jason Evans2015-07-221-0/+20
| | | | | | Replace JEMALLOC_ATTR(format(printf, ...). with JEMALLOC_FORMAT_PRINTF(), so that configuration feature tests can omit the attribute if it would cause extraneous compilation warnings.
* Fix alloc_size configure test.Jason Evans2015-07-101-3/+2
|
* Add configure test for alloc_size attribute.Jason Evans2015-07-101-0/+11
|
* Avoid function prototype incompatibilities.Jason Evans2015-07-101-0/+1
| | | | | | | | | Add various function attributes to the exported functions to give the compiler more information to work with during optimization, and also specify throw() when compiling with C++ on Linux, in order to adequately match what __THROW does in glibc. This resolves #237.
* Fix size class overflow handling when profiling is enabled.Jason Evans2015-06-241-0/+1
| | | | | | | | | | Fix size class overflow handling for malloc(), posix_memalign(), memalign(), calloc(), and realloc() when profiling is enabled. Remove an assertion that erroneously caused arena_sdalloc() to fail when profiling was enabled. This resolves #232.
* Implement cache index randomization for large allocations.Jason Evans2015-05-061-0/+18
| | | | | | | | | | | | | | | | | | | | Extract szad size quantization into {extent,run}_quantize(), and . quantize szad run sizes to the union of valid small region run sizes and large run sizes. Refactor iteration in arena_run_first_fit() to use run_quantize{,_first,_next(), and add support for padded large runs. For large allocations that have no specified alignment constraints, compute a pseudo-random offset from the beginning of the first backing page that is a multiple of the cache line size. Under typical configurations with 4-KiB pages and 64-byte cache lines this results in a uniform distribution among 64 page boundary offsets. Add the --disable-cache-oblivious option, primarily intended for performance testing. This resolves #13.
* Rename pprof to jeprof.Jason Evans2015-05-011-1/+1
| | | | | | | | | | This rename avoids installation collisions with the upstream gperftools. Additionally, jemalloc's per thread heap profile functionality introduced an incompatible file format, so it's now worthwhile to clearly distinguish jemalloc's version of this script from the upstream version. This resolves #229.
* Embed full library install when running ld on OS X.Jason Evans2015-05-011-1/+1
| | | | This resolves #228.
* OpenBSD don't support TLSSébastien Marie2015-04-071-1/+7
| | | | | | | | | under some compiler (gcc 4.8.4 in particular), the auto-detection of TLS don't work properly. force tls to be disabled. the testsuite pass under gcc (4.8.4) and gcc (4.2.1)
* Restore --enable-ivsalloc.Jason Evans2015-03-191-1/+22
| | | | | | | | | However, unlike before it was removed do not force --enable-ivsalloc when Darwin zone allocator integration is enabled, since the zone allocator code uses ivsalloc() regardless of whether malloc_usable_size() and sallocx() do. This resolves #211.
* adding support for bitrigDave Huseby2015-02-261-1/+1
|
* Fix --enable-debug regression.Jason Evans2015-02-161-0/+3
| | | | | | Fix --enable-debug to actually enable debug mode. This regression was introduced by cbf3a6d70371d2390b8b0e76814e04cc6088002c (Move centralized chunk management into arenas.).
* Put VERSION file in object directoryDan McGregor2015-02-131-11/+15
| | | | | | Also allow for the possibility that there exists a VERSION file in the srcroot, in case of building from a release tarball out of tree.
* Move centralized chunk management into arenas.Jason Evans2015-02-121-21/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Migrate all centralized data structures related to huge allocations and recyclable chunks into arena_t, so that each arena can manage huge allocations and recyclable virtual memory completely independently of other arenas. Add chunk node caching to arenas, in order to avoid contention on the base allocator. Use chunks_rtree to look up huge allocations rather than a red-black tree. Maintain a per arena unsorted list of huge allocations (which will be needed to enumerate huge allocations during arena reset). Remove the --enable-ivsalloc option, make ivsalloc() always available, and use it for size queries if --enable-debug is enabled. The only practical implications to this removal are that 1) ivsalloc() is now always available during live debugging (and the underlying radix tree is available during core-based debugging), and 2) size query validation can no longer be enabled independent of --enable-debug. Remove the stats.chunks.{current,total,high} mallctls, and replace their underlying statistics with simpler atomically updated counters used exclusively for gdump triggering. These statistics are no longer very useful because each arena manages chunks independently, and per arena statistics provide similar information. Simplify chunk synchronization code, now that base chunk allocation cannot cause recursive lock acquisition.
* Fix shell test to use = instead of ==.Jason Evans2015-02-051-1/+1
|
* Fix quoting for CONFIG-related sed expression.Jason Evans2015-01-261-1/+1
|
* add openbsd supportSébastien Marie2015-01-251-0/+5
|
* Implement the jemalloc-config script.Jason Evans2015-01-231-3/+7
| | | | This resolves #133.
* Make mixed declarations an errorMike Hommey2014-12-181-0/+1
| | | | | | It often happens that code changes introduce mixed declarations, that then break building with Visual Studio. Since the code style is to not use mixed declarations anyways, we might as well enforce it with -Werror.
* Ignore MALLOC_CONF in set{uid,gid,cap} binaries.Daniel Micay2014-12-141-0/+18
| | | | | | This eliminates the malloc tunables as tools for an attacker. Closes #173
* Add a C11 atomics-based implementation of atomic.h API.Chih-hung Hsieh2014-12-071-0/+21
|
* Fix variable declaration with no type in the configure script.Guilherme Goncalves2014-10-201-1/+1
|
* Add --with-lg-tiny-min, generalize --with-lg-quantum.Jason Evans2014-10-111-4/+17
|
* Add AC_CACHE_CHECK() for pause instruction.Jason Evans2014-10-111-3/+4
| | | | This supports cross compilation.
* Add configure options.Jason Evans2014-10-101-10/+35
| | | | | | | | | | | | Add: --with-lg-page --with-lg-page-sizes --with-lg-size-class-group --with-lg-quantum Get rid of STATIC_PAGE_SHIFT, in favor of directly setting LG_PAGE. Fix various edge conditions exposed by the configure options.
* Don't configure HAVE_SSE2.Jason Evans2014-10-091-10/+0
| | | | | | | Don't configure HAVE_SSE2 (on behalf of SFMT), because its dependencies are notoriously unportable in practice. This resolves #119.
* Don't force TLS on behalf of heap profiling.Jason Evans2014-10-041-5/+0
| | | | | | | | Revert 6716aa83526b3f866d73a033970cc920bc61c13f (Force use of TLS if heap profiling is enabled.). No existing tests indicate that this is necessary, nor does code inspection uncover any potential issues. Most likely the original commit covered up a bug related to tsd-internal allocation that has since been fixed.
* correctly detect adaptive mutexes in pthreadsEric Wong2014-09-291-0/+12
| | | | | PTHREAD_MUTEX_ADAPTIVE_NP is an enum on glibc and not a macro, we must test for their existence by attempting compilation.
* autoconf: Support cygwin in addition to mingwDave Rigby2014-09-241-1/+1
|
* Generate a pkg-config fileNick White2014-09-191-0/+3
|
* fix tls_model autoconf testDaniel Micay2014-09-161-1/+1
| | | | | | It has an unused variable, so it was always failing (at least with gcc 4.9.1). Alternatively, the `-Werror` flag could be removed if it isn't strictly necessary.
* Add support for sized deallocation.Daniel Micay2014-09-091-1/+1
| | | | | | | | | | | | | | | | | This adds a new `sdallocx` function to the external API, allowing the size to be passed by the caller. It avoids some extra reads in the thread cache fast path. In the case where stats are enabled, this avoids the work of calculating the size from the pointer. An assertion validates the size that's passed in, so enabling debugging will allow users of the API to debug cases where an incorrect size is passed in. The performance win for a contrived microbenchmark doing an allocation and immediately freeing it is ~10%. It may have a different impact on a real workload. Closes #28
* Move typedefs from jemalloc_protos.h.in to jemalloc_typedefs.h.in.Jason Evans2014-09-081-0/+3
| | | | | Move typedefs from jemalloc_protos.h.in to jemalloc_typedefs.h.in, so that typedefs aren't redefined when compiling stress tests.
* Make VERSION generation more robust.Jason Evans2014-09-021-4/+26
| | | | | | | | | | | | Relax the "are we in a git repo?" check to succeed even if the top level jemalloc directory is not at the top level of the git repo. Add git tag filtering so that only version triplets match when generating VERSION. Add fallback bogus VERSION creation, so that in the worst case, rather than generating empty values for e.g. JEMALLOC_VERSION_MAJOR, configuration ends up generating useless constants.
* Test for availability of malloc hooks via autoconfSara Golemon2014-08-221-0/+31
| | | | | | | | | __*_hook() is glibc, but on at least one glibc platform (homebrew), the __GLIBC__ define isn't set correctly and we miss being able to use these hooks. Do a feature test for it during configuration so that we enable it anywhere the hooks are actually available.
* Set VERSION also when the source directory is a git submodule using a ".git" ↵Psi Mankoski2014-08-121-2/+2
| | | | file pointing to the repo. directory.
* Merge pull request #102 from mneumann/dflyJason Evans2014-08-061-0/+5
|\ | | | | Support DragonFlyBSD
| * Support DragonFlyBSDMichael Neumann2014-08-051-0/+5
| | | | | | | | | | Note that in contrast to FreeBSD, DragonFly does not work with force_lazy_lock enabled.
* | Remove ${srcroot} from cfghdrs_in, cfgoutputs_in and cfghdrs_tup in configureMike Hommey2014-08-051-23/+23
|/ | | | | | On Windows, srcroot may start with "drive:", which confuses autoconf's AC_CONFIG_* macros. The macros works equally well without ${srcroot}, provided some adjustment to Makefile.in.
* Fix unportable == operator in configure scriptsSteven Stewart-Gallus2014-06-191-3/+3
| | | | | | | | Now this code is more portable and now people can use faster shells than Bash such as Dash. To use a faster shell with autoconf set the CONFIG_SHELL environment variable to the shell and run the configure script with the shell.
* Support for iOS compilationValerii Hiora2014-06-041-1/+1
|
* Use JEMALLOC_INTERNAL_FFSL in STATIC_PAGE_SHIFT testMike Hommey2014-06-041-40/+39
|
* Check for __builtin_ffsl before ffsl.Mike Hommey2014-06-041-13/+14
| | | | | | | When building with -O0, GCC doesn't use builtins for ffs and ffsl calls, and uses library function calls instead. But the Android NDK doesn't have those functions exported from any library, leading to build failure. However, using __builtin_ffs* uses the builtin inlines.
* Add check for madvise(2) to configure.ac.Richard Diamond2014-06-031-0/+14
| | | | | | Some platforms, such as Google's Portable Native Client, use Newlib and thus lack access to madvise(2). In those instances, pages_purge() is transformed into a no-op.
* Try to use __builtin_ffsl if ffsl is unavailable.Richard Diamond2014-06-021-5/+25
| | | | | | | | | | | Some platforms (like those using Newlib) don't have ffs/ffsl. This commit adds a check to configure.ac for __builtin_ffsl if ffsl isn't found. __builtin_ffsl performs the same function as ffsl, and has the added benefit of being available on any platform utilizing Gcc-compatible compiler. This change does not address the used of ffs in the MALLOCX_ARENA() macro.