From: Junio C Hamano <gitster@pobox.com>
To: "Carlo Marcelo Arenas Belón via GitGitGadget" <gitgitgadget@gmail.com>
Cc: git@vger.kernel.org, "Carlo Marcelo Arenas Belón" <carenas@gmail.com>
Subject: Re: [PATCH] mingw: avoid fallback for {local,gm}time_r()
Date: Thu, 25 Nov 2021 22:28:20 -0800 [thread overview]
Message-ID: <xmqq35nja0sb.fsf@gitster.g> (raw)
In-Reply-To: <pull.1142.git.git.1637817792914.gitgitgadget@gmail.com> ("Carlo Marcelo Arenas Belón via GitGitGadget"'s message of "Thu, 25 Nov 2021 05:23:12 +0000")
"Carlo Marcelo Arenas Belón via GitGitGadget"
<gitgitgadget@gmail.com> writes:
> From: =?UTF-8?q?Carlo=20Marcelo=20Arenas=20Bel=C3=B3n?= <carenas@gmail.com>
>
> mingw-w64's pthread_unistd.h had a bug that mistakenly (because there is
> no support for the *lockfile() functions required[1]) defined
> _POSIX_THREAD_SAFE_FUNCTIONS and that was being worked around since
> 3ecd153a3b (compat/mingw: support MSys2-based MinGW build, 2016-01-14).
>
> the bug was fixed in winphtreads, but as a sideeffect, leaves the
s/the/The/; s/sideeffect/side effect/;
> reentrant functions from time.h not longer visible and therefore breaks
s/not longer/no longer/
> the build.
>
> since the intention all along was to avoid using the fallback functions,
s/since/Since/;
> formalize the use of POSIX by setting the corresponding feature flag and
> to make the intention clearer compile out the fallback functions.
I cannot parse the last sentence. I am guessing "... make the
intention clearer by compiling out..." or "... make the intention
clearer to compile out...", but I cannot quite tell.
> diff --git a/compat/mingw.c b/compat/mingw.c
> index 9e0cd1e097f..e14f2d5f77c 100644
> --- a/compat/mingw.c
> +++ b/compat/mingw.c
> @@ -1083,6 +1083,7 @@ int pipe(int filedes[2])
> return 0;
> }
>
> +#ifndef __MINGW64__
> struct tm *gmtime_r(const time_t *timep, struct tm *result)
> {
> if (gmtime_s(result, timep) == 0)
> @@ -1096,6 +1097,7 @@ struct tm *localtime_r(const time_t *timep, struct tm *result)
> return result;
> return NULL;
> }
> +#endif
>
> char *mingw_getcwd(char *pointer, int len)
> {
> diff --git a/git-compat-util.h b/git-compat-util.h
> index d70ce142861..c8005db3fb6 100644
> --- a/git-compat-util.h
> +++ b/git-compat-util.h
> @@ -127,7 +127,9 @@
> /* Approximation of the length of the decimal representation of this type. */
> #define decimal_length(x) ((int)(sizeof(x) * 2.56 + 0.5) + 1)
>
> -#if defined(__sun__)
> +#ifdef __MINGW64__
> +#define _POSIX_C_SOURCE 1
> +#elif defined(__sun__)
> /*
> * On Solaris, when _XOPEN_EXTENDED is set, its header file
> * forces the programs to be XPG4v2, defeating any _XOPEN_SOURCE
>
> base-commit: cd3e606211bb1cf8bc57f7d76bab98cc17a150bc
next prev parent reply other threads:[~2021-11-26 6:30 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-11-25 5:23 [PATCH] mingw: avoid fallback for {local,gm}time_r() Carlo Marcelo Arenas Belón via GitGitGadget
2021-11-26 6:28 ` Junio C Hamano [this message]
2021-11-26 13:55 ` Johannes Schindelin
2021-11-27 10:15 ` [PATCH v2] " Carlo Marcelo Arenas Belón via GitGitGadget
2021-11-29 17:30 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=xmqq35nja0sb.fsf@gitster.g \
--to=gitster@pobox.com \
--cc=carenas@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitgitgadget@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.