alliedmodders / sourcemod

SourceMod - Source Engine Scripting and Administration
http://www.sourcemod.net/
965 stars 423 forks source link

SourceMod & MetaMod will not load without removing libgcc_s.so.1 from /lib. #1781

Open hostkombat opened 2 years ago

hostkombat commented 2 years ago

Environment

Description

SourceMod & MetaMod will not load without removing libgcc_s.so.1 from /lib. All Steam 32bit Libraries are installed properly.

Problematic Code (or Steps to Reproduce)

Install Ubuntu 22.04 LTS Install SteamCMD and 32bit libraries including /lib/i386-linux-gnu/libgcc_s.so.1 Install SourceMod & MetaMod Start CSGO Server SourceMod & MetaMod will not load. Stop The Server Remove libgcc_s.so.1 from /lib Start The Server MetaMod & SourceMod starts to work.

Logs

L 06/16/2022 - 16:29:58: Detected engine 11 but could not load: /home/tcagame_svc4/username/4/bin/libgcc_s.so.1: version `GCC_7.0.0' not found (required by /lib/i386-linux-gnu/libstdc++.so.6)

asherkin commented 2 years ago

This is a Valve issue, an unused file in the SRCDS library path conflicts with your system libraries.

Wend4r commented 2 years ago

Try to delete /home/tcagame_svc4/username/4/bin/libgcc_s.so.1 to use system libgcc_s.so.1

hostkombat commented 2 years ago

Try to delete /home/tcagame_svc4/username/4/bin/libgcc_s.so.1 to use system libgcc_s.so.1

Like I said if you remove libgcc_s.so.1 SourceMod and MetaMod starts working.

Wend4r commented 2 years ago

It seems to me that any Valve Server Plugin written on C++ will not start without libgcc_s.so.1. There is a solution for MetaMod to use local GCC library.

hostkombat commented 2 years ago

It seems to me that any Valve Server Plugin written on C++ will not start without libgcc_s.so.1.

I was wondering the same, I'm deleting this file, is it not going to break anything? well I guess I have to wait for a magician to give us a work around or fix.

Wend4r commented 2 years ago

Similar libraries in the system include the legacy of previous versions. Nothing break should happen

[wend4r@Wend4rPC ~]$ strings /usr/lib/libgcc_s.so.1 | grep GCC_*
GCC_3.0
GCC_3.3
GCC_3.3.1
GCC_3.4
GCC_3.4.2
GCC_4.0.0
GCC_4.2.0
GCC_4.3.0
GCC_4.4.0
GCC_4.5.0
GCC_4.7.0
GCC_4.8.0
GCC_7.0.0
hostkombat commented 2 years ago

So should I just remove this, would this be the proper way to do it?

Similar libraries in the system include the legacy of previous versions. Nothing break should happen

[wend4r@Wend4rPC ~]$ strings /usr/lib/libgcc_s.so.1 | grep GCC_*
GCC_3.0
GCC_3.3
GCC_3.3.1
GCC_3.4
GCC_3.4.2
GCC_4.0.0
GCC_4.2.0
GCC_4.3.0
GCC_4.4.0
GCC_4.5.0
GCC_4.7.0
GCC_4.8.0
GCC_7.0.0

So should I just remove this, would this be the proper way to do it? any other way?

asherkin commented 2 years ago

Yes, removing it is the current solution.

abnerfs commented 1 year ago

This issue is still happening and took me a while to find this and realize I needed to remove the lib, if we're not going to fix it should we document the workaround somewhere?

Wend4r commented 1 year ago

This issue is still happening and took me a while to find this and realize I needed to remove the lib, if we're not going to fix it should we document the workaround somewhere?

For example, when installing Steam, it is a normal practice to remove old built-in libs to fix compatibility problems https://wiki.debian.org/Steam#Troubleshooting

AlliedModders has a similar note https://wiki.alliedmods.net/Installing_metamod:source

I think, it's a matter of notifying the installation documentation (before downloading MM:Source build or something else)

abnerfs commented 1 year ago

Interesting, maybe those docs should be better indexed here or maybe I'm just dumb that's why I didn't find it

asherkin commented 1 year ago

Interesting, maybe those docs should be better indexed here or maybe I'm just dumb that's why I didn't find it

It is two clicks from there, both prominently located - "Documentation" in the sidebar menu takes you to the MM:S wiki index, and the installation guide is the first thing linked at the top of that page.