Re: AC_CHECK_LIB issues under maintainer mode (Was: Re: Tagging 2.4.29 / 2.5.0-{alpha/beta?} today)

2017-10-16 Thread Yann Ylavic
On Mon, Oct 16, 2017 at 3:25 PM, Rainer Jung  wrote:
> Am 16.10.2017 um 12:31 schrieb Joe Orton:
>>
>> On Fri, Oct 13, 2017 at 11:51:54AM -0400, Jim Jagielski wrote:
>>>
>>> The long and short is that under maintainer mode, we cannot
>>> expect AC_CHECK_LIB to being correct any longer, because
>>> the combination of -Werror and -Wstrict-prototypes means
>>> that any and all functions looked for/checked for using
>>> AC_CHECK_LIB will NOT be found, due to warnings which are
>>> now fatal errors during configure time, even if those
>>> functions DO exist.
>>
>>
>> IMO the correct fix is to add all -W... flags to NOTEST_CFLAGS not
>> CFLAGS so they don't take effect during the configure run at all.  At
>> least I can't think of a good motivation for having compiler warnings
>> enabled when running autoconf tests in general.
>
>
> Good hint, never used that variable.

+1!

> So what about the following patch
> instead: just tried it on trunk and seemed to work fine there.

Slightly modified (see attached), it works for me too.

I just added a second arg to APACHE_ADD_GCC_CFLAG which allows me to:
+  APACHE_ADD_GCC_CFLAG([-Werror], [-Wno-strict-prototypes])

where $2 is also used for AC_LANG_PROGRAM's CFLAGS (before $1), but
will not be added to NOTEST_CFLAGS.
Without this change, -Werror is still not accepted by AC_LANG_PROGRAM for me...
Index: acinclude.m4
===
--- acinclude.m4	(revision 1812289)
+++ acinclude.m4	(working copy)
@@ -960,7 +960,7 @@ YES_IS_DEFINED
 dnl
 dnl APACHE_ADD_GCC_CFLAGS
 dnl
