PointerBindsToType: false
IncludeBlocks: Regroup
IncludeCategories:
+ - Regex: '^<(urcu\.h|urcu/urcu-|urcu-)'
+ Priority: 2
+ - Regex: '^<urcu/'
+ Priority: 3
- Regex: '^<isc/'
Priority: 5
- Regex: '^<(pk11|pkcs11)/'
- Regex: '^<tests/'
Priority: 100
- Regex: '<openssl/'
- Priority: 1
+ Priority: 4
- Regex: '<(mysql|protobuf-c)/'
- Priority: 1
+ Priority: 4
- Regex: '.*'
Priority: 0
IndentExternBlock: NoIndent
PenaltyExcessCharacter: 100
Standard: Cpp11
ContinuationIndentWidth: 8
+ForEachMacros: [ 'cds_lfs_for_each', 'cds_lfs_for_each_safe', 'cds_list_for_each_entry_safe' ]
PointerBindsToType: false
IncludeBlocks: Regroup
IncludeCategories:
- - Regex: '^<isc/'
+ - Regex: '^<(urcu/urcu-|urcu-)'
Priority: 2
- - Regex: '^<dns/'
+ - Regex: '^<urcu/'
Priority: 3
- - Regex: '^<iscccc/'
- Priority: 4
- - Regex: '^<isccfg/'
+ - Regex: '^<isc/'
Priority: 5
+ - Regex: '^<(pk11|pkcs11)/'
+ Priority: 10
+ - Regex: '^<dns/'
+ Priority: 15
+ - Regex: '^<dst/'
+ Priority: 20
+ - Regex: '^<isccc/'
+ Priority: 25
+ - Regex: '^<isccfg/'
+ Priority: 30
- Regex: '^<ns/'
- Priority: 6
- - Regex: '^(<[^/]*)/)'
- Priority: 8
+ Priority: 35
+ - Regex: '^<irs/'
+ Priority: 40
+ - Regex: '^<(dig|named|rndc|confgen|dlz)/'
+ Priority: 50
+ - Regex: '^<dlz_'
+ Priority: 55
+ - Regex: '^".*"'
+ Priority: 99
- Regex: '^<tests/'
- Priority: 10
- - Regex: '<[[:alnum:].]+>'
- Priority: 1
- - Regex: '".*"'
- Priority: 9
+ Priority: 100
+ - Regex: '<openssl/'
+ Priority: 4
+ - Regex: '<(mysql|protobuf-c)/'
+ Priority: 4
+ - Regex: '.*'
+ Priority: 0
IndentExternBlock: NoIndent
KeepEmptyLinesAtTheStartOfBlocks: false
MaxEmptyLinesToKeep: 1
AX_RESTORE_FLAGS([libuv])
+# userspace-rcu (QSBR variant)
+PKG_CHECK_MODULES([LIBURCU], [liburcu-qsbr liburcu-cds])
+
# [pairwise: --enable-doh --with-libnghttp2=auto, --enable-doh --with-libnghttp2=yes, --disable-doh]
AC_ARG_ENABLE([doh],
[AS_HELP_STRING([--disable-doh], [disable DNS over HTTPS, removes dependency on libnghttp2 (default is --enable-doh)])],
To build BIND 9, the following packages must be installed:
- ``libcrypto``, ``libssl``
+- ``liburcu``
- ``libuv``
- ``perl``
- ``pkg-config`` / ``pkgconfig`` / ``pkgconf``
PKCS#11 hardware service module for cryptographic operations,
``engine_pkcs11`` from the OpenSC project must be compiled and used.
+The Userspace RCU library ``liburcu`` (https://liburcu.org/) is used
+for lock-free data structures and concurrent safe memory reclamation.
+
On Linux, process capabilities are managed in user space using the
``libcap`` library
(https://git.kernel.org/pub/scm/libs/libcap/libcap.git/), which can be
libisc_la_CPPFLAGS = \
$(AM_CPPFLAGS) \
$(LIBISC_CFLAGS) \
+ $(LIBURCU_CFLAGS) \
$(LIBUV_CFLAGS) \
$(OPENSSL_CFLAGS) \
$(ZLIB_CFLAGS)
-release "$(PACKAGE_VERSION)"
libisc_la_LIBADD = \
+ $(LIBURCU_LIBS) \
$(LIBUV_LIBS) \
$(OPENSSL_LIBS) \
$(ZLIB_LIBS)