Merge topic 'dev/fix-cmcurl-try_run'
7e0b001
Fix missed _POLL_EMUL_H_ and HAVE_POLL combo8a61950
Toss out strerror_r macros44fca8b
Check for poll when looking for _POLL_EMUL_H_8d36890
Use _POLL_EMUL_H_ instead of HAVE_POLL_FINEc5cbb31
Ignore strerror_r since CMake isn't threaded
This commit is contained in:
commit
5615ecf311
|
@ -193,14 +193,6 @@ SET(EXTRA_DEFINES "${EXTRA_DEFINES}\n${headers_hack}\n#define __unused5")
|
||||||
CURL_CHECK_C_SOURCE_COMPILES("struct timeval ts;\nts.tv_sec = 0;\nts.tv_usec = 0" HAVE_STRUCT_TIMEVAL)
|
CURL_CHECK_C_SOURCE_COMPILES("struct timeval ts;\nts.tv_sec = 0;\nts.tv_usec = 0" HAVE_STRUCT_TIMEVAL)
|
||||||
|
|
||||||
|
|
||||||
INCLUDE(CurlCheckCSourceRuns)
|
|
||||||
SET(EXTRA_DEFINES)
|
|
||||||
SET(HEADER_INCLUDES)
|
|
||||||
IF(HAVE_SYS_POLL_H)
|
|
||||||
SET(HEADER_INCLUDES "sys/poll.h")
|
|
||||||
ENDIF(HAVE_SYS_POLL_H)
|
|
||||||
CURL_CHECK_C_SOURCE_RUNS("return poll((void *)0, 0, 10 /*ms*/)" HAVE_POLL_FINE)
|
|
||||||
|
|
||||||
SET(HAVE_SIG_ATOMIC_T 1)
|
SET(HAVE_SIG_ATOMIC_T 1)
|
||||||
SET(EXTRA_DEFINES)
|
SET(EXTRA_DEFINES)
|
||||||
SET(HEADER_INCLUDES)
|
SET(HEADER_INCLUDES)
|
||||||
|
|
|
@ -521,42 +521,6 @@ MACRO(CURL_INTERNAL_TEST CURL_TEST)
|
||||||
ENDIF("${CURL_TEST}" MATCHES "^${CURL_TEST}$")
|
ENDIF("${CURL_TEST}" MATCHES "^${CURL_TEST}$")
|
||||||
ENDMACRO(CURL_INTERNAL_TEST)
|
ENDMACRO(CURL_INTERNAL_TEST)
|
||||||
|
|
||||||
MACRO(CURL_INTERNAL_TEST_RUN CURL_TEST)
|
|
||||||
IF("${CURL_TEST}_COMPILE" MATCHES "^${CURL_TEST}_COMPILE$")
|
|
||||||
SET(MACRO_CHECK_FUNCTION_DEFINITIONS
|
|
||||||
"-D${CURL_TEST} ${CMAKE_REQUIRED_FLAGS}")
|
|
||||||
IF(CMAKE_REQUIRED_LIBRARIES)
|
|
||||||
SET(CURL_TEST_ADD_LIBRARIES
|
|
||||||
"-DLINK_LIBRARIES:STRING=${CMAKE_REQUIRED_LIBRARIES}")
|
|
||||||
ENDIF(CMAKE_REQUIRED_LIBRARIES)
|
|
||||||
|
|
||||||
MESSAGE(STATUS "Performing Curl Test ${CURL_TEST}")
|
|
||||||
TRY_RUN(${CURL_TEST} ${CURL_TEST}_COMPILE
|
|
||||||
${CMAKE_BINARY_DIR}
|
|
||||||
${LIBCURL_SOURCE_DIR}/CMake/CurlTests.c
|
|
||||||
CMAKE_FLAGS -DCOMPILE_DEFINITIONS:STRING=${MACRO_CHECK_FUNCTION_DEFINITIONS}
|
|
||||||
"${CURL_TEST_ADD_LIBRARIES}"
|
|
||||||
OUTPUT_VARIABLE OUTPUT)
|
|
||||||
IF(${CURL_TEST}_COMPILE AND NOT ${CURL_TEST})
|
|
||||||
SET(${CURL_TEST} 1 CACHE INTERNAL "Curl test ${FUNCTION}")
|
|
||||||
MESSAGE(STATUS "Performing Curl Test ${CURL_TEST} - Success")
|
|
||||||
ELSE(${CURL_TEST}_COMPILE AND NOT ${CURL_TEST})
|
|
||||||
MESSAGE(STATUS "Performing Curl Test ${CURL_TEST} - Failed")
|
|
||||||
SET(${CURL_TEST} "" CACHE INTERNAL "Curl test ${FUNCTION}")
|
|
||||||
FILE(APPEND "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log"
|
|
||||||
"Performing Curl Test ${CURL_TEST} failed with the following output:\n"
|
|
||||||
"${OUTPUT}")
|
|
||||||
IF(${CURL_TEST}_COMPILE)
|
|
||||||
FILE(APPEND
|
|
||||||
"${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log"
|
|
||||||
"There was a running problem of this test\n")
|
|
||||||
ENDIF(${CURL_TEST}_COMPILE)
|
|
||||||
FILE(APPEND "${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log"
|
|
||||||
"\n\n")
|
|
||||||
ENDIF(${CURL_TEST}_COMPILE AND NOT ${CURL_TEST})
|
|
||||||
ENDIF("${CURL_TEST}_COMPILE" MATCHES "^${CURL_TEST}_COMPILE$")
|
|
||||||
ENDMACRO(CURL_INTERNAL_TEST_RUN)
|
|
||||||
|
|
||||||
# Do curl specific tests
|
# Do curl specific tests
|
||||||
#OPTION(CURL_HAVE_DISABLED_NONBLOCKING "Disable non-blocking socket detection" OFF)
|
#OPTION(CURL_HAVE_DISABLED_NONBLOCKING "Disable non-blocking socket detection" OFF)
|
||||||
SET(CURL_NONBLOCKING_TESTS)
|
SET(CURL_NONBLOCKING_TESTS)
|
||||||
|
@ -599,13 +563,6 @@ IF(HAVE_FILE_OFFSET_BITS)
|
||||||
SET(_FILE_OFFSET_BITS 64)
|
SET(_FILE_OFFSET_BITS 64)
|
||||||
ENDIF(HAVE_FILE_OFFSET_BITS)
|
ENDIF(HAVE_FILE_OFFSET_BITS)
|
||||||
|
|
||||||
FOREACH(CURL_TEST
|
|
||||||
HAVE_GLIBC_STRERROR_R
|
|
||||||
HAVE_POSIX_STRERROR_R
|
|
||||||
)
|
|
||||||
CURL_INTERNAL_TEST_RUN(${CURL_TEST})
|
|
||||||
ENDFOREACH(CURL_TEST)
|
|
||||||
|
|
||||||
# Check for reentrant
|
# Check for reentrant
|
||||||
FOREACH(CURL_TEST
|
FOREACH(CURL_TEST
|
||||||
HAVE_GETHOSTBYADDR_R_5
|
HAVE_GETHOSTBYADDR_R_5
|
||||||
|
|
|
@ -171,9 +171,6 @@
|
||||||
/* Define to 1 if you have the `gettimeofday' function. */
|
/* Define to 1 if you have the `gettimeofday' function. */
|
||||||
#cmakedefine HAVE_GETTIMEOFDAY ${HAVE_GETTIMEOFDAY}
|
#cmakedefine HAVE_GETTIMEOFDAY ${HAVE_GETTIMEOFDAY}
|
||||||
|
|
||||||
/* we have a glibc-style strerror_r() */
|
|
||||||
#cmakedefine HAVE_GLIBC_STRERROR_R ${HAVE_GLIBC_STRERROR_R}
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `gmtime_r' function. */
|
/* Define to 1 if you have the `gmtime_r' function. */
|
||||||
#cmakedefine HAVE_GMTIME_R ${HAVE_GMTIME_R}
|
#cmakedefine HAVE_GMTIME_R ${HAVE_GMTIME_R}
|
||||||
|
|
||||||
|
@ -348,12 +345,6 @@
|
||||||
/* Define to 1 if you have the `poll' function. */
|
/* Define to 1 if you have the `poll' function. */
|
||||||
#cmakedefine HAVE_POLL ${HAVE_POLL}
|
#cmakedefine HAVE_POLL ${HAVE_POLL}
|
||||||
|
|
||||||
/* If you have a fine poll */
|
|
||||||
#cmakedefine HAVE_POLL_FINE ${HAVE_POLL_FINE}
|
|
||||||
|
|
||||||
/* we have a POSIX-style strerror_r() */
|
|
||||||
#cmakedefine HAVE_POSIX_STRERROR_R ${HAVE_POSIX_STRERROR_R}
|
|
||||||
|
|
||||||
/* Define to 1 if you have the <process.h> header file. */
|
/* Define to 1 if you have the <process.h> header file. */
|
||||||
#cmakedefine HAVE_PROCESS_H ${HAVE_PROCESS_H}
|
#cmakedefine HAVE_PROCESS_H ${HAVE_PROCESS_H}
|
||||||
|
|
||||||
|
@ -444,9 +435,6 @@
|
||||||
/* Define to 1 if you have the `strdup' function. */
|
/* Define to 1 if you have the `strdup' function. */
|
||||||
#cmakedefine HAVE_STRDUP ${HAVE_STRDUP}
|
#cmakedefine HAVE_STRDUP ${HAVE_STRDUP}
|
||||||
|
|
||||||
/* Define to 1 if you have the `strerror_r' function. */
|
|
||||||
#cmakedefine HAVE_STRERROR_R ${HAVE_STRERROR_R}
|
|
||||||
|
|
||||||
/* Define to 1 if you have the `stricmp' function. */
|
/* Define to 1 if you have the `stricmp' function. */
|
||||||
#cmakedefine HAVE_STRICMP ${HAVE_STRICMP}
|
#cmakedefine HAVE_STRICMP ${HAVE_STRICMP}
|
||||||
|
|
||||||
|
|
|
@ -78,7 +78,7 @@
|
||||||
*/
|
*/
|
||||||
int Curl_select(curl_socket_t readfd, curl_socket_t writefd, int timeout_ms)
|
int Curl_select(curl_socket_t readfd, curl_socket_t writefd, int timeout_ms)
|
||||||
{
|
{
|
||||||
#if defined(HAVE_POLL_FINE) || defined(CURL_HAVE_WSAPOLL)
|
#if (defined(HAVE_POLL) && !defined(_POLL_EMUL_H_)) || defined(CURL_HAVE_WSAPOLL)
|
||||||
struct pollfd pfd[2];
|
struct pollfd pfd[2];
|
||||||
int num;
|
int num;
|
||||||
int r;
|
int r;
|
||||||
|
@ -96,7 +96,7 @@ int Curl_select(curl_socket_t readfd, curl_socket_t writefd, int timeout_ms)
|
||||||
num++;
|
num++;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HAVE_POLL_FINE
|
#if defined(HAVE_POLL) && !defined(_POLL_EMUL_H_)
|
||||||
do {
|
do {
|
||||||
r = poll(pfd, num, timeout_ms);
|
r = poll(pfd, num, timeout_ms);
|
||||||
} while((r == -1) && (errno == EINTR));
|
} while((r == -1) && (errno == EINTR));
|
||||||
|
@ -220,7 +220,7 @@ int Curl_select(curl_socket_t readfd, curl_socket_t writefd, int timeout_ms)
|
||||||
int Curl_poll(struct pollfd ufds[], unsigned int nfds, int timeout_ms)
|
int Curl_poll(struct pollfd ufds[], unsigned int nfds, int timeout_ms)
|
||||||
{
|
{
|
||||||
int r;
|
int r;
|
||||||
#ifdef HAVE_POLL_FINE
|
#if defined(HAVE_POLL) && !defined(_POLL_EMUL_H_)
|
||||||
do {
|
do {
|
||||||
r = poll(ufds, nfds, timeout_ms);
|
r = poll(ufds, nfds, timeout_ms);
|
||||||
} while((r == -1) && (errno == EINTR));
|
} while((r == -1) && (errno == EINTR));
|
||||||
|
|
Loading…
Reference in New Issue