[chromium-dev] Re: Cross-compiling on ARM

2009-09-01 Thread Evan Martin

On Tue, Sep 1, 2009 at 10:56 PM, Antoine Labour wrote:
> I think it wouldn't be too hard to add those to gold, it might be worth it
> since gnu ld takes about 15 minutes to link release (and >1h to link debug).

For development purposes, I recommend the shared build:
  http://code.google.com/p/chromium/wiki/LinuxFasterBuilds#Shared_libraries
(Sometimes you have to fix it yourself when it starts failing to link,
but that's not hard.)

--~--~-~--~~~---~--~~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev
-~--~~~~--~~--~--~---



[chromium-dev] Re: Cross-compiling on ARM

2009-09-01 Thread Antoine Labour
On Tue, Aug 25, 2009 at 7:23 AM, Joel Stanley  wrote:

> On Tue, Aug 25, 2009 at 17:06, Lei Zhang wrote:
>
> > Only x86 and x86_64 were supported at the time gold was originally
> > released. Does it support ARM yet?
>
> Yes, gold can link ARM binaries as of a few months ago.  I have used
> it in my cross compiling.
>
> Ubuntu is shipping it it in Karmic (for ARM, as well as the x86
> architectures) in the binutils-gold package.
>
> Joel
>

I built a cross gold, but unfortunately it failed to link an arm-v7 built
chrome, because it doesn't support some of the relocations generated by the
compiler.
I think it wouldn't be too hard to add those to gold, it might be worth it
since gnu ld takes about 15 minutes to link release (and >1h to link debug).

Antoine

--~--~-~--~~~---~--~~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev
-~--~~~~--~~--~--~---



[chromium-dev] Re: Cross-compiling on ARM

2009-08-25 Thread Marc-Antoine Ruel

Note that people on Vista or Windows 7 x64 don't have slow linking
issue since incremental linking is enabled, thanks to Brad. [1]

So just kick anyone still complaining.

M-A

[1] http://src.chromium.org/viewvc/chrome?view=rev&revision=22790

On Tue, Aug 25, 2009 at 5:39 PM, Linus Upson wrote:
> Any chance gold will support linking Windows binaries?
> Linus
>
> On Tue, Aug 25, 2009 at 7:23 AM, Joel Stanley  wrote:
>>
>> On Tue, Aug 25, 2009 at 17:06, Lei Zhang wrote:
>>
>> > Only x86 and x86_64 were supported at the time gold was originally
>> > released. Does it support ARM yet?
>>
>> Yes, gold can link ARM binaries as of a few months ago.  I have used
>> it in my cross compiling.
>>
>> Ubuntu is shipping it it in Karmic (for ARM, as well as the x86
>> architectures) in the binutils-gold package.
>>
>> Joel
>>
>>
>
>
> >
>

--~--~-~--~~~---~--~~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev
-~--~~~~--~~--~--~---



[chromium-dev] Re: Cross-compiling on ARM

2009-08-25 Thread 陈智昌

Doubtful.  It's designed for ELF binaries.

On Tue, Aug 25, 2009 at 2:39 PM, Linus Upson wrote:
> Any chance gold will support linking Windows binaries?
> Linus
>
> On Tue, Aug 25, 2009 at 7:23 AM, Joel Stanley  wrote:
>>
>> On Tue, Aug 25, 2009 at 17:06, Lei Zhang wrote:
>>
>> > Only x86 and x86_64 were supported at the time gold was originally
>> > released. Does it support ARM yet?
>>
>> Yes, gold can link ARM binaries as of a few months ago.  I have used
>> it in my cross compiling.
>>
>> Ubuntu is shipping it it in Karmic (for ARM, as well as the x86
>> architectures) in the binutils-gold package.
>>
>> Joel
>>
>>
>
>
> >
>

--~--~-~--~~~---~--~~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev
-~--~~~~--~~--~--~---



[chromium-dev] Re: Cross-compiling on ARM

2009-08-25 Thread Linus Upson
Any chance gold will support linking Windows binaries?
Linus


On Tue, Aug 25, 2009 at 7:23 AM, Joel Stanley  wrote:

>
> On Tue, Aug 25, 2009 at 17:06, Lei Zhang wrote:
>
> > Only x86 and x86_64 were supported at the time gold was originally
> > released. Does it support ARM yet?
>
> Yes, gold can link ARM binaries as of a few months ago.  I have used
> it in my cross compiling.
>
> Ubuntu is shipping it it in Karmic (for ARM, as well as the x86
> architectures) in the binutils-gold package.
>
> Joel
>
> >
>

--~--~-~--~~~---~--~~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev
-~--~~~~--~~--~--~---



[chromium-dev] Re: Cross-compiling on ARM

2009-08-25 Thread Joel Stanley

On Tue, Aug 25, 2009 at 17:06, Lei Zhang wrote:

> Only x86 and x86_64 were supported at the time gold was originally
> released. Does it support ARM yet?

Yes, gold can link ARM binaries as of a few months ago.  I have used
it in my cross compiling.

Ubuntu is shipping it it in Karmic (for ARM, as well as the x86
architectures) in the binutils-gold package.

Joel

--~--~-~--~~~---~--~~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev
-~--~~~~--~~--~--~---



[chromium-dev] Re: Cross-compiling on ARM

2009-08-25 Thread Lei Zhang

On Mon, Aug 24, 2009 at 6:22 PM, Antoine Labour wrote:
>
> On Mon, Aug 24, 2009 at 1:53 PM, Scott Hess wrote:
>> Would it be possible/reasonable to use distcc plus a farm of
>> cross-compiler machines to let you do faster self-hosted builds?  It's
>> not the "right" solution, but in the past I've found it to sometimes
>> be an easier path to take in the short term while you're working on
>> fixing all the little problems.
>>
>> -scott
>
> Interesting take, it might work.
> Like Dean mentions, we're talking about 512 MB boards (or even 256
> MB), which in practice only means about 400 MB accessible to the OS. I
> don't know how gold performs on ARM.

