It seems that you're using an outdated browser. Some things may not work as they should (or don't work at all).
We suggest you upgrade newer and better browser like: Chrome, Firefox, Internet Explorer or Opera

×
Okay, so, ever since I first got access to Galaxy I've had the problem that before launch I get two error messages from the updater stating that libgcc_s_sjlj-1.dll is missing. Curiously the updater still manages to update Galaxy and the client itself also functions normally. I reported this issue and everything but it occurred to me that Galaxy is not the only application with this problem on my system. And I get it in case of applications that work perfectly fine for everyone else, apparently.

So, does anybody know what this library is, where you should normally get it from etc.? I googled a bit a while ago and all information I found was about bad compiler settings etc., obviously not something that should concern an end user. I tried downloading SDKs and stuff which should contain this DLL but oddly enough did not.

Eventually I grew so frustrated that I downloaded the DLL individually from some website that seemed rather legit (don't remember which one it was exactly, though) and luckily nothing bad has happened on my system yet but we all know that that's not what you should do in case of missing DLLs.

Anyway, so anybody have an idea where I should get this DLL from or why it is missing from my system while it seems to be a perfectly common file?
This question / problem has been solved by mc.jesusimage
Never seen that particular dll before...

I'm somehow reminded that cygwin environments will require cygwin1.dll even if you don't use anything in it. Compiling the code to ignore the dll, or to include it as statically compiled code would remove the problem.
It's a runtime support library for C++ programs compiled by GCC. Many linux binaries depend on similar lib (libgcc_s.so.1), and I know that this exact library is required by one of my programs that I needed to build for windows, using mingw crosscompiler. It may be required by Cygwin programs too, not sure.

As programs can't function with unresolved dlls, I would guess the message is from some incorrectly installed third party software, not Galaxy. Some antivirus, or installation monitor (or malware), triggered by the updater.
avatar
huan: As programs can't function with unresolved dlls, I would guess the message is from some incorrectly installed third party software, not Galaxy. Some antivirus, or installation monitor (or malware), triggered by the updater.
But to my understanding putting the DLL in the GalaxyUpdater folder would not have eliminated the error if that were the case (which it did). Also the message specifically states that it's GalaxyUpdater.exe that's encountering the problem. Weird stuff.
avatar
rtcvb32: or to include it as statically compiled code would remove the problem.
Yeah, that's why my buddy did when a program he wrote wouldn't work on my system. It's hardly a solution, though. As I said, I keep encountering the error with numerous applications that the vast majority of users don't seem to have any issues with. I can hardly ask all the different developers to link the library in their programs, especially if the majority of users don't have the problem.
Post edited November 16, 2015 by F4LL0UT
avatar
F4LL0UT: But to my understanding putting the DLL in the GalaxyUpdater folder would not have eliminated the error if that were the case (which it did). Also the message specifically states that it's GalaxyUpdater.exe that's encountering the problem. Weird stuff.
I agree, weird stuff. But I just did search on my whole system. I found this library in only one place:

c:\Users\<my profile>\AppData\Local\Template\par-636c6f7564\cache-238d3945db40d84057f78ab29c40717a30020647\libgcc_s_sjlj -1.dll

The rest of the folder suggests it's some stuff from tes3cmd, and indeed, when I delete it and run tes3cmd, it is recreated. Galaxy and everything else starts fine with the whole par-* folder deleted.

Messing with DLL's always includes some amount of black magic. I can imagine one scenario:
- some registry key says "inject malware.dll into any executable that is run"
- malware.dll itself depends on libgcc_s_sjlj-1.dll

This way, the message would probably say "GalaxyUpdater.exe", be fixed by putting the library into GalaxyUpdater folder - and still be caused by some other software. And maybe windows kernel is intelligent enough to still run the original binary, even if the injection fails. Of course this is purely theoretical, I'm not even sure it's possible on windows, I use it mostly as gaming station and don't poke at the internals if I can avoid it. On linux something like this would be very easy with LD_PRELOAD environment variable.

The fact is that my system (win7 64) runs fine without it, Galaxy included.

Edit: looks like this is possible on Windows, just not as easy as with LD_PRELOAD. (stackoverflow.com)
Post edited November 16, 2015 by huan
avatar
rtcvb32: or to include it as statically compiled code would remove the problem.
avatar
F4LL0UT: Yeah, that's why my buddy did when a program he wrote wouldn't work on my system. It's hardly a solution, though. As I said, I keep encountering the error with numerous applications that the vast majority of users don't seem to have any issues with. I can hardly ask all the different developers to link the library in their programs, especially if the majority of users don't have the problem.
I'm trying to recall... Something Linus Torvalds said, was in order to maintain compatibility with all versions OSes using linux and versions of libraries, is to statically link everything to every program.

A lot of system designers hate that idea because you have to include a good amount of code in every program that's heavily reused, and if there's a bug in the library that gets fixed, it retroactively updates every program that uses a shared library...

But then there's the other side of the coin. If the public API changes, it breaks code, if a bug is removed that the program relied on, it breaks code.

And when code breaks, and Linus can't watch youtube videos with kittens, it makes him very sad..
I had this issue after doing a repair install of Windows 7, and after several hours of Google and head scratching I managed to fix it on my own.

Here are the steps I followed:

(These steps are probably not required, but can't hurt)
- Open a command prompt with Administrator privileges and enter 'sc delete GalaxyClientService' without the (')s.
- Uninstall GoG Galaxy
- Reinstall GoG Galaxy

(These steps are required)
- Make sure the GoG Galaxy client is not running
- Open Task Manager
- Click on Services Tab
- Click on the "Services..." button
- Find the Service named GalaxyCommunication
- Right Click on it and Click on Properties
- Open the Drop Down Menu next to "Startup type:"
- Select "Automatic (Delayed Start)"
- Click the "Apply" button, then the "OK" button
- Close everything and reboot, just to be safe

Follow these steps and GoG Galaxy should no longer assault you with those pesky error messages every time it launches.
avatar
huan: It's a runtime support library for C++ programs compiled by GCC. Many linux binaries depend on similar lib (libgcc_s.so.1), and I know that this exact library is required by one of my programs that I needed to build for windows, using mingw crosscompiler. It may be required by Cygwin programs too, not sure.

As programs can't function with unresolved dlls, I would guess the message is from some incorrectly installed third party software, not Galaxy. Some antivirus, or installation monitor (or malware), triggered by the updater.
Strictly speaking, on Linux a program can make a .so optional by calling dlopen(3) instead of linking directly to the library, and I am pretty sure Windows has equivalent functionality.
avatar
huan: It's a runtime support library for C++ programs compiled by GCC. Many linux binaries depend on similar lib (libgcc_s.so.1), and I know that this exact library is required by one of my programs that I needed to build for windows, using mingw crosscompiler. It may be required by Cygwin programs too, not sure.

As programs can't function with unresolved dlls, I would guess the message is from some incorrectly installed third party software, not Galaxy. Some antivirus, or installation monitor (or malware), triggered by the updater.
avatar
dtgreene: Strictly speaking, on Linux a program can make a .so optional by calling dlopen(3) instead of linking directly to the library, and I am pretty sure Windows has equivalent functionality.
I believe that in this case, the problem is that GOG is trying to use software that depends upon that library and the runtime isn't able to run without it. So, there's not really anything that GOG could do about that as there's things in the runttime that the software really needs.

I'm in a similar position to the OP, but I know the reason that I'm getting that error is that the runtime froze before completing, so it didn't get fully installed and Galaxy can't be installed until it's fixed.
avatar
mc.jesus: Here are the steps I followed:
Thanks for this. Funnily enough the forced update to Windows 10 I received just a couple of days ago fixed the issue for me so I can't confirm your solution works but I'm presuming that it does and marking it as a solution.