Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Arch Linux build issues (fftwf_make_planner_thread_safe) #21

Closed
dvzrv opened this issue Mar 25, 2018 · 17 comments
Closed

Arch Linux build issues (fftwf_make_planner_thread_safe) #21

dvzrv opened this issue Mar 25, 2018 · 17 comments

Comments

@dvzrv
Copy link

dvzrv commented Mar 25, 2018

I'm currently trying to create a package for Arch Linux, to eventually move ambix to the [community] repository.
However, I have troubles building it with:
alsa-lib: 1.1.5-1
eigen: 3.3.4-1
fftw: 3.3.7-1
freetype2: 2.9-2
glu: 9.0.0-4
jack: 0.125.0-3
libsoxr: 0.1.3-1
libxinerama: 1.1.3-2
libxcursor: 1.1.15-1
libxrandr: 1.5.1-2
zita-convolver: 3.1.0-6

It seems as if fftw is not detected properly, or the fftw package in Arch is missing something. For the latter reason I have build fftw from source to make sure (correlating with how Debian currently builds it), that everything is in its right place.
Apart from not building static libs and not building for that many architectures, it should be the same though!

In any case, the build reproducibly fails, as can be seen in the below log:

CMake Deprecation Warning at CMakeLists.txt:3 (cmake_policy):
  The OLD behavior for policy CMP0026 will be removed from a future version
  of CMake.

  The cmake-policies(7) manual explains that the OLD behaviors of all
  policies are deprecated and that a policy should be set to OLD only under
  specific short-term circumstances.  Projects should be ported to the NEW
  behavior and not rely on setting a policy to OLD.


-- The C compiler identification is GNU 7.3.1
-- The CXX compiler identification is GNU 7.3.1
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found Eigen3: /usr/include/eigen3 (Required is at least version "2.91.0") 
-- Found libsoxr: /usr/lib/libsoxr.so
-- Found OpenGL: /usr/lib/libOpenGL.so   
-- Found GLUT: /usr/lib/libGLU.so  
-- Found Freetype: /usr/lib/libfreetype.so (found version "2.9.0") 
-- Found LIBZITACONVOLVER: /usr/lib/libzita-convolver.so
-- Configuring done
-- Generating done
-- Build files have been written to: /build/ambix/src/ambix-0.2.8/build
Scanning dependencies of target JUCE_STATIC
[  0%] Building CXX object JUCE/CMakeFiles/JUCE_STATIC.dir/modules/juce_audio_basics/juce_audio_basics.cpp.o
<command-line>:0:0: warning: "JUCE_STANDALONE_APPLICATION" redefined
<command-line>:0:0: note: this is the location of the previous definition
[  0%] Building CXX object JUCE/CMakeFiles/JUCE_STATIC.dir/modules/juce_audio_formats/juce_audio_formats.cpp.o
<command-line>:0:0: warning: "JUCE_STANDALONE_APPLICATION" redefined
<command-line>:0:0: note: this is the location of the previous definition
[  1%] Building CXX object JUCE/CMakeFiles/JUCE_STATIC.dir/modules/juce_audio_plugin_client/utility/juce_PluginUtilities.cpp.o
<command-line>:0:0: warning: "JUCE_STANDALONE_APPLICATION" redefined
<command-line>:0:0: note: this is the location of the previous definition
In file included from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/juce_gui_basics.h:178:0,
                 from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_plugin_client/utility/../juce_audio_plugin_client.h:52,
                 from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_plugin_client/utility/juce_IncludeModuleHeaders.h:28,
                 from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_plugin_client/utility/juce_PluginUtilities.cpp:31:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/mouse/juce_LassoComponent.h: In member function ‘void juce::LassoComponent<SelectableItemType>::paint(juce::Graphics&)’:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/mouse/juce_LassoComponent.h:202:23: warning: invalid use of incomplete type ‘class juce::LookAndFeel’
         getLookAndFeel().drawLasso (g, *this);
         ~~~~~~~~~~~~~~^~
In file included from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_plugin_client/utility/../juce_audio_plugin_client.h:52:0,
                 from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_plugin_client/utility/juce_IncludeModuleHeaders.h:28,
                 from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_plugin_client/utility/juce_PluginUtilities.cpp:31:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/juce_gui_basics.h:115:7: note: forward declaration of ‘class juce::LookAndFeel’
 class LookAndFeel;
       ^~~~~~~~~~~
[  1%] Building CXX object JUCE/CMakeFiles/JUCE_STATIC.dir/modules/juce_audio_processors/juce_audio_processors.cpp.o
<command-line>:0:0: warning: "JUCE_STANDALONE_APPLICATION" redefined
<command-line>:0:0: note: this is the location of the previous definition
In file included from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/juce_gui_basics.h:178:0,
                 from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_processors/juce_audio_processors.h:54,
                 from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_processors/juce_audio_processors.cpp:36:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/mouse/juce_LassoComponent.h: In member function ‘void juce::LassoComponent<SelectableItemType>::paint(juce::Graphics&)’:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/mouse/juce_LassoComponent.h:202:23: warning: invalid use of incomplete type ‘class juce::LookAndFeel’
         getLookAndFeel().drawLasso (g, *this);
         ~~~~~~~~~~~~~~^~
