Skip to content

x86-64 Linux: libcef.so fails to load with "cannot allocate memory in static TLS block" despite CEF fix applied #232

@e-gleba

Description

@e-gleba

Environment:

  • OS: Fedora Linux (latest)
  • GMod Branch: x86-64 - Chromium + 64-bit binaries
  • GModCEFCodecFix: Applied (latest version)
  • Steam Install Location: /run/media/eugene/lib/SteamLibrary/ (external drive)

More info:

❯ cat /etc/fedora-release
Fedora release 43 (Forty Three)

❯ uname -r        
6.18.7-200.fc43.x86_64

❯ ldd --version | head -1
ldd (GNU libc) 2.42

❯ df -T /run/media/eugene/lib/SteamLibrary
Filesystem     Type 1K-blocks      Used Available Use% Mounted on
/dev/sda1      ext4 960306200 218440744 697536260  24% /run/media/eugene/lib

❯ flatpak list | grep steam &>/dev/null && echo "Flatpak" || echo "Native RPM"
Native RPM

❯ getenforce
Enforcing

Problem Description:
The game launches but the main menu does not render—only the background is visible. Both Chromium and Awesomium fail to initialize, falling back to the Stub menu which provides no visible UI.

Error Log:

Attempting to load Chromium...
 failed to dlopen /run/media/eugene/lib/SteamLibrary/steamapps/common/GarrysMod/bin/linux64/html_chromium_client.so error=/run/media/eugene/lib/SteamLibrary/steamapps/common/GarrysMod/bin/linux64/libcef.so: cannot allocate memory in static TLS block
Failed to load /run/media/eugene/lib/SteamLibrary/steamapps/common/GarrysMod/bin/linux64/html_chromium_client.so: (null)
Failed to load /run/media/eugene/lib/SteamLibrary/steamapps/common/GarrysMod/garrysmod/bin/html_chromium_client.so: (null)
 failed to dlopen html_chromium_client.so error=/run/media/eugene/lib/SteamLibrary/steamapps/common/GarrysMod/bin/linux64/libcef.so: cannot allocate memory in static TLS block
Failed to load html_chromium_client.so: (null)
Attempting to load Awesomium...
Failed to load /run/media/eugene/lib/SteamLibrary/steamapps/common/GarrysMod/bin/linux64/html_awesomium_client.so: (null)
Failed to load /run/media/eugene/lib/SteamLibrary/steamapps/common/GarrysMod/garrysmod/bin/html_awesomium_client.so: (null)
Failed to load html_awesomium_client.so: (null)
Attempting to load Stub...
Game is ran with -noaddons, not loading legacy/folder addons!
Mounted 0 of 0 workshop addons!
Particles: Missing 'particles/antlion_gib_01.pcf'
Particles: Missing 'particles/antlion_gib_02.pcf'
Particles: Missing 'particles/antlion_worker.pcf'
Particles: Missing 'particles/grub_blood.pcf'
Particles: Missing 'particles/hunter_flechette.pcf'
Particles: Missing 'particles/hunter_projectile.pcf'
Particles: Missing 'particles/striderbuster.pcf'
Particles: Missing 'particles/vehicle.pcf'
Particles: Missing 'particles/weapon_fx.pcf'
x86-64: gmod_mcore_test=1
Parent cvar in server.dll not allowed (props_break_max_pieces)
Particles: Missing 'particles/antlion_gib_01.pcf'
Particles: Missing 'particles/antlion_gib_02.pcf'
Particles: Missing 'particles/antlion_worker.pcf'
Particles: Missing 'particles/grub_blood.pcf'
Particles: Missing 'particles/hunter_flechette.pcf'
Particles: Missing 'particles/hunter_projectile.pcf'
Particles: Missing 'particles/striderbuster.pcf'
Particles: Missing 'particles/vehicle.pcf'
Particles: Missing 'particles/weapon_fx.pcf'
m_face->glyph->bitmap.width is 0 for ch:32 DejaVu Sans

