[Ardour-Dev] 2.7 isn't using SSE

Sampo Savolainen v2 at iki.fi
Wed Nov 26 13:07:49 PST 2008


Hi,

It seems that our code which detects whether SSE is available on the
computer Ardour is started on is failing. My guess is that it's the
combination of x86_64 and gcc 4.3 which uncovers a bug in the code
calling cpuid .

Sadly I have neither gcc 4.3 or a 64 bit OS on my development box so I'm
unable to debug this issue. For anyone willing to try, the relevant code
is in libs/pbd/fpu.cc, see FPU::FPU()


 Sampo

On Mon, 2008-11-24 at 17:23 +0000, John Rigg wrote:
> On Mon, Nov 24, 2008 at 04:41:38PM +0200, Sampo Savolainen wrote:
> > On Sun, 2008-11-23 at 18:01 +0000, John Rigg wrote:
> > > I just tested 2.7 on Debian Lenny rc1 amd64. On starting from the
> > > command line there's a message saying "No H/W specific optimizations 
> > > in use". Usually I'd expect to see a message saying it's using SSE.
> > > I used the default SConstruct file and compiled  with gcc/g++ 4.3. 
> > > Is anyone else seeing this?
> > 
> > Can you show us a compile command scons ran for you when compiling
> > ardour? Preferably for a file located in libs/ardour/
> > 
> > You probably should also post the messages scons prints before it starts
> > to actually compile.
> 
> Here's the start:
> 
> scons: Reading SConscript files ...
> Checking for pkg-config version >= 0.8.0... yes
> Checking for gthread-2.0... yes
> Checking for lrdf... yes
> Checking for libgnomecanvas-2.0... yes
> Checking for gtk+-2.0... yes
> Checking for jack... yes
> Checking for samplerate... yes
> Checking for glib-2.0... yes
> Checking for libxml-2.0... yes
> Checking for raptor... yes
> Checking for fftw3f...yes
> Checking for fftw3...yes
> Checking for aubio...yes
> Checking for C header file fftw3.h... yes
> FREESOUND support is not enabled.  Build with 'scons FREESOUND=1' to enable.
> Checking for slv2... yes
> WIIMOTE not enabled. Build with 'scons WIIMOTE=1' to enable support.
> Congratulations, you have a functioning C++ compiler.
> system triple: x86_64-unknown-linux-gnu
> 
> *******************************
> detected DIST_TARGET = x86_64
> *******************************
> 
> Checking for C header file fftw3.h... yes
> Checking for usb_interrupt_write() in C library usb... yes
> Checking for C header file linux/input.h... yes
> Checking for FLAC__seekable_stream_decoder_init() in C++ library FLAC... no
> Checking for C++ header file boost/shared_ptr.hpp... yes
> Checking for lo_server_new() in C library lo... yes
> Checking for dmalloc_shutdown() in C library dmallocth... no
> Checking for C header file alsa/asoundlib.h... yes
> Checking for internationalization support ...
> Found xgettext
> Found msgmerge
> Checking for C header file libintl.h... yes
> International version will be built.
> Checking for C header file /System/Library/Frameworks/CoreAudio.framework/Versions/A/Headers/CoreAudio.h... no
> Checking for C function posix_memalign()... yes
> Checking for C function gtk_widget_set_tooltip_text()... yes
> 
> scons: warning: Ignoring missing SConscript 'manual/SConscript'
> File "/home/jqr/ardour2/ardour-2.7/SConstruct", line 1429, in <module>
> Checking for C header file /System/Library/Frameworks/CoreServices.framework/Headers/CoreServices.h... no
> Checking for C function getmntent()... yes
> Checking for C header file execinfo.h... yes
> Checking for jack_client_open()...yes
> Checking for jack_recompute_total_latencies()...yes
> Checking for JackVideoFrameOffset in jack_position_bits_t enum...yes
> Checking for jack_port_ensure_monitor_input()...yes
> Checking for C header file wordexp.h... yes
> Checking for C header file sys/vfs.h... yes
> Checking for C header file /System/Library/Frameworks/CoreMIDI.framework/Headers/CoreMIDI.h... no
> Checking for C header file /System/Library/Frameworks/AudioToolbox.framework/Headers/ExtendedAudioFile.h... no
> Checking for C header file /System/Library/Frameworks/CoreAudio.framework/Headers/CoreAudio.h... no
> Checking for C header file /System/Library/Frameworks/AudioUnit.framework/Headers/AudioUnit.h... no
> scons: done reading SConscript files.
> scons: Building targets ...
> Substituting vars from ardour.rc.in into ardour_system.rc
> cd libs/sigc++2 && ./configure && cd -
> checking for a BSD-compatible install... /usr/bin/install -c
> checking whether build environment is sane... yes
> checking for a thread-safe mkdir -p... /bin/mkdir -p
> checking for gawk... no
> checking for mawk... mawk
> checking whether make sets $(MAKE)... yes
> checking how to create a ustar tar archive... gnutar
> checking build system type... x86_64-unknown-linux-gnu
> checking host system type... x86_64-unknown-linux-gnu
> checking for gm4... no
> checking for m4... m4
> checking for perl... /usr/bin/perl
> checking whether to enable maintainer-specific portions of Makefiles... no
> checking for gcc... gcc
> checking for C compiler default output file name... a.out
> checking whether the C compiler works... yes
> checking whether we are cross compiling... no
> checking for suffix of executables... 
> checking for suffix of object files... o
> checking whether we are using the GNU C compiler... yes
> checking whether gcc accepts -g... yes
> checking for gcc option to accept ISO C89... none needed
> checking for style of include used by make... GNU
> checking dependency style of gcc... none
> checking how to run the C preprocessor... gcc -E
> checking for some Win32 platform... no
> checking for a sed that does not truncate output... /bin/sed
> checking for grep that handles long lines and -e... /bin/grep
> checking for egrep... /bin/grep -E
> checking for ld used by gcc... /usr/bin/ld
> checking if the linker (/usr/bin/ld) is GNU ld... yes
> checking for /usr/bin/ld option to reload object files... -r
> checking for BSD-compatible nm... /usr/bin/nm -B
> checking whether ln -s works... yes
> checking how to recognize dependent libraries... pass_all
> checking for ANSI C header files... yes
> checking for sys/types.h... yes
> checking for sys/stat.h... yes
> checking for stdlib.h... yes
> checking for string.h... yes
> checking for memory.h... yes
> checking for strings.h... yes
> checking for inttypes.h... yes
> checking for stdint.h... yes
> checking for unistd.h... yes
> checking dlfcn.h usability... yes
> checking dlfcn.h presence... yes
> checking for dlfcn.h... yes
> checking for g++... g++
> checking whether we are using the GNU C++ compiler... yes
> checking whether g++ accepts -g... yes
> checking dependency style of g++... none
> checking how to run the C++ preprocessor... g++ -E
> checking for g77... no
> checking for xlf... no
> checking for f77... no
> checking for frt... no
> checking for pgf77... no
> checking for cf77... no
> checking for fort77... no
> checking for fl32... no
> checking for af77... no
> checking for xlf90... no
> checking for f90... no
> checking for pgf90... no
> checking for pghpf... no
> checking for epcf90... no
> checking for gfortran... no
> checking for g95... no
> checking for xlf95... no
> checking for f95... no
> checking for fort... no
> checking for ifort... no
> checking for ifc... no
> checking for efc... no
> checking for pgf95... no
> checking for lf95... no
> checking for ftn... no
> checking whether we are using the GNU Fortran 77 compiler... no
> checking whether  accepts -g... no
> checking the maximum length of command line arguments... 98304
> checking command to parse /usr/bin/nm -B output from gcc object... ok
> checking for objdir... .libs
> checking for ar... ar
> checking for ranlib... ranlib
> checking for strip... strip
> checking if gcc supports -fno-rtti -fno-exceptions... no
> checking for gcc option to produce PIC... -fPIC
> checking if gcc PIC flag -fPIC works... yes
> checking if gcc static flag -static works... yes
> checking if gcc supports -c -o file.o... yes
> checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes
> checking whether -lc should be explicitly linked in... no
> checking dynamic linker characteristics... GNU/Linux ld.so
> checking how to hardcode library paths into programs... immediate
> checking whether stripping libraries is possible... yes
> checking if libtool supports shared libraries... yes
> checking whether to build shared libraries... yes
> checking whether to build static libraries... yes
> checking whether we are using the GNU C++ compiler... (cached) yes
> checking whether g++ accepts -g... (cached) yes
> checking dependency style of g++... (cached) none
> checking if C++ compiler supports the use of a particular specialization when calling operator() template methods.... yes
> checking if C++ compiler supports the use of a particular specialization when calling operator() template methods omitting the template keyword.... yes
> checking if C++ compiler allows usage of member function in initialization of static member field.... yes
> checking whether C++ library symbols are declared in namespace std... yes
> checking for non-standard Sun libCstd reverse_iterator... no
> configure: creating ./config.status
> config.status: creating Makefile
> config.status: creating sigc++-2.0.pc
> config.status: creating sigc++/Makefile
> config.status: creating scripts/Makefile
> config.status: creating libsigc++-2.0.spec
> config.status: creating sigc++config.h
> config.status: executing depfiles commands
> /home/jr/ardour2/ardour-2.7
> g++ -o libs/sigc++2/sigc++/connection.os -c -Woverloaded-virtual -DGTK_NEW_TOOLTIP_API -DHAVE_LV2 -O3 -fomit-frame-pointer -ffast-math -fstrength-reduce -pipe -mmmx -m3dnow -msse -mfpmath=sse -DUSE_XMMINTRIN -DBUILD_SSE_OPTIMIZATIONS -DUSE_X86_64_ASM -Wall -DHAVE_LIBLO -Ilibs -DENABLE_NLS -fPIC -Ilibs/sigc++2 libs/sigc++2/sigc++/connection.cc
> <snip>
> 




More information about the Ardour-Dev mailing list