clone 887169 -1 reassign -1 gcc-7 retitle -1 gcc-7: missed optimization of glibc strspn SSE 4.2 variant forwarded -1 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81481 block 887169 by -1 thanks
On 2018-01-14 10:35, James Lu wrote: > Package: libc6 > Version: 2.26-3 > Severity: normal > > Dear maintainers, > > On a recent glibc upgrade on buster/sid (first to 2.26-2 and then > 2.26-3), one Steam game (Civilization V) consistently segfaults on startup. > > Similar issues have been reported in Arch Linux[1], Fedora[2], and > OpenSUSE[3], where the consensus was that building glibc with From what I get about the above reported issues, this bug is caused by: - the Steam games not following the Linux/x86 ABI wrt stack alignement - the SSE4.2 version of the strspn function needing to push an SSE register to the stack when build with GCC 7, due to a missed optimization. > -mstackrealign fixed the issue. (I haven't been able to get such a local > build working though) I don't think it is actually the consensus, only Arch Linux has chosen this solution, and building the whole glibc with this option will have an impact of the performances for all binaries, not only the broken Steam ones. I therefore don't think it's the right way to fix the bug. Instead it looks like fixing PR81481 [1] on the GCC 7 side, and then rebuilding glibc is the way to go. I am therefore cloning this bug to gcc-7 so that it can happens. In the meantime I guess you can run the Steam games by disabling SSE4.2 optimized function using the glibc tunables. Run the game with the GLIBC_TUNABLES environment variable defined as follow: GLIBC_TUNABLES=glibc.tune.hwcaps=-SSE4_2 Aurelien [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81481 -- Aurelien Jarno GPG: 4096R/1DDD8C9B aurel...@aurel32.net http://www.aurel32.net