Dear Matthew, Jester, or anyone familiar to building FSL from source code on OSX,
I installed gmake (GNU make ver. 4.1) and succeeded in compiling whole FSL package, except for ptx2. However again the OpenMP lines in Eddy source code were ignored, and it did not parallelize.
Judging from that ${FSLDIR}/build file and ${FSLDIR}/config/common/buildproj file call C++ and that C++ is linked to clang++ in OSX, I suspected changing the link to GCC, G++ or (real) C++ might solve the problem. I tried but received the attached error message which compiling Eddy.
Could any one tell me where I'm wrong and show me the correct way of compiling Eddy on OSX?
Jun
2015/09/17 23:55$B!"(BJun Miyata <[log in to unmask]> $B$N%a!<%k!'(B
> Dear Matthew,
>
> Thank you very much for your help. I tried to build full FSL package and got error messages for some (please see the attached build log). But at least I seemed to succeed to build EDDY.
> I tried this re-built EDDY, but the processing was not parallelized. Could you guess the cause? I prepared in the following way:
> 1. installed the latest version of Xcode (ver.5 for Mavericks)
> 2. installed the latest command line tools
> 3. installed MacPorts
> 4. installed gcc5 using MacPorts (I created a link and call of gcc correctly refers to gcc5).
>
> I think so far it's OK, but I'm not so sure if I correctly installed the libraries necessary for building.
> GNU make: I read in a website that the make in Mac is already GNU make.
> GNU install: I installed coreutils from MacPorts (actually it's ginstall).
> expat : I installed from MacPorts.
> libX11: I installed xorg-libX11 through MacPorts.
> libGL: OpenGL is already installed in Mac.
> zlib: I installed from MacPorts.
>
> In addition, the environment variable omp_num_threads is not set. Is this critical?
>
> I really appreciate if I can have a feedback.
>
> Best,
>
> Jun
>
>
>> $B:9=P?M(B: Matthew Webster <[log in to unmask]>
>> $B7oL>(B: Re: EDDY parallelization
>> $BF|IU(B: 2015$BG/(B9$B7n(B16$BF|(B 23:51:16 JST
>>
>>
>> Hello,
>> As you have upgraded your compiler, you probably need to do a full rebuild of FSL ( please see https://fsl.fmrib.ox.ac.uk/fsl/fslwiki/FslInstallation/SourceCode for more information )
>>
>> Kind Regards
>> Matthew
>>
>>> Dear Jesper and FSL experts,
>>>
>>> I have managed to install gcc5 on my Mavericks. I tried to build Eddy from the source, but I received error message as attached. Could you find what's wrong? I'm sorry I'm not experienced in building from the source.
>>> Best,
>>>
>>> Jun
>>> <error_log.txt>
>>
>
> <build.zip>
h34:eddy yakiniku$ make install
/Users/yakiniku/fslbuild/fsl/config/common/rules.mk:320: depend.mk: No such file or directory
Building dependency file depend.mk
make[1]: ディレクトリ '/Users/yakiniku/fslbuild/fsl/src/eddy' に入ります
make[2]: ディレクトリ '/Users/yakiniku/fslbuild/fsl/src/eddy' に入ります
c++ -Wall -pedantic -ansi -arch x86_64 -O3 -I/Users/yakiniku/fslbuild/fsl/extras/include/newmat -I/Users/yakiniku/fslbuild/fsl/extras/include/boost -I. -I/Users/yakiniku/fslbuild/fsl/include -I/Users/yakiniku/fslbuild/fsl/include -c -o eddy.o eddy.cpp
eddy.cpp:4:0: warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
#pragma clang diagnostic ignored "-Wunknown-pragmas" // Ignore the OpenMP pragmas
^
In file included from eddy.cpp:16:0:
ECScanClasses.h:16:0: warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
#pragma clang diagnostic ignored "-Wunknown-pragmas" // Ignore the OpenMP pragmas
^
In file included from eddy.cpp:16:0:
ECScanClasses.h:296:0: warning: ignoring #pragma omp parallel [-Wunknown-pragmas]
# pragma omp parallel for shared(fwhm)
^
ECScanClasses.h:300:0: warning: ignoring #pragma omp parallel [-Wunknown-pragmas]
# pragma omp parallel for shared(fwhm)
^
In file included from EddyUtils.h:26:0,
from eddy.cpp:19:
ECScanClasses.h:16:0: warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
#pragma clang diagnostic ignored "-Wunknown-pragmas" // Ignore the OpenMP pragmas
^
eddy.cpp:201:0: warning: ignoring #pragma omp parallel [-Wunknown-pragmas]
# pragma omp parallel for shared(mss_tmp, pmp)
^
eddy.cpp:258:0: warning: ignoring #pragma omp parallel [-Wunknown-pragmas]
#pragma omp parallel for shared(pmp,st)
^
eddy.cpp:264:0: warning: ignoring #pragma omp critical [-Wunknown-pragmas]
#pragma omp critical
^
eddy.cpp:319:0: warning: ignoring #pragma omp parallel [-Wunknown-pragmas]
#pragma omp parallel for shared(pmp,st)
^
eddy.cpp:324:0: warning: ignoring #pragma omp critical [-Wunknown-pragmas]
#pragma omp critical
^
eddy.cpp:336:0: warning: ignoring #pragma omp parallel [-Wunknown-pragmas]
#pragma omp parallel for shared(pmp,mask,stats,st)
^
eddy.cpp:351:0: warning: ignoring #pragma omp parallel [-Wunknown-pragmas]
#pragma omp parallel for shared(pmp,mask,st)
^
In file included from /Users/yakiniku/fslbuild/fsl/extras/include/boost/boost/config.hpp:57:0,
from /Users/yakiniku/fslbuild/fsl/extras/include/boost/boost/shared_ptr.hpp:17,
from eddy.cpp:10:
/Users/yakiniku/fslbuild/fsl/extras/include/boost/boost/config/suffix.hpp:414:31: warning: ISO C++ 1998 does not support 'long long' [-Wlong-long]
__extension__ typedef long long long_long_type;
^
/Users/yakiniku/fslbuild/fsl/extras/include/boost/boost/config/suffix.hpp:415:40: warning: ISO C++ 1998 does not support 'long long' [-Wlong-long]
__extension__ typedef unsigned long long ulong_long_type;
^
c++ -Wall -pedantic -ansi -arch x86_64 -O3 -I/Users/yakiniku/fslbuild/fsl/extras/include/newmat -I/Users/yakiniku/fslbuild/fsl/extras/include/boost -I. -I/Users/yakiniku/fslbuild/fsl/include -I/Users/yakiniku/fslbuild/fsl/include -c -o EddyCommandLineOptions.o EddyCommandLineOptions.cpp
In file included from /Users/yakiniku/fslbuild/fsl/extras/include/boost/boost/config.hpp:57:0,
from /Users/yakiniku/fslbuild/fsl/extras/include/boost/boost/shared_ptr.hpp:17,
from /Users/yakiniku/fslbuild/fsl/include/basisfield/basisfield.h:80,
from /Users/yakiniku/fslbuild/fsl/include/topup/topup_file_io.h:80,
from EddyCommandLineOptions.cpp:76:
/Users/yakiniku/fslbuild/fsl/extras/include/boost/boost/config/suffix.hpp:414:31: warning: ISO C++ 1998 does not support 'long long' [-Wlong-long]
__extension__ typedef long long long_long_type;
^
/Users/yakiniku/fslbuild/fsl/extras/include/boost/boost/config/suffix.hpp:415:40: warning: ISO C++ 1998 does not support 'long long' [-Wlong-long]
__extension__ typedef unsigned long long ulong_long_type;
^
c++ -Wall -pedantic -ansi -arch x86_64 -O3 -I/Users/yakiniku/fslbuild/fsl/extras/include/newmat -I/Users/yakiniku/fslbuild/fsl/extras/include/boost -I. -I/Users/yakiniku/fslbuild/fsl/include -I/Users/yakiniku/fslbuild/fsl/include -c -o ECModels.o ECModels.cpp
In file included from /Users/yakiniku/fslbuild/fsl/extras/include/boost/boost/config.hpp:57:0,
from /Users/yakiniku/fslbuild/fsl/extras/include/boost/boost/shared_ptr.hpp:17,
from ECModels.h:25,
from ECModels.cpp:24:
/Users/yakiniku/fslbuild/fsl/extras/include/boost/boost/config/suffix.hpp:414:31: warning: ISO C++ 1998 does not support 'long long' [-Wlong-long]
__extension__ typedef long long long_long_type;
^
/Users/yakiniku/fslbuild/fsl/extras/include/boost/boost/config/suffix.hpp:415:40: warning: ISO C++ 1998 does not support 'long long' [-Wlong-long]
__extension__ typedef unsigned long long ulong_long_type;
^
c++ -Wall -pedantic -ansi -arch x86_64 -O3 -I/Users/yakiniku/fslbuild/fsl/extras/include/newmat -I/Users/yakiniku/fslbuild/fsl/extras/include/boost -I. -I/Users/yakiniku/fslbuild/fsl/include -I/Users/yakiniku/fslbuild/fsl/include -c -o ECScanClasses.o ECScanClasses.cpp
In file included from EddyUtils.h:26:0,
from ECScanClasses.cpp:26:
ECScanClasses.h:16:0: warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
#pragma clang diagnostic ignored "-Wunknown-pragmas" // Ignore the OpenMP pragmas
^
In file included from EddyUtils.h:26:0,
from ECScanClasses.cpp:26:
ECScanClasses.h:296:0: warning: ignoring #pragma omp parallel [-Wunknown-pragmas]
# pragma omp parallel for shared(fwhm)
^
ECScanClasses.h:300:0: warning: ignoring #pragma omp parallel [-Wunknown-pragmas]
# pragma omp parallel for shared(fwhm)
^
In file included from ECScanClasses.cpp:27:0:
ECScanClasses.h:16:0: warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
#pragma clang diagnostic ignored "-Wunknown-pragmas" // Ignore the OpenMP pragmas
^
In file included from /Users/yakiniku/fslbuild/fsl/extras/include/boost/boost/config.hpp:57:0,
from /Users/yakiniku/fslbuild/fsl/extras/include/boost/boost/shared_ptr.hpp:17,
from /Users/yakiniku/fslbuild/fsl/include/basisfield/basisfield.h:80,
from /Users/yakiniku/fslbuild/fsl/include/warpfns/warpfns.h:89,
from ECScanClasses.cpp:22:
/Users/yakiniku/fslbuild/fsl/extras/include/boost/boost/config/suffix.hpp:414:31: warning: ISO C++ 1998 does not support 'long long' [-Wlong-long]
__extension__ typedef long long long_long_type;
^
/Users/yakiniku/fslbuild/fsl/extras/include/boost/boost/config/suffix.hpp:415:40: warning: ISO C++ 1998 does not support 'long long' [-Wlong-long]
__extension__ typedef unsigned long long ulong_long_type;
^
c++ -Wall -pedantic -ansi -arch x86_64 -O3 -I/Users/yakiniku/fslbuild/fsl/extras/include/newmat -I/Users/yakiniku/fslbuild/fsl/extras/include/boost -I. -I/Users/yakiniku/fslbuild/fsl/include -I/Users/yakiniku/fslbuild/fsl/include -c -o EddyUtils.o EddyUtils.cpp
In file included from EddyUtils.h:26:0,
from EddyUtils.cpp:28:
ECScanClasses.h:16:0: warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
#pragma clang diagnostic ignored "-Wunknown-pragmas" // Ignore the OpenMP pragmas
^
In file included from EddyUtils.h:26:0,
from EddyUtils.cpp:28:
ECScanClasses.h:296:0: warning: ignoring #pragma omp parallel [-Wunknown-pragmas]
# pragma omp parallel for shared(fwhm)
^
ECScanClasses.h:300:0: warning: ignoring #pragma omp parallel [-Wunknown-pragmas]
# pragma omp parallel for shared(fwhm)
^
In file included from /Users/yakiniku/fslbuild/fsl/extras/include/boost/boost/config.hpp:57:0,
from /Users/yakiniku/fslbuild/fsl/extras/include/boost/boost/shared_ptr.hpp:17,
from /Users/yakiniku/fslbuild/fsl/include/basisfield/basisfield.h:80,
from /Users/yakiniku/fslbuild/fsl/include/warpfns/warpfns.h:89,
from EddyUtils.cpp:26:
/Users/yakiniku/fslbuild/fsl/extras/include/boost/boost/config/suffix.hpp:414:31: warning: ISO C++ 1998 does not support 'long long' [-Wlong-long]
__extension__ typedef long long long_long_type;
^
/Users/yakiniku/fslbuild/fsl/extras/include/boost/boost/config/suffix.hpp:415:40: warning: ISO C++ 1998 does not support 'long long' [-Wlong-long]
__extension__ typedef unsigned long long ulong_long_type;
^
c++ -Wall -pedantic -ansi -arch x86_64 -O3 -I/Users/yakiniku/fslbuild/fsl/extras/include/newmat -I/Users/yakiniku/fslbuild/fsl/extras/include/boost -I. -I/Users/yakiniku/fslbuild/fsl/include -I/Users/yakiniku/fslbuild/fsl/include -c -o EddyHelperClasses.o EddyHelperClasses.cpp
In file included from EddyUtils.h:26:0,
from EddyHelperClasses.cpp:20:
ECScanClasses.h:16:0: warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
#pragma clang diagnostic ignored "-Wunknown-pragmas" // Ignore the OpenMP pragmas
^
In file included from EddyUtils.h:26:0,
from EddyHelperClasses.cpp:20:
ECScanClasses.h:296:0: warning: ignoring #pragma omp parallel [-Wunknown-pragmas]
# pragma omp parallel for shared(fwhm)
^
ECScanClasses.h:300:0: warning: ignoring #pragma omp parallel [-Wunknown-pragmas]
# pragma omp parallel for shared(fwhm)
^
In file included from /Users/yakiniku/fslbuild/fsl/extras/include/boost/boost/config.hpp:57:0,
from /Users/yakiniku/fslbuild/fsl/extras/include/boost/boost/shared_ptr.hpp:17,
from ECScanClasses.h:25,
from EddyUtils.h:26,
from EddyHelperClasses.cpp:20:
/Users/yakiniku/fslbuild/fsl/extras/include/boost/boost/config/suffix.hpp:414:31: warning: ISO C++ 1998 does not support 'long long' [-Wlong-long]
__extension__ typedef long long long_long_type;
^
/Users/yakiniku/fslbuild/fsl/extras/include/boost/boost/config/suffix.hpp:415:40: warning: ISO C++ 1998 does not support 'long long' [-Wlong-long]
__extension__ typedef unsigned long long ulong_long_type;
^
c++ -Wall -pedantic -ansi -arch x86_64 -O3 -I/Users/yakiniku/fslbuild/fsl/extras/include/newmat -I/Users/yakiniku/fslbuild/fsl/extras/include/boost -I. -I/Users/yakiniku/fslbuild/fsl/include -I/Users/yakiniku/fslbuild/fsl/include -c -o DiffusionGP.o DiffusionGP.cpp
In file included from EddyUtils.h:26:0,
from DiffusionGP.cpp:25:
ECScanClasses.h:16:0: warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
#pragma clang diagnostic ignored "-Wunknown-pragmas" // Ignore the OpenMP pragmas
^
In file included from EddyUtils.h:26:0,
from DiffusionGP.cpp:25:
ECScanClasses.h:296:0: warning: ignoring #pragma omp parallel [-Wunknown-pragmas]
# pragma omp parallel for shared(fwhm)
^
ECScanClasses.h:300:0: warning: ignoring #pragma omp parallel [-Wunknown-pragmas]
# pragma omp parallel for shared(fwhm)
^
In file included from /Users/yakiniku/fslbuild/fsl/extras/include/boost/boost/config.hpp:57:0,
from /Users/yakiniku/fslbuild/fsl/extras/include/boost/boost/shared_ptr.hpp:17,
from ECScanClasses.h:25,
from EddyUtils.h:26,
from DiffusionGP.cpp:25:
/Users/yakiniku/fslbuild/fsl/extras/include/boost/boost/config/suffix.hpp:414:31: warning: ISO C++ 1998 does not support 'long long' [-Wlong-long]
__extension__ typedef long long long_long_type;
^
/Users/yakiniku/fslbuild/fsl/extras/include/boost/boost/config/suffix.hpp:415:40: warning: ISO C++ 1998 does not support 'long long' [-Wlong-long]
__extension__ typedef unsigned long long ulong_long_type;
^
c++ -Wall -pedantic -ansi -arch x86_64 -O3 -I/Users/yakiniku/fslbuild/fsl/extras/include/newmat -I/Users/yakiniku/fslbuild/fsl/extras/include/boost -I. -I/Users/yakiniku/fslbuild/fsl/include -I/Users/yakiniku/fslbuild/fsl/include -c -o b0Predictor.o b0Predictor.cpp
In file included from EddyUtils.h:26:0,
from b0Predictor.cpp:19:
ECScanClasses.h:16:0: warning: ignoring #pragma clang diagnostic [-Wunknown-pragmas]
#pragma clang diagnostic ignored "-Wunknown-pragmas" // Ignore the OpenMP pragmas
^
In file included from EddyUtils.h:26:0,
from b0Predictor.cpp:19:
ECScanClasses.h:296:0: warning: ignoring #pragma omp parallel [-Wunknown-pragmas]
# pragma omp parallel for shared(fwhm)
^
ECScanClasses.h:300:0: warning: ignoring #pragma omp parallel [-Wunknown-pragmas]
# pragma omp parallel for shared(fwhm)
^
In file included from /Users/yakiniku/fslbuild/fsl/extras/include/boost/boost/config.hpp:57:0,
from /Users/yakiniku/fslbuild/fsl/extras/include/boost/boost/shared_ptr.hpp:17,
from ECScanClasses.h:25,
from EddyUtils.h:26,
from b0Predictor.cpp:19:
/Users/yakiniku/fslbuild/fsl/extras/include/boost/boost/config/suffix.hpp:414:31: warning: ISO C++ 1998 does not support 'long long' [-Wlong-long]
__extension__ typedef long long long_long_type;
^
/Users/yakiniku/fslbuild/fsl/extras/include/boost/boost/config/suffix.hpp:415:40: warning: ISO C++ 1998 does not support 'long long' [-Wlong-long]
__extension__ typedef unsigned long long ulong_long_type;
^
c++ -Wall -pedantic -ansi -arch x86_64 -O3 -I/Users/yakiniku/fslbuild/fsl/extras/include/newmat -I/Users/yakiniku/fslbuild/fsl/extras/include/boost -I. -I/Users/yakiniku/fslbuild/fsl/include -I/Users/yakiniku/fslbuild/fsl/include -c -o ../topup/topup_file_io.o ../topup/topup_file_io.cpp
In file included from /Users/yakiniku/fslbuild/fsl/extras/include/boost/boost/config.hpp:57:0,
from /Users/yakiniku/fslbuild/fsl/extras/include/boost/boost/shared_ptr.hpp:17,
from ../topup/topup_file_io.cpp:76:
/Users/yakiniku/fslbuild/fsl/extras/include/boost/boost/config/suffix.hpp:414:31: warning: ISO C++ 1998 does not support 'long long' [-Wlong-long]
__extension__ typedef long long long_long_type;
^
/Users/yakiniku/fslbuild/fsl/extras/include/boost/boost/config/suffix.hpp:415:40: warning: ISO C++ 1998 does not support 'long long' [-Wlong-long]
__extension__ typedef unsigned long long ulong_long_type;
^
c++ -Wall -pedantic -ansi -arch x86_64 -O3 -I/Users/yakiniku/fslbuild/fsl/extras/include/newmat -I/Users/yakiniku/fslbuild/fsl/extras/include/boost -I. -I/Users/yakiniku/fslbuild/fsl/include -I/Users/yakiniku/fslbuild/fsl/include -c -o ../topup/displacement_vector.o ../topup/displacement_vector.cpp
In file included from /Users/yakiniku/fslbuild/fsl/extras/include/boost/boost/config.hpp:57:0,
from /Users/yakiniku/fslbuild/fsl/extras/include/boost/boost/shared_ptr.hpp:17,
from /Users/yakiniku/fslbuild/fsl/include/miscmaths/SpMat.h:26,
from ../topup/displacement_vector.cpp:79:
/Users/yakiniku/fslbuild/fsl/extras/include/boost/boost/config/suffix.hpp:414:31: warning: ISO C++ 1998 does not support 'long long' [-Wlong-long]
__extension__ typedef long long long_long_type;
^
/Users/yakiniku/fslbuild/fsl/extras/include/boost/boost/config/suffix.hpp:415:40: warning: ISO C++ 1998 does not support 'long long' [-Wlong-long]
__extension__ typedef unsigned long long ulong_long_type;
^
c++ -Wl,-search_paths_first -arch x86_64 -L/Users/yakiniku/fslbuild/fsl/extras/lib -rdynamic -L. -L/Users/yakiniku/fslbuild/fsl/lib -L/Users/yakiniku/fslbuild/fsl/lib -o eddy eddy.o EddyCommandLineOptions.o ECModels.o ECScanClasses.o EddyUtils.o EddyHelperClasses.o DiffusionGP.o b0Predictor.o ../topup/topup_file_io.o ../topup/displacement_vector.o -lwarpfns -lmeshclass -lbasisfield -lnewimage -lmiscmaths -lprob -lfslio -lniftiio -lznz -lutils -lnewmat -lm -lz
c++: error: unrecognized command line option '-rdynamic'
Makefile:17: ターゲット 'eddy' のレシピで失敗しました
make[2]: *** [eddy] エラー 1
make[2]: ディレクトリ '/Users/yakiniku/fslbuild/fsl/src/eddy' から出ます
/Users/yakiniku/fslbuild/fsl/config/common/rules.mk:56: ターゲット 'master-install-script' のレシピで失敗しました
make[1]: *** [master-install-script] エラー 2
make[1]: ディレクトリ '/Users/yakiniku/fslbuild/fsl/src/eddy' から出ます
/Users/yakiniku/fslbuild/fsl/config/common/rules.mk:35: ターゲット 'install' のレシピで失敗しました
make: *** [install] エラー 2
h34:eddy yakiniku$
|