From 9dd114d0b975813b7e2e35bd06629239c03015e9 Mon Sep 17 00:00:00 2001 From: Florian Weimer Date: Mon, 16 Jan 2023 18:29:07 +0100 Subject: [PATCH] Port configure script to C99 Only apr-configure-c99-6.patch is not yet upstream. Related to: --- apr-configure-c99-1.patch | 112 ++++++++++++++++++++++++++++++ apr-configure-c99-2.patch | 26 +++++++ apr-configure-c99-3.patch | 142 ++++++++++++++++++++++++++++++++++++++ apr-configure-c99-4.patch | 116 +++++++++++++++++++++++++++++++ apr-configure-c99-5.patch | 24 +++++++ apr-configure-c99-6.patch | 19 +++++ apr.spec | 17 ++++- 7 files changed, 455 insertions(+), 1 deletion(-) create mode 100644 apr-configure-c99-1.patch create mode 100644 apr-configure-c99-2.patch create mode 100644 apr-configure-c99-3.patch create mode 100644 apr-configure-c99-4.patch create mode 100644 apr-configure-c99-5.patch create mode 100644 apr-configure-c99-6.patch diff --git a/apr-configure-c99-1.patch b/apr-configure-c99-1.patch new file mode 100644 index 0000000..0d3eea6 --- /dev/null +++ b/apr-configure-c99-1.patch @@ -0,0 +1,112 @@ +------------------------------------------------------------------------ +r1882980 | jim | 2020-10-29 21:23:11 +0100 (Thu, 29 Oct 2020) | 2 lines + +calls to exit() require stdlib.h or else we get -Werror,-Wimplicit-function-declaration + +------------------------------------------------------------------------ + +diff --git a/build/apr_common.m4 b/build/apr_common.m4 +index 6f5782e674384dbd..b8c14b977cfc422b 100644 +--- a/build/apr_common.m4 ++++ b/build/apr_common.m4 +@@ -527,6 +527,7 @@ AC_TRY_RUN([ + #include + #include + #include ++#include + main() + { + char buf[1024]; +diff --git a/build/apr_network.m4 b/build/apr_network.m4 +index 248898283080317d..d330ba16f38f649f 100644 +--- a/build/apr_network.m4 ++++ b/build/apr_network.m4 +@@ -63,6 +63,9 @@ AC_DEFUN([APR_CHECK_WORKING_GETADDRINFO], [ + #ifdef HAVE_SYS_SOCKET_H + #include + #endif ++#ifdef HAVE_STDLIB_H ++#include ++#endif + + int main(void) { + struct addrinfo hints, *ai; +@@ -151,6 +154,9 @@ AC_DEFUN([APR_CHECK_WORKING_GETNAMEINFO], [ + #ifdef HAVE_NETINET_IN_H + #include + #endif ++#ifdef HAVE_STDLIB_H ++#include ++#endif + + int main(void) { + struct sockaddr_in sa; +@@ -194,6 +200,9 @@ AC_DEFUN([APR_CHECK_NEGATIVE_EAI], [ + #ifdef HAVE_NETDB_H + #include + #endif ++#ifdef HAVE_STDLIB_H ++#include ++#endif + + int main(void) { + if (EAI_ADDRFAMILY < 0) { +@@ -403,6 +412,9 @@ AC_DEFUN([APR_CHECK_TCP_NODELAY_INHERITED], [ + #ifndef HAVE_SOCKLEN_T + typedef int socklen_t; + #endif ++#ifdef HAVE_STDLIB_H ++#include ++#endif + int main(void) { + int listen_s, connected_s, client_s; + int listen_port, rc; +@@ -588,6 +600,9 @@ typedef int socklen_t; + #ifdef HAVE_FCNTL_H + #include + #endif ++#ifdef HAVE_STDLIB_H ++#include ++#endif + int main(void) { + int listen_s, connected_s, client_s; + int listen_port, rc; +diff --git a/configure.in b/configure.in +index 6833b32d04de9639..7f6352860dfe41d5 100644 +--- a/configure.in ++++ b/configure.in +@@ -2208,6 +2208,7 @@ AC_TRY_RUN([ + #include + #include + #include ++#include + main() + { + struct rlimit limit; +@@ -2244,6 +2245,7 @@ AC_TRY_RUN([ + #include + #include + #include ++#include + #ifndef SEM_FAILED + #define SEM_FAILED (-1) + #endif +@@ -2307,6 +2309,7 @@ if test "$threads" = "1"; then + AC_TRY_RUN([ + #include + #include ++#include + int main() + { + pthread_mutex_t mutex; +@@ -2430,7 +2433,9 @@ AC_TRY_RUN([ + #endif + #include + #include +- ++#ifdef HAVE_STDLIB_H ++#include ++#endif + int fd; + struct flock proc_mutex_lock_it = {0}; + const char *fname = "conftest.fcntl"; diff --git a/apr-configure-c99-2.patch b/apr-configure-c99-2.patch new file mode 100644 index 0000000..6d43b5f --- /dev/null +++ b/apr-configure-c99-2.patch @@ -0,0 +1,26 @@ +------------------------------------------------------------------------ +r1906349 | jorton | 2023-01-03 09:51:28 +0100 (Tue, 03 Jan 2023) | 8 lines + +Merge r1906347 from trunk: + +Fix configure for compilers which don't accept implicit +int (no longer part of C since C99). + +Submitted by: Florian Weimer +PR: 66396 + +------------------------------------------------------------------------ + +diff --git a/build/apr_common.m4 b/build/apr_common.m4 +index b8c14b977cfc422b..2cb366c39b78380e 100644 +--- a/build/apr_common.m4 ++++ b/build/apr_common.m4 +@@ -528,7 +528,7 @@ AC_TRY_RUN([ + #include + #include + #include +-main() ++int main(void) + { + char buf[1024]; + if (strerror_r(ERANGE, buf, sizeof buf) < 1) { diff --git a/apr-configure-c99-3.patch b/apr-configure-c99-3.patch new file mode 100644 index 0000000..acd62d5 --- /dev/null +++ b/apr-configure-c99-3.patch @@ -0,0 +1,142 @@ +------------------------------------------------------------------------ +r1906595 | jorton | 2023-01-11 10:44:46 +0100 (Wed, 11 Jan 2023) | 7 lines + +Merge r1906594 from trunk: + +Fix further strict C99 compliance issue. (fixes #37) + +PR: 66408 +Submitted by: Sam James + +------------------------------------------------------------------------ + +diff --git a/build/apr_network.m4 b/build/apr_network.m4 +index d330ba16f38f649f..f70431a800f2dfdd 100644 +--- a/build/apr_network.m4 ++++ b/build/apr_network.m4 +@@ -66,6 +66,12 @@ AC_DEFUN([APR_CHECK_WORKING_GETADDRINFO], [ + #ifdef HAVE_STDLIB_H + #include + #endif ++#ifdef HAVE_NETINET_IN_H ++#include ++#endif ++#ifdef HAVE_ARPA_INET_H ++#include ++#endif + + int main(void) { + struct addrinfo hints, *ai; +@@ -397,9 +403,11 @@ AC_DEFUN([APR_CHECK_TCP_NODELAY_INHERITED], [ + AC_CACHE_CHECK(if TCP_NODELAY setting is inherited from listening sockets, ac_cv_tcp_nodelay_inherited,[ + AC_TRY_RUN( [ + #include ++#include + #ifdef HAVE_SYS_TYPES_H + #include + #endif ++#include + #ifdef HAVE_SYS_SOCKET_H + #include + #endif +@@ -749,6 +757,12 @@ AC_TRY_COMPILE([ + #ifdef HAVE_ARPA_INET_H + #include + #endif ++#ifdef HAVE_SYS_SOCKET_H ++#include ++#endif ++#ifdef HAVE_NETINET_IN_H ++#include ++#endif + ],[ + inet_addr("127.0.0.1"); + ],[ +@@ -769,6 +783,10 @@ fi + AC_DEFUN([APR_CHECK_INET_NETWORK], [ + AC_CACHE_CHECK(for inet_network, ac_cv_func_inet_network,[ + AC_TRY_COMPILE([ ++#include ++#ifdef HAVE_NETINET_IN_H ++#include ++#endif + #ifdef HAVE_SYS_TYPES_H + #include + #endif +@@ -942,7 +960,9 @@ AC_DEFUN([APR_CHECK_MCAST], [ + AC_CACHE_CHECK([for struct ip_mreq], [apr_cv_struct_ipmreq], [ + AC_TRY_COMPILE([ + #include ++#ifdef HAVE_NETINET_IN_H + #include ++#endif + ], [ + struct ip_mreq mip; + mip.imr_interface.s_addr = INADDR_ANY; +diff --git a/configure.in b/configure.in +index 7f6352860dfe41d5..7ab8277a2782dbef 100644 +--- a/configure.in ++++ b/configure.in +@@ -1440,8 +1440,6 @@ AC_CHECK_FUNCS(sigaction, [ have_sigaction="1" ], [ have_sigaction="0" ]) + AC_DECL_SYS_SIGLIST + + AC_CHECK_FUNCS(fork, [ fork="1" ], [ fork="0" ]) +-APR_CHECK_INET_ADDR +-APR_CHECK_INET_NETWORK + AC_SUBST(apr_inaddr_none) + AC_CHECK_FUNC(_getch) + AC_CHECK_FUNCS(strerror_r, [ strerror_r="1" ], [ strerror_r="0" ]) +@@ -1547,6 +1545,9 @@ APR_FLAG_HEADERS( + sys/un.h \ + sys/wait.h) + ++APR_CHECK_INET_ADDR ++APR_CHECK_INET_NETWORK ++ + # IRIX 6.5 has a problem in which prevents it from + # being included by itself. Check for manually, + # including another header file first. +@@ -2249,7 +2250,7 @@ AC_TRY_RUN([ + #ifndef SEM_FAILED + #define SEM_FAILED (-1) + #endif +-main() ++int main() + { + sem_t *psem; + const char *sem_name = "/apr_autoconf"; +@@ -2440,6 +2441,8 @@ int fd; + struct flock proc_mutex_lock_it = {0}; + const char *fname = "conftest.fcntl"; + ++int lockit(); ++ + int main() + { + int rc, status;; +diff --git a/poll/os2/pollset.c b/poll/os2/pollset.c +index 2ec848105be1e1bf..87b3c1841f7e64f3 100644 +--- a/poll/os2/pollset.c ++++ b/poll/os2/pollset.c +@@ -308,7 +308,7 @@ APR_DECLARE(apr_status_t) apr_pollset_wakeup(apr_pollset_t *pollset) + + + +-APR_DECLARE(const char *) apr_poll_method_defname() ++APR_DECLARE(const char *) apr_poll_method_defname(void) + { + return "select"; + } +diff --git a/poll/unix/pollset.c b/poll/unix/pollset.c +index 8fa817330f65e515..11b57365257bec54 100644 +--- a/poll/unix/pollset.c ++++ b/poll/unix/pollset.c +@@ -188,7 +188,7 @@ APR_DECLARE(const char *) apr_pollset_method_name(apr_pollset_t *pollset) + return pollset->provider->name; + } + +-APR_DECLARE(const char *) apr_poll_method_defname() ++APR_DECLARE(const char *) apr_poll_method_defname(void) + { + const apr_pollset_provider_t *provider = NULL; + diff --git a/apr-configure-c99-4.patch b/apr-configure-c99-4.patch new file mode 100644 index 0000000..b7886c7 --- /dev/null +++ b/apr-configure-c99-4.patch @@ -0,0 +1,116 @@ +------------------------------------------------------------------------ +r1871981 | minfrin | 2019-12-26 02:19:49 +0100 (Thu, 26 Dec 2019) | 3 lines + +Backport r1871980. +Use AC_CHECK_SIZEOF, so as to support cross compiling. PR 56053. + +------------------------------------------------------------------------ + +diff --git a/build/apr_common.m4 b/build/apr_common.m4 +index 2cb366c39b78380e..7239a19995218ccc 100644 +--- a/build/apr_common.m4 ++++ b/build/apr_common.m4 +@@ -451,43 +451,6 @@ fi + ]) + + +-dnl +-dnl APR_CHECK_SIZEOF_EXTENDED(INCLUDES, TYPE [, CROSS_SIZE]) +-dnl +-dnl A variant of AC_CHECK_SIZEOF which allows the checking of +-dnl sizes of non-builtin types +-dnl +-AC_DEFUN([APR_CHECK_SIZEOF_EXTENDED], +-[changequote(<<, >>)dnl +-dnl The name to #define. +-define(<>, translit(sizeof_$2, [a-z *], [A-Z_P]))dnl +-dnl The cache variable name. +-define(<>, translit(ac_cv_sizeof_$2, [ *], [_p]))dnl +-changequote([, ])dnl +-AC_MSG_CHECKING(size of $2) +-AC_CACHE_VAL(AC_CV_NAME, +-[AC_TRY_RUN([#include +-$1 +-#ifdef WIN32 +-#define binmode "b" +-#else +-#define binmode +-#endif +-main() +-{ +- FILE *f=fopen("conftestval", "w" binmode); +- if (!f) exit(1); +- fprintf(f, "%d\n", sizeof($2)); +- exit(0); +-}], AC_CV_NAME=`cat conftestval`, AC_CV_NAME=0, ifelse([$3],,, +-AC_CV_NAME=$3))])dnl +-AC_MSG_RESULT($AC_CV_NAME) +-AC_DEFINE_UNQUOTED(AC_TYPE_NAME, $AC_CV_NAME, [The size of ]$2) +-undefine([AC_TYPE_NAME])dnl +-undefine([AC_CV_NAME])dnl +-]) +- +- + dnl + dnl APR_TRY_COMPILE_NO_WARNING(INCLUDES, FUNCTION-BODY, + dnl [ACTIONS-IF-NO-WARNINGS], [ACTIONS-IF-WARNINGS]) +diff --git a/configure.in b/configure.in +index 7ab8277a2782dbef..d858951af97f3a1b 100644 +--- a/configure.in ++++ b/configure.in +@@ -1799,7 +1799,7 @@ else + socklen_t_value="int" + fi + +-APR_CHECK_SIZEOF_EXTENDED([#include ], pid_t, 8) ++AC_CHECK_SIZEOF(pid_t) + + if test "$ac_cv_sizeof_pid_t" = "$ac_cv_sizeof_short"; then + pid_t_fmt='#define APR_PID_T_FMT "hd"' +@@ -1871,7 +1871,7 @@ APR_CHECK_TYPES_FMT_COMPATIBLE(size_t, unsigned long, lu, [size_t_fmt="lu"], [ + APR_CHECK_TYPES_FMT_COMPATIBLE(size_t, unsigned int, u, [size_t_fmt="u"]) + ]) + +-APR_CHECK_SIZEOF_EXTENDED([#include ], ssize_t, 8) ++AC_CHECK_SIZEOF(ssize_t) + + dnl the else cases below should no longer occur; + AC_MSG_CHECKING([which format to use for apr_ssize_t]) +@@ -1889,7 +1889,7 @@ fi + + ssize_t_fmt="#define APR_SSIZE_T_FMT \"$ssize_t_fmt\"" + +-APR_CHECK_SIZEOF_EXTENDED([#include ], size_t, 8) ++AC_CHECK_SIZEOF(size_t) + + # else cases below should no longer occur; + AC_MSG_CHECKING([which format to use for apr_size_t]) +@@ -1907,7 +1907,7 @@ fi + + size_t_fmt="#define APR_SIZE_T_FMT \"$size_t_fmt\"" + +-APR_CHECK_SIZEOF_EXTENDED([#include ], off_t, 8) ++AC_CHECK_SIZEOF(off_t) + + if test "${ac_cv_sizeof_off_t}${apr_cv_use_lfs64}" = "4yes"; then + # Enable LFS +@@ -2001,7 +2001,7 @@ case $host in + ;; + *) + ino_t_value=ino_t +- APR_CHECK_SIZEOF_EXTENDED(AC_INCLUDES_DEFAULT, ino_t, $ac_cv_sizeof_long) ++ AC_CHECK_SIZEOF(ino_t) + if test $ac_cv_sizeof_ino_t = 4; then + if test $ac_cv_sizeof_long = 4; then + ino_t_value="unsigned long" +@@ -2021,8 +2021,8 @@ else + bigendian=0 + fi + +-APR_CHECK_SIZEOF_EXTENDED([#include +-#include ],struct iovec,0) ++AC_CHECK_SIZEOF(struct iovec,,[AC_INCLUDES_DEFAULT ++#include ]) + if test "$ac_cv_sizeof_struct_iovec" = "0"; then + have_iovec=0 + else diff --git a/apr-configure-c99-5.patch b/apr-configure-c99-5.patch new file mode 100644 index 0000000..4036725 --- /dev/null +++ b/apr-configure-c99-5.patch @@ -0,0 +1,24 @@ +------------------------------------------------------------------------ +r1882981 | jim | 2020-10-29 21:32:54 +0100 (Thu, 29 Oct 2020) | 5 lines + +#ifdef HAVE_ARPA_INET_H +#include +#endif +is required for inet_addr + +------------------------------------------------------------------------ + +diff --git a/build/apr_network.m4 b/build/apr_network.m4 +index f70431a800f2dfdd..ba7bf9aa2497df82 100644 +--- a/build/apr_network.m4 ++++ b/build/apr_network.m4 +@@ -160,6 +160,9 @@ AC_DEFUN([APR_CHECK_WORKING_GETNAMEINFO], [ + #ifdef HAVE_NETINET_IN_H + #include + #endif ++#ifdef HAVE_ARPA_INET_H ++#include ++#endif + #ifdef HAVE_STDLIB_H + #include + #endif diff --git a/apr-configure-c99-6.patch b/apr-configure-c99-6.patch new file mode 100644 index 0000000..eac3a87 --- /dev/null +++ b/apr-configure-c99-6.patch @@ -0,0 +1,19 @@ +Avoid an implicit int in the definition of the main function. +Avoids build problems with future C compilers which will not +support them by default. + +Submitted upstream: + +diff --git a/configure.in b/configure.in +index d858951af97f3a1b..6346d8026e7a251d 100644 +--- a/configure.in ++++ b/configure.in +@@ -2210,7 +2210,7 @@ AC_TRY_RUN([ + #include + #include + #include +-main() ++int main(void) + { + struct rlimit limit; + limit.rlim_cur = 0; diff --git a/apr.spec b/apr.spec index dd63dd7..24fd70a 100644 --- a/apr.spec +++ b/apr.spec @@ -12,7 +12,7 @@ Summary: Apache Portable Runtime library Name: apr Version: 1.7.0 -Release: 19%{?dist} +Release: 20%{?dist} # ASL 2.0: everything # ISC: network_io/apr-1.4.6/network_io/unix/inet_?to?.c # BSD with advertising: strings/apr_snprintf.c, strings/apr_fnmatch.c, @@ -28,6 +28,12 @@ Patch2: apr-1.2.7-pkgconf.patch Patch3: apr-1.7.0-deepbind.patch Patch4: apr-1.7.0-autoconf.patch Patch5: apr-1.7.0-r1891269+.patch +Patch6: apr-configure-c99-1.patch +Patch7: apr-configure-c99-2.patch +Patch8: apr-configure-c99-3.patch +Patch9: apr-configure-c99-4.patch +Patch10: apr-configure-c99-5.patch +Patch11: apr-configure-c99-6.patch BuildRequires: gcc, autoconf, libtool, libuuid-devel, python3 BuildRequires: make @@ -55,6 +61,12 @@ C data structures and routines. %patch3 -p1 -b .deepbind %patch4 -p1 -b .autoconf-2-71 %patch5 -p1 -b .r1891269+ +%patch6 -p1 +%patch7 -p1 +%patch8 -p1 +%patch9 -p1 +%patch10 -p1 +%patch11 -p1 %build # regenerate configure script etc. @@ -144,6 +156,9 @@ popd %{_datadir}/aclocal/*.m4 %changelog +* Mon Jan 16 2023 Florian Weimer - 1.7.0-20 +- Port configure script to C99 + * Mon Dec 19 2022 Joe Orton - 1.7.0-19 - rebuild