summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorOBATA Akio <[email protected]>2019-04-20 16:46:15 +0900
committerOBATA Akio <[email protected]>2019-04-20 18:08:58 +0900
commit7537d9ef7d526052ca051d93692b290b5fb64d88 (patch)
treec2fdc0e11e5aa7cfe7e1998a3477cd657c6f9b6d
parent2c18879814fa01d3bd9de69625c8ff1791f793b6 (diff)
downloadtdenetwork-7537d9ef7d526052ca051d93692b290b5fb64d88.tar.gz
tdenetwork-7537d9ef7d526052ca051d93692b290b5fb64d88.zip
Change to check `strerror` and `fdopen` with CMake
It is hard to update list of "available" platforms. Signed-off-by: OBATA Akio <[email protected]>
-rw-r--r--config.h.cmake3
-rw-r--r--ktalkd/ConfigureChecks.cmake3
-rw-r--r--ktalkd/mail.local/mail.local.c7
3 files changed, 11 insertions, 2 deletions
diff --git a/config.h.cmake b/config.h.cmake
index 3bed93bc..df1f6404 100644
--- a/config.h.cmake
+++ b/config.h.cmake
@@ -52,6 +52,9 @@
#cmakedefine HAVE_UTMP_H 1
#cmakedefine HAVE_UTMPX_H 1
#cmakedefine HAVE_VSNPRINTF 1
+#cmakedefine HAVE_STRERROR 1
+#cmakedefine HAVE_STRERROR_PROTO 1
+#cmakedefine HAVE_FDOPEN_PROTO 1
#cmakedefine SCANDIR_NEEDS_CONST 1
// only for Linux
diff --git a/ktalkd/ConfigureChecks.cmake b/ktalkd/ConfigureChecks.cmake
index 923854b0..d10b5ea4 100644
--- a/ktalkd/ConfigureChecks.cmake
+++ b/ktalkd/ConfigureChecks.cmake
@@ -17,6 +17,9 @@ check_include_file( utmp.h HAVE_UTMP_H )
check_include_file( utmpx.h HAVE_UTMPX_H )
check_function_exists( vsnprintf HAVE_VSNPRINTF )
+check_function_exists( strerror HAVE_STRERROR )
+check_symbol_exists( strerror "string.h" HAVE_STRERROR_PROTO )
+check_symbol_exists( fdopen "stdio.h" HAVE_FDOPEN_PROTO )
if( ${CMAKE_SYSTEM_NAME} STREQUAL "Linux" )
set( PROC_FIND_USER 1 CACHE INTERNAL "" FORCE )
diff --git a/ktalkd/mail.local/mail.local.c b/ktalkd/mail.local/mail.local.c
index 9c90d272..c88351dd 100644
--- a/ktalkd/mail.local/mail.local.c
+++ b/ktalkd/mail.local/mail.local.c
@@ -232,8 +232,11 @@ static char copyright[] =
# define _BSD_VA_LIST_ va_list
#endif
-#if !defined(BSD4_4) && !defined(linux) && !defined(_UNIXWARE)
+#ifndef HAVE_STRERROR_PROTO
extern char *strerror __P((int));
+#endif
+
+#ifndef HAVE_FDOPEN_PROTO
extern FILE *fdopen __P((int, const char *));
#endif
@@ -831,7 +834,7 @@ e_to_sys(num)
}
}
-#if !defined(BSD4_4) && !defined(__osf__) && !defined(__GLIBC__)
+#ifndef HAVE_STRERROR
char *
strerror(eno)