From 565228516c38f1d94eb679bc882d9869a3069aab Mon Sep 17 00:00:00 2001 From: Paul Sokolovsky Date: Mon, 26 Oct 2020 15:36:28 +0300 Subject: [PATCH] libc: minimal: Implement abort(). abort() is an important runtime function, oftentimes used to signal abnormal execution conditions in generic applications. Worse, they may be used under such circumstances in e.g. compiler support libraries, in which case lack of implementation of this function will lead to link error. Fixes: #29541 Signed-off-by: Paul Sokolovsky --- lib/libc/minimal/CMakeLists.txt | 1 + lib/libc/minimal/include/stdlib.h | 1 + lib/libc/minimal/source/stdlib/abort.c | 14 ++++++++++++++ 3 files changed, 16 insertions(+) create mode 100644 lib/libc/minimal/source/stdlib/abort.c diff --git a/lib/libc/minimal/CMakeLists.txt b/lib/libc/minimal/CMakeLists.txt index 2eeffadeac1..2c7afb115b2 100644 --- a/lib/libc/minimal/CMakeLists.txt +++ b/lib/libc/minimal/CMakeLists.txt @@ -4,6 +4,7 @@ zephyr_system_include_directories(include) zephyr_library() zephyr_library_sources( + source/stdlib/abort.c source/stdlib/atoi.c source/stdlib/strtol.c source/stdlib/strtoul.c diff --git a/lib/libc/minimal/include/stdlib.h b/lib/libc/minimal/include/stdlib.h index fe396d4f954..57def608efa 100644 --- a/lib/libc/minimal/include/stdlib.h +++ b/lib/libc/minimal/include/stdlib.h @@ -35,6 +35,7 @@ static inline void exit(int status) { _exit(status); } +void abort(void); int rand(void); diff --git a/lib/libc/minimal/source/stdlib/abort.c b/lib/libc/minimal/source/stdlib/abort.c new file mode 100644 index 00000000000..edda2b6bbb7 --- /dev/null +++ b/lib/libc/minimal/source/stdlib/abort.c @@ -0,0 +1,14 @@ +/* + * Copyright (c) 2020 Linaro Limited + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#include +#include + +void abort(void) +{ + printk("abort()\n"); + k_panic(); +}