Kaitain
Active Member
I've had a happy afternoon playing Civilization V. Sadly, it didn't work out of the box, flashing the screen for a mere moment, then bailing out. Launching Steam from the console, I saw the following:
No problem, I thought, it should be as simple as forcing Steam to use the supplied libraries, rather than the system libraries:
This didn't work. It complained about being unable to find my opengl drivers. So in true "sledgehammer-to-crack-a-nut" style, just delete the steam-provided libraries that are causing me problems, as a normal user:
... and now I'm back to:
A little google-fu later, I find a bug report on Arch linux boards that suggests that 32bit compatibility is broken if libxcb is compiled with -O2 optimisation. Interestingly, this affects Fedora as well, and might have been part of Gizmo's trouble with WebEx, which depends on having a working 32bit libxcb.
In Gentoo, as root:
Give libxcb new cflags:
(Note these elaborate CFLAGs are taken from Gentoo's Ryzen wiki)
Rebuild libxcb (took about 30s) and everything works!
Using /etc/portage/env/(stuff) is not new, but is new to me as I've never had cause to use the feature before...
Code:
Civ5XP[5289] general protection ip:f73f32c9 sp:ee29fb14 error:0 in libxcb.so.1.1.0[f73e8000+2a000]
No problem, I thought, it should be as simple as forcing Steam to use the supplied libraries, rather than the system libraries:
Code:
STEAM_RUNTIME_PREFER_HOST_LIBRARIES=0 steam steam://rungameid/8930
This didn't work. It complained about being unable to find my opengl drivers. So in true "sledgehammer-to-crack-a-nut" style, just delete the steam-provided libraries that are causing me problems, as a normal user:
Code:
find ~/.local/share/Steam/ \( -name "libgcc_s.so*" -o -name "libstdc++.so*" -o -name "libxcb.so*" -o -name "libgpg-error.so*" \) -print -delete
... and now I'm back to:
Code:
Civ5XP[5289] general protection ip:f73f32c9 sp:ee29fb14 error:0 in libxcb.so.1.1.0[f73e8000+2a000]
A little google-fu later, I find a bug report on Arch linux boards that suggests that 32bit compatibility is broken if libxcb is compiled with -O2 optimisation. Interestingly, this affects Fedora as well, and might have been part of Gizmo's trouble with WebEx, which depends on having a working 32bit libxcb.
In Gentoo, as root:
Code:
mkdir -p /etc/portage/env/x11-libs
nano -w /etc/portage/env/x11-libs/libxcb
Code:
CFLAGS="-O1 -march=bdver4 -mno-fma4 -mno-tbm -mno-xop -mno-lwp -mclzero -madx -mrdseed -mmwaitx -msha -mxsavec -mxsaves -mclflushopt -mpopcnt -pipe"
CXXFLAGS="${CFLAGS}"
Rebuild libxcb (took about 30s) and everything works!
Using /etc/portage/env/(stuff) is not new, but is new to me as I've never had cause to use the feature before...