CMake: Always build LibC with -ftls-model=initial-exec

LibC is always guaranteed to be loaded at program start, so its
thread-local variables live in the static TLS block. This permits us to
use the more optimal initial-exec TLS access model.
This commit is contained in:
Daniel Bertalan 2023-07-04 10:21:36 +02:00 committed by Jelle Raaijmakers
parent 70fcbcf54b
commit 182bb97479

View file

@ -82,7 +82,7 @@ endif()
function(serenity_libc target_name fs_name)
serenity_install_headers("")
serenity_install_sources()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -nostdlib -fpic")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -nostdlib -fpic -ftls-model=initial-exec")
add_library(${target_name} SHARED ${SOURCES})
install(TARGETS ${target_name} DESTINATION ${CMAKE_INSTALL_LIBDIR})
set_target_properties(${target_name} PROPERTIES OUTPUT_NAME ${fs_name})