I will remove the _GLIBCXX_DEBUG* flags from the debug build on everything and 
give it another shot.


On Dec 3, 2010, at 2:24 PM, Roy Stogner wrote:

> 
> And make sure the compiler and libstdc++ work with those flags in the first 
> place:
> 
> http://stackoverflow.com/questions/1416096/c-debug-builds-broke-in-snow-leopard-x-code
> 
> GCC on any system will break if you incautiously mix debug and
> non-debug STL containers, but GCC on Apple tends to break even with
> debug containers alone.  It's possible that the hpc folks' builds
> fixed that in other gcc builds but regressed in 4.6.
> ---
> Roy
> 
> On Fri, 3 Dec 2010, Kirk, Benjamin (JSC-EG311) wrote:
> 
>> Are you absolutely positive your object is compiled with the *exact* same 
>> compiler flags as libMesh?
>> 
>> Use ./contrib/bin/libmesh-config to get the exact C++ flags used by libMesh.
>> 
>> -Ben
>> 
>> 
>> 
>> On Dec 3, 2010, at 1:07 PM, "Cochran, Bill" <[email protected]> wrote:
>> 
>>> I am using snow leopard and the hpc.sourceforge.net compilers (gcc 4.6 
>>> experimental).
>>> 
>>> Apparently, linking a debug build of libmesh to an object code that uses 
>>> std::stringstream breaks std::stringstream in that object code.  It seems 
>>> like the linker is picking a particular stringstream instantiation from 
>>> libmesh.a rather than the one with the associated object file.  This does 
>>> not happen with an optimized build of libmesh.  It does not present on gcc 
>>> 4.5 or lower.  The bug is extremely easy to replicate.
>>> 
>>> Given the following source code (which in no way calls libmesh):
>>> 
>>> #include <sstream>
>>> #include <iostream>
>>> #include <string>
>>> 
>>> int main ( int argc , char ** argv )
>>> {
>>> std::string t1 = "hello";
>>> std::stringstream t2;
>>> t2 << t1 << " : " << 5;
>>> std::cout << t2.str() << std::endl;
>>> }
>>> 
>>> Compiled and run gives (as expected):
>>> 
>>> billmp1:~ zfw$ /opt/amp/packages/debug/bin/mpicxx t.cc -D_GLIBCXX_DEBUG 
>>> -D_GLIBCXX_DEBUG_PEDANTIC -DDEBUG
>>> billmp1:~ zfw$ ./a.out
>>> hello : 5
>>> billmp1:~ zfw$
>>> 
>>> However, if you link it against libmesh.a, you get:
>>> 
>>> billmp1:~ zfw$ /opt/amp/packages/debug/bin/mpicxx t.cc -D_GLIBCXX_DEBUG 
>>> -D_GLIBCXX_DEBUG_PEDANTIC -DDEBUG 
>>> /opt/amp/packages/debug/libmesh/lib/i386-apple-darwin10.4.2_dbg/libmesh.a 
>>> /opt/amp/packages/debug/libmesh/contrib/lib/i386-apple-darwin10.4.2_dbg/libexodusii.a
>>>  
>>> /opt/amp/packages/debug/libmesh/contrib/lib/i386-apple-darwin10.4.2_dbg/libgmv.a
>>>  
>>> /opt/amp/packages/debug/libmesh/contrib/lib/i386-apple-darwin10.4.2_dbg/libgzstream.a
>>>  
>>> /opt/amp/packages/debug/libmesh/contrib/lib/i386-apple-darwin10.4.2_dbg/liblaspack.a
>>>  
>>> /opt/amp/packages/debug/libmesh/contrib/lib/i386-apple-darwin10.4.2_dbg/libnemesis.a
>>>  
>>> /opt/amp/packages/debug/libmesh/contrib/lib/i386-apple-darwin10.4.2_dbg/libnetcdf.a
>>>  
>>> /opt/amp/packages/debug/libmesh/contrib/lib/i386-apple-darwin10.4.2_dbg/libparmetis.a
>>>  
>>> /opt/amp/packages/debug/libmesh/contrib/lib/i386-apple-darwin10.4.2_dbg/libmetis.a
>>>  
>>> /opt/amp/packages/debug/libmesh/contrib/lib/i386-apple-darwin10.4.2_dbg/libsfcurves.a
>>>  /opt/amp/packages/debug/libmesh/contrib/lib/i
> 3
>> 86
>>> -apple-darwin10.4.2_dbg/libtetgen.a 
>>> /opt/amp/packages/debug/libmesh/contrib/lib/i386-apple-darwin10.4.2_dbg/libtriangle.a
>>>  
>>> /opt/amp/packages/debug/petsc-3.0.0-p12/darwin10.4.2-c-debug/lib/libpetscsnes.a
>>>  
>>> /opt/amp/packages/debug/petsc-3.0.0-p12/darwin10.4.2-c-debug/lib/libpetscksp.a
>>>  
>>> /opt/amp/packages/debug/petsc-3.0.0-p12/darwin10.4.2-c-debug/lib/libpetscdm.a
>>>  
>>> /opt/amp/packages/debug/petsc-3.0.0-p12/darwin10.4.2-c-debug/lib/libpetsccontrib.a
>>>  
>>> /opt/amp/packages/debug/petsc-3.0.0-p12/darwin10.4.2-c-debug/lib/libpetscmat.a
>>>  
>>> /opt/amp/packages/debug/petsc-3.0.0-p12/darwin10.4.2-c-debug/lib/libpetscvec.a
>>>  
>>> /opt/amp/packages/debug/petsc-3.0.0-p12/darwin10.4.2-c-debug/lib/libpetsc.a 
>>> /usr/X11R6/lib/libSM.dylib /usr/X11R6/lib/libICE.dylib 
>>> /usr/X11R6/lib/libX11.dylib -framework Accelerate /usr/lib/libblas.dylib 
>>> /usr/lib/libblas.dylib -lz
>>> billmp1:~ zfw$ ./a.out
>>> hello :
>>> billmp1:~ zfw$
>>> 
>>> The output is missing the '5'.  Now, if you take away libmesh.a, you get:
>>> 
>>> billmp1:~ zfw$ /opt/amp/packages/debug/bin/mpicxx t.cc -D_GLIBCXX_DEBUG 
>>> -D_GLIBCXX_DEBUG_PEDANTIC -DDEBUG 
>>> /opt/amp/packages/debug/libmesh/contrib/lib/i386-apple-darwin10.4.2_dbg/libexodusii.a
>>>  
>>> /opt/amp/packages/debug/libmesh/contrib/lib/i386-apple-darwin10.4.2_dbg/libgmv.a
>>>  
>>> /opt/amp/packages/debug/libmesh/contrib/lib/i386-apple-darwin10.4.2_dbg/libgzstream.a
>>>  
>>> /opt/amp/packages/debug/libmesh/contrib/lib/i386-apple-darwin10.4.2_dbg/liblaspack.a
>>>  
>>> /opt/amp/packages/debug/libmesh/contrib/lib/i386-apple-darwin10.4.2_dbg/libnemesis.a
>>>  
>>> /opt/amp/packages/debug/libmesh/contrib/lib/i386-apple-darwin10.4.2_dbg/libnetcdf.a
>>>  
>>> /opt/amp/packages/debug/libmesh/contrib/lib/i386-apple-darwin10.4.2_dbg/libparmetis.a
>>>  
>>> /opt/amp/packages/debug/libmesh/contrib/lib/i386-apple-darwin10.4.2_dbg/libmetis.a
>>>  
>>> /opt/amp/packages/debug/libmesh/contrib/lib/i386-apple-darwin10.4.2_dbg/libsfcurves.a
>>>  
>>> /opt/amp/packages/debug/libmesh/contrib/lib/i386-apple-darwin10.4.2_dbg/libtetgen.a
>>>  /opt/amp/packages/debug/libmesh/con
> t
>> ri
>>> b/lib/i386-apple-darwin10.4.2_dbg/libtriangle.a 
>>> /opt/amp/packages/debug/petsc-3.0.0-p12/darwin10.4.2-c-debug/lib/libpetscsnes.a
>>>  
>>> /opt/amp/packages/debug/petsc-3.0.0-p12/darwin10.4.2-c-debug/lib/libpetscksp.a
>>>  
>>> /opt/amp/packages/debug/petsc-3.0.0-p12/darwin10.4.2-c-debug/lib/libpetscdm.a
>>>  
>>> /opt/amp/packages/debug/petsc-3.0.0-p12/darwin10.4.2-c-debug/lib/libpetsccontrib.a
>>>  
>>> /opt/amp/packages/debug/petsc-3.0.0-p12/darwin10.4.2-c-debug/lib/libpetscmat.a
>>>  
>>> /opt/amp/packages/debug/petsc-3.0.0-p12/darwin10.4.2-c-debug/lib/libpetscvec.a
>>>  
>>> /opt/amp/packages/debug/petsc-3.0.0-p12/darwin10.4.2-c-debug/lib/libpetsc.a 
>>> /usr/X11R6/lib/libSM.dylib /usr/X11R6/lib/libICE.dylib 
>>> /usr/X11R6/lib/libX11.dylib -framework Accelerate /usr/lib/libblas.dylib 
>>> /usr/lib/libblas.dylib -lz
>>> billmp1:~ zfw$ ./a.out
>>> hello : 5
>>> billmp1:~ zfw$
>>> 
>>> As mentioned above, it does not happen with an optimized version of libmesh:
>>> 
>>> billmp1:~ zfw$ /opt/amp/packages/debug/bin/mpicxx t.cc 
>>> /opt/amp/packages/optimized/libmesh/lib/i386-apple-darwin10.4.2_opt/libmesh.a
>>>  
>>> /opt/amp/packages/debug/libmesh/contrib/lib/i386-apple-darwin10.4.2_dbg/libexodusii.a
>>>  
>>> /opt/amp/packages/debug/libmesh/contrib/lib/i386-apple-darwin10.4.2_dbg/libgmv.a
>>>  
>>> /opt/amp/packages/debug/libmesh/contrib/lib/i386-apple-darwin10.4.2_dbg/libgzstream.a
>>>  
>>> /opt/amp/packages/debug/libmesh/contrib/lib/i386-apple-darwin10.4.2_dbg/liblaspack.a
>>>  
>>> /opt/amp/packages/debug/libmesh/contrib/lib/i386-apple-darwin10.4.2_dbg/libnemesis.a
>>>  
>>> /opt/amp/packages/debug/libmesh/contrib/lib/i386-apple-darwin10.4.2_dbg/libnetcdf.a
>>>  
>>> /opt/amp/packages/debug/libmesh/contrib/lib/i386-apple-darwin10.4.2_dbg/libparmetis.a
>>>  
>>> /opt/amp/packages/debug/libmesh/contrib/lib/i386-apple-darwin10.4.2_dbg/libmetis.a
>>>  
>>> /opt/amp/packages/debug/libmesh/contrib/lib/i386-apple-darwin10.4.2_dbg/libsfcurves.a
>>>  
>>> /opt/amp/packages/debug/libmesh/contrib/lib/i386-apple-darwin10.4.2_dbg/libtetgen.a
>>>  /opt/amp
> /
>> pa
>>> ckages/debug/libmesh/contrib/lib/i386-apple-darwin10.4.2_dbg/libtriangle.a 
>>> /opt/amp/packages/debug/petsc-3.0.0-p12/darwin10.4.2-c-debug/lib/libpetscsnes.a
>>>  
>>> /opt/amp/packages/debug/petsc-3.0.0-p12/darwin10.4.2-c-debug/lib/libpetscksp.a
>>>  
>>> /opt/amp/packages/debug/petsc-3.0.0-p12/darwin10.4.2-c-debug/lib/libpetscdm.a
>>>  
>>> /opt/amp/packages/debug/petsc-3.0.0-p12/darwin10.4.2-c-debug/lib/libpetsccontrib.a
>>>  
>>> /opt/amp/packages/debug/petsc-3.0.0-p12/darwin10.4.2-c-debug/lib/libpetscmat.a
>>>  
>>> /opt/amp/packages/debug/petsc-3.0.0-p12/darwin10.4.2-c-debug/lib/libpetscvec.a
>>>  
>>> /opt/amp/packages/debug/petsc-3.0.0-p12/darwin10.4.2-c-debug/lib/libpetsc.a 
>>> /usr/X11R6/lib/libSM.dylib /usr/X11R6/lib/libICE.dylib 
>>> /usr/X11R6/lib/libX11.dylib -framework Accelerate /usr/lib/libblas.dylib 
>>> /usr/lib/libblas.dylib -lz
>>> billmp1:~ zfw$ ./a.out
>>> hello : 5
>>> billmp1:~ zfw$
>>> 
>>> Any ideas on how to remedy this would be greatly appreciated.
>>> 
>>> Bill Cochran
>>> 
>>> 
>>> ------------------------------------------------------------------------------
>>> Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
>>> Tap into the largest installed PC base & get more eyes on your game by
>>> optimizing for Intel(R) Graphics Technology. Get started today with the
>>> Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
>>> http://p.sf.net/sfu/intelisp-dev2dev
>>> _______________________________________________
>>> Libmesh-users mailing list
>>> [email protected]
>>> https://lists.sourceforge.net/lists/listinfo/libmesh-users
>> 
>> ------------------------------------------------------------------------------
>> Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
>> Tap into the largest installed PC base & get more eyes on your game by
>> optimizing for Intel(R) Graphics Technology. Get started today with the
>> Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
>> http://p.sf.net/sfu/intelisp-dev2dev
>> _______________________________________________
>> Libmesh-users mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/libmesh-users
>> 


------------------------------------------------------------------------------
Increase Visibility of Your 3D Game App & Earn a Chance To Win $500!
Tap into the largest installed PC base & get more eyes on your game by
optimizing for Intel(R) Graphics Technology. Get started today with the
Intel(R) Software Partner Program. Five $500 cash prizes are up for grabs.
http://p.sf.net/sfu/intelisp-dev2dev
_______________________________________________
Libmesh-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/libmesh-users

Reply via email to