In file included from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_processors/juce_audio_processors.h:54:0,
                 from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_processors/juce_audio_processors.cpp:36:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/juce_gui_basics.h:115:7: note: forward declaration of ‘class juce::LookAndFeel’
 class LookAndFeel;
       ^~~~~~~~~~~
[  1%] Building CXX object JUCE/CMakeFiles/JUCE_STATIC.dir/modules/juce_audio_utils/juce_audio_utils.cpp.o
<command-line>:0:0: warning: "JUCE_STANDALONE_APPLICATION" redefined
<command-line>:0:0: note: this is the location of the previous definition
In file included from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/juce_gui_basics.h:178:0,
                 from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_utils/juce_audio_utils.h:54,
                 from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_utils/juce_audio_utils.cpp:37:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/mouse/juce_LassoComponent.h: In member function ‘void juce::LassoComponent<SelectableItemType>::paint(juce::Graphics&)’:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/mouse/juce_LassoComponent.h:202:23: warning: invalid use of incomplete type ‘class juce::LookAndFeel’
         getLookAndFeel().drawLasso (g, *this);
         ~~~~~~~~~~~~~~^~
In file included from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_utils/juce_audio_utils.h:54:0,
                 from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_utils/juce_audio_utils.cpp:37:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/juce_gui_basics.h:115:7: note: forward declaration of ‘class juce::LookAndFeel’
 class LookAndFeel;
       ^~~~~~~~~~~
[  2%] Building CXX object JUCE/CMakeFiles/JUCE_STATIC.dir/modules/juce_box2d/juce_box2d.cpp.o
<command-line>:0:0: warning: "JUCE_STANDALONE_APPLICATION" redefined
<command-line>:0:0: note: this is the location of the previous definition
[  2%] Building CXX object JUCE/CMakeFiles/JUCE_STATIC.dir/modules/juce_core/juce_core.cpp.o
<command-line>:0:0: warning: "JUCE_STANDALONE_APPLICATION" redefined
<command-line>:0:0: note: this is the location of the previous definition
[  3%] Building CXX object JUCE/CMakeFiles/JUCE_STATIC.dir/modules/juce_data_structures/juce_data_structures.cpp.o
<command-line>:0:0: warning: "JUCE_STANDALONE_APPLICATION" redefined
<command-line>:0:0: note: this is the location of the previous definition
[  3%] Building CXX object JUCE/CMakeFiles/JUCE_STATIC.dir/modules/juce_events/juce_events.cpp.o
<command-line>:0:0: warning: "JUCE_STANDALONE_APPLICATION" redefined
<command-line>:0:0: note: this is the location of the previous definition
[  3%] Building CXX object JUCE/CMakeFiles/JUCE_STATIC.dir/modules/juce_graphics/juce_graphics.cpp.o
<command-line>:0:0: warning: "JUCE_STANDALONE_APPLICATION" redefined
<command-line>:0:0: note: this is the location of the previous definition
[  4%] Building CXX object JUCE/CMakeFiles/JUCE_STATIC.dir/modules/juce_gui_basics/juce_gui_basics.cpp.o
<command-line>:0:0: warning: "JUCE_STANDALONE_APPLICATION" redefined
<command-line>:0:0: note: this is the location of the previous definition
In file included from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/juce_gui_basics.h:178:0,
                 from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/juce_gui_basics.cpp:43:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/mouse/juce_LassoComponent.h: In member function ‘void juce::LassoComponent<SelectableItemType>::paint(juce::Graphics&)’:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/mouse/juce_LassoComponent.h:202:23: warning: invalid use of incomplete type ‘class juce::LookAndFeel’
         getLookAndFeel().drawLasso (g, *this);
         ~~~~~~~~~~~~~~^~
In file included from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/juce_gui_basics.cpp:43:0:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/juce_gui_basics.h:115:7: note: forward declaration of ‘class juce::LookAndFeel’
 class LookAndFeel;
       ^~~~~~~~~~~
[  4%] Building CXX object JUCE/CMakeFiles/JUCE_STATIC.dir/modules/juce_gui_extra/juce_gui_extra.cpp.o
<command-line>:0:0: warning: "JUCE_STANDALONE_APPLICATION" redefined
<command-line>:0:0: note: this is the location of the previous definition
In file included from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/juce_gui_basics.h:178:0,
                 from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_extra/juce_gui_extra.h:53,
                 from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_extra/juce_gui_extra.cpp:40:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/mouse/juce_LassoComponent.h: In member function ‘void juce::LassoComponent<SelectableItemType>::paint(juce::Graphics&)’:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/mouse/juce_LassoComponent.h:202:23: warning: invalid use of incomplete type ‘class juce::LookAndFeel’
         getLookAndFeel().drawLasso (g, *this);
         ~~~~~~~~~~~~~~^~
