Skip to content

Fix #1: remove non-SIMD package, fix build

Vadim Yanitskiy requested to merge fixeria/srslte:main into main

This package is currently broken (see #1):

  • code does not compile with recent gcc,
  • non-SIMD build does contain SIMD instructions,
  • SIMD build srslte-avx2 also contains AVX512 instructions,
  • both SIMD and non-SIMD packages are built with -march=native.

Running the binaries on a different CPU results in a segfault:

[root@bc0929b559dc /]# srsenb
Illegal instruction (core dumped)
[root@bc0929b559dc /]# srsepc
Illegal instruction (core dumped)
  • add -DENABLE_WERROR=False to fix build errors
  • remove hard-coded optimization levels (-O3, -Ofast)
  • merge both srslte and srslte-avx2 into a single package [1]
  • explicitly specify -DGCC_ARCH=x86-64 to avoid -march=native
  • add -DAUTO_DETECT_ISA=False to disable automatic SIMD detection during build; specify supported SIMD kinds manually

[1] The upstream does not seem to support non-SIMD builds anymore. 40% of unit tests are failing when compiled with -DDISABLE_SIMD=True, so it makes no sense to provide broken non-SIMD package. See https://github.com/srsran/srsRAN_4G/issues/796#issuecomment-1027725983.

\cc @gromit @hanabishi @loqs

Merge request reports