Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 6 Mar 2016 18:10:13 +0100
From:      Oliver Pinter <oliver.pinter@hardenedbsd.org>
To:        Dimitry Andric <dim@freebsd.org>
Cc:        src-committers@freebsd.org, svn-src-all@freebsd.org,  svn-src-head@freebsd.org
Subject:   Re: svn commit: r296428 - head/sys/boot/common
Message-ID:  <CAPQ4ffvHpMQr0s4M5A9w8BNAcKx_Wr7J%2BKfd4aGkQbpYaEb9Lw@mail.gmail.com>
In-Reply-To: <0FC43773-1BF0-43FF-BB97-35B482ABBE12@FreeBSD.org>
References:  <201603061557.u26FvhMi033982@repo.freebsd.org> <CAPQ4ffut5jLNp5X4cV_DCsPGfv4Fw%2BPVm0ANNftuj2PLFZrjtQ@mail.gmail.com> <0FC43773-1BF0-43FF-BB97-35B482ABBE12@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On 3/6/16, Dimitry Andric <dim@freebsd.org> wrote:
> On 06 Mar 2016, at 17:00, Oliver Pinter <oliver.pinter@hardenedbsd.org>
> wrote:
>>
>> On 3/6/16, Dimitry Andric <dim@freebsd.org> wrote:
>>> Author: dim
>>> Date: Sun Mar  6 15:57:43 2016
>>> New Revision: 296428
>>> URL: https://svnweb.freebsd.org/changeset/base/296428
>>>
>>> Log:
>>>  Since kernel modules can now contain sections of type SHT_AMD64_UNWIND,
>>>  the boot loader should not skip over these anymore while loading
>>> images.
>>>  Otherwise the kernel can still panic when it doesn't find the .eh_frame
>>>  section belonging to the .rela.eh_frame section.
>>>
>>>  Unfortunately this will require installing boot loaders from sys/boot
>>>  before attempting to boot with a new kernel.
>>
>> Could you please add a note about this to UPDATING file?
>
> I am a bit torn on this, because normally we always tell people to
> install the kernel first, reboot, then run make installworld (which also
> installs the boot loaders).
>
> However, in this case, people might depend on their boot loader loading
> modules which are required to make the system boot at all.  So if they
> happened to forget updating their boot loader first, a panic might be
> the result.
>
> I wonder what a failsafe and acceptable upgrade scenario is, in this
> case.  Normally the procedure is something like:
>
>   make buildworld
>   make buildkernel (with KERNCONF=whatever, if needed)
>   make installkernel (again with KERNCONF, if needed)
>   reboot (to single user, but cheating is possible usually)
>   mergemaster -p
>   make installworld
>
> This could maybe be modified to:
>
>   make buildworld
>   make buildkernel (with KERNCONF=whatever, if needed)
>   make installkernel (again with KERNCONF, if needed)
>   make -C sys/boot install
>   reboot (to single user, but cheating is possible usually)
>   mergemaster -p
>   make installworld
>
> E.g. insert the step which installs the boot loaders just after (or
> before) the step which installs the kernel.
>
> Is something like this acceptable as a one-time workaround, or maybe it
> is better in general, in case we ever add other new features to the boot
> loaders?

If I'm not wrong, the bootloaders are self-contained (using libstand,
and statically linked) same as the kernel, so they are not depend from
the other parts of the system, and they already lives under the
${SRCTOP}/sys with the kernel, so logically bootloader belong to the
kernel and it's acceptable from me to update them under the
installkernel phase. The question is with this method everything
working fine or this would break something?

>
> -Dimitry
>
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAPQ4ffvHpMQr0s4M5A9w8BNAcKx_Wr7J%2BKfd4aGkQbpYaEb9Lw>