]> git.ipfire.org Git - thirdparty/git.git/commit
git-compat-util: undefine system names before redeclaring them
authorJeff King <peff@peff.net>
Fri, 2 Dec 2022 11:05:38 +0000 (06:05 -0500)
committerJunio C Hamano <gitster@pobox.com>
Mon, 5 Dec 2022 03:15:37 +0000 (12:15 +0900)
commite1a95b78d8a26762ea04332de8b7c3878da51522
treefd07e0caca7762c9a5cc05db36094aa1db58e666
parente0c08a4f738b3dea7a4e8fe3511c323cf1f41942
git-compat-util: undefine system names before redeclaring them

When we define a macro to point a system function (e.g., flockfile) to
our custom wrapper, we should make sure that the system did not already
define it as a macro. This is rarely a problem, but can cause
compilation failures if both of these are true:

  - we decide to define our own wrapper even though the system provides
    the function; we know this happens at least with uclibc, which may
    declare flockfile, etc, without _POSIX_THREAD_SAFE_FUNCTIONS

  - the system version is declared as a macro; we know this happens at
    least with uclibc's version of getc_unlocked()

So just handling getc_unlocked() would be sufficient to deal with the
real-world case we've seen. But since it's easy to do, we may as well be
defensive about the other macro wrappers added in the previous patch.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-compat-util.h