All of lore.kernel.org
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Patrick Steinhardt <ps@pks.im>
Cc: Eli Schwartz <eschwartz@gentoo.org>,
	 git@vger.kernel.org,  Sam James <sam@gentoo.org>
Subject: Re: [PATCH 1/6] meson: simplify and parameterize various standard function checks
Date: Tue, 22 Apr 2025 08:17:45 -0700	[thread overview]
Message-ID: <xmqq4iyg5ip2.fsf@gitster.g> (raw)
In-Reply-To: <aAdFysi-n_5Aa4Au@pks.im> (Patrick Steinhardt's message of "Tue, 22 Apr 2025 09:31:22 +0200")

Patrick Steinhardt <ps@pks.im> writes:

> Yeah, this is somewhat unfortunate indeed. I think in the long term we
> might want to unify our approach so that we consistently use e.g.
> `HAVE_SOME_FUNCTION` or `NO_SOME_FUNCTION`.

Yes and no, because the intention, at least in the original form,
was that HAVE_FOO is not necessarily !NO_FOO.  You cannot claim to
HAVE_FOO on a system that does not have FOO, and expect the result
to build and/or function, but you should be able to build with
NO_FOO on a system that supports FOO and use an alternative
implementation that does not rely on system-supplied FOO.  NO_MMAP
and NO_REGEX comes to mind (I often have to build NO_REGEX locally
when doing "make sparse", for example, to avoid warnings triggering
on system headers, for example).

I suspect that majority of these feature symbols do not fall into
the same category as NO_REGEX, i.e. the user/builder may choose to
decline using the system-supplied one.  So for them this is a total
overkill, but conceptually, building with feature FOO enabled should
be done iff (HAVE_FOO && !NO_FOO).

I do not mind changing the stance Makefile takes on HAVE/!NO
division, and see us declare that from now on, even when
auto-detection flips HAVE_FOO on, the way for the builder to decline
use of FOO is to flip HAVE_FOO off manually.  I and others may need
to tweak some scripts and figure out to pass !HAVE_REGEX instead of
NO_REGEX when that happens, but that is a one-time cost to make
things more consistent.

  reply	other threads:[~2025-04-22 15:17 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-04-21 17:51 [PATCH 1/6] meson: simplify and parameterize various standard function checks Eli Schwartz
2025-04-21 17:51 ` [PATCH 2/6] meson: check for getpagesize before using it Eli Schwartz
2025-04-22  7:31   ` Patrick Steinhardt
2025-04-24 23:48   ` Junio C Hamano
2025-04-25  0:06     ` Eli Schwartz
2025-04-21 17:51 ` [PATCH 3/6] meson: do a full usage-based compile check for sysinfo Eli Schwartz
2025-04-22  7:31   ` Patrick Steinhardt
2025-04-21 17:51 ` [PATCH 4/6] meson: add a couple missing networking dependencies Eli Schwartz
2025-04-22  7:31   ` Patrick Steinhardt
2025-04-21 17:51 ` [PATCH 5/6] meson: fix typo in function check that prevented checking for hstrerror Eli Schwartz
2025-04-22  7:31   ` Patrick Steinhardt
2025-04-21 17:51 ` [PATCH 6/6] meson: only check for missing networking syms on non-Windows; add compat impls Eli Schwartz
2025-04-22  7:31   ` Patrick Steinhardt
2025-04-22 15:27     ` Eli Schwartz
2025-04-23 11:25       ` Patrick Steinhardt
2025-04-21 20:04 ` [PATCH 1/6] meson: simplify and parameterize various standard function checks Eli Schwartz
2025-04-22  0:33   ` Junio C Hamano
2025-04-22  0:58     ` Eli Schwartz
2025-04-22  7:31   ` Patrick Steinhardt
2025-04-22 15:36     ` Eli Schwartz
2025-04-23 11:25       ` Patrick Steinhardt
2025-04-22  7:31 ` Patrick Steinhardt
2025-04-22 15:17   ` Junio C Hamano [this message]
2025-04-25  0:13 ` [PATCH v2 0/6] meson: miscellaneous system detection fixes Eli Schwartz
2025-04-25  0:13   ` [PATCH v2 1/6] meson: simplify and parameterize various standard function checks Eli Schwartz
2025-04-25  0:13   ` [PATCH v2 2/6] meson: check for getpagesize before using it Eli Schwartz
2025-04-25  0:13   ` [PATCH v2 3/6] meson: do a full usage-based compile check for sysinfo Eli Schwartz
2025-04-25  0:13   ` [PATCH v2 4/6] meson: add a couple missing networking dependencies Eli Schwartz
2025-04-25  0:13   ` [PATCH v2 5/6] meson: fix typo in function check that prevented checking for hstrerror Eli Schwartz
2025-04-25  0:13   ` [PATCH v2 6/6] meson: only check for missing networking syms on non-Windows; add compat impls Eli Schwartz
2025-04-25  4:39   ` [PATCH v2 0/6] meson: miscellaneous system detection fixes Patrick Steinhardt
2025-04-25  5:27     ` Eli Schwartz
2025-04-25  5:25 ` [PATCH v3 " Eli Schwartz
2025-04-25  5:25   ` [PATCH v3 1/6] meson: simplify and parameterize various standard function checks Eli Schwartz
2025-04-25  5:25   ` [PATCH v3 2/6] meson: check for getpagesize before using it Eli Schwartz
2025-04-25  5:25   ` [PATCH v3 3/6] meson: do a full usage-based compile check for sysinfo Eli Schwartz
2025-04-25  5:25   ` [PATCH v3 4/6] meson: add a couple missing networking dependencies Eli Schwartz
2025-04-25  5:25   ` [PATCH v3 5/6] meson: fix typo in function check that prevented checking for hstrerror Eli Schwartz
2025-04-25  5:25   ` [PATCH v3 6/6] meson: only check for missing networking syms on non-Windows; add compat impls Eli Schwartz
2025-04-25  9:53   ` [PATCH v3 0/6] meson: miscellaneous system detection fixes Patrick Steinhardt

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=xmqq4iyg5ip2.fsf@gitster.g \
    --to=gitster@pobox.com \
    --cc=eschwartz@gentoo.org \
    --cc=git@vger.kernel.org \
    --cc=ps@pks.im \
    --cc=sam@gentoo.org \
    /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.