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

2009-08-25 Thread Lei Zhang

On Mon, Aug 24, 2009 at 6:22 PM, Antoine Labourpi...@chromium.org wrote:

 On Mon, Aug 24, 2009 at 1:53 PM, Scott Hesssh...@chromium.org 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-25 Thread Joel Stanley

On Tue, Aug 25, 2009 at 17:06, Lei Zhangthes...@chromium.org 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 j...@jms.id.au wrote:


 On Tue, Aug 25, 2009 at 17:06, Lei Zhangthes...@chromium.org 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 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=revrevision=22790

On Tue, Aug 25, 2009 at 5:39 PM, Linus Upsonli...@google.com wrote:
 Any chance gold will support linking Windows binaries?
 Linus

 On Tue, Aug 25, 2009 at 7:23 AM, Joel Stanley j...@jms.id.au wrote:

 On Tue, Aug 25, 2009 at 17:06, Lei Zhangthes...@chromium.org 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-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 Labourpi...@chromium.org 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 sh...@chromium.org 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 Labourpi...@chromium.org 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 de...@chromium.org 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 sh...@chromium.org 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 Labourpi...@chromium.org
 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 Antoine Labour

On Mon, Aug 24, 2009 at 1:53 PM, Scott Hesssh...@chromium.org 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 Labourpi...@chromium.org 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 1:43 PM, Antoine Labour pi...@google.com 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
-~--~~~~--~~--~--~---



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

2009-08-21 Thread Lei Zhang

On Fri, Aug 21, 2009 at 2:25 PM, Dean McNameede...@chromium.org wrote:

 On Fri, Aug 21, 2009 at 1:43 PM, Antoine Labour pi...@google.com 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 Antoine Labour

On Fri, Aug 21, 2009 at 2:46 PM, Dean McNameede...@chromium.org wrote:
 On Fri, Aug 21, 2009 at 2:34 PM, Lei Zhang thes...@chromium.org wrote:
 On Fri, Aug 21, 2009 at 2:25 PM, Dean McNameede...@chromium.org wrote:

 On Fri, Aug 21, 2009 at 1:43 PM, Antoine Labour pi...@google.com 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 Antoine Labour

On Fri, Aug 21, 2009 at 2:45 PM, Erik Corryerik.co...@gmail.com wrote:
 2009/8/21 Antoine Labour pi...@google.com:

 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 Dean McNamee

On Fri, Aug 21, 2009 at 2:58 PM, Antoine Labour pi...@google.com wrote:

 On Fri, Aug 21, 2009 at 2:45 PM, Erik Corryerik.co...@gmail.com wrote:
 2009/8/21 Antoine Labour pi...@google.com:

 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 Dan Kegel

On Fri, Aug 21, 2009 at 1:43 PM, Antoine Labourpi...@google.com 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 Erik Corry

2009/8/21 Antoine Labour pi...@google.com:

 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 Dean McNamee

On Fri, Aug 21, 2009 at 2:34 PM, Lei Zhang thes...@chromium.org wrote:
 On Fri, Aug 21, 2009 at 2:25 PM, Dean McNameede...@chromium.org wrote:

 On Fri, Aug 21, 2009 at 1:43 PM, Antoine Labour pi...@google.com 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
-~--~~~~--~~--~--~---