From e706de8f91dc5f3401b9f0fd249a91c475c809e1 Mon Sep 17 00:00:00 2001 From: Brian Gianforcaro Date: Sun, 23 May 2021 01:04:26 -0700 Subject: [PATCH] LibM: Fix linking with LibM when compiling Userland without -O2 While playing with conditionally disabling -O2 optimization when building the Userland subdirectory, I discovered that we can no longer link errors without -O2. This happens as LibM.so doesn't link to anything else, resulting in no stack protector implementation. It appears that optimization somehow avoids this problem? To fix this inject LibC/ssp.cpp as we do with in dynamic loader. --- Userland/Libraries/LibM/CMakeLists.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Userland/Libraries/LibM/CMakeLists.txt b/Userland/Libraries/LibM/CMakeLists.txt index bdb9baf78a..3990dae123 100644 --- a/Userland/Libraries/LibM/CMakeLists.txt +++ b/Userland/Libraries/LibM/CMakeLists.txt @@ -1,7 +1,10 @@ set(SOURCES math.cpp + ../LibC/ssp.cpp ) +set_source_files_properties (../LibC/ssp.cpp PROPERTIES COMPILE_FLAGS + "-fno-stack-protector") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -nostdlib") serenity_libc(LibM m)