From 0a74c23c8a93ebacb9295f1db4da7bb948230532 Mon Sep 17 00:00:00 2001 From: Robert Schmidt Date: Tue, 14 Jun 2022 12:30:09 +0200 Subject: [PATCH] Disable Asan in LDPC decoder generator executables The CI compiles the physims using Asan. This in turn compiles Asan into the LDPC decoder generator files. Since they are run during build, there are two options: 1) trigger the build using capability SYS_PTRACE to allow running asan when executing the generators. 2) disable asan in the generators. The first option seems not feasible, as the compilation of the ldpctest does not succeed (in fact, for a reason I don't understand, ninja seems to trigger linking and is then blocked indefinitely). Therefore, this commit simple disables asan in the generators. --- .../nrLDPC_decoder/nrLDPC_tools/generator_bnProc/main.c | 6 ++++++ .../nrLDPC_tools/generator_bnProc_avx512/main.c | 6 ++++++ .../nrLDPC_decoder/nrLDPC_tools/generator_cnProc/main.c | 7 +++++++ .../nrLDPC_tools/generator_cnProc_avx512/main.c | 7 +++++++ 4 files changed, 26 insertions(+) diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/main.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/main.c index 1f00242ae5..9e5f9e2bb8 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/main.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc/main.c @@ -27,6 +27,12 @@ void nrLDPC_bnProc_BG2_generator_AVX2(const char*, int); void nrLDPC_bnProcPc_BG1_generator_AVX2(const char*, int); void nrLDPC_bnProcPc_BG2_generator_AVX2(const char*, int); +const char *__asan_default_options() +{ + /* don't do leak checking in nr_ulsim, creates problems in the CI */ + return "detect_leaks=0"; +} + int main(int argc, char *argv[]) { if (argc != 2) { diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc_avx512/main.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc_avx512/main.c index 34ff518019..8db03d8f51 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc_avx512/main.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_bnProc_avx512/main.c @@ -28,6 +28,12 @@ void nrLDPC_bnProc_BG2_generator_AVX512(const char *, int); void nrLDPC_bnProcPc_BG1_generator_AVX512(const char *, int); void nrLDPC_bnProcPc_BG2_generator_AVX512(const char *, int); +const char *__asan_default_options() +{ + /* don't do leak checking in nr_ulsim, creates problems in the CI */ + return "detect_leaks=0"; +} + int main(int argc, char *argv[]) { if (argc != 2) { diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/main.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/main.c index f2e5f2f127..9d81417749 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/main.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc/main.c @@ -24,6 +24,13 @@ #define NB_R 3 void nrLDPC_cnProc_BG1_generator_AVX2(const char*, int); void nrLDPC_cnProc_BG2_generator_AVX2(const char*, int); + +const char *__asan_default_options() +{ + /* don't do leak checking in nr_ulsim, creates problems in the CI */ + return "detect_leaks=0"; +} + int main(int argc, char *argv[]) { if (argc != 2) { diff --git a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/main.c b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/main.c index cf9c9b6a66..04a6527c69 100644 --- a/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/main.c +++ b/openair1/PHY/CODING/nrLDPC_decoder/nrLDPC_tools/generator_cnProc_avx512/main.c @@ -24,6 +24,13 @@ #define NB_R 3 void nrLDPC_cnProc_BG1_generator_AVX512(const char *, int); void nrLDPC_cnProc_BG2_generator_AVX512(const char *, int); + +const char *__asan_default_options() +{ + /* don't do leak checking in nr_ulsim, creates problems in the CI */ + return "detect_leaks=0"; +} + int main(int argc, char *argv[]) { if (argc != 2) {