GalSim-developers / GalSim

The modular galaxy image simulation toolkit. Documentation:
http://galsim-developers.github.io/GalSim/
Other
224 stars 106 forks source link

scon failure at boost stage #126

Closed DMGoldberg closed 12 years ago

DMGoldberg commented 12 years ago

Greetings, all. I haven't seen this problem yet, but hopefully it has an easy fix. I am compiling GalSim on a Mac (10.5.8) using Python 2.7. I installed Boost from source, and tested afterwards with:

otool -L /usr/local/lib/libboost_python.dylib /usr/local/lib/libboost_python.dylib: libboost_python.dylib (compatibility version 0.0.0, current version 0.0.0) /Library/Frameworks/Python.framework/Versions/2.7/Python (compatibility version 2.7.0, current version 2.7.0) /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.4.0) /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.5)

which I interpret as a good thing.

However, upon running:

scons FFTW_DIR=/opt/local BOOST_DIR=/usr/local

I get:

scons: Reading SConscript files ... SCons is version 2.1.0 using python version 2.7.1 Python is from /Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 Using compiler: /usr/bin/g++ compiler version: 4.0.1 Determined that a good number of jobs = 2 Checking for C++ library cfitsio... yes Checking for C++ library fftw3... yes Checking for C++ header file boost/shared_ptr.hpp... yes Checking for C++ header file TMV.h... yes Using TMV_LINK file: /usr/local/share/tmv/tmv-link -ltmv -lblas Checking for correct TMV linkage... (this may take a little while) Checking for correct TMV linkage... yes Checking if we can build against Python... yes Checking if we can build against NumPy... yes sh: line 1: 40620 Bus error .sconf_temp/conftest_11 > ".sconf_temp/conftest_11.out" Checking if we can build against Boost.Python... no Cannot run program built with Boost.Python.

Please fix the above error(s) and rerun scons


which doesn't seem terribly helpful. The bus error is particularly confusing.

I've looked in the config.log file, and while there are a few hints, I'm not sure what to make of them. In particular:

boost::python::converter::as_to_python_function<Foo, boost::python::objects::class_cref_wrapper<Foo, boost::python::objects::make_instance<Foo, boost::python::objects::value_holder > > >::convert(void const*)in conftest_9.o ld: symbol(s) not found

Though as I'm not an expert in boost, I've no idea what to make of this.

Any suggestions?

Thanks,

Dave

barnabytprowe commented 12 years ago

Ooops, I deleted a comment then that was mostly nonsense due to a complete misreading of the message. Sorry Dave! (and @TallJimbo )

Alas, my misreading also means that now I have far less idea what the problem might be here, and so I throw the Issue out to the general populace. We are always keen to get more possible build scenarios under our belt.

Would it be possible to post the whole (or at least a chunk around the interesting bits of) the config.log file?

TallJimbo commented 12 years ago

It'd be most helpful if you could: A) delete .sconsign.dblite B) delete config.log C) try again, and post the new config.log

This failure actually seems familiar, but I can't remember what the problem was last time we saw it (and if it was identical, I'd think we'd have fixed the unhelpful error message). But I am concerned a little about the gcc version; Barney, do you know if we have any confirmed successes with Apple's gcc 4.0? It might be good to start compiling a matrix of platforms / dependency versions we know we've got things working on.

DMGoldberg commented 12 years ago

Can do. Here you go. Incidentally, I compiled successfully on my home machine, same OS, same versions of the various libraries, same procedure.

Thanks.

Dave


file /Users/goldberg/Downloads/GalSim-developers-GalSim-edd5d8e/SConstruct,line 997: Configure(confdir = .sconf_temp) scons: Configure: Checking for C++ library cfitsio... .sconf_temp/conftest_0.cpp <-
#include "fitsio.h"
int
main() {
return 0;
}

g++ -o .sconf_temp/conftest_0.o -c -O2 -fno-strict-aliasing -g3 -Wall -Werror -Iinclude -I/opt/local/include -I/usr/local/include .sconf_temp/conftest_0.cpp g++ -o .sconf_temp/conftest_0 .sconf_temp/conftest_0.o -Llib -L/opt/local/lib -L/usr/local/lib -lcfitsio scons: Configure: yes

scons: Configure: Checking for C++ library fftw3... .sconf_temp/conftest_1.cpp <-
#include "fftw3.h"
int
main() {
return 0;
}

g++ -o .sconf_temp/conftest_1.o -c -O2 -fno-strict-aliasing -g3 -Wall -Werror -Iinclude -I/opt/local/include -I/usr/local/include .sconf_temp/conftest_1.cpp g++ -o .sconf_temp/conftest_1 .sconf_temp/conftest_1.o -Llib -L/opt/local/lib -L/usr/local/lib -lcfitsio -lfftw3 scons: Configure: yes

scons: Configure: Checking for C++ header file boost/shared_ptr.hpp... .sconf_temp/conftest_2.cpp <- #include <boost/shared_ptr.hpp>

g++ -o .sconf_temp/conftest_2.o -c -O2 -fno-strict-aliasing -g3 -Wall -Werror -Iinclude -I/opt/local/include -I/usr/local/include .sconf_temp/conftest_2.cpp scons: Configure: yes

scons: Configure: Checking for C++ header file TMV.h... .sconf_temp/conftest_3.cpp <- #include

g++ -o .sconf_temp/conftest_3.o -c -O2 -fno-strict-aliasing -g3 -Wall -Werror -Iinclude -I/opt/local/include -I/usr/local/include .sconf_temp/conftest_3.cpp scons: Configure: yes

scons: Configure: Checking for correct TMV linkage... .sconf_temp/conftest_4.cpp <- #include "TMV_Sym.h" int main() { //tmv::SymMatrix S(10,4.); tmv::Matrix S(10,10,4.); tmv::Matrix m(10,3,2.); tmv::Matrix m2 = m / S; return 0; }
g++ -o .sconf_temp/conftest_4.o -c -O2 -fno-strict-aliasing -g3 -Wall -Werror -Iinclude -I/opt/local/include -I/usr/local/include .sconf_temp/conftest_4.cpp .sconf_temp/conftest_5.cpp <- #include "TMV_Sym.h" int main() { //tmv::SymMatrix S(10,4.); tmv::Matrix S(10,10,4.); tmv::Matrix m(10,3,2.); tmv::Matrix m2 = m / S; return 0; }

g++ -o .sconf_temp/conftest_5.o -c -O2 -fno-strict-aliasing -g3 -Wall -Werror -Iinclude -I/opt/local/include -I/usr/local/include .sconf_temp/conftest_5.cpp g++ -o .sconf_temp/conftest_5 .sconf_temp/conftest_5.o -Llib -L/opt/local/lib -L/usr/local/lib -lcfitsio -lfftw3 -ltmv -lblas scons: Configure: yes

scons: Configure: Checking if we can build against Python... .sconf_temp/conftest_6.cpp <- #include "Python.h" int main() { Py_Initialize(); Py_Finalize(); return 0; }

g++ -o .sconf_temp/conftest_6.o -c -O2 -fno-strict-aliasing -g3 -Wall -Werror -Iinclude -I/opt/local/include -I/usr/local/include -I/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 .sconf_temp/conftest_6.cpp g++ -o .sconf_temp/conftest_6 .sconf_temp/conftest_6.o -Llib -L/opt/local/lib -L/usr/local/lib -L/Library/Frameworks/Python.framework/Versions/2.7/lib -lcfitsio -lfftw3 -ltmv -lblas -lpython2.7 -ldl -framework CoreFoundation .sconf_temp/conftest_6 > .sconf_temp/conftest_6.out scons: Configure: yes

scons: Configure: Checking if we can build against NumPy... .sconf_temp/conftest_7.cpp <- #include "Python.h" #include "numpy/arrayobject.h" void doImport() { import_array(); } int main() { int result = 0; Py_Initialize(); doImport(); if (PyErr_Occurred()) { result = 1; } else { npy_intp dims = 2; PyObject * a = PyArray_SimpleNew(1, &dims, NPY_INT); if (!a) result = 1; Py_DECREF(a); } Py_Finalize(); return result; }
g++ -o .sconf_temp/conftest_7.o -c -O2 -fno-strict-aliasing -g3 -Wall -Werror -Iinclude -I/opt/local/include -I/usr/local/include -I/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -I/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/core/include .sconf_temp/conftest_7.cpp g++ -o .sconf_temp/conftest_7 .sconf_temp/conftest_7.o -Llib -L/opt/local/lib -L/usr/local/lib -L/Library/Frameworks/Python.framework/Versions/2.7/lib -lcfitsio -lfftw3 -ltmv -lblas -lpython2.7 -ldl -framework CoreFoundation .sconf_temp/conftest_8.cpp <- #include "Python.h" #include "numpy/arrayobject.h" void doImport() { import_array(); } int main() { int result = 0; Py_Initialize(); doImport(); if (PyErr_Occurred()) { result = 1; } else { npy_intp dims = 2; PyObject * a = PyArray_SimpleNew(1, &dims, NPY_INT); if (!a) result = 1; Py_DECREF(a); } Py_Finalize(); return result; }

g++ -o .sconf_temp/conftest_8.o -c -O2 -fno-strict-aliasing -g3 -Wall -Werror -Iinclude -I/opt/local/include -I/usr/local/include -I/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -I/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/core/include .sconf_temp/conftest_8.cpp g++ -o .sconf_temp/conftest_8 .sconf_temp/conftest_8.o -Llib -L/opt/local/lib -L/usr/local/lib -L/Library/Frameworks/Python.framework/Versions/2.7/lib -lcfitsio -lfftw3 -ltmv -lblas -lpython2.7 -ldl -framework CoreFoundation .sconf_temp/conftest_8 > .sconf_temp/conftest_8.out scons: Configure: yes

