Subject: [PATCH v3] config.mak.uname: update settings for FreeBSD

From: Junio C Hamano <[email-masked]>
Date: Thu, 12 Jun 2025 14:51:02 -0700

Even though FreeBSD 6 introduced memmem(), the implementation in
that version was buggy and not performant until FreeBSD 12, FreeBSD
11.4 (the last version of FreeBSD 11) went end of life in September
2021, so nobody should be using it since it hasn't had security
support since then.  And memmem() has even been functional (but
slow) since FreeBSD 11.0, and 10.4 went EOL in 2018.  So users
shouldn't actually be experiencing any actual functionality problems
since then.

Let's draw the line to require FreeBSD 12 or newer (but we do not
officially document it or enforce it by breaking build when compiled
on older versions, at least not yet), which allows us to drop the
special casing of FreeBSD 4.x and rely on platform implementation of
memmem() unconditionally.

Signed-off-by: Brad Smith <[email-masked]>
[jc: log message with help from info by brian carlson]
Signed-off-by: Junio C Hamano <[email-masked]>
---

 * So,... earlier I mentioned about officially documenting the EoL
   timeline for various platform support, but without any official
   one that documents the decision in one place, how about a commit
   with a detailed log like this one, which I stole from brian?

   No code changes since v2; only the log message talks more about
   where we draw the line and why.

 config.mak.uname | 6 ------
 1 file changed, 6 deletions(-)

diff --git a/config.mak.uname b/config.mak.uname
index b12d4e168a..5d18d92cb1 100644
--- a/config.mak.uname
+++ b/config.mak.uname
@@ -273,16 +273,10 @@ ifeq ($(uname_S),FreeBSD)
         ifeq ($(firstword $(subst -, ,$(uname_R))),10.1)
 		OLD_ICONV = YesPlease
         endif
-	NO_MEMMEM = YesPlease
 	BASIC_CFLAGS += -I/usr/local/include
 	BASIC_LDFLAGS += -L/usr/local/lib
 	DIR_HAS_BSD_GROUP_SEMANTICS = YesPlease
 	USE_ST_TIMESPEC = YesPlease
-        ifeq ($(shell expr "$(uname_R)" : '4\.'),2)
-		PTHREAD_LIBS = -pthread
-		NO_UINTMAX_T = YesPlease
-		NO_STRTOUMAX = YesPlease
-        endif
 	PYTHON_PATH = /usr/local/bin/python
 	PERL_PATH = /usr/local/bin/perl
 	HAVE_PATHS_H = YesPlease
-- 
2.50.0-rc2-215-g56f75d5edf