Only x86 and x86_64 were supported at the time gold was originally
released. Does it support ARM yet?

--~--~-~--~~~---~--~~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev
-~--~~~~--~~--~--~---



[chromium-dev] Re: Cross-compiling on ARM

2009-08-24 Thread Antoine Labour

On Mon, Aug 24, 2009 at 1:53 PM, Scott Hess wrote:
> Would it be possible/reasonable to use distcc plus a farm of
> cross-compiler machines to let you do faster self-hosted builds?  It's
> not the "right" solution, but in the past I've found it to sometimes
> be an easier path to take in the short term while you're working on
> fixing all the little problems.
>
> -scott

Interesting take, it might work.
Like Dean mentions, we're talking about 512 MB boards (or even 256
MB), which in practice only means about 400 MB accessible to the OS. I
don't know how gold performs on ARM.

Antoine

>
>
> On Fri, Aug 21, 2009 at 12:54 PM, Antoine Labour wrote:
>>
>> There's growing interest from several parties in getting Chrome to
>> cross-compile onto linux/ARM. Let's make sure everyone is on the same
>> page so that we don't duplicate efforts.
>> I understand that Joel Stanley, Dean McNamee and Lei Zhang have
>> already been doing a lot of work towards that. There's a wiki page
>> there: http://code.google.com/p/chromium/wiki/LinuxChromiumArm
>>
>> I've identified a few missing pieces to get a full version of chrome -
>> there may be others. They are mostly build infrastructure issues:
>> - v8 snapshotting needs to be disabled currently, we'd like to enable
>> it. That means executing mksnapshot as a target executable, either
>> through qemu or directly on device, i.e. the infrastructure to run a
>> target program.
>> - Gyp uses pkg-config to find includes/lib dependencies, i.e. it's
>> going to look at the host for them. If your target distribution
>> matches your host maybe you're fine, but it may not work at all, so
>> it'd would be good to extract that and get a way to specify the
>> dependencies explicitly.
>> - The chrome os build relies on the protobuf compiler. The current
>> build system builds it as a target executable, so we either need to
>> run in qemu / on device it as above, or change the build system to
>> understand target vs host executables.
>>
>> I wanted to double check if anyone was working on any of that, or if
>> anyone has good ideas about how to achieve each of them. Please speak
>> up !
>>
>> Antoine
>>
>> >>
>>
>

