--- a/configure Thu Oct 02 17:58:43 2025 +0200 +++ b/configure Thu Oct 02 21:21:45 2025 +0200 @@ -115,6 +115,7 @@ --enable-api-docs run Doxygen during build --enable-coverage test coverage with gcov --enable-asan address sanitizer + --disable-memrchr --disable-cxx-tests the check-cxx makefile target --disable-szmul-builtin use custom implementation, instead @@ -161,6 +162,7 @@ fi # features +FEATURE_MEMRCHR=auto FEATURE_CXX_TESTS=auto FEATURE_SZMUL_BUILTIN=auto @@ -195,6 +197,8 @@ "--disable-coverage") unset FEATURE_COVERAGE ;; "--enable-asan") FEATURE_ASAN=on ;; "--disable-asan") unset FEATURE_ASAN ;; + "--enable-memrchr") FEATURE_MEMRCHR=on ;; + "--disable-memrchr") unset FEATURE_MEMRCHR ;; "--enable-cxx-tests") FEATURE_CXX_TESTS=on ;; "--disable-cxx-tests") unset FEATURE_CXX_TESTS ;; "--enable-szmul-builtin") FEATURE_SZMUL_BUILTIN=on ;; @@ -349,7 +353,7 @@ if notistoolchain "gcc"; then break fi - if command -v gcovr > /dev/null ; then + if command -v gcovr > /dev/null 2>&1 ; then : else break @@ -497,13 +501,48 @@ dep_checked_file_tools=1 return 0 } +dependency_error_memrchr() +{ + print_check_msg "$dep_checked_memrchr" "checking for memrchr... " + # dependency memrchr + while true + do + if $TOOLCHAIN_CC -o /dev/null make/test_memrchr.c > /dev/null 2>&1 ; then + : + else + break + fi + TEMP_CFLAGS="$TEMP_CFLAGS -DWITH_MEMRCHR" + print_check_msg "$dep_checked_memrchr" "yes\n" + dep_checked_memrchr=1 + return 1 + done + + # dependency memrchr + while true + do + if $TOOLCHAIN_CC -o /dev/null -D_GNU_SOURCE make/test_memrchr.c > /dev/null 2>&1 ; then + : + else + break + fi + TEMP_CFLAGS="$TEMP_CFLAGS -DWITH_MEMRCHR -DMEMRCHR_NEED_GNU" + print_check_msg "$dep_checked_memrchr" "yes\n" + dep_checked_memrchr=1 + return 1 + done + + print_check_msg "$dep_checked_memrchr" "no\n" + dep_checked_memrchr=1 + return 0 +} dependency_error_doxygen() { print_check_msg "$dep_checked_doxygen" "checking for doxygen... " # dependency doxygen while true do - if test -n "$DOXYGEN" > /dev/null ; then + if test -n "$DOXYGEN" > /dev/null 2>&1 ; then : else break @@ -527,7 +566,7 @@ # dependency no_coverage while true do - if test -z "$FEATURE_COVERAGE" > /dev/null ; then + if test -z "$FEATURE_COVERAGE" > /dev/null 2>&1 ; then : else break @@ -697,6 +736,26 @@ else : fi +if [ -n "$FEATURE_MEMRCHR" ]; then + # check dependency + if dependency_error_memrchr ; then + # "auto" features can fail and are just disabled in this case + if [ "$FEATURE_MEMRCHR" = "auto" ]; then + DISABLE_FEATURE_MEMRCHR=1 + else + DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED memrchr " + ERROR=1 + fi + fi + if [ -n "$DISABLE_FEATURE_MEMRCHR" ]; then + unset FEATURE_MEMRCHR + fi +fi +if [ -n "$FEATURE_MEMRCHR" ]; then + : +else + : +fi if [ -n "$FEATURE_CXX_TESTS" ]; then # check dependency if dependency_error_cxx ; then @@ -843,6 +902,11 @@ else echo " asan: off" fi +if [ -n "$FEATURE_MEMRCHR" ]; then +echo " memrchr: on" +else +echo " memrchr: off" +fi if [ -n "$FEATURE_CXX_TESTS" ]; then echo " cxx-tests: on" else