[MSCTFIME][MSUTB][SHDOCVW] Remove __cxa_pure_virtual

Instead link to cpprt. This fixes build with GCC 13, which generates symbols that conflict with __cxa_pure_virtual, if there is a pure virtual function in a vtable. Importing __cxa_pure_virtual from a library works for all versions of GCC.
This commit is contained in:
Timo Kreuzer 2024-10-19 14:30:55 +03:00
parent 81b8d07acd
commit 678aa63b3a
7 changed files with 5 additions and 22 deletions

View File

@ -20,7 +20,7 @@ add_library(msctfime MODULE
${CMAKE_CURRENT_BINARY_DIR}/msctfime.def)
set_module_type(msctfime win32dll UNICODE)
set_target_properties(msctfime PROPERTIES SUFFIX ".ime")
target_link_libraries(msctfime wine uuid cicero)
target_link_libraries(msctfime cpprt wine uuid cicero)
add_importlibs(msctfime user32 gdi32 advapi32 msvcrt kernel32 ntdll)
add_delay_importlibs(msctfime uxtheme shlwapi comctl32 msctf oleaut32 imm32)
add_cd_file(TARGET msctfime DESTINATION reactos/system32 FOR all)

View File

@ -17,11 +17,6 @@ BOOL gfTFInitLib = FALSE;
CRITICAL_SECTION g_csLock;
CDispAttrPropCache *g_pPropCache = NULL;
EXTERN_C void __cxa_pure_virtual(void)
{
ERR("__cxa_pure_virtual\n");
}
/// Selects or unselects the input context.
/// @implemented
static HRESULT

View File

@ -13,7 +13,7 @@ add_library(msutb MODULE
${CMAKE_CURRENT_BINARY_DIR}/msutb.def)
set_module_type(msutb win32dll UNICODE)
add_dependencies(msutb msctf psdk)
target_link_libraries(msutb wine uuid atl_classes cicero)
target_link_libraries(msutb cpprt wine uuid atl_classes cicero)
add_importlibs(msutb user32 gdi32 advapi32 msvcrt kernel32 ntdll)
add_delay_importlibs(msutb uxtheme imm32 shlwapi comctl32 msctf ole32 oleacc oleaut32 shell32)
add_cd_file(TARGET msutb DESTINATION reactos/system32 FOR all)

View File

@ -81,11 +81,6 @@ BOOL g_fRTL = FALSE;
#define TIMER_ID_DOACCDEFAULTACTION 11
EXTERN_C void __cxa_pure_virtual(void)
{
ERR("__cxa_pure_virtual\n");
}
class CMsUtbModule : public CComModule
{
};
@ -1188,7 +1183,7 @@ protected:
public:
CButtonIconItem(CTrayIconWnd *pWnd, DWORD dwUnknown24);
STDMETHOD_(BOOL, OnMsg)(WPARAM wParam, LPARAM lParam) override;
STDMETHOD_(BOOL, OnDelayMsg)(UINT uMsg) override;
};
@ -1581,7 +1576,7 @@ public:
void StartModalInput(ITfLangBarEventSink *pSink, DWORD dwThreadId);
void StopModalInput(DWORD dwThreadId);
CTipbarThread *_CreateThread(DWORD dwThreadId);
CTipbarThread *_FindThread(DWORD dwThreadId);
void EnsureFocusThread();

View File

@ -24,7 +24,7 @@ target_include_directories(shdocvw BEFORE PRIVATE
)
set_module_type(shdocvw win32dll UNICODE)
target_link_libraries(shdocvw uuid wine)
target_link_libraries(shdocvw cpprt uuid wine)
add_delay_importlibs(shdocvw shell32 user32 gdi32 ole32 oleaut32 ieframe)
add_importlibs(shdocvw shlwapi advapi32 msvcrt comctl32 kernel32 ntdll)
add_dependencies(shdocvw stdole2)

View File

@ -25,12 +25,6 @@ void operator delete(void *ptr, size_t size)
::LocalFree(ptr);
}
EXTERN_C void __cxa_pure_virtual(void)
{
ERR("__cxa_pure_virtual\n");
::DebugBreak();
}
BEGIN_OBJECT_MAP(ObjectMap)
OBJECT_ENTRY(CLSID_SH_FavBand, CFavBand)
OBJECT_ENTRY(CLSID_ExplorerBand, CExplorerBand)

View File

@ -32,7 +32,6 @@
void *operator new(size_t size);
void operator delete(void *ptr);
void operator delete(void *ptr, size_t size);
EXTERN_C void __cxa_pure_virtual(void);
#endif /* def C++ */
EXTERN_C VOID SHDOCVW_Init(HINSTANCE hInstance);