On 05 Feb 2020, at 21:14, Sebastian Kemper <sebastian...@gmx.net> wrote:

> APR's configure script uses AC_TRY_RUN to detect whether the return type
> of strerror_r is int. When cross-compiling this defaults to no.
> 
> This commit adds an AC_CACHE_CHECK so users who cross-compile APR may
> influence the outcome with a configure variable.
> 
> Without this commit, while cross-compiling against a libc where
> strerror_r returns int, a warning occurs:
> 
> misc/unix/errorcodes.c: In function 'native_strerror':
> misc/unix/errorcodes.c:358:9: warning: assignment makes pointer from integer 
> without a cast [-Wint-conversion]
>     msg = strerror_r(statcode, buf, bufsize);
>         ^
> 
> Fixes: https://bz.apache.org/bugzilla/show_bug.cgi?id=60539
> 
> Index: build/apr_common.m4
> ===================================================================
> --- build/apr_common.m4       (revision 1873663)
> +++ build/apr_common.m4       (working copy)
> @@ -489,8 +489,9 @@
> dnl
> dnl
> AC_DEFUN([APR_CHECK_STRERROR_R_RC], [
> -AC_MSG_CHECKING(for type of return code from strerror_r)
> -AC_TRY_RUN([
> +AC_CACHE_CHECK([whether return code from strerror_r has type int],
> +[ac_cv_strerror_r_rc_int],
> +[AC_TRY_RUN([
> #include <errno.h>
> #include <string.h>
> #include <stdio.h>
> @@ -506,14 +507,10 @@
> }], [
>     ac_cv_strerror_r_rc_int=yes ], [
>     ac_cv_strerror_r_rc_int=no ], [
> -    ac_cv_strerror_r_rc_int=no ] )
> +    ac_cv_strerror_r_rc_int=no ] ) ] )
> if test "x$ac_cv_strerror_r_rc_int" = xyes; then
>   AC_DEFINE(STRERROR_R_RC_INT, 1, [Define if strerror returns int])
> -  msg="int"
> -else
> -  msg="pointer"
> fi
> -AC_MSG_RESULT([$msg])
> ] )
> 
> dnl

This has been committed in http://svn.apache.org/viewvc?rev=1875065&view=rev 
<http://svn.apache.org/viewvc?rev=1875065&view=rev> and backported to v1.7 in 
http://svn.apache.org/viewvc?rev=1875066&view=rev 
<http://svn.apache.org/viewvc?rev=1875066&view=rev>

Regards,
Graham
—

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to