git: 4510f2ca9170 - main - Make WITHOUT_UNDEFINED_VERSION the default

From: Brooks Davis <brooks_at_FreeBSD.org>
Date: Thu, 02 May 2024 17:14:41 UTC
The branch main has been updated by brooks:

URL: https://cgit.FreeBSD.org/src/commit/?id=4510f2ca9170927309a423274e03f1eb8e27da27

commit 4510f2ca9170927309a423274e03f1eb8e27da27
Author:     Brooks Davis <brooks@FreeBSD.org>
AuthorDate: 2024-05-02 17:13:39 +0000
Commit:     Brooks Davis <brooks@FreeBSD.org>
CommitDate: 2024-05-02 17:13:39 +0000

    Make WITHOUT_UNDEFINED_VERSION the default
    
    Link with --no-undefined-version by default.  Will detect and prevent
    the accidental removal of symbols from versioned libraries.
    
    Reviewed by:    arichardson, kib, dim, emaste
    Differential Revision:  https://reviews.freebsd.org/D44216
---
 share/man/man5/src.conf.5                     | 10 ++++++----
 share/mk/bsd.opts.mk                          |  4 ++--
 tools/build/options/WITHOUT_UNDEFINED_VERSION |  2 --
 tools/build/options/WITH_UNDEFINED_VERSION    |  4 ++++
 4 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/share/man/man5/src.conf.5 b/share/man/man5/src.conf.5
index 5301fc488021..53d42321799b 100644
--- a/share/man/man5/src.conf.5
+++ b/share/man/man5/src.conf.5
@@ -1,5 +1,5 @@
 .\" DO NOT EDIT-- this file is @generated by tools/build/options/makeman.
-.Dd April 23, 2024
+.Dd May 1, 2024
 .Dt SRC.CONF 5
 .Os
 .Sh NAME
@@ -1716,9 +1716,11 @@ and that the runtime support library is available
 Do not build
 .Xr unbound 8
 and related programs.
-.It Va WITHOUT_UNDEFINED_VERSION
-Link libraries with --no-undefined-version to ensure all symbols are
-provided.
+.It Va WITH_UNDEFINED_VERSION
+Link libraries with --undefined-version which permits version maps to
+contain symbols that are not present in the library.
+If this is necessicary to build a particular configuration, a bug is
+present and the configuration should be reported.
 .It Va WITHOUT_UNIFIED_OBJDIR
 Use the historical object directory format for
 .Xr build 7
diff --git a/share/mk/bsd.opts.mk b/share/mk/bsd.opts.mk
index 38d53cc6bf30..65ae4f4cfa7c 100644
--- a/share/mk/bsd.opts.mk
+++ b/share/mk/bsd.opts.mk
@@ -68,7 +68,6 @@ __DEFAULT_YES_OPTIONS = \
     SSP \
     TESTS \
     TOOLCHAIN \
-    UNDEFINED_VERSION \
     WARNS \
     WERROR
 
@@ -81,7 +80,8 @@ __DEFAULT_NO_OPTIONS = \
     PROFILE \
     RETPOLINE \
     STALE_STAGED \
-    UBSAN
+    UBSAN \
+    UNDEFINED_VERSION
 
 __DEFAULT_DEPENDENT_OPTIONS = \
     MAKE_CHECK_USE_SANDBOX/TESTS \
diff --git a/tools/build/options/WITHOUT_UNDEFINED_VERSION b/tools/build/options/WITHOUT_UNDEFINED_VERSION
deleted file mode 100644
index 0e58eb00f3c1..000000000000
--- a/tools/build/options/WITHOUT_UNDEFINED_VERSION
+++ /dev/null
@@ -1,2 +0,0 @@
-Link libraries with --no-undefined-version to ensure all symbols are
-provided.
diff --git a/tools/build/options/WITH_UNDEFINED_VERSION b/tools/build/options/WITH_UNDEFINED_VERSION
new file mode 100644
index 000000000000..71b048349a6f
--- /dev/null
+++ b/tools/build/options/WITH_UNDEFINED_VERSION
@@ -0,0 +1,4 @@
+Link libraries with --undefined-version which permits version maps to
+contain symbols that are not present in the library.
+If this is necessicary to build a particular configuration, a bug is
+present and the configuration should be reported.