I would like to learn more about reproducing this error, preferably with stock engine and the smallest change; this may lead us to solution for a long standing problem we have with some third party C++ libs. Also, could you please paste the commandline that results in the error message?
While I don’t have a solution for you, I’ll describe what you may want to try:
-
Global operator new and delete are defined in each Unreal module (see ModuleBoilerplate.h). You may try to stop overriding them if you want to unblock yourself, but notice that you will be bypassing our malloc for most allocations and the engine memory footprint may change.
-
All new/delete symbols are made local in a linker version script (see LinuxToolChain.cs). You may want to stop doing this.
-
Finally, compilation with libc++ can be changed from static to dynamic linking (or to libstdc++). Again, you’d need to modify LinuxToolChain.cs
It is definitely puzzling that operator delete is being referenced from another DSO; I would expect every engine module or plugin to instead use its own version of new/delete from module boilerplate macros.