2319152d9f
Adds cpp bindings for jemalloc, along with necessary autoconf settings. This is mostly to add sized deallocation support, which can't be added from C directly. Sized deallocation is ~10% microbench improvement. * Import ax_cxx_compile_stdcxx.m4 from the autoconf repo, seems like the easiest way to get c++14 detection. * Adds various other changes, like CXXFLAGS, to configure.ac. * Adds new rules to Makefile.in for src/jemalloc-cpp.cpp, and a basic unittest. * Both new and delete are overridden, to ensure jemalloc is used for both. * TODO future enhancement of avoiding extra PLT thunks for new and delete - sdallocx and malloc are publicly exported jemalloc symbols, using an alias would link them directly. Unfortunately, was having trouble getting it to play nice with jemalloc's namespace support. Testing: Tested gcc 4.8, gcc 5, gcc 5.2, clang 4.0. Only gcc >= 5 has sized deallocation support, verified that the rest build correctly. Tested mac osx and Centos. Tested --with-jemalloc-prefix and --without-export. This resolves #202.
84 lines
1.6 KiB
Bash
84 lines
1.6 KiB
Bash
#!/bin/sh
|
|
|
|
usage() {
|
|
cat <<EOF
|
|
Usage:
|
|
@BINDIR@/jemalloc-config <option>
|
|
Options:
|
|
--help | -h : Print usage.
|
|
--version : Print jemalloc version.
|
|
--revision : Print shared library revision number.
|
|
--config : Print configure options used to build jemalloc.
|
|
--prefix : Print installation directory prefix.
|
|
--bindir : Print binary installation directory.
|
|
--datadir : Print data installation directory.
|
|
--includedir : Print include installation directory.
|
|
--libdir : Print library installation directory.
|
|
--mandir : Print manual page installation directory.
|
|
--cc : Print compiler used to build jemalloc.
|
|
--cflags : Print compiler flags used to build jemalloc.
|
|
--cppflags : Print preprocessor flags used to build jemalloc.
|
|
--cxxflags : Print C++ compiler flags used to build jemalloc.
|
|
--ldflags : Print library flags used to build jemalloc.
|
|
--libs : Print libraries jemalloc was linked against.
|
|
EOF
|
|
}
|
|
|
|
prefix="@prefix@"
|
|
exec_prefix="@exec_prefix@"
|
|
|
|
case "$1" in
|
|
--help | -h)
|
|
usage
|
|
exit 0
|
|
;;
|
|
--version)
|
|
echo "@jemalloc_version@"
|
|
;;
|
|
--revision)
|
|
echo "@rev@"
|
|
;;
|
|
--config)
|
|
echo "@CONFIG@"
|
|
;;
|
|
--prefix)
|
|
echo "@PREFIX@"
|
|
;;
|
|
--bindir)
|
|
echo "@BINDIR@"
|
|
;;
|
|
--datadir)
|
|
echo "@DATADIR@"
|
|
;;
|
|
--includedir)
|
|
echo "@INCLUDEDIR@"
|
|
;;
|
|
--libdir)
|
|
echo "@LIBDIR@"
|
|
;;
|
|
--mandir)
|
|
echo "@MANDIR@"
|
|
;;
|
|
--cc)
|
|
echo "@CC@"
|
|
;;
|
|
--cflags)
|
|
echo "@CFLAGS@"
|
|
;;
|
|
--cppflags)
|
|
echo "@CPPFLAGS@"
|
|
;;
|
|
--cxxflags)
|
|
echo "@CXXFLAGS@"
|
|
;;
|
|
--ldflags)
|
|
echo "@LDFLAGS@ @EXTRA_LDFLAGS@"
|
|
;;
|
|
--libs)
|
|
echo "@LIBS@"
|
|
;;
|
|
*)
|
|
usage
|
|
exit 1
|
|
esac
|