I’ve checked out latest FFADO code from subversion and trying to build it from source. When the build process reaches some files that include <algorithm>, we get the following error:
scons: Reading SConscript files ...
* Usage of additional flags is not supported by the ffado-devs.
* Use at own risk!
*
* Flags in use:
* CC = gcc
* CXX = g++
* CFLAGS =
* CXXFLAGS =
* LDFLAGS =
Checking for a working C-compiler (cached) yes
Checking for a working C++-compiler (cached) yes
Checking for pkg-config (at least version 0.0.0)... (cached) yes
Checking for libxml++-3.0... (cached) no
Checking for jack... (cached) yes
Checking for jack < 1.9.0... (cached) no
Checking for jack >= 1.9.9... (cached) yes
Installed Jack Audio Connection Kit (JACK) supports FFADO setbuffersize API
Checking for libraw1394 (2.0.5 or higher)... (cached) yes
Checking for libconfig++ (0 or higher)... (cached) yes
Checking for libxml++-2.6 (2.13.0 or higher)... (cached) yes
Checking for libiec61883 (1.1.0 or higher)... (cached) yes
Checking for lrint(3.2) in C library m... (cached) yes
Checking for lrintf(3.2) in C library m... (cached) yes
Checking whether 'which pyuic4' executes (cached) yes
Checking for the python module 'dbus.mainloop.qt' (cached) yes
Checking whether 'which pyuic4' executes (cached) yes
Checking for the python module 'PyQt4' (cached) yes
Checking whether 'which pyuic5' executes (cached) yes
Checking for the python module 'PyQt5' (cached) yes
have_dbus = 1, have_pyqt4 = 1, have_pyqt5 = 1
Checking whether 'xdg-desktop-menu --help' executes (cached) yes
Checking whether 'xdg-icon-resource --help' executes (cached) yes
Checking for dbus-1 (1.0 or higher)... (cached) yes
Checking for dbus-c++-1 (0 or higher)... (cached) yes
Checking for alsa (0 or higher)... (cached) yes
Checking whether 'which dbusxx-xml2cpp' executes (cached) yes
Checking for variable session_bus_services_dir in package dbus-1... (cached) yes
Trying to find the system triple: (cached) x86_64-unknown-linux-gnu
Doing a debug build
Detected DIST_TARGET = x86_64
User space is 64-bit
Doing a 64-bit x86_64 build for AMD FX(tm)-8350 Eight-Core Processor
Will install the service-file
scons: done reading SConscript files.
scons: Building targets ...
scons: `src' is up to date.
g++ -o support/dbus/test-dbus.o -c -m64 -std=c++11 -Wall -g -fPIC -Wno-unused-but-set-variable -DDEBUG -DDEBUG_MESSAGES -DDBUS_HAS_THREADS_INIT_DEFAULT -DDBUS_API_SUBJECT_TO_CHANGE -I. -Isrc -I/usr/include/dbus-1.0 -I/usr/lib64/dbus-1.0/include -I/usr/include/dbus-c++-1 -I/usr/include/libxml++-2.6 -I/usr/lib64/libxml++-2.6/include -I/usr/include/libxml2 -I/usr/include/glibmm-2.4 -I/usr/lib64/glibmm-2.4/include -I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -I/usr/include/sigc++-2.0 -I/usr/lib64/sigc++-2.0/include support/dbus/test-dbus.cpp
In file included from /usr/lib64/gcc/x86_64-suse-linux/4.8/include/x86intrin.h:30:0,
from /usr/include/c++/4.8/x86_64-suse-linux/bits/opt_random.h:33,
from /usr/include/c++/4.8/random:51,
from /usr/include/c++/4.8/bits/stl_algo.h:65,
from /usr/include/c++/4.8/algorithm:62,
from src/ffadotypes.h:54,
from src/debugmodule/../fbtypes.h:27,
from src/debugmodule/debugmodule.h:30,
from support/dbus/controlclient.h:27,
from support/dbus/test-dbus.cpp:30:
/usr/lib64/gcc/x86_64-suse-linux/4.8/include/mmintrin.h: In function ‘__m64 _mm_cvtsi32_si64(int)’:
/usr/lib64/gcc/x86_64-suse-linux/4.8/include/mmintrin.h:61:54: error: can’t convert between vector values of different size
return (__m64) __builtin_ia32_vec_init_v2si (__i, 0);
^
/usr/lib64/gcc/x86_64-suse-linux/4.8/include/mmintrin.h: In function ‘int _mm_cvtsi64_si32(__m64)’:
/usr/lib64/gcc/x86_64-suse-linux/4.8/include/mmintrin.h:104:53: error: cannot convert ‘__m64 {aka int}’ to ‘__vector(2) int’ for argument ‘1’ to ‘int __builtin_ia32_vec_ext_v2si(__vector(2) int, int)’
return __builtin_ia32_vec_ext_v2si ((__v2si)__i, 0);
^
/usr/lib64/gcc/x86_64-suse-linux/4.8/include/mmintrin.h: In function ‘__m64 _mm_packs_pi16(__m64, __m64)’:
/usr/lib64/gcc/x86_64-suse-linux/4.8/include/mmintrin.h:143:69: error: cannot convert ‘__v4hi {aka short int}’ to ‘__vector(4) short int’ for argument ‘1’ to ‘__vector(8) char __builtin_ia32_packsswb(__vector(4) short int, __vector(4) short int)’
return (__m64) __builtin_ia32_packsswb ((__v4hi)__m1, (__v4hi)__m2);
^
/usr/lib64/gcc/x86_64-suse-linux/4.8/include/mmintrin.h: In function ‘__m64 _mm_packs_pi32(__m64, __m64)’:
/usr/lib64/gcc/x86_64-suse-linux/4.8/include/mmintrin.h:158:69: error: cannot convert ‘__m64 {aka int}’ to ‘__vector(2) int’ for argument ‘1’ to ‘__vector(4) short int __builtin_ia32_packssdw(__vector(2) int, __vector(2) int)’
return (__m64) __builtin_ia32_packssdw ((__v2si)__m1, (__v2si)__m2);
^
/usr/lib64/gcc/x86_64-suse-linux/4.8/include/mmintrin.h: In function ‘__m64 _mm_packs_pu16(__m64, __m64)’:
/usr/lib64/gcc/x86_64-suse-linux/4.8/include/mmintrin.h:173:69: error: cannot convert ‘__v4hi {aka short int}’ to ‘__vector(4) short int’ for argument ‘1’ to ‘__vector(8) char __builtin_ia32_packuswb(__vector(4) short int, __vector(4) short int)’
return (__m64) __builtin_ia32_packuswb ((__v4hi)__m1, (__v4hi)__m2);
^
/usr/lib64/gcc/x86_64-suse-linux/4.8/include/mmintrin.h: In function ‘__m64 _mm_unpackhi_pi8(__m64, __m64)’:
/usr/lib64/gcc/x86_64-suse-linux/4.8/include/mmintrin.h:187:70: error: cannot convert ‘__v8qi {aka char}’ to ‘__vector(8) char’ for argument ‘1’ to ‘__vector(8) char __builtin_ia32_punpckhbw(__vector(8) char, __vector(8) char)’
return (__m64) __builtin_ia32_punpckhbw ((__v8qi)__m1, (__v8qi)__m2);
It seems like STL headers are incompatible with currently used out-of-box GCC.
GCC version:
gcc --version
gcc (SUSE Linux) 4.8.5
Copyright (C) 2015 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
This also does not work under Leap 42.3. I’ve downgraded in hope that it’s not reproducible under 42.2 but it is.