--~--~-~--~~~---~--~~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev
-~--~~~~--~~--~--~---



[chromium-dev] Re: Cross-compiling on ARM

2009-08-24 Thread Marc-Antoine Ruel
Even with gold?

On Mon, Aug 24, 2009 at 5:14 PM, Dean McNamee  wrote:

>
> That still requires you to link locally, and I don't think we have any
> ARM machines with enough memory to do that.
>
> On Mon, Aug 24, 2009 at 1:53 PM, Scott Hess  wrote:
> >
> > Would it be possible/reasonable to use distcc plus a farm of
> > cross-compiler machines to let you do faster self-hosted builds?  It's
> > not the "right" solution, but in the past I've found it to sometimes
> > be an easier path to take in the short term while you're working on
> > fixing all the little problems.
> >
> > -scott
> >
> >
> > On Fri, Aug 21, 2009 at 12:54 PM, Antoine Labour
> wrote:
> >>
> >> There's growing interest from several parties in getting Chrome to
> >> cross-compile onto linux/ARM. Let's make sure everyone is on the same
> >> page so that we don't duplicate efforts.
> >> I understand that Joel Stanley, Dean McNamee and Lei Zhang have
> >> already been doing a lot of work towards that. There's a wiki page
> >> there: http://code.google.com/p/chromium/wiki/LinuxChromiumArm
> >>
> >> I've identified a few missing pieces to get a full version of chrome -
> >> there may be others. They are mostly build infrastructure issues:
> >> - v8 snapshotting needs to be disabled currently, we'd like to enable
> >> it. That means executing mksnapshot as a target executable, either
> >> through qemu or directly on device, i.e. the infrastructure to run a
> >> target program.
> >> - Gyp uses pkg-config to find includes/lib dependencies, i.e. it's
> >> going to look at the host for them. If your target distribution
> >> matches your host maybe you're fine, but it may not work at all, so
> >> it'd would be good to extract that and get a way to specify the
> >> dependencies explicitly.
> >> - The chrome os build relies on the protobuf compiler. The current
> >> build system builds it as a target executable, so we either need to
> >> run in qemu / on device it as above, or change the build system to
> >> understand target vs host executables.
> >>
> >> I wanted to double check if anyone was working on any of that, or if
> >> anyone has good ideas about how to achieve each of them. Please speak
> >> up !
> >>
> >> Antoine
> >>
> >> >
> >>
> >
> > >
> >
>
> >
>

--~--~-~--~~~---~--~~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev
-~--~~~~--~~--~--~---



[chromium-dev] Re: Cross-compiling on ARM

2009-08-24 Thread Dean McNamee

That still requires you to link locally, and I don't think we have any
ARM machines with enough memory to do that.

