From 9db78ab4d6c2291e5dc0830d74619d406d58d4df Mon Sep 17 00:00:00 2001 From: Bruno Mongazon-Cazavet <bruno.mongazon-cazavet@nokia-bell-labs.com> Date: Thu, 23 Feb 2023 09:56:24 +0100 Subject: [PATCH] fix warnings introduced by changes in _Assert_Exit_ macro --- cmake_targets/build_oai | 2 +- common/utils/assertions.h | 27 ++++++++++++++------------- executables/main_ru.c | 2 +- executables/nr-cuup.c | 6 ++++++ executables/nr-softmodem.c | 2 +- executables/softmodem-common.c | 2 +- openair2/COMMON/platform_types.h | 2 +- radio/USRP/USERSPACE/LIB/usrp_lib.cpp | 2 +- radio/iqplayer/iqplayer_lib.c | 2 +- 9 files changed, 27 insertions(+), 20 deletions(-) diff --git a/cmake_targets/build_oai b/cmake_targets/build_oai index f51f76aed63..974b583b393 100755 --- a/cmake_targets/build_oai +++ b/cmake_targets/build_oai @@ -595,7 +595,7 @@ function main() { echo_info "Compiling UE specific part" - if [ $UE_ip -eq 1 ] + if [ "$UE_ip" = 1 ] then echo_info "Building ue_ip module" compilations $BUILD_DIR ue_ip diff --git a/common/utils/assertions.h b/common/utils/assertions.h index bf777a29dea..a5b2149edee 100644 --- a/common/utils/assertions.h +++ b/common/utils/assertions.h @@ -30,19 +30,20 @@ #include <platform_types.h> #include "backtrace.h" -#define EXIT_NORMAL 0 -#define EXIT_ASSERT 1 - -#define _Assert_Exit_ \ - if (getenv("gdbStacks")) { \ - char tmp[1000]; \ - sprintf(tmp, "gdb -ex='set confirm off' -ex 'thread apply all bt' -ex q -p %d < /dev/null", getpid()); \ - __attribute__((unused)) int dummy = system(tmp); \ - } \ - fprintf(stderr, "\nExiting execution\n"); \ - fflush(stdout); \ - fflush(stderr); \ - exit_function(__FILE__, __FUNCTION__, __LINE__, "_Assert_Exit_", EXIT_ASSERT); +#define OAI_EXIT_NORMAL 0 +#define OAI_EXIT_ASSERT 1 + +#define _Assert_Exit_ \ + if (getenv("gdbStacks")) { \ + char tmp [1000]; \ + sprintf(tmp,"gdb -ex='set confirm off' -ex 'thread apply all bt' -ex q -p %d < /dev/null", getpid()); \ + __attribute__((unused)) int dummy=system(tmp); \ + } \ + fprintf(stderr, "\nExiting execution\n"); \ + fflush(stdout); \ + fflush(stderr); \ + exit_function(__FILE__, __FUNCTION__, __LINE__, "_Assert_Exit_", OAI_EXIT_ASSERT); \ + abort(); // to avoid gcc warnings - never executed unless app-specific exit_function() does not exit() nor abort() #define _Assert_(cOND, aCTION, fORMAT, aRGS...) \ do { \ diff --git a/executables/main_ru.c b/executables/main_ru.c index 1178d040af8..4ee26783378 100644 --- a/executables/main_ru.c +++ b/executables/main_ru.c @@ -86,7 +86,7 @@ int32_t uplink_frequency_offset[MAX_NUM_CCs][4]; void nfapi_setmode(nfapi_mode_t nfapi_mode) { return; } -void exit_function(const char *file, const char *function, const int line, const char *s) { +void exit_function(const char *file, const char *function, const int line, const char *s, const int assert) { if (s != NULL) { printf("%s:%d %s() Exiting OAI softmodem: %s\n",file,line, function, s); diff --git a/executables/nr-cuup.c b/executables/nr-cuup.c index 5af46176e47..d35762c4f84 100644 --- a/executables/nr-cuup.c +++ b/executables/nr-cuup.c @@ -40,6 +40,12 @@ RRC_release_list_t rrc_release_info; void exit_function(const char *file, const char *function, const int line, const char *s, const int assert) { + if (assert) { + abort(); + } else { + sleep(1); // allow other threads to exit first + exit(EXIT_SUCCESS); + } } nfapi_mode_t nfapi_mod = -1; diff --git a/executables/nr-softmodem.c b/executables/nr-softmodem.c index 1c1813d3a10..f3d0b58df50 100644 --- a/executables/nr-softmodem.c +++ b/executables/nr-softmodem.c @@ -288,7 +288,7 @@ void exit_function(const char *file, const char *function, const int line, const if (assert) { abort(); } else { - sleep(1); // allow lte-softmodem threads to exit first + sleep(1); // allow nr-softmodem threads to exit first exit(EXIT_SUCCESS); } } diff --git a/executables/softmodem-common.c b/executables/softmodem-common.c index fccc6d1118f..f0dc5488f9a 100644 --- a/executables/softmodem-common.c +++ b/executables/softmodem-common.c @@ -215,7 +215,7 @@ void signal_handler(int sig) { softmodem_printresources(sig,(telnet_printfunc_t)printf); if (sig != SOFTMODEM_RTSIGNAL) { printf("Linux signal %s...\n",strsignal(sig)); - exit_function(__FILE__, __FUNCTION__, __LINE__, "softmodem starting exit procedure\n", EXIT_NORMAL); + exit_function(__FILE__, __FUNCTION__, __LINE__, "softmodem starting exit procedure\n", OAI_EXIT_NORMAL); } } } diff --git a/openair2/COMMON/platform_types.h b/openair2/COMMON/platform_types.h index e8d7b4915f5..c6308a44654 100644 --- a/openair2/COMMON/platform_types.h +++ b/openair2/COMMON/platform_types.h @@ -281,7 +281,7 @@ typedef struct protocol_ctxt_s { #define CHECK_CTXT_ARGS(CTXT_Pp) -#define exit_fun(msg) exit_function(__FILE__, __FUNCTION__, __LINE__, "exit_fun", EXIT_NORMAL) +#define exit_fun(msg) exit_function(__FILE__, __FUNCTION__, __LINE__, "exit_fun", OAI_EXIT_NORMAL) #ifdef __cplusplus extern "C" { diff --git a/radio/USRP/USERSPACE/LIB/usrp_lib.cpp b/radio/USRP/USERSPACE/LIB/usrp_lib.cpp index c3cc7c2007f..61013ef569f 100644 --- a/radio/USRP/USERSPACE/LIB/usrp_lib.cpp +++ b/radio/USRP/USERSPACE/LIB/usrp_lib.cpp @@ -789,7 +789,7 @@ static int trx_usrp_read(openair0_device *device, openair0_timestamp *ptimestamp recPlay->nbSamplesBlocks++; LOG_D(HW,"recorded %d samples, for TS %lu, shift in buffer %ld nbBytes %d nbSamplesBlocks %d\n", nsamps, hdr->ts, recPlay->currentPtr-(uint8_t *)recPlay->ms_sample, (int)hdr->nbBytes, (int)recPlay->nbSamplesBlocks); } else - exit_function(__FILE__, __FUNCTION__, __LINE__, "Recording reaches max iq limit\n", EXIT_NORMAL); + exit_function(__FILE__, __FUNCTION__, __LINE__, "Recording reaches max iq limit\n", OAI_EXIT_NORMAL); } read_count++; LOG_D(HW,"usrp_lib: returning %d samples at ts %lu read_count %d\n", samples_received, *ptimestamp, read_count); diff --git a/radio/iqplayer/iqplayer_lib.c b/radio/iqplayer/iqplayer_lib.c index 165fd7ca8cf..7ac587bb958 100644 --- a/radio/iqplayer/iqplayer_lib.c +++ b/radio/iqplayer/iqplayer_lib.c @@ -268,7 +268,7 @@ static int trx_iqplayer_read(openair0_device *device, openair0_timestamp *ptimes if (s->wrap_count == device->openair0_cfg->recplay_conf->u_sf_loops) { LOG_W(HW, "iqplayer device terminating subframes replay after %u iteration\n", device->openair0_cfg->recplay_conf->u_sf_loops); - exit_function(__FILE__, __FUNCTION__, __LINE__,"replay ended, triggering process termination\n", EXIT_NORMAL); + exit_function(__FILE__, __FUNCTION__, __LINE__,"replay ended, triggering process termination\n", OAI_EXIT_NORMAL); } if (s->wrap_count > 0) { -- GitLab