From 48a66c29aff86d34b3bba878f575fd713bfe1fe5 Mon Sep 17 00:00:00 2001 From: Gleb Mazovetskiy Date: Sat, 23 Sep 2023 15:42:11 +0100 Subject: [PATCH] Win9x: Fix MinSizeRel and binary stripping --- CMake/platforms/mingw9x.toolchain.cmake | 4 ++++ CMake/platforms/mingwcc.toolchain.cmake | 1 + CMake/platforms/mingwcc64.toolchain.cmake | 1 + CMakeLists.txt | 3 +-- 4 files changed, 7 insertions(+), 2 deletions(-) diff --git a/CMake/platforms/mingw9x.toolchain.cmake b/CMake/platforms/mingw9x.toolchain.cmake index 66e907ea9..1ef0c0e68 100644 --- a/CMake/platforms/mingw9x.toolchain.cmake +++ b/CMake/platforms/mingw9x.toolchain.cmake @@ -10,9 +10,13 @@ list(APPEND CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "${CROSS_PREFIX}/i686-w64-min list(PREPEND CMAKE_C_STANDARD_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_LIST_DIR}/mingw9x/include") list(PREPEND CMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_LIST_DIR}/mingw9x/include") +# work around https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106103 +set(CMAKE_CXX_FLAGS_MINSIZEREL_INIT "${CMAKE_CXX_FLAGS_MINSIZEREL_INIT} -fno-declone-ctor-dtor") + SET(CMAKE_C_COMPILER "i686-w64-mingw32-gcc") SET(CMAKE_CXX_COMPILER "i686-w64-mingw32-g++") set(CMAKE_RC_COMPILER "i686-w64-mingw32-windres") +set(CMAKE_STRIP "${CROSS_PREFIX}/i686-w64-mingw32/bin/strip") set(PKG_CONFIG_EXECUTABLE "${CROSS_PREFIX}/bin/i686-w64-mingw32-pkg-config" CACHE STRING "Path to pkg-config") SET(CMAKE_FIND_ROOT_PATH "${CROSS_PREFIX}/i686-w64-mingw32" "${CROSS_PREFIX}/i686-w64-mingw32/i686-w64-mingw32") diff --git a/CMake/platforms/mingwcc.toolchain.cmake b/CMake/platforms/mingwcc.toolchain.cmake index a6baa213f..4d3851d64 100644 --- a/CMake/platforms/mingwcc.toolchain.cmake +++ b/CMake/platforms/mingwcc.toolchain.cmake @@ -10,6 +10,7 @@ list(APPEND CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "${CROSS_PREFIX}/i686-w64-min SET(CMAKE_C_COMPILER "i686-w64-mingw32-gcc") SET(CMAKE_CXX_COMPILER "i686-w64-mingw32-g++") set(CMAKE_RC_COMPILER "i686-w64-mingw32-windres") +set(CMAKE_STRIP "${CROSS_PREFIX}/i686-w64-mingw32/bin/strip") set(PKG_CONFIG_EXECUTABLE "${CROSS_PREFIX}/bin/i686-w64-mingw32-pkg-config" CACHE STRING "Path to pkg-config") SET(CMAKE_FIND_ROOT_PATH "${CROSS_PREFIX}/i686-w64-mingw32" "${CROSS_PREFIX}/i686-w64-mingw32/i686-w64-mingw32") diff --git a/CMake/platforms/mingwcc64.toolchain.cmake b/CMake/platforms/mingwcc64.toolchain.cmake index eb3e7bd88..37448f709 100644 --- a/CMake/platforms/mingwcc64.toolchain.cmake +++ b/CMake/platforms/mingwcc64.toolchain.cmake @@ -10,6 +10,7 @@ list(APPEND CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "${CROSS_PREFIX}/x86_64-w64-m SET(CMAKE_C_COMPILER "x86_64-w64-mingw32-gcc") SET(CMAKE_CXX_COMPILER "x86_64-w64-mingw32-g++") set(CMAKE_RC_COMPILER "x86_64-w64-mingw32-windres") +set(CMAKE_STRIP "${CROSS_PREFIX}/x86_64-w64-mingw32/bin/strip") set(PKG_CONFIG_EXECUTABLE "${CROSS_PREFIX}/bin/x86_64-w64-mingw32-pkg-config" CACHE STRING "Path to pkg-config") SET(CMAKE_FIND_ROOT_PATH "${CROSS_PREFIX}/x86_64-w64-mingw32" "${CROSS_PREFIX}/x86_64-w64-mingw32/x86_64-w64-mingw32") diff --git a/CMakeLists.txt b/CMakeLists.txt index 7b0762a99..e5ded7b00 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -335,8 +335,7 @@ else() add_custom_command( TARGET ${BIN_TARGET} POST_BUILD DEPENDS ${BIN_TARGET} - COMMAND $<$:${CMAKE_STRIP}> - $<$:${CMAKE_STRIP}> + COMMAND $<$,$>:${CMAKE_STRIP}> ARGS $) endif() endif()