From 182bb97479805372b7846dfae80afdba73349ab0 Mon Sep 17 00:00:00 2001 From: Daniel Bertalan Date: Tue, 4 Jul 2023 10:21:36 +0200 Subject: [PATCH] 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. --- Meta/CMake/utils.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Meta/CMake/utils.cmake b/Meta/CMake/utils.cmake index 5e08bde184..822658144c 100644 --- a/Meta/CMake/utils.cmake +++ b/Meta/CMake/utils.cmake @@ -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})