On Mon, Aug 24, 2009 at 1:53 PM, Scott Hess  wrote:
>
> Would it be possible/reasonable to use distcc plus a farm of
> cross-compiler machines to let you do faster self-hosted builds?  It's
> not the "right" solution, but in the past I've found it to sometimes
> be an easier path to take in the short term while you're working on
> fixing all the little problems.
>
> -scott
>
>
> On Fri, Aug 21, 2009 at 12:54 PM, Antoine Labour wrote:
>>
>> There's growing interest from several parties in getting Chrome to
>> cross-compile onto linux/ARM. Let's make sure everyone is on the same
>> page so that we don't duplicate efforts.
>> I understand that Joel Stanley, Dean McNamee and Lei Zhang have
>> already been doing a lot of work towards that. There's a wiki page
>> there: http://code.google.com/p/chromium/wiki/LinuxChromiumArm
>>
>> I've identified a few missing pieces to get a full version of chrome -
>> there may be others. They are mostly build infrastructure issues:
>> - v8 snapshotting needs to be disabled currently, we'd like to enable
>> it. That means executing mksnapshot as a target executable, either
>> through qemu or directly on device, i.e. the infrastructure to run a
>> target program.
>> - Gyp uses pkg-config to find includes/lib dependencies, i.e. it's
>> going to look at the host for them. If your target distribution
>> matches your host maybe you're fine, but it may not work at all, so
>> it'd would be good to extract that and get a way to specify the
>> dependencies explicitly.
>> - The chrome os build relies on the protobuf compiler. The current
>> build system builds it as a target executable, so we either need to
>> run in qemu / on device it as above, or change the build system to
>> understand target vs host executables.
>>
>> I wanted to double check if anyone was working on any of that, or if
>> anyone has good ideas about how to achieve each of them. Please speak
>> up !
>>
>> Antoine
>>
>> >
>>
>
> >
>

--~--~-~--~~~---~--~~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev
-~--~~~~--~~--~--~---



[chromium-dev] Re: Cross-compiling on ARM

2009-08-24 Thread Scott Hess

Would it be possible/reasonable to use distcc plus a farm of
cross-compiler machines to let you do faster self-hosted builds?  It's
not the "right" solution, but in the past I've found it to sometimes
be an easier path to take in the short term while you're working on
fixing all the little problems.

-scott


On Fri, Aug 21, 2009 at 12:54 PM, Antoine Labour wrote:
>
> There's growing interest from several parties in getting Chrome to
> cross-compile onto linux/ARM. Let's make sure everyone is on the same
> page so that we don't duplicate efforts.
> I understand that Joel Stanley, Dean McNamee and Lei Zhang have
> already been doing a lot of work towards that. There's a wiki page
> there: http://code.google.com/p/chromium/wiki/LinuxChromiumArm
>
> I've identified a few missing pieces to get a full version of chrome -
> there may be others. They are mostly build infrastructure issues:
> - v8 snapshotting needs to be disabled currently, we'd like to enable
> it. That means executing mksnapshot as a target executable, either
> through qemu or directly on device, i.e. the infrastructure to run a
> target program.
> - Gyp uses pkg-config to find includes/lib dependencies, i.e. it's
> going to look at the host for them. If your target distribution
> matches your host maybe you're fine, but it may not work at all, so
> it'd would be good to extract that and get a way to specify the
> dependencies explicitly.
> - The chrome os build relies on the protobuf compiler. The current
> build system builds it as a target executable, so we either need to
> run in qemu / on device it as above, or change the build system to
> understand target vs host executables.
>
> I wanted to double check if anyone was working on any of that, or if
> anyone has good ideas about how to achieve each of them. Please speak
> up !
>
> Antoine
>
> >
>

--~--~-~--~~~---~--~~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev
-~--~~~~--~~--~--~---



[chromium-dev] Re: Cross-compiling on ARM

2009-08-21 Thread Dean McNamee

On Fri, Aug 21, 2009 at 2:34 PM, Lei Zhang  wrote:
> On Fri, Aug 21, 2009 at 2:25 PM, Dean McNamee wrote:
>>
>> On Fri, Aug 21, 2009 at 1:43 PM, Antoine Labour  wrote:
>>> - Gyp uses pkg-config to find includes/lib dependencies, i.e. it's
>>> going to look at the host for them. If your target distribution
>>> matches your host maybe you're fine, but it may not work at all, so
>>> it'd would be good to extract that and get a way to specify the
>>> dependencies explicitly.
>>
>> I also don't think we should modify our GYP build for this.  You can
>> set PKG_CONFIG_PATH, etc, to have pkg-config use a different set of pc
>> files.  You can just create these files for whatever target you are
>> building, and point pkg-config to use them instead.
>
> I don't remember having to fight pkg-config. Maybe my host/target
> (Ubuntu Hardy x86/Debian Lenny ARM) matched closely enough that it
> didn't matter.
>
> Thanks for writing the wiki page. I should've done that a long time
> ago. I dumped the bits I remember on the wiki page.

