src: drop detecting and redefining system symbol `ftruncate`
No binary (build failed)
—
(log yok)
| @@ -88,7 +88,6 @@ elseif(CYGWIN OR | |
| set(HAVE_FSETXATTR_5 1) | |
| set(HAVE_FSETXATTR_6 0) | |
| endif() | |
| - | set(HAVE_FTRUNCATE 1) |
| set(HAVE_GETADDRINFO 1) | |
| if(CMAKE_SYSTEM_NAME STREQUAL "OpenBSD") | |
| set(HAVE_GETADDRINFO_THREADSAFE 0) | |
| @@ -29,7 +29,6 @@ if(MINGW) | |
| set(HAVE_BASENAME 1) | |
| set(HAVE_BOOL_T 1) # = HAVE_STDBOOL_H | |
| set(HAVE_DIRENT_H 1) | |
| - | set(HAVE_FTRUNCATE 1) |
| set(HAVE_GETTIMEOFDAY 1) | |
| set(HAVE_LIBGEN_H 1) | |
| set(HAVE_OPENDIR 1) | |
| @@ -42,7 +41,6 @@ if(MINGW) | |
| set(HAVE_UTIME_H 1) # wrapper to sys/utime.h | |
| else() | |
| set(HAVE_DIRENT_H 0) | |
| - | set(HAVE_FTRUNCATE 0) |
| set(HAVE_GETTIMEOFDAY 0) | |
| set(HAVE_LIBGEN_H 0) | |
| set(HAVE_OPENDIR 0) | |
| @@ -1637,7 +1637,6 @@ check_symbol_exists("freeaddrinfo" "${CURL_INCLUDES}" HAVE_FREEADDRINFO) # w | |
| check_function_exists("pipe" HAVE_PIPE) | |
| check_function_exists("pipe2" HAVE_PIPE2) | |
| check_function_exists("eventfd" HAVE_EVENTFD) | |
| - | check_symbol_exists("ftruncate" "unistd.h" HAVE_FTRUNCATE) |
| check_symbol_exists("getpeername" "${CURL_INCLUDES}" HAVE_GETPEERNAME) # winsock2.h unistd.h proto/bsdsocket.h | |
| check_symbol_exists("getsockname" "${CURL_INCLUDES}" HAVE_GETSOCKNAME) # winsock2.h unistd.h proto/bsdsocket.h | |
| check_function_exists("getrlimit" HAVE_GETRLIMIT) | |
| @@ -4086,7 +4086,6 @@ CURL_CHECK_FUNC_CLOSESOCKET_CAMEL | |
| CURL_CHECK_FUNC_FCNTL | |
| CURL_CHECK_FUNC_FREEADDRINFO | |
| CURL_CHECK_FUNC_FSETXATTR | |
| - | CURL_CHECK_FUNC_FTRUNCATE |
| CURL_CHECK_FUNC_GETADDRINFO | |
| CURL_CHECK_FUNC_GETHOSTBYNAME_R | |
| CURL_CHECK_FUNC_GETHOSTNAME | |
| @@ -51,7 +51,6 @@ | |
| #define HAVE_SYS_UTIME_H 1 | |
| #define HAVE_SYS_IOCTL_H 1 | |
| #define HAVE_ALARM 1 | |
| - | #define HAVE_FTRUNCATE 1 |
| #define HAVE_UTIME 1 | |
| #define HAVE_SELECT 1 | |
| #define HAVE_SOCKET 1 | |
| @@ -69,9 +69,6 @@ | |
| /* Define to 1 if you have the freeaddrinfo function. */ | |
| #define HAVE_FREEADDRINFO 1 | |
| - | /* Define to 1 if you have the ftruncate function. */ |
| - | #define HAVE_FTRUNCATE 1 |
| - | |
| /* Define to 1 if you have a working getaddrinfo function. */ | |
| #define HAVE_GETADDRINFO 1 | |
| @@ -48,9 +48,6 @@ | |
| /* Define if you have the <fcntl.h> header file. */ | |
| #define HAVE_FCNTL_H | |
| - | /* Define if you have the `ftruncate' function. */ |
| - | #define HAVE_FTRUNCATE |
| - | |
| /* Define if getaddrinfo exists and works */ | |
| #define HAVE_GETADDRINFO | |
| @@ -86,11 +86,6 @@ | |
| /* Define if you have the closesocket function. */ | |
| #define HAVE_CLOSESOCKET 1 | |
| - | /* Define if you have the ftruncate function. */ |
| - | #ifdef __MINGW32__ |
| - | #define HAVE_FTRUNCATE 1 |
| - | #endif |
| - | |
| /* Define to 1 if you have the `getpeername' function. */ | |
| #define HAVE_GETPEERNAME 1 | |
| @@ -252,9 +252,6 @@ | |
| /* Define to 1 if you have the fseeko declaration. */ | |
| #cmakedefine HAVE_DECL_FSEEKO 1 | |
| - | /* Define to 1 if you have the ftruncate function. */ |
| - | #cmakedefine HAVE_FTRUNCATE 1 |
| - | |
| /* Define to 1 if you have a working getaddrinfo function. */ | |
| #cmakedefine HAVE_GETADDRINFO 1 | |
| @@ -1172,91 +1172,6 @@ AC_DEFUN([CURL_CHECK_FUNC_FSETXATTR], [ | |
| ]) | |
| - | dnl CURL_CHECK_FUNC_FTRUNCATE |
| - | dnl ------------------------------------------------- |
| - | dnl Verify if ftruncate is available, prototyped, and |
| - | dnl can be compiled. If all of these are true, and |
| - | dnl usage has not been previously disallowed with |
| - | dnl shell variable curl_disallow_ftruncate, then |
| - | dnl HAVE_FTRUNCATE will be defined. |
| - | |
| - | AC_DEFUN([CURL_CHECK_FUNC_FTRUNCATE], [ |
| - | AC_REQUIRE([CURL_INCLUDES_UNISTD])dnl |
| - | # |
| - | tst_links_ftruncate="unknown" |
| - | tst_proto_ftruncate="unknown" |
| - | tst_compi_ftruncate="unknown" |
| - | tst_allow_ftruncate="unknown" |
| - | # |
| - | AC_MSG_CHECKING([if ftruncate can be linked]) |
| - | AC_LINK_IFELSE([ |
| - | AC_LANG_FUNC_LINK_TRY([ftruncate]) |
| - | ],[ |
| - | AC_MSG_RESULT([yes]) |
| - | tst_links_ftruncate="yes" |
| - | ],[ |
| - | AC_MSG_RESULT([no]) |
| - | tst_links_ftruncate="no" |
| - | ]) |
| - | # |
| - | if test "$tst_links_ftruncate" = "yes"; then |
| - | AC_MSG_CHECKING([if ftruncate is prototyped]) |
| - | AC_EGREP_CPP([ftruncate],[ |
| - | $curl_includes_unistd |
| - | ],[ |
| - | AC_MSG_RESULT([yes]) |
| - | tst_proto_ftruncate="yes" |
| - | ],[ |
| - | AC_MSG_RESULT([no]) |
| - | tst_proto_ftruncate="no" |
| - | ]) |
| - | fi |
| - | # |
| - | if test "$tst_proto_ftruncate" = "yes"; then |
| - | AC_MSG_CHECKING([if ftruncate is compilable]) |
| - | AC_COMPILE_IFELSE([ |
| - | AC_LANG_PROGRAM([[ |
| - | $curl_includes_unistd |
| - | ]],[[ |
| - | if(ftruncate(0, 0) != 0) |
| - | return 1; |
| - | ]]) |
| - | ],[ |
| - | AC_MSG_RESULT([yes]) |
| - | tst_compi_ftruncate="yes" |
| - | ],[ |
| - | AC_MSG_RESULT([no]) |
| - | tst_compi_ftruncate="no" |
| - | ]) |
| - | fi |
| - | # |
| - | if test "$tst_compi_ftruncate" = "yes"; then |
| - | AC_MSG_CHECKING([if ftruncate usage allowed]) |
| - | if test "x$curl_disallow_ftruncate" != "xyes"; then |
| - | AC_MSG_RESULT([yes]) |
| - | tst_allow_ftruncate="yes" |
| - | else |
| - | AC_MSG_RESULT([no]) |
| - | tst_allow_ftruncate="no" |
| - | fi |
| - | fi |
| - | # |
| - | AC_MSG_CHECKING([if ftruncate might be used]) |
| - | if test "$tst_links_ftruncate" = "yes" && |
| - | test "$tst_proto_ftruncate" = "yes" && |
| - | test "$tst_compi_ftruncate" = "yes" && |
| - | test "$tst_allow_ftruncate" = "yes"; then |
| - | AC_MSG_RESULT([yes]) |
| - | AC_DEFINE_UNQUOTED(HAVE_FTRUNCATE, 1, |
| - | [Define to 1 if you have the ftruncate function.]) |
| - | curl_cv_func_ftruncate="yes" |
| - | else |
| - | AC_MSG_RESULT([no]) |
| - | curl_cv_func_ftruncate="no" |
| - | fi |
| - | ]) |
| - | |
| - | |
| dnl CURL_CHECK_FUNC_GETADDRINFO | |
| dnl ------------------------------------------------- | |
| dnl Verify if getaddrinfo is available, prototyped, can | |
| @@ -270,7 +270,7 @@ static size_t save_etag(const char *etag_h, const char *endp, | |
| if((fd != -1) && | |
| !curlx_fstat(fd, &file) && | |
| (S_ISREG(file.st_mode) && | |
| - | ftruncate(fd, 0))) |
| + | toolx_ftruncate(fd, 0))) |
| return CURL_WRITEFUNC_ERROR; | |
| fwrite(etag_h, 1, etag_length, etag_save->stream); | |
| @@ -559,7 +559,7 @@ static CURLcode retrycheck(struct OperationConfig *config, | |
| notef("Throwing away %" CURL_FORMAT_CURL_OFF_T " bytes", outs->bytes); | |
| /* truncate file at the position where we started appending */ | |
| - | if(ftruncate(fileno(outs->stream), outs->init)) { |
| + | if(toolx_ftruncate(fileno(outs->stream), outs->init)) { |
| /* when truncate fails, we cannot append as then we | |
| create something strange, bail out */ | |
| errorf("Failed to truncate file"); | |
| @@ -94,26 +94,16 @@ extern FILE *tool_stderr; | |
| #ifdef _WIN32 | |
| /* set in init_terminal() */ | |
| extern bool tool_term_has_bold; | |
| + | #endif |
| - | #ifndef HAVE_FTRUNCATE |
| - | |
| - | int tool_ftruncate64(int fd, curl_off_t where); |
| - | |
| - | #undef ftruncate |
| - | #define ftruncate(fd, where) tool_ftruncate64(fd, where) |
| - | |
| - | #define HAVE_FTRUNCATE 1 |
| - | #define USE_TOOL_FTRUNCATE 1 |
| - | |
| - | #endif /* !HAVE_FTRUNCATE */ |
| - | #endif /* _WIN32 */ |
| - | |
| - | #ifdef __DJGPP__ |
| - | int msdos_ftruncate(int fd, curl_off_t where); |
| - | #undef HAVE_FTRUNCATE |
| - | #undef ftruncate /* to be sure */ |
| - | #define ftruncate(fd, where) msdos_ftruncate(fd, where) |
| - | #define USE_MSDOS_FTRUNCATE 1 |
| + | #if defined(_WIN32) && !defined(__MINGW32__) |
| + | int toolx_ftruncate_win32(int fd, curl_off_t where); |
| + | #define toolx_ftruncate toolx_ftruncate_win32 |
| + | #elif defined(__DJGPP__) |
| + | int toolx_ftruncate_djgpp(int fd, curl_off_t where); |
| + | #define toolx_ftruncate toolx_ftruncate_djgpp |
| + | #else |
| + | #define toolx_ftruncate ftruncate |
| #endif | |
| #ifdef CURL_CA_EMBED | |
| @@ -78,11 +78,11 @@ int struplocompare4sort(const void *p1, const void *p2) | |
| return struplocompare(*(char * const *)p1, *(char * const *)p2); | |
| } | |
| - | #ifdef USE_TOOL_FTRUNCATE |
| + | #if defined(_WIN32) && !defined(__MINGW32__) |
| /* | |
| * Truncate a file handle at a 64-bit position 'where'. | |
| */ | |
| - | int tool_ftruncate64(int fd, curl_off_t where) |
| + | int toolx_ftruncate_win32(int fd, curl_off_t where) |
| { | |
| intptr_t handle = _get_osfhandle(fd); | |
| @@ -94,21 +94,18 @@ int tool_ftruncate64(int fd, curl_off_t where) | |
| return 0; | |
| } | |
| - | #endif /* USE_TOOL_FTRUNCATE */ |
| - | |
| - | #ifdef USE_MSDOS_FTRUNCATE |
| + | #elif defined(__DJGPP__) |
| /* | |
| * Only supports 'off_t' (signed 32 bit) as file size. | |
| */ | |
| - | int msdos_ftruncate(int fd, curl_off_t where) |
| + | int toolx_ftruncate_djgpp(int fd, curl_off_t where) |
| { | |
| if(where > INT_MAX) | |
| return -1; | |
| - | /* avoid using the macro for this */ |
| - | return (ftruncate)(fd, (off_t) where); |
| + | return ftruncate(fd, (off_t)where); |
| } | |
| - | #endif /* USE_MSDOS_FTRUNCATE */ |
| + | #endif |
| #ifdef _WIN32 | |
| FILE *tool_execpath(const char *filename, char **pathp) | |