diff --git a/doc/tasks.md b/doc/tasks.md index 02e8a5d6..fd6abe20 100644 --- a/doc/tasks.md +++ b/doc/tasks.md @@ -3,6 +3,15 @@ Сюда пишется список задач с короткой аннотацией. Если задача большая и имеет ТЗ - то ТЗ оформляется отдельным файлом, а сюда помещается аннотация и ссылка на ТЗ. ## Текущая задача +[ ] **ChatGUI Windows: проверка линковки ZXing без -Os** — 05.10.2026: + после удаления старых DLL и чистой сборки линкер не находит move-конструктор + `std::string` в `libZXing.a(Barcode.cpp.obj)`. ZXing задаёт этому файлу -Os; + такая ошибка описана в https://github.com/msys2/MINGW-packages/issues/31015. + Для MinGW GCC отключён пофайловый -Os; используются флаги выбранного типа сборки. + Проверена генерация команд: при MinGW+GNU Barcode.cpp получает -O3 без -Os, + Linux сохраняет прежний -Os. Компиляция Barcode.cpp на Linux прошла. + Требуется Windows-проверка обычным `tools/chatgui/build.bat`. + [ ] **ChatGUI Windows: подтверждение обновления runtime компилятора** — 05.10.2026: `cc-probe.log`: cc1 запускается из корня, но в `tools/chatgui/build` завершается с `0xC0000139`; локальные DLL GCC/math/runtime отличаются от UCRT64. diff --git a/tools/chatgui/zxing-cpp/core/CMakeLists.txt b/tools/chatgui/zxing-cpp/core/CMakeLists.txt index 736703e4..91fa3bd4 100644 --- a/tools/chatgui/zxing-cpp/core/CMakeLists.txt +++ b/tools/chatgui/zxing-cpp/core/CMakeLists.txt @@ -677,7 +677,10 @@ if (NOT ZXING_DISABLE_PCH) target_precompile_headers(ZXing PRIVATE ${PRECOMPILE_HEADERS}) endif() -if(CMAKE_BUILD_TYPE MATCHES "Release|RelWithDebInfo") +# MinGW GCC с -Os даёт ошибку линковки move-конструктора std::string (MSYS2 #31015). +if(MINGW AND CMAKE_CXX_COMPILER_ID STREQUAL "GNU") + message(STATUS "ZXing: per-source -Os disabled for MinGW GCC (MSYS2 #31015)") +elseif(CMAKE_BUILD_TYPE MATCHES "Release|RelWithDebInfo") # The following is a list of translation units that fulfill two criteria regarding the use of -Os vs -O3: # 1. their binary size decreases significantly # 2. the runtime of ReaderTest is not (measurably) affected