From ba8d6908fa9790e05536c4e61f458b8db72f4b5d Mon Sep 17 00:00:00 2001 From: Max Wash Date: Thu, 19 Feb 2026 19:26:33 +0000 Subject: [PATCH] cmake: platform: configure dynamic library and executable linker flags --- arch/x86_64/Platform/Rosetta.cmake | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/arch/x86_64/Platform/Rosetta.cmake b/arch/x86_64/Platform/Rosetta.cmake index d026c1e..bb8706a 100644 --- a/arch/x86_64/Platform/Rosetta.cmake +++ b/arch/x86_64/Platform/Rosetta.cmake @@ -7,8 +7,15 @@ find_program(C_COMPILER x86_64-elf-gcc REQUIRED) find_program(CXX_COMPILER x86_64-elf-g++ REQUIRED) find_program(ASM_COMPILER x86_64-elf-as REQUIRED) +add_compile_definitions(__mango__=1) + set(CMAKE_C_COMPILER ${C_COMPILER}) set(CMAKE_CXX_COMPILER ${CXX_COMPILER}) set(CMAKE_ASM_COMPILER ${ASM_COMPILER}) -SET(CMAKE_C_FLAGS "-ffreestanding -nostdlib" CACHE STRING "" FORCE) +SET(CMAKE_C_FLAGS "-ffreestanding -nostdlib -z max-page-size=0x1000 -m64 -mcmodel=large -mno-red-zone -mno-mmx -mno-sse -mno-sse2 -D_64BIT -DBYTE_ORDER=1234" CACHE STRING "" FORCE) +set(CMAKE_SHARED_LINKER_FLAGS "-Wl,-shared" CACHE STRING "" FORCE) +set(CMAKE_EXE_LINKER_FLAGS "-Wl,--dynamic-linker=/lib/ld64.so" CACHE STRING "" FORCE) + +set(CMAKE_C_OUTPUT_EXTENSION .o) +set(CMAKE_CXX_OUTPUT_EXTENSION .o)