[ Thread Index |
Date Index
| More lists.tuxfamily.org/eigen Archives
]
- To: eigen@xxxxxxxxxxxxxxxxxxx
- Subject: Re: [eigen] STL fixes
- From: Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
- Date: Thu, 22 Apr 2010 12:45:11 -0400
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:received:message-id:subject:from:to:content-type; bh=7DKvc2IINSxD4L6bC//Qam0YxpUreijR21fM4Dx4h40=; b=Wml3JT45zjdCWytTcWrl+O8Yzga6dCldq/qta0v1k3MUZXY7D5xigTcnPZf+wY/M14 dRvc17F6qD/82JRnRiSsGEbUT+nE70/OnSBLMNxvKQrCZKUd73DvO3yQ8X+nmhPR4OnV a8GzsCMci/JDdM982Eut6zgKouY++HMyobAgU=
- Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; b=NEJ8P12nTfe6VaGFCZBWWUQLCQg+bXNPpeOakYn+s7rhHqesS0WgXdoA/0gbKOz/wy xkAveDxwt6LSLNZveyt5hVDrQOWizYefFFL0RxGGewY/WBsyD7M45yr76bi0XaNlpZpt Nomld6etOdtDNqWktO9Ss5cVbI/8NkVTPKmmw=
Hi,
With GCC 4.5.0 / linux / x86-64 I am getting linking errors with the
matrix_function unit tests.
Linking CXX executable matrix_function_7
CMakeFiles/matrix_function_1.dir/matrix_function.cpp.o: In function
`std::list<std::complex<float>, std::allocator<std::complex<float> >
>::_M_insert(std::_List_iterator<std::complex<float> >,
std::complex<float> const&)':
/usr/lib/gcc/x86_64-unknown-linux-gnu/4.5.0/../../../../include/c++/4.5.0/bits/stl_list.h:1435:
undefined reference to
`std::_List_node_base::_M_hook(std::_List_node_base*)'
CMakeFiles/matrix_function_1.dir/matrix_function.cpp.o: In function
`std::list<std::list<std::complex<float>,
std::allocator<std::complex<float> > >,
std::allocator<std::list<std::complex<float>,
std::allocator<std::complex<float> > > >
>::_M_insert(std::_List_iterator<std::list<std::complex<float>,
std::allocator<std::complex<float> > > >,
std::list<std::complex<float>, std::allocator<std::complex<float> > >
const&)':
/usr/lib/gcc/x86_64-unknown-linux-gnu/4.5.0/../../../../include/c++/4.5.0/bits/stl_list.h:1435:
undefined reference to
`std::_List_node_base::_M_hook(std::_List_node_base*)'
CMakeFiles/matrix_function_1.dir/matrix_function.cpp.o: In function
`std::list<std::list<std::complex<float>,
std::allocator<std::complex<float> > >,
std::allocator<std::list<std::complex<float>,
std::allocator<std::complex<float> > > >
>::_M_erase(std::_List_iterator<std::list<std::complex<float>,
std::allocator<std::complex<float> > > >)':
/usr/lib/gcc/x86_64-unknown-linux-gnu/4.5.0/../../../../include/c++/4.5.0/bits/stl_list.h:1451:
undefined reference to `std::_List_node_base::_M_unhook()'
CMakeFiles/matrix_function_1.dir/matrix_function.cpp.o: In function
`std::list<std::complex<float>, std::allocator<std::complex<float> >
>::_M_transfer(std::_List_iterator<std::complex<float> >,
std::_List_iterator<std::complex<float> >,
std::_List_iterator<std::complex<float> >)':
/usr/lib/gcc/x86_64-unknown-linux-gnu/4.5.0/../../../../include/c++/4.5.0/bits/stl_list.h:1427:
undefined reference to
`std::_List_node_base::_M_transfer(std::_List_node_base*,
std::_List_node_base*)'
collect2: ld returned 1 exit status
make[3]: *** [unsupported/test/matrix_function_1] Error 1
make[2]: *** [unsupported/test/CMakeFiles/matrix_function_1.dir/all] Error 2
CMakeFiles/matrix_function_7.dir/matrix_function.cpp.o: In function
`std::list<std::complex<double>, std::allocator<std::complex<double> >
>::_M_insert(std::_List_iterator<std::complex<double> >,
std::complex<double> const&)':
/usr/lib/gcc/x86_64-unknown-linux-gnu/4.5.0/../../../../include/c++/4.5.0/bits/stl_list.h:1435:
undefined reference to
`std::_List_node_base::_M_hook(std::_List_node_base*)'
CMakeFiles/matrix_function_7.dir/matrix_function.cpp.o: In function
`std::list<std::list<std::complex<double>,
std::allocator<std::complex<double> > >,
std::allocator<std::list<std::complex<double>,
std::allocator<std::complex<double> > > >
>::_M_insert(std::_List_iterator<std::list<std::complex<double>,
std::allocator<std::complex<double> > > >,
std::list<std::complex<double>, std::allocator<std::complex<double> >
> const&)':
/usr/lib/gcc/x86_64-unknown-linux-gnu/4.5.0/../../../../include/c++/4.5.0/bits/stl_list.h:1435:
undefined reference to
`std::_List_node_base::_M_hook(std::_List_node_base*)'
CMakeFiles/matrix_function_7.dir/matrix_function.cpp.o: In function
`std::list<std::list<std::complex<double>,
std::allocator<std::complex<double> > >,
std::allocator<std::list<std::complex<double>,
std::allocator<std::complex<double> > > >
>::_M_erase(std::_List_iterator<std::list<std::complex<double>,
std::allocator<std::complex<double> > > >)':
/usr/lib/gcc/x86_64-unknown-linux-gnu/4.5.0/../../../../include/c++/4.5.0/bits/stl_list.h:1451:
undefined reference to `std::_List_node_base::_M_unhook()'
CMakeFiles/matrix_function_7.dir/matrix_function.cpp.o: In function
`std::list<std::complex<double>, std::allocator<std::complex<double> >
>::_M_transfer(std::_List_iterator<std::complex<double> >,
std::_List_iterator<std::complex<double> >,
std::_List_iterator<std::complex<double> >)':
/usr/lib/gcc/x86_64-unknown-linux-gnu/4.5.0/../../../../include/c++/4.5.0/bits/stl_list.h:1427:
undefined reference to
`std::_List_node_base::_M_transfer(std::_List_node_base*,
std::_List_node_base*)'
collect2: ld returned 1 exit status
make[3]: *** [unsupported/test/matrix_function_7] Error 1
make[2]: *** [unsupported/test/CMakeFiles/matrix_function_7.dir/all] Error 2
make[1]: *** [unsupported/test/CMakeFiles/matrix_function.dir/rule] Error 2
make: *** [matrix_function] Error 2
2010/4/18 Hauke Heibel <hauke.heibel@xxxxxxxxxxxxxx>:
> For the first version I submitted a two file version.
>
> That means, at the moment we have
>
> Eigen/StdList
> Eigen/StdVector
>
> plus the module Eigen/src/StlSupport.
>
> Regards,
> Hauke
>
> On Sun, Apr 18, 2010 at 7:59 PM, Gael Guennebaud
> <gael.guennebaud@xxxxxxxxx> wrote:
>>
>>
>> On Sun, Apr 18, 2010 at 4:53 PM, Benoit Jacob <jacob.benoit.1@xxxxxxxxx>
>> wrote:
>>>
>>> 2010/4/18 Hauke Heibel <hauke.heibel@xxxxxxxxxxxxxx>:
>>> > Hi,
>>> >
>>> > I started working on applying more STL fixes. In particular adding
>>> > std::list support since in many implementations we are striking the
>>> > same push_back issue as in std::vector. I am also disabling those
>>> > specializations when they are not required.
>>> >
>>> > For that matter, I created a new sub-folder/module
>>> >
>>> > src/StlSupport
>>> >
>>> > which will hold two files (maybe more, depending on whether I can
>>> > factor code when writing the StdList header)
>>> >
>>> > StdList.h
>>> > StdVector.h
>>> >
>>> > I am now wondering whether you are OK with renaming Eigen/StdVector to
>>> > Eigen/StlSupport or whether you want to keep StdVector and add StdList
>>> > on top of that!?
>>>
>>> Good question!
>>> A single StlSupport include is more convenient, but separate headers
>>> allow to do these intrusive changes only on the classes one really
>>> needs to tweak.
>>>
>>> Maybe i'm a bit in favor of your change, because the case where one
>>> would want to tweak only vector and not list, is probably very
>>> uncommon....
>>>
>>> Do as you think is right :)
>>
>> exactly the same feeling here!
>>
>> gael
>>
>>
>>>
>>> Benoit
>>>
>>> >
>>> > Regards,
>>> > Hauke
>>> >
>>> >
>>> >
>>>
>>>
>>
>>
>
>
>