On Mon, 18 May 2026 13:41:56 +0200,
Stuart Henderson <[email protected]> wrote:
> 
> I wonder if it would be worth adding a mode to check_sym that skips
> printing external reference / PLT changes and using that? I don't
> think they're very useful for ports and (looking at bumps in some
> ports@ submissions) they confuse people sometimes.
> 

Like this?

Index: src/lib/check_sym
===================================================================
RCS file: /cvs/src/lib/check_sym,v
diff -u -p -r1.15 check_sym
--- src/lib/check_sym   12 May 2026 15:14:41 -0000      1.15
+++ src/lib/check_sym   18 May 2026 19:19:31 -0000
@@ -20,7 +20,7 @@
 #      versions of a library
 #
 #  SYNOPSIS
-#      check_sym [-chkSv] [old [new]]
+#      check_sym [-chIkSv] [old [new]]
 #
 #  DESCRIPTION
 #      Library developers need to be aware when they have changed the
@@ -35,6 +35,9 @@
 #
 #      With the -S option, a similar analysis is done but for the static lib.
 #
+#      The -I option ignores changes to undefined external references and
+#      lazily-resolved functions (PLT).
+#
 #      The shared libraries to compare can be specified on the
 #      command-line.  Otherwise, check_sym expects to be run from the
 #      source directory of a library with a shlib_version file specifying
@@ -110,7 +113,7 @@ fail() { echo "$*" >&2; exit 1; }
 
 usage()
 {
-       usage="usage: check_sym [-chkSv] [old [new]]"
+       usage="usage: check_sym [-chIkSv] [old [new]]"
        [[ $# -eq 0 ]] || fail "check_sym: $*
 $usage"
        echo "$usage"
@@ -221,7 +224,7 @@ dynamic_output()
                output_if_not_empty "data object sizes changes:" \
                                                data_sym_changes DO[12]
        fi
-       if ! cmp -s DU[12]
+       if ! $ignore_refs && ! cmp -s DU[12]
        then
                printf "External reference changes:\n"
                output_if_not_empty "added:" comm -13 DU[12]
@@ -235,8 +238,11 @@ dynamic_output()
                grep ^R r2
        fi
 
-       output_if_not_empty "PLT added:" comm -13 J[12]
-       output_if_not_empty "PLT removed:" comm -23 J[12]
+       if ! $ignore_refs
+       then
+               output_if_not_empty "PLT added:" comm -13 J[12]
+               output_if_not_empty "PLT removed:" comm -23 J[12]
+       fi
 }
 
 
@@ -278,7 +284,7 @@ static_output()
                output_if_not_empty "data object sizes changes:" \
                                                data_sym_changes SO[12]
        fi
-       if ! cmp -s SU[12]
+       if ! $ignore_refs && ! cmp -s SU[12]
        then
                printf "External reference changes:\n"
                output_if_not_empty "added:" comm -13 SU[12]
@@ -295,15 +301,17 @@ keep_temp=false
 dynamic=true
 static=false
 verbose=false
+ignore_refs=false
 
 do_static() { static=true dynamic=false file_list=$static_file_list; }
 
-while getopts :chkSv opt "$@"
+while getopts :chIkSv opt "$@"
 do
        case $opt in
        c)      rm -f /tmp/$file_list
                exit 0;;
        h)      usage;;
+       I)      ignore_refs=true;;
        k)      keep_temp=true;;
        S)      do_static;;
        v)      verbose=true;;
Index: ports/infrastructure/mk/bsd.port.mk
===================================================================
RCS file: /cvs/ports/infrastructure/mk/bsd.port.mk,v
diff -u -p -r1.1650 bsd.port.mk
--- ports/infrastructure/mk/bsd.port.mk 18 May 2026 13:20:37 -0000      1.1650
+++ ports/infrastructure/mk/bsd.port.mk 18 May 2026 19:19:31 -0000
@@ -2572,7 +2572,7 @@ check-shlib-syms: ${_FAKE_COOKIE}
                        esac; \
                        old=$$(ls -rt $$oldpat 2>/dev/null | tail -1); \
                        [ -n "$$old" ] || { echo "check-shlib-syms: no 
installed library for $$_l"; continue; }; \
-                       ${_CHECK_SYM} "$$old" "$$new"; \
+                       ${_CHECK_SYM} -I "$$old" "$$new"; \
                done; \
        done
 


-- 
wbr, Kirill

Reply via email to