In file included from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_extra/juce_gui_extra.h:53:0,
                 from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_extra/juce_gui_extra.cpp:40:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/juce_gui_basics.h:115:7: note: forward declaration of ‘class juce::LookAndFeel’
 class LookAndFeel;
       ^~~~~~~~~~~
[  5%] Building CXX object JUCE/CMakeFiles/JUCE_STATIC.dir/modules/juce_opengl/juce_opengl.cpp.o
<command-line>:0:0: warning: "JUCE_STANDALONE_APPLICATION" redefined
<command-line>:0:0: note: this is the location of the previous definition
In file included from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/juce_gui_basics.h:178:0,
                 from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_extra/juce_gui_extra.h:53,
                 from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_opengl/juce_opengl.h:56,
                 from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_opengl/juce_opengl.cpp:39:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/mouse/juce_LassoComponent.h: In member function ‘void juce::LassoComponent<SelectableItemType>::paint(juce::Graphics&)’:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/mouse/juce_LassoComponent.h:202:23: warning: invalid use of incomplete type ‘class juce::LookAndFeel’
         getLookAndFeel().drawLasso (g, *this);
         ~~~~~~~~~~~~~~^~
In file included from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_extra/juce_gui_extra.h:53:0,
                 from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_opengl/juce_opengl.h:56,
                 from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_opengl/juce_opengl.cpp:39:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/juce_gui_basics.h:115:7: note: forward declaration of ‘class juce::LookAndFeel’
 class LookAndFeel;
       ^~~~~~~~~~~
[  5%] Building CXX object JUCE/CMakeFiles/JUCE_STATIC.dir/modules/juce_osc/juce_osc.cpp.o
<command-line>:0:0: warning: "JUCE_STANDALONE_APPLICATION" redefined
<command-line>:0:0: note: this is the location of the previous definition
[  5%] Linking CXX static library libJUCE_STATIC.a
[  5%] Built target JUCE_STATIC
Scanning dependencies of target ambix_binaural_o5
[  6%] Building CXX object ambix_binaural/ambix_binaural/CMakeFiles/ambix_binaural_o5.dir/__/__/JUCE/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp.o
In file included from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/juce_gui_basics.h:178:0,
                 from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_plugin_client/VST/../utility/../juce_audio_plugin_client.h:52,
                 from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_plugin_client/VST/../utility/juce_IncludeModuleHeaders.h:28,
                 from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp:84:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/mouse/juce_LassoComponent.h: In member function ‘void juce::LassoComponent<SelectableItemType>::paint(juce::Graphics&)’:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/mouse/juce_LassoComponent.h:202:23: warning: invalid use of incomplete type ‘class juce::LookAndFeel’
         getLookAndFeel().drawLasso (g, *this);
         ~~~~~~~~~~~~~~^~
In file included from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_plugin_client/VST/../utility/../juce_audio_plugin_client.h:52:0,
                 from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_plugin_client/VST/../utility/juce_IncludeModuleHeaders.h:28,
                 from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp:84:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/juce_gui_basics.h:115:7: note: forward declaration of ‘class juce::LookAndFeel’
 class LookAndFeel;
       ^~~~~~~~~~~
[  6%] Building CXX object ambix_binaural/ambix_binaural/CMakeFiles/ambix_binaural_o5.dir/__/__/JUCE/modules/juce_audio_plugin_client/LV2/juce_LV2_Wrapper.cpp.o
In file included from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/juce_gui_basics.h:178:0,
                 from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_plugin_client/LV2/../utility/../juce_audio_plugin_client.h:52,
                 from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_plugin_client/LV2/../utility/juce_IncludeModuleHeaders.h:28,
                 from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_plugin_client/LV2/juce_LV2_Wrapper.cpp:74:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/mouse/juce_LassoComponent.h: In member function ‘void juce::LassoComponent<SelectableItemType>::paint(juce::Graphics&)’:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/mouse/juce_LassoComponent.h:202:23: warning: invalid use of incomplete type ‘class juce::LookAndFeel’
         getLookAndFeel().drawLasso (g, *this);
         ~~~~~~~~~~~~~~^~
In file included from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_plugin_client/LV2/../utility/../juce_audio_plugin_client.h:52:0,
                 from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_plugin_client/LV2/../utility/juce_IncludeModuleHeaders.h:28,
                 from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_plugin_client/LV2/juce_LV2_Wrapper.cpp:74:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/juce_gui_basics.h:115:7: note: forward declaration of ‘class juce::LookAndFeel’
 class LookAndFeel;
       ^~~~~~~~~~~
