mirror of
https://gitflic.ru/project/erthink/libmdbx.git
synced 2025-02-02 05:15:53 +00:00
mdbx-cmake: используем -flto=auto
для GCC >= 11.4
При сборке посредством GCC >= 11.4 больше не возникает предупреждений: lto-wrapper: warning: using serial compilation of # LTRANS jobs lto-wrapper: note: see the ‘-flto’ option documentation for more information Однако, использование auto-режима не является оптимальным решением, так как при параллельной сборке посредством make или ninja, каждая уже запущенная ветвь компиляции породит потоки ещё для каждого ядра ЦПУ. Таким образом реальная нагрузка может расти квадратично, т.е. чем больше у вас ядер -- тем хуже и при 96 ядрах может работать 9216 потоков сборки. Тем не менее, использование `job-server` в CMake пока не возможно, а при сборке libmdbx не так много работы чтобы чтобы обрушить систему нагрузкой.
This commit is contained in:
parent
6ccbce9afc
commit
3a0b857e1d
@ -502,7 +502,11 @@ if(CMAKE_COMPILER_IS_GNU${CMAKE_PRIMARY_LANG}
|
||||
AND CMAKE_GCC_RANLIB
|
||||
AND gcc_lto_wrapper)
|
||||
message(STATUS "Found GCC's LTO toolset: ${gcc_lto_wrapper}, ${CMAKE_GCC_AR}, ${CMAKE_GCC_RANLIB}")
|
||||
set(GCC_LTO_CFLAGS "-flto -fno-fat-lto-objects -fuse-linker-plugin")
|
||||
if(CMAKE_${CMAKE_PRIMARY_LANG}_COMPILER_VERSION VERSION_LESS 11.4)
|
||||
set(GCC_LTO_CFLAGS "-flto -fno-fat-lto-objects -fuse-linker-plugin")
|
||||
else()
|
||||
set(GCC_LTO_CFLAGS "-flto=auto -fno-fat-lto-objects -fuse-linker-plugin")
|
||||
endif()
|
||||
set(GCC_LTO_AVAILABLE TRUE)
|
||||
message(STATUS "Link-Time Optimization by GCC is available")
|
||||
else()
|
||||
|
Loading…
Reference in New Issue
Block a user