Files
rosetta/sys/ld/CMakeLists.txt
T
wash 1ec33767ab meta: replace cmake mono-build system with a custom build co-ordinator
every system component now has its own self-contained build system, and a
seed file describing the component and its build system and dependencies.

a new tool, meadow, collects and uses these seed files to build the
components into a full system. meadow also manages the target system root
and a host prefix where toolchain tools are installed to.

the build system has also been updated to use a new $ARCH-rosetta-gcc
compiler, and the patches files necessary to build it have been
added to toolchain/cross-compiler.
2026-07-19 13:34:32 +01:00

28 lines
819 B
CMake

cmake_minimum_required(VERSION 3.31)
project(ld C ASM)
file(GLOB c_sources *.c *.h)
file(GLOB arch_sources arch/${CMAKE_SYSTEM_PROCESSOR}/*.S)
add_executable(ld ${c_sources} ${arch_sources})
set_target_properties(ld PROPERTIES
POSITION_INDEPENDENT_CODE ON
OUTPUT_NAME "ld64"
SUFFIX ".so")
set(libc_deps
libc-core.a libc-malloc.a libc-io.a)
target_link_libraries(ld
"$<LINK_GROUP:cross_refs,${libc_deps}>"
libmagenta.a librosetta.a -l:libxpc.a)
target_compile_options(ld PRIVATE
-fvisibility=hidden
-fPIC -fno-stack-protector -nostdlib -ffreestanding)
target_link_options(ld PRIVATE
-fvisibility=hidden -Wl,--exclude-libs,ALL
# -Wl,--entry="_ld_start"
-T ${CMAKE_CURRENT_SOURCE_DIR}/arch/${CMAKE_SYSTEM_PROCESSOR}/layout.ld
-fPIC -nostdlib -ffreestanding -Wl,-shared)
install(TARGETS ld DESTINATION lib)