From 657a54dc7bf8c901a5cf009606d179fe9ae8fd68 Mon Sep 17 00:00:00 2001 From: Kshitij Sisodia Date: Thu, 22 Dec 2022 16:51:23 +0000 Subject: MLECO-3748: Documentation updates Added documentation around known issue with Arm GNU toolchain version 12.2.1. Minor change for MLECO-3731 also included. Link-time warnings for Arm GNU toolchain 11.3.1 also fixed. Change-Id: Ia8215e9f71327eeb59868aea91729d7b19dd6d34 Signed-off-by: Kshitij Sisodia --- .../hal/source/components/stdout/source/retarget.c | 52 +++++++++++++++++- source/log/include/log_macros.h | 62 +++++++++++++--------- 2 files changed, 87 insertions(+), 27 deletions(-) (limited to 'source') diff --git a/source/hal/source/components/stdout/source/retarget.c b/source/hal/source/components/stdout/source/retarget.c index 47d5189..41c070a 100644 --- a/source/hal/source/components/stdout/source/retarget.c +++ b/source/hal/source/components/stdout/source/retarget.c @@ -1,6 +1,6 @@ /* - * SPDX-FileCopyrightText: Copyright 2022 Arm Limited and/or its affiliates - * SPDX-License-Identifier: Apache-2.0 + * SPDX-FileCopyrightText: Copyright 2022 Arm Limited and/or its affiliates + * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -287,3 +287,51 @@ int ferror(FILE* f) #endif /* #ifndef ferror */ #endif /* !defined(USE_SEMIHOSTING) */ + +/* If using GNU compiler */ +#if defined(__GNUC__) + +/* If Arm GNU compiler version > 11.3.0 */ +#if __GNUC__ > 11 || \ + (__GNUC__ == 11 && (__GNUC_MINOR__ > 3 || (__GNUC_MINOR__ == 3 && __GNUC_PATCHLEVEL__ > 0))) +struct stat; +int _fstat_r(struct _reent* r, int fdes, struct stat* s) +{ + (void)(r); + (void)(fdes); + (void)(s); + return -1; +} + +int _getpid_r(struct _reent* r) +{ + (void)(r); + return -1; +} + +int _isatty_r(struct _reent* r, int desc) +{ + (void)(r); + (void)(desc); + return -1; +} + +int _kill_r(struct _reent* r, int pid, int signal) +{ + (void)(r); + (void)(pid); + (void)(signal); + return -1; +} + +_off_t _lseek_r(struct _reent* r, int fdes, _off_t offset, int w) +{ + (void)(r); + (void)(fdes); + (void)(offset); + (void)(w); + return -1; +} + +#endif /* GNU toolchain version > 11.3.0 */ +#endif /* If using GNU toolchain */ diff --git a/source/log/include/log_macros.h b/source/log/include/log_macros.h index faf8435..6c115ab 100644 --- a/source/log/include/log_macros.h +++ b/source/log/include/log_macros.h @@ -1,6 +1,6 @@ /* - * SPDX-FileCopyrightText: Copyright 2021 Arm Limited and/or its affiliates - * SPDX-License-Identifier: Apache-2.0 + * SPDX-FileCopyrightText: Copyright 2021 Arm Limited and/or its affiliates + * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -21,50 +21,62 @@ extern "C" { #endif -#include #include +#include -#define LOG_LEVEL_TRACE 0 -#define LOG_LEVEL_DEBUG 1 -#define LOG_LEVEL_INFO 2 -#define LOG_LEVEL_WARN 3 -#define LOG_LEVEL_ERROR 4 +#define LOG_LEVEL_TRACE 0 +#define LOG_LEVEL_DEBUG 1 +#define LOG_LEVEL_INFO 2 +#define LOG_LEVEL_WARN 3 +#define LOG_LEVEL_ERROR 4 #ifndef LOG_LEVEL -#define LOG_LEVEL LOG_LEVEL_INFO +#define LOG_LEVEL LOG_LEVEL_INFO #endif /*LOG_LEVEL*/ -#define UNUSED(x) ((void)(x)) +#if !defined(UNUSED) +#define UNUSED(x) ((void)(x)) +#endif /* #if !defined(UNUSED) */ #if (LOG_LEVEL == LOG_LEVEL_TRACE) - #define trace(...) printf("TRACE - "); printf(__VA_ARGS__) +#define trace(...) \ + printf("TRACE - "); \ + printf(__VA_ARGS__) #else - #define trace(...) -#endif /* LOG_LEVEL == LOG_LEVEL_TRACE */ +#define trace(...) +#endif /* LOG_LEVEL == LOG_LEVEL_TRACE */ #if (LOG_LEVEL <= LOG_LEVEL_DEBUG) - #define debug(...) printf("DEBUG - "); printf(__VA_ARGS__) +#define debug(...) \ + printf("DEBUG - "); \ + printf(__VA_ARGS__) #else - #define debug(...) -#endif /* LOG_LEVEL > LOG_LEVEL_TRACE */ +#define debug(...) +#endif /* LOG_LEVEL > LOG_LEVEL_TRACE */ #if (LOG_LEVEL <= LOG_LEVEL_INFO) - #define info(...) printf("INFO - "); printf(__VA_ARGS__) +#define info(...) \ + printf("INFO - "); \ + printf(__VA_ARGS__) #else - #define info(...) -#endif /* LOG_LEVEL > LOG_LEVEL_DEBUG */ +#define info(...) +#endif /* LOG_LEVEL > LOG_LEVEL_DEBUG */ #if (LOG_LEVEL <= LOG_LEVEL_WARN) - #define warn(...) printf("WARN - "); printf(__VA_ARGS__) +#define warn(...) \ + printf("WARN - "); \ + printf(__VA_ARGS__) #else - #define warn(...) -#endif /* LOG_LEVEL > LOG_LEVEL_INFO */ +#define warn(...) +#endif /* LOG_LEVEL > LOG_LEVEL_INFO */ #if (LOG_LEVEL <= LOG_LEVEL_ERROR) - #define printf_err(...) printf("ERROR - "); printf(__VA_ARGS__) +#define printf_err(...) \ + printf("ERROR - "); \ + printf(__VA_ARGS__) #else - #define printf_err(...) -#endif /* LOG_LEVEL > LOG_LEVEL_INFO */ +#define printf_err(...) +#endif /* LOG_LEVEL > LOG_LEVEL_INFO */ #ifdef __cplusplus } -- cgit v1.2.1