TSAN doesn't work well then threads are created with attributes
thar require root rights but the process is run as normal user.
this patch avoid the thread attributes in this case. TSAN isn't going
to be used for production builds.
this fixes a linking problem with RPi 3 (and probably others) running
with Raspbian (new Raspberry Pi OS) that can't use the inline
atomic functions but instead require linking against the lib -latomic.
The CMake code is based on SoapyRTLSdr file (licensed under MIT)
https://github.com/pothosware/SoapyRTLSDR/blob/master/CheckAtomic.cmake
this allows to limit the number of compile jobs to e.g. one or two
which is needed when using parallel build systems like Ninja on
resource (RAM) contrained systems, like the RPi4
gcc sets the inlining limit a bit arbitrary and the default gcc
on the RPi2 seems to use a lower value so compiling the SIMD
extensions fails with an "inlining failed" error in
srslte_mat_2x2_mmse_csi_simd().
this patch increases the default value. even though its
increased for all platforms it shouldn't case issues on other
machines. the value isn't used by clang.
we've added this to allow building for older glibc
version that cause issues with redefining some structs.
this patch removes the flag and auto-detects it using the glibc version
`AUTO_DETECT_ISA` will disable the resolution of the SSE packages
and the user will have to manually set `HAVE_{AVX,AVX2,SSE}`.
Solves #453
Signed-off-by: Filipe Laíns <lains@archlinux.org>
rrc_meas refactor. Need to split commit
Fix typo
Temporal commit
Apply rx_gain_offset to neighbour cell measurements
srsLTE: modify TESTASSERT Macro to follow codeline
SRSUE: prevent RRC from having serving cell in neighbour list
SRSUE: DL HARQ does not need Time Aligment Timer. UL is disabled using PUCCH resources release
SRSUE: extend intra-frequency to CA SCell
SRSUE: fix confusing/ambiguous code in the RRC measurements and fix concurrency issue
SRSUE: remove RRC measurement report triggers when measurements are modified or HO succesful
SRSUE: fix compilation issues and Reest SIB indexes
Fixes sync using incorrect cell configuration when search cell does not find a correct cell
Small refactor to remove measurement report triggers always after removing measurement
SRSUE: Removed SIC PSS from UE
SRSUE: fix inter-frequency reestablishment and added more traces
SRSUE: Fix compilation issue
This fixes the following clang's warning
warning: unknown warning option '-Wno-unused-but-set-variable'; did you mean
'-Wno-unused-const-variable'? [-Wunknown-warning-option]
This patch solves two different issues at the same time when building
with gcc/g++ 9.2.0:
1) The -fvisibility=hidden support check was done using the C++
compiler only (with check_cxx_compiler_flag), inside the block
corresponding to the C compiler being GNU/clang, and the result of
the check was applied to both C++ (CXX_FLAGS) and C (C_FLAGS) flags.
Instead of this, there should be separate checks for the C and C++
compilers, each of them modifying a single set of <LANG>_FLAGS.
2) -Wincompatible-pointer-types support check was done using the C++
compiler only, and the result of the check was applied to both C++
(CXX_FLAGS) and C (C_FLAGS) flags. But, this warning is not
applicable to C++ and actually breaks compilation when using g++ 9.2:
[ 0%] Building CXX object lib/src/asn1/CMakeFiles/rrc_asn1.dir/rrc_asn1.cc.o
cc1plus: error: ‘-Werror=’ argument ‘-Werror=incompatible-pointer-types’ is not valid for C++ [-Werror]
Instead of this, there should be a check for this warning only using
the C compiler, and therefore only modifying the C flags (C_FLAGS).
This patch splits the macro into one specific for C++ (which modifies
CXX_FLAGS) and one specific for C (which modifies C_FLAGS). And so,
the macro call to check for `-Werror=incompatible-pointer-types' is
made C-only, and the one for `-fvisibility=hidden` is done for both C
and C++ targets (each on the correct GNU/clang compiler block).
Due to how the tests are done in cmake, the '-fvisibility=hidden'
check wasn't even succeding before, so the compiler option wasn't
being effectively used. The cmake flags.make file contents throughout
the project are updated as follows now:
Before this change, we had:
C_FLAGS = -Werror=incompatible-pointer-types ...
CXX_FLAGS = -Werror=incompatible-pointer-types ...
And after this change, we have:
C_FLAGS = -Werror=incompatible-pointer-types -fvisibility=hidden ...
CXX_FLAGS = -fvisibility=hidden ...