From 07de64139a83dc692cc1a22affeff0473665c472 Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Mon, 26 Jan 2026 17:42:52 +0200 Subject: [PATCH] [GCC_SSP] Turn the GCC stack protector lib into a normal library Stop pointless target_sources(xxx PRIVATE $). The only effect it has is to force the object file into the target, which was already done by specifying the libraries as OBJECT libraries, which is also pointless, and only leads to problems. --- boot/environ/CMakeLists.txt | 4 ++-- boot/freeldr/freeldr/pcat.cmake | 2 +- boot/freeldr/freeldr/rosload.cmake | 2 +- boot/freeldr/freeldr/uefi.cmake | 2 +- dll/ntdll/CMakeLists.txt | 6 +++--- dll/win32/msvcrt/CMakeLists.txt | 4 ++-- drivers/storage/port/scsiport/CMakeLists.txt | 4 ++-- ntoskrnl/CMakeLists.txt | 6 +++--- ntoskrnl/ntkrnlmp/CMakeLists.txt | 2 +- sdk/lib/gcc_ssp/CMakeLists.txt | 10 +++++----- win32ss/CMakeLists.txt | 4 ++-- win32ss/drivers/videoprt/CMakeLists.txt | 4 ++-- 12 files changed, 25 insertions(+), 25 deletions(-) diff --git a/boot/environ/CMakeLists.txt b/boot/environ/CMakeLists.txt index 5406e4f7f08..922271d1d8b 100644 --- a/boot/environ/CMakeLists.txt +++ b/boot/environ/CMakeLists.txt @@ -105,7 +105,7 @@ target_link_libraries(bootmgfw bootlib cportlib blcmlib blrtl libcntpr) # dynamic analysis switches if(STACK_PROTECTOR) - target_sources(bootmgfw PRIVATE $) + target_link_libraries(bootmgfw gcc_ssp_nt) endif() if(RUNTIME_CHECKS) @@ -153,7 +153,7 @@ target_link_libraries(rosload bootlib cportlib blcmlib blrtl libcntpr) # dynamic analysis switches if(STACK_PROTECTOR) - target_sources(rosload PRIVATE $) + target_link_libraries(rosload gcc_ssp_nt) endif() if(RUNTIME_CHECKS) diff --git a/boot/freeldr/freeldr/pcat.cmake b/boot/freeldr/freeldr/pcat.cmake index 9d6915b6469..2b973a2af2a 100644 --- a/boot/freeldr/freeldr/pcat.cmake +++ b/boot/freeldr/freeldr/pcat.cmake @@ -228,7 +228,7 @@ target_link_libraries(freeldr_pe freeldr_common cportlib libcntpr blrtl) # dynamic analysis switches if(STACK_PROTECTOR) - target_sources(freeldr_pe PRIVATE $) + target_link_libraries(freeldr_pe gcc_ssp_nt) endif() if(RUNTIME_CHECKS) diff --git a/boot/freeldr/freeldr/rosload.cmake b/boot/freeldr/freeldr/rosload.cmake index 1b077c47d1a..1a1e8ec8164 100644 --- a/boot/freeldr/freeldr/rosload.cmake +++ b/boot/freeldr/freeldr/rosload.cmake @@ -87,7 +87,7 @@ add_importlibs(rosload freeldr) # dynamic analysis switches if(STACK_PROTECTOR) - target_sources(rosload PRIVATE $) + target_link_libraries(rosload gcc_ssp_nt) endif() if(RUNTIME_CHECKS) diff --git a/boot/freeldr/freeldr/uefi.cmake b/boot/freeldr/freeldr/uefi.cmake index ad5d19235d8..1800d9509f5 100644 --- a/boot/freeldr/freeldr/uefi.cmake +++ b/boot/freeldr/freeldr/uefi.cmake @@ -140,7 +140,7 @@ target_link_libraries(uefildr uefifreeldr_common cportlib blcmlib blrtl libcntpr # dynamic analysis switches if(STACK_PROTECTOR) - target_sources(uefildr PRIVATE $) + target_link_libraries(uefildr gcc_ssp_nt) endif() if(RUNTIME_CHECKS) diff --git a/dll/ntdll/CMakeLists.txt b/dll/ntdll/CMakeLists.txt index e99ae40fe62..265c70ce1cc 100644 --- a/dll/ntdll/CMakeLists.txt +++ b/dll/ntdll/CMakeLists.txt @@ -3,9 +3,9 @@ add_subdirectory(nt_0600) spec2def(ntdll.dll def/ntdll.spec ADD_IMPORTLIB) -# Embed RTC libs +# Link GCC stack protector lib if (STACK_PROTECTOR) - target_sources(libntdll PRIVATE $) + target_link_libraries(libntdll INTERFACE gcc_ssp_nt) endif() add_definitions( @@ -71,7 +71,7 @@ if(DLL_EXPORT_VERSION GREATER_EQUAL 0x600) endif() if (STACK_PROTECTOR) - target_sources(ntdll PRIVATE $) + target_link_libraries(ntdll gcc_ssp_nt) endif() add_pch(ntdll include/ntdll.h "${PCH_SKIP_SOURCE}") diff --git a/dll/win32/msvcrt/CMakeLists.txt b/dll/win32/msvcrt/CMakeLists.txt index 193341cdcc4..e247db75933 100644 --- a/dll/win32/msvcrt/CMakeLists.txt +++ b/dll/win32/msvcrt/CMakeLists.txt @@ -207,8 +207,8 @@ target_compile_definitions(libmsvcrt INTERFACE _DLL __USE_CRTIMP) # Embed msvcrtex into libmsvcrt target_sources(libmsvcrt PRIVATE $) -# Embed RTC libs +# Link GCC stack protector lib if (STACK_PROTECTOR) - target_sources(libmsvcrt PRIVATE $) + target_link_libraries(libmsvcrt INTERFACE gcc_ssp_msvcrt) target_link_libraries(libmsvcrt INTERFACE libkernel32) # For OutputDebugStringA endif() diff --git a/drivers/storage/port/scsiport/CMakeLists.txt b/drivers/storage/port/scsiport/CMakeLists.txt index 8a5fcbdfadc..76383621109 100644 --- a/drivers/storage/port/scsiport/CMakeLists.txt +++ b/drivers/storage/port/scsiport/CMakeLists.txt @@ -4,9 +4,9 @@ spec2def(scsiport.sys scsiport.spec ADD_IMPORTLIB) include_directories( ${REACTOS_SOURCE_DIR}/sdk/lib/drivers/sptilib) -# Embed RTC libs +# Link GCC stack protector lib if (STACK_PROTECTOR) - target_sources(libscsiport PRIVATE $) + target_link_libraries(libscsiport INTERFACE gcc_ssp_scsiport) endif() list(APPEND SOURCE diff --git a/ntoskrnl/CMakeLists.txt b/ntoskrnl/CMakeLists.txt index a40a08a7d7a..c583ac4b32f 100644 --- a/ntoskrnl/CMakeLists.txt +++ b/ntoskrnl/CMakeLists.txt @@ -16,9 +16,9 @@ set(NTKRNLMP_ASM_SOURCE ${ASM_SOURCE}) spec2def(ntoskrnl.exe ntoskrnl.spec ADD_IMPORTLIB) -# Embed RTC libs +# Link GCC stack protector lib if (STACK_PROTECTOR) - target_sources(libntoskrnl PRIVATE $) + target_link_libraries(libntoskrnl INTERFACE gcc_ssp_nt) endif() add_asm_files(ntoskrnl_asm ${NTOSKRNL_ASM_SOURCE}) @@ -49,7 +49,7 @@ source_group(TREE ${REACTOS_SOURCE_DIR}/ntoskrnl PREFIX "Source Files" FILES ${N target_link_libraries(ntoskrnl ntoskrnl_vista cportlib csq ${PSEH_LIB} arbiter cmlib ntlsalib rtl ${ROSSYM_LIB} libcntpr setjmp wdmguid poguid ioevent) if(STACK_PROTECTOR) - target_sources(ntoskrnl PRIVATE $) + target_link_libraries(ntoskrnl gcc_ssp_nt) endif() add_importlibs(ntoskrnl hal kdcom bootvid) diff --git a/ntoskrnl/ntkrnlmp/CMakeLists.txt b/ntoskrnl/ntkrnlmp/CMakeLists.txt index 77f242726b1..6e351027c68 100644 --- a/ntoskrnl/ntkrnlmp/CMakeLists.txt +++ b/ntoskrnl/ntkrnlmp/CMakeLists.txt @@ -34,7 +34,7 @@ target_compile_definitions(ntkrnlmp PRIVATE CONFIG_SMP) # dynamic analysis switches if(STACK_PROTECTOR) - target_sources(ntkrnlmp PRIVATE $) + target_link_libraries(ntkrnlmp gcc_ssp_nt) endif() target_link_libraries(ntkrnlmp ntoskrnl_vista cportlib csq ${PSEH_LIB} arbiter cmlib ntlsalib rtl ${ROSSYM_LIB} libcntpr setjmp wdmguid poguid ioevent) diff --git a/sdk/lib/gcc_ssp/CMakeLists.txt b/sdk/lib/gcc_ssp/CMakeLists.txt index 801360716d3..ea7e0a75724 100644 --- a/sdk/lib/gcc_ssp/CMakeLists.txt +++ b/sdk/lib/gcc_ssp/CMakeLists.txt @@ -1,19 +1,19 @@ -add_library(gcc_ssp_nt OBJECT gcc_ssp.c) +add_library(gcc_ssp_nt STATIC gcc_ssp.c) add_dependencies(gcc_ssp_nt xdk) -add_library(gcc_ssp_msvcrt OBJECT gcc_ssp.c) +add_library(gcc_ssp_msvcrt STATIC gcc_ssp.c) target_compile_definitions(gcc_ssp_msvcrt PRIVATE _GCC_SSP_MSVCRT_) add_dependencies(gcc_ssp_msvcrt xdk) -add_library(gcc_ssp_win32k OBJECT gcc_ssp.c) +add_library(gcc_ssp_win32k STATIC gcc_ssp.c) target_compile_definitions(gcc_ssp_win32k PRIVATE _GCC_SSP_WIN32K_) add_dependencies(gcc_ssp_win32k xdk) -add_library(gcc_ssp_videoprt OBJECT gcc_ssp.c) +add_library(gcc_ssp_videoprt STATIC gcc_ssp.c) target_compile_definitions(gcc_ssp_videoprt PRIVATE _GCC_SSP_VIDEOPRT_) add_dependencies(gcc_ssp_videoprt xdk) -add_library(gcc_ssp_scsiport OBJECT gcc_ssp.c) +add_library(gcc_ssp_scsiport STATIC gcc_ssp.c) target_compile_definitions(gcc_ssp_scsiport PRIVATE _GCC_SSP_SCSIPORT_) add_dependencies(gcc_ssp_scsiport xdk) diff --git a/win32ss/CMakeLists.txt b/win32ss/CMakeLists.txt index b1afc451614..0697c1d5e5b 100644 --- a/win32ss/CMakeLists.txt +++ b/win32ss/CMakeLists.txt @@ -22,9 +22,9 @@ add_subdirectory(win32u) spec2def(win32k.sys win32k.spec ADD_IMPORTLIB) -# embed RTC libs +# Link GCC stack protector lib if (STACK_PROTECTOR) - target_sources(libwin32k PRIVATE $) + target_link_libraries(libwin32k INTERFACE gcc_ssp_win32k) endif() include_directories( diff --git a/win32ss/drivers/videoprt/CMakeLists.txt b/win32ss/drivers/videoprt/CMakeLists.txt index cc5a174f57f..44675f4fd3d 100644 --- a/win32ss/drivers/videoprt/CMakeLists.txt +++ b/win32ss/drivers/videoprt/CMakeLists.txt @@ -3,9 +3,9 @@ include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include) add_definitions(-D_VIDEOPORT_) spec2def(videoprt.sys videoprt.spec ADD_IMPORTLIB) -# Embed RTC libs +# Link GCC stack protector lib if (STACK_PROTECTOR) - target_sources(libvideoprt PRIVATE $) + target_link_libraries(libvideoprt INTERFACE gcc_ssp_videoprt) endif() list(APPEND SOURCE