(Joel wrote the wiki page, thanks Joel!)

>

--~--~-~--~~~---~--~~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev
-~--~~~~--~~--~--~---



[chromium-dev] Re: Cross-compiling on ARM

2009-08-21 Thread Erik Corry

2009/8/21 Antoine Labour :
>
> There's growing interest from several parties in getting Chrome to
> cross-compile onto linux/ARM. Let's make sure everyone is on the same
> page so that we don't duplicate efforts.
> I understand that Joel Stanley, Dean McNamee and Lei Zhang have
> already been doing a lot of work towards that. There's a wiki page
> there: http://code.google.com/p/chromium/wiki/LinuxChromiumArm
>
> I've identified a few missing pieces to get a full version of chrome -
> there may be others. They are mostly build infrastructure issues:
> - v8 snapshotting needs to be disabled currently, we'd like to enable
> it. That means executing mksnapshot as a target executable, either
> through qemu or directly on device, i.e. the infrastructure to run a
> target program.

Actually the armulator (ARM simulator in V8) can be used to create ARM
snapshots without running anything on the target platform.  The C++
work is done for this, but the build file work isn't.  What is needed
is to build mksnapshot.cc with the armulator.  This is done with
simulator=arm in the scons build.  I don't know how it's done with
gyp.  When the snapshot.cc file has been generated by mksnapshot you
need to rebuild V8 from scratch, this time with the cross compiler.
With the scons build that would be (after saving snapshot.cc and
blowing away the other generated files) with snapshot=nobuild arch=arm
wordsize=32.  You need to make sure the CXX, AR, RANLIB and CC
environment variables point to your cross toolchain.

As I say, the build file work for this is not done yet.  I am sure
that it would be worth doing.  The snapshot support makes startup of
the VM faster at the cost of a moderate increase in size (moderate for
a system capable of running Chromium).  Since Chromium starts the VM
on every new tab that is worth doing.  On the other hand the browser
is perfectly usable without this optimization so it is no show-stopper
for the ARM version.

> - Gyp uses pkg-config to find includes/lib dependencies, i.e. it's
> going to look at the host for them. If your target distribution
> matches your host maybe you're fine, but it may not work at all, so
> it'd would be good to extract that and get a way to specify the
> dependencies explicitly.
> - The chrome os build relies on the protobuf compiler. The current
> build system builds it as a target executable, so we either need to
> run in qemu / on device it as above, or change the build system to
> understand target vs host executables.
>
> I wanted to double check if anyone was working on any of that, or if
> anyone has good ideas about how to achieve each of them. Please speak
> up !
>
> Antoine
>
> >
>



-- 
Erik Corry, Software Engineer
Google Denmark ApS.  CVR nr. 28 86 69 84
c/o Philip & Partners, 7 Vognmagergade, P.O. Box 2227, DK-1018
Copenhagen K, Denmark.

--~--~-~--~~~---~--~~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev
-~--~~~~--~~--~--~---



[chromium-dev] Re: Cross-compiling on ARM

2009-08-21 Thread Dan Kegel

On Fri, Aug 21, 2009 at 1:43 PM, Antoine Labour wrote:
> - Gyp uses pkg-config to find includes/lib dependencies, i.e. it's
> going to look at the host for them. If your target distribution
> matches your host maybe you're fine, but it may not work at all, so
> it'd would be good to extract that and get a way to specify the
> dependencies explicitly.

It would probably suffice to let you specify the directory
pkg-config looks at for its files, and to keep a separate
one for the target.

--~--~-~--~~~---~--~~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev
-~--~~~~--~~--~--~---



[chromium-dev] Re: Cross-compiling on ARM