[  7%] Building CXX object ambix_binaural/ambix_binaural/CMakeFiles/ambix_binaural_o5.dir/__/Source/AmbiSpeaker.cpp.o
In file included from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/juce_gui_basics.h:178:0,
                 from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client.h:52,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/JuceLibraryCode/JuceHeader.h:20,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/Source/AmbiSpeaker.h:23,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/Source/AmbiSpeaker.cpp:20:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/mouse/juce_LassoComponent.h: In member function ‘void juce::LassoComponent<SelectableItemType>::paint(juce::Graphics&)’:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/mouse/juce_LassoComponent.h:202:23: warning: invalid use of incomplete type ‘class juce::LookAndFeel’
         getLookAndFeel().drawLasso (g, *this);
         ~~~~~~~~~~~~~~^~
In file included from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client.h:52:0,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/JuceLibraryCode/JuceHeader.h:20,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/Source/AmbiSpeaker.h:23,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/Source/AmbiSpeaker.cpp:20:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/juce_gui_basics.h:115:7: note: forward declaration of ‘class juce::LookAndFeel’
 class LookAndFeel;
       ^~~~~~~~~~~
[  7%] Building CXX object ambix_binaural/ambix_binaural/CMakeFiles/ambix_binaural_o5.dir/__/Source/ConvolverData.cpp.o
In file included from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/juce_gui_basics.h:178:0,
                 from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client.h:52,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/JuceLibraryCode/JuceHeader.h:20,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/Source/ConvolverData.h:23,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/Source/ConvolverData.cpp:20:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/mouse/juce_LassoComponent.h: In member function ‘void juce::LassoComponent<SelectableItemType>::paint(juce::Graphics&)’:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/mouse/juce_LassoComponent.h:202:23: warning: invalid use of incomplete type ‘class juce::LookAndFeel’
         getLookAndFeel().drawLasso (g, *this);
         ~~~~~~~~~~~~~~^~
In file included from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client.h:52:0,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/JuceLibraryCode/JuceHeader.h:20,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/Source/ConvolverData.h:23,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/Source/ConvolverData.cpp:20:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/juce_gui_basics.h:115:7: note: forward declaration of ‘class juce::LookAndFeel’
 class LookAndFeel;
       ^~~~~~~~~~~
[  7%] Building CXX object ambix_binaural/ambix_binaural/CMakeFiles/ambix_binaural_o5.dir/__/Source/MtxConv.cpp.o
In file included from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/juce_gui_basics.h:178:0,
                 from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client.h:52,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/JuceLibraryCode/JuceHeader.h:20,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/Source/MtxConv.h:22,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/Source/MtxConv.cpp:19:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/mouse/juce_LassoComponent.h: In member function ‘void juce::LassoComponent<SelectableItemType>::paint(juce::Graphics&)’:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/mouse/juce_LassoComponent.h:202:23: warning: invalid use of incomplete type ‘class juce::LookAndFeel’
         getLookAndFeel().drawLasso (g, *this);
         ~~~~~~~~~~~~~~^~
In file included from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client.h:52:0,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/JuceLibraryCode/JuceHeader.h:20,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/Source/MtxConv.h:22,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/Source/MtxConv.cpp:19:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/juce_gui_basics.h:115:7: note: forward declaration of ‘class juce::LookAndFeel’
 class LookAndFeel;
       ^~~~~~~~~~~
[  8%] Building CXX object ambix_binaural/ambix_binaural/CMakeFiles/ambix_binaural_o5.dir/__/Source/PluginEditor.cpp.o
In file included from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/juce_gui_basics.h:178:0,
                 from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client.h:52,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/JuceLibraryCode/JuceHeader.h:20,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/Source/PluginEditor.h:24,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/Source/PluginEditor.cpp:20:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/mouse/juce_LassoComponent.h: In member function ‘void juce::LassoComponent<SelectableItemType>::paint(juce::Graphics&)’:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/mouse/juce_LassoComponent.h:202:23: warning: invalid use of incomplete type ‘class juce::LookAndFeel’
         getLookAndFeel().drawLasso (g, *this);
         ~~~~~~~~~~~~~~^~
In file included from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client.h:52:0,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/JuceLibraryCode/JuceHeader.h:20,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/Source/PluginEditor.h:24,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/Source/PluginEditor.cpp:20:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/juce_gui_basics.h:115:7: note: forward declaration of ‘class juce::LookAndFeel’
 class LookAndFeel;
       ^~~~~~~~~~~
[  8%] Building CXX object ambix_binaural/ambix_binaural/CMakeFiles/ambix_binaural_o5.dir/__/Source/PluginProcessor.cpp.o
In file included from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/juce_gui_basics.h:178:0,
                 from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client.h:52,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/JuceLibraryCode/JuceHeader.h:20,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/Source/PluginProcessor.h:23,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/Source/PluginProcessor.cpp:20:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/mouse/juce_LassoComponent.h: In member function ‘void juce::LassoComponent<SelectableItemType>::paint(juce::Graphics&)’:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/mouse/juce_LassoComponent.h:202:23: warning: invalid use of incomplete type ‘class juce::LookAndFeel’
         getLookAndFeel().drawLasso (g, *this);
         ~~~~~~~~~~~~~~^~
