ARM Architecture

279 views
Skip to first unread message

Michael Talyansky

unread,
Sep 30, 2015, 11:59:09 AM9/30/15
to Folly: the Facebook Open-source LibrarY
Apologies if the question has been asked already (did search, could not find):

Has anyone tried to compile folly for the ARM architecture, for instance, on Raspberry Pi?

Thanks in advance!

Blake Matheny

unread,
Sep 30, 2015, 12:01:40 PM9/30/15
to faceboo...@googlegroups.com
It won't all work. At least base should. Contributions welcome :)

---
Sent from mobile device

--

---
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.

Michael Talyansky

unread,
Sep 30, 2015, 12:08:54 PM9/30/15
to faceboo...@googlegroups.com
I will try to give it a whirl. I have seen some commits in regards to making FBString work for big-endian, I am sure there will be more of these. BTW, is there a way to build just the core?

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/gmBlqfliUNE/unsubscribe.
To unsubscribe from this group and all its topics, send an email to facebook-foll...@googlegroups.com.

Blake Matheny

unread,
Sep 30, 2015, 12:15:44 PM9/30/15
to faceboo...@googlegroups.com
Yes we run a subset of folly on ARM devices. It doesn't look like the autoconf build has a good way of building the core unfortunately.

Michael Talyansky

unread,
Sep 30, 2015, 12:40:55 PM9/30/15
to faceboo...@googlegroups.com
But at least it would compile for you, with all the gtest and other libraries it pulls in? Or have you excluded the tests?

Michael Talyansky

unread,
Sep 30, 2015, 2:35:43 PM9/30/15
to faceboo...@googlegroups.com
Could you tell me which version of folly are you building? There are things in futures directory that don’t build for me even on 32-bit Intel, let alone ARM…

Thanks in advance!

Blake Matheny

unread,
Sep 30, 2015, 3:32:29 PM9/30/15
to faceboo...@googlegroups.com
Yes, futures and a couple of other things (the elf parser?) will not yet work on ARM.

Michael Talyansky

unread,
Sep 30, 2015, 3:59:25 PM9/30/15
to faceboo...@googlegroups.com
Yes, but do you still compile them? In version 57 futures doesn’t even compile for me on 32-bit Intel: 

libtool: compile:  g++ -DHAVE_CONFIG_H -I./.. -pthread -I/usr/include -std=gnu++0x -g -O2 -c futures/ManualExecutor.cpp  -fPIC -DPIC -o futures/.libs/ManualExecutor.o
In file included from ./../folly/futures/ManualExecutor.h:18:0,
                 from futures/ManualExecutor.cpp:17:
./../folly/LifoSem.h: In instantiation of 'struct folly::detail::LifoSemNode<folly::Baton<std::atomic>, std::atomic>':
./../folly/LifoSem.h:326:7:   required from 'void folly::detail::LifoSemBase<Handoff, Atom>::post() [with Handoff = folly::Baton<std::atomic>; Atom = std::atomic]'
./../folly/futures/ManualExecutor.h:79:17:   required from here
./../folly/LifoSem.h:152:3: error: static assertion failed: Handoff too big for small-object optimization, use indirection
   static_assert(sizeof(Handoff) <= sizeof(LifoSemRawNode<Atom>::raw),
   ^
make[2]: *** [futures/ManualExecutor.lo] Error 1

Thanks for the help!

Blake Matheny

unread,
Sep 30, 2015, 4:04:05 PM9/30/15
to faceboo...@googlegroups.com, fug...@fb.com
We don't compile them for ARM, we do for x86-64. I doubt we have 32 bit machines building folly, but it's possible? The only thing I know for sure works with folly on 32 bit devices is the core functionality. Added Hans to CC who might know.

Hans Fugal

unread,
Sep 30, 2015, 4:27:11 PM9/30/15
to Folly: the Facebook Open-source LibrarY, fug...@fb.com

We don't build 32-bit internally and I'm not aware of any explicit work done to make it work with 32-bit, so I would be a little surprised if it works out of the box. I also wouldn't be too surprised if it works without *too* much effort, mostly in the realm of usage of other folly features like Baton. Some of the ifdefs for apple might be a good place to start - I think the alternatives we use for darwin might just work on linux i386.


I'm not sure if you're asking about building core futures, or core folly, or what exactly. I doubt our current (autoconf) public build system splits things out very conveniently, but as we migrate to BUCK it would also make sense to be modular about what we build. I don't know if anyone's working on that at the moment, though.

Reply all
Reply to author
Forward
0 new messages