# # Copyright 2017, Data61 # Commonwealth Scientific and Industrial Research Organisation (CSIRO) # ABN 41 687 119 230. # # This software may be distributed and modified according to the terms of # the BSD 2-Clause license. Note that NO WARRANTY is provided. # See "LICENSE_BSD2.txt" for details. # # @TAG(DATA61_BSD) # cmake_minimum_required(VERSION 3.7.2) project(libsel4debug C ASM) set(configure_string "") config_string( LibSel4DebugAllocBufferEntries LIBSEL4DEBUG_ALLOC_BUFFER_ENTRIES "Pointer tracking buffer entries \ Size of buffer to use for tracking memory allocations within \ instrumentation. This setting has no effect if you are not using the \ allocation instrumentation. Setting this value to 0 disables pointer \ tracking." DEFAULT 0 UNQUOTE ) config_choice( LibSel4DebugFunctionInstrumentation LIB_SEL4_DEBUG_FUNCTION_INSTRUMENTAITON "Function instrumentation to apply to function calls. This setting will only have \ an effect when your CFLAGS include -finstrument-functions, in which \ case __cyg_profile_func_enter will be called on every function entry \ and __cyg_profile_func_exit will be called on every function exit. The \ value of this setting determines the implementation of \ __cyg_profile_func_enter and __cyg_profile_func_exit supplied by this \ library. Regardless of the option you select, you can always override \ the implementation by providing your own in your application. \ none -> \ No implementation of __cyg_profile_func_enter and \ __cyg_profile_func_exit are provided. \ printf -> \ Print entry and exit of every function call. This option is useful for \ a very coarse and noisy description of what your code is doing. \ backtrace -> \ Track function calls for the purposes of a backtrace. You will need to \ enable this option if you want to retrieve programmatic backtraces." "none;LibSel4DebugFunctionInstrumentationNone;LIBSEL4DEBUG_FUNCTION_INSTRUMENTATION_NONE" "printf;LibSel4DebugFunctionInstrumentationPrintf;LIBSEL4DEBUG_FUNCTION_INSTRUMENTATION_TRACE" "backtrace;LibSel4DebugFunctionInstrumentationBacktrace;LIBSEL4DEBUG_FUNCTION_INSTRUMENTATION_BACKTRACE" ) mark_as_advanced(LibSel4DebugAllocBufferEntries LibSel4DebugFunctionInstrumentation) add_config_library(sel4debug "${configure_string}") file( GLOB deps src/*.c src/sel4_arch/${KernelSel4Arch}/*.c src/plat/${KernelPlatform}/*.c src/sel4_arch/${KernelSel4Arch}/*.S ) list(SORT deps) add_library(sel4debug STATIC EXCLUDE_FROM_ALL ${deps}) target_include_directories( sel4debug PUBLIC include "arch_include/${KernelArch}" sel4_arch_include/${KernelSel4Arch} ) target_link_libraries(sel4debug PUBLIC muslc sel4 utils PRIVATE sel4debug_Config sel4_autoconf)