In file included from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client.h:52:0,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/JuceLibraryCode/JuceHeader.h:20,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/Source/PluginProcessor.h:23,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/Source/PluginProcessor.cpp:20:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/juce_gui_basics.h:115:7: note: forward declaration of ‘class juce::LookAndFeel’
 class LookAndFeel;
       ^~~~~~~~~~~
[  9%] Building CXX object ambix_binaural/ambix_binaural/CMakeFiles/ambix_binaural_o5.dir/__/__/common/MyMeter/MyMeter.cpp.o
In file included from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/juce_gui_basics.h:178:0,
                 from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client.h:52,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/JuceLibraryCode/JuceHeader.h:20,
                 from /build/ambix/src/ambix-0.2.8/common/MyMeter/MyMeter.h:26,
                 from /build/ambix/src/ambix-0.2.8/common/MyMeter/MyMeter.cpp:25:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/mouse/juce_LassoComponent.h: In member function ‘void juce::LassoComponent<SelectableItemType>::paint(juce::Graphics&)’:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/mouse/juce_LassoComponent.h:202:23: warning: invalid use of incomplete type ‘class juce::LookAndFeel’
         getLookAndFeel().drawLasso (g, *this);
         ~~~~~~~~~~~~~~^~
In file included from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client.h:52:0,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/JuceLibraryCode/JuceHeader.h:20,
                 from /build/ambix/src/ambix-0.2.8/common/MyMeter/MyMeter.h:26,
                 from /build/ambix/src/ambix-0.2.8/common/MyMeter/MyMeter.cpp:25:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/juce_gui_basics.h:115:7: note: forward declaration of ‘class juce::LookAndFeel’
 class LookAndFeel;
       ^~~~~~~~~~~
[  9%] Building CXX object ambix_binaural/ambix_binaural/CMakeFiles/ambix_binaural_o5.dir/__/__/common/MyMeterDsp/MyMeterDsp.cpp.o
[  9%] Linking CXX shared module libambix_binaural_o5.so
[  9%] Built target ambix_binaural_o5
Scanning dependencies of target ambix_binaural_standalone_o5
[ 10%] Building CXX object ambix_binaural/ambix_binaural_standalone/CMakeFiles/ambix_binaural_standalone_o5.dir/__/__/JUCE/standalone-filter/juce_StandaloneFilterApplication.cpp.o
In file included from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/juce_gui_basics.h:178:0,
                 from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_processors/juce_audio_processors.h:54,
                 from /build/ambix/src/ambix-0.2.8/JUCE/standalone-filter/JucePluginMain.h:18,
                 from /build/ambix/src/ambix-0.2.8/JUCE/standalone-filter/juce_StandaloneFilterApplication.cpp:12:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/mouse/juce_LassoComponent.h: In member function ‘void juce::LassoComponent<SelectableItemType>::paint(juce::Graphics&)’:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/mouse/juce_LassoComponent.h:202:23: warning: invalid use of incomplete type ‘class juce::LookAndFeel’
         getLookAndFeel().drawLasso (g, *this);
         ~~~~~~~~~~~~~~^~
In file included from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_processors/juce_audio_processors.h:54:0,
                 from /build/ambix/src/ambix-0.2.8/JUCE/standalone-filter/JucePluginMain.h:18,
                 from /build/ambix/src/ambix-0.2.8/JUCE/standalone-filter/juce_StandaloneFilterApplication.cpp:12:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/juce_gui_basics.h:115:7: note: forward declaration of ‘class juce::LookAndFeel’
 class LookAndFeel;
       ^~~~~~~~~~~
[ 10%] Building CXX object ambix_binaural/ambix_binaural_standalone/CMakeFiles/ambix_binaural_standalone_o5.dir/__/Source/AmbiSpeaker.cpp.o
In file included from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/juce_gui_basics.h:178:0,
                 from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client.h:52,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/JuceLibraryCode/JuceHeader.h:20,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/Source/AmbiSpeaker.h:23,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/Source/AmbiSpeaker.cpp:20:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/mouse/juce_LassoComponent.h: In member function ‘void juce::LassoComponent<SelectableItemType>::paint(juce::Graphics&)’:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/mouse/juce_LassoComponent.h:202:23: warning: invalid use of incomplete type ‘class juce::LookAndFeel’
         getLookAndFeel().drawLasso (g, *this);
         ~~~~~~~~~~~~~~^~
In file included from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client.h:52:0,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/JuceLibraryCode/JuceHeader.h:20,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/Source/AmbiSpeaker.h:23,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/Source/AmbiSpeaker.cpp:20:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/juce_gui_basics.h:115:7: note: forward declaration of ‘class juce::LookAndFeel’
 class LookAndFeel;
       ^~~~~~~~~~~
