For the past week or so, I have been unable to use the UE4 editor because every revision I compile crashes during startup. I asked on the #UE4Linux channel and was told by Yaakuro that TLS (Thread Local Space) was broken again.
Console output from starting up the UE4 editor:
We discussed that over IRC, but in a nutshell:
- editor shared objects have static TLS (why exactly this happens despite us passing -ftls-model=local-dynamic is yet unknown)
- glibc has a total limit of 14 static TLS slots (bumped up to 32 in Ubuntu 15.04 and Fedora): Carlos O'Donell - Fixing the distribution problems with TLS and DTV_SURPLUS slots.
- on Ubuntu 14.04 and up our shared objects + whatever system shared objects happen to use static TLS as well together still use fewer slots than the system limit (14 or 32).
- on Arch apparently this is not the case.
Proper fix is making editor shared objects not to use static TLS. Short term fix would be patching Arch glibc to increase DTV_SURPLUS.
Okay, so suppose I were to try recompiling glibc with an increased DTV_SURPLUS… As far as you know, would you know, would that require that I recompile everything that depends on glibc? Or would just toggling that be “safe” because it would leave the interfaces unchanged?
For gentoo user who are seeing this thread it’s pretty straight forward:
mkdir -p /etc/portage/patches/sys-libs/glibc
curl http://pastebin.com/download.php?i=BQv7cqKt > unreal48glibc.patch #I did this for you ;)
emerge -v glibc
Hope that help…
Thank you very much! This patch was close, but didn’t apply correctly to glibc-2.20-r2, so here is an updated one: unreal48glibc-2.20-r2.patch - Pastebin.com
I seem to to have a similar problem, running debian jessie.
full output is here: Using binned.Increasing per-process limit of core file size to infinity.[201 - Pastebin.com
ubuntu solution does’nt work.
any chance anyone can help?
Your issue is unrelated to the one I reported. My reported crash was exhaustion of Thread Space Locals. Your issue is a failure to create an openGL context. In which case, it would be best to file a new report.