Porters updating shared libraries ought to check for changes and base's check_sym script does that, but we have no tooling or integration for that.
Here's a bare bones target we can extend in many ways, but for now: - expect /usr/src/lib/check_sym to exist - expect the port to be installed - expect SHARED_LIBS to remain unmodified $ make check-lib-symbols /usr/src/lib/check_sym {,/usr/ports/pobj/yaml-cpp-0.8.0/fake-amd64}/usr/local/lib/libyaml-cpp.so.4.0 /usr/local/lib/libyaml-cpp.so.4.0 --> /usr/ports/pobj/yaml-cpp-0.8.0/fake-amd64/usr/local/lib/libyaml-cpp.so.4.0 No dynamic export changes That fits well into my workflow of cranking a port's version, building and comparing the identically named .so files, then potentially cranking SHARED_LIBS and rebuilding the port. Like show-size and other helper targets, nothing uses it automatically, so we ought to be safe improving something like this as we go rather than bikeshedding/polishing it to death before commit (or so I hope...) Future changes could be - handle absence of check_sym script and/or installed/built libraries - replace raw command with pretty printed "===> checking symbols for 'awesome' library..." - even parsing output and suggesting major/minor cranks I don't care much about the output or details, I just want to provide a unified way that we can document/point at, which is hopefully more convenient than individual ports scripting their way around the framework. Feedback? OK? Index: bsd.port.mk =================================================================== RCS file: /cvs/ports/infrastructure/mk/bsd.port.mk,v retrieving revision 1.1600 diff -u -p -r1.1600 bsd.port.mk --- bsd.port.mk 22 Aug 2023 17:02:29 -0000 1.1600 +++ bsd.port.mk 2 Sep 2023 13:32:00 -0000 @@ -3759,6 +3759,12 @@ verbose-show: . endif .endfor +_CHECK_SYM = /usr/src/lib/check_sym +check-lib-symbols: +.for _n _v in ${SHARED_LIBS} + ${_PBUILD} ${_CHECK_SYM} {,${WRKINST}}${PREFIX}/lib/lib${_n}.so.${_v} +.endfor + _all_phony = ${_recursive_depends_targets} \ ${_recursive_targets} ${_dangerous_recursive_targets} \ _build-dir-depends _hook-post-install \