No description
Find a file
roblabla fe12022b68 Make je_malloc_conf weak on MSVC
Previously, the malloc_conf attribute wasn't as "weak" on MSVC as on
other toolchain. While it is possible to override it in an OBJ file -
in MSVC, every symbol coming from a LIB file can be overriden from an
OBJ file - it isn't possible to override it from another lib file. This
makes it impossible to override it from Rust, for instance, as it always
generates libs and links them together, instead of linking the obj files
directly.

While the weak attribute is not supported by MSVC, it can be emulated
using the /alternatename linker flag. This flag takes two symbols, and
aliases the first symbol to the second if it isn't defined during
linking. This ensures that the default value provided by jemalloc can be
overridden from all contexts, whether the override comes from an obj or
a lib, matching the behavior of gcc's weak attribute.

This is supported by MSVC link.exe since time immemorial, and by
lld-link since 3.7.0.
2024-08-20 23:09:04 +02:00
.github/workflows Update acitons/checkout and actions/upload-artifact to v4 2024-03-12 12:59:15 -07:00
bin Enable heap profiling on MacOS 2024-04-09 12:57:01 -07:00
build-aux Remove trailing whitespace 2023-06-23 11:58:18 -07:00
doc Add support for namespace pids in heap profile names 2024-04-09 10:27:52 -07:00
doc_internal update PROFILING_INTERNALS.md 2022-10-03 10:48:29 -07:00
include Use a for-loop to fulfill flush requests that are larger than CACHE_BIN_NFLUSH_BATCH_MAX items 2024-08-06 13:16:09 -07:00
m4 Support C++17 over-aligned allocation 2019-11-22 10:14:16 -08:00
msvc Add batcher module. 2024-05-22 10:30:31 -07:00
scripts Disable FreeBSD on Travis CI since it's not working. 2024-01-04 14:47:52 -08:00
src Make je_malloc_conf weak on MSVC 2024-08-20 23:09:04 +02:00
test increase the ncached_max in fill_flush test case to 1024 2024-08-06 13:16:09 -07:00
.appveyor.yml Appveyor: fix 404 errors. 2020-10-27 15:28:20 -07:00
.autom4te.cfg Disable autom4te cache. 2014-09-02 17:49:29 -07:00
.cirrus.yml Fix Cirrus CI. 2024-02-16 13:05:40 -08:00
.clang-format Add a .clang-format file. 2020-10-02 14:49:56 -07:00
.gitattributes fix git handling of newlines on windows 2014-05-07 18:48:39 -04:00
.gitignore gitignore: Start ignoring clangd dirs. 2024-01-23 17:02:01 -08:00
.travis.yml Disable FreeBSD on Travis CI since it's not working. 2024-01-04 14:47:52 -08:00
autogen.sh build: Make autogen.sh accept quoted extra options 2024-01-03 14:20:34 -08:00
ChangeLog Update ChangeLog for 5.3.0. 2022-05-06 11:24:21 -07:00
config.stamp.in Move repo contents in jemalloc/ to top level. 2011-03-31 20:36:17 -07:00
configure.ac Add support for the deprecated attribute 2023-08-04 15:47:05 -07:00
COPYING Update copyright dates. 2019-01-25 13:25:20 -08:00
INSTALL.md Add vcpkg installation instructions 2022-09-19 15:15:28 -07:00
jemalloc.pc.in Expose jemalloc_prefix via pkg-config 2023-09-05 14:30:21 -07:00
Makefile.in Add batching to arena bins. 2024-05-22 10:30:31 -07:00
README switch to https 2023-03-09 11:44:02 -08:00
run_tests.sh Introduce scripts to run all possible tests 2017-01-30 17:51:57 -08:00
TUNING.md switch to https 2023-03-09 11:44:02 -08:00

jemalloc is a general purpose malloc(3) implementation that emphasizes
fragmentation avoidance and scalable concurrency support.  jemalloc first came
into use as the FreeBSD libc allocator in 2005, and since then it has found its
way into numerous applications that rely on its predictable behavior.  In 2010
jemalloc development efforts broadened to include developer support features
such as heap profiling and extensive monitoring/tuning hooks.  Modern jemalloc
releases continue to be integrated back into FreeBSD, and therefore versatility
remains critical.  Ongoing development efforts trend toward making jemalloc
among the best allocators for a broad range of demanding applications, and
eliminating/mitigating weaknesses that have practical repercussions for real
world applications.

The COPYING file contains copyright and licensing information.

The INSTALL file contains information on how to configure, build, and install
jemalloc.

The ChangeLog file contains a brief summary of changes for each release.

URL: https://jemalloc.net/