Subject: Re: [PATCH] cmake: use writev(3p) wrapper as needed

From: Junio C Hamano <[email-masked]>
Date: Fri, 03 Apr 2026 10:35:24 -0700

"Johannes Schindelin via GitGitGadget" <[email-masked]>
writes:

> From: Johannes Schindelin <[email-masked]>
>
> This is a companion patch of 3b9b2c2a29a (compat/posix: introduce
> writev(3p) wrapper, 2026-03-13) where support for using the `writev()`
> wrapper was introduced in the `Makefile` and the Meson-based build, but
> the CMake build still needs that treatment, too.
>
> Signed-off-by: Johannes Schindelin <[email-masked]>
> ---
>     cmake: use writev(3p) wrapper as needed
>     
>     This was necessary to get Git for Windows v2.54.0-rc0's CI builds to
>     pass successfully.

Thanks.

I should have been paying a bit more attention when I saw a patch
that touches meson.build files, I think.  Sorry about the slippage.

> Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-2078%2Fdscho%2Fwritev-vs-cmake-v1
> Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-2078/dscho/writev-vs-cmake-v1
> Pull-Request: https://github.com/gitgitgadget/git/pull/2078
>
>  contrib/buildsystems/CMakeLists.txt | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/contrib/buildsystems/CMakeLists.txt b/contrib/buildsystems/CMakeLists.txt
> index c6cfb874ef..dce9c84d0b 100644
> --- a/contrib/buildsystems/CMakeLists.txt
> +++ b/contrib/buildsystems/CMakeLists.txt
> @@ -376,7 +376,7 @@ endif()
>  #function checks
>  set(function_checks
>  	strcasestr memmem strlcpy strtoimax strtoumax strtoull
> -	setenv mkdtemp poll pread memmem)
> +	setenv mkdtemp poll pread memmem writev)
>  
>  #unsetenv,hstrerror are incompatible with windows build
>  if(NOT WIN32)
> @@ -421,6 +421,10 @@ if(NOT HAVE_MEMMEM)
>  	list(APPEND compat_SOURCES compat/memmem.c)
>  endif()
>  
> +if(NOT HAVE_WRITEV)
> +	list(APPEND compat_SOURCES compat/writev.c)
> +endif()
> +
>  if(NOT WIN32)
>  	if(NOT HAVE_UNSETENV)
>  		list(APPEND compat_SOURCES compat/unsetenv.c)
>
> base-commit: 6e8d538aab8fe4dd07ba9fb87b5c7edcfa5706ad