scons: Configure: Checking if we can build against Boost.Python... .sconf_temp/conftest_9.cpp <- #include "boost/python.hpp"
class Foo { public: Foo() {} };
int main()
{
Py_Initialize();
boost::python::object obj;
boost::python::class_< Foo >("Foo", boost::python::init<>());
Py_Finalize();
return 0;
}
g++ -o .sconf_temp/conftest_9.o -c -O2 -fno-strict-aliasing -g3 -Wall -Werror -Iinclude -I/opt/local/include -I/usr/local/include -I/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -I/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/core/include .sconf_temp/conftest_9.cpp g++ -o .sconf_temp/conftest_9 .sconf_temp/conftest_9.o -Llib -L/opt/local/lib -L/usr/local/lib -L/Library/Frameworks/Python.framework/Versions/2.7/lib -lcfitsio -lfftw3 -ltmv -lblas -lpython2.7 -ldl -framework CoreFoundation Undefined symbols: "boost::python::instance_holder::deallocate(object, void_)", referenced from: boost::python::objects::make_holder<0>::applyboost::python::objects::valueholder<Foo, boost::mpl::vector0<mpl::na> >::execute(object)in conftest_9.o "boost::python::objects::copy_class_object(boost::python::type_info const&, boost::python::type_info const&)", referenced from: _main in conftest_9.o "boost::python::objects::py_function_impl_base::~py_function_impl_base()", referenced from: boost::python::objects::caller_py_functionimpl<boost::python::detail::caller<void ()(object), boost::python::default_call_policies, boost::mpl::vector2<void, object> > >::~caller_py_function_impl()in conftest_9.o boost::python::objects::caller_py_function_impl<boost::python::detail::caller<void ()(_object), boost::python::default_call_policies, boost::mpl::vector2<void, _object> > >::~caller_py_function_impl()in conftest_9.o "boost::python::converter::shared_ptrdeleter::operator()(void const)", referenced from: boost::detail::sp_counted_implpd<void, boost::python::converter::shared_ptr_deleter>::dispose()in conftest_9.o boost::python::converter::shared_ptr_from_python::construct(object, boost::python::converter::rvalue_from_python_stage1data)in conftest_9.o "boost::python::objects::class_base::set_instance_size(unsigned long)", referenced from: _main in conftest_9.o "boost::python::converter::registration::expected_from_python_type() const", referenced from: boost::python::converter::expected_from_python_type_direct::get_pytype() in conftest_9.o boost::python::converter::expected_pytype_for_arg<_object_>::get_pytype() in conftest_9.o boost::python::converter::expected_pytype_for_arg::get_pytype() in conftest_9.o "boost::python::throw_error_already_set()", referenced from: boost::python::converter::shared_ptr_from_python::construct(object, boost::python::converter::rvalue_from_python_stage1data)in conftest_9.o "typeinfo for boost::python::objects::py_function_impl_base", referenced from: typeinfo for boost::python::objects::caller_py_functionimpl<boost::python::detail::caller<void ()(object), boost::python::default_call_policies, boost::mpl::vector2<void, object> > >in conftest_9.o "boost::python::instance_holder::~instance_holder()", referenced from: boost::python::objects::value_holder::~value_holder()in conftest_9.o boost::python::objects::value_holder::~value_holder()in conftest_9.o "boost::python::converter::registry::lookup(boost::python::type_info)", referenced from: __static_initialization_and_destruction_0(int, int)in conftest_9.o "boost::python::converter::registry::insert(object* ()(void const_), boost::python::type_info, typeobject const* ()())", referenced from: boost::python::to_python_converter<Foo, boost::python::objects::class_cref_wrapper<Foo, boost::python::objects::make_instance<Foo, boost::python::objects::value_holder > >, true>::to_python_converter()in conftest_9.o "boost::python::converter::registry::query(boost::python::type_info)", referenced from: boost::python::converter::expected_pytype_for_arg<_object_>::get_pytype() in conftest_9.o boost::python::converter::expected_pytype_for_arg::get_pytype() in conftest_9.o "boost::python::objects::find_statictype(void, boost::python::type_info, boost::python::type_info)", referenced from: boost::python::objects::value_holder::holds(boost::python::type_info, bool)in conftest_9.o "boost::python::objects::add_tonamespace(boost::python::api::object const&, char const, boost::python::api::object const&, char const)", referenced from: void boost::python::class_<Foo, boost::python::detail::not_specified, boost::python::detail::not_specified, boost::python::detail::not_specified>::def_maybeoverloads<boost::python::api::object, char const*>(char const, boost::python::api::object, char const_ const&, ...)in conftest_9.o "boost::python::converter::shared_ptr_deleter::shared_ptr_deleter(boost::python::handle<_object>)", referenced from: boost::python::converter::shared_ptr_from_python::construct(object, boost::python::converter::rvalue_from_python_stage1data)in conftest9.o "boost::python::converter::registry::insert(void* ()(object), void (_)(object, boost::python::converter::rvalue_from_python_stage1data), boost::python::type_info, typeobject const (_)())", referenced from: _main in conftest_9.o "boost::python::objects::py_function_impl_base::max_arity() const", referenced from: vtable for boost::python::objects::caller_py_functionimpl<boost::python::detail::caller<void ()(object), boost::python::default_call_policies, boost::mpl::vector2<void, object> > >in conftest_9.o "boost::python::objects::function_object(boost::python::objects::py_function const&, std::pair<boost::python::detail::keyword const, boost::python::detail::keyword const> const&)", referenced from: boost::python::api::object boost::python::detail::make_function_aux<void ()(_object), boost::python::default_call_policies, boost::mpl::vector2<void, object*>, mpl::int<0> >(void ()(object), boost::python::default_call_policies const&, boost::mpl::vector2<void, object> const&, std::pair<boost::python::detail::keyword const, boost::python::detail::keyword const*> const&, mpl::int_<0>)in conftest_9.o "boost::python::instance_holder::allocate(_object, unsigned long, unsigned long)", referenced from: boost::python::objects::make_holder<0>::applyboost::python::objects::valueholder<Foo, boost::mpl::vector0<mpl::na> >::execute(object)in conftest_9.o "boost::python::objects::class_base::classbase(char const, unsigned long, boost::python::typeinfo const, char const_)", referenced from: _main in conftest_9.o "boost::python::converter::get_lvalue_from_python(object, boost::python::converter::registration const&)", referenced from: boost::python::converter::shared_ptr_from_python::convertible(object) in conftest_9.o "boost::python::converter::shared_ptr_deleter::~shared_ptr_deleter()", referenced from: boost::python::converter::shared_ptr_from_python::construct(object, boost::python::converter::rvalue_from_python_stage1data)in conftest_9.o boost::python::converter::shared_ptr_from_python::construct(object, boost::python::converter::rvalue_from_python_stage1data)in conftest_9.o boost::python::converter::shared_ptr_from_python::construct(object, boost::python::converter::rvalue_from_python_stage1data)in conftest_9.o boost::python::converter::shared_ptr_from_python::construct(object, boost::python::converter::rvalue_from_python_stage1data)in conftest_9.o boost::detail::sp_counted_impl_pd<void, boost::python::converter::shared_ptr_deleter>::~sp_counted_impl_pd()in conftest_9.o boost::detail::sp_counted_impl_pd<void, boost::python::converter::shared_ptr_deleter>::~sp_counted_impl_pd()in conftest_9.o "boost::python::instance_holder::instance_holder()", referenced from: boost::python::objects::make_holder<0>::applyboost::python::objects::valueholder<Foo, boost::mpl::vector0<mpl::na> >::execute(object)in conftest_9.o boost::python::objects::class_cref_wrapper<Foo, boost::python::objects::make_instance<Foo, boost::python::objects::value_holder > >::convert(Foo const&)in conftest_9.o boost::python::converter::as_to_python_function<Foo, boost::python::objects::class_cref_wrapper<Foo, boost::python::objects::make_instance<Foo, boost::python::objects::valueholder > > >::convert(void const)in conftest_9.o "boost::python::converter::registration::get_class_object() const", referenced from: boost::python::objects::class_cref_wrapper<Foo, boost::python::objects::make_instance<Foo, boost::python::objects::value_holder > >::convert(Foo const&)in conftest_9.o boost::python::converter::as_to_python_function<Foo, boost::python::objects::class_cref_wrapper<Foo, boost::python::objects::make_instance<Foo, boost::python::objects::valueholder > > >::convert(void const)in conftest_9.o "typeinfo for boost::python::instance_holder", referenced from: typeinfo for boost::python::objects::value_holderin conftest_9.o "boost::python::objects::register_dynamic_id_aux(boost::python::typeinfo, std::pair<void, boost::python::typeinfo> ()(void_))", referenced from: void boost::python::objects::register_dynamicid(Foo)in conftest_9.o "boost::python::detail::gccdemangle(char const)", referenced from: boost::python::detail::signature_arity<1u>::impl<boost::mpl::vector2<void, _object> >::elements()in conftest_9.o boost::python::detail::signature_arity<1u>::impl<boost::mpl::vector2<void, _object> >::elements()in conftest_9.o boost::python::objects::caller_py_function_impl<boost::python::detail::caller<void ()(_object), boost::python::default_call_policies, boost::mpl::vector2<void, _object> > >::signature() constin conftest_9.o boost::python::objects::caller_py_function_impl<boost::python::detail::caller<void ()(_object), boost::python::default_call_policies, boost::mpl::vector2<void, _object> > >::signature() constin conftest_9.o boost::python::detail::caller_arity<1u>::impl<void ()(_object), boost::python::default_call_policies, boost::mpl::vector2<void, _object> >::signature()in conftest_9.o boost::python::detail::caller_arity<1u>::impl<void ()(_object), boost::python::default_call_policies, boost::mpl::vector2<void, _object> >::signature()in conftest_9.o "vtable for boost::python::objects::py_function_impl_base", referenced from: __ZTVN5boost6python7objects21py_function_impl_baseE$non_lazy_ptr in conftest_9.o "boost::python::instance_holder::install(_object)", referenced from: boost::python::objects::make_holder<0>::applyboost::python::objects::valueholder<Foo, boost::mpl::vector0<mpl::na> >::execute(object)in conftest_9.o boost::python::objects::class_cref_wrapper<Foo, boost::python::objects::make_instance<Foo, boost::python::objects::value_holder > >::convert(Foo const&)in conftest_9.o boost::python::converter::as_to_python_function<Foo, boost::python::objects::class_cref_wrapper<Foo, boost::python::objects::make_instance<Foo, boost::python::objects::valueholder > > >::convert(void const)in conftest_9.o ld: symbol(s) not found collect2: ld returned 1 exit status .sconf_temp/conftest_10.cpp <- #include "boost/python.hpp"
class Foo { public: Foo() {} };
int main()
{
Py_Initialize();
boost::python::object obj;
boost::python::class_< Foo >("Foo", boost::python::init<>());
Py_Finalize();
return 0;
}
g++ -o .sconf_temp/conftest_10.o -c -O2 -fno-strict-aliasing -g3 -Wall -Werror -Iinclude -I/opt/local/include -I/usr/local/include -I/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -I/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/core/include .sconf_temp/conftest_10.cpp g++ -o .sconf_temp/conftest_10 .sconf_temp/conftest_10.o -Llib -L/opt/local/lib -L/usr/local/lib -L/Library/Frameworks/Python.framework/Versions/2.7/lib -lboost_python -lcfitsio -lfftw3 -ltmv -lblas -lpython2.7 -ldl -framework CoreFoundation .sconf_temp/conftest_11.cpp <- #include "boost/python.hpp"
class Foo { public: Foo() {} };
int main()
{
Py_Initialize();
boost::python::object obj;
boost::python::class_< Foo >("Foo", boost::python::init<>());
Py_Finalize();
return 0;
}

