[CentOS-devel] glibc-2.28-145.el8 with glibc-hwcaps support is coming to CentOS Stream 8

Fri Jan 8 10:14:14 UTC 2021
Fabian Arrotin <arrfab at centos.org>

On 08/01/2021 10:48, Fabian Arrotin wrote:
> On 08/01/2021 10:15, Florian Weimer wrote:
>> * Fabian Arrotin:
>>
>>> Thanks a lot for the announce, really appreciated to be aware of what's
>>> coming .
>>> I'd (myself) like to see some kind of announces being sent on the public
>>> list so that everybody can follow what's being worked on and so what to
>>> expect in Stream packages (as of course there is no official public
>>> Release Notes -yet- , appearing for RHEL, so downstream)
>>
>> I'm going to let others comment on that.
>>
>>> Now back to the x86 cpu infra : does that mean that to *build* Stream
>>> packages (like gblic) we need at least a minimum instructions set in the
>>> CPU (builder side that is) ?
>>
>> glibc itself continues to use IFUNCs on x86-64 to select optimized
>> function implementations, based on CPU capabilities.  This means that
>> baseline x86-64 support remains sufficient for building the glibc
>> package.
>>
>> I can image that in the future, there will be some packages which build
>> shared objects for x86-64-v3 (in addition to baseline x86-64, with
>> run-time selection later), and which test all implementations at build
>> time.  In such a scenario, the builders would have to support x86-64-v3.
>>
>> In related news, we plan to build CentOS Stream 9 with a x86-64-v2
>> baseline:
>>
>>   Building Red Hat Enterprise Linux 9 for the x86-64-v2 microarchitecture level
>>   <https://developers.redhat.com/blog/2021/01/05/building-red-hat-enterprise-linux-9-for-the-x86-64-v2-microarchitecture-level/>
>>
> 
> Thanks a lot, that's exactly the kind of information I wish we had when
> we started to build the new infra for Stream 9 .... now to see if what
> deployed as hardware for this is enough :)
> 

So if we have to start with x86-64-v2 (and eventually x86-64-v3 later
one for some pkgs), I just checked all (normally) needed cpu flags and
we're so "covered" .. :

for flag in sse3 sse4_2 popcnt cx16 avx2 movbe; do egrep -q ${flag}
/proc/cpuinfo && echo "Flag ${flag} present !" || echo "Flag ${flag}
MISSING" ; done
Flag sse3 present !
Flag sse4_2 present !
Flag popcnt present !
Flag cx16 present !
Flag avx2 present !
Flag movbe present !

I was in 'panic mode' for some minutes until I was able to confirm that
what we have should work .. ;-)

-- 
Fabian Arrotin
The CentOS Project | https://www.centos.org
gpg key: 17F3B7A1 | twitter: @arrfab