Re: Tagging 2.4.29 / 2.5.0-{alpha/beta?} today
Your analysis matches mine, but we still have the open concern of your VS import quirks around the expat library name. Ideas? On Oct 15, 2017 03:20, "Steffen"wrote: > In Apache.dsw is now project xml removed, it is not building out of the > box with current released apr-util. > > With coming apr-util 1.6.1 it should be fine. > > On Friday 13/10/2017 at 15:20, William A Rowe Jr wrote: > > Is anyone seeing an issue of concern about stability on 2.4.x branch? > > Has anyone else looked at Jim's proposed fixes for xcode 9 building > under maintainer mode? A couple-line quick fix to configure.in, that > anyone on OS/X should be able to validate in minutes. The same fix > is already present on APR's branches, which I will tag as well. > > I'll proceed to tag 2.5.0, and 2.4.29 after a couple hour comment > period, so that the many proposed enhancements can be examined > by alpha testers and our quick adopters of 2.4.28 can be back on track > by early next week. That should simplify getting some of the more > complex patches backported as necessary, or move us forward > in any case. > > > >
Re: AC_CHECK_LIB issues under maintainer mode (Was: Re: Tagging 2.4.29 / 2.5.0-{alpha/beta?} today)
Am 15.10.2017 um 16:25 schrieb Yann Ylavic: On Sun, Oct 15, 2017 at 4:03 PM, Rainer Jungwrote: 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)
On Sun, Oct 15, 2017 at 4:03 PM, Rainer Jungwrote: > > 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)
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
Bug report for APR [2017/10/15]
+---+ | Bugzilla Bug ID | | +-+ | | Status: UNC=Unconfirmed NEW=New ASS=Assigned| | | OPN=ReopenedVER=Verified(Skipped Closed/Resolved) | | | +-+ | | | Severity: BLK=Blocker CRI=Critical REG=Regression MAJ=Major | | | | MIN=Minor NOR=NormalENH=Enhancement TRV=Trivial | | | | +-+ | | | | Date Posted | | | | | +--+ | | | | | Description | | | | | | | |16056|Inf|Enh|2003-01-14|Shared memory & mutex ownership not correctly esta| |20382|New|Nor|2003-05-31|Poor performance on W2000 AS | |28453|New|Enh|2004-04-18|apr_uri should parse relative to a base URI | |33188|Inf|Nor|2005-01-21|libtool linking failure on Suse | |33490|Inf|Nor|2005-02-10|APR does not compile with Borland C++ | |38410|New|Nor|2006-01-27|apr/win32 misinterpreted the meaning of WAIT_ABAND| |39289|New|Enh|2006-04-12|test suite additions for trylock functions| |39853|Inf|Nor|2006-06-21|apr_strtoi64 does not build on WinCE due to lack o| |39895|New|Enh|2006-06-23|apr_os_strerror on WinCE needs to xlate unicode->u| |39896|New|Enh|2006-06-23|Output test status to OutputDebugString in additio| |40020|New|Enh|2006-07-11|Add support for apr_uint8_t and apr_int8_t types | |40193|Inf|Nor|2006-08-06|Patches to support different compiler than EMX on | |40622|New|Enh|2006-09-27|enhance apr temp files on NT to be more secure| |40758|Ver|Maj|2006-10-15|WIN64, apr_vformatter(..) cannot handle 64bit poin| |40939|New|Enh|2006-11-09|pool minimal allocation size should be configurabl| |41192|Inf|Trv|2006-12-17|Add the expat libtool file to the LT_LDFLAGS varia| |41254|New|Enh|2006-12-28|apr_queue_t enhancements | |41351|Inf|Enh|2007-01-11|Tivoli LDAP SDK support in aprutil| |41352|Inf|Min|2007-01-11|openldap and per-connection client certificates in| |41916|Inf|Nor|2007-03-21|MinGW cross-compile support for Linux | |42365|New|Enh|2007-05-09|Suppress console for apr_proc_create() created pro| |42682|New|Maj|2007-06-17|Apache child terminates with signal 11 when using | |42728|New|Nor|2007-06-23|mod_ssl thread detaching not releasing handles| |42848|New|Enh|2007-07-10|add IP TOS support to apr_socket_opt_set()| |43035|New|Enh|2007-08-04|Add ability to wrap ssl around pre-existing socket| |43066|New|Nor|2007-08-08|get_password on Windows is kludgy | |43152|Inf|Nor|2007-08-16|apr_socket_opt_get doesn't work with APR_SO_SNDBUF| |43172|Ass|Nor|2007-08-20|apr-util don't want to find mozldap-6.x | |43217|New|Min|2007-08-26|All-ones IPv6 subnet mask not accepted| |43244|New|Enh|2007-08-29|apr_socket_t missing dup, dup2 and setaside | |43302|New|Nor|2007-09-04|apr_bucket_socket doesn't work with non-connected | |43309|New|Enh|2007-09-05|add apr_socket_sendtov support| |43375|New|Nor|2007-09-13|Pool integrity check fails for apr threads| |43499|New|Nor|2007-09-27|apr_global_mutex_create returns error "Access deni| |43507|New|Enh|2007-09-28|configure flag for SHELL_PATH | |43508|New|Enh|2007-09-28|Please be available whether atomics use thread mut| |43793|New|Enh|2007-11-04|builtin atomics on Windows| |44127|New|Enh|2007-12-21|File Extended Attributes Support | |44128|New|Enh|2007-12-21|apr_os_file_put() does not register a cleanup hand| |44129|New|Enh|2007-12-21|apr_os_dir_put() does not allocate an entry buffer| |44186|New|Nor|2008-01-08|[PATCH] Add memcached 1.2.4 features to apr_memcac| |44230|New|Enh|2008-01-14|Add Ark Linux support to config.layout| |44432|New|Enh|2008-02-15|patch - proposal for application function hooks | |44550|Inf|Maj|2008-03-06|Solaris sendfilev() handling - EINTR appears to ha| |45251|New|Nor|2008-06-22|DBD MySQL driver doesn't support multiple resultse| |45291|New|Nor|2008-06-26|apr_thread_t is leaking | |45298|New|Maj|2008-06-27|apr_os_thread_get() differs between windows and un| |45407|Opn|Nor|2008-07-16|auto reconnect in apr_dbd_mysql disturb normal wor| |45455|New|Nor|2008-07-22|rwlock sometimes allows a writer to take the lock | |45494|Opn|Nor|2008-07-28|testsockets fails on Solaris when IPv6 interfaces | |45496|New|Enh|2008-07-29|[patch] adding directory matching [dir/**/conf.d/*|