Martin Storsjö (@mstorsjo) commented about dlls/vcruntime140/new.cpp:
+// This file is dual licensed under the MIT and the University of Illinois Open +// Source Licenses. See LICENSE.TXT for details. +// +// +// This file implements the new and delete operators. +//===----------------------------------------------------------------------===// + +#include <new.h> +#include <vcruntime_exception.h> +#include <malloc.h> + +#if 0 +#pragma makedep implib +#endif + +void *operator new(size_t size) How does this change work, with respect to the external ABI of the DLLs? I see that msvcrt already exports e.g. `??_U@YAPEAX_K@Z` based on the implementation in `operator_new`, providing the MSVC C++ ABI interface, regardless of the build mode of the wine source. But if I understand this correctly, for vcruntime140, the operator new symbols are always linked statically - and this implementation matches the C++ ABI mode (mingw or msvc) of the PE build, suitable for static linking into the other PE build DLLs, but not visible on the external ABI surfaces. Is that the correct understanding? :-)
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/10273#note_131575