Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 23 Oct 2011 17:27:54 +0200
From:      Dennis Koegel <dk@neveragain.de>
To:        John Baldwin <jhb@freebsd.org>
Cc:        Pavel Timofeev <timp87@gmail.com>, freebsd-current@freebsd.org, avg@freebsd.org
Subject:   Re: Fresh installed Freebsd 9 don't boot from hd
Message-ID:  <20111023152754.GA35505@neveragain.de>
In-Reply-To: <201110211633.38764.jhb@freebsd.org>
References:  <CAAoTqftvv1t214Q9uWJR-Jug4GJEZshXyOr6uB_d19h2NV89XA@mail.gmail.com> <20111021085851.GA51368@neveragain.de> <201110211633.38764.jhb@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, Oct 21, 2011 at 04:33:38PM -0400, John Baldwin wrote:
> Working offline with Dennis, we found that changing the CFLAGS in 
> sys/boot/i386/gptboot/Makefile from "-O1" to "-Os -mrtd" (partially reverting 
> an earlier commit) fixed gptboot.  The next test for someone to do would be to 
> try just adding "-mrtd" and leaving "-O1" as-is to see if that fixes it.

More test results:

gcc -Os -fno-guess-branch-probability -fomit-frame-pointer -fno-unit-at-a-time \
	-mno-align-long-strings -mrtd [from before r225530]: Boots OK
gcc -Os -mrtd: Boots OK
gcc -O1 -mrtd: Fails
gcc -O1: Fails
gcc -O0: Fails
gcc -Os: Boots OK

clang -O1: Fails
clang -Os: Fails
clang -Oz: Fails

I've put some printf()s into gpt{,boot}.c to trace where the reboot is
triggered. It appears to be in drvsize() (called from gptread()). OTOH
the debug output may have changed where the problem occurs, I don't
know about that.

With 9.0R drawing near, CFLAGS should be s/-O1/-Os/, until we can figure
out what happens. But as for why gcc's magic -Os is required and clang's
output doesn't work at all, I'm clueless.

- D.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20111023152754.GA35505>