From e1c337a483b58a47705e6c6eedda2aa4da72cf40 Mon Sep 17 00:00:00 2001 From: Bananymous Date: Thu, 5 Mar 2026 16:25:06 +0200 Subject: [PATCH] LibC: Fix compile and link flags We were linking with -nostdlib and manually linked against libgcc. This does not link with crtbegin and crtend which provides __dso_handle preventing use of some global C++ constructors inside libc. Now we just don't link against libc fixing this issue --- userspace/libraries/LibC/CMakeLists.txt | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/userspace/libraries/LibC/CMakeLists.txt b/userspace/libraries/LibC/CMakeLists.txt index b292010f..63fbf527 100644 --- a/userspace/libraries/LibC/CMakeLists.txt +++ b/userspace/libraries/LibC/CMakeLists.txt @@ -76,7 +76,7 @@ set(LIBC_SOURCES add_library(objlibc OBJECT ${LIBC_SOURCES}) target_compile_definitions(objlibc PRIVATE __arch=${BANAN_ARCH}) -target_compile_options(objlibc PRIVATE -O2 -g -Wstack-usage=512 -fno-exceptions -fpic -nolibc) +target_compile_options(objlibc PRIVATE -O2 -g -Wstack-usage=512 -fno-exceptions -fno-rtti -fpic) target_compile_options(objlibc PUBLIC -Wall -Wextra -Werror -Wno-error=stack-usage=) function(add_crtx crtx) @@ -99,11 +99,8 @@ banan_install_headers(objlibc) add_library(libc-static STATIC $) add_library(libc-shared SHARED $) -target_link_options(libc-static PRIVATE -nostdlib) -target_link_libraries(libc-static PRIVATE -lgcc) - -target_link_options(libc-shared PRIVATE -nostdlib) -target_link_libraries(libc-shared PRIVATE -lgcc) +target_link_options(libc-static PRIVATE -nolibc) +target_link_options(libc-shared PRIVATE -nolibc) install(TARGETS libc-static OPTIONAL) install(TARGETS libc-shared OPTIONAL)