Ok, just to be clear, it printed nothing but still failed the assertion that *weak-ptrs* is null? That's not supposed to be possible.
So another attempt. Could you apply this diff (which produces no output for me) but if it did, it would say:
save: 1 threads
Writing dynamic space
(with 1 "threads" because of course it's spelled wrong, who would have just 1 thread?)
and then compress as aggressively as you can the resulting mem.bin file, maybe with bzip2, and place it somewhere accessible. Worst case, email it.
diff --git a/tests/hide-packages.test.sh b/tests/hide-packages.test.sh
index 0abf81d19..b250e3032 100644
--- a/tests/hide-packages.test.sh
+++ b/tests/hide-packages.test.sh
@@ -23,6 +23,8 @@ run_sbcl <<EOF
(defvar *weak-ptrs* nil)
(progn
+ (sb-impl::finalizer-thread-stop)
+ (setf (extern-alien "heap_trace_verbose" (signed 32)) 1)
;; Remove features that are also names of packages.
;; This form needs to obfuscate the spellings of victim symbols, or else
;; they end up in the *SOURCE-INFO* for this file, which is pinned while
@@ -50,6 +52,9 @@ run_sbcl <<EOF
(gc :gen 7)
(setq *weak-ptrs* (remove-if-not #'weak-pointer-value *weak-ptrs*))
(when *weak-ptrs* (search-roots *weak-ptrs* :print :verbose :criterion :static))
+(when *weak-ptrs*
+ (alien-funcall (extern-alien "save_gc_crashdump" (function void c-string system-area-pointer))
+ "mem.bin" (hidden-sb-kernel:current-sp)))
(assert (null *weak-ptrs*))
(format t "Package hiding test 1: PASS~%")
EOF