./.libs/libencfs.so: undefined reference to `boost::archive::archive_exception::archive_exception(boost::archive::archive_exception::exception_code, char const*, char const*)' ./.libs/libencfs.so: undefined reference to `typeinfo for boost::serialization::typeid_system::extended_type_info_typeid_0' ./.libs/libencfs.so: undefined reference to `boost::archive::detail::archive_serializer_map<boost::archive::xml_iarchive>::find(boost::serialization::extended_type_info const&)' ./.libs/libencfs.so: undefined reference to `boost::serialization::typeid_system::extended_type_info_typeid_0::type_unregister()' ./.libs/libencfs.so: undefined reference to `boost::serialization::typeid_system::extended_type_info_typeid_0::type_register(std::type_info const&)' ./.libs/libencfs.so: undefined reference to `boost::archive::detail::shared_ptr_helper::shared_ptr_helper()' ./.libs/libencfs.so: undefined reference to `boost::archive::detail::shared_ptr_helper::~shared_ptr_helper()' ./.libs/libencfs.so: undefined reference to `boost::serialization::typeid_system::extended_type_info_typeid_0::~extended_type_info_typeid_0()' ./.libs/libencfs.so: undefined reference to `boost::serialization::extended_type_info::key_register() const' ./.libs/libencfs.so: undefined reference to `boost::archive::detail::archive_serializer_map<boost::archive::xml_oarchive>::insert(boost::archive::detail::basic_serializer const*)' ./.libs/libencfs.so: undefined reference to `boost::serialization::extended_type_info::key_unregister() const' ./.libs/libencfs.so: undefined reference to `boost::serialization::typeid_system::extended_type_info_typeid_0::is_less_than(boost::serialization::extended_type_info const&) const' ./.libs/libencfs.so: undefined reference to `boost::serialization::typeid_system::extended_type_info_typeid_0::is_equal(boost::serialization::extended_type_info const&) const' ./.libs/libencfs.so: undefined reference to `boost::serialization::typeid_system::extended_type_info_typeid_0::extended_type_info_typeid_0(char const*)' ./.libs/libencfs.so: undefined reference to `boost::archive::detail::archive_serializer_map<boost::archive::xml_oarchive>::erase(boost::archive::detail::basic_serializer const*)' collect2: ld returned 1 exit status make[2]: *** [encfsctl] Error 1 make[2]: *** Waiting for unfinished jobs.... ./.libs/libencfs.so: undefined reference to `boost::archive::archive_exception::archive_exception(boost::archive::archive_exception::exception_code, char const*, char const*)' ./.libs/libencfs.so: undefined reference to `typeinfo for boost::serialization::typeid_system::extended_type_info_typeid_0' ./.libs/libencfs.so: undefined reference to `boost::archive::detail::archive_serializer_map<boost::archive::xml_iarchive>::find(boost::serialization::extended_type_info const&)' ./.libs/libencfs.so: undefined reference to `boost::serialization::typeid_system::extended_type_info_typeid_0::type_unregister()' ./.libs/libencfs.so: undefined reference to `boost::serialization::typeid_system::extended_type_info_typeid_0::type_register(std::type_info const&)' ./.libs/libencfs.so: undefined reference to `boost::archive::detail::shared_ptr_helper::shared_ptr_helper()' ./.libs/libencfs.so: undefined reference to `boost::archive::detail::shared_ptr_helper::~shared_ptr_helper()' ./.libs/libencfs.so: undefined reference to `boost::serialization::typeid_system::extended_type_info_typeid_0::~extended_type_info_typeid_0()' ./.libs/libencfs.so: undefined reference to `boost::serialization::extended_type_info::key_register() const' ./.libs/libencfs.so: undefined reference to `boost::archive::detail::archive_serializer_map<boost::archive::xml_oarchive>::insert(boost::archive::detail::basic_serializer const*)' ./.libs/libencfs.so: undefined reference to `boost::serialization::extended_type_info::key_unregister() const' ./.libs/libencfs.so: undefined reference to `boost::serialization::typeid_system::extended_type_info_typeid_0::is_less_than(boost::serialization::extended_type_info const&) const' ./.libs/libencfs.so: undefined reference to `boost::serialization::typeid_system::extended_type_info_typeid_0::is_equal(boost::serialization::extended_type_info const&) const' ./.libs/libencfs.so: undefined reference to `boost::serialization::typeid_system::extended_type_info_typeid_0::extended_type_info_typeid_0(char const*)' ./.libs/libencfs.so: undefined reference to `boost::archive::detail::archive_serializer_map<boost::archive::xml_oarchive>::erase(boost::archive::detail::basic_serializer const*)' collect2: ld returned 1 exit status make[2]: *** [encfs] Error 1 ./.libs/libencfs.so: undefined reference to `boost::archive::archive_exception::archive_exception(boost::archive::archive_exception::exception_code, char const*, char const*)' ./.libs/libencfs.so: undefined reference to `typeinfo for boost::serialization::typeid_system::extended_type_info_typeid_0' ./.libs/libencfs.so: undefined reference to `boost::archive::detail::archive_serializer_map<boost::archive::xml_iarchive>::find(boost::serialization::extended_type_info const&)' ./.libs/libencfs.so: undefined reference to `boost::serialization::typeid_system::extended_type_info_typeid_0::type_unregister()' ./.libs/libencfs.so: undefined reference to `boost::serialization::typeid_system::extended_type_info_typeid_0::type_register(std::type_info const&)' ./.libs/libencfs.so: undefined reference to `boost::archive::detail::shared_ptr_helper::shared_ptr_helper()' ./.libs/libencfs.so: undefined reference to `boost::archive::detail::shared_ptr_helper::~shared_ptr_helper()' ./.libs/libencfs.so: undefined reference to `boost::serialization::typeid_system::extended_type_info_typeid_0::~extended_type_info_typeid_0()' ./.libs/libencfs.so: undefined reference to `boost::serialization::extended_type_info::key_register() const' ./.libs/libencfs.so: undefined reference to `boost::archive::detail::archive_serializer_map<boost::archive::xml_oarchive>::insert(boost::archive::detail::basic_serializer const*)' ./.libs/libencfs.so: undefined reference to `boost::serialization::extended_type_info::key_unregister() const' ./.libs/libencfs.so: undefined reference to `boost::serialization::typeid_system::extended_type_info_typeid_0::is_less_than(boost::serialization::extended_type_info const&) const' ./.libs/libencfs.so: undefined reference to `boost::serialization::typeid_system::extended_type_info_typeid_0::is_equal(boost::serialization::extended_type_info const&) const' ./.libs/libencfs.so: undefined reference to `boost::serialization::typeid_system::extended_type_info_typeid_0::extended_type_info_typeid_0(char const*)' ./.libs/libencfs.so: undefined reference to `boost::archive::detail::archive_serializer_map<boost::archive::xml_oarchive>::erase(boost::archive::detail::basic_serializer const*)' collect2: ld returned 1 exit status make[2]: *** [test] Error 1 make[2]: Leaving directory `/var/tmp/portage/sys-fs/encfs-1.5/work/encfs-1.5/encfs' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/sys-fs/encfs-1.5/work/encfs-1.5' make: *** [all] Error 2 Reproducible: Always
The complete build.log, "emerge --info sys-fs/encfs dev-libs/boost" and "eselect boost list" please.
Created attachment 213610 [details] emerge --info
Created attachment 213611 [details] eselect boost list
Created attachment 213614 [details, diff] help the build system to select the correct boost version
Thanks for the report. This is encfs's build system gone crazy (mixing boost headers and libraries). Either patch the ebuild in a local overlay with the attached patch or remove the older boost version (be aware of the usual consequences).
Merged without problems after removing old boost version, thanks=)
*** Bug 307731 has been marked as a duplicate of this bug. ***
For what it's worth, I got encfs to build and work (so far!) by making a patched 1.5-r1 ebuild as suggested in comment 5. I have four different boosts present and did not remove any of the old ones: # eselect boost list Available boost versions: [1] boost-1.37/default [2] boost-1.39/default [3] boost-1.41/default [4] boost-1.42/default * Thanks!
As I understand, the patch will cause to build against the newest available boost. This will cause problems in view of bug 307829, i.e. building against boost-1.42 must be avoided...
Created attachment 234659 [details, diff] encfs-1.5 ebuild patch The attached patch adds to the previous patch, corrects the version requirements, and blocks the pull in of package boost-1.42. After application to encfs-1.5.ebuild, new ebuild finds and selects boost-1.39, completing compilation, and avoiding the described build errors.
(In reply to comment #10) > The attached patch adds to the previous patch, corrects the version > requirements, and blocks the pull in of package boost-1.42. After application > to encfs-1.5.ebuild, new ebuild finds and selects boost-1.39, completing > compilation, and avoiding the described build errors. The detection and compilation seems fixed, however is still wrong. In my case, boost-1.41 was selected and I saw in the build log that the include paths contained 1.41 include dir. But, the libraries it actually links to were from 1.42! Found out when bug 307829 manifested itself... $ ldd /usr/lib64/libencfs.so.4.1.0 libboost_serialization-mt-1_42.so.1.42.0 => /usr/lib/libboost_serialization-mt-1_42.so.1.42.0 (0x00007fccc1775000) libboost_system-mt-1_42.so.1.42.0 => /usr/lib/libboost_system-mt-1_42.so.1.42.0 (0x00007fccc1571000) So it seems that the --with-boost-libdir argument to configure is ignored :( I tried removing boost-1.42, then it failed completely. Realized I have to eselect another version, done that, and it compiled against 1.41.
I've been unable to get this to compile. Right now it seems to be erroring out in libintl.h: /usr/include/libintl.h:40: error: expected unqualified-id before 'const' /usr/include/libintl.h:40: error: expected `)' before 'const' /usr/include/libintl.h:40: error: expected initializer before 'const'
FYI: (I think they ment "June" instead of "July" http://encfs.googlecode.com/files/encfs-1.5.1.tgz 1.5.1 (July 16, 2010) Change Log * allow symlink times to be modified. * try to maintain modtime during rename. Patch by p.kosseff. * fix compiler errors from gcc 4.x. * many build improvements for Mac OSX. * add commands to help script filesystem creation. * add multi-argument support to encfsctl encode/decode commands. Patch by Nikratio. * support for boost > 1.41 (tested with boost 1.42 & boost 1.43).
encfs-1.6 in portage, builds fine here with forced asneeded, gcc-4.5.0, and boost-1.42.0-r1.
(In reply to comment #14) > encfs-1.6 in portage, builds fine here with forced asneeded, gcc-4.5.0, and > boost-1.42.0-r1. Fails for me with boost 1.42. I also tried 1.41 but only with 1.39 did encfs compile. This is with forced asneeded as well but gcc-4.4.4.
Yup, it seems (on a first sight) that if there are multiple boost versions (in my case 1.39, 1.41, 1.42), it will use the headers selected by eselect boost (e.g. 1.42) but try to link to 1.39 (lowest available ?) and fail. I will try the patches here.
It seems the patches from this bug to override boost detection work fine now, so I commited the fix (without version restriction as it should work now). Thanks!
Cool, thanks!
(In reply to comment #15) > (In reply to comment #14) > > encfs-1.6 in portage, builds fine here with forced asneeded, gcc-4.5.0, and > > boost-1.42.0-r1. > > Fails for me with boost 1.42. I also tried 1.41 but only with 1.39 did encfs > compile. This is with forced asneeded as well but gcc-4.4.4. Cnofirming now compiles OK agains boost 1.42 with 1.37, 1.39, and 1.41 also installed. Thanks.