Bartosz Fabianowski
2004-Dec-23 16:01 UTC
Recent CPUTYPE changes breaking kernel on Centrino
Hi list, I posted this question a few days ago, but it got lost in a thread I fear. With the recent changes to bsd.cpu.mk, the setting "CPUTYPE=pentium-m" in make.conf now gets picked up and leads to GCC flags being set accordingly. Unfortunately, something gets enabled that the Pentium M (actually a P3 with some additional features) does not support. What happens then is that a newly built world works just fine, while the kernel does not even boot. Both the boot loader and the kernel itself cause instant reboots at startup. I'm wondering if somebody knowledgeable with the GCC flags for a P3 would have a clue which flag or feature it is that could be triggering this. - Bartosz
Bartosz Fabianowski wrote:> I posted this question a few days ago, but it got lost in a thread I fear. > > With the recent changes to bsd.cpu.mk, the setting "CPUTYPE=pentium-m" > in make.conf now gets picked up and leads to GCC flags being set > accordingly. Unfortunately, something gets enabled that the Pentium M > (actually a P3 with some additional features) does not support. What > happens then is that a newly built world works just fine, while the > kernel does not even boot. Both the boot loader and the kernel itself > cause instant reboots at startup. > > I'm wondering if somebody knowledgeable with the GCC flags for a P3 > would have a clue which flag or feature it is that could be triggering > this.I reported this same issue in October with my Athlon-XP. Here was the last message of that thread (includes -save-temps data): http://lists.freebsd.org/pipermail/freebsd-current/2004-November/042127.html It appears like setting the CPUTYPE results in gcc producing bad code on my Athlon-XP. If I build _just_ the loader with a good gcc and CPUTYPE?=athlon-xp, everything works. However, if I build the loader as part of a buildworld with CPUTYPE?=athlon-xp, the loader is bad. Thus, the issue appears to be that setting CPUTYPE might produce a broken gcc (perhaps only when using -march). Jon