Disable ZXing size optimization for MinGW GCC string link issue

This commit is contained in:
evgeny committed 2026-10-05 13:38:16 +02:00
1 parent 1b1e76a2b4
commit 43e5b8e22e
2 files changed
+13 -1

No files matched your search

+9
View File
@@ -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.
+4 -1
View File
@@ -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