git: 09e32b2fddf5 - main - libc: add LIBC_MALLOC option

From: Brooks Davis <brooks_at_FreeBSD.org>
Date: Fri, 01 Sep 2023 16:54:56 UTC
The branch main has been updated by brooks:

URL: https://cgit.FreeBSD.org/src/commit/?id=09e32b2fddf5f673f76e2fffa415a73d99a6f309

commit 09e32b2fddf5f673f76e2fffa415a73d99a6f309
Author:     Brooks Davis <brooks@FreeBSD.org>
AuthorDate: 2023-09-01 16:42:39 +0000
Commit:     Brooks Davis <brooks@FreeBSD.org>
CommitDate: 2023-09-01 16:54:23 +0000

    libc: add LIBC_MALLOC option
    
    This will enable alternative mallocs to be included in the tree and
    selected by setting LIBC_MALLOC.  As there is only one today (jemalloc)
    this option does nothing, but we expect to add other implementations
    in the future.  This will also reduce diffs to CheriBSD.
    
    Reviewed by:    emaste
    Differential Revision:  https://reviews.freebsd.org/D41660
---
 lib/libc/stdlib/malloc/Makefile.inc |  2 +-
 share/mk/src.opts.mk                |  6 ++++++
 tools/build/options/LIBC_MALLOC     | 13 +++++++++++++
 3 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/lib/libc/stdlib/malloc/Makefile.inc b/lib/libc/stdlib/malloc/Makefile.inc
index bce4353fe80a..3bae4ff1505b 100644
--- a/lib/libc/stdlib/malloc/Makefile.inc
+++ b/lib/libc/stdlib/malloc/Makefile.inc
@@ -1,3 +1,3 @@
 SYM_MAPS+=${LIBC_SRCTOP}/stdlib/malloc/Symbol.map
 
-.include "${LIBC_SRCTOP}/stdlib/malloc/jemalloc/Makefile.inc"
+.include "${LIBC_SRCTOP}/stdlib/malloc/${OPT_LIBC_MALLOC}/Makefile.inc"
diff --git a/share/mk/src.opts.mk b/share/mk/src.opts.mk
index 1183a8202168..d7112cf57178 100644
--- a/share/mk/src.opts.mk
+++ b/share/mk/src.opts.mk
@@ -228,6 +228,12 @@ __DEFAULT_DEPENDENT_OPTIONS= \
 	LOADER_VERIEXEC_VECTX/LOADER_VERIEXEC \
 	VERIEXEC/BEARSSL \
 
+__SINGLE_OPTIONS = \
+	LIBC_MALLOC
+
+__LIBC_MALLOC_OPTIONS=	jemalloc
+__LIBC_MALLOC_DEFAULT=	jemalloc
+
 # MK_*_SUPPORT options which default to "yes" unless their corresponding
 # MK_* variable is set to "no".
 #
diff --git a/tools/build/options/LIBC_MALLOC b/tools/build/options/LIBC_MALLOC
new file mode 100644
index 000000000000..ee1883f3ee54
--- /dev/null
+++ b/tools/build/options/LIBC_MALLOC
@@ -0,0 +1,13 @@
+Specify the
+.Xr malloc 3
+implementaiton used by libc.
+The default value is
+.Li jemalloc .
+Valid values are:
+.Bl -tag -width indent
+.It Li jemalloc
+.El
+.Pp
+Other implementations are expected in the future in both
+.Fx
+and downstream consumers.