Build problems

407 views
Skip to first unread message

David Pritchard

unread,
Jul 3, 2014, 11:15:16 PM7/3/14
to faceboo...@googlegroups.com
Hi,

I am having problems building folly (on Ubuntu). I think I've installed all the dependencies and got ./configure to work. But when I make, my first errors are here:

libtool: compile:  g++ -DHAVE_CONFIG_H -I./.. -pthread -I/usr/include -I/home/student/notes/folly/folly/ -std=gnu++0x -g -Wall -MT detail/CacheLocality.lo -MD -MP -MF detail/.deps/CacheLocality.Tpo -c detail/CacheLocality.cpp  -fPIC -DPIC -o detail/.libs/CacheLocality.o
In file included from detail/CacheLocality.cpp:17:0:
./../folly/detail/CacheLocality.h:351:3: error: a class-key must be used when declaring a friend
./../folly/detail/CacheLocality.h:351:3: error: friend declaration does not name a class or function
In file included from ./../folly/Format.h:31:0,
                 from detail/CacheLocality.cpp:26:
./../folly/FBVector.h:89:11: error: 'allocator_traits' in namespace 'std' does not name a type
./../folly/FBVector.h:93:22: error: 'A' has not been declared

Do you know how I can diagnose and fix these errors? Thanks!

- Dave

Tudor Bosman

unread,
Jul 3, 2014, 11:16:19 PM7/3/14
to faceboo...@googlegroups.com
What version of gcc are you using? folly requires 4.8 or higher. (gcc --version)

-Tudor.


--

---
You received this message because you are subscribed to the Google Groups "Folly: the Facebook Open-source LibrarY" group.
To unsubscribe from this group and stop receiving emails from it, send an email to facebook-foll...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

David Pritchard

unread,
Jul 3, 2014, 11:34:52 PM7/3/14
to faceboo...@googlegroups.com
Wow! Thank you, I am testing out a VM image provided by the place that
I am going to teach, that didn't even occur to me. Looks like I have
to do some work but such an upgrade is possible, I will try it out.
Thanks again.
> You received this message because you are subscribed to a topic in the
> Google Groups "Folly: the Facebook Open-source LibrarY" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/facebook-folly/XH6iov7ARZw/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to

David Pritchard

unread,
Jul 3, 2014, 11:59:43 PM7/3/14
to faceboo...@googlegroups.com
Progress! I had to change google:: to gflags:: on one line of
build/GenerateFingerprintTables.cpp to get around the first error.
Much later in the compiling process I get this error I don't know how
to diagnose:

