kfrlib / kfr

Fast, modern C++ DSP framework, FFT, Sample Rate Conversion, FIR/IIR/Biquad Filters (SSE, AVX, AVX-512, ARM NEON)
https://www.kfrlib.com
GNU General Public License v2.0
1.65k stars 253 forks source link

ARM gcc 8.4 build errors #111

Closed mipac closed 3 years ago

mipac commented 3 years ago

I can't compile kfr on arm target first I need to comment the -mstackrealign option which is unknown and then I got the following error the first error is, when building example/fir :

error: ‘kfr::neon64::intrinsics::simd<float, 2>’ {aka ‘const struct kfr::neon64::intrinsics::simd_halves<float, 2>’} has no member named ‘whole’
     return _mm_castpd_ps(_mm_setr_pd(x.whole, y.whole));
                                         ^~~~~

gcc: 8.4.0

lscpu :

Architecture:        aarch64
Byte Order:          Little Endian
CPU(s):              8
On-line CPU(s) list: 0-7
Thread(s) per core:  1
Core(s) per socket:  2
Socket(s):           4
Vendor ID:           Nvidia
Model:               0
Model name:          ARMv8 Processor rev 0 (v8l)
Stepping:            0x0
CPU max MHz:         2265,6001
CPU min MHz:         115,2000
BogoMIPS:            62.50
L1d cache:           64K
L1i cache:           128K
L2 cache:            2048K
L3 cache:            4096K
Flags:               fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp

with clang 6 on the same platform, it compiles and pass all tests

dancazarin commented 3 years ago

Hi, Currently KFR supports ARM/AArch64 only with Clang compiler. But it may change in future versions. Also, Clang 6 is a bit old and support may be dropped in favor of newer Clang versions that fully support c++17.