I am trying to compile BOOST in OS X 10.10, using intel compilers 15.0.2
./bootstrap.sh --with-toolset=intel-darwin cxxflags="-std=c++11" linkflags="-std=c++11"
./b2 -q \
cxxflags="-std=c++11 -stdlib=libc++" \
linkflags="-std=c++11 -stdlib=libc++" \
-j 4 \
However I end up with "Undefined symbols for architecture X86_64" in the log.
Undefined symbols for architecture x86_64:
__znst3__110moneypuncticlb0eed2ev undefined symbol
I googled to no avail. I tried without the stdlib flag, as suggested by a page I found in INTEL, that did not work as well.
when I set the toolset to clang, BOOST compiles correctly.
The environment variables correspond to intel64
It looks as if this is defined in libc++abi.dylib
Since BOOST is a C++ library, I doubt this has anything to do with Fortran, so I am moving this thread to the C++ forum.
Yes, I am aware, but I am trying to install Fenics via hashdist with some additional components. The boost provided by brew does not work well for some reason.
I forget to redact address-model=64, but I am trying the second suggestion, I will reply if I can get it running.
I understand your problem.
If you want to install Fenics on your machine, I'll light a candle for you. It took me one week to install this thing on my computer a few years ago. It needs to compile the whole set of numerical libraries that exist out there just to say "Hello world!" ;-) They were libraries only compatible with Boost 1.47, other ones with Boost 1.45, etc. This can work, but be ready for long nights.
It might be unrelated, but I found out a curious behavior using intel compilers and Xcode ranlib/ar trying to fix yet another problem.
The Xcode ar does not add the symbols! neither does xiar
I read in this post that the OS X ar behaves differently from linux ar. The -c option did not work, thus I started recompiling everything with -fno-common
Now, I encountered yet another problem. There is a complaint that the libiomp is not found in the DYLD path (although I source the intel compiler environment variables) and the icc goes non-responsive (i.e. can not be ctrl-c'd), can only be killed with -9
So, now I am trying this. Compile everything from scratch, remove both openmp and fno-common from default flags, if there are missing symbol complaints, first I will try no-common, then clang.
I don't see an "intel stage" in the available options
### Unknown toolset: intel_stage
### You can specify the toolset as the argument, i.e.:
### ./build.sh gcc
### Toolsets supported by this script are:
### acc, como, darwin, gcc, intel-darwin, intel-linux, kcc, kylix,
### mipspro, mingw(msys), pathscale, pgi, qcc, sun, sunpro, tru64cxx, vacpp
### A special toolset; cc, is available which is used as a fallback
### when a more specific toolset is not found and the cc command is
### detected. The 'cc' toolset will use the CC, CFLAGS, and LIBS
### environment variables, if present.
when I use toolset intel-darwin, I get the exact same error as
although I am using boost 1.55. The solution is not clear to me.
The problem was solved by adding
./b2 -q \
-j 4 \
Thanks Baris, you're correct (my typo). I think when I built boost (1.56) last I did the below:
%./b2 install --prefix=<path>
%cd <boost root>
% b2 --build-dir=<boost obj dir> address-model=64 toolset=intel stage
I haven't tried building boost 1.55 and may be I should try out again. Glad it worked for you and your info is noted, thanks.