libtool: compile: g++ -DHAVE_CONFIG_H -I./.. -I/usr/include
-I/home/student/notes/folly/folly/ -std=gnu++0x -g -Wall -MT
MemoryMapping.lo -MD -MP -MF .deps/MemoryMapping.Tpo -c
MemoryMapping.cpp -fPIC -DPIC -o .libs/MemoryMapping.o
In file included from /usr/include/boost/type_traits/is_complex.hpp:11:0,
from /usr/include/boost/type_traits.hpp:46,
from ./../folly/Portability.h:209,
from ./../folly/FBString.h:47,
from ./../folly/MemoryMapping.h:20,
from MemoryMapping.cpp:17:
/usr/include/boost/type_traits/is_convertible.hpp: In instantiation of
'const bool boost::detail::is_convertible_basic_impl<boost::filesystem3::directory_iterator&,
boost::filesystem3::directory_iterator>::value':
/usr/include/boost/type_traits/is_convertible.hpp:295:5: required
from 'const bool
boost::detail::is_convertible_impl<boost::filesystem3::directory_iterator,
boost::filesystem3::directory_iterator>::value'
/usr/include/boost/type_traits/is_convertible.hpp:418:1: required
from 'struct boost::is_convertible<boost::filesystem3::directory_iterator,
boost::filesystem3::directory_iterator>'
/usr/include/boost/mpl/aux_/nested_type_wknd.hpp:26:31: required
from 'struct boost::mpl::aux::nested_type_wknd<boost::is_convertible<boost::filesystem3::directory_iterator,
boost::filesystem3::directory_iterator> >'
/usr/include/boost/mpl/aux_/preprocessed/gcc/or.hpp:48:8: required
from 'struct boost::mpl::or_<boost::is_convertible<boost::filesystem3::directory_iterator,
boost::filesystem3::directory_iterator>,
boost::is_convertible<boost::filesystem3::directory_iterator,
boost::filesystem3::directory_iterator>, mpl_::bool_<false>,
mpl_::bool_<false>, mpl_::bool_<false> >'
/usr/include/boost/iterator/detail/enable_if.hpp:68:12: required
from 'struct boost::iterators::enable_if<boost::mpl::or_<boost::is_convertible<boost::filesystem3::directory_iterator,
boost::filesystem3::directory_iterator>,
boost::is_convertible<boost::filesystem3::directory_iterator,
boost::filesystem3::directory_iterator>, mpl_::bool_<false>,
mpl_::bool_<false>, mpl_::bool_<false> >, bool>'
/usr/include/boost/iterator/iterator_facade.hpp:67:12: required from
'struct boost::detail::enable_if_interoperable<boost::filesystem3::directory_iterator,
boost::filesystem3::directory_iterator, bool>'
/usr/include/boost/iterator/iterator_facade.hpp:837:3: required by
substitution of 'template<class Derived1, class V1, class TC1, class
Reference1, class Difference1, class Derived2, class V2, class TC2,
class Reference2, class Difference2> typename
boost::detail::enable_if_interoperable<Derived1, Derived2, typename
boost::mpl::apply2<boost::detail::always_bool2, Derived1,
Derived2>::type>::type boost::operator!=(const
boost::iterator_facade<Derived1, V1, TC1, Reference1, Difference1>&,
const boost::iterator_facade<Derived2, V2, TC2, Reference2,
Difference2>&) [with Derived1 =
boost::filesystem3::directory_iterator; V1 =
boost::filesystem3::directory_entry; TC1 =
boost::single_pass_traversal_tag; Reference1 =
boost::filesystem3::directory_entry&; Difference1 = long int; Derived2
= boost::filesystem3::directory_iterator; V2 =
boost::filesystem3::directory_entry; TC2 =
boost::single_pass_traversal_tag; Reference2 =
boost::filesystem3::directory_entry&; Difference2 = long int]'
/usr/include/boost/filesystem/v3/operations.hpp:691:49: required from here
/usr/include/boost/type_traits/is_convertible.hpp:135:86: error: use
of deleted function
'boost::filesystem3::directory_iterator::directory_iterator(const
boost::filesystem3::directory_iterator&)'
static bool const value = sizeof(
boost::detail::checker<To>::_m_check(_m_from, 0) )

^

and here's one more error:

In file included from /usr/include/boost/filesystem.hpp:36:0,
from ./../folly/experimental/io/FsUtil.h:20,
from ./../folly/experimental/io/HugePages.h:31,
from MemoryMapping.cpp:22:
/usr/include/boost/filesystem/v3/operations.hpp:581:9: note:
'boost::filesystem3::directory_iterator::directory_iterator(const
boost::filesystem3::directory_iterator&)' is implicitly deleted
because the default definition would be ill-formed:
class directory_iterator
^

Thanks! Sorry that this has required asking multiple questions.

David Pritchard

unread,
Jul 4, 2014, 12:21:06 AM7/4/14
to faceboo...@googlegroups.com
Going to try downgrading my boost to 1.46.

Tudor Bosman

unread,
Jul 4, 2014, 12:22:55 AM7/4/14
to faceboo...@googlegroups.com
We use Boost 1.51 at Facebook and that works. What version of boost are you using? I'll see if I can pinpoint the problem.

Tudor Bosman

unread,
Jul 4, 2014, 12:27:09 AM7/4/14
to faceboo...@googlegroups.com
It also works with Boost 1.54 in a Ubuntu 14.04 VM that I'm using.

David Pritchard

unread,
Jul 4, 2014, 12:27:33 AM7/4/14
to faceboo...@googlegroups.com
Thanks, in this case I'm skipping the downgrade, I thought it might
have been important because of the README which specified the 46.

My currently installed version is 1.48.0.2.

Tudor Bosman

unread,
Jul 4, 2014, 12:33:53 AM7/4/14
to faceboo...@googlegroups.com
I think it's the README that's at fault, and you actually need to upgrade. I'm trying to track this down further.
Reply all
Reply to author
Forward
0 new messages