[Bug libc/23630] New: x86 multiarch works only for i686 target
ikalvachev at gmail dot com
sourceware-bugzilla@sourceware.org
Tue Sep 11 14:52:00 GMT 2018
https://sourceware.org/bugzilla/show_bug.cgi?id=23630
Bug ID: 23630
Summary: x86 multiarch works only for i686 target
Product: glibc
Version: unspecified
Status: UNCONFIRMED
Severity: normal
Priority: P2
Component: libc
Assignee: unassigned at sourceware dot org
Reporter: ikalvachev at gmail dot com
CC: drepper.fsp at gmail dot com
Target Milestone: ---
I'm running Slackware. It still tries to support old machines and builds
packages, including glibc, with i586 support.
Unfortunately all SIMD code and CPU detection code is in i686 directory and the
multiarch configure option is ignored when architecture before i686 is
selected.
What is worse, i586 optimized memcpy() uses a 20 years old hack, that reads
from destination memory (in order to "prefetch" a cache line) before
overwriting it.
On my i3 this causes a massive slowdown in Mesa3D, when glibc memcpy() is used
to transfer (small) Buffer Objects from system to video ram, because that
involves PCIe transactions.
I did saw that there is a TODO entry to rename i386 to x86 and move
i486,i586,i686 there. However this is only a cosmetic change...
I do request multiarch support that (when selected) also compiles all x86
architectures above the selected, then at runtime detects the running
architecture and uses the appropriate functions for it.
--
You are receiving this mail because:
You are on the CC list for the bug.
More information about the Glibc-bugs
mailing list