aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEd Maste <emaste@FreeBSD.org>2023-10-13 18:06:58 +0000
committerEd Maste <emaste@FreeBSD.org>2023-10-13 19:50:07 +0000
commit922337e8d3989e4f54a0338b7fc397e3e0af7832 (patch)
tree9ffdae583a53a4d9749851499faf04063d0882ee
parentd4a5d4952e6ee7bf2e3786845d859d0ab7a58229 (diff)
downloadsrc-922337e8d3989e4f54a0338b7fc397e3e0af7832.tar.gz
src-922337e8d3989e4f54a0338b7fc397e3e0af7832.zip
Handle MOVED_LIBS in list-old-files
MOVED_LIBS is used when a library moves from one directory to another, e.g. /usr/lib/libc++.so.1 to /lib/libc++.so.1. delete-old-files and delete-old-libs are two separate steps, so that old libraries can be retained until third party software packages are rebuilt or reinstalled. Having two copies of the same shared library with the same so version (as can happen when delete-old-libs hasn't been run) causes trouble. The PR below gives one example. Libraries listed in MOVED_LIBS are logically equivalent to updating a library without changing the so version, and should be removed as soon as possible. Handle them in list-old-files and thus delete-old-files. Leave them also in *-old-libs for now, in case the user updates their tree between running delete-old-files and delete-old-libs. PR: 272642 Reviewed by: dim MFC after: 3 days Sponsored by: The FreeBSD Foundation Co-authored-by: Dimitry Andric <dim@FreeBSD.org> Differential Revision: https://reviews.freebsd.org/D42197
-rw-r--r--Makefile.inc11
1 files changed, 1 insertions, 0 deletions
diff --git a/Makefile.inc1 b/Makefile.inc1
index 7776b40a9801..67dce43e5228 100644
--- a/Makefile.inc1
+++ b/Makefile.inc1
@@ -3306,6 +3306,7 @@ list-old-files: .PHONY
@cd ${.CURDIR}; \
${MAKE} -f ${.CURDIR}/Makefile.inc1 ${.MAKEFLAGS} ${.TARGET} \
-V "OLD_FILES:ts\n" -V "OLD_FILES:Musr/share/*.gz:R:ts\n" \
+ -V "MOVED_LIBS:ts\n" \
${_ALL_libcompats:@v@-V "OLD_FILES:Mlib/*.so.*:S,^lib,usr/lib$v,:ts\n"@} \
${_ALL_libcompats:@v@-V "OLD_FILES:Musr/lib/*:S,^usr/lib,usr/lib$v,:ts\n"@} | \
sort