Subject: Re: [PATCH] Use lowercase includes for some Windows headers

From: Junio C Hamano <[email-masked]>
Date: Mon, 12 Jun 2023 12:30:43 -0700

Mike Hommey <[email-masked]> writes:

> When cross-compiling with the mingw toolchain on a system with a case
> sensitive filesystem, the mixed case (which is technically correct as
> per the contents of MS Visual C++) doesn't work (the corresponding mingw
> headers are all lowercase for some reason).
>
> Signed-off-by: Mike Hommey <[email-masked]>
> ---
>  compat/win32/trace2_win32_process_info.c | 4 ++--
>  wrapper.c                                | 2 +-
>  2 files changed, 3 insertions(+), 3 deletions(-)

I can guess that this will not break the primary target audience of
the source, who build from the source on case insensitive
filesystems.  The only possible breakage I can think of is if
different versions of mingw toolchain have these header files in
different cases---those who have been happily using header files
like <tlHelp32.h> on their case sensitive filesystem now will find
their build to fail.  Theoretically, those who _corrected_ their
header files to mixed case themselves (as it is "technically correct
as per the contents of MS Visual C++") will be broken the same way,
but they should be capable of diagnosing and recovering from such a
breakage, so I'm not worried about that.

Appreciate input from those who builds with mingw toolchain, but in
the meantime let me queue it on 'seen' so that we won't forget.

Thanks.

> diff --git a/compat/win32/trace2_win32_process_info.c b/compat/win32/trace2_win32_process_info.c
> index a4e33768f4..438af8f818 100644
> --- a/compat/win32/trace2_win32_process_info.c
> +++ b/compat/win32/trace2_win32_process_info.c
> @@ -3,8 +3,8 @@
>  #include "../../repository.h"
>  #include "../../trace2.h"
>  #include "lazyload.h"
> -#include <Psapi.h>
> -#include <tlHelp32.h>
> +#include <psapi.h>
> +#include <tlhelp32.h>
>  
>  /*
>   * An arbitrarily chosen value to limit the size of the ancestor
> diff --git a/wrapper.c b/wrapper.c
> index 67f5f5dbe1..5dc48e815a 100644
> --- a/wrapper.c
> +++ b/wrapper.c
> @@ -17,7 +17,7 @@ static intmax_t count_fsync_hardware_flush;
>  #ifdef HAVE_RTLGENRANDOM
>  /* This is required to get access to RtlGenRandom. */
>  #define SystemFunction036 NTAPI SystemFunction036
> -#include <NTSecAPI.h>
> +#include <ntsecapi.h>
>  #undef SystemFunction036
>  #endif