Building ARC runtime libraries and nexe

109 views
Skip to first unread message

madana gopal

unread,
Jul 22, 2015, 8:15:52 PM7/22/15
to Native-Client-Discuss
Hi ,

I am trying to build ARC (app runtime for chrome for running android apps), for x86-64 architecture. Please let me know do we have any standard method of building all the libraries (it's own NACL related and android libraries).

Also, is it possible to get nexe (native client exe) , so it can be loaded with browser. If so, please tell how to build the same. I am unable to understand the flow from ARC code. Please help.

Thanks.

Regards,
Madan

Elijah Taylor

unread,
Jul 23, 2015, 1:24:56 PM7/23/15
to native-cli...@googlegroups.com
Hi Madan,

If you cloned the ARC open source repository (https://chromium.googlesource.com/arc/arc/) you should just have to configure and build (after installing dependencies one time):

/path/to/arc$ ./src/build/install-build-deps.sh

/path/to/arc$ ./configure -t nx
/path/to/arc$ ninja

"-t nx" sets the target architecture to nacl x86-64, and ninja is part of depot_tools (https://www.chromium.org/developers/how-tos/install-depot-tools)

Note that his only builds a subset of ARC shared objects, and it is not possible to build 100% of ARC from the open source repository.  You can get the remainder of the stock .nexe/.so files from the extension we ship, either installed from the webstore or you can download our complete shipping binaries for specific versions here: https://console.developers.google.com/storage/browser/arc-sdk/

-Elijah


--
You received this message because you are subscribed to the Google Groups "Native-Client-Discuss" group.
To unsubscribe from this group and stop receiving emails from it, send an email to native-client-di...@googlegroups.com.
To post to this group, send email to native-cli...@googlegroups.com.
Visit this group at http://groups.google.com/group/native-client-discuss.
For more options, visit https://groups.google.com/d/optout.

madana gopal

unread,
Jul 23, 2015, 8:30:02 PM7/23/15
to Native-Client-Discuss, elijah...@chromium.org
Thanks much for the details. If i want to cross compile complete ARC for some other architecture say MIPS , we may need to build all libraries (coming with opensource and other android libraries) and nexe for that architecture. 

Please suggest the steps we may follow to build  nexe and other libraries for other architecture Thanks.

Regards,
Madan

madana gopal

unread,
Jul 24, 2015, 2:24:25 AM7/24/15
to Native-Client-Discuss, elijah...@chromium.org, madanag...@gmail.com
Hi ,

I found those libraries being present for x86,i686 and bare arm architecture.

But i want to build the same for MIPS. So, if we have some steps, we will try to run the same. Please let us know. Thanks.

Regards,
Madan

Elijah Taylor

unread,
Jul 24, 2015, 12:55:54 PM7/24/15
to madana gopal, Native-Client-Discuss, Elijah Taylor
Hi,

Unfortunately you won't be able to build a full distribution of ARC for MIPS (or any other unsupported target architecture), since not every single SO is open sourced.

-Elijah

madana gopal

unread,
Jul 27, 2015, 3:47:27 AM7/27/15
to Native-Client-Discuss, elijah...@chromium.org
Thanks much for the information. Please clarify  below doubts:

1, Since, ARC is dependent on android , we thought it is built using android open source code. We don't know the proprietary components it is dependent upon. Could you please tell the proprietary components (list of so's) ARC is dependent upon?. We are interested to know that.

2, For x86, we are unable to build libdvm.so, libopenglrenderer.so eventhough we have code for them present in ARC.Do we have any special steps for building those components?. Please tell.

Elijah Taylor

unread,
Jul 27, 2015, 1:06:12 PM7/27/15
to madana gopal, Native-Client-Discuss, Elijah Taylor
On Mon, Jul 27, 2015 at 12:47 AM, madana gopal <madanag...@gmail.com> wrote:
Thanks much for the information. Please clarify  below doubts:

1, Since, ARC is dependent on android , we thought it is built using android open source code. We don't know the proprietary components it is dependent upon. Could you please tell the proprietary components (list of so's) ARC is dependent upon?. We are interested to know that.

ARC is largely built on top of AOSP, but we do have some code written specifically for ARC which is not part of the open source distribution currently.  You can diff the lists of .so's and .nexe's from ARC and your out/target/<target>/lib directory to see what most of those are (that aren't android modules, which are described below).
 

2, For x86, we are unable to build libdvm.so, libopenglrenderer.so eventhough we have code for them present in ARC.Do we have any special steps for building those components?. Please tell.


Some of these libraries just can't be built from the open source repository currently, so you are better off copying ARC binaries when necessary, as I mentioned in another thread today (btw, if this other thread is from your team, please don't post more than one thread about a given subject at one time).  You could try to build them using our build system from the source in third_party/, but there are non-trivial modifications to most/all of these libraries in order to make them build- and runtime-compatible for the ARC/NaCl environment, so the vanilla AOSP libraries will not just work when dropped in.
Reply all
Reply to author
Forward
0 new messages