build: ensure all symbols are included

This commit is contained in:
anna 2021-07-31 22:07:38 +02:00
parent 643d3ed251
commit 3ab358310c
Signed by: fef
GPG key ID: EC22E476DC2D3D84
3 changed files with 19 additions and 5 deletions

View file

@ -72,10 +72,17 @@ add_subdirectory(lib)
target_include_directories(ardix INTERFACE ${ARDIX_INCLUDE_DIRS})
target_compile_options(ardix INTERFACE ${ARDIX_COMPILE_OPTIONS})
# TODO: don't use this hack lmao
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/empty.c "")
add_executable(ardix.elf ${CMAKE_CURRENT_BINARY_DIR}/empty.c)
target_link_libraries(ardix.elf PRIVATE ardix)
add_custom_target(ardix.elf DEPENDS ardix)
add_custom_command(
TARGET ardix.elf
COMMAND ${CMAKE_LINKER}
ARGS ${ARDIX_LINKER_FLAGS} -o ardix.elf
$<TARGET_FILE:ardix_arch>
$<TARGET_FILE:ardix_init>
$<TARGET_FILE:ardix_kernel>
$<TARGET_FILE:ardix_kernel_fs>
$<TARGET_FILE:ardix_lib>
)
add_custom_target(ardix.bin ALL DEPENDS ardix.elf)
add_custom_command(

View file

@ -19,7 +19,12 @@ set(CMAKE_STRIP ${TOOLCHAIN_PATH}/arm-none-eabi-strip${CMAKE_EXECUTABLE_SUFFIX}
set(CMAKE_C_FLAGS "-Os -nodefaultlibs -nostartfiles -mcpu=cortex-m3 -mthumb -mabi=aapcs -march=armv7-m -masm-syntax-unified")
set(CMAKE_C_FLAGS_DEBUG -g)
set(CMAKE_EXE_LINKER_FLAGS "-T${CMAKE_CURRENT_LIST_DIR}/config.ld -T${CMAKE_CURRENT_LIST_DIR}/flash.ld")
set(CMAKE_LINKER_FLAGS "-T${CMAKE_CURRENT_LIST_DIR}/config.ld -T${CMAKE_CURRENT_LIST_DIR}/flash.ld --whole-archive")
set(ARDIX_LINKER_FLAGS
-T${CMAKE_CURRENT_LIST_DIR}/config.ld
-T${CMAKE_CURRENT_LIST_DIR}/flash.ld
--whole-archive
)
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)

View file

@ -6,6 +6,8 @@ target_link_libraries(ardix INTERFACE ardix_kernel)
target_compile_options(ardix_kernel PRIVATE ${ARDIX_COMPILE_OPTIONS})
target_include_directories(ardix_kernel PRIVATE ${ARDIX_INCLUDE_DIRS})
add_subdirectory(fs)
target_sources(ardix_kernel PRIVATE
device.c
dma.c