From 659e87fe1cf3348a4e9f1bacfe205316fefd8a51 Mon Sep 17 00:00:00 2001 From: Brent Cook Date: Tue, 7 Oct 2025 03:49:29 -0500 Subject: move ftruncate to common libcompat for tests --- CMakeLists.txt | 5 +++++ crypto/CMakeLists.txt | 4 ++++ crypto/Makefile.am | 4 ++++ crypto/compat/ftruncate.c | 17 +++++++++++++++++ m4/check-libc.m4 | 3 ++- tls/CMakeLists.txt | 1 - tls/Makefile.am | 1 - tls/compat/ftruncate.c | 17 ----------------- 8 files changed, 32 insertions(+), 20 deletions(-) create mode 100644 crypto/compat/ftruncate.c delete mode 100644 tls/compat/ftruncate.c diff --git a/CMakeLists.txt b/CMakeLists.txt index 17e5a0c..d73e185 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -226,6 +226,11 @@ if(HAVE_ASPRINTF) add_definitions(-DHAVE_ASPRINTF) endif() +check_symbol_exists(ftruncate "unistd.h" HAVE_FTRUNCATE) +if(HAVE_FTRUNCATE) + add_definitions(-DHAVE_FTRUNCATE) +endif() + check_symbol_exists(getdelim "stdio.h" HAVE_GETDELIM) if(HAVE_GETDELIM) add_definitions(-DHAVE_GETDELIM) diff --git a/crypto/CMakeLists.txt b/crypto/CMakeLists.txt index aacd2a7..137cf70 100644 --- a/crypto/CMakeLists.txt +++ b/crypto/CMakeLists.txt @@ -624,6 +624,10 @@ if(NOT HAVE_FREEZERO) set(COMPAT_SRC ${COMPAT_SRC} compat/freezero.c) endif() +if(NOT HAVE_FTRUNCATE) + set(COMPAT_SRC ${COMPAT_SRC} compat/ftruncate.c) +endif() + if(NOT HAVE_GETDELIM) set(COMPAT_SRC ${COMPAT_SRC} compat/getdelim.c) endif() diff --git a/crypto/Makefile.am b/crypto/Makefile.am index a116996..7fea236 100644 --- a/crypto/Makefile.am +++ b/crypto/Makefile.am @@ -148,6 +148,10 @@ if !HAVE_FREEZERO libcompat_la_SOURCES += compat/freezero.c endif +if !HAVE_FTRUNCATE +libcompat_la_SOURCES += compat/ftruncate.c +endif + if !HAVE_GETDELIM libcompat_la_SOURCES += compat/getdelim.c endif diff --git a/crypto/compat/ftruncate.c b/crypto/compat/ftruncate.c new file mode 100644 index 0000000..e825e50 --- /dev/null +++ b/crypto/compat/ftruncate.c @@ -0,0 +1,17 @@ +/* + * Public domain + * + * Kinichiro Inoguchi + */ + +#ifdef _WIN32 + +#include + +int +ftruncate(int fd, off_t length) +{ + return _chsize(fd, length); +} + +#endif diff --git a/m4/check-libc.m4 b/m4/check-libc.m4 index dadf0da..eec3cb3 100644 --- a/m4/check-libc.m4 +++ b/m4/check-libc.m4 @@ -22,7 +22,7 @@ AC_CHECK_HEADERS([netinet/ip.h], [], [], ]) AC_HEADER_RESOLV # Check for general libc functions -AC_CHECK_FUNCS([asprintf freezero getdelim getline memmem]) +AC_CHECK_FUNCS([asprintf freezero ftruncate getdelim getline memmem]) AC_CHECK_FUNCS([readpassphrase reallocarray recallocarray]) AC_CHECK_FUNCS([strcasecmp strlcat strlcpy strndup strnlen strsep strtonum]) AC_CHECK_FUNCS([timegm _mkgmtime timespecsub]) @@ -39,6 +39,7 @@ AC_CACHE_CHECK([for getpagesize], ac_cv_func_getpagesize, [ ]) AM_CONDITIONAL([HAVE_ASPRINTF], [test "x$ac_cv_func_asprintf" = xyes]) AM_CONDITIONAL([HAVE_FREEZERO], [test "x$ac_cv_func_freezero" = xyes]) +AM_CONDITIONAL([HAVE_FTRUNCATE], [test "x$ac_cv_func_ftruncate" = xyes]) AM_CONDITIONAL([HAVE_GETDELIM], [test "x$ac_cv_func_getdelim" = xyes]) AM_CONDITIONAL([HAVE_GETLINE], [test "x$ac_cv_func_getline" = xyes]) AM_CONDITIONAL([HAVE_GETPAGESIZE], [test "x$ac_cv_func_getpagesize" = xyes]) diff --git a/tls/CMakeLists.txt b/tls/CMakeLists.txt index 6475245..a1b244a 100644 --- a/tls/CMakeLists.txt +++ b/tls/CMakeLists.txt @@ -37,7 +37,6 @@ if(WIN32) ${TLS_SRC} ) - set(TLS_COMPAT_SRC ${TLS_COMPAT_SRC} compat/ftruncate.c) set(TLS_COMPAT_SRC ${TLS_COMPAT_SRC} compat/pread.c) set(TLS_COMPAT_SRC ${TLS_COMPAT_SRC} compat/pwrite.c) endif() diff --git a/tls/Makefile.am b/tls/Makefile.am index 2a7b089..03824b4 100644 --- a/tls/Makefile.am +++ b/tls/Makefile.am @@ -70,7 +70,6 @@ libtls_la_SOURCES += tls_verify.c noinst_HEADERS = tls_internal.h if HOST_WIN -libtls_la_SOURCES += compat/ftruncate.c libtls_la_SOURCES += compat/pread.c libtls_la_SOURCES += compat/pwrite.c endif diff --git a/tls/compat/ftruncate.c b/tls/compat/ftruncate.c deleted file mode 100644 index e825e50..0000000 --- a/tls/compat/ftruncate.c +++ /dev/null @@ -1,17 +0,0 @@ -/* - * Public domain - * - * Kinichiro Inoguchi - */ - -#ifdef _WIN32 - -#include - -int -ftruncate(int fd, off_t length) -{ - return _chsize(fd, length); -} - -#endif -- cgit v1.2.3-55-g6feb