[ 11%] Building CXX object ambix_binaural/ambix_binaural_standalone/CMakeFiles/ambix_binaural_standalone_o5.dir/__/Source/ConvolverData.cpp.o
In file included from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/juce_gui_basics.h:178:0,
                 from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client.h:52,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/JuceLibraryCode/JuceHeader.h:20,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/Source/ConvolverData.h:23,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/Source/ConvolverData.cpp:20:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/mouse/juce_LassoComponent.h: In member function ‘void juce::LassoComponent<SelectableItemType>::paint(juce::Graphics&)’:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/mouse/juce_LassoComponent.h:202:23: warning: invalid use of incomplete type ‘class juce::LookAndFeel’
         getLookAndFeel().drawLasso (g, *this);
         ~~~~~~~~~~~~~~^~
In file included from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client.h:52:0,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/JuceLibraryCode/JuceHeader.h:20,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/Source/ConvolverData.h:23,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/Source/ConvolverData.cpp:20:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/juce_gui_basics.h:115:7: note: forward declaration of ‘class juce::LookAndFeel’
 class LookAndFeel;
       ^~~~~~~~~~~
[ 11%] Building CXX object ambix_binaural/ambix_binaural_standalone/CMakeFiles/ambix_binaural_standalone_o5.dir/__/Source/MtxConv.cpp.o
In file included from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/juce_gui_basics.h:178:0,
                 from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client.h:52,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/JuceLibraryCode/JuceHeader.h:20,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/Source/MtxConv.h:22,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/Source/MtxConv.cpp:19:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/mouse/juce_LassoComponent.h: In member function ‘void juce::LassoComponent<SelectableItemType>::paint(juce::Graphics&)’:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/mouse/juce_LassoComponent.h:202:23: warning: invalid use of incomplete type ‘class juce::LookAndFeel’
         getLookAndFeel().drawLasso (g, *this);
         ~~~~~~~~~~~~~~^~
In file included from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client.h:52:0,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/JuceLibraryCode/JuceHeader.h:20,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/Source/MtxConv.h:22,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/Source/MtxConv.cpp:19:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/juce_gui_basics.h:115:7: note: forward declaration of ‘class juce::LookAndFeel’
 class LookAndFeel;
       ^~~~~~~~~~~
[ 11%] Building CXX object ambix_binaural/ambix_binaural_standalone/CMakeFiles/ambix_binaural_standalone_o5.dir/__/Source/PluginEditor.cpp.o
In file included from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/juce_gui_basics.h:178:0,
                 from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client.h:52,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/JuceLibraryCode/JuceHeader.h:20,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/Source/PluginEditor.h:24,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/Source/PluginEditor.cpp:20:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/mouse/juce_LassoComponent.h: In member function ‘void juce::LassoComponent<SelectableItemType>::paint(juce::Graphics&)’:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/mouse/juce_LassoComponent.h:202:23: warning: invalid use of incomplete type ‘class juce::LookAndFeel’
         getLookAndFeel().drawLasso (g, *this);
         ~~~~~~~~~~~~~~^~
In file included from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client.h:52:0,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/JuceLibraryCode/JuceHeader.h:20,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/Source/PluginEditor.h:24,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/Source/PluginEditor.cpp:20:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/juce_gui_basics.h:115:7: note: forward declaration of ‘class juce::LookAndFeel’
 class LookAndFeel;
       ^~~~~~~~~~~
[ 12%] Building CXX object ambix_binaural/ambix_binaural_standalone/CMakeFiles/ambix_binaural_standalone_o5.dir/__/Source/PluginProcessor.cpp.o
In file included from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/juce_gui_basics.h:178:0,
                 from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client.h:52,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/JuceLibraryCode/JuceHeader.h:20,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/Source/PluginProcessor.h:23,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/Source/PluginProcessor.cpp:20:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/mouse/juce_LassoComponent.h: In member function ‘void juce::LassoComponent<SelectableItemType>::paint(juce::Graphics&)’:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/mouse/juce_LassoComponent.h:202:23: warning: invalid use of incomplete type ‘class juce::LookAndFeel’
         getLookAndFeel().drawLasso (g, *this);
         ~~~~~~~~~~~~~~^~
In file included from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client.h:52:0,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/JuceLibraryCode/JuceHeader.h:20,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/Source/PluginProcessor.h:23,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/Source/PluginProcessor.cpp:20:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/juce_gui_basics.h:115:7: note: forward declaration of ‘class juce::LookAndFeel’
 class LookAndFeel;
       ^~~~~~~~~~~
[ 12%] Building CXX object ambix_binaural/ambix_binaural_standalone/CMakeFiles/ambix_binaural_standalone_o5.dir/__/__/common/MyMeter/MyMeter.cpp.o
In file included from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/juce_gui_basics.h:178:0,
                 from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client.h:52,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/JuceLibraryCode/JuceHeader.h:20,
                 from /build/ambix/src/ambix-0.2.8/common/MyMeter/MyMeter.h:26,
                 from /build/ambix/src/ambix-0.2.8/common/MyMeter/MyMeter.cpp:25:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/mouse/juce_LassoComponent.h: In member function ‘void juce::LassoComponent<SelectableItemType>::paint(juce::Graphics&)’:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/mouse/juce_LassoComponent.h:202:23: warning: invalid use of incomplete type ‘class juce::LookAndFeel’
         getLookAndFeel().drawLasso (g, *this);
         ~~~~~~~~~~~~~~^~