g++ -o .sconf_temp/conftest_11.o -c -O2 -fno-strict-aliasing -g3 -Wall -Werror -Iinclude -I/opt/local/include -I/usr/local/include -I/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -I/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/numpy/core/include .sconf_temp/conftest_11.cpp g++ -o .sconf_temp/conftest_11 .sconf_temp/conftest_11.o -Llib -L/opt/local/lib -L/usr/local/lib -L/Library/Frameworks/Python.framework/Versions/2.7/lib -lboost_python -lcfitsio -lfftw3 -ltmv -lblas -lpython2.7 -ldl -framework CoreFoundation .sconf_temp/conftest_11 > .sconf_temp/conftest_11.out scons: Configure: no

TallJimbo commented 12 years ago

Here's what I can tell so far:

When that's happened in the past, it's sometimes been because the version of some library (probably python2.x or boost_python) found by the runtime linker system (e.g. LD_LIBRARY_PATH) is different from the version picked up by the gcc linker (via -L options), so the versions of the two libraries weren't compatible at runtime. Do you have two versions of Python or Boost on your system?

If you're comfortable running .sconf_temp/conftest_11 in a debugger and can get the segmentation fault traceback, that also might be helpful.

I've also just opened a new issue (#127) to try to revamp how we do these configure checks; if we can't make progress here, that might give us something else to try.

rmjarvis commented 12 years ago

My general policy is to always try the configuration "as is" before trying to add other things, as you say, expecting it to fail most of the time. The reason for it is in case people add explicit libraries with the EXTRA_LIBS option. If you have a non-standard set up, then you might need to just explicitly tell SCons what to use. In that case, we want to use those libraries rather than the ones that we think should work for normal set ups.

Maybe this isn't really necessary, but I don't think it's a huge time sink to do it that way.

rmjarvis commented 12 years ago

Also, Dave, do a git pull and rerun scons. I'd had it set to remove the .scon* files to make sure they get remade after an error, but that means they're not around to diagnose problems. So I removed that "feature" (bug).

barnabytprowe commented 12 years ago

In reply to @TallJimbo, no I don't recall a successful case with gcc4.0. A table of successful/failed build cases is an excellent idea, I'll get working on a spreadsheet we can all share...

rmjarvis commented 12 years ago

I just tested with g++ 4.0.1 and it worked fine, so I don't think that's the problem.

The only compiler that I've tried which I haven't fully gotten everything to work yet is icpc. It fails to find some stuff at run time when trying to load the galsim library. I think I got it to work by setting LD_LIBRARY_PATH, but that's an inelegant solution. I didn't make an issue for it, but I guess I probably should. It's not the machine I usually use, so it hasn't been high priority for me, and I don't think anyone else is using icpc.

rmjarvis commented 12 years ago

I spoke too soon. Turns out scons tests failed for 4.0, but I just fixed it.

