On Fri, Jul 29, 2022 at 07:33:50PM -0500, Scott Cheloha wrote:
> Recently I've been doing some MIPS64 stuff on my EdgeRouter PoE. It
> has a USB disk, two 500MHz processors, and 512MB of RAM.
>
> So, every time I reboot to test the next iteration of my kernel
> patch, I get to here:
>
> reordering libraries:
>
> and I sit there for half a minute or more and wonder what the hell
> it's doing.
>
> And, in my intellectual brain, I know it's relinking the libraries
> and that this is slow because it needs to link a bunch of object files
> and my machine is slow and my disk is slow and I have almost no RAM.
>
> But! My animal brain wishes I could see some indication of progress.
> Because the script has told me it is linking more than one library.
> So, as with daemon startup, I am curious which library it is working
> on at any given moment.
>
> Can we print the library names as they are being relinked?
>
> With the attached patch the boot now looks like this:
>
> reordering libraries: ld.so libc.so.96.1 libcrypto.so.49.1.
>
> We print the library name before it is relinked, so you can know which
> library it is linking.
>
> If for some reason we fail on a particular library, it instead looks
> like this:
>
> reordering libraries: ld.so(failed).
>
> ... which is me trying to imitate what we do for daemon startup.
>
> Thoughts?
>
> I know this makes rc(8) a bit noisier but it really does improve my
> (for want of a better term) "user experience" as I wait for my machine
> to boot.
I like this and it doesn't add more **lines** to the boot log, but maybe
print library names without versions to reduces noise?
>
> Index: rc
> ===================================================================
> RCS file: /cvs/src/etc/rc,v
> retrieving revision 1.563
> diff -u -p -r1.563 rc
> --- rc 28 Jul 2022 16:06:04 -0000 1.563
> +++ rc 30 Jul 2022 00:15:26 -0000
> @@ -193,7 +193,7 @@ reorder_libs() {
> # Remount the (read-only) filesystems in _ro_list as read-write.
> for _mp in $_ro_list; do
> if ! mount -u -w $_mp; then
> - echo ' failed.'
> + echo '(failed).'
> return
> fi
> done
> @@ -210,6 +210,7 @@ reorder_libs() {
> _install='install -F -o root -g bin -m 0444'
> _lib=${_liba##*/}
> _lib=${_lib%.a}
> + echo -n " $_lib"
This would make it print "libc.so":
echo -n " ${lib_%%.[0-9]*}
> _lib_dir=${_liba#$_relink}
> _lib_dir=${_lib_dir%/*}
> cd $_tmpdir
> @@ -243,9 +244,9 @@ reorder_libs() {
> done
>
> if $_error; then
> - echo ' failed.'
> + echo '(failed).'
> else
> - echo ' done.'
> + echo '.'
> fi
> }
>
>