The warning was:
------------------------
In file included from /roux/openairinterface5g/openair2/UTIL/LOG/log.h:306:0,
from /roux/openairinterface5g/openair1/PHY/defs.h:54,
from /roux/openairinterface5g/openair2/LAYER2/MAC/eNB_scheduler_ulsch.c:33:
/roux/openairinterface5g/openair2/UTIL/LOG/log.h: In function 'printMeas':
/roux/openairinterface5g/common/utils/T/T.h:94:26: warning: format not a string literal and no format arguments [-Wformat-security]
#define T_ID(x) ((struct T_header *)(uintptr_t)(x))
^
/roux/openairinterface5g/common/utils/T/T.h:29:22: note: in definition of macro 'T_PUT_int'
int T_PUT_var = (val); \
^
/roux/openairinterface5g/common/utils/T/T.h:269:7: note: in expansion of macro 'T_HEADER'
T_HEADER(t); \
^
/roux/openairinterface5g/common/utils/T/T.h:101:76: note: in expansion of macro 'T3'
n18,n19,n20,n21,n22,n23,n24,n25,n26,n27,n28,n29,n30,n31,n32,n,...) T##n
^
/roux/openairinterface5g/common/utils/T/T.h:102:16: note: in expansion of macro 'TN'
#define T(...) TN(__VA_ARGS__)
^
/roux/openairinterface5g/openair2/UTIL/LOG/log.h:308:28: note: in expansion of macro 'T'
# define LOG_W(c, x...) T(T_LEGACY_ ## c ## _WARNING, T_PRINTF(x))
^
/roux/openairinterface5g/common/utils/T/T_IDs.h:71:30: note: in expansion of macro 'T_ID'
#define T_LEGACY_PHY_WARNING T_ID(68)
^
/roux/openairinterface5g/openair2/UTIL/LOG/log.h:308:30: note: in expansion of macro 'T_LEGACY_PHY_WARNING'
# define LOG_W(c, x...) T(T_LEGACY_ ## c ## _WARNING, T_PRINTF(x))
^
/roux/openairinterface5g/openair2/UTIL/LOG/log.h:411:9: note: in expansion of macro 'LOG_W'
LOG_W(PHY,txt2);
------------------------
over and over.
By replacing LOG_W(PHY,txt2) by LOG_W(PHY,"%s",txt2) all the warnings
are removed.
This reverts commit d31634c358.
Laurent Thomas had a problem on one machine with the build_oai
way of checking for nettle.
The problem with the alternative solution of including nettle/bignum.h
is that it is very unclear.
The problem with nettle is that the file nettle/config.h does not
exist for version 2. It was introduced in version 3.
We want to support both versions, but there is an API incompatibility.
So we need an #if #else mechanism.
The file nettle/bignum.h is present in both versions 2 and 3 and it
includes nettle/version.h in the version 3.
So by including this file, we can check for the existence of
NETTLE_VERSION_MAJOR (that comes from nettle/config.h) in the
code.
But as you can see, the reasoning is way too complex.
So it's better to keep the check in cmake_targets/CMakeLists.txt.
As long as we support version 2 this will be the way to go.
It is possible to force a given version in specific non-generic
customized environments.
In openairinterface5g many definitions in many layers of UE or eNB NB_MAX.
We created a file called openairinterface5g_limits.h
located at openairinterface5g_dir/targets/COMMON/ declaring the number max
of UE and eNB to be used in ALL layers depending on launching conditions
(LARGE_SCALE for example).
The LOG_X macros emit a lot of warnings when compiling with the T
because they call the function logRecord (or logRecord_mt)
which has not been "marked" as calling printf, so gcc won't
emit typical printf warnings.
With the T, they directly translate to sprintf, so those warnings
pop up, much more verbose due to several macro expansions.
Let's make them pop up all the time so it's easier to fix them.
1- implement max harq retrans
2- bug in harqId > 1 for dci format 1A
3- wrong G computation
4- bug in harq UL for scheduling flag
5- initial sync, limit freq offset to 150Hz