On Ubuntu 14.04, building the engine with UE4_LINUX_USE_LIBCXX=0 causes the following crash, including stack trace. This environment variable is described in LinuxToolChain.cs.
libUE4Editor-ShaderFormatOpenGL.so: undefined symbol:
Should I expect it to just work? Any suggestions?
ldd
sgundry@sgundry-7510:~/UnrealEngine$ ldd /home/sgundry/UnrealEngine/Engine/Binaries/Linux/libUE4Editor-ShaderFormatOpenGL.so
linux-vdso.so.1 => (0x00007fff07ff6000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fa08b779000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fa08b575000)
libUE4Editor-Core.so => /home/sgundry/UnrealEngine/Engine/Binaries/Linux/libUE4Editor-Core.so (0x00007fa08a3c2000)
libUE4Editor-ShaderCore.so => /home/sgundry/UnrealEngine/Engine/Binaries/Linux/libUE4Editor-ShaderCore.so (0x00007fa08a0de000)
libUE4Editor-ShaderCompilerCommon.so => /home/sgundry/UnrealEngine/Engine/Binaries/Linux/libUE4Editor-ShaderCompilerCommon.so (0x00007fa089e7e000)
libUE4Editor-ShaderPreprocessor.so => /home/sgundry/UnrealEngine/Engine/Binaries/Linux/libUE4Editor-ShaderPreprocessor.so (0x00007fa089be3000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fa0898dc000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fa0895d8000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fa0893c2000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fa088ffc000)
/lib64/ld-linux-x86-64.so.2 (0x000056140ba6b000)
librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007fa088df4000)
libUE4Editor-RHI.so => /home/sgundry/UnrealEngine/Engine/Binaries/Linux/libUE4Editor-RHI.so (0x00007fa088b52000)
libUE4Editor-RenderCore.so => /home/sgundry/UnrealEngine/Engine/Binaries/Linux/libUE4Editor-RenderCore.so (0x00007fa0888f9000)
Error
[2017.03.21-22.37.49:384][ 0]LogLinux:Warning: dlopen failed: /home/sgundry/UnrealEngine/Engine/Binaries/Linux/libUE4Editor-ShaderFormatOpenGL.so: undefined symbol: _ZTINSt3__114basic_iostreamIcNS_11char_traitsIcEEEE
[2017.03.21-22.37.49:384][ 0]LogModuleManager:Warning: ModuleManager: Unable to load module '/home/sgundry/UnrealEngine/Engine/Binaries/Linux/libUE4Editor-ShaderFormatOpenGL.so' because the file couldn't be loaded by the OS.
Assertion failed: Result [File:/home/sgundry/UnrealEngine/Engine/Source/Developer/TargetPlatform/Private/TargetPlatformManagerModule.cpp] [Line: 479]
[Callstack] 00 0x00007ffff6e23b0f FLinuxPlatformStackWalk::CaptureStackBackTrace(unsigned long long*, unsigned int, void*)
[Callstack] 01 0x00007ffff6cfc505 FGenericPlatformStackWalk::StackWalkAndDump(char*, unsigned long, int, void*)
[Callstack] 02 0x00007ffff6e079b3 FLinuxPlatformStackWalk::StackWalkAndDump(char*, unsigned long, int, void*)
[Callstack] 03 0x00007ffff6e4577c FDebug::LogAssertFailedMessage(char const*, char const*, int, wchar_t const*, ...)
[Callstack] 04 0x00007fffe3886775 FTargetPlatformManagerModule::ShaderFormatVersion(FName)
[Callstack] 05 0x00007ffff2dff5da GetGlobalShaderMapKeyString(FGlobalShaderMapId const&, EShaderPlatform)
[Callstack] 06 0x00007ffff2dfda14 GetGlobalShaderMap(EShaderPlatform, bool)
[Callstack] 07 0x0000000000419d8e FEngineLoop::PreInit(wchar_t const*) [/home/sgundry/UnrealEngine/Engine/Source/Runtime/Launch/Private/LaunchEngineLoop.cpp, line 1539]
[Callstack] 08 0x000000000042a8d8 GuardedMain(wchar_t const*) [/home/sgundry/UnrealEngine/Engine/Source/Runtime/Launch/Private/Launch.cpp, line 28]
[Callstack] 09 0x00007fffebe70487 CommonLinuxMain(int, char**, int (*)(wchar_t const*))
[Callstack] 10 0x00007fffeb3a7f45 /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5) [0x7fffeb3a7f45]
[Callstack] 11 0x0000000000415696 /home/sgundry/UnrealEngine/Engine/Binaries/Linux/UE4Editor() [0x415696]
Stack Trace
Program received signal SIGTRAP, Trace/breakpoint trap.
0x00007ffff7bcc1fb in raise (sig=5) at ../nptl/sysdeps/unix/sysv/linux/pt-raise.c:37
37 ../nptl/sysdeps/unix/sysv/linux/pt-raise.c: No such file or directory.
(gdb) bt
#0 0x00007ffff7bcc1fb in raise (sig=5) at ../nptl/sysdeps/unix/sysv/linux/pt-raise.c:37
#1 0x00007fffe3886792 in DebugBreak () at Runtime/Core/Public/Linux/LinuxPlatformMisc.h:38
#2 FTargetPlatformManagerModule::ShaderFormatVersion (this=<optimized out>, Name=...) at /home/sgundry/UnrealEngine/Engine/Source/Developer/TargetPlatform/Private/TargetPlatformManagerModule.cpp:479
#3 0x00007ffff2dff5da in GetGlobalShaderMapKeyString (ShaderMapId=..., Platform=SP_OPENGL_SM4) at /home/sgundry/UnrealEngine/Engine/Source/Runtime/Engine/Private/GlobalShader.cpp:507
#4 0x00007ffff2dfda14 in GetGlobalShaderMap (Platform=<optimized out>, bRefreshShaderMap=<optimized out>) at /home/sgundry/UnrealEngine/Engine/Source/Runtime/Engine/Private/GlobalShader.cpp:607
#5 0x0000000000419d8e in GetGlobalShaderMap (bRefreshShaderMap=false, FeatureLevel=<optimized out>) at Runtime/Engine/Public/GlobalShader.h:207
#6 FEngineLoop::PreInit (this=<optimized out>, CmdLine=<optimized out>) at /home/sgundry/UnrealEngine/Engine/Source/Runtime/Launch/Private/LaunchEngineLoop.cpp:1539
#7 0x000000000042a8d8 in EnginePreInit (CmdLine=0x7fffebe713dc L"") at /home/sgundry/UnrealEngine/Engine/Source/Runtime/Launch/Private/Launch.cpp:28
#8 GuardedMain (CmdLine=0x1752 <error: Cannot access memory at address 0x1752>) at /home/sgundry/UnrealEngine/Engine/Source/Runtime/Launch/Private/Launch.cpp:113
#9 0x00007fffebe70487 in CommonLinuxMain (argc=<optimized out>, argv=<optimized out>, RealMain=<optimized out>) at /home/sgundry/UnrealEngine/Engine/Source/Runtime/Linux/LinuxCommonStartup/Private/LinuxCommonStartup.cpp:231
#10 0x00007fffeb3a7f45 in __libc_start_main (main=0x4345f0 <main(int, char**)>, argc=1, argv=0x7fffffffd8f8, init=<optimized out>, fini=<optimized out>, rtld_fini=<optimized out>, stack_end=0x7fffffffd8e8) at libc-start.c:287
#11 0x0000000000415696 in _start ()