Open bhyatm opened 10 years ago
These issues are against the V8 port to PowerPC. The Node repository can be found here: https://github.com/andrewlow/node
This version of V8 does work on AIX. There is not (yet) a public build. You need to get GCC and some other tools (sorry, no set documentation on doing this yet either) - installed and configured on your AIX machine.
The same tooling is required for Node. It is possible to build Node on AIX, but there are still issues in the libuv implementation that need to be resolved before it is a reasonable end user experience. We are working on this.
If you happen to be an IBM customer, there may be a route to getting better support than this open source project. If you drop me an email I can connect you.
IBM recently made the Linux on PowerPC version of this available: http://www.ibm.com/developerworks/web/nodesdk/
Hi Andrew Low, I want to compile v8ppc in aix, but it failed, does the document come out? And how can I get support? thank you
@wifiboss What was the error exactly? Is your system configured with gcc?
@andrewlow I installed the gcc-4.2.0-3 and make-3.81-1 for aix6.1 ppc from aixtoolbox. But the gcc got 'segmentation fault':
root@yxrjzx:/home/kjse/v8ppc>make ppc werror=no
make[1]: Entering directory /home/kjse/v8ppc/out' CXX(target) /home/kjse/v8ppc/out/ppc.release/obj.target/v8_base/src/parser.o In file included from ../src/elements.h:33, from ../src/objects-inl.h:38, from ../src/v8.h:60, from ../src/parser.cc:28: ../src/heap.h: In member function 'v8::internal::byte** v8::internal::Heap::store_buffer_top_address()': ../src/heap.h:1260: warning: dereferencing type-punned pointer will break strict-aliasing rules ../src/parser.cc: At global scope: ../src/parser.cc:5988: internal compiler error: Segmentation fault Please submit a full bug report, with preprocessed source if appropriate. See <URL:http://gcc.gnu.org/bugs.html> for instructions. make[1]: *** [/home/kjse/v8ppc/out/ppc.release/obj.target/v8_base/src/parser.o] Error 1 make[1]: Leaving directory
/home/kjse/v8ppc/out'
make: *\ [ppc.release] Error 2
I succeed with gcc-4.2.0-2 finally. But when this port be integrated into v8 or you update the v8 to the latest version? thanks
@wifiboss I use gmake to run the make process as the AIX make is fairly unhappy with the V8 makefiles. If you head over to the node repository https://github.com/andrewlow/node you'll find that AIX should build there in a similar way.
Our long term goals include contributing all of this code back to the master projects (both V8 and Node). For V8 there are a set of high level goals that the V8 teams requires we meet before they accept the code back and we're working on those.
If you look in the v8ppc repository, you'll see an upstream branch which is our progress towards more current versions of V8. We will merge the branch once it's ready for consumption (shouldn't be too long at this point)
@andrewlow My AIX is version 6.1, and the gcc version is 4.2.0-2. The sample binaries in master branch runs well. But the binaries 'd8' and 'lineprocessor' in upstream trunk failed with core dump, the binary 'shell' runs well.
My question is:
The upstream branch is a work in progress.
I strongly advise against using GCC distributed on the IBM website. That is not a recommended version of GCC and not recommended for building v8 or node.js.
@andrewlow , @edelsohn , Your advice helped me a lot. Thank you and your great work!
Is it possible to compile v8ppc with xlC or gxlc++ in the future? We need to link v8 with some libraries compiled by xlC. It seems to be imcompatible. thanks
Sorry, took a bit to get to this.
No near term plans to resolve this. I believe xLC does have some GCC compatibility we can try out. The V8 code base does rely on GCC features etc, so convincing the xLC compiler to consume the code mostly 'as is' is the best route.
Why do the C++ libraries require xlC instead of G++? G++ consistently uses the Itanium name mangling and object model on all platforms. xlC uses a derivative of the old C-Front C++ ABI. If you want to use Open Source-derived software on AIX, it is more and more difficult to avoid Open Source tools.
Lots of companies using IBM platforms are using IBM compilers and leverage the tweaked compilers to take advantage of the platform in ways GCC does not support. It seems that vendor compiler teams focus on further tweaking their closed-source compilers instead of making all the same features available in GCC/LLVM. Saying "build all your software with a different compiler" isn't straightforward. Even in this example, it seems clear it is non-trivial for v8 to be built with a different compiler, so why wouldn't that be the case for everyone else?
At least Oracle is adopting G++ ABI for Studio 13 to make this less of a problem on Solaris -- what is IBM planning on doing? If IBM wants to support customers on AIX and leverage OSS on AIX, their compiler should be able to build (at least these) OSS projects.
My personal opinion is that porting this project to AIX is not as useful as porting to IBM's "platform". That should also include making it build under xlC whether that involves adding more OSS-like features to xlC (intrinsics, etc) or selecting different features in the code based upon compiler.
@apaprocki while there are IBM people working on this code base, this isn't the forum for the discussion of IBM product plans.
From a technical point of view - I think that you've made a strong case for xlC support in the code base. We'll take a look at what can be done.
If you're looking for an IBM product statement - we can guide that conversation through email to the right people.
Binaries for AIX have been available here for some time: http://www.ibm.com/developerworks/web/nodesdk/index.html
I'm going to close this issue. Please re-open if you disagree.
Hi,
I would like to create a node.js program but I need it to run on AIX platforms. I am fairly new to node.js so please excuse the basicness of these questions
Thanks
Mac