-dnl Check if compiler is gcc and supports flag. If yes, add to CFLAGS.
+dnl Check if compiler is gcc and supports flag. If yes, add to NOTEST_CFLAGS.
 dnl
 AC_DEFUN([APACHE_ADD_GCC_CFLAG], [
   define([ap_gcc_ckvar], [ac_cv_gcc_]translit($1, [-:.=], []))
@@ -967,13 +967,13 @@ AC_DEFUN([APACHE_ADD_GCC_CFLAG], [
   if test "$GCC" = "yes"; then
 AC_CACHE_CHECK([whether gcc accepts $1], ap_gcc_ckvar, [
   save_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS $1"
+  CFLAGS="$CFLAGS $2 $1"
   AC_COMPILE_IFELSE([AC_LANG_PROGRAM()],
 [ap_gcc_ckvar=yes], [ap_gcc_ckvar=no])
   CFLAGS="$save_CFLAGS"
 ])
 if test "$]ap_gcc_ckvar[" = "yes" ; then
-   APR_ADDTO(CFLAGS,[$1])
+   APR_ADDTO(NOTEST_CFLAGS,[$1])
 fi
   fi
   undefine([ap_gcc_ckvar])
Index: configure.in
===
--- configure.in	(revision 1812289)
+++ configure.in	(working copy)
@@ -627,21 +627,17 @@ AC_ARG_ENABLE(load-all-modules,APACHE_HELP_STRING(
 AC_ARG_ENABLE(maintainer-mode,APACHE_HELP_STRING(--enable-maintainer-mode,Turn on debugging and compile time warnings and load all compiled modules),
 [
   if test "$enableval" = "yes"; then
-APR_ADDTO(CPPFLAGS, -DAP_DEBUG)
+APR_ADDTO(NOTEST_CPPFLAGS, -DAP_DEBUG)
 if test "$GCC" = "yes"; then
-  APR_ADDTO(CFLAGS,[-Wall -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations -Wpointer-arith])
-  # Next flag needed, because -Wstrict-prototypes in combination with
-  # -Werror leads to compiler errors during configure checks (autoconf
-  # generates incomplete prototypes).
-  APACHE_ADD_GCC_CFLAG([-Wno-error=strict-prototypes])
+  APR_ADDTO(NOTEST_CFLAGS,[-Wall -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations -Wpointer-arith])
   APACHE_ADD_GCC_CFLAG([-std=c89])
-  APACHE_ADD_GCC_CFLAG([-Werror])
+  APACHE_ADD_GCC_CFLAG([-Werror], [-Wno-strict-prototypes])
   APACHE_ADD_GCC_CFLAG([-Wdeclaration-after-statement])
   APACHE_ADD_GCC_CFLAG([-Wformat])
   APACHE_ADD_GCC_CFLAG([-Wformat-security])
   APACHE_ADD_GCC_CFLAG([-Wunused])
 elif test "$AIX_XLC" = "yes"; then
-  APR_ADDTO(CFLAGS,-qfullpath -qinitauto=FE -qcheck=all -qinfo=pro)
+  APR_ADDTO(NOTEST_CFLAGS,-qfullpath -qinitauto=FE -qcheck=all -qinfo=pro)
 fi
 if test "x$enable_load_all_modules" = "x"; then
   LOAD_ALL_MODULES=yes
@@ -657,9 +653,9 @@ AC_ARG_ENABLE(maintainer-mode,APACHE_HELP_STRING(-
 AC_ARG_ENABLE(debugger-mode,APACHE_HELP_STRING(--enable-debugger-mode,Turn on debugging and compile time warnings and turn off optimization),
 [
   if test "$enableval" = "yes"; then
-APR_ADDTO(CPPFLAGS, -DAP_DEBUG)
+APR_ADDTO(NOTEST_CPPFLAGS, -DAP_DEBUG)
 if test "$GCC" = "yes"; then
-  APR_ADDTO(CFLAGS,[-Wall -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations -Wpointer-arith -O0])
+  APR_ADDTO(NOTEST_CFLAGS,[-Wall -Wmissing-prototypes -Wstrict-prototypes -Wmissing-declarations -Wpointer-arith -O0])
   APACHE_ADD_GCC_CFLAG([-Wdeclaration-after-statement])
   APACHE_ADD_GCC_CFLAG([-Werror=declaration-after-statement])
   APACHE_ADD_GCC_CFLAG([-Wformat])
@@ -666,7 +662,7 @@ AC_ARG_ENABLE(debugger-mode,APACHE_HELP_STRING(--e
   APACHE_ADD_GCC_CFLAG([-Wformat-security])
   APACHE_ADD_GCC_CFLAG([-Werror=format-security])
 

Re: AC_CHECK_LIB issues under maintainer mode (Was: Re: Tagging 2.4.29 / 2.5.0-{alpha/beta?} today)

2017-10-16 Thread Rainer Jung

Am 16.10.2017 um 12:31 schrieb Joe Orton:

On Fri, Oct 13, 2017 at 11:51:54AM -0400, Jim Jagielski wrote:

The long and short is that under maintainer mode, we cannot
expect AC_CHECK_LIB to being correct any longer, because
the combination of -Werror and -Wstrict-prototypes means
that any and all functions looked for/checked for using
AC_CHECK_LIB will NOT be found, due to warnings which are
now fatal errors during configure time, even if those
functions DO exist.


IMO the correct fix is to add all -W... flags to NOTEST_CFLAGS not
CFLAGS so they don't take effect during the configure run at all.  At
least I can't think of a good motivation for having compiler warnings
enabled when running autoconf tests in general.


Good hint, never used that variable. So what about the following patch 
instead: just tried it on trunk and seemed to work fine there. Ut 
changes APACHE_ADD_GCC_CFLAG to operate on NOTEST_CFLAGS instead of 
CFLAGS (the macro currently is only used in places where we IMHO 
actually want that change) and introduces NOTEST_CFLAGS use to configure 
where we handle maintainer mode and debugger mode.


Index: acinclude.m4
===
--- acinclude.m4(revision 1812263)
+++ acinclude.m4(working copy)
@@ -960,7 +960,7 @@
 dnl
 dnl APACHE_ADD_GCC_CFLAGS
 dnl
-dnl Check if compiler is gcc and supports flag. If yes, add to CFLAGS.
+dnl Check if compiler is gcc and supports flag. If yes, add to 
NOTEST_CFLAGS.

 dnl
 AC_DEFUN([APACHE_ADD_GCC_CFLAG], [
   define([ap_gcc_ckvar], [ac_cv_gcc_]translit($1, [-:.=], []))
@@ -973,7 +973,7 @@
   CFLAGS="$save_CFLAGS"
 ])
 if test "$]ap_gcc_ckvar[" = "yes" ; then
-   APR_ADDTO(CFLAGS,[$1])
+   APR_ADDTO(NOTEST_CFLAGS,[$1])
 fi
   fi
   undefine([ap_gcc_ckvar])
Index: configure.in
===
--- configure.in(revision 1812263)
+++ configure.in(working copy)
@@ -627,14 +627,10 @@

AC_ARG_ENABLE(maintainer-mode,APACHE_HELP_STRING(--enable-maintainer-mode,Turn 
on debugging and compile time warnings and load all compiled modules),

 [
   if test "$enableval" = "yes"; then
-APR_ADDTO(CPPFLAGS, -DAP_DEBUG)
+APR_ADDTO(NOTEST_CPPFLAGS, -DAP_DEBUG)
 if test "$GCC" = "yes"; then
-  APR_ADDTO(CFLAGS,[-Wall -Wmissing-prototypes -Wstrict-prototypes 
-Wmissing-declarations -Wpointer-arith])

-  # Next flag needed, because -Wstrict-prototypes in combination with
-  # -Werror leads to compiler errors during configure checks (autoconf
-  # generates incomplete prototypes).
-  APACHE_ADD_GCC_CFLAG([-Wno-error=strict-prototypes])
-  APACHE_ADD_GCC_CFLAG([-std=c89])
+  APR_ADDTO(NOTEST_CFLAGS,[-Wall -Wmissing-prototypes 
-Wstrict-prototypes -Wmissing-declarations -Wpointer-arith])

+  #APACHE_ADD_GCC_CFLAG([-std=c89])
   APACHE_ADD_GCC_CFLAG([-Werror])
   APACHE_ADD_GCC_CFLAG([-Wdeclaration-after-statement])
   APACHE_ADD_GCC_CFLAG([-Wformat])
@@ -641,7 +637,7 @@
   APACHE_ADD_GCC_CFLAG([-Wformat-security])
   APACHE_ADD_GCC_CFLAG([-Wunused])
 elif test "$AIX_XLC" = "yes"; then
-  APR_ADDTO(CFLAGS,-qfullpath -qinitauto=FE -qcheck=all -qinfo=pro)
+  APR_ADDTO(NOTEST_CFLAGS,-qfullpath -qinitauto=FE -qcheck=all 
-qinfo=pro)

 fi
 if test "x$enable_load_all_modules" = "x"; then
   LOAD_ALL_MODULES=yes
@@ -657,9 +653,9 @@

AC_ARG_ENABLE(debugger-mode,APACHE_HELP_STRING(--enable-debugger-mode,Turn 
on debugging and compile time warnings and turn off optimization),

 [
   if test "$enableval" = "yes"; then
-APR_ADDTO(CPPFLAGS, -DAP_DEBUG)
+APR_ADDTO(NOTEST_CPPFLAGS, -DAP_DEBUG)
 if test "$GCC" = "yes"; then
-  APR_ADDTO(CFLAGS,[-Wall -Wmissing-prototypes -Wstrict-prototypes 
-Wmissing-declarations -Wpointer-arith -O0])
+  APR_ADDTO(NOTEST_CFLAGS,[-Wall -Wmissing-prototypes 
-Wstrict-prototypes -Wmissing-declarations -Wpointer-arith -O0])

   APACHE_ADD_GCC_CFLAG([-Wdeclaration-after-statement])
   APACHE_ADD_GCC_CFLAG([-Werror=declaration-after-statement])
   APACHE_ADD_GCC_CFLAG([-Wformat])
@@ -666,7 +662,7 @@
   APACHE_ADD_GCC_CFLAG([-Wformat-security])
   APACHE_ADD_GCC_CFLAG([-Werror=format-security])
 elif test "$AIX_XLC" = "yes"; then
-  APR_ADDTO(CFLAGS,-qfullpath -qinitauto=FE -qcheck=all -qinfo=pro)
+  APR_ADDTO(NOTEST_CFLAGS,-qfullpath -qinitauto=FE -qcheck=all 
-qinfo=pro)

 fi
   fi
 ])dnl


Regards,

Rainer


Re: AC_CHECK_LIB issues under maintainer mode (Was: Re: Tagging 2.4.29 / 2.5.0-{alpha/beta?} today)

2017-10-16 Thread Joe Orton
On Fri, Oct 13, 2017 at 11:51:54AM -0400, Jim Jagielski wrote:
> The long and short is that under maintainer mode, we cannot
> expect AC_CHECK_LIB to being correct any longer, because
> the combination of -Werror and -Wstrict-prototypes means
> that any and all functions looked for/checked for using
> AC_CHECK_LIB will NOT be found, due to warnings which are
> now fatal errors during configure time, even if those
> functions DO exist.

IMO the correct fix is to add all -W... flags to NOTEST_CFLAGS not 
CFLAGS so they don't take effect during the configure run at all.  At 
least I can't think of a good motivation for having compiler warnings 
enabled when running autoconf tests in general.











Re: AC_CHECK_LIB issues under maintainer mode (Was: Re: Tagging 2.4.29 / 2.5.0-{alpha/beta?} today)

2017-10-16 Thread Yann Ylavic
On Mon, Oct 16, 2017 at 10:16 AM, Stefan Eissing
 wrote:
>
>> Am 15.10.2017 um 17:52 schrieb Rainer Jung :
>>
>> Nevertheless I would still say that adding "-Wno-error=strict-prototypes" 
>> for any clang and gcc version that supports it would be the correct option. 
>> Then -Werror should automatically get applied again.
>
> +1

+1

Thanks Rainer!


Re: AC_CHECK_LIB issues under maintainer mode (Was: Re: Tagging 2.4.29 / 2.5.0-{alpha/beta?} today)

2017-10-16 Thread Jim Jagielski
I'd be +1 on setting -Wno-error=strict-prototypes unconditionally

> On Oct 15, 2017, at 11:52 AM, Rainer Jung  wrote:
> 
> Am 15.10.2017 um 16:25 schrieb Yann Ylavic:
>> On Sun, Oct 15, 2017 at 4:03 PM, Rainer Jung  wrote:
>>> 
>>> Why is this happening now? The "-Werror" was backported last December in
>>> r1772330, which was a backport of r1702948 from trunk (May 2015). Maybe
>>> people haven't used maintainer mode since then?
>> During the backport process of r1772330, Jacob noticed that -Werror
>> was not working as expected (see STATUS changes in this commit). He
>> also made a comment on dev@ here:
>> https://marc.info/?l=apache-cvs=147508169616462=2
>> Maybe -Werror is just ignored somehow, because I always compile in
>> maintainer mode with several gcc versions...
> 
> Thanks Yann, I actually only ran gcc with the respective flags. But indeed 
> configure checks for each flag whether it is "working" and the program which 
> gets compiled is:
> 
> int
> main ()
> {
> struct tm tm; tm.tm_gmtoff;
>  ;
>  return 0;
> }
> 
> So since we set -Wstrict-prototypes before, -Werror turns this into
> 
> conftest.c:45:1: error: function declaration isn't a prototype 
> [-Werror=strict-prototypes]
> main ()
> ^~~~
> 
> and -Werror does not get set at all.
> 
> Nevertheless I would still say that adding "-Wno-error=strict-prototypes" for 
> any clang and gcc version that supports it would be the correct option. Then 
> -Werror should automatically get applied again.
> 
> So something like the following (simple) patch should be an improvement for 
> gcc and clang and also fix Jim's problem. Of course since we then would have 
> -Werror enabled probably for the first time for gcc other new problems might 
> show (that will currently only be observable as warnings during maintainer 
> builds).
> 
> Index: configure.in
> ===
> --- configure.in(revision 1812218)
> +++ configure.in(working copy)
> @@ -597,6 +597,7 @@
> if test "$GCC" = "yes"; then
>   APR_ADDTO(CFLAGS,[-Wall -Wmissing-prototypes -Wstrict-prototypes 
> -Wmissing-declarations -Wpointer-arith])
>   APACHE_ADD_GCC_CFLAG([-std=c89])
> +  APACHE_ADD_GCC_CFLAG([-Wno-error=strict-prototypes])
>   APACHE_ADD_GCC_CFLAG([-Werror])
>   APACHE_ADD_GCC_CFLAG([-Wdeclaration-after-statement])
>   APACHE_ADD_GCC_CFLAG([-Wformat])
> 
> Regards,
> 
> Rainer



Re: AC_CHECK_LIB issues under maintainer mode (Was: Re: Tagging 2.4.29 / 2.5.0-{alpha/beta?} today)

2017-10-16 Thread Stefan Eissing


> Am 15.10.2017 um 17:52 schrieb Rainer Jung :
> 
> Am 15.10.2017 um 16:25 schrieb Yann Ylavic:
>> On Sun, Oct 15, 2017 at 4:03 PM, Rainer Jung  wrote:
>>> 
>>> Why is this happening now? The "-Werror" was backported last December in
>>> r1772330, which was a backport of r1702948 from trunk (May 2015). Maybe
>>> people haven't used maintainer mode since then?
>> During the backport process of r1772330, Jacob noticed that -Werror
>> was not working as expected (see STATUS changes in this commit). He
>> also made a comment on dev@ here:
>> https://marc.info/?l=apache-cvs=147508169616462=2
>> Maybe -Werror is just ignored somehow, because I always compile in
>> maintainer mode with several gcc versions...
> 
> Thanks Yann, I actually only ran gcc with the respective flags. But indeed 
> configure checks for each flag whether it is "working" and the program which 
> gets compiled is:
> 
> int
> main ()
> {
> struct tm tm; tm.tm_gmtoff;
>  ;
>  return 0;
> }
> 
> So since we set -Wstrict-prototypes before, -Werror turns this into
> 
> conftest.c:45:1: error: function declaration isn't a prototype 
> [-Werror=strict-prototypes]
> main ()
> ^~~~
> 
> and -Werror does not get set at all.

Ha, nice catch! ;-)

> Nevertheless I would still say that adding "-Wno-error=strict-prototypes" for 
> any clang and gcc version that supports it would be the correct option. Then 
> -Werror should automatically get applied again.

+1

> So something like the following (simple) patch should be an improvement for 
> gcc and clang and also fix Jim's problem. Of course since we then would have 
> -Werror enabled probably for the first time for gcc other new problems might 
> show (that will currently only be observable as warnings during maintainer 
> builds).
> 
> Index: configure.in
> ===
> --- configure.in(revision 1812218)
> +++ configure.in(working copy)
> @@ -597,6 +597,7 @@
> if test "$GCC" = "yes"; then
>   APR_ADDTO(CFLAGS,[-Wall -Wmissing-prototypes -Wstrict-prototypes 
> -Wmissing-declarations -Wpointer-arith])
>   APACHE_ADD_GCC_CFLAG([-std=c89])
> +  APACHE_ADD_GCC_CFLAG([-Wno-error=strict-prototypes])
>   APACHE_ADD_GCC_CFLAG([-Werror])
>   APACHE_ADD_GCC_CFLAG([-Wdeclaration-after-statement])
>   APACHE_ADD_GCC_CFLAG([-Wformat])
> 
> Regards,
> 
> Rainer



Re: AC_CHECK_LIB issues under maintainer mode (Was: Re: Tagging 2.4.29 / 2.5.0-{alpha/beta?} today)

2017-10-15 Thread Rainer Jung

Am 15.10.2017 um 16:25 schrieb Yann Ylavic:

On Sun, Oct 15, 2017 at 4:03 PM, Rainer Jung  wrote:


Why is this happening now? The "-Werror" was backported last December in
r1772330, which was a backport of r1702948 from trunk (May 2015). Maybe
people haven't used maintainer mode since then?


During the backport process of r1772330, Jacob noticed that -Werror
was not working as expected (see STATUS changes in this commit). He
also made a comment on dev@ here:
https://marc.info/?l=apache-cvs=147508169616462=2

Maybe -Werror is just ignored somehow, because I always compile in
maintainer mode with several gcc versions...


Thanks Yann, I actually only ran gcc with the respective flags. But 
indeed configure checks for each flag whether it is "working" and the 
program which gets compiled is:


int
main ()
{
struct tm tm; tm.tm_gmtoff;
  ;
  return 0;
}

So since we set -Wstrict-prototypes before, -Werror turns this into

conftest.c:45:1: error: function declaration isn't a prototype 
[-Werror=strict-prototypes]

 main ()
 ^~~~

and -Werror does not get set at all.

Nevertheless I would still say that adding 
"-Wno-error=strict-prototypes" for any clang and gcc version that 
supports it would be the correct option. Then -Werror should 
automatically get applied again.


So something like the following (simple) patch should be an improvement 
for gcc and clang and also fix Jim's problem. Of course since we then 
would have -Werror enabled probably for the first time for gcc other new 
problems might show (that will currently only be observable as warnings 
during maintainer builds).


Index: configure.in
===
--- configure.in(revision 1812218)
+++ configure.in(working copy)
@@ -597,6 +597,7 @@
 if test "$GCC" = "yes"; then
   APR_ADDTO(CFLAGS,[-Wall -Wmissing-prototypes -Wstrict-prototypes 
-Wmissing-declarations -Wpointer-arith])

   APACHE_ADD_GCC_CFLAG([-std=c89])
+  APACHE_ADD_GCC_CFLAG([-Wno-error=strict-prototypes])
   APACHE_ADD_GCC_CFLAG([-Werror])
   APACHE_ADD_GCC_CFLAG([-Wdeclaration-after-statement])
   APACHE_ADD_GCC_CFLAG([-Wformat])

Regards,

Rainer


Re: AC_CHECK_LIB issues under maintainer mode (Was: Re: Tagging 2.4.29 / 2.5.0-{alpha/beta?} today)

2017-10-15 Thread Yann Ylavic
On Sun, Oct 15, 2017 at 4:03 PM, Rainer Jung  wrote:
>
> Why is this happening now? The "-Werror" was backported last December in
> r1772330, which was a backport of r1702948 from trunk (May 2015). Maybe
> people haven't used maintainer mode since then?

During the backport process of r1772330, Jacob noticed that -Werror
was not working as expected (see STATUS changes in this commit). He
also made a comment on dev@ here:
https://marc.info/?l=apache-cvs=147508169616462=2

Maybe -Werror is just ignored somehow, because I always compile in
maintainer mode with several gcc versions...

Regards,
Yann.


Re: AC_CHECK_LIB issues under maintainer mode (Was: Re: Tagging 2.4.29 / 2.5.0-{alpha/beta?} today)

2017-10-15 Thread Rainer Jung

Hi Jim,

Am 13.10.2017 um 17:51 schrieb Jim Jagielski:

Let's recall what is really happening...

In maintainer mode, the build system sets -Werror and -Wstrict-prototypes.
This means that functions which lack strict prototypes will "fail".

Now note that AC_CHECK_LIB does not worry about generating
function calls w/ prototypes, so, for example, when checking
for luaL_newstate, it will fail *even if the function exists*!
In fact, this is how I 1st observed the issue: mod_lua was
no longer being included.

The long and short is that under maintainer mode, we cannot
expect AC_CHECK_LIB to being correct any longer, because
the combination of -Werror and -Wstrict-prototypes means
that any and all functions looked for/checked for using
AC_CHECK_LIB will NOT be found, due to warnings which are
now fatal errors during configure time, even if those
functions DO exist.

PS: CCing dev@apr since APR also uses AC_CHECK_LIB


I has a look at this. autoconf does generate a line they call a 
prototype, but it is not a strict prototype (there's no type information 
for the function arguments):


/* Override any GCC internal prototype to avoid an error.
   Use char because int might match the return type of a GCC
   builtin and then its argument prototype would still apply.  */
#ifdef __cplusplus
extern "C"
#endif
char luaL_newstate ();
int
main ()
{
return luaL_newstate ();
  ;
  return 0;
}

Directly before the "int main" there's the broken prototype line

char luaL_newstate ();

And in fact the compiler would also complain about

int
main ()

due to the missing "void" for the arguments.

Of all the flags we set in maintainer mode, the combination that lets 
the compiler fail is:


-Wstrict-prototypes
-Werror

It fails for me also when using GCC (from 4.1.2 to 7.1.0)! So I think a 
clang-specific solution is incomplete.


Why is this happening now? The "-Werror" was backported last December in 
r1772330, which was a backport of r1702948 from trunk (May 2015). Maybe 
people haven't used maintainer mode since then?


Regards,

Rainer


Re: AC_CHECK_LIB issues under maintainer mode (Was: Re: Tagging 2.4.29 / 2.5.0-{alpha/beta?} today)

2017-10-13 Thread William A Rowe Jr
Thank you for this summary!

On Oct 13, 2017 10:51, "Jim Jagielski"  wrote:

> Let's recall what is really happening...
>
> In maintainer mode, the build system sets -Werror and -Wstrict-prototypes.
> This means that functions which lack strict prototypes will "fail".
>
> Now note that AC_CHECK_LIB does not worry about generating
> function calls w/ prototypes, so, for example, when checking
> for luaL_newstate, it will fail *even if the function exists*!
> In fact, this is how I 1st observed the issue: mod_lua was
> no longer being included.
>
> The long and short is that under maintainer mode, we cannot
> expect AC_CHECK_LIB to being correct any longer, because
> the combination of -Werror and -Wstrict-prototypes means
> that any and all functions looked for/checked for using
> AC_CHECK_LIB will NOT be found, due to warnings which are
> now fatal errors during configure time, even if those
> functions DO exist.
>
> PS: CCing dev@apr since APR also uses AC_CHECK_LIB
>


AC_CHECK_LIB issues under maintainer mode (Was: Re: Tagging 2.4.29 / 2.5.0-{alpha/beta?} today)

2017-10-13 Thread Jim Jagielski
Let's recall what is really happening...

In maintainer mode, the build system sets -Werror and -Wstrict-prototypes.
This means that functions which lack strict prototypes will "fail".

Now note that AC_CHECK_LIB does not worry about generating
function calls w/ prototypes, so, for example, when checking
for luaL_newstate, it will fail *even if the function exists*!
In fact, this is how I 1st observed the issue: mod_lua was
no longer being included.

The long and short is that under maintainer mode, we cannot
expect AC_CHECK_LIB to being correct any longer, because
the combination of -Werror and -Wstrict-prototypes means
that any and all functions looked for/checked for using
AC_CHECK_LIB will NOT be found, due to warnings which are
now fatal errors during configure time, even if those
functions DO exist.

PS: CCing dev@apr since APR also uses AC_CHECK_LIB