On Wed, Sep 15, 2010, Michael Hope wrote:
GLIBC a mechanism for picking the best routines to use based on the CPU capabilities. This means that GLIBC can include A8 and A9 versions both with and without NEON, Ubuntu can ship all of these versions, and the dynamic linker can choose the best one based on the chip it is running on.
Are you sure we have an auxv entry for a8 versus a9? In any case, I doubt it's considered for glibc hwcaps right now as this requires explicit flagging and the list of ARM flags is quite short.
I don't think this would scale very well to multiple CPUs; it's not really a CPU feature we're after here, but a CPU characteristic.
GCC has a bunch of costing mechanism at compile time, and I think this shows that we need some at runtime, probably in all libcs. One way to workaround in the very short term would be to add some glibc config to turn on or off usage of NEON, or have glibc read cpuinfo or something to identify the CPU model and manufacturer.