2017-10-27 21:43:34 +08:00
|
|
|
zephyr_library()
|
|
|
|
zephyr_library_sources(libc-hooks.c)
|
|
|
|
|
2018-01-09 00:06:42 +08:00
|
|
|
# LIBC_*_DIR may or may not have been set by the toolchain. E.g. when
|
2018-02-12 04:36:21 +08:00
|
|
|
# using ZEPHYR_TOOLCHAIN_VARIANT=cross-compile it will be either up to the
|
2018-01-09 00:06:42 +08:00
|
|
|
# toolchain to know where it's libc implementation is, or if it is
|
|
|
|
# unable to, it will be up to the user to specify LIBC_*_DIR vars to
|
|
|
|
# point to a newlib implementation.
|
|
|
|
|
2019-03-12 23:22:48 +08:00
|
|
|
# We need to make sure this is included before the standard system
|
|
|
|
# header include path's since we build with -ffreestanding and need
|
|
|
|
# our libc headers to be picked instead of the toolchain's ffreestanding
|
|
|
|
# headers.
|
2018-01-09 00:06:42 +08:00
|
|
|
if(LIBC_INCLUDE_DIR)
|
2019-03-12 23:22:48 +08:00
|
|
|
zephyr_system_include_directories(${LIBC_INCLUDE_DIR})
|
2018-01-09 00:06:42 +08:00
|
|
|
endif()
|
|
|
|
|
|
|
|
if(LIBC_LIBRARY_DIR)
|
|
|
|
set(LIBC_LIBRARY_DIR_FLAG -L${LIBC_LIBRARY_DIR})
|
|
|
|
endif()
|
|
|
|
|
2018-07-12 04:57:03 +08:00
|
|
|
# define __LINUX_ERRNO_EXTENSIONS__ so we get errno defines like -ESHUTDOWN
|
|
|
|
# used by the network stack
|
|
|
|
zephyr_compile_definitions(__LINUX_ERRNO_EXTENSIONS__)
|
|
|
|
|
2017-10-27 21:43:34 +08:00
|
|
|
zephyr_link_libraries(
|
|
|
|
m
|
|
|
|
c
|
2018-01-09 00:06:42 +08:00
|
|
|
${LIBC_LIBRARY_DIR_FLAG} # NB: Optional
|
2017-10-27 21:43:34 +08:00
|
|
|
$<$<BOOL:${CONFIG_NEWLIB_LIBC_FLOAT_PRINTF}>:-u_printf_float>
|
|
|
|
$<$<BOOL:${CONFIG_NEWLIB_LIBC_FLOAT_SCANF}>:-u_scanf_float>
|
|
|
|
gcc # Lib C depends on libgcc. e.g. libc.a(lib_a-fvwrite.o) references __aeabi_idiv
|
|
|
|
)
|