git: 57ba3f00f5e9 - main - Use MOVED_LIBS for libraries moved between /usr/lib and /lib.
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 20 Jan 2022 20:50:21 UTC
The branch main has been updated by jhb:
URL: https://cgit.FreeBSD.org/src/commit/?id=57ba3f00f5e9bb6ea2eff5124077508f7a3f40df
commit 57ba3f00f5e9bb6ea2eff5124077508f7a3f40df
Author: John Baldwin <jhb@FreeBSD.org>
AuthorDate: 2022-01-20 20:47:43 +0000
Commit: John Baldwin <jhb@FreeBSD.org>
CommitDate: 2022-01-20 20:47:43 +0000
Use MOVED_LIBS for libraries moved between /usr/lib and /lib.
Add a MOVED_LIBS variable similar to OLD_LIBS except that MOVED_LIBS
is used for the cases that a library's name doesn't change, but it
just moves between /usr/lib and /lib. This will be used by a future
change to auto-generate lib32 old files entries for which these cases
need to be ignored (a moved library remains in /usr/lib32).
Suggested by: emaste
Reviewed by: emaste
Sponsored by: The University of Cambridge, Google Inc.
Differential Revision: https://reviews.freebsd.org/D33848
---
Makefile.inc1 | 2 +-
ObsoleteFiles.inc | 53 +++++++++++++++++++++++++++++------------------------
2 files changed, 30 insertions(+), 25 deletions(-)
diff --git a/Makefile.inc1 b/Makefile.inc1
index 9adc48b79c65..979e1a64efa4 100644
--- a/Makefile.inc1
+++ b/Makefile.inc1
@@ -3280,7 +3280,7 @@ check-old-files: .PHONY
list-old-libs: .PHONY
@cd ${.CURDIR}; \
${MAKE} -f ${.CURDIR}/Makefile.inc1 ${.MAKEFLAGS} ${.TARGET} \
- -V OLD_LIBS | xargs -n1 | sort
+ -V OLD_LIBS -V MOVED_LIBS | xargs -n1 | sort
delete-old-libs: .PHONY
@echo ">>> Removing old libraries"
diff --git a/ObsoleteFiles.inc b/ObsoleteFiles.inc
index d4343561436f..6c3f0f563461 100644
--- a/ObsoleteFiles.inc
+++ b/ObsoleteFiles.inc
@@ -1,18 +1,23 @@
#
# $FreeBSD$
#
-# This file lists old files (OLD_FILES), libraries (OLD_LIBS) and
-# directories (OLD_DIRS) which should get removed after an update.
+# This file lists old files (OLD_FILES), libraries (OLD_LIBS, MOVED_LIBS)
+# and directories (OLD_DIRS) which should get removed after an update.
# Recently removed entries should be listed first (with the date as a
-# comment). OLD_LIBS should only list dynamic libraries. Static libraries,
-# links to dynamic libraries (lib*.so), and linker scripts should be listed
-# in OLD_FILES. OLD_LIBS are removed by the delete-old-libs target, whereas
-# OLD_FILES and OLD_DIRS are removed by the delete-old target. This
-# separation allows users to avoid deleting old dynamic libraries still
-# required by existing binaries.
+# comment). OLD_LIBS and MOVED_LIBS should only list dynamic libraries.
+# Static libraries, links to dynamic libraries (lib*.so), and linker scripts
+# should be listed in OLD_FILES. OLD_LIBS and MOVED_LIBS are removed by the
+# delete-old-libs target, whereas OLD_FILES and OLD_DIRS are removed by the
+# delete-old target. This separation allows users to avoid deleting old
+# dynamic libraries still required by existing binaries.
#
-# For files listed in OLD_FILES and OLD_LIBS, the check-old* and
-# delete-old* targets will also delete associated debug symbols from
+# MOVED_LIBS should be used instead of OLD_LIBS when a library is moved
+# from usr/lib to lib or vice versa. This avoids removing libraries for
+# alternate ABIs (such as lib32) which store all libraries in a single
+# directory (e.g. usr/lib32).
+#
+# For files listed in OLD_FILES, OLD_LIBS, and MOVED_LIBS, the check-old*
+# and delete-old* targets will also delete associated debug symbols from
# usr/lib/debug.
#
# In case of a complete directory hierarchy the sorting is in depth first
@@ -35,7 +40,7 @@
# also use something that will not give you false positives, e.g.:
# for t in `make -V TARGETS universe`; do
# __MAKE_CONF=/dev/null make -f Makefile.inc1 TARGET=$t \
-# -V OLD_FILES -V OLD_LIBS -V OLD_DIRS check-old | \
+# -V OLD_FILES -V OLD_LIBS -V MOVED_LIBS -V OLD_DIRS check-old | \
# xargs -n1 | sort | uniq -d;
# done
#
@@ -43,12 +48,12 @@
# in OptionalObsoleteFiles.inc have been obsoleted by ObsoleteFiles.inc
# for o in tools/build/options/WITH*; do
# __MAKE_CONF=/dev/null make -f Makefile.inc1 -D${o##*/} \
-# -V OLD_FILES -V OLD_LIBS -V OLD_DIRS check-old | \
+# -V OLD_FILES -V OLD_LIBS -V MOVED_LIBS -V OLD_DIRS check-old | \
# xargs -n1 | sort | uniq -d;
# done
# 20211229 libc++ moved to /lib
-OLD_LIBS+=usr/lib/libc++.so.1
+MOVED_LIBS+=usr/lib/libc++.so.1
# 20211221 efi_set_variables_supported.3 should be efi_variables_supported.3
OLD_FILES+=usr/share/man/man3/efi_set_variables_supported.3.gz
@@ -7719,7 +7724,7 @@ OLD_LIBS+=usr/lib32/libsureware.so
OLD_LIBS+=usr/lib32/libubsec.so
OLD_LIBS+=usr/lib32/libssl.so.8
# 20180824: libbe(3) SHLIBDIR fixed to reflect correct location
-OLD_LIBS+=usr/lib/libbe.so.1
+MOVED_LIBS+=usr/lib/libbe.so.1
# 20180819: Remove deprecated arc4random(3) stir/addrandom interfaces
OLD_FILES+=usr/share/man/man3/arc4random_addrandom.3.gz
OLD_FILES+=usr/share/man/man3/arc4random_stir.3.gz
@@ -7738,8 +7743,8 @@ OLD_FILES+=usr/bin/indent/tests/sac.0
OLD_FILES+=usr/bin/indent/tests/sac.0.pro
OLD_FILES+=usr/bin/indent/tests/sac.0.stdout
# 20180721: move of libmlx5.so.1 and libibverbs.so.1
-OLD_LIBS+=usr/lib/libmlx5.so.1
-OLD_LIBS+=usr/lib/libibverbs.so.1
+MOVED_LIBS+=usr/lib/libmlx5.so.1
+MOVED_LIBS+=usr/lib/libibverbs.so.1
# 20180720: zfsloader.8 merged into loader.8
OLD_FILES+=usr/share/man/man8/zfsloader.8.gz
# 20180710: old numa cleanup
@@ -11398,7 +11403,7 @@ OLD_FILES+=usr/share/man/man4/gpib.4.gz
OLD_FILES+=usr/share/man/man4/pcii.4.gz
OLD_FILES+=usr/share/man/man4/tnt4882.4.gz
# 20141224: libxo moved to /lib
-OLD_LIBS+=usr/lib/libxo.so.0
+MOVED_LIBS+=usr/lib/libxo.so.0
# 20141223: remove in6_gif.h and in_gif.h
OLD_FILES+=usr/include/netinet/in_gif.h
OLD_FILES+=usr/include/netinet6/in6_gif.h
@@ -11451,7 +11456,7 @@ OLD_FILES+=usr/share/man/man9/sleepq_catch_signals.9.gz
# 20140917: hv_kvpd rc.d script removed in favor of devd configuration
OLD_FILES+=etc/rc.d/hv_kvpd
# 20140917: libnv was accidentally being installed to /usr/lib instead of /lib
-OLD_LIBS+=usr/lib/libnv.so.0
+MOVED_LIBS+=usr/lib/libnv.so.0
# 20140829: rc.d/kerberos removed
OLD_FILES+=etc/rc.d/kerberos
# 20140814: libopie version bump
@@ -11737,8 +11742,8 @@ OLD_FILES+=usr/include/machine/apicvar.h
# 20131215: libcam version bumped
OLD_LIBS+=lib/libcam.so.6 usr/lib32/libcam.so.6
# 20131202: libcapsicum and libcasper moved to /lib/
-OLD_LIBS+=usr/lib/libcapsicum.so.0
-OLD_LIBS+=usr/lib/libcasper.so.0
+MOVED_LIBS+=usr/lib/libcapsicum.so.0
+MOVED_LIBS+=usr/lib/libcasper.so.0
# 20131109: extattr(2) mlinks fixed
OLD_FILES+=usr/share/man/man2/extattr_delete_list.2.gz
OLD_FILES+=usr/share/man/man2/extattr_get_list.2.gz
@@ -12883,7 +12888,7 @@ OLD_FILES+=usr/share/man/man9/ieee80211_wep_crypt.9.gz
# 20090801: vimage.h removed in favour of vnet.h
OLD_FILES+=usr/include/sys/vimage.h
# 20101208: libbsnmp was moved to usr/lib
-OLD_LIBS+=lib/libbsnmp.so.5
+MOVED_LIBS+=lib/libbsnmp.so.5
# 20090719: library version bump for 8.0
OLD_LIBS+=lib/libalias.so.6
OLD_LIBS+=lib/libavl.so.1
@@ -15970,11 +15975,11 @@ OLD_LIBS+=usr/lib32/libatm.so.3
OLD_LIBS+=usr/lib32/libc.so.6
OLD_LIBS+=usr/lib32/libutil.so.5
# 20060413: shared library moved to /usr/lib
-OLD_LIBS+=lib/libgpib.so.1
+MOVED_LIBS+=lib/libgpib.so.1
# 20060413: libpcap.so.4 moved to /lib/
-OLD_LIBS+=usr/lib/libpcap.so.4
+MOVED_LIBS+=usr/lib/libpcap.so.4
# 20060412: libpthread.so.2 moved to /lib/
-OLD_LIBS+=usr/lib/libpthread.so.2
+MOVED_LIBS+=usr/lib/libpthread.so.2
# 20060127: revert libdisk to static-only
OLD_LIBS+=usr/lib/libdisk.so.3
# 20051027: libc_r discontinued (removed 20101113)