Skip to content

Commit 678aa63

Browse files
committed
[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.
1 parent 81b8d07 commit 678aa63

File tree

7 files changed

+5
-22
lines changed

7 files changed

+5
-22
lines changed

dll/ime/msctfime/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ add_library(msctfime MODULE
2020
${CMAKE_CURRENT_BINARY_DIR}/msctfime.def)
2121
set_module_type(msctfime win32dll UNICODE)
2222
set_target_properties(msctfime PROPERTIES SUFFIX ".ime")
23-
target_link_libraries(msctfime wine uuid cicero)
23+
target_link_libraries(msctfime cpprt wine uuid cicero)
2424
add_importlibs(msctfime user32 gdi32 advapi32 msvcrt kernel32 ntdll)
2525
add_delay_importlibs(msctfime uxtheme shlwapi comctl32 msctf oleaut32 imm32)
2626
add_cd_file(TARGET msctfime DESTINATION reactos/system32 FOR all)

dll/ime/msctfime/msctfime.cpp

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,6 @@ BOOL gfTFInitLib = FALSE;
1717
CRITICAL_SECTION g_csLock;
1818
CDispAttrPropCache *g_pPropCache = NULL;
1919

20-
EXTERN_C void __cxa_pure_virtual(void)
21-
{
22-
ERR("__cxa_pure_virtual\n");
23-
}
24-
2520
/// Selects or unselects the input context.
2621
/// @implemented
2722
static HRESULT

dll/win32/msutb/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ add_library(msutb MODULE
1313
${CMAKE_CURRENT_BINARY_DIR}/msutb.def)
1414
set_module_type(msutb win32dll UNICODE)
1515
add_dependencies(msutb msctf psdk)
16-
target_link_libraries(msutb wine uuid atl_classes cicero)
16+
target_link_libraries(msutb cpprt wine uuid atl_classes cicero)
1717
add_importlibs(msutb user32 gdi32 advapi32 msvcrt kernel32 ntdll)
1818
add_delay_importlibs(msutb uxtheme imm32 shlwapi comctl32 msctf ole32 oleacc oleaut32 shell32)
1919
add_cd_file(TARGET msutb DESTINATION reactos/system32 FOR all)

dll/win32/msutb/msutb.cpp

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -81,11 +81,6 @@ BOOL g_fRTL = FALSE;
8181

8282
#define TIMER_ID_DOACCDEFAULTACTION 11
8383

84-
EXTERN_C void __cxa_pure_virtual(void)
85-
{
86-
ERR("__cxa_pure_virtual\n");
87-
}
88-
8984
class CMsUtbModule : public CComModule
9085
{
9186
};
@@ -1188,7 +1183,7 @@ class CButtonIconItem : public CTrayIconItem
11881183

11891184
public:
11901185
CButtonIconItem(CTrayIconWnd *pWnd, DWORD dwUnknown24);
1191-
1186+
11921187
STDMETHOD_(BOOL, OnMsg)(WPARAM wParam, LPARAM lParam) override;
11931188
STDMETHOD_(BOOL, OnDelayMsg)(UINT uMsg) override;
11941189
};
@@ -1581,7 +1576,7 @@ class CTipbarWnd
15811576

15821577
void StartModalInput(ITfLangBarEventSink *pSink, DWORD dwThreadId);
15831578
void StopModalInput(DWORD dwThreadId);
1584-
1579+
15851580
CTipbarThread *_CreateThread(DWORD dwThreadId);
15861581
CTipbarThread *_FindThread(DWORD dwThreadId);
15871582
void EnsureFocusThread();

dll/win32/shdocvw/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ target_include_directories(shdocvw BEFORE PRIVATE
2424
)
2525

2626
set_module_type(shdocvw win32dll UNICODE)
27-
target_link_libraries(shdocvw uuid wine)
27+
target_link_libraries(shdocvw cpprt uuid wine)
2828
add_delay_importlibs(shdocvw shell32 user32 gdi32 ole32 oleaut32 ieframe)
2929
add_importlibs(shdocvw shlwapi advapi32 msvcrt comctl32 kernel32 ntdll)
3030
add_dependencies(shdocvw stdole2)

dll/win32/shdocvw/objects.cpp

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,6 @@ void operator delete(void *ptr, size_t size)
2525
::LocalFree(ptr);
2626
}
2727

28-
EXTERN_C void __cxa_pure_virtual(void)
29-
{
30-
ERR("__cxa_pure_virtual\n");
31-
::DebugBreak();
32-
}
33-
3428
BEGIN_OBJECT_MAP(ObjectMap)
3529
OBJECT_ENTRY(CLSID_SH_FavBand, CFavBand)
3630
OBJECT_ENTRY(CLSID_ExplorerBand, CExplorerBand)

dll/win32/shdocvw/objects.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@
3232
void *operator new(size_t size);
3333
void operator delete(void *ptr);
3434
void operator delete(void *ptr, size_t size);
35-
EXTERN_C void __cxa_pure_virtual(void);
3635
#endif /* def C++ */
3736

3837
EXTERN_C VOID SHDOCVW_Init(HINSTANCE hInstance);

0 commit comments

Comments
 (0)