On Mon, Feb 19, 2018 at 2:57 PM, Devin Teske <dte...@freebsd.org> wrote:
> > > > On Feb 19, 2018, at 2:21 PM, Kyle Evans <kev...@freebsd.org> wrote: > > > > It seems that the Forth loader might be doing something sneaky and > > replacing the standard common "boot" with a Forth boot that handles > > this a lot better. CC'ing dteske@ so they can confirm. > > I can indeed confirm this as fact. > > Not able to help much because I am driving cross-country (San Francisco to > Orlando) right now with the spouse and dog. > > We get back March 3rd, but I will be checking-in from time to time for > sporadic responses during downtime. > The command in loader.4th is defined as: : boot 0= if ( interpreted ) get_arguments then \ Unload only if a path was passed dup if >r over r> swap c@ [char] - <> if 0 1 unload drop else s" kernelname" getenv? if ( a kernel has been loaded ) try-menu-unset bootmsg 1 boot exit then load_kernel_and_modules ?dup if exit then try-menu-unset bootmsg 0 1 boot exit then else s" kernelname" getenv? if ( a kernel has been loaded ) try-menu-unset bootmsg 1 boot exit then load_kernel_and_modules ?dup if exit then try-menu-unset bootmsg 0 1 boot exit then load_kernel_and_modules ?dup 0= if bootmsg 0 1 boot then ; The thing to know here is when you see 'boot' as part of above script, it's calling the 'boot' cli command, not itself recursively. I can help do more interpretation of the details if you need Kyle. Not sure how much to spell out, but the brief pseudo code is: If there were any arguments that didn't start with '-', unload. otherwise if kernelname is in in the environment, run the 'menu-unset' forth word if it exists, print the boot message and boot. Otherwise load the kernel and modules, run the 'menu-unset' forth word (if it exists), print the boot message and boot with kernelname Otherwise load the kernel and modules, run the 'menu-unset' forth word (if it exists), print the boot message and boot with kernelname if all that fails, load the kernel and modules and if that works boot them. Warner _______________________________________________ freebsd-current@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"