gptboot broken when compiled with clang 6 and WITHOUT_LOADER_GELI -- clang 5 is OK
Andre Albsmeier
Andre.Albsmeier at siemens.com
Fri Apr 27 17:54:08 UTC 2018
On Thu, 26-Apr-2018 at 11:55:19 +0200, Dimitry Andric wrote:
> On 25 Apr 2018, at 18:58, Andre Albsmeier <Andre.Albsmeier at siemens.com> wrote:
> >
> > I have set up a new system disk for an i386 11.2-PRERELEASE box. I did the
> > usual
> >
> > gpart create -s gpt $disk
> > gpart add -t freebsd-boot -s 984 $disk
> > gpart bootcode -b /boot/pmbr -p /boot/gptboot -i 1 $disk
> > ...
> >
> > thing, just to notice that the box wouldn't boot. It seems to hang where
> > stage 2 should be run -- when the '\' should start spinning the screen
> > turns white and the box hangs (tested on two machines, an Asus P5W and a
> > Supermicro A2SAV).
> >
> > So I replaced gptboot on the new disk by the one from an older machine
> > and everything was fine. I wanted to find out what is actually causing
> > the issue and recompiled /usr/src/stand after updating the old sources
> > in several steps.
> >
> > Eventually it turned out that it depends on the compiler. When compiling
> > the latest /usr/src/stand with clang 5.0.1 the resulting gptboot works.
> > When using 6.0.0 it doesn't. To be exact, it's gptboot.o which is causing
> > the problems. When using a gptboot.o from a clang 5 system it is OK, when
> > using a gptboot.o from a clang 6 system it fails.
> >
> > To add more confusion: I usually have WITHOUT_LOADER_GELI in my make.conf.
> > When removing this, the resulting gptboot works even when compiled with
> > clang 6...
> >
> > I can reproduce this in case s.o. wants me to do some tests...
>
> I can't reproduce it on my end, unfortunately. I downloaded the latest
> FreeBSD-11.2-PRERELEASE-i386-20180420-r332802 snapshot, installed it to
> a GPT partitioned disk, and it boots just fine.
>
> This snapshot corresponds to r332802, which has clang 6.0.0, with the
> EFLAGS change still reverted, so I assume its copy of gptboot is also
> compiled with that.
>
> Which exact revision of the base system were you using?
I have done some updates in the meantime and can't tell which
revision it was (it was just a few days ago). Currently, the
buildbox is at 333056 and I have just compiled gptboot (with
WITHOUT_LOADER_GELI) and I am seeing its size is
-rw-rw---- 1 andre wheel 20859 27 Apr 19:42 gptboot
This is the size where it didn't work but I can't test it at
the moment as the build machine and the test environment are
@work. I am pretty sure it will fail as there weren't any
changes to stand or clang in the last few days but let's wait
until Monday when I can verify it...
-Andre
More information about the freebsd-stable
mailing list