Replying by phone because holidays, sorry for any faux pas.
On Nov 28, 2014 4:15 AM, "Richard W.M. Jones" <rjones(a)redhat.com> wrote:
Hello Tom and other v8 maintainers.
I was looking at porting the Fedora Rawhide v8 package to aarch64,
since it is a dependency of mongodb, and hence an indirect dependency
of OpenStack Ceilometer.
The bad news is that there is no aarch64 support in the current Fedora
package. The good news is that upstream v8 from git has aarch64
support. The not so good news is that it's not completely working.
Firstly at the moment you're building from SVN-generated tarballs (is
that right?). V8 recently moved to using git. How do you feel about
using git tags instead? The latest git tag is 3.31.27 which was
released earlier today. That tag has the aarch64 support.
We don't typically track all v8 releases since they break API and ABI on a
monthly basis and are quickly no longer supported by Google. We do track v8
releases used by stable versions of node.js, since these are typically
maintained for years.
As of right now, it looks like the upcoming nodejs 0.12 release will use
the 3.30 branch (it currently ships 3.30.37). aarch64 has been "officially
supported" since 3.25.
If aarch64 support works in 3.30 just as well as 3.31, I'd suggest focusing
your polishing efforts there (along with fixing master as appropriate), so
it can last for awhile. If 3.31 is really better I may be able to push to
get node bumped upstream to make everyone's life easier.
There are two piece of not so good news:
(1) The newer version has removed scons support, which would
ordinarily be a good thing, scons being a huge steaming pile of crap.
However in this case it has been replaced with some kind of
home-brewed build system called 'gyp' which seems to be worse.
I've no idea how to package this. At the moment the build downloads
gyp from svn(!?) and obviously that's not going to be acceptable for
Fedora. I'm not clear if we can bundle gyp sources into the v8 srpm,
or need to have a separate package, or if there's some other way to do it.
There's a gyp package in Fedora already. The maintainer is usually good
about updating it to the latest svn snapshot, if that is needed for aarch64
support.
(2) I built the git head on my aarch64 box and tested it. It
doesn't
fully pass the tests with over 600 (out of 22000) failing:
[21:42|% 100|+ 22384|- 636]: Done
Compared to git head on x86-64 where only 4 tests fail:
[05:03|% 100|+ 21824|- 4]: Done
Anyway I'll keep plugging away at this and see if I can fix the tests.
There's also:
3.) MongoDB will need to be ported to work with newer v8. There have been
massive changes to the v8 API in recent versions (which is part of the
reason it has taken so long to get from node 0.10 to node 0.12). AFAICT no
porting effort has even been considered by mongodb upstream yet. [Actually,
they ship it with an even older version of v8 than we use it with in
Fedora. :-( ]
As of this moment my current plan to maintain mongodb support in Fedora is
to introduce a compat-v8-314 package at the same time we bump v8 to 3.30.
Which will be no problem supporting for a couple more years at least, but
it's still basically on life support and that doesn't bode well for arm64
support.
You may want to talk to mongodb upstream first and foremost and inquire
about getting it to work with newer v8 versions. I'd hate for you to do a
bunch of work fixing v8 on arm64 just for it to only end up benefitting
Chrome for Android users. ;-)
But I'm interested what your thoughts and plans are for v8 w.r.t
switching to git and about gyp
-T.C.