Dave, another thing that could possibly be the problem is that on my computer the g++-4.0 compiler defaults to compiling 32 bit code, and the python version that comes with the computer is 64 bit, and thus needs 64 bit libraries. If this is true on your computer too, then that could possibly be the problem. (Although for whatever reason, the clash didn't show up on my computer until I ran scons tests, so maybe not.)

Anyway, to check this you could try running:

scons EXTRA_FLAGS=-m64

and see if that works.

DMGoldberg commented 12 years ago

At Mike's suggestion, I checked out the latest version of of GalSim (GalSim-developers-GalSim-5088ebd.tar). The previous version (GalSim-developers-GalSim-edd5d8e.tar) did not save the .sconf_temp/ directory.

However, now I find that my build fails even earlier, at the TMV stage. I have tried manually including a TMV_DIR flag, but that doesn't seem to be the issue. I should note that I use gcc 4.0.1 both at work and at home (where I compiled successfully). My current log is below.

Thoughts and suggestions are, of course, appreciated.

Dave


file /Users/goldberg/Desktop/GalSim-developers-GalSim-5088ebd/SConstruct,line 1003: Configure(confdir = .sconf_temp) scons: Configure: Checking for C++ library cfitsio... .sconf_temp/conftest_0.cpp <-
#include "fitsio.h"
int
main() {
return 0;
}

g++ -o .sconf_temp/conftest_0.o -c -O2 -fno-strict-aliasing -g3 -Wall -Werror -m64 -Iinclude -I/usr/local/include -I/opt/local/include .sconf_temp/conftest_0.cpp g++ -o .sconf_temp/conftest_0 -m64 .sconf_temp/conftest_0.o -Llib -L/usr/local/lib -L/opt/local/lib -lcfitsio ld warning: in /usr/local/lib/libcfitsio.a, file is not of required architecture scons: Configure: yes

scons: Configure: Checking for C++ library fftw3... .sconf_temp/conftest_1.cpp <-
#include "fftw3.h"
int
main() {
return 0;
}

g++ -o .sconf_temp/conftest_1.o -c -O2 -fno-strict-aliasing -g3 -Wall -Werror -m64 -Iinclude -I/usr/local/include -I/opt/local/include .sconf_temp/conftest_1.cpp g++ -o .sconf_temp/conftest_1 -m64 .sconf_temp/conftest_1.o -Llib -L/usr/local/lib -L/opt/local/lib -lcfitsio -lfftw3 ld warning: in /usr/local/lib/libcfitsio.a, file is not of required architecture ld warning: in /opt/local/lib/libfftw3.dylib, file is not of required architecture scons: Configure: yes

scons: Configure: Checking for C++ header file boost/shared_ptr.hpp... .sconf_temp/conftest_2.cpp <- #include <boost/shared_ptr.hpp>

g++ -o .sconf_temp/conftest_2.o -c -O2 -fno-strict-aliasing -g3 -Wall -Werror -m64 -Iinclude -I/usr/local/include -I/opt/local/include .sconf_temp/conftest_2.cpp scons: Configure: yes

scons: Configure: Checking for C++ header file TMV.h... .sconf_temp/conftest_3.cpp <- #include

g++ -o .sconf_temp/conftest_3.o -c -O2 -fno-strict-aliasing -g3 -Wall -Werror -m64 -Iinclude -I/usr/local/include -I/opt/local/include .sconf_temp/conftest_3.cpp scons: Configure: yes

scons: Configure: Checking for correct TMV linkage... .sconf_temp/conftest_4.cpp <- #include "TMV_Sym.h" int main() { //tmv::SymMatrix S(10,4.); tmv::Matrix S(10,10,4.); tmv::Matrix m(10,3,2.); tmv::Matrix m2 = m / S; return 0; }
g++ -o .sconf_temp/conftest_4.o -c -O2 -fno-strict-aliasing -g3 -Wall -Werror -m64 -Iinclude -I/usr/local/include -I/opt/local/include .sconf_temp/conftest_4.cpp .sconf_temp/conftest_5.cpp <- #include "TMV_Sym.h" int main() { //tmv::SymMatrix S(10,4.); tmv::Matrix S(10,10,4.); tmv::Matrix m(10,3,2.); tmv::Matrix m2 = m / S; return 0; }
g++ -o .sconf_temp/conftest_5.o -c -O2 -fno-strict-aliasing -g3 -Wall -Werror -m64 -Iinclude -I/usr/local/include -I/opt/local/include .sconf_temp/conftest_5.cpp g++ -o .sconf_temp/conftest_5 -m64 .sconf_temp/conftest_5.o -Llib -L/usr/local/lib -L/opt/local/lib -lcfitsio -lfftw3 -ltmv -lblas ld warning: in /usr/local/lib/libcfitsio.a, file is not of required architecture ld warning: in /opt/local/lib/libfftw3.dylib, file is not of required architecture ld warning: in /usr/local/lib/libtmv.dylib, file is not of required architecture Undefined symbols: "tmv::DivHelperstd::complex::~DivHelper()", referenced from: construction vtable for tmv::DivHelperstd::complex-in-tmv::MatrixViewstd::complex<double, 0>in conftest_5.o construction vtable for tmv::DivHelperstd::complex-in-tmv::ConstMatrixViewstd::complex<double, 0>in conftest_5.o construction vtable for tmv::DivHelperstd::complex-in-tmv::GenMatrixstd::complexin conftest_5.o construction vtable for tmv::DivHelperstd::complex-in-tmv::Matrixstd::complex<double, 2>in conftest_5.o construction vtable for tmv::DivHelperstd::complex-in-tmv::Matrixstd::complex<double, 0>in conftest_5.o "tmv::GenMatrix::sumAbs2Elements() const", referenced from: construction vtable for tmv::GenMatrix-in-tmv::Matrix<double, 0>in conftest_5.o vtable for tmv::Matrix<double, 0>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::ConstMatrixView<double, 0>in conftest_5.o vtable for tmv::ConstMatrixView<double, 0>in conftest_5.o vtable for tmv::GenMatrixin conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::MatrixView<double, 0>in conftest_5.o vtable for tmv::MatrixView<double, 0>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::Matrix<double, 2>in conftest_5.o vtable for tmv::Matrix<double, 2>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::QuotMM<double, double, double>in conftest_5.o construction vtable for tmv::MatrixComposite-in-tmv::QuotMM<double, double, double>in conftest_5.o vtable for tmv::QuotMM<double, double, double>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::MatrixCompositein conftest_5.o vtable for tmv::MatrixCompositein conftest_5.o "tmv::GenMatrixstd::complex::sumAbsElements() const", referenced from: construction vtable for tmv::GenMatrixstd::complex-in-tmv::MatrixViewstd::complex<double, 0>in conftest_5.o vtable for tmv::MatrixViewstd::complex<double, 0>in conftest_5.o construction vtable for tmv::GenMatrixstd::complex-in-tmv::ConstMatrixViewstd::complex<double, 0>in conftest_5.o vtable for tmv::ConstMatrixViewstd::complex<double, 0>in conftest_5.o vtable for tmv::GenMatrixstd::complexin conftest_5.o construction vtable for tmv::GenMatrixstd::complex-in-tmv::Matrixstd::complex<double, 2>in conftest_5.o vtable for tmv::Matrixstd::complex<double, 2>in conftest_5.o construction vtable for tmv::GenMatrixstd::complex-in-tmv::Matrixstd::complex<double, 0>in conftest_5.o vtable for tmv::Matrixstd::complex<double, 0>in conftest_5.o "void tmv::MultXMstd::complex(std::complex, tmv::MatrixViewstd::complex<double, 0>)", referenced from: void tmv::MultXM(double, tmv::MatrixViewstd::complex<double, 0>)in conftest_5.o "tmv::DivHelperstd::complex::~DivHelper()", referenced from: tmv::GenMatrixstd::complex::~GenMatrix()in conftest_5.o tmv::GenMatrixstd::complex::~GenMatrix()in conftest_5.o tmv::GenMatrixstd::complex::~GenMatrix()in conftest_5.o "tmv::VectorView<double, 0>::setAllTo(double const&)", referenced from: tmv::Matrix<double, 0>::setAllTo(double const&)in conftest_5.o "void tmv::DoCopySameTypestd::complex(tmv::GenMatrixstd::complex const&, tmv::MatrixViewstd::complex<double, 0>)", referenced from: void tmv::DoCopystd::complex(tmv::GenMatrixstd::complex const&, tmv::MatrixViewstd::complex<double, 0>)in conftest_5.o "tmv::GenVector::sumElements() const", referenced from: tmv::GenMatrix::trace() constin conftest_5.o "tmv::MatrixViewstd::complex<double, 0>::conjugateSelf()", referenced from: void tmv::Copystd::complex<double, std::complex >(tmv::GenMatrixstd::complex const&, tmv::MatrixViewstd::complex<double, 0>)in conftest_5.o void tmv::Copystd::complex<double, std::complex >(tmv::GenMatrixstd::complex const&, tmv::MatrixViewstd::complex<double, 0>)in conftest_5.o void tmv::Copy<double, std::complex >(tmv::GenMatrix const&, tmv::MatrixViewstd::complex<double, 0>)in conftest_5.o void tmv::Copy<double, std::complex >(tmv::GenMatrix const&, tmv::MatrixViewstd::complex<double, 0>)in conftest_5.o "tmv::GenMatrix::sumAbsElements() const", referenced from: construction vtable for tmv::GenMatrix-in-tmv::Matrix<double, 0>in conftest_5.o vtable for tmv::Matrix<double, 0>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::ConstMatrixView<double, 0>in conftest_5.o vtable for tmv::ConstMatrixView<double, 0>in conftest_5.o vtable for tmv::GenMatrixin conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::MatrixView<double, 0>in conftest_5.o vtable for tmv::MatrixView<double, 0>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::Matrix<double, 2>in conftest_5.o vtable for tmv::Matrix<double, 2>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::QuotMM<double, double, double>in conftest_5.o construction vtable for tmv::MatrixComposite-in-tmv::QuotMM<double, double, double>in conftest_5.o vtable for tmv::QuotMM<double, double, double>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::MatrixCompositein conftest_5.o vtable for tmv::MatrixCompositein conftest_5.o "tmv::GenMatrix::maxAbsElement() const", referenced from: construction vtable for tmv::GenMatrix-in-tmv::Matrix<double, 0>in conftest_5.o vtable for tmv::Matrix<double, 0>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::ConstMatrixView<double, 0>in conftest_5.o vtable for tmv::ConstMatrixView<double, 0>in conftest_5.o vtable for tmv::GenMatrixin conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::MatrixView<double, 0>in conftest_5.o vtable for tmv::MatrixView<double, 0>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::Matrix<double, 2>in conftest_5.o vtable for tmv::Matrix<double, 2>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::QuotMM<double, double, double>in conftest_5.o construction vtable for tmv::MatrixComposite-in-tmv::QuotMM<double, double, double>in conftest_5.o vtable for tmv::QuotMM<double, double, double>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::MatrixCompositein conftest_5.o vtable for tmv::MatrixCompositein conftest_5.o "tmv::GenMatrix::normSq(double) const", referenced from: construction vtable for tmv::GenMatrix-in-tmv::Matrix<double, 0>in conftest_5.o vtable for tmv::Matrix<double, 0>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::ConstMatrixView<double, 0>in conftest_5.o vtable for tmv::ConstMatrixView<double, 0>in conftest_5.o vtable for tmv::GenMatrixin conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::MatrixView<double, 0>in conftest_5.o vtable for tmv::MatrixView<double, 0>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::Matrix<double, 2>in conftest_5.o vtable for tmv::Matrix<double, 2>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::QuotMM<double, double, double>in conftest_5.o construction vtable for tmv::MatrixComposite-in-tmv::QuotMM<double, double, double>in conftest_5.o vtable for tmv::QuotMM<double, double, double>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::MatrixCompositein conftest_5.o vtable for tmv::MatrixCompositein conftest_5.o "tmv::VectorView<double, 0>::conjugateSelf()", referenced from: void tmv::Copy<double, double>(tmv::GenVector const&, tmv::VectorView<double, 0>)in conftest_5.o void tmv::Copy<double, double>(tmv::GenVector const&, tmv::VectorView<double, 0>)in conftest_5.o "tmv::MatrixView<double, 0>::transposeSelf()", referenced from: void tmv::Copy<double, double>(tmv::GenMatrix const&, tmv::MatrixView<double, 0>)in conftest_5.o "tmv::GenMatrixstd::complex::normF() const", referenced from: construction vtable for tmv::GenMatrixstd::complex-in-tmv::MatrixViewstd::complex<double, 0>in conftest_5.o vtable for tmv::MatrixViewstd::complex<double, 0>in conftest_5.o construction vtable for tmv::GenMatrixstd::complex-in-tmv::ConstMatrixViewstd::complex<double, 0>in conftest_5.o vtable for tmv::ConstMatrixViewstd::complex<double, 0>in conftest_5.o vtable for tmv::GenMatrixstd::complexin conftest_5.o construction vtable for tmv::GenMatrixstd::complex-in-tmv::Matrixstd::complex<double, 2>in conftest_5.o vtable for tmv::Matrixstd::complex<double, 2>in conftest_5.o construction vtable for tmv::GenMatrixstd::complex-in-tmv::Matrixstd::complex<double, 0>in conftest_5.o vtable for tmv::Matrixstd::complex<double, 0>in conftest_5.o "tmv::GenMatrix::sumElements() const", referenced from: construction vtable for tmv::GenMatrix-in-tmv::Matrix<double, 0>in conftest_5.o vtable for tmv::Matrix<double, 0>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::ConstMatrixView<double, 0>in conftest_5.o vtable for tmv::ConstMatrixView<double, 0>in conftest_5.o vtable for tmv::GenMatrixin conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::MatrixView<double, 0>in conftest_5.o vtable for tmv::MatrixView<double, 0>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::Matrix<double, 2>in conftest_5.o vtable for tmv::Matrix<double, 2>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::QuotMM<double, double, double>in conftest_5.o construction vtable for tmv::MatrixComposite-in-tmv::QuotMM<double, double, double>in conftest_5.o vtable for tmv::QuotMM<double, double, double>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::MatrixCompositein conftest_5.o vtable for tmv::MatrixCompositein conftest_5.o "void tmv::DoCopySameType(tmv::GenVector const&, tmv::VectorView<double, 0>)", referenced from: void tmv::DoCopy(tmv::GenVector const&, tmv::VectorView<double, 0>)in conftest_5.o "tmv::MatrixComposite::cptr() const", referenced from: construction vtable for tmv::MatrixComposite-in-tmv::QuotMM<double, double, double>in conftest_5.o vtable for tmv::QuotMM<double, double, double>in conftest_5.o vtable for tmv::MatrixCompositein conftest_5.o "tmv::GenMatrixstd::complex::normSq(double) const", referenced from: construction vtable for tmv::GenMatrixstd::complex-in-tmv::MatrixViewstd::complex<double, 0>in conftest_5.o vtable for tmv::MatrixViewstd::complex<double, 0>in conftest_5.o construction vtable for tmv::GenMatrixstd::complex-in-tmv::ConstMatrixViewstd::complex<double, 0>in conftest_5.o vtable for tmv::ConstMatrixViewstd::complex<double, 0>in conftest_5.o vtable for tmv::GenMatrixstd::complexin conftest_5.o construction vtable for tmv::GenMatrixstd::complex-in-tmv::Matrixstd::complex<double, 2>in conftest_5.o vtable for tmv::Matrixstd::complex<double, 2>in conftest_5.o construction vtable for tmv::GenMatrixstd::complex-in-tmv::Matrixstd::complex<double, 0>in conftest_5.o vtable for tmv::Matrixstd::complex<double, 0>in conftest_5.o "tmv::GenMatrix::norm1() const", referenced from: construction vtable for tmv::GenMatrix-in-tmv::Matrix<double, 0>in conftest_5.o vtable for tmv::Matrix<double, 0>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::ConstMatrixView<double, 0>in conftest_5.o vtable for tmv::ConstMatrixView<double, 0>in conftest_5.o vtable for tmv::GenMatrixin conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::MatrixView<double, 0>in conftest_5.o vtable for tmv::MatrixView<double, 0>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::Matrix<double, 2>in conftest_5.o vtable for tmv::Matrix<double, 2>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::QuotMM<double, double, double>in conftest_5.o construction vtable for tmv::MatrixComposite-in-tmv::QuotMM<double, double, double>in conftest_5.o vtable for tmv::QuotMM<double, double, double>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::MatrixCompositein conftest_5.o vtable for tmv::MatrixCompositein conftest_5.o tmv::GenMatrix::normInf() constin conftest_5.o "tmv::DivHelper::doNorm2() const", referenced from: tmv::DivHelper::norm2() constin conftest_5.o "tmv::GenMatrixstd::complex::maxAbsElement() const", referenced from: construction vtable for tmv::GenMatrixstd::complex-in-tmv::MatrixViewstd::complex<double, 0>in conftest_5.o vtable for tmv::MatrixViewstd::complex<double, 0>in conftest_5.o construction vtable for tmv::GenMatrixstd::complex-in-tmv::ConstMatrixViewstd::complex<double, 0>in conftest_5.o vtable for tmv::ConstMatrixViewstd::complex<double, 0>in conftest_5.o vtable for tmv::GenMatrixstd::complexin conftest_5.o construction vtable for tmv::GenMatrixstd::complex-in-tmv::Matrixstd::complex<double, 2>in conftest_5.o vtable for tmv::Matrixstd::complex<double, 2>in conftest_5.o construction vtable for tmv::GenMatrixstd::complex-in-tmv::Matrixstd::complex<double, 0>in conftest_5.o vtable for tmv::Matrixstd::complex<double, 0>in conftest_5.o "tmv::GenMatrix::doNorm2() const", referenced from: construction vtable for tmv::GenMatrix-in-tmv::Matrix<double, 0>in conftest_5.o vtable for tmv::Matrix<double, 0>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::ConstMatrixView<double, 0>in conftest_5.o vtable for tmv::ConstMatrixView<double, 0>in conftest_5.o vtable for tmv::GenMatrixin conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::MatrixView<double, 0>in conftest_5.o vtable for tmv::MatrixView<double, 0>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::Matrix<double, 2>in conftest_5.o vtable for tmv::Matrix<double, 2>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::QuotMM<double, double, double>in conftest_5.o construction vtable for tmv::MatrixComposite-in-tmv::QuotMM<double, double, double>in conftest_5.o vtable for tmv::QuotMM<double, double, double>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::MatrixCompositein conftest_5.o vtable for tmv::MatrixCompositein conftest_5.o "tmv::MatrixView<double, 0>::conjugateSelf()", referenced from: void tmv::Copy<double, double>(tmv::GenMatrix const&, tmv::MatrixView<double, 0>)in conftest_5.o void tmv::Copy<double, double>(tmv::GenMatrix const&, tmv::MatrixView<double, 0>)in conftest_5.o "virtual thunk to tmv::DivHelperstd::complex::~DivHelper()", referenced from: construction vtable for tmv::DivHelperstd::complex-in-tmv::MatrixViewstd::complex<double, 0>in conftest_5.o construction vtable for tmv::DivHelperstd::complex-in-tmv::ConstMatrixViewstd::complex<double, 0>in conftest_5.o construction vtable for tmv::DivHelperstd::complex-in-tmv::GenMatrixstd::complexin conftest_5.o construction vtable for tmv::DivHelperstd::complex-in-tmv::Matrixstd::complex<double, 2>in conftest_5.o construction vtable for tmv::DivHelperstd::complex-in-tmv::Matrixstd::complex<double, 0>in conftest5.o "tmv::GenMatrixstd::complex::logDet(std::complex) const", referenced from: construction vtable for tmv::GenMatrixstd::complex-in-tmv::MatrixViewstd::complex<double, 0>in conftest_5.o vtable for tmv::MatrixViewstd::complex<double, 0>in conftest_5.o construction vtable for tmv::GenMatrixstd::complex-in-tmv::ConstMatrixViewstd::complex<double, 0>in conftest_5.o vtable for tmv::ConstMatrixViewstd::complex<double, 0>in conftest_5.o vtable for tmv::GenMatrixstd::complexin conftest_5.o construction vtable for tmv::GenMatrixstd::complex-in-tmv::Matrixstd::complex<double, 2>in conftest_5.o vtable for tmv::Matrixstd::complex<double, 2>in conftest_5.o construction vtable for tmv::GenMatrixstd::complex-in-tmv::Matrixstd::complex<double, 0>in conftest_5.o vtable for tmv::Matrixstd::complex<double, 0>in conftest_5.o "virtual thunk to tmv::DivHelperstd::complex::~DivHelper()", referenced from: construction vtable for tmv::DivHelperstd::complex-in-tmv::MatrixViewstd::complex<double, 0>in conftest_5.o construction vtable for tmv::DivHelperstd::complex-in-tmv::ConstMatrixViewstd::complex<double, 0>in conftest_5.o construction vtable for tmv::DivHelperstd::complex-in-tmv::GenMatrixstd::complexin conftest_5.o construction vtable for tmv::DivHelperstd::complex-in-tmv::Matrixstd::complex<double, 2>in conftest_5.o construction vtable for tmv::DivHelperstd::complex-in-tmv::Matrixstd::complex<double, 0>in conftest_5.o "tmv::GenMatrixstd::complex::det() const", referenced from: construction vtable for tmv::GenMatrixstd::complex-in-tmv::MatrixViewstd::complex<double, 0>in conftest_5.o vtable for tmv::MatrixViewstd::complex<double, 0>in conftest_5.o construction vtable for tmv::GenMatrixstd::complex-in-tmv::ConstMatrixViewstd::complex<double, 0>in conftest_5.o vtable for tmv::ConstMatrixViewstd::complex<double, 0>in conftest_5.o vtable for tmv::GenMatrixstd::complexin conftest_5.o construction vtable for tmv::GenMatrixstd::complex-in-tmv::Matrixstd::complex<double, 2>in conftest_5.o vtable for tmv::Matrixstd::complex<double, 2>in conftest_5.o construction vtable for tmv::GenMatrixstd::complex-in-tmv::Matrixstd::complex<double, 0>in conftest_5.o vtable for tmv::Matrixstd::complex<double, 0>in conftest_5.o "tmv::DivHelperstd::complex::divIsSet() const", referenced from: tmv::DivHelperstd::complex::norm2() constin conftest_5.o tmv::GenMatrixstd::complex::norm2() constin conftest_5.o "tmv::GenMatrixstd::complex::maxAbs2Element() const", referenced from: construction vtable for tmv::GenMatrixstd::complex-in-tmv::MatrixViewstd::complex<double, 0>in conftest_5.o vtable for tmv::MatrixViewstd::complex<double, 0>in conftest_5.o construction vtable for tmv::GenMatrixstd::complex-in-tmv::ConstMatrixViewstd::complex<double, 0>in conftest_5.o vtable for tmv::ConstMatrixViewstd::complex<double, 0>in conftest_5.o vtable for tmv::GenMatrixstd::complexin conftest_5.o construction vtable for tmv::GenMatrixstd::complex-in-tmv::Matrixstd::complex<double, 2>in conftest_5.o vtable for tmv::Matrixstd::complex<double, 2>in conftest_5.o construction vtable for tmv::GenMatrixstd::complex-in-tmv::Matrixstd::complex<double, 0>in conftest_5.o vtable for tmv::Matrixstd::complex<double, 0>in conftest_5.o "tmv::GenMatrix::setDiv() const", referenced from: construction vtable for tmv::GenMatrix-in-tmv::Matrix<double, 0>in conftest_5.o vtable for tmv::Matrix<double, 0>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::ConstMatrixView<double, 0>in conftest_5.o vtable for tmv::ConstMatrixView<double, 0>in conftest_5.o vtable for tmv::GenMatrixin conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::MatrixView<double, 0>in conftest_5.o vtable for tmv::MatrixView<double, 0>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::Matrix<double, 2>in conftest_5.o vtable for tmv::Matrix<double, 2>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::QuotMM<double, double, double>in conftest_5.o construction vtable for tmv::MatrixComposite-in-tmv::QuotMM<double, double, double>in conftest_5.o vtable for tmv::QuotMM<double, double, double>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::MatrixCompositein conftest_5.o vtable for tmv::MatrixCompositein conftest_5.o "tmv::GenMatrixstd::complex::norm1() const", referenced from: construction vtable for tmv::GenMatrixstd::complex-in-tmv::MatrixViewstd::complex<double, 0>in conftest_5.o vtable for tmv::MatrixViewstd::complex<double, 0>in conftest_5.o construction vtable for tmv::GenMatrixstd::complex-in-tmv::ConstMatrixViewstd::complex<double, 0>in conftest_5.o vtable for tmv::ConstMatrixViewstd::complex<double, 0>in conftest_5.o vtable for tmv::GenMatrixstd::complexin conftest_5.o construction vtable for tmv::GenMatrixstd::complex-in-tmv::Matrixstd::complex<double, 2>in conftest_5.o vtable for tmv::Matrixstd::complex<double, 2>in conftest_5.o construction vtable for tmv::GenMatrixstd::complex-in-tmv::Matrixstd::complex<double, 0>in conftest_5.o vtable for tmv::Matrixstd::complex<double, 0>in conftest_5.o tmv::GenMatrixstd::complex::normInf() constin conftest_5.o "tmv::MatrixComposite::stepi() const", referenced from: construction vtable for tmv::MatrixComposite-in-tmv::QuotMM<double, double, double>in conftest_5.o vtable for tmv::QuotMM<double, double, double>in conftest_5.o vtable for tmv::MatrixCompositein conftest_5.o "void tmv::MultXM(double, tmv::MatrixView<double, 0>)", referenced from: tmv::QuotMM<double, double, double>::assignToM(tmv::MatrixView<double, 0>) constin conftest_5.o "tmv::GenVectorstd::complex::cref(long) const", referenced from: vtable for tmv::VectorViewstd::complex<double, 0>in conftest_5.o vtable for tmv::ConstVectorViewstd::complex<double, 0>in conftest_5.o vtable for tmv::GenVectorstd::complexin conftest_5.o "tmv::GenMatrix::maxAbs2Element() const", referenced from: construction vtable for tmv::GenMatrix-in-tmv::Matrix<double, 0>in conftest_5.o vtable for tmv::Matrix<double, 0>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::ConstMatrixView<double, 0>in conftest_5.o vtable for tmv::ConstMatrixView<double, 0>in conftest_5.o vtable for tmv::GenMatrixin conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::MatrixView<double, 0>in conftest_5.o vtable for tmv::MatrixView<double, 0>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::Matrix<double, 2>in conftest_5.o vtable for tmv::Matrix<double, 2>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::QuotMM<double, double, double>in conftest_5.o construction vtable for tmv::MatrixComposite-in-tmv::QuotMM<double, double, double>in conftest_5.o vtable for tmv::QuotMM<double, double, double>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::MatrixCompositein conftest_5.o vtable for tmv::MatrixCompositein conftest_5.o "tmv::GenVectorstd::complex::sumElements() const", referenced from: tmv::GenMatrixstd::complex::trace() constin conftest_5.o "void tmv::DoCopySameType(tmv::GenMatrix const&, tmv::MatrixView<double, 0>)", referenced from: void tmv::DoCopy(tmv::GenMatrix const&, tmv::MatrixView<double, 0>)in conftest_5.o "tmv::MatrixComposite::ls() const", referenced from: construction vtable for tmv::MatrixComposite-in-tmv::QuotMM<double, double, double>in conftest_5.o vtable for tmv::QuotMM<double, double, double>in conftest_5.o vtable for tmv::MatrixCompositein conftest_5.o "tmv::GenMatrix::cref(long, long) const", referenced from: construction vtable for tmv::GenMatrix-in-tmv::Matrix<double, 0>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::ConstMatrixView<double, 0>in conftest_5.o vtable for tmv::ConstMatrixView<double, 0>in conftest_5.o vtable for tmv::GenMatrixin conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::MatrixView<double, 0>in conftest_5.o vtable for tmv::MatrixView<double, 0>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::Matrix<double, 2>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::QuotMM<double, double, double>in conftest_5.o construction vtable for tmv::MatrixComposite-in-tmv::QuotMM<double, double, double>in conftest_5.o vtable for tmv::QuotMM<double, double, double>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::MatrixCompositein conftest_5.o vtable for tmv::MatrixCompositein conftest_5.o "tmv::MatrixComposite::stepj() const", referenced from: construction vtable for tmv::MatrixComposite-in-tmv::QuotMM<double, double, double>in conftest_5.o vtable for tmv::QuotMM<double, double, double>in conftest_5.o vtable for tmv::MatrixCompositein conftest_5.o "tmv::GenMatrixstd::complex::write(tmv::TMV_Writer const&) const", referenced from: construction vtable for tmv::GenMatrixstd::complex-in-tmv::MatrixViewstd::complex<double, 0>in conftest_5.o vtable for tmv::MatrixViewstd::complex<double, 0>in conftest_5.o construction vtable for tmv::GenMatrixstd::complex-in-tmv::ConstMatrixViewstd::complex<double, 0>in conftest_5.o vtable for tmv::ConstMatrixViewstd::complex<double, 0>in conftest_5.o vtable for tmv::GenMatrixstd::complexin conftest_5.o construction vtable for tmv::GenMatrixstd::complex-in-tmv::Matrixstd::complex<double, 2>in conftest_5.o vtable for tmv::Matrixstd::complex<double, 2>in conftest_5.o construction vtable for tmv::GenMatrixstd::complex-in-tmv::Matrixstd::complex<double, 0>in conftest_5.o vtable for tmv::Matrixstd::complex<double, 0>in conftest_5.o "tmv::DivHelperstd::complex::doNorm2() const", referenced from: tmv::DivHelperstd::complex::norm2() constin conftest_5.o "tmv::GenMatrixstd::complex::setDiv() const", referenced from: construction vtable for tmv::GenMatrixstd::complex-in-tmv::MatrixViewstd::complex<double, 0>in conftest_5.o vtable for tmv::MatrixViewstd::complex<double, 0>in conftest_5.o construction vtable for tmv::GenMatrixstd::complex-in-tmv::ConstMatrixViewstd::complex<double, 0>in conftest_5.o vtable for tmv::ConstMatrixViewstd::complex<double, 0>in conftest_5.o vtable for tmv::GenMatrixstd::complexin conftest_5.o construction vtable for tmv::GenMatrixstd::complex-in-tmv::Matrixstd::complex<double, 2>in conftest_5.o vtable for tmv::Matrixstd::complex<double, 2>in conftest_5.o construction vtable for tmv::GenMatrixstd::complex-in-tmv::Matrixstd::complex<double, 0>in conftest_5.o vtable for tmv::Matrixstd::complex<double, 0>in conftest_5.o "tmv::VectorViewstd::complex<double, 0>::conjugateSelf()", referenced from: void tmv::Copystd::complex<double, std::complex >(tmv::GenVectorstd::complex const&, tmv::VectorViewstd::complex<double, 0>)in conftest_5.o void tmv::Copystd::complex<double, std::complex >(tmv::GenVectorstd::complex const&, tmv::VectorViewstd::complex<double, 0>)in conftest_5.o void tmv::Copystd::complex<double, double>(tmv::GenVector const&, tmv::VectorViewstd::complex<double, 0>)in conftest_5.o void tmv::Copystd::complex<double, double>(tmv::GenVector const&, tmv::VectorViewstd::complex<double, 0>)in conftest_5.o "tmv::GenMatrixstd::complex::sumAbs2Elements() const", referenced from: construction vtable for tmv::GenMatrixstd::complex-in-tmv::MatrixViewstd::complex<double, 0>in conftest_5.o vtable for tmv::MatrixViewstd::complex<double, 0>in conftest_5.o construction vtable for tmv::GenMatrixstd::complex-in-tmv::ConstMatrixViewstd::complex<double, 0>in conftest_5.o vtable for tmv::ConstMatrixViewstd::complex<double, 0>in conftest_5.o vtable for tmv::GenMatrixstd::complexin conftest_5.o construction vtable for tmv::GenMatrixstd::complex-in-tmv::Matrixstd::complex<double, 2>in conftest_5.o vtable for tmv::Matrixstd::complex<double, 2>in conftest_5.o construction vtable for tmv::GenMatrixstd::complex-in-tmv::Matrixstd::complex<double, 0>in conftest_5.o vtable for tmv::Matrixstd::complex<double, 0>in conftest_5.o "non-virtual thunk to tmv::GenMatrixstd::complex::setDiv() const", referenced from: construction vtable for tmv::GenMatrixstd::complex-in-tmv::MatrixViewstd::complex<double, 0>in conftest_5.o vtable for tmv::MatrixViewstd::complex<double, 0>in conftest_5.o construction vtable for tmv::GenMatrixstd::complex-in-tmv::ConstMatrixViewstd::complex<double, 0>in conftest_5.o vtable for tmv::ConstMatrixViewstd::complex<double, 0>in conftest_5.o vtable for tmv::GenMatrixstd::complexin conftest_5.o construction vtable for tmv::GenMatrixstd::complex-in-tmv::Matrixstd::complex<double, 2>in conftest_5.o vtable for tmv::Matrixstd::complex<double, 2>in conftest_5.o construction vtable for tmv::GenMatrixstd::complex-in-tmv::Matrixstd::complex<double, 0>in conftest_5.o vtable for tmv::Matrixstd::complex<double, 0>in conftest_5.o "void tmv::DivHelper::doLDiv<double, double>(tmv::GenMatrix const&, tmv::MatrixView<double, 0>) const", referenced from: void tmv::DivHelper::LDiv<double, double>(tmv::GenMatrix const&, tmv::MatrixView<double, 0>) constin conftest_5.o "tmv::TMV_FALSE", referenced from: void tmv::DoCopy(tmv::GenMatrixstd::complex const&, tmv::MatrixView<double, 0>)in conftest_5.o void tmv::DoCopy(tmv::GenVectorstd::complex const&, tmv::VectorView<double, 0>)in conftest_5.o "tmv::GenVector::cref(long) const", referenced from: vtable for tmv::ConstVectorView<double, 0>in conftest_5.o vtable for tmv::VectorView<double, 0>in conftest_5.o vtable for tmv::GenVectorin conftest5.o "tmv::GenMatrix::logDet(double) const", referenced from: construction vtable for tmv::GenMatrix-in-tmv::Matrix<double, 0>in conftest_5.o vtable for tmv::Matrix<double, 0>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::ConstMatrixView<double, 0>in conftest_5.o vtable for tmv::ConstMatrixView<double, 0>in conftest_5.o vtable for tmv::GenMatrixin conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::MatrixView<double, 0>in conftest_5.o vtable for tmv::MatrixView<double, 0>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::Matrix<double, 2>in conftest_5.o vtable for tmv::Matrix<double, 2>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::QuotMM<double, double, double>in conftest_5.o construction vtable for tmv::MatrixComposite-in-tmv::QuotMM<double, double, double>in conftest_5.o vtable for tmv::QuotMM<double, double, double>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::MatrixCompositein conftest_5.o vtable for tmv::MatrixCompositein conftest_5.o "void tmv::DoCopySameTypestd::complex(tmv::GenVectorstd::complex const&, tmv::VectorViewstd::complex<double, 0>)", referenced from: void tmv::DoCopystd::complex(tmv::GenVectorstd::complex const&, tmv::VectorViewstd::complex<double, 0>)in conftest_5.o "tmv::GenMatrixstd::complex::sumElements() const", referenced from: construction vtable for tmv::GenMatrixstd::complex-in-tmv::MatrixViewstd::complex<double, 0>in conftest_5.o vtable for tmv::MatrixViewstd::complex<double, 0>in conftest_5.o construction vtable for tmv::GenMatrixstd::complex-in-tmv::ConstMatrixViewstd::complex<double, 0>in conftest_5.o vtable for tmv::ConstMatrixViewstd::complex<double, 0>in conftest_5.o vtable for tmv::GenMatrixstd::complexin conftest_5.o construction vtable for tmv::GenMatrixstd::complex-in-tmv::Matrixstd::complex<double, 2>in conftest_5.o vtable for tmv::Matrixstd::complex<double, 2>in conftest_5.o construction vtable for tmv::GenMatrixstd::complex-in-tmv::Matrixstd::complex<double, 0>in conftest_5.o vtable for tmv::Matrixstd::complex<double, 0>in conftest_5.o "tmv::GenMatrixstd::complex::cref(long, long) const", referenced from: construction vtable for tmv::GenMatrixstd::complex-in-tmv::MatrixViewstd::complex<double, 0>in conftest_5.o vtable for tmv::MatrixViewstd::complex<double, 0>in conftest_5.o construction vtable for tmv::GenMatrixstd::complex-in-tmv::ConstMatrixViewstd::complex<double, 0>in conftest_5.o vtable for tmv::ConstMatrixViewstd::complex<double, 0>in conftest_5.o vtable for tmv::GenMatrixstd::complexin conftest_5.o construction vtable for tmv::GenMatrixstd::complex-in-tmv::Matrixstd::complex<double, 2>in conftest_5.o construction vtable for tmv::GenMatrixstd::complex-in-tmv::Matrixstd::complex<double, 0>in conftest_5.o "tmv::DivHelper::DivHelper()", referenced from: tmv::GenMatrix::GenMatrix()in conftest_5.o "void tmv::DivHelper::doLDiv<double, std::complex >(tmv::GenMatrix const&, tmv::MatrixViewstd::complex<double, 0>) const", referenced from: void tmv::DivHelper::LDiv<double, std::complex >(tmv::GenMatrix const&, tmv::MatrixViewstd::complex<double, 0>) constin conftest_5.o "virtual thunk to tmv::DivHelper::~DivHelper()", referenced from: construction vtable for tmv::DivHelper-in-tmv::Matrix<double, 0>in conftest_5.o construction vtable for tmv::DivHelper-in-tmv::ConstMatrixView<double, 0>in conftest_5.o construction vtable for tmv::DivHelper-in-tmv::GenMatrixin conftest_5.o construction vtable for tmv::DivHelper-in-tmv::MatrixView<double, 0>in conftest_5.o construction vtable for tmv::DivHelper-in-tmv::Matrix<double, 2>in conftest_5.o construction vtable for tmv::DivHelper-in-tmv::QuotMM<double, double, double>in conftest_5.o construction vtable for tmv::DivHelper-in-tmv::MatrixCompositein conftest_5.o "tmv::GenMatrix::det() const", referenced from: construction vtable for tmv::GenMatrix-in-tmv::Matrix<double, 0>in conftest_5.o vtable for tmv::Matrix<double, 0>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::ConstMatrixView<double, 0>in conftest_5.o vtable for tmv::ConstMatrixView<double, 0>in conftest_5.o vtable for tmv::GenMatrixin conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::MatrixView<double, 0>in conftest_5.o vtable for tmv::MatrixView<double, 0>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::Matrix<double, 2>in conftest_5.o vtable for tmv::Matrix<double, 2>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::QuotMM<double, double, double>in conftest_5.o construction vtable for tmv::MatrixComposite-in-tmv::QuotMM<double, double, double>in conftest_5.o vtable for tmv::QuotMM<double, double, double>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::MatrixCompositein conftest_5.o vtable for tmv::MatrixCompositein conftest_5.o "tmv::DivHelper::divIsSet() const", referenced from: tmv::DivHelper::norm2() constin conftest_5.o tmv::GenMatrix::norm2() constin conftest_5.o "virtual thunk to tmv::DivHelper::~DivHelper()", referenced from: construction vtable for tmv::DivHelper-in-tmv::Matrix<double, 0>in conftest_5.o construction vtable for tmv::DivHelper-in-tmv::ConstMatrixView<double, 0>in conftest_5.o construction vtable for tmv::DivHelper-in-tmv::GenMatrixin conftest_5.o construction vtable for tmv::DivHelper-in-tmv::MatrixView<double, 0>in conftest_5.o construction vtable for tmv::DivHelper-in-tmv::Matrix<double, 2>in conftest_5.o construction vtable for tmv::DivHelper-in-tmv::QuotMM<double, double, double>in conftest_5.o construction vtable for tmv::DivHelper-in-tmv::MatrixCompositein conftest_5.o "tmv::DivHelperstd::complex::getDivType() const", referenced from: tmv::DivHelperstd::complex::norm2() constin conftest_5.o tmv::GenMatrixstd::complex::norm2() constin conftest_5.o "tmv::DivHelperstd::complex::DivHelper()", referenced from: tmv::GenMatrixstd::complex::GenMatrix()in conftest_5.o "tmv::GenMatrixstd::complex::doNorm2() const", referenced from: construction vtable for tmv::GenMatrixstd::complex-in-tmv::MatrixViewstd::complex<double, 0>in conftest_5.o vtable for tmv::MatrixViewstd::complex<double, 0>in conftest_5.o construction vtable for tmv::GenMatrixstd::complex-in-tmv::ConstMatrixViewstd::complex<double, 0>in conftest_5.o vtable for tmv::ConstMatrixViewstd::complex<double, 0>in conftest_5.o vtable for tmv::GenMatrixstd::complexin conftest_5.o construction vtable for tmv::GenMatrixstd::complex-in-tmv::Matrixstd::complex<double, 2>in conftest_5.o vtable for tmv::Matrixstd::complex<double, 2>in conftest_5.o construction vtable for tmv::GenMatrixstd::complex-in-tmv::Matrixstd::complex<double, 0>in conftest_5.o vtable for tmv::Matrixstd::complex<double, 0>in conftest_5.o "tmv::DivHelper::getDivType() const", referenced from: tmv::DivHelper::norm2() constin conftest_5.o tmv::GenMatrix::norm2() constin conftest_5.o "tmv::DivHelper::~DivHelper()", referenced from: construction vtable for tmv::DivHelper-in-tmv::Matrix<double, 0>in conftest_5.o construction vtable for tmv::DivHelper-in-tmv::ConstMatrixView<double, 0>in conftest_5.o construction vtable for tmv::DivHelper-in-tmv::GenMatrixin conftest_5.o construction vtable for tmv::DivHelper-in-tmv::MatrixView<double, 0>in conftest_5.o construction vtable for tmv::DivHelper-in-tmv::Matrix<double, 2>in conftest_5.o construction vtable for tmv::DivHelper-in-tmv::QuotMM<double, double, double>in conftest_5.o construction vtable for tmv::DivHelper-in-tmv::MatrixCompositein conftest_5.o "tmv::DivHelper::~DivHelper()", referenced from: construction vtable for tmv::DivHelper-in-tmv::Matrix<double, 0>in conftest_5.o construction vtable for tmv::DivHelper-in-tmv::ConstMatrixView<double, 0>in conftest_5.o construction vtable for tmv::DivHelper-in-tmv::GenMatrixin conftest_5.o construction vtable for tmv::DivHelper-in-tmv::MatrixView<double, 0>in conftest_5.o construction vtable for tmv::DivHelper-in-tmv::Matrix<double, 2>in conftest_5.o construction vtable for tmv::DivHelper-in-tmv::QuotMM<double, double, double>in conftest_5.o construction vtable for tmv::DivHelper-in-tmv::MatrixCompositein conftest_5.o "tmv::MatrixViewstd::complex<double, 0>::transposeSelf()", referenced from: void tmv::Copystd::complex<double, std::complex >(tmv::GenMatrixstd::complex const&, tmv::MatrixViewstd::complex<double, 0>)in conftest_5.o "tmv::DivHelper::~DivHelper()", referenced from: tmv::GenMatrix::~GenMatrix()in conftest_5.o tmv::GenMatrix::~GenMatrix()in conftest_5.o tmv::GenMatrix::~GenMatrix()in conftest_5.o "tmv::GenMatrix::normF() const", referenced from: construction vtable for tmv::GenMatrix-in-tmv::Matrix<double, 0>in conftest_5.o vtable for tmv::Matrix<double, 0>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::ConstMatrixView<double, 0>in conftest_5.o vtable for tmv::ConstMatrixView<double, 0>in conftest_5.o vtable for tmv::GenMatrixin conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::MatrixView<double, 0>in conftest_5.o vtable for tmv::MatrixView<double, 0>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::Matrix<double, 2>in conftest_5.o vtable for tmv::Matrix<double, 2>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::QuotMM<double, double, double>in conftest_5.o construction vtable for tmv::MatrixComposite-in-tmv::QuotMM<double, double, double>in conftest_5.o vtable for tmv::QuotMM<double, double, double>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::MatrixCompositein conftest_5.o vtable for tmv::MatrixCompositein conftest_5.o "tmv::GenMatrix::write(tmv::TMV_Writer const&) const", referenced from: construction vtable for tmv::GenMatrix-in-tmv::Matrix<double, 0>in conftest_5.o vtable for tmv::Matrix<double, 0>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::ConstMatrixView<double, 0>in conftest_5.o vtable for tmv::ConstMatrixView<double, 0>in conftest_5.o vtable for tmv::GenMatrixin conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::MatrixView<double, 0>in conftest_5.o vtable for tmv::MatrixView<double, 0>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::Matrix<double, 2>in conftest_5.o vtable for tmv::Matrix<double, 2>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::QuotMM<double, double, double>in conftest_5.o construction vtable for tmv::MatrixComposite-in-tmv::QuotMM<double, double, double>in conftest_5.o vtable for tmv::QuotMM<double, double, double>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::MatrixCompositein conftest_5.o vtable for tmv::MatrixCompositein conftest_5.o "tmv::DivHelperstd::complex::~DivHelper()", referenced from: construction vtable for tmv::DivHelperstd::complex-in-tmv::MatrixViewstd::complex<double, 0>in conftest_5.o construction vtable for tmv::DivHelperstd::complex-in-tmv::ConstMatrixViewstd::complex<double, 0>in conftest_5.o construction vtable for tmv::DivHelperstd::complex-in-tmv::GenMatrixstd::complexin conftest_5.o construction vtable for tmv::DivHelperstd::complex-in-tmv::Matrixstd::complex<double, 2>in conftest_5.o construction vtable for tmv::DivHelperstd::complex-in-tmv::Matrixstd::complex<double, 0>in conftest_5.o "non-virtual thunk to tmv::GenMatrix::setDiv() const", referenced from: construction vtable for tmv::GenMatrix-in-tmv::Matrix<double, 0>in conftest_5.o vtable for tmv::Matrix<double, 0>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::ConstMatrixView<double, 0>in conftest_5.o vtable for tmv::ConstMatrixView<double, 0>in conftest_5.o vtable for tmv::GenMatrixin conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::MatrixView<double, 0>in conftest_5.o vtable for tmv::MatrixView<double, 0>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::Matrix<double, 2>in conftest_5.o vtable for tmv::Matrix<double, 2>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::QuotMM<double, double, double>in conftest_5.o construction vtable for tmv::MatrixComposite-in-tmv::QuotMM<double, double, double>in conftest_5.o vtable for tmv::QuotMM<double, double, double>in conftest_5.o construction vtable for tmv::GenMatrix-in-tmv::MatrixCompositein conftest_5.o vtable for tmv::MatrixCompositein conftest_5.o ld: symbol(s) not found collect2: ld returned 1 exit status .sconf_temp/conftest_6.cpp <- #include "TMV_Sym.h" int main() { //tmv::SymMatrix S(10,4.); tmv::Matrix S(10,10,4.); tmv::Matrix m(10,3,2.); tmv::Matrix m2 = m / S; return 0; }

g++ -o .sconf_temp/conftest_6.o -c -O2 -fno-strict-aliasing -g3 -Wall -Werror -m64 -Iinclude -I/usr/local/include -I/opt/local/include .sconf_temp/conftest_6.cpp g++ -o .sconf_temp/conftest_6 -m64 .sconf_temp/conftest_6.o -Llib -L/usr/local/lib -L/opt/local/lib -lirc -limf -lcfitsio -lfftw3 -ltmv -lblas ld: library not found for -lirc collect2: ld returned 1 exit status scons: Configure: no

rmjarvis commented 12 years ago

Well, to get the TMV stuff to work, you'd want to do the same thing (scons EXTRA_FLAGS=-m64) when installing that. But I suspect that's probably just wrong, since it can't find 64 bit versions of cfitsio or fftw either. So I suspect you probably do have a 32 bit machine.

I did find a tricky way to check if your python is running as a 32- or 64-bit application. Type in the command line:

python -c "import sys;print('%x'%sys.maxint)"

And post what it says. (Specifically, we're looking for how many f's there are.)

DMGoldberg commented 12 years ago

There are 7: 7fffffff (which I presume means 32 bits).

But I believe that my machine at home (which successfully compiled and ran GalSim) also has a 32 bit version of Python, despite the fact that both machines are 64 bit. I use 32 bit Python for compatibility with another package (visual, or VPython). If you think it will help, I certainly could download and compile against a 64 bit python. Though, as I said, it wouldn't explain why I didn't encounter any problems on my other machine.

Dave

On 4/30/12 1:13 PM, Mike Jarvis wrote:

Well, to get the TMV stuff to work, you'd want to do the same thing (scons EXTRA_FLAGS=-m64) when installing that. But I suspect that's probably just wrong, since it can't find 64 bit versions of cfitsio or fftw either. So I suspect you probably do have a 32 bit machine.

I did find a tricky way to check if your python is running as a 32- or 64-bit application. Type in the command line:

python -c "import sys;print('%x'%sys.maxint)"

And post what it says. (Specifically, we're looking for how many f's there are.)


Reply to this email directly or view it on GitHub: https://github.com/GalSim-developers/GalSim/issues/126#issuecomment-5422230

Dave Goldberg, Ph.D. Associate Professor, Director of Undergraduate Studies Drexel University Department of Physics "A User's Guide to the Universe" (Wiley, 2010) "The Universe in the Rearview Mirror" (Dutton, 2013) http://www.usersguidetotheuniverse.com

rmjarvis commented 12 years ago

Yes. 32 bit. So that means my -m64 idea won't work. You should remove it either by removing the line from gs_scons.conf or running scons EXTRA_LIBS="".

But that also means we're back to square one. So please run scons again, which should now get past the TMV stuff and probably fail at the same place it originally failed. Then post the output of the last .out file that scons makes. (It will probably still be .sconf_temp/conftest_11.out as it was in your earlier config.log output.) Maybe that will provide a clue.

You can also run .sconf_temp/conftest_11 directly on the command line as see what the output is directly. Sometimes it is more helpful to run it that way. And as Jim suggested, if you can run it through gdb and get a backtrace, that would be helpful too.

DMGoldberg commented 12 years ago

Just an FYI, the line needs to be removed by hand. For some reason, putting in the EXTRA_LIBS=' ' did not have the desired effect.

But at any rate, it worked, sort of. The problem is that I still get the bus error (either running it by hand or in the natural course of events) before any output is sent to conftest_11. The file is empty.

Dave

On 4/30/12 1:32 PM, Mike Jarvis wrote:

Yes. 32 bit. So that means my -m64 idea won't work. You should remove it either by removing the line from gs_scons.conf or running "scons EXTRA_LIBS='').

But that also means we're back to square one. So please run scons again, which should now get past the TMV stuff and probably fail at the same place it originally failed. Then post the output of the last .out file that scons makes? (It will probably still be .sconf_temp/conftest_11.out as it was in your earlier config.log output.) Maybe that will provide a clue.

You can also run .sconf_temp/conftest_11 directly on the command line as see what the output is directly. Sometimes it is more helpful to run it that way. And as Jim suggested, if you can run it through gdb and get a backtrace, that would be helpful too.


Reply to this email directly or view it on GitHub: https://github.com/GalSim-developers/GalSim/issues/126#issuecomment-5422653

Dave Goldberg, Ph.D. Associate Professor, Director of Undergraduate Studies Drexel University Department of Physics "A User's Guide to the Universe" (Wiley, 2010) "The Universe in the Rearview Mirror" (Dutton, 2013) http://www.usersguidetotheuniverse.com

TallJimbo commented 12 years ago

Thanks for the update. I don't know that I'll be able to make much progress on this until I've tried to implement #127, and even that is a bit of a shot in the dark. And unfortunately, I'm traveling this week and won't have much time to put into that. Hopefully this isn't too much of a blocker for you.

rmjarvis commented 12 years ago

Ah. Because I mistyped. It should have been scons EXTRA_FLAGS="".

Anyway, can you try the following now:

gdb .sconf_temp/conftest_11
run
bt
DMGoldberg commented 12 years ago

Rather than send you the (extremely lengthy) output, below is the post "bt" output:

arning: Could not find object file "/private/tmp/_py/_bld/python/libpython2.7.a(xxsubtype.o)" - no debug information available for "/Users/sysadmin/build/v2.7.3/Modules/xxsubtype.c".

..... done

Program received signal EXC_BAD_ACCESS, Could not access memory. Reason: KERN_PROTECTION_FAILURE at address: 0x0000000c 0x0138e99e in PyObject_Call () (gdb) bt

0 0x0138e99e in PyObject_Call ()

1 0x0144428e in PyEval_CallObjectWithKeywords ()

2 0x0138e960 in PyObject_CallObject ()

3 0x01400563 in mro_internal ()

4 0x013fdceb in PyType_Ready ()

5 0x000930f3 in boost::python::objects::class_type () at

libs/python/src/object/class.cpp:475

6 0x00094bbe in boost::python::handle<_typeobject>::release () at

handle.hpp:561

7 0x00094bbe in boost::python::objects::(anonymous

namespace)::new_class (name=0x3733 "Foo", num_types=1, types=0xbfffef30, doc=0x0) at libs/python/src/object/class.cpp:563

8 0x00093be3 in boost::python::objects::class_base::class_base

(this=0xbfffef20, name=0x0, num_types=0, types=0xbfffef30, doc=0x0) at libs/python/src/object/class.cpp:591 gdb stack crawl at point of internal error: [ 0 ] /usr/libexec/gdb/gdb-i386-apple-darwin (align_down+0x0) [0x1222d8] [ 1 ] /usr/libexec/gdb/gdb-i386-apple-darwin (macro_bcache_free+0x60) [0x7d014] [ 2 ] /usr/libexec/gdb/gdb-i386-apple-darwin (macro_tree_delete_value+0x44) [0x7d3f3] [ 3 ] /usr/libexec/gdb/gdb-i386-apple-darwin (splay_tree_insert+0x64) [0x1f8f97] [ 4 ] /usr/libexec/gdb/gdb-i386-apple-darwin (process_die+0x779) [0xd11ff] [ 5 ] /usr/libexec/gdb/gdb-i386-apple-darwin (process_full_comp_unit+0xfc) [0xd203e] [ 6 ] /usr/libexec/gdb/gdb-i386-apple-darwin (dwarf2_debug_map_psymtab_to_symtab+0x90c) [0xd3351] [ 7 ] /usr/libexec/gdb/gdb-i386-apple-darwin (psymtab_to_symtab+0x6f) [0x5122a] [ 8 ] /usr/libexec/gdb/gdb-i386-apple-darwin (find_pc_sect_symtab+0x3c0) [0x4c7fa] [ 9 ] /usr/libexec/gdb/gdb-i386-apple-darwin (update_tmp_frame_stack+0x12b) [0x6dc5a] [ 10 ] /usr/libexec/gdb/gdb-i386-apple-darwin (inlined_frame_sniffer+0xbc) [0x70712] [ 11 ] /usr/libexec/gdb/gdb-i386-apple-darwin (frame_unwind_find_by_frame+0x57) [0x129c41] [ 12 ] /usr/libexec/gdb/gdb-i386-apple-darwin (get_frame_type+0x23) [0x126af3] /SourceCache/gdb/gdb-967/src/gdb/macrotab.c:129: internal-error: macro_bcache_free: Assertion `! t->bcache' failed. A problem internal to GDB has been detected, further debugging may prove unreliable. Quit this debugging session? (y or n) y

On 4/30/12 1:47 PM, Mike Jarvis wrote:

gdb .sconf_temp/conftest_11

Dave Goldberg, Ph.D. Associate Professor, Director of Undergraduate Studies Drexel University Department of Physics "A User's Guide to the Universe" (Wiley, 2010) "The Universe in the Rearview Mirror" (Dutton, 2013) http://www.usersguidetotheuniverse.com

rmjarvis commented 12 years ago

Wow. You managed to find a bug in gdb. That's always fun.

I'm afraid I don't know what to try next. It doesn't look like an LD_LIBRARY_PATH problem. But just for grins, can you post what echo $LD_LIBRARY_PATH gives? And also otool -L .sconf_temp/conftest_11?

TallJimbo commented 12 years ago

One little red flag (which may be a red herring) is the mention of "libpython2.7.a" at the top of that gdb output. If we're somehow linking against a static library instead of a shared library, that could be responsible.

Do you have a libpython2.7.dylib or a libpython2.7.a, or both? Mike's otool request may also give us some information on that question.

DMGoldberg commented 12 years ago

I checked and: /Library/Frameworks/Python.framework/Versions/2.7/lib/libpython2.7.dylib does, indeed appear in the library directory.

Mike,

I don't currently have my LD_LIBRARY_PATH variable set, but my otool yields: [mimas\goldberg] otool -L .sconf_temp/conftest_11 .sconf_temp/conftest_11: libboost_python.dylib (compatibility version 0.0.0, current version 0.0.0) /opt/local/lib/libfftw3.3.dylib (compatibility version 6.0.0, current version 6.4.0) /usr/local/lib/libtmv.0.dylib (compatibility version 0.70.0, current version 0.71.0)

/System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib (compatibility version 1.0.0, current version 218.0.0) /opt/local/Library/Frameworks/Python.framework/Versions/2.7/Python (compatibility version 2.7.0, current version 2.7.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.5)

/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 476.19.0) /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.4.0) /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)

Hmm.... The Python library is being linked against /opt/local/Library/Frameworks... (not /Library/Frameworks...), which is a different version -- and the one against which I built boost. I have no idea where this is being set. I've even set LD_LIBRARY_PATH to the /Library/Frameworks.../lib directory and it produces the same problem.

Dave

On 4/30/12 2:25 PM, Jim Bosch wrote:

One little red flag (which may be a red herring) is the mention of "libpython2.7.a" at the top of that gdb output. If we're somehow linking against a static library instead of a shared library, that could be responsible.

Do you have a libpython2.7.dylib or a libpython2.7.a, or both? Mike's otool request may also give us some information on that question.


Reply to this email directly or view it on GitHub: https://github.com/GalSim-developers/GalSim/issues/126#issuecomment-5424029

Dave Goldberg, Ph.D. Associate Professor, Director of Undergraduate Studies Drexel University Department of Physics "A User's Guide to the Universe" (Wiley, 2010) "The Universe in the Rearview Mirror" (Dutton, 2013) http://www.usersguidetotheuniverse.com

rmjarvis commented 12 years ago

Looking through your config.log and the otool output, my best guess is that you have either a boost, numpy or python library in /opt/local/lib that is linking with the python library in /opt/local/Library.../Python. And since you told SCons to look there for fftw3, the linking step finds the wrong whatever library there as well.

So my recommendation is to install your fftw3 stuff in a different directory so that SCons doesn't have to look in /opt/local/lib. e.g. just copy the fftw3 header files and libraries into the normal /usr/local/lib. Then you can remove the FFTW_DIR line from your gs_scons.conf file and see if that helps.

DMGoldberg commented 12 years ago

Outstanding. We're all good now.

Thanks for all of your help.

Dave

On 5/6/12 11:10 PM, Mike Jarvis wrote:

Looking through your config.log and the otool output, my best guess is that you have either a boost, numpy or python library in /opt/local/lib that is linking with the python library in /opt/local/Library.../Python. And since you told SCons to look there for fftw3, the linking step finds the wrong whatever library there as well.

So my recommendation is to install your fftw3 stuff in a different directory so that SCons doesn't have to look in /opt/local/lib. e.g. just copy the fftw3 header files and libraries into the normal /usr/local/lib. Then you can remove the FFTW_DIR line from your gs_scons.conf file and see if that helps.


Reply to this email directly or view it on GitHub: https://github.com/GalSim-developers/GalSim/issues/126#issuecomment-5543244

Dave Goldberg, Ph.D. Associate Professor, Director of Undergraduate Studies Drexel University Department of Physics "A User's Guide to the Universe" (Wiley, 2010) "The Universe in the Rearview Mirror" (Dutton, 2013) http://www.usersguidetotheuniverse.com

rmjarvis commented 12 years ago

Good. I'll close this issue then. Not sure if there's anything to pull out of here to put in the Install FAQ.

It's probably a fairly particular issue for your setup, but if you can think of something that you might have wanted to read there to help you figure out the problem, please feel free to add an entry about this.