mirror of
https://github.com/matrix-construct/construct
synced 2024-06-02 01:59:33 +02:00
configure: Add options for third-party allocator selection/deselection and inclusion.
This commit is contained in:
parent
f88cc51e37
commit
ea0a1df3a1
60
configure.ac
60
configure.ac
|
@ -440,6 +440,22 @@ AM_COND_IF([UNTUNED],
|
||||||
CXXFLAGS+=""
|
CXXFLAGS+=""
|
||||||
])
|
])
|
||||||
|
|
||||||
|
dnl
|
||||||
|
dnl Disable third-party allocators
|
||||||
|
dnl
|
||||||
|
|
||||||
|
AC_MSG_CHECKING(whether to prevent available third-party allocator libraries from being used)
|
||||||
|
AC_ARG_ENABLE(allocators, AC_HELP_STRING([--disable-alloc-libs], [Disable third-party dynamic memory libraries (jemalloc/tcmalloc/etc)]),
|
||||||
|
[
|
||||||
|
use_alloc_libs="no"
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
], [
|
||||||
|
use_alloc_libs="yes"
|
||||||
|
AC_MSG_RESULT([no])
|
||||||
|
])
|
||||||
|
|
||||||
|
AM_CONDITIONAL([ALLOC_LIBS], [[[[ "$use_alloc_libs" = "yes" ]]]])
|
||||||
|
|
||||||
dnl !!! Experimental !!!
|
dnl !!! Experimental !!!
|
||||||
dnl
|
dnl
|
||||||
dnl Allows a signal handler to throw a C++ exception if the signal is from
|
dnl Allows a signal handler to throw a C++ exception if the signal is from
|
||||||
|
@ -1665,9 +1681,48 @@ dnl
|
||||||
RB_CHK_SYSHEADER(jemalloc/jemalloc.h, [JEMALLOC_H])
|
RB_CHK_SYSHEADER(jemalloc/jemalloc.h, [JEMALLOC_H])
|
||||||
AC_CHECK_LIB(jemalloc, malloc,
|
AC_CHECK_LIB(jemalloc, malloc,
|
||||||
[
|
[
|
||||||
jemalloc="yes"
|
have_jemalloc="yes"
|
||||||
], [
|
], [
|
||||||
jemalloc="no"
|
have_jemalloc="no"
|
||||||
|
])
|
||||||
|
|
||||||
|
AC_MSG_CHECKING(whether to enable use of jemalloc)
|
||||||
|
AC_ARG_ENABLE(jemalloc, AC_HELP_STRING([--enable-jemalloc], [Use jemalloc as third-party dynamic memory manager.]),
|
||||||
|
[
|
||||||
|
use_jemalloc="yes"
|
||||||
|
AC_MSG_RESULT([yes])
|
||||||
|
], [
|
||||||
|
use_jemalloc="no"
|
||||||
|
AC_MSG_RESULT([no])
|
||||||
|
])
|
||||||
|
|
||||||
|
AM_CONDITIONAL([JEMALLOC], [test "x$have_jemalloc" = "xyes" && test "x$use_jemalloc" = "xyes" ])
|
||||||
|
|
||||||
|
dnl
|
||||||
|
dnl
|
||||||
|
dnl Select a third-party allocator
|
||||||
|
dnl
|
||||||
|
dnl
|
||||||
|
|
||||||
|
AC_SUBST(MALLOC_CPPFLAGS)
|
||||||
|
AC_SUBST(MALLOC_CXXFLAGS)
|
||||||
|
AC_SUBST(MALLOC_LDFLAGS)
|
||||||
|
AC_SUBST(MALLOC_LIBS)
|
||||||
|
alloc_lib="standard"
|
||||||
|
|
||||||
|
dnl ALLOC_LIBS true unless --disable-alloc-libs configured
|
||||||
|
AM_COND_IF([ALLOC_LIBS],
|
||||||
|
[
|
||||||
|
AM_COND_IF([JEMALLOC],
|
||||||
|
[
|
||||||
|
alloc_lib="jemalloc"
|
||||||
|
MALLOC_LIBS+=" -ljemalloc"
|
||||||
|
AC_DEFINE(IRCD_ALLOCATOR_USE_JEMALLOC, 1, [Use jemalloc as the allocator])
|
||||||
|
], [
|
||||||
|
AC_DEFINE(IRCD_ALLOCATOR_USE_DEFAULT, 1, [Use the default allocator])
|
||||||
|
])
|
||||||
|
], [
|
||||||
|
AC_DEFINE(IRCD_ALLOCATOR_USE_DEFAULT, 1, [Use the default allocator])
|
||||||
])
|
])
|
||||||
|
|
||||||
dnl
|
dnl
|
||||||
|
@ -1839,6 +1894,7 @@ echo "Link-time optimized ............... $lto"
|
||||||
echo "Optimization level ................ $optimize_level"
|
echo "Optimization level ................ $optimize_level"
|
||||||
echo "Generic binary .................... $enable_generic"
|
echo "Generic binary .................... $enable_generic"
|
||||||
echo "Untuned binary .................... $enable_untuned"
|
echo "Untuned binary .................... $enable_untuned"
|
||||||
|
echo "Memory allocator .................. $alloc_lib"
|
||||||
echo "Logging level ..................... $LOG_LEVEL"
|
echo "Logging level ..................... $LOG_LEVEL"
|
||||||
echo "Installing into ................... $prefix"
|
echo "Installing into ................... $prefix"
|
||||||
echo
|
echo
|
||||||
|
|
|
@ -17,6 +17,7 @@ AM_CPPFLAGS = \
|
||||||
@SNAPPY_CPPFLAGS@ \
|
@SNAPPY_CPPFLAGS@ \
|
||||||
@LZ4_CPPFLAGS@ \
|
@LZ4_CPPFLAGS@ \
|
||||||
@Z_CPPFLAGS@ \
|
@Z_CPPFLAGS@ \
|
||||||
|
@MALLOC_CPPFLAGS@ \
|
||||||
@EXTRA_CPPFLAGS@ \
|
@EXTRA_CPPFLAGS@ \
|
||||||
###
|
###
|
||||||
|
|
||||||
|
@ -66,6 +67,7 @@ construct_LDFLAGS = \
|
||||||
@SNAPPY_LDFLAGS@ \
|
@SNAPPY_LDFLAGS@ \
|
||||||
@LZ4_LDFLAGS@ \
|
@LZ4_LDFLAGS@ \
|
||||||
@Z_LDFLAGS@ \
|
@Z_LDFLAGS@ \
|
||||||
|
@MALLOC_LDFLAGS@ \
|
||||||
###
|
###
|
||||||
|
|
||||||
construct_LDADD = \
|
construct_LDADD = \
|
||||||
|
@ -80,6 +82,7 @@ construct_LDADD = \
|
||||||
@SNAPPY_LIBS@ \
|
@SNAPPY_LIBS@ \
|
||||||
@LZ4_LIBS@ \
|
@LZ4_LIBS@ \
|
||||||
@Z_LIBS@ \
|
@Z_LIBS@ \
|
||||||
|
@MALLOC_LIBS@ \
|
||||||
@EXTRA_LIBS@ \
|
@EXTRA_LIBS@ \
|
||||||
###
|
###
|
||||||
|
|
||||||
|
|
11
doc/BUILD.md
11
doc/BUILD.md
|
@ -111,6 +111,17 @@ This manually applies full release-mode optimizations even when using
|
||||||
`--enable-debug`. Implied when not in debug mode.
|
`--enable-debug`. Implied when not in debug mode.
|
||||||
|
|
||||||
|
|
||||||
|
##### Disable third-party dynamic allocator libraries
|
||||||
|
|
||||||
|
```
|
||||||
|
--disable-alloc-libs
|
||||||
|
```
|
||||||
|
`./configure` will detect alternative `malloc()` implementations found in
|
||||||
|
libraries installed on the system (jemalloc/tcmalloc/etc). Construct developers
|
||||||
|
may enable these to be configured by default, if detected. To always prevent
|
||||||
|
any alternative to the default standard library allocator specify this option.
|
||||||
|
|
||||||
|
|
||||||
##### Logging level
|
##### Logging level
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
|
@ -12,6 +12,7 @@ AM_CPPFLAGS = \
|
||||||
@SNAPPY_CPPFLAGS@ \
|
@SNAPPY_CPPFLAGS@ \
|
||||||
@LZ4_CPPFLAGS@ \
|
@LZ4_CPPFLAGS@ \
|
||||||
@Z_CPPFLAGS@ \
|
@Z_CPPFLAGS@ \
|
||||||
|
@MALLOC_CPPFLAGS@ \
|
||||||
@EXTRA_CPPFLAGS@ \
|
@EXTRA_CPPFLAGS@ \
|
||||||
###
|
###
|
||||||
|
|
||||||
|
|
|
@ -27,6 +27,7 @@ AM_CPPFLAGS = \
|
||||||
@SNAPPY_CPPFLAGS@ \
|
@SNAPPY_CPPFLAGS@ \
|
||||||
@LZ4_CPPFLAGS@ \
|
@LZ4_CPPFLAGS@ \
|
||||||
@Z_CPPFLAGS@ \
|
@Z_CPPFLAGS@ \
|
||||||
|
@MALLOC_CPPFLAGS@ \
|
||||||
-include ircd/ircd.pic.h \
|
-include ircd/ircd.pic.h \
|
||||||
@EXTRA_CPPFLAGS@ \
|
@EXTRA_CPPFLAGS@ \
|
||||||
###
|
###
|
||||||
|
@ -86,6 +87,7 @@ libircd_la_LDFLAGS = \
|
||||||
@SNAPPY_LDFLAGS@ \
|
@SNAPPY_LDFLAGS@ \
|
||||||
@LZ4_LDFLAGS@ \
|
@LZ4_LDFLAGS@ \
|
||||||
@Z_LDFLAGS@ \
|
@Z_LDFLAGS@ \
|
||||||
|
@MALLOC_LDFLAGS@ \
|
||||||
###
|
###
|
||||||
|
|
||||||
libircd_la_LIBADD = \
|
libircd_la_LIBADD = \
|
||||||
|
@ -99,6 +101,7 @@ libircd_la_LIBADD = \
|
||||||
@SNAPPY_LIBS@ \
|
@SNAPPY_LIBS@ \
|
||||||
@LZ4_LIBS@ \
|
@LZ4_LIBS@ \
|
||||||
@Z_LIBS@ \
|
@Z_LIBS@ \
|
||||||
|
@MALLOC_LIBS@ \
|
||||||
@EXTRA_LIBS@ \
|
@EXTRA_LIBS@ \
|
||||||
###
|
###
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue