On Fri, Nov 28, 2014 at 05:49:39AM -0700, T.C. Hollingsworth wrote:
Replying by phone because holidays, sorry for any faux pas.
No problem, thanks for the quick reply!
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.
I tested 3.30.37 and aarch64 support seems to be at the same level as
head.
The precise same set of 636 tests fail too. However looking more
closely, (1) all the tests are in the same bit of code which is
something to do with math libraries AFAICT, and (2) the JIT makes
debugging it very difficult - there are no stack frames so gdb can't
make head nor tail of it. I suggest we ignore the test failures unless
they actually affect mongodb/nodejs.
Anyway the bottom line is that 3.30.37 is fine.
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. ;-)
Bluuurrrrggggghhhhhhh. Professional engineering practices FTW.
There's an upstream mongodb bug about this which doesn't look
encouraging:
https://jira.mongodb.org/browse/SERVER-10282
Rich.
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
Read my programming and virtualization blog:
http://rwmj.wordpress.com
virt-p2v converts physical machines to virtual machines. Boot with a
live CD or over the network (PXE) and turn machines into KVM guests.
http://libguestfs.org/virt-v2v