On 2020-05-07 13:04, Noah Meyerhans wrote: > On Wed, May 06, 2020 at 04:15:09PM +0200, Aurelien Jarno wrote: > > > >One solution for this would be to ship the optimized library in the same > > > >package as the default library. Now this is not acceptable for embedded > > > >systems as they might not need that library and can't remove it. This is > > > >even more problematic if we need to add more optimized libraries. I guess > > > >this might be the case for arm64 as there are many new extensions in the > > > >pipe. > > > > > > ACK. It's a problem to ship the different things in separate > > > packages. If it's really a problem for smaller systems to have all the > > > variants because of size, is there maybe another way to do things? How > > > about keeping the existing libc and have an extra package > > > ("libc-optimised") with all the optimised versions *and* the basic > > > version, and have it provide/replace/conflict libc6? > > > > > > (/me prepares to be ambarrassed as you point out the obvious flaw I'm > > > missing...) > > > > I guess that the provide/replace/conflict libc6 will just prevent > > installation of foreign libc6 packages, basically making this optimized > > package useless in the multiarch context. > > > > OTOH, what is the drawback of having GCC defaulting to -moutline-atomics? > > It will improve performance on many more packages than only glibc, and > > is way easier to implement overall. It also means users has nothing to > > do to get additional performances. > > For the current issue, defaulting to -moutline-atomics might be a sane > approach. As you said earlier, though, it seems that there are many new > extensions in the pipe for ARM. There may not be an equivalent solution > for all of them, and even if there is, at some point the runtime > overhead of all this conditional code is going to add up to something > meaningful.
If we are talking about future extensions, another option for some of them is to use ifunc. It's how the various SSE and AVX extensions are supported on x86, and neon is supported on armv7. -- Aurelien Jarno GPG: 4096R/1DDD8C9B aurel...@aurel32.net http://www.aurel32.net