In file included from /build/ambix/src/ambix-0.2.8/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client.h:52:0,
                 from /build/ambix/src/ambix-0.2.8/ambix_binaural/JuceLibraryCode/JuceHeader.h:20,
                 from /build/ambix/src/ambix-0.2.8/common/MyMeter/MyMeter.h:26,
                 from /build/ambix/src/ambix-0.2.8/common/MyMeter/MyMeter.cpp:25:
/build/ambix/src/ambix-0.2.8/JUCE/modules/juce_gui_basics/juce_gui_basics.h:115:7: note: forward declaration of ‘class juce::LookAndFeel’
 class LookAndFeel;
       ^~~~~~~~~~~
[ 12%] Building CXX object ambix_binaural/ambix_binaural_standalone/CMakeFiles/ambix_binaural_standalone_o5.dir/__/__/common/MyMeterDsp/MyMeterDsp.cpp.o
[ 13%] Building CXX object ambix_binaural/ambix_binaural_standalone/CMakeFiles/ambix_binaural_standalone_o5.dir/__/__/JUCE/modules/juce_audio_devices/juce_audio_devices.cpp.o
[ 13%] Linking CXX executable ../../_bin/standalone/ambix_binaural_standalone_o5
CMakeFiles/ambix_binaural_standalone_o5.dir/__/Source/MtxConv.cpp.o: In function `MtxConvMaster::MtxConvMaster()':
MtxConv.cpp:(.text+0x620): undefined reference to `fftwf_make_planner_thread_safe'
collect2: error: ld returned 1 exit status
make[2]: *** [ambix_binaural/ambix_binaural_standalone/CMakeFiles/ambix_binaural_standalone_o5.dir/build.make:320: _bin/standalone/ambix_binaural_standalone_o5] Error 1
make[1]: *** [CMakeFiles/Makefile2:217: ambix_binaural/ambix_binaural_standalone/CMakeFiles/ambix_binaural_standalone_o5.dir/all] Error 2
make: *** [Makefile:84: all] Error 2

Any help would be greatly appreciated.

@Gooberpatrol66
Copy link

The manual suggests that function doesn't work when openmp is enabled:
http://fftw.org/doc/Thread-safety.html#Thread-safety
But I can't get it to work regardless.

@Gooberpatrol66
Copy link

It appears to compile if you edit MtxConv.cpp and replace
fftw_make_planner_thread_safe();
with
void fftw_make_planner_thread_safe(void);
I don't know if that breaks anything though.

@thibaudk
Copy link

thibaudk commented Jun 26, 2018

I had the exact same problem on Ubuntu 18.04 and @Gooberpatrol66 's edit fixed it.
Cheers!
So far nothing else seems to be broken.
Will keep on testing

@dvzrv
Copy link
Author

dvzrv commented Jul 19, 2018

@kronihias I'm a little puzzled as to why you just closed this. Is it a viable option to patch your source code before building a distribution package? A little feedback about the suggested solution would have been great instead of just silently closing, as this is obviously a bug.
How am I supposed to know if the suggested fix doesn't break functionality? If it is a viable fix, please include it in a new release of the software!

@kronihias
Copy link
Owner

hi @dvzrv, I kind of missed there is a hack in the comments, sorry.
however, the solution is get the latest fftw with fftw_make_planner_thread_safe, therefore it's not a bug in the code, it's simply an outdated library you are trying to use. (needs > fftw-3.3.6-pl2)

@kronihias kronihias reopened this Jul 20, 2018
@thibaudk
Copy link

thibaudk commented Jul 20, 2018

Hi @kronihias

I got this error using fftw-3.3.7-1 on Ubuntu 18.04.

