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. _______________________________________________ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to "freebsd-current-unsubscr...@freebsd.org"