Menu

#144 Latest master efc7f0 does not compile

2.7
closed
None
2019-04-08
2019-04-07
Alex
No

Latest master efc7f0 does not compile without IDG. Ubuntu 16.04, gcc/g++ 8.1, cmake 3.14.1. Screenshot is attached.

/opt/WSClean/build/wsclean/wsclean/wstackinggridder.cpp: In constructor ‘WStackingGridder::WStackingGridder(size_t, size_t, double, double, size_t, ImageBufferAllocator*, size_t, size_t)’:
/opt/WSClean/build/wsclean/wsclean/wstackinggridder.cpp:32:2: error: ‘fftw_make_planner_thread_safe’ was not declared in this scope
fftw_make_planner_thread_safe();
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/opt/WSClean/build/wsclean/wsclean/wstackinggridder.cpp:32:2: note: suggested alternative: ‘fftw_cleanup_threads’
fftw_make_planner_thread_safe();
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fftw_cleanup_threads

1 Attachments

Discussion

  • André Offringa

    André Offringa - 2019-04-07

    Thanks for reporting, Alex. What version of fftw are you using? It looks like your fftw version is too low: According to the release notes of fftw, you'll need at least fftw 3.3.5 (which is from July 2016), as that was when the fftw_make_planner_thread_safe() call was added. To make this more clear I've just added this to the installation instructions.

     
    • Alex

      Alex - 2019-04-07

      I was 3.3.4, the latest avalilable as a package in Ubuntu 16.04.6. I manually compilled 3.3.8. Now Im getting this error in case of master:

      [100%] Linking CXX executable wsclean
      /usr/bin/ld: cannot open output file wsclean: Is a directory
      collect2: error: ld returned 1 exit status
      CMakeFiles/wsclean.dir/build.make:138: recipe for target 'wsclean' failed
      make[2]: *** [wsclean] Error 1
      CMakeFiles/Makefile2:279: recipe for target 'CMakeFiles/wsclean.dir/all' failed
      make[1]: *** [CMakeFiles/wsclean.dir/all] Error 2
      Makefile:129: recipe for target 'all' failed
      make: *** [all] Error 2

      Im installing to: -DCMAKE_PREFIX_PATH=opt/WSClean

      In case of 2.6 its working.

       

      Last edit: Alex 2019-04-07
      • André Offringa

        André Offringa - 2019-04-07

        That error is a bit odd.. Looks like something is wrong with your build setup. Are you building in a separate build directory, and is that directory empty before running cmake?

         
        • Alex

          Alex - 2019-04-07

          Im sorry, I was removing chgcentre thinking it is not necessary. Now its working.

          EDIT: which library should I put to -DIDGAPI_LIBRARIES? I tried libidg-api.so, libidg-api.so.0 and few others, but Im getting:

          [ 98%] Building CXX object CMakeFiles/wsclean.dir/wscleanmain.cpp.o
          make[2]: *** No rule to make target '/opt/IDG/lib/llibidg-api.so', needed by 'wsclean'. Stop.

          root@lof7:/opt/IDG/lib# tree .

          ├── cmake
          │   ├── IDGAPITargets.cmake
          │   ├── IDGAPITargets-release.cmake
          │   ├── idg-targets.cmake
          │   ├── idg-targets-release.cmake
          │   ├── idg-util-targets.cmake
          │   └── idg-util-targets-release.cmake
          ├── idg-cpu
          │   ├── Optimized
          │   │   ├── libcpu-optimized-kernel-adder.so -> libcpu-optimized-kernel-adder.so.0
          │   │   ├── libcpu-optimized-kernel-adder.so.0
          │   │   ├── libcpu-optimized-kernel-adder-wstack.so -> libcpu-optimized-kernel-adder-wstack.so.0
          │   │   ├── libcpu-optimized-kernel-adder-wstack.so.0
          │   │   ├── libcpu-optimized-kernel-degridder.so -> libcpu-optimized-kernel-degridder.so.0
          │   │   ├── libcpu-optimized-kernel-degridder.so.0
          │   │   ├── libcpu-optimized-kernel-fft.so -> libcpu-optimized-kernel-fft.so.0
          │   │   ├── libcpu-optimized-kernel-fft.so.0
          │   │   ├── libcpu-optimized-kernel-gridder.so -> libcpu-optimized-kernel-gridder.so.0
          │   │   ├── libcpu-optimized-kernel-gridder.so.0
          │   │   ├── libcpu-optimized-kernel-splitter.so -> libcpu-optimized-kernel-splitter.so.0
          │   │   ├── libcpu-optimized-kernel-splitter.so.0
          │   │   ├── libcpu-optimized-kernel-splitter-wstack.so -> libcpu-optimized-kernel-splitter-wstack.so.0
          │   │   └── libcpu-optimized-kernel-splitter-wstack.so.0
          │   └── Reference
          │   ├── libcpu-reference-kernel-adder.so -> libcpu-reference-kernel-adder.so.0
          │   ├── libcpu-reference-kernel-adder.so.0
          │   ├── libcpu-reference-kernel-degridder.so -> libcpu-reference-kernel-degridder.so.0
          │   ├── libcpu-reference-kernel-degridder.so.0
          │   ├── libcpu-reference-kernel-fft.so -> libcpu-reference-kernel-fft.so.0
          │   ├── libcpu-reference-kernel-fft.so.0
          │   ├── libcpu-reference-kernel-gridder.so -> libcpu-reference-kernel-gridder.so.0
          │   ├── libcpu-reference-kernel-gridder.so.0
          │   ├── libcpu-reference-kernel-splitter.so -> libcpu-reference-kernel-splitter.so.0
          │   └── libcpu-reference-kernel-splitter.so.0
          ├── libidg-api.so -> libidg-api.so.0
          ├── libidg-api.so.0
          ├── libidg-common.so -> libidg-common.so.0
          ├── libidg-common.so.0
          ├── libidg-cpu.so -> libidg-cpu.so.0
          ├── libidg-cpu.so.0
          ├── libidg-fft.so -> libidg-fft.so.0
          ├── libidg-fft.so.0
          ├── libidg.so -> libidg.so.0
          ├── libidg.so.0
          └── libidg-util.so

           

          Last edit: Alex 2019-04-07
          • André Offringa

            André Offringa - 2019-04-08

            You can use CMAKE_PREFIX_PATH, like this:

            cmake ../ -DCMAKE_PREFIX_PATH="/opt/IDG/"
            

            If you need to specify multiple library search paths, you can separate them with a semicolon. You shouldn't point to the individual libraries.

             
  • André Offringa

    André Offringa - 2019-04-07
    • labels: compilation, error -->
    • status: open --> closed
    • assigned_to: André Offringa
     
  • André Offringa

    André Offringa - 2019-04-07

    Ok, thanks!