2009-08-21 Thread Dean McNamee

On Fri, Aug 21, 2009 at 2:58 PM, Antoine Labour  wrote:
>
> On Fri, Aug 21, 2009 at 2:45 PM, Erik Corry wrote:
>> 2009/8/21 Antoine Labour :
>>>
>>> There's growing interest from several parties in getting Chrome to
>>> cross-compile onto linux/ARM. Let's make sure everyone is on the same
>>> page so that we don't duplicate efforts.
>>> I understand that Joel Stanley, Dean McNamee and Lei Zhang have
>>> already been doing a lot of work towards that. There's a wiki page
>>> there: http://code.google.com/p/chromium/wiki/LinuxChromiumArm
>>>
>>> I've identified a few missing pieces to get a full version of chrome -
>>> there may be others. They are mostly build infrastructure issues:
>>> - v8 snapshotting needs to be disabled currently, we'd like to enable
>>> it. That means executing mksnapshot as a target executable, either
>>> through qemu or directly on device, i.e. the infrastructure to run a
>>> target program.
>>
>> Actually the armulator (ARM simulator in V8) can be used to create ARM
>> snapshots without running anything on the target platform.  The C++
>> work is done for this, but the build file work isn't.  What is needed
>> is to build mksnapshot.cc with the armulator.  This is done with
>> simulator=arm in the scons build.  I don't know how it's done with
>> gyp.  When the snapshot.cc file has been generated by mksnapshot you
>> need to rebuild V8 from scratch, this time with the cross compiler.
>> With the scons build that would be (after saving snapshot.cc and
>> blowing away the other generated files) with snapshot=nobuild arch=arm
>> wordsize=32.  You need to make sure the CXX, AR, RANLIB and CC
>> environment variables point to your cross toolchain.
>>
>> As I say, the build file work for this is not done yet.  I am sure
>> that it would be worth doing.  The snapshot support makes startup of
>> the VM faster at the cost of a moderate increase in size (moderate for
>> a system capable of running Chromium).  Since Chromium starts the VM
>> on every new tab that is worth doing.  On the other hand the browser
>> is perfectly usable without this optimization so it is no show-stopper
>> for the ARM version.
>
> That is very cool to know - I was afraid to ask :). It sounds like
> with some work on gyp, we could entirely cross-compile chrome, full
> featured.

This sounds extremely difficult to do with gyp.  Another thought, what
about using qemu user emulation to run mksnapshot?

>
> Antoine
>
>>
>>> - Gyp uses pkg-config to find includes/lib dependencies, i.e. it's
>>> going to look at the host for them. If your target distribution
>>> matches your host maybe you're fine, but it may not work at all, so
>>> it'd would be good to extract that and get a way to specify the
>>> dependencies explicitly.
>>> - The chrome os build relies on the protobuf compiler. The current
>>> build system builds it as a target executable, so we either need to
>>> run in qemu / on device it as above, or change the build system to
>>> understand target vs host executables.
>>>
>>> I wanted to double check if anyone was working on any of that, or if
>>> anyone has good ideas about how to achieve each of them. Please speak
>>> up !
>>>
>>> Antoine
>>>
>>> >>
>>>
>>
>>
>>
>> --
>> Erik Corry, Software Engineer
>> Google Denmark ApS.  CVR nr. 28 86 69 84
>> c/o Philip & Partners, 7 Vognmagergade, P.O. Box 2227, DK-1018
>> Copenhagen K, Denmark.
>>
>
> >
>

--~--~-~--~~~---~--~~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev
-~--~~~~--~~--~--~---



[chromium-dev] Re: Cross-compiling on ARM

2009-08-21 Thread Antoine Labour

