| 154 |
154 |
| 155 Optional Features: |
155 Optional Features: |
| 156 --enable-api-docs run Doxygen during build |
156 --enable-api-docs run Doxygen during build |
| 157 --enable-coverage test coverage with gcov |
157 --enable-coverage test coverage with gcov |
| 158 --enable-asan address sanitizer |
158 --enable-asan address sanitizer |
| |
159 --enable-ubsan undefined behavior sanitizer |
| 159 --disable-cxx-tests the check-cxx makefile target |
160 --disable-cxx-tests the check-cxx makefile target |
| 160 --disable-szmul-builtin use custom implementation, instead |
161 --disable-szmul-builtin use custom implementation, instead |
| 161 --disable-memrchr |
162 --disable-memrchr |
| 162 --disable-qsort_r |
163 --disable-qsort_r |
| 163 |
164 |
| 304 "--disable-api-docs") unset FEATURE_API_DOCS ;; |
305 "--disable-api-docs") unset FEATURE_API_DOCS ;; |
| 305 "--enable-coverage") FEATURE_COVERAGE=on ;; |
306 "--enable-coverage") FEATURE_COVERAGE=on ;; |
| 306 "--disable-coverage") unset FEATURE_COVERAGE ;; |
307 "--disable-coverage") unset FEATURE_COVERAGE ;; |
| 307 "--enable-asan") FEATURE_ASAN=on ;; |
308 "--enable-asan") FEATURE_ASAN=on ;; |
| 308 "--disable-asan") unset FEATURE_ASAN ;; |
309 "--disable-asan") unset FEATURE_ASAN ;; |
| |
310 "--enable-ubsan") FEATURE_UBSAN=on ;; |
| |
311 "--disable-ubsan") unset FEATURE_UBSAN ;; |
| 309 "--enable-cxx-tests") FEATURE_CXX_TESTS=on ;; |
312 "--enable-cxx-tests") FEATURE_CXX_TESTS=on ;; |
| 310 "--disable-cxx-tests") unset FEATURE_CXX_TESTS ;; |
313 "--disable-cxx-tests") unset FEATURE_CXX_TESTS ;; |
| 311 "--enable-szmul-builtin") FEATURE_SZMUL_BUILTIN=on ;; |
314 "--enable-szmul-builtin") FEATURE_SZMUL_BUILTIN=on ;; |
| 312 "--disable-szmul-builtin") unset FEATURE_SZMUL_BUILTIN ;; |
315 "--disable-szmul-builtin") unset FEATURE_SZMUL_BUILTIN ;; |
| 313 "--enable-memrchr") FEATURE_MEMRCHR=on ;; |
316 "--enable-memrchr") FEATURE_MEMRCHR=on ;; |
| 592 |
595 |
| 593 print_check_msg "$dep_checked_no_coverage" "no\n" |
596 print_check_msg "$dep_checked_no_coverage" "no\n" |
| 594 dep_checked_no_coverage=1 |
597 dep_checked_no_coverage=1 |
| 595 return 0 |
598 return 0 |
| 596 } |
599 } |
| |
600 dependency_error_ubsan() |
| |
601 { |
| |
602 print_check_msg "$dep_checked_ubsan" "checking for ubsan... " |
| |
603 # dependency ubsan toolchain="gnuc" |
| |
604 while true |
| |
605 do |
| |
606 if notistoolchain "gnuc"; then |
| |
607 break |
| |
608 fi |
| |
609 TEMP_CFLAGS="$TEMP_CFLAGS -fsanitize=undefined" |
| |
610 TEMP_LDFLAGS="$TEMP_LDFLAGS -fsanitize=undefined" |
| |
611 print_check_msg "$dep_checked_ubsan" "yes\n" |
| |
612 dep_checked_ubsan=1 |
| |
613 return 1 |
| |
614 done |
| |
615 |
| |
616 print_check_msg "$dep_checked_ubsan" "no\n" |
| |
617 dep_checked_ubsan=1 |
| |
618 return 0 |
| |
619 } |
| 597 dependency_error_qsort_r() |
620 dependency_error_qsort_r() |
| 598 { |
621 { |
| 599 print_check_msg "$dep_checked_qsort_r" "checking for qsort_r... " |
622 print_check_msg "$dep_checked_qsort_r" "checking for qsort_r... " |
| 600 # dependency qsort_r |
623 # dependency qsort_r |
| 601 while true |
624 while true |
| 820 if [ -n "$DISABLE_FEATURE_ASAN" ]; then |
843 if [ -n "$DISABLE_FEATURE_ASAN" ]; then |
| 821 unset FEATURE_ASAN |
844 unset FEATURE_ASAN |
| 822 fi |
845 fi |
| 823 fi |
846 fi |
| 824 if [ -n "$FEATURE_ASAN" ]; then |
847 if [ -n "$FEATURE_ASAN" ]; then |
| |
848 : |
| |
849 else |
| |
850 : |
| |
851 fi |
| |
852 if [ -n "$FEATURE_UBSAN" ]; then |
| |
853 # check dependency |
| |
854 if dependency_error_ubsan ; then |
| |
855 # "auto" features can fail and are just disabled in this case |
| |
856 if [ "$FEATURE_UBSAN" = "auto" ]; then |
| |
857 DISABLE_FEATURE_UBSAN=1 |
| |
858 else |
| |
859 DEPENDENCIES_FAILED="$DEPENDENCIES_FAILED ubsan " |
| |
860 ERROR=1 |
| |
861 fi |
| |
862 fi |
| |
863 if [ -n "$DISABLE_FEATURE_UBSAN" ]; then |
| |
864 unset FEATURE_UBSAN |
| |
865 fi |
| |
866 fi |
| |
867 if [ -n "$FEATURE_UBSAN" ]; then |
| 825 : |
868 : |
| 826 else |
869 else |
| 827 : |
870 : |
| 828 fi |
871 fi |
| 829 if [ -n "$FEATURE_CXX_TESTS" ]; then |
872 if [ -n "$FEATURE_CXX_TESTS" ]; then |