autotools: make --enable-code-coverage support llvm/clang

Cherry-picked from #18468

Closes #18473
This commit is contained in:
Viktor Szakats 2025-09-03 16:48:49 +02:00
parent 1c49f2f26d
commit dc3f4fd89b
No known key found for this signature in database
GPG Key ID: B5ABD165E2AEF201
2 changed files with 21 additions and 16 deletions

View File

@ -128,9 +128,6 @@ CURLVERSION=`$SED -ne 's/^#define LIBCURL_VERSION "\(.*\)".*/\1/p' ${srcdir}/inc
XC_CHECK_PROG_CC
CURL_ATOMIC
dnl for --enable-code-coverage
CURL_COVERAGE
XC_AUTOMAKE
AC_MSG_CHECKING([curl version])
AC_MSG_RESULT($CURLVERSION)
@ -523,6 +520,8 @@ dnl platform/compiler/architecture specific checks/flags
dnl **********************************************************************
CURL_CHECK_COMPILER
dnl for --enable-code-coverage
CURL_COVERAGE
CURL_CHECK_NATIVE_WINDOWS
curl_cv_wince='no'

View File

@ -4290,25 +4290,31 @@ AC_DEFUN([CURL_COVERAGE],[
AS_HELP_STRING([--enable-code-coverage], [Provide code coverage]),
coverage="$enableval")
dnl if not gcc switch off again
AS_IF([ test "$GCC" != "yes" ], coverage="no" )
dnl if not gcc or clang switch off again
AS_IF([test "$compiler_id" != "GNU_C" -a "$compiler_id" != "CLANG" -a "$compiler_id" != "APPLECLANG"], coverage="no" )
AC_MSG_RESULT($coverage)
if test "x$coverage" = "xyes"; then
curl_coverage_msg="enabled"
AC_CHECK_TOOL([GCOV], [gcov], [gcov])
if test -z "$GCOV"; then
AC_MSG_ERROR([needs gcov for code coverage])
fi
AC_CHECK_PROG([LCOV], [lcov], [lcov])
if test -z "$LCOV"; then
AC_MSG_ERROR([needs lcov for code coverage])
fi
CPPFLAGS="$CPPFLAGS -DNDEBUG"
CFLAGS="$CFLAGS -O0 -g -fprofile-arcs -ftest-coverage"
LIBS="$LIBS -lgcov"
CFLAGS="$CFLAGS -O0 -g"
if test "$compiler_id" = "GNU_C"; then
AC_CHECK_TOOL([GCOV], [gcov], [gcov])
if test -z "$GCOV"; then
AC_MSG_ERROR([needs gcov for code coverage])
fi
AC_CHECK_PROG([LCOV], [lcov], [lcov])
if test -z "$LCOV"; then
AC_MSG_ERROR([needs lcov for code coverage])
fi
CFLAGS="$CFLAGS -ftest-coverage -fprofile-arcs"
LIBS="$LIBS -lgcov"
else
CFLAGS="$CFLAGS -fprofile-instr-generate -fcoverage-mapping"
LDFLAGS="$LDFLAGS -fprofile-instr-generate -fcoverage-mapping"
fi
fi
])