Page 1 of 1

[SOLVED 0.17.4] [0.17] Dyld Error Message: Symbol not found: _typeinfo for std::bad_variant_access

Posted: Wed Feb 27, 2019 8:55 am
by SupplyDepoo
I get this error message when I open factorio 0.17:

Image

Here's the report: https://pastebin.com/raw/5sQYV4VY

I remember there were similar problems when you released 0.16, and posila managed to fix it eventually. I know there was talk at some point later about dropping support for Mavericks with the rendering engine update, and I suspect this is what's happened, but the download page still says 'compatible with Mavericks', so I'm not sure.

I mentally prepared for this eventuality, and I started shopping for a new computer already, just looking for confirmation.

Re: [0.17] Dyld Error Message: Symbol not found: __ZTISt18bad_variant_access

Posted: Wed Feb 27, 2019 9:40 pm
by haberslam
This is happening for me as well for 0.17.2.
I'm running OS X Sierra 12.6



Termination Reason: DYLD, [0x4] Symbol missing

Application Specific Information:
dyld: launch, loading dependent libraries

Dyld Error Message:
Symbol not found: __ZTISt18bad_variant_access
Referenced from: /Applications/Games/factorio.app/Contents/MacOS/factorio
Expected in: /usr/lib/libc++.1.dylib
in /Applications/Games/factorio.app/Contents/MacOS/factorio

Model: MacBookPro14,3, BootROM MBP143.0178.B00, 4 processors, Intel Core i7, 2.8 GHz, 16 GB, SMC 2.45f0
Graphics: kHW_AMDRadeonPro555Item, Radeon Pro 555, PCIe, 2048 MB
Graphics: kHW_IntelHDGraphics630Item, Intel HD Graphics 630, Built-In
Memory Module: BANK 0/DIMM0, 8 GB, LPDDR3, 2133 MHz, 0x802C
Memory Module: BANK 1/DIMM0, 8 GB, LPDDR3, 2133 MHz, 0x802C

Re: [0.17] Dyld Error Message: Symbol not found: __ZTISt18bad_variant_access

Posted: Thu Feb 28, 2019 9:01 pm
by haberslam
Same error as before comes up for the downloaded dmg for 0.17.3

Mac OS X 12.6

Re: [0.17] Dyld Error Message: Symbol not found: __ZTISt18bad_variant_access

Posted: Thu Feb 28, 2019 9:51 pm
by Uthrom
Did some digging around, and found the following on Reddit:

https://www.reddit.com/r/factorio/comme ... t/ehc4ucf/
According to this https://stackoverflow.com/questions/523 ... t/53868971 post the missing symbol (__ZTISt18bad_variant_access) is only available with MacOS 10.14+
All std::variant functionality that might throw std::bad_variant_access is marked as available starting with macOS 10.14 (and corresponding iOS, tvOS and watchOS) in the standard header files. This is because the virtual std::bad_variant_access::what() method is not inline and thus defined in the libc++.dylib (provided by the OS).

However, you can suppress the availability compiler error by adding _LIBCPP_DISABLE_AVAILABILITY to the Preprocessor Macros ( GCC_PREPROCESSOR_DEFINITIONS) in the project settings. It turns out that it already works in High Sierra, not only Mojave (I've tested down to 10.13.0). Note that this will also suppress other availability guards (shared_mutex, bad_optional_access etc.).

It seems to be possible to make it work with 10.13.0, if the developers recompile with the mentioned pre-processor constant.

Re: [0.17] Dyld Error Message: Symbol not found: _typeinfo for std::bad_variant_access

Posted: Thu Feb 28, 2019 11:24 pm
by SupplyDepoo
I won't install anymore updates on this computer, but luckily I'm getting a new computer in a couple weeks. It'd be cool if I could play 0.17 before then, and based on that StackOverflow answer it sounds like this specific error could be fixed, but I suspect there are many more errors lying in wait behind this one that the devs probably don't want to take on. At least the download page should be corrected, though.

Re: [0.17] Dyld Error Message: Symbol not found: _typeinfo for std::bad_variant_access

Posted: Fri Mar 01, 2019 7:29 pm
by haberslam
You guys are spectacular. 0.17.4 launched without errors.

Mac OSX Sierra 12.6

Re: [0.17] Dyld Error Message: Symbol not found: _typeinfo for std::bad_variant_access

Posted: Fri Mar 01, 2019 10:34 pm
by SupplyDepoo
Wow, you're right. I can launch the game now. But I get a crash at the end of the loading screen – I made a new thread for it.