On Fri, Aug 21, 2009 at 2:45 PM, Erik Corry wrote:
> 2009/8/21 Antoine Labour :
>>
>> There's growing interest from several parties in getting Chrome to
>> cross-compile onto linux/ARM. Let's make sure everyone is on the same
>> page so that we don't duplicate efforts.
>> I understand that Joel Stanley, Dean McNamee and Lei Zhang have
>> already been doing a lot of work towards that. There's a wiki page
>> there: http://code.google.com/p/chromium/wiki/LinuxChromiumArm
>>
>> I've identified a few missing pieces to get a full version of chrome -
>> there may be others. They are mostly build infrastructure issues:
>> - v8 snapshotting needs to be disabled currently, we'd like to enable
>> it. That means executing mksnapshot as a target executable, either
>> through qemu or directly on device, i.e. the infrastructure to run a
>> target program.
>
> Actually the armulator (ARM simulator in V8) can be used to create ARM
> snapshots without running anything on the target platform.  The C++
> work is done for this, but the build file work isn't.  What is needed
> is to build mksnapshot.cc with the armulator.  This is done with
> simulator=arm in the scons build.  I don't know how it's done with
> gyp.  When the snapshot.cc file has been generated by mksnapshot you
> need to rebuild V8 from scratch, this time with the cross compiler.
> With the scons build that would be (after saving snapshot.cc and
> blowing away the other generated files) with snapshot=nobuild arch=arm
> wordsize=32.  You need to make sure the CXX, AR, RANLIB and CC
> environment variables point to your cross toolchain.
>
> As I say, the build file work for this is not done yet.  I am sure
> that it would be worth doing.  The snapshot support makes startup of
> the VM faster at the cost of a moderate increase in size (moderate for
> a system capable of running Chromium).  Since Chromium starts the VM
> on every new tab that is worth doing.  On the other hand the browser
> is perfectly usable without this optimization so it is no show-stopper
> for the ARM version.

That is very cool to know - I was afraid to ask :). It sounds like
with some work on gyp, we could entirely cross-compile chrome, full
featured.

Antoine

>
>> - Gyp uses pkg-config to find includes/lib dependencies, i.e. it's
>> going to look at the host for them. If your target distribution
>> matches your host maybe you're fine, but it may not work at all, so
>> it'd would be good to extract that and get a way to specify the
>> dependencies explicitly.
>> - The chrome os build relies on the protobuf compiler. The current
>> build system builds it as a target executable, so we either need to
>> run in qemu / on device it as above, or change the build system to
>> understand target vs host executables.
>>
>> I wanted to double check if anyone was working on any of that, or if
>> anyone has good ideas about how to achieve each of them. Please speak
>> up !
>>
>> Antoine
>>
>> >>
>>
>
>
>
> --
> Erik Corry, Software Engineer
> Google Denmark ApS.  CVR nr. 28 86 69 84
> c/o Philip & Partners, 7 Vognmagergade, P.O. Box 2227, DK-1018
> Copenhagen K, Denmark.
>

--~--~-~--~~~---~--~~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev
-~--~~~~--~~--~--~---



[chromium-dev] Re: Cross-compiling on ARM

2009-08-21 Thread Antoine Labour

On Fri, Aug 21, 2009 at 2:46 PM, Dean McNamee wrote:
> On Fri, Aug 21, 2009 at 2:34 PM, Lei Zhang  wrote:
>> On Fri, Aug 21, 2009 at 2:25 PM, Dean McNamee wrote:
>>>
>>> On Fri, Aug 21, 2009 at 1:43 PM, Antoine Labour  wrote:
 - Gyp uses pkg-config to find includes/lib dependencies, i.e. it's
 going to look at the host for them. If your target distribution
 matches your host maybe you're fine, but it may not work at all, so
 it'd would be good to extract that and get a way to specify the
 dependencies explicitly.
>>>
>>> I also don't think we should modify our GYP build for this.  You can
>>> set PKG_CONFIG_PATH, etc, to have pkg-config use a different set of pc
>>> files.  You can just create these files for whatever target you are
>>> building, and point pkg-config to use them instead.
>>
>> I don't remember having to fight pkg-config. Maybe my host/target
>> (Ubuntu Hardy x86/Debian Lenny ARM) matched closely enough that it
>> didn't matter.
>>
>> Thanks for writing the wiki page. I should've done that a long time
>> ago. I dumped the bits I remember on the wiki page.
>
> (Joel wrote the wiki page, thanks Joel!)

