Jan Engelhardt
We must always compile with the minimum set because we do not know what the target machine will be like. gcc -march=i586 does that (for openSUSE's definition of "minimum").
Correct. A useful minimum default would be a pentium with no fdiv bug.
But as portrayed in previous mails, compiler switches don't help if you have a __asm__("pmovsomething %xmmwhatever..."); or equivalent.
This is a general problem with the quality of OSS. The opcode is not the only problem here, another problem is the assumtion that some vendor-specific non-standard C enhancements may be used with the systems compiler.
libc is mounted to the best fit libc compile variant for performance reasons. BTW: this appeared in 1997, when 64 bit support was added to Solaris.
In glibc, all the accelerated codes live within (the one) libc.so, and ld.so resolves symbols like strchr to __strchr_sse2 / __strchr_sse42 at program startup through a mechanism that is known as ifunc. That means we do not have to provide the computationally boring parts of libc ??? such as stdio, which provides one of the largest functions according to readelf ??? more than once like it would be the case for multiple libc.so files.
Well if you believe that disk space is rare, you are right. If you believe that avoiding to fill RAM with unneeded code is more important, the Solarie method is better. Jörg -- EMail:joerg@schily.isdn.cs.tu-berlin.de (home) Jörg Schilling D-13353 Berlin js@cs.tu-berlin.de (uni) joerg.schilling@fokus.fraunhofer.de (work) Blog: http://schily.blogspot.com/ URL: http://cdrecord.berlios.de/private/ ftp://ftp.berlios.de/pub/schily -- To unsubscribe, e-mail: opensuse-factory+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-factory+owner@opensuse.org