mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-12-20 22:59:34 -05:00
ITS#10011 build: fix compatibility with stricter C99 compilers
Fix the following warnings: - -Wimplicit-int (fatal with Clang 16) - -Wimplicit-function-declaration (fatal with Clang 16) - -Wincompatible-function-pointer-types (fatal with Clang 16) - -Wint-conversion (fatal with Clang 15) - Old style prototypes (K&R, removed from C23) These warnings-now-error led to misconfigurations and failure to build OpenLDAP, as the tests used during configure caused the wrong results to be emitted. For more information, see LWN.net [0] or LLVM's Discourse [1], the Gentoo wiki [2], or the (new) c-std-porting mailing list [3]. [0] https://lwn.net/Articles/913505/ [1] https://discourse.llvm.org/t/configure-script-breakage-with-the-new-werror-implicit-function-declaration/65213 [2] https://wiki.gentoo.org/wiki/Modern_C_porting [3] hosted at lists.linux.dev. Bug: https://bugs.gentoo.org/871288 Signed-off-by: Sam James <sam@gentoo.org>
This commit is contained in:
parent
ee5565a600
commit
14f81bc47a
2 changed files with 34 additions and 11 deletions
|
|
@ -154,6 +154,7 @@ fi
|
|||
if test $ol_cv_header_stdc = yes; then
|
||||
# /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
|
||||
AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <ctype.h>
|
||||
#include <stdlib.h>
|
||||
#ifndef HAVE_EBCDIC
|
||||
# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
|
||||
# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
|
||||
|
|
@ -303,8 +304,12 @@ AC_DEFUN([OL_PTHREAD_TEST_INCLUDES], [[
|
|||
#define NULL (void*)0
|
||||
#endif
|
||||
|
||||
#ifdef __STDC__
|
||||
static void *task(void *p)
|
||||
#else
|
||||
static void *task(p)
|
||||
void *p;
|
||||
#endif
|
||||
{
|
||||
return (void *) (p == NULL);
|
||||
}
|
||||
|
|
@ -360,9 +365,13 @@ AC_DEFUN([OL_PTHREAD_TEST_FUNCTION],[[
|
|||
AC_DEFUN([OL_PTHREAD_TEST_PROGRAM],
|
||||
[AC_LANG_SOURCE([OL_PTHREAD_TEST_INCLUDES
|
||||
|
||||
#ifdef __STDC__
|
||||
int main(int argc, char **argv)
|
||||
#else
|
||||
int main(argc, argv)
|
||||
int argc;
|
||||
char **argv;
|
||||
#endif
|
||||
{
|
||||
OL_PTHREAD_TEST_FUNCTION
|
||||
}
|
||||
|
|
@ -484,7 +493,7 @@ AC_CACHE_CHECK([for compatible POSIX regex],ol_cv_c_posix_regex,[
|
|||
#include <sys/types.h>
|
||||
#include <regex.h>
|
||||
static char *pattern, *string;
|
||||
main()
|
||||
int main(void)
|
||||
{
|
||||
int rc;
|
||||
regex_t re;
|
||||
|
|
@ -511,7 +520,8 @@ AC_DEFUN([OL_C_UPPER_LOWER],
|
|||
[AC_CACHE_CHECK([if toupper() requires islower()],ol_cv_c_upper_lower,[
|
||||
AC_RUN_IFELSE([AC_LANG_SOURCE([[
|
||||
#include <ctype.h>
|
||||
main()
|
||||
#include <stdlib.h>
|
||||
int main(void)
|
||||
{
|
||||
if ('C' == toupper('C'))
|
||||
exit(0);
|
||||
|
|
@ -569,7 +579,7 @@ AC_DEFUN([OL_NONPOSIX_STRERROR_R],
|
|||
]])],[ol_cv_nonposix_strerror_r=yes],[ol_cv_nonposix_strerror_r=no])
|
||||
else
|
||||
AC_RUN_IFELSE([AC_LANG_SOURCE([[
|
||||
main() {
|
||||
int main(void) {
|
||||
char buf[100];
|
||||
buf[0] = 0;
|
||||
strerror_r( 1, buf, sizeof buf );
|
||||
|
|
|
|||
29
configure.ac
29
configure.ac
|
|
@ -1017,7 +1017,11 @@ dnl ----------------------------------------------------------------
|
|||
AC_CHECK_HEADERS( sys/epoll.h )
|
||||
if test "${ac_cv_header_sys_epoll_h}" = yes; then
|
||||
AC_MSG_CHECKING(for epoll system call)
|
||||
AC_RUN_IFELSE([AC_LANG_SOURCE([[int main(int argc, char **argv)
|
||||
AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <stdlib.h>
|
||||
#ifdef HAVE_SYS_POLL_H
|
||||
#include <sys/epoll.h>
|
||||
#endif
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
int epfd = epoll_create(256);
|
||||
exit (epfd == -1 ? 1 : 0);
|
||||
|
|
@ -1370,10 +1374,10 @@ case $ol_with_threads in auto | yes | posix)
|
|||
dnl pthread_create() in -lpthread (many)
|
||||
dnl pthread_create() in -lc_r (FreeBSD)
|
||||
dnl
|
||||
dnl Check pthread (draft4) flags (depreciated)
|
||||
dnl Check pthread (draft4) flags (deprecated)
|
||||
dnl pthread_create() with -threads (OSF/1)
|
||||
dnl
|
||||
dnl Check pthread (draft4) libraries (depreciated)
|
||||
dnl Check pthread (draft4) libraries (deprecated)
|
||||
dnl pthread_mutex_unlock() in -lpthreads -lmach -lexc -lc_r (OSF/1)
|
||||
dnl pthread_mutex_lock() in -lpthreads -lmach -lexc (OSF/1)
|
||||
dnl pthread_mutex_trylock() in -lpthreads -lexc (OSF/1)
|
||||
|
|
@ -1392,7 +1396,7 @@ case $ol_with_threads in auto | yes | posix)
|
|||
ol_link_threads=posix
|
||||
ol_link_pthreads=""
|
||||
fi
|
||||
|
||||
|
||||
dnl OL_PTHREAD_TRY([-mt], [ol_cv_pthread_mt])
|
||||
OL_PTHREAD_TRY([-kthread], [ol_cv_pthread_kthread])
|
||||
OL_PTHREAD_TRY([-pthread], [ol_cv_pthread_pthread])
|
||||
|
|
@ -1479,10 +1483,8 @@ pthread_rwlock_t rwlock;
|
|||
dnl save the flags
|
||||
AC_LINK_IFELSE([AC_LANG_PROGRAM([[
|
||||
#include <pthread.h>
|
||||
#ifndef NULL
|
||||
#define NULL (void*)0
|
||||
#endif
|
||||
]], [[pthread_detach(NULL);]])],[ol_cv_func_pthread_detach=yes],[ol_cv_func_pthread_detach=no])
|
||||
pthread_t thread;
|
||||
]], [[pthread_detach(thread);]])],[ol_cv_func_pthread_detach=yes],[ol_cv_func_pthread_detach=no])
|
||||
])
|
||||
|
||||
if test $ol_cv_func_pthread_detach = no ; then
|
||||
|
|
@ -1537,6 +1539,9 @@ dnl esac
|
|||
AC_CACHE_CHECK([if select yields when using pthreads],
|
||||
ol_cv_pthread_select_yields,[
|
||||
AC_RUN_IFELSE([AC_LANG_SOURCE([[
|
||||
#define _XOPEN_SOURCE 500 /* For pthread_setconcurrency() on glibc */
|
||||
#include <stdlib.h>
|
||||
#include <stdio.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/time.h>
|
||||
#include <unistd.h>
|
||||
|
|
@ -1547,8 +1552,12 @@ dnl esac
|
|||
|
||||
static int fildes[2];
|
||||
|
||||
#ifdef __STDC__
|
||||
static void *task(void *p)
|
||||
#else
|
||||
static void *task(p)
|
||||
void *p;
|
||||
#endif
|
||||
{
|
||||
int i;
|
||||
struct timeval tv;
|
||||
|
|
@ -1572,9 +1581,13 @@ static void *task(p)
|
|||
exit(0); /* if we exit here, the select blocked the whole process */
|
||||
}
|
||||
|
||||
#ifdef __STDC__
|
||||
int main(int argc, char **argv)
|
||||
#else
|
||||
int main(argc, argv)
|
||||
int argc;
|
||||
char **argv;
|
||||
#endif
|
||||
{
|
||||
pthread_t t;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue