[Users] ET linking problem related to regex

Wolfgang Kastaun kastaun at sissa.it
Wed Jun 22 13:14:30 CDT 2011


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 at 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 at einsteintoolkit.org
> > http://lists.einsteintoolkit.org/mailman/listinfo/users
> >
> 
> 
> 




More information about the Users mailing list