Steps to Reproduce:

  1. Install GMod on Fedora Linux (x86-64 branch)
  2. Apply GModCEFCodecFix
  3. Launch
  4. Observe backgrounds and console only—no menu UI (with msg: Menu failed to load)

Attempted Solutions:

  • LD_PRELOAD=/usr/lib64/libpthread.so.0
> cat /proc/sys/user/max_user_namespaces
247054

Tool output:

❯ ./gmodpatchtool 
   ________  ___          ______        __       __  ______            __
  / ____/  |/  /___  ____/ / __ \____ _/ /______/ /_/_  __/___  ____  / /
 / / __/ /|_/ / __ \/ __  / /_/ / __ `/ __/ ___/ __ \/ / / __ \/ __ \/ /
/ /_/ / /  / / /_/ / /_/ / ____/ /_/ / /_/ /__/ / / / / / /_/ / /_/ / /
\____/_/  /_/\____/\__,_/_/    \__,_/\__/\___/_/ /_/_/  \____/\____/_/
GModPatchTool (formerly GModCEFCodecFix)

Copyright 2020-2025, Solstice Game Studios (solsticegamestudios.com)
LICENSE: GNU General Public License v3.0

Purpose: Patches Garry's Mod to Update/Improve Chromium Embedded Framework (CEF) and Fix common launch/performance issues (esp. on Linux/Proton/macOS).

Guide: https://solsticegamestudios.com/fixmedia/
FAQ/Common Issues: https://solsticegamestudios.com/fixmedia/faq/
Discord: https://solsticegamestudios.com/discord/
Email: [email protected]

Getting remote version...
You are running the latest version of GModPatchTool [Local: 20251102 / Remote: 20251102]!

Steam Path: /home/eugene/.local/share/Steam

Steam User: *hide*

GMod Steam Library: /run/media/eugene/lib/SteamLibrary

GMod App State: 4 | 0 | false | 35774416/35774416 | 147756906/147756906 

GMod Beta Branch: x86-64

GMod Path: /run/media/eugene/lib/SteamLibrary/steamapps/common/GarrysMod

Target Platform: linux (none)

Getting remote manifest...
GModPatchTool Manifest Loaded!

Determining file integrity status...
        bin/linux32/chromium/cef_200_percent.pak: Already Fixed
        bin/linux32/chromium/locales/cs.pak: Already Fixed
        bin/linux32/chromium/cef_100_percent.pak: Already Fixed
        bin/linux32/chromium/cef.pak: Already Fixed
        bin/linux32/chromium/locales/da.pak: Already Fixed
        bin/linux32/chromium/locales/es.pak: Already Fixed
        bin/linux32/chromium/locales/fil.pak: Already Fixed
        bin/linux32/chromium/devtools_resources.pak: Already Fixed
        bin/linux32/chromium/locales/ca.pak: Already Fixed
        bin/linux32/chromium/locales/ar.pak: Already Fixed
        bin/linux32/chromium/locales/fr.pak: Already Fixed
        bin/linux32/chromium/locales/de.pak: Already Fixed
        bin/linux32/chromium/locales/tr.pak: Already Fixed
        bin/linux32/chromium/locales/gu.pak: Already Fixed
        bin/linux32/chromium/locales/am.pak: Already Fixed
        bin/linux32/chromium/locales/he.pak: Already Fixed
        bin/linux32/chromium/locales/bg.pak: Already Fixed
        bin/linux32/chromium/locales/fa.pak: Already Fixed
        bin/linux32/chromium/locales/uk.pak: Already Fixed
        bin/linux32/chromium/locales/hi.pak: Already Fixed
        bin/linux32/chromium/locales/hr.pak: Already Fixed
        bin/linux32/chromium/locales/ml.pak: Already Fixed
        bin/linux32/chromium/locales/nl.pak: Already Fixed
        bin/linux32/chromium/locales/hu.pak: Already Fixed
        bin/linux32/chromium/cef_extensions.pak: Already Fixed
        bin/linux32/chromium/locales/vi.pak: Already Fixed
        bin/linux32/chromium/locales/id.pak: Already Fixed
        bin/linux32/chromium/locales/bn.pak: Already Fixed
        bin/linux32/chromium/locales/fi.pak: Already Fixed
        bin/linux32/chromium/locales/pl.pak: Already Fixed
        bin/linux32/chromium/locales/it.pak: Already Fixed
        bin/linux32/chromium/locales/ru.pak: Already Fixed
        bin/linux32/chromium/locales/zh-CN.pak: Already Fixed
        bin/linux32/chromium/locales/et.pak: Already Fixed
        bin/linux32/chromium/locales/sk.pak: Already Fixed
        bin/linux32/chromium/locales/mr.pak: Already Fixed
        bin/linux32/chromium/locales/pt-BR.pak: Already Fixed
        bin/linux64/locales/id.pak: Already Fixed
        bin/linux32/chromium/locales/sl.pak: Already Fixed
        bin/linux32/chromium/locales/el.pak: Already Fixed
        bin/linux32/chromium/locales/ja.pak: Already Fixed
        bin/linux32/chromium/locales/sr.pak: Already Fixed
        bin/linux32/chromium/locales/en-US.pak: Already Fixed
        bin/linux32/chromium/locales/kn.pak: Already Fixed
        bin/linux32/chromium/locales/es-419.pak: Already Fixed
        bin/linux32/chromium/locales/zh-TW.pak: Already Fixed
        bin/linux32/chromium/locales/ko.pak: Already Fixed
        bin/linux64/locales/pl.pak: Already Fixed
        bin/linux32/chromium/locales/lt.pak: Already Fixed
        bin/linux32/chromium/locales/lv.pak: Already Fixed
        bin/linux64/locales/hu.pak: Already Fixed
        bin/linux64/locales/es.pak: Already Fixed
        bin/linux64/locales/hr.pak: Already Fixed
        bin/linux32/chromium/locales/sv.pak: Already Fixed
        bin/linux64/locales/it.pak: Already Fixed
        bin/linux32/chromium/locales/pt-PT.pak: Already Fixed
        bin/linux32/chromium/locales/sw.pak: Already Fixed
        bin/linux32/chromium/locales/ms.pak: Already Fixed
        bin/linux32/chromium/locales/ro.pak: Already Fixed
        bin/linux32/chromium/locales/ta.pak: Already Fixed
        bin/linux64/chrome-sandbox: Already Fixed
        bin/linux32/chromium/locales/nb.pak: Already Fixed
        bin/linux64/locales/en-GB.pak: Already Fixed
        bin/linux32/chromium/locales/en-GB.pak: Already Fixed
        bin/linux64/locales/el.pak: Already Fixed
        bin/linux64/locales/fr.pak: Already Fixed
        bin/linux64/locales/zh-TW.pak: Already Fixed
        bin/linux64/locales/pt-BR.pak: Already Fixed
        bin/linux32/chromium/locales/th.pak: Already Fixed
        bin/linux32/chromium/locales/te.pak: Already Fixed
        bin/linux64/locales/et.pak: Already Fixed
        bin/linux64/locales/he.pak: Already Fixed
        bin/linux64/locales/kn.pak: Already Fixed
        bin/linux64/locales/am.pak: Already Fixed
        bin/linux64/locales/ar.pak: Already Fixed
        bin/linux64/locales/sw.pak: Already Fixed
        bin/linux64/locales/ml.pak: Already Fixed
        bin/linux64/locales/ja.pak: Already Fixed
        bin/linux64/locales/de.pak: Already Fixed
        garrysmod/html/js/menu/control.Menu.js: Already Fixed
        garrysmod/resource/fonts/PTMono-OFL.txt: Already Fixed
        garrysmod/html/css/menu/Servers.css: Already Fixed
        bin/linux64/locales/ro.pak: Already Fixed
        garrysmod/html/menu.html: Already Fixed
        garrysmod/resource/ClientScheme.res: Already Fixed
        bin/linux64/vk_swiftshader_icd.json: Already Fixed
        bin/linux64/locales/tr.pak: Already Fixed
        garrysmod/resource/fonts/PTMono-Regular.ttf: Already Fixed
        hl2.sh: Already Fixed
        bin/linux64/locales/ms.pak: Already Fixed
        garrysmod/gamemodes/sandbox/gamemode/spawnmenu/creationmenu/content/contenttypes/dupes.lua: Already Fixed
        bin/linux64/libEGL.so: Already Fixed
        garrysmod/resource/SourceScheme.res: Already Fixed
        garrysmod/lua/menu/mainmenu.lua: Already Fixed
        garrysmod/gamemodes/sandbox/gamemode/spawnmenu/creationmenu/content/contenttypes/saves.lua: Already Fixed
        bin/linux64/locales/ta.pak: Already Fixed
        bin/linux64/snapshot_blob.bin: Already Fixed
        bin/linux64/locales/cs.pak: Already Fixed
        garrysmod/html/css/menu/Menu.css: Already Fixed
        garrysmod/html/css/menu/NewGame.css: Already Fixed
        bin/linux64/locales/gu.pak: Already Fixed
        bin/linux64/chrome_200_percent.pak: Already Fixed
        bin/linux64/locales/sr.pak: Already Fixed
        bin/linux64/locales/th.pak: Already Fixed
        bin/linux64/chromium_process: Already Fixed
        bin/linux64/locales/sk.pak: Already Fixed
        bin/linux64/locales/sv.pak: Already Fixed
        bin/linux64/locales/ca.pak: Already Fixed
        bin/linux64/locales/lt.pak: Already Fixed
        bin/linux64/chrome_100_percent.pak: Already Fixed
        bin/linux64/gmod: Already Fixed
        bin/linux64/locales/af.pak: Already Fixed
        bin/linux64/libvk_swiftshader.so: Already Fixed
        bin/linux64/locales/sl.pak: Already Fixed
        bin/linux64/locales/ru.pak: Already Fixed
        bin/linux64/locales/zh-CN.pak: Already Fixed
        bin/linux64/locales/vi.pak: Already Fixed
        bin/linux64/libvulkan.so.1: Already Fixed
        bin/linux64/locales/uk.pak: Already Fixed
        bin/linux64/html_chromium_client.so: Already Fixed
        bin/linux64/locales/pt-PT.pak: Already Fixed
        bin/linux64/v8_context_snapshot.bin: Already Fixed
        bin/linux64/locales/fi.pak: Already Fixed
        bin/linux64/locales/te.pak: Already Fixed
        bin/linux64/icudtl.dat: Already Fixed
        bin/linux64/locales/nl.pak: Already Fixed
        bin/linux64/locales/ko.pak: Already Fixed
        bin/linux64/locales/fil.pak: Already Fixed
        bin/linux64/locales/ur.pak: Already Fixed
        bin/linux64/locales/nb.pak: Already Fixed
        bin/linux64/libGLESv2.so: Already Fixed
        bin/linux64/locales/da.pak: Already Fixed
        bin/linux64/locales/fa.pak: Already Fixed
        bin/linux64/locales/en-US.pak: Already Fixed
        bin/linux64/resources.pak: Already Fixed
        bin/linux64/libcef.so: Already Fixed
        bin/linux64/locales/bn.pak: Already Fixed
        bin/linux64/locales/lv.pak: Already Fixed
        bin/linux64/locales/mr.pak: Already Fixed
        bin/linux64/locales/hi.pak: Already Fixed
        bin/linux64/locales/es-419.pak: Already Fixed
        bin/linux64/locales/bg.pak: Already Fixed
No files need patching!

Applying file permissions...
        bin/linux64/chrome-sandbox
        bin/linux64/chromium_process
        bin/linux64/gmod
        bin/linux64/html_chromium_client.so
        bin/linux64/libEGL.so
        bin/linux64/libGLESv2.so
        bin/linux64/libcef.so
        bin/linux64/libvk_swiftshader.so
        bin/linux64/libvulkan.so.1

GModPatchTool applied successfully! Took 0.456752556 second(s).
You can now launch Garry's Mod in Steam.

💖 Did you find this tool useful? Please consider donating a few dollars to help support it:
        https://solsticegamestudios.com/donate/

Press Enter to exit...

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions