Hi Erik,
On Wed, 2011-06-22 at 13:34 -0400, Erik Schnetter wrote:
Cactus is not Boost-aware.
Cactus checks during the configure stage whether the system provides a header file regex.h, and uses its own only if this is not the case. My guess is that this configure stage sees you Boost include path, and hence uses the Boost regex.h file.
That would be strange:
I do have an entry -I /u/ap/kastaun/sim_build/boost_1_46_1 in my Cactus CPPFLAGS. However, _all_ header files reside in a subdirectory /u/ap/kastaun/sim_build/boost_1_46_1/boost To include the boost version of regex, one would need to write explicitly #include <boost/regex.h>
So if Cactus does not know about boost, I can't understand how any Cactus component can be influenced.
It may be that you specify the include path to Boost in a way that is too general, i.e. in a way that is not specific to your thorn, but rather to all of Cactus.
Adding the top boost directory (not the subdirectory with the actual headers) to the Cactus-wide include path should be pretty much equivalent to a system where Boost is installed system-wide. Note some distributions (Ubuntu) split boost into several packages, e.g. the components with compiled libraries are optional.
Can you tell us more about your configure options?
CC = icc CXX = icpc LD = icpc F90 = ifort F77 = ifort CPP = cpp FPP = cpp
CPPFLAGS = -DCARPET_INT -DCARPET_REAL -DCARPET_COMPLEX -DMPICH_IGNORE_CXX_SEEK -I /u/ap/kastaun/sim_build/boost_1_46_1
FPPFLAGS = -traditional
DEBUG = no OPTIMISE = yes
C_OPTIMISE_FLAGS = -xT -O3 -funroll-loops CXX_OPTIMISE_FLAGS = -xT -O3 -funroll-loops F90_OPTIMISE_FLAGS = -xT -O3 F77_OPTIMISE_FLAGS = -xT -O3
WARN = yes
HDF5 = yes HDF5_DIR = /opt/hdf5/1.8.5p1/gnu GSL = yes GSL_DIR = /opt/gsl/1.12/intel MPI = OpenMPI OPENMPI_DIR = /opt/openmpi/1.4.2/intel-10.1/ PTHREADS = no
You can e.g. copy the thorn GSL and thus create a Boost-awareness thorn.
Or I could finish my article..
Wolfgang.
-erik
On Wed, Jun 22, 2011 at 12:54 PM, Wolfgang Kastaun kastaun@sissa.it wrote:
On Wed, 2011-06-22 at 11:23 -0500, Frank Loeffler wrote:
Hi,
On Wed, Jun 22, 2011 at 05:21:55PM +0200, Wolfgang Kastaun wrote:
During the configure stage, regexp.h was found on the system. I remember that Cactus has its own version of regexp, maybe there is a conflict.
Cactus has its own version in case there is non on a system. regexpA is a symbol from the boost library, so regex.h is probably used from the boost installation, but boost isn't linked in at link time. A solution probably involves either to make sure that this regex.h isn't used (did you specify to use boost, is boost in the INCLUDE_PATH?), or to make sure that the boost regex implementation is linked in (maybe -lboost_regex helps). Frank
Thanks, this explains it. Indeed, I had Boost in the include path to compile some of my thorns which use boost libraries (not regexp). Since I only use header-only components, I did not compile the boost libs, and I'd prefer not having to do this on every system without a boost installation, i.e. -lboost_regex would be inconvinient.
Is there a way to switch off the usage of Boost regexp without removing boost from the include path ? I didn't know that Cactus is Boost-aware. Are there configuration options like for GSL or HDF5 ?
Wolfgang.
Users mailing list Users@einsteintoolkit.org http://lists.einsteintoolkit.org/mailman/listinfo/users