Hi kultex,
I read you link and I am aware of the missing instructions in the "alternative" CPU's. I have an old Mini-ITX with a VIA C3 Ezra running now for 10+ years as a small home server. Originally bought to be used as a media center, but the missing CMOV and MMX instructions cut multimedia performance greatly.
Right now I have two embedded PC104 systems, identical except for the cpu modules: A VIA Nehemia and the AMD Geode LX 800.
The VIA systems boots my slitaz cooking with both the Xorg Savage driver and the fbdev driver.
The Geode fails with both the fbdev as well as the Xorg Geode driver.
Here are the important parts from /proc/cpuinfo on all three systems:
vendor_id : CentaurHauls
cpu family : 6
model : 8
model name : VIA C3 Ezra
flags : fpu de tsc msr cx8 mtrr pge mmx 3dnow up
vendor_id : CentaurHauls
cpu family : 6
model : 9
model name : VIA Nehemiah
flags : fpu vme de pse tsc msr cx8 sep mtrr pge cmov pat mmx fxsr sse up rng rng_en ace ace_en
vendor_id : AuthenticAMD
cpu family : 5
model : 10
model name : Geode(TM) Integrated Processor by AMD PCS
flags : fpu de pse tsc msr cx8 sep pge cmov clflush mmx mmxext 3dnowext 3dnow up
The C3 Ezra wrongly claimed to be of family 6, but it did not have the cmov instruction, really causing me a headache 10 years ago.
The Redhat bugzilla link I posted above have an indepth discussion on the problem (nopl) being in glibc, but following it through it ends up being a problem in gcc gas.
That is why I started with my question about the patch for gas.
Running objdump -dr /lib/libc-2.13.so |grep nopl
on my slitaz cooking returns nothing.
Which is correct.
The same command on my Ubuntu Maverick desktop gives a single nopl instruction, which actually is wrong. Ubuntu dropped support for i586 and less with the Maverick release, but the nopl instruction was NOT part of the i686 instruction set, all Intel cpu's supported it though.
I will try to put the slitaz-xorg-fbdev.iso on my CF card and test it.
I am still confused why/how the error in Xorg can say a specific address has the invalid instruction, and I cant see it with the objdump approach.
Is it a stupid way trying to find the illegal instruction?
Some of the discussion I link to above show concerns about the default gas instructions used if no no arch info is given. In that case it could even be an sse instruction.