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.
Prior to this commit, the following command failed to build dlsim:
./build_oai --phy_simulators -c
Choice has been made to define it in a .h file as a static inline
function.
We now have 4 versions of T_HEADER:
- bad quality C++ version with time
- good quality C version with time
- bad quality C++ version without time
- good quality C version without time
The compilation line was:
./build_oai --eNB -w USRP
The file openairinterface5g/cmake_targets/log/lte-softmodem.Rel10.txt
has been checked and all LOG_X (and 'msg') warnings have been fixed.
- some cleanup
- thread names to include UE Mod_id
- arg of UE_thread_rxn_txnp4 to be struct rx_tx_thread_data again
- sync in UE_thread_rxn_txnp4 to use instance_cnt_rxtx again
- UE_thread to call itti_send_msg_to_task with UE->Mod_id + NB_eNB_INST
instead of INSTANCE_DEFAULT again
This may break the softmodem UE, to be tested.
The most problematic thing may be the synchronization.
I don't think it will impact the processing at all,
but I won't bet my shirt on it.
- build script has ability to indicate location for downloading uhd images
- one simple wrapper to set environment variables and initiate another program (supposed to be lte-softmodem)
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.
Memory was allocated which was "lost" because the
address of the block was put in a pointer that is
overwritten just after.
Discussing with Elena, the current commit is the correct
way to do things.
Those functions modify a global char array (a string).
Let's pass a buffer to those functions, so that it's
thread safe. The caller has been modified, with hopefully
a buffer big enough (still bigger than what was there before,
so should not break more than it did).
This commit follows 7d9945e884.
lte-softmodem UE in S1 and lte-softmodem UE in noS1 modes behave
differently here.
This commit fixes the issue for thoses cases.
Other cases (eNB S1, eNB noS1, oaisim S1/noS1) have to be checked.
This commit is a continuation of 614d6bbe2a
(ue_ip: use correct instance).
Now in openair2/NETWORK_DRIVER/UE_IP/common.c the 'inst' is not
forced to 1 anymore, we take the value 'pdcph_p->inst'.
It turns out that 'pdcph_p->inst' is 0 instead of 1 when we
run lte-softmodem as an UE.
So let's modify PDCP to set 'inst' to 1 where it was set to 0 for
the UE softmodem case, and skip the places where it is reset to 0,
still for the UE softmodem case.
This may break things, I am not sure.