Open andrewlow opened 10 years ago
Interested, since there's a good chance these 3.14 ppc branch patches make their way to the libv8-3.14 debian package.
@kapouer That's the plan. I helped Adam create the original patch into the ubuntu libv8-314 for PPC (BE/LE).
Big bunch of commits merged from 3.14-ppc branch and some cleanup
commit 7d1b8b5d040a7d622bbde464ea29f6a7e89c90b6 commit a89113066060399c0f0337fededf8216ab4fd864 commit e65316cac36d48fd94e2716bdea8f399b3fefdb6 commit bd647a19c2970b39105d097a0641fa89d39670ba << upgrade patch to 3.14.5.9 commit 6a4dae62274959f1f9c9b8b541961a28b5e368f2 commit 3104c7a2292be26aab9ac27ec0e7f4b3ad52f256 commit 1fce5844fc33d03e55357bfd80439a96f4f13231 commit dd1c665ff244b87ceb362fd5893df9e64edd43f7 commit 8564b62eb9090e52a92d79b7402be5383a72db63 commit b9c7b1aa764ba26b3b33b4f5a933293d84467fbe
commit b74ef763708d3ae728413ba6509c8599fa19705d commit 1079d0e3f0cc674ef10cc65a4d8aa1bfc6172a1c commit eef43973d0cf454d4eb29653a67e1c8c53df9a17 commit 16022ca659643a9cc2e877bbca0fa9eff8045623 commit 2f80bb13c3369039dc16adfc277a006097ee1e2c
One note - this upgrades to 3.14.5.9 which is a a single commit: bd647a19c2970b39105d097a0641fa89d39670ba but appears to be Node related and probably a good idea.
Submitted a bug on launchpad https://bugs.launchpad.net/ubuntu/+source/libv8-3.14/+bug/1289490 to track inclusion of this in the Ubuntu builds.
Had a second look. Debian ppc port supports low-end POWER instructions sets. It's not that obvious what exactly (but i'll ask for more info). At least the build servers set a minimum requirement, see for example poulenc or praetorius. That means libv8-3.14 package cannot support "powerpc" architecture unless you manage to merge the main ppc port with the g4compat branch.
@kapouer - I looked at poulenc (Xserve Dual Core G5) and praetorius (IBM p5 52A, 4 x POWER5+ 1.6GHz) - I would have thought that the current libv8-3.14 did work fine here.
It won't work on a G4 processor - the currently unmerged g4compat branch is for those. I can understand that debian wants to be as widely supported as possible, so this is another vote to merge those changes in. (I may try again to do that.. it was just a pretty big diversion for quite an old processor).
I would like to understand if you have evidence that the two build servers listed above are actually incompatible with the code we have in libv8-3.14. If so, that's a different bug than G4 compatibility and I'd like to address that first.
No i don't have any evidence the build servers are actually incompatible. (I thought the G5 was < POWER5). Here's some information about which instruction sets are supported in debian: https://lists.debian.org/debian-powerpc/2014/04/msg00005.html
Len Soremsem's comments outlines PowerPC levels we do support.
He also correctly points out that there are issues with some of the Freescale processors due to our assumption of FPU support
Standard powerpc FPU is expected to exist, which makes the SPE powerpc versions not able to run it (which is mainly e500 core powerquicks as far as I know)."
So, based on this data - the code should be compatible. If you hit problems with those servers / that CPU specification we will happily accept issues and resolve them.
Fine by me, will try the patch and report, then.
Which branch is the one i can review ? libv8-3.14 or 3.14-ppc ?
The libv8-3.14 branch was prepared specifically to make the merge into the Ubuntu builds as simple as possible. The parent of the libv8-3.14 branch is 3.14-ppc.
We use 3.14-ppc as our branch to support the PowerPC version of Node.js.
For debian, I'd be tempted to start with libv8-3.14 and see if it's a close match to what you have now on other platforms. If there are big issues - then I'd be happy to take a look at the deltas and figure out how we can best provide code to you that requires the minimum effort on your part.
If it's a big effort, and you want to do the work yourself, then starting from 3.14-ppc makes the most sense.
There are several commits @mtbrandy made to clean up the 3.14-ppc stream that should be incorporated into libv8-3.14
There is also at least one change I missed when making libv8-3.14 from src/objects-inl.h
This item exists so I don't forget to take care of this.