@Gooberpatrol66 edit did fix it for me.
I am now able to youse seemingly all ambix pluggins up to order 3
(higher order builds won't oppen in Ardour)

@dvzrv
Copy link
Author

dvzrv commented Jul 20, 2018

@kronihias I have now tried building against fftw 3.3.8 with the same result.

doing a grep -R "make_planner_thread_safe" /usr/include gives me:

/usr/include/fftw3.f03:    subroutine fftw_make_planner_thread_safe() bind(C, name='fftw_make_planner_thread_safe')
/usr/include/fftw3.f03:    end subroutine fftw_make_planner_thread_safe
/usr/include/fftw3.f03:    subroutine fftwf_make_planner_thread_safe() bind(C, name='fftwf_make_planner_thread_safe')
/usr/include/fftw3.f03:    end subroutine fftwf_make_planner_thread_safe
/usr/include/fftw3.h:FFTW_CDECL X(make_planner_thread_safe)(void);                           \
/usr/include/fftw3l.f03:    subroutine fftwl_make_planner_thread_safe() bind(C, name='fftwl_make_planner_thread_safe')
/usr/include/fftw3l.f03:    end subroutine fftwl_make_planner_thread_safe
/usr/include/fftw3q.f03:    subroutine fftwq_make_planner_thread_safe() bind(C, name='fftwq_make_planner_thread_safe')
/usr/include/fftw3q.f03:    end subroutine fftwq_make_planner_thread_safe

I'm unsure where this goes wrong, but as mentioned before I have also tried different builds of fftw to track this down and the ambix build still fails.

@kronihias
Copy link
Owner

hi @dvzrv, @thibaudk, and @Gooberpatrol66
of course this breaks the code. the function make_planner_thread_safe is not being called after this codechange.
i am using a thread to load new presets to speedup the startup on project load. (very helpful if several binaural plugins or mcfx_convolvers are used in one daw project)
but fftw is not threadsafe if this function is not called, and crashes are almost certain.
therefore the fix might work for you, but I can't include it upstream.
you guys have to figure out whats wrong with fftw on linux.
i don't use linux much nowadays, therefore I can't take care of that. i am waiting for a solution that does not break the code for other platforms/usecases.
thanks for your help,
matthias

@dvzrv
Copy link
Author

dvzrv commented Jul 21, 2018

@kronihias it seems fftwf_make_planner_thread_safe is a rather brute force method to deal with multi-threaded situations (http://www.fftw.org/fftw3_doc/Thread-safety.html) and will break OpenMP.
In any case: The example also explicitely calls it as void fftw_make_planner_thread_safe(void);.
Why do you do it differently in your code?

@claudeha
Copy link

The link failure

[ 13%] Linking CXX executable ../../_bin/standalone/ambix_binaural_standalone_o5
CMakeFiles/ambix_binaural_standalone_o5.dir/__/Source/MtxConv.cpp.o: In function `MtxConvMaster::MtxConvMaster()':
 MtxConv.cpp:(.text+0x620): undefined reference to `fftwf_make_planner_thread_safe'
collect2: error: ld returned 1 exit status

can be fixed properly by linking with -lfftw3f_threads as well as -lfftw3f (tested on Debian Buster with fftw3-3 version 3.3.8 from unstable (iirc)). I don't know how to do this properly in cmake, I just ran make VERBOSE=1 and edited the failing command line and re-executed it.

@chris-kuhr
Copy link

I have installed fttw3 3.3.8 and manually linked both variants against fttw3 and fttw3_threads.
But I still cannot compile ambix_binaural:

CMakeFiles/ambix_binaural_standalone_o5.dir/__/Source/MtxConv.cpp.o: In function `MtxConvMaster::MtxConvMaster()':
MtxConv.cpp:(.text+0x63f): undefined reference to `fftwf_make_planner_thread_safe'
CMakeFiles/ambix_binaural_standalone_o5.dir/__/Source/PluginProcessor.cpp.o: In function `Ambix_binauralAudioProcessor::LoadConfiguration(juce::File)':
PluginProcessor.cpp:(.text+0x6426): undefined reference to `Convproc::configure(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, unsigned int, float)'
PluginProcessor.cpp:(.text+0x6483): undefined reference to `Convproc::impdata_create(unsigned int, unsigned int, int, float*, int, int)'
collect2: error: ld returned 1 exit status
ambix_binaural/ambix_binaural_standalone/CMakeFiles/ambix_binaural_standalone_o5.dir/build.make:319: recipe for target '_bin/standalone/ambix_binaural_standalone_o5' failed
make[2]: *** [_bin/standalone/ambix_binaural_standalone_o5] Error 1
CMakeFiles/Makefile2:216: recipe for target 'ambix_binaural/ambix_binaural_standalone/CMakeFiles/ambix_binaural_standalone_o5.dir/all' failed
make[1]: *** [ambix_binaural/ambix_binaural_standalone/CMakeFiles/ambix_binaural_standalone_o5.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....

Any suggestions?

Thanks,
Ck

@umlaeute
Copy link

umlaeute commented Jan 27, 2020

you have to link against both libraries: -lfftw3f -lfftw3f_threads (instead of just -lfftw3f which is the autodetected value).

at least on Debian/buster...

@kronihias
Copy link
Owner

should be fixed with commit 9b9c8d3
also need zita-convolver 4.0 if building with zita_convolver (which is optional)

@chris-kuhr
Copy link

It does not link with libfftw 3.3.8.

MtxConv.cpp.o: in func. MtxConvMaster::MtxConvMaster(): undefined reference to fftwf_make_planner_thread_safe

Do I need a newer version?

@kronihias
Copy link
Owner

the before mentioned commit makes sure the fftw threads library is getting linked as well.
i have tested this in ubuntu and debian and it works, don't know about arch linux...

@chris-kuhr
Copy link

I am on Linux Mint 18 Sarah, which is Ubuntu 16.04.

@dvzrv
Copy link
Author

dvzrv commented Apr 11, 2020

I've just rebuilt this and it works for me now.
Thanks for the fixes @kronihias!

@dvzrv dvzrv closed this as completed Apr 11, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

7 participants