Merge branch 'bugfix/macos_link_toomany_open_files' into 'master'
build system: explicitly disable LTO plugin to reduce the number of simultaneously open files Closes IDF-923 and IDFGH-1764 See merge request espressif/esp-idf!6776
This commit is contained in:
commit
a9b7f74f7f
3 changed files with 9 additions and 4 deletions
|
@ -5,6 +5,7 @@ unset(compile_options)
|
|||
unset(c_compile_options)
|
||||
unset(cxx_compile_options)
|
||||
unset(compile_definitions)
|
||||
unset(link_options)
|
||||
|
||||
# Add the following build specifications here, since these seem to be dependent
|
||||
# on config values on the root Kconfig.
|
||||
|
@ -31,6 +32,7 @@ if(CONFIG_COMPILER_CXX_RTTI)
|
|||
list(APPEND cxx_compile_options "-frtti")
|
||||
else()
|
||||
list(APPEND cxx_compile_options "-fno-rtti")
|
||||
list(APPEND link_options "-fno-rtti") # used to invoke correct multilib variant (no-rtti) during linking
|
||||
endif()
|
||||
|
||||
if(CONFIG_COMPILER_DISABLE_GCC8_WARNINGS)
|
||||
|
@ -62,11 +64,13 @@ elseif(CONFIG_COMPILER_STACK_CHECK_MODE_ALL)
|
|||
list(APPEND compile_options "-fstack-protector-all")
|
||||
endif()
|
||||
|
||||
list(APPEND link_options "-fno-lto")
|
||||
|
||||
idf_build_set_property(COMPILE_OPTIONS "${compile_options}" APPEND)
|
||||
idf_build_set_property(C_COMPILE_OPTIONS "${c_compile_options}" APPEND)
|
||||
idf_build_set_property(CXX_COMPILE_OPTIONS "${cxx_compile_options}" APPEND)
|
||||
idf_build_set_property(COMPILE_DEFINITIONS "${compile_definitions}" APPEND)
|
||||
idf_build_set_property(LINK_OPTIONS "${link_options}" APPEND)
|
||||
|
||||
idf_build_get_property(build_component_targets __BUILD_COMPONENT_TARGETS)
|
||||
|
||||
|
|
|
@ -15,7 +15,3 @@ target_link_libraries(${COMPONENT_LIB} PUBLIC stdcpp_pthread)
|
|||
if(NOT CONFIG_COMPILER_CXX_EXCEPTIONS)
|
||||
target_link_libraries(${COMPONENT_LIB} INTERFACE "-u __cxx_fatal_exception")
|
||||
endif()
|
||||
|
||||
if(NOT CONFIG_COMPILER_CXX_RTTI)
|
||||
target_link_libraries(${COMPONENT_LIB} PUBLIC -fno-rtti)
|
||||
endif()
|
||||
|
|
|
@ -460,6 +460,11 @@ endmacro()
|
|||
# files used for linking, targets which should execute before creating the specified executable,
|
||||
# generating additional binary files, generating files related to flashing, etc.)
|
||||
function(idf_build_executable elf)
|
||||
# Set additional link flags for the executable
|
||||
idf_build_get_property(link_options LINK_OPTIONS)
|
||||
# Using LINK_LIBRARIES here instead of LINK_OPTIONS, as the latter is not in CMake 3.5.
|
||||
set_property(TARGET ${elf} APPEND PROPERTY LINK_LIBRARIES "${link_options}")
|
||||
|
||||
# Propagate link dependencies from component library targets to the executable
|
||||
idf_build_get_property(link_depends __LINK_DEPENDS)
|
||||
set_property(TARGET ${elf} APPEND PROPERTY LINK_DEPENDS "${link_depends}")
|
||||
|
|
Loading…
Reference in a new issue