Didn't intend to miss-attribute. Thanks Joel !

Antoine

--~--~-~--~~~---~--~~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev
-~--~~~~--~~--~--~---



[chromium-dev] Re: Cross-compiling on ARM

2009-08-21 Thread Lei Zhang

On Fri, Aug 21, 2009 at 2:25 PM, Dean McNamee wrote:
>
> On Fri, Aug 21, 2009 at 1:43 PM, Antoine Labour  wrote:
>> - Gyp uses pkg-config to find includes/lib dependencies, i.e. it's
>> going to look at the host for them. If your target distribution
>> matches your host maybe you're fine, but it may not work at all, so
>> it'd would be good to extract that and get a way to specify the
>> dependencies explicitly.
>
> I also don't think we should modify our GYP build for this.  You can
> set PKG_CONFIG_PATH, etc, to have pkg-config use a different set of pc
> files.  You can just create these files for whatever target you are
> building, and point pkg-config to use them instead.

I don't remember having to fight pkg-config. Maybe my host/target
(Ubuntu Hardy x86/Debian Lenny ARM) matched closely enough that it
didn't matter.

Thanks for writing the wiki page. I should've done that a long time
ago. I dumped the bits I remember on the wiki page.

--~--~-~--~~~---~--~~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev
-~--~~~~--~~--~--~---



[chromium-dev] Re: Cross-compiling on ARM

2009-08-21 Thread Dean McNamee

On Fri, Aug 21, 2009 at 1:43 PM, Antoine Labour  wrote:
>
> There's growing interest from several parties in getting Chrome to
> cross-compile onto linux/ARM. Let's make sure everyone is on the same
> page so that we don't duplicate efforts.
> I understand that Joel Stanley, Dean McNamee and Lei Zhang have
> already been doing a lot of work towards that. There's a wiki page
> there: http://code.google.com/p/chromium/wiki/LinuxChromiumArm
>
> I've identified a few missing pieces to get a full version of chrome -
> there may be others. They are mostly build infrastructure issues:
> - v8 snapshotting needs to be disabled currently, we'd like to enable
> it. That means executing mksnapshot as a target executable, either
> through qemu or directly on device, i.e. the infrastructure to run a
> target program.

If you decide you do want snapshotting on arm (it has some down
sides), I think there is a pretty easy way to go about this.
Basically making the mksnapshot target pause and wait for you to hit
enter.  Then you can run your script or do whatever to run mksnapshot
on the right machine, and bring the output back.  I would not try to
make GYP any more intelligent than this (besides maybe running an
arbitrary script), since how you're going to run mksnapshot and move
the data around is going to vary greatly depending on your setup.  We
could easily just add a gyp variable like v8_mksnaphot_command, and
then you could replace that with whatever script you want.

> - Gyp uses pkg-config to find includes/lib dependencies, i.e. it's
> going to look at the host for them. If your target distribution
> matches your host maybe you're fine, but it may not work at all, so
> it'd would be good to extract that and get a way to specify the
> dependencies explicitly.

I also don't think we should modify our GYP build for this.  You can
set PKG_CONFIG_PATH, etc, to have pkg-config use a different set of pc
files.  You can just create these files for whatever target you are
building, and point pkg-config to use them instead.

> - The chrome os build relies on the protobuf compiler. The current
> build system builds it as a target executable, so we either need to
> run in qemu / on device it as above, or change the build system to
> understand target vs host executables.
>
> I wanted to double check if anyone was working on any of that, or if
> anyone has good ideas about how to achieve each of them. Please speak
> up !
>
> Antoine
>
> >
>

--~--~-~--~~~---~--~~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
http://groups.google.com/group/chromium-dev
-~--~~~~--~~--~--~---