Adam C Powell IV wrote: > Why not just include multiple optimized binaries for different arches in > separate > dirs, e.g. /usr/lib/atlas-athlon etc., then use a postinst script to scan > /proc/cpuinfo, move the appropriate libs into /usr/lib, and remove the dirs?
This would cause problems in mixed-architecture clusters. Currently you can use the same /usr for a PIII and an Athlon, or for a G3 and G4 PowerPC. I wouldn't like to break that property, because it's very useful for machines mounting /usr from a network or cluster filesystem. I'd much rather have a solution which was decided at boot time or dynamically. For instance, an init script which dynamically changed links in /etc/alternatives. But I do use the current ability to mount /etc read-only, so perhaps we could have a new /var/alternatives directory for alternatives selected at boot time? > Does anyone know how Microsoft/Adobe/etc. ships software optimized for the > latest > chips, which doesn't break on old ones? E.g. the Altivec instructions in > Photoshop which only are exercized on G4s... If you're shipping an application, rather than a library, it's trivial to decide at runtime which version to load. You can put all the CPU dependent parts into shared libraries, and load the correct one when you need to. This all breaks on a MOSIX cluster with mixed architecture. I guess they're just too weird to live. - Adrian Cox, AG Electronics

