set(SOURCES
Image.cpp
Validation.cpp
)
minerva_install_headers("LibELF")
minerva_install_sources("Userland/Libraries/LibELF")
if (MINERVA)
list(APPEND SOURCES
Arch/${MINERVA_ARCH}/entry.S
Arch/${MINERVA_ARCH}/plt_trampoline.S
Arch/${MINERVA_ARCH}/tls.cpp
DynamicLinker.cpp
DynamicLoader.cpp
DynamicObject.cpp
ELFBuild.cpp
Relocation.cpp
)
if (MINERVA_ARCH STREQUAL "aarch64")
list(APPEND SOURCES
Arch/aarch64/tls.S
)
elseif (MINERVA_ARCH STREQUAL "riscv64")
list(APPEND SOURCES
Arch/riscv64/ExtensionBitmask.cpp
)
endif()
add_library(DynamicLoader_LibELF STATIC ${SOURCES})
target_link_libraries(DynamicLoader_LibELF
PUBLIC DynamicLoader_CompileOptions
PRIVATE DynamicLoader_LibC
)
endif()
minerva_lib(LibELF elf ${SOURCES})
target_link_libraries(LibELF PRIVATE LibSystem)