← Back to team overview

dolfin team mailing list archive

Re: 0.6.2-1 compilation error

 

On Fri, Sep 08, 2006 at 06:20:02PM +0200, Garth N. Wells wrote:
> Hopefully this problem is now fixed. Osman, can you test it for me?
> 
> The problem is that uBLAS uses std::size_t for compressed matrix index
> arrays  by default. std::size_t is a typedef, and on most machines it is
> a typedef for unsigned int, but on other machines (typically 64 bit) it
> is a typedef for long unsigned int.
> 
> I'm now forcing uBLAS to use unsigned int for compressed matrices. With
> UMFPACK, problems are then limited to 2GB. In the future, I can change
> the default to long unsigned int.
> 
> On this point, for portability when using STL, should we be using
> std::size_t rather than unsigned int in many places? Would it make sense
> to use uint as a typedef to std::size_t rather than unsigned int?

This sounds reasonable to me, but one problem could be in the demos.
I have noticed that we need to use "unsigned int" in the demos rather
than "uint" even though "uint" is in namespace dolfin.

It feels natural to write "uint" or "unsigned int" in the demos, but
std::size_t does not feel intuitive. But it should be possible to make
thhe typedef to std::size_t and use "uint" in the demos and throughout
the code,

/Anders


> Garth
> 
> 
> osman b wrote:
> > I installed 0.6.2-1. with plain ./configure (without petsc, umfpack, amd)  
> > installs ok. Demos work.
> > when I configured with 
> > ./configure --with-petsc-dir=/home/osman/SRC/petsc-2.3.0 --enable-python 
> > --with-umfpack-include=/usr/local/include 
> > --with-umfpack-lib=/usr/local/lib/libumfpack.a 
> > --with-amd-lib=/usr/local/lib/libamd.a
> > 
> > I get a compilation error:
> > ...
> >  g++ -DPACKAGE_NAME=\"DOLFIN\" -DPACKAGE_TARNAME=\"dolfin\" 
> > -DPACKAGE_VERSION=\"0.6.2-1\" "-DPACKAGE_STRING=\"DOLFIN 0.6.2-1\"" 
> > -DPACKAGE_BUGREPORT=\"dolfin@xxxxxxxxxx\" -DSTDC_HEADERS=1 
> > -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 
> > -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 
> > -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DHAVE_UMFPACK_H=1 -I. -I. 
> > -I../../../src/kernel/common -I../../../src/kernel/fem 
> > -I../../../src/kernel/form -I../../../src/kernel/function 
> > -I../../../src/kernel/io -I../../../src/kernel/la -I../../../src/kernel/main 
> > -I../../../src/kernel/math -I../../../src/kernel/mesh 
> > -I../../../src/kernel/mf -I../../../src/kernel/nls -I../../../src/kernel/ode 
> > -I../../../src/kernel/pde -I../../../src/kernel/quadrature 
> > -I../../../src/kernel/parameter -I../../../src/kernel/log 
> > -I/usr/include/libxml2 -I/usr/local/include -g -O2 -DNDEBUG -pedantic 
> > -Wno-long-long -std=c++98 -fPIC -MT uBlasLUSolver.lo -MD -MP 
> > -MF .deps/uBlasLUSolver.Tpo -c uBlasLUSolver.cpp  -fPIC -DPIC 
> > -o .libs/uBlasLUSolver.o
> > uBlasLUSolver.cpp: In member function 'virtual dolfin::uint 
> > dolfin::uBlasLUSolver::solve(const 
> > dolfin::uBlasMatrix<dolfin::ublas_sparse_matrix>&, dolfin::uBlasVector&, 
> > const dolfin::uBlasVector&)':
> > uBlasLUSolver.cpp:75: error: cannot convert 'const long unsigned int*' to 
> > 'const unsigned int*' in initialization
> > uBlasLUSolver.cpp:76: error: cannot convert 'const long unsigned int*' to 
> > 'const unsigned int*' in initialization
> > make[4]: *** [uBlasLUSolver.lo] Error 1
> > make[4]: Leaving directory `/home/osman/SRC/dolfin-0.6.2-1/src/kernel/la'
> > make[3]: *** [all-recursive] Error 1
> > make[3]: Leaving directory `/home/osman/SRC/dolfin-0.6.2-1/src/kernel/la'
> > make[2]: *** [all-recursive] Error 1
> > make[2]: Leaving directory `/home/osman/SRC/dolfin-0.6.2-1/src/kernel'
> > make[1]: *** [all-recursive] Error 1
> > make[1]: Leaving directory `/home/osman/SRC/dolfin-0.6.2-1/src'
> > make: *** [all-recursive] Error 1
> > 
> 
> _______________________________________________
> DOLFIN-dev mailing list
> DOLFIN-dev@xxxxxxxxxx
> http://www.fenics.org/mailman/listinfo/dolfin-dev


References