Hi all! I'm totally new to this, and first off I would like to thank everyone for the awesome work you are doing!
I, too, love using old hardware, which is why I recently took an old Titanium Powerbook G4 and installed Linux Mint PPC on it: cat /etc/issue Linux MintPPC 11 \n \l It works great, and it blew me away when I found that you guys are porting node.js to ppc. I downloaded the release version and it compiled successfully, but I received an "Illegal instruction" imediately when trying to run node and npm. I found this thread and followed your instructions, and below is the info I got (I removed the comments before the PrintF's in is_processor to check that the processor was correctly identified): git clone https://github.com/andrewlow/v8ppc.git LD_SHOW_AUXV=1 /bin/true AT_DCACHEBSIZE: 0x20 AT_ICACHEBSIZE: 0x20 AT_UCACHEBSIZE: 0x0 AT_SYSINFO_EHDR: 0x100000 AT_HWCAP: mmu fpu altivec ppc32 AT_PAGESZ: 4096 AT_CLKTCK: 100 AT_PHDR: 0x10000034 AT_PHENT: 32 AT_PHNUM: 9 AT_BASE: 0x48000000 AT_FLAGS: 0x0 AT_ENTRY: 0x10000c9c AT_UID: 1000 AT_EUID: 1000 AT_GID: 1000 AT_EGID: 1000 AT_SECURE: 0 AT_RANDOM: 0xbf9356e0 AT_EXECFN: /bin/true AT_PLATFORM: ppc7450 AT_BASE_PLATFORM:ppc7450 cat /proc/cpuinfo processor : 0 cpu : 7455, altivec supported clock : 867.000000MHz revision : 3.2 (pvr 8001 0302) bogomips : 86.64 timebase : 33330863 platform : PowerMac model : PowerBook3,5 machine : PowerBook3,5 motherboard : PowerBook3,5 MacRISC2 MacRISC Power Macintosh detected as : 80 (PowerBook Titanium IV) pmac flags : 0000001b L2 cache : 256K unified pmac-generation : NewWorld Memory : 1024 MB gdb out/ppc.debug/d8GNU gdb (GDB) 7.4.1-debian Copyright (C) 2012 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "powerpc-linux-gnu". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... Reading symbols from /home/toro/Development/v8ppc/out/ppc.debug/d8...done. (gdb) r --test --stress-opt --always-opt --nobreak-on-abort --nodead-code-elimination --enable-slow-asserts --debug-code --verify-heap /home/toro/Development/v8ppc/test/mjsunit/mjsunit.js /home/toro/Development/v8ppc/test/mjsunit/regress/regress-crbug-3184.js Starting program: /home/toro/Development/v8ppc/out/ppc.debug/d8 --test --stress-opt --always-opt --nobreak-on-abort --nodead-code-elimination --enable-slow-asserts --debug-code --verify-heap /home/toro/Development/v8ppc/test/mjsunit/mjsunit.js /home/toro/Development/v8ppc/test/mjsunit/regress/regress-crbug-3184.js [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/powerpc-linux-gnu/libthread_db.so.1". ============ Stress 1/2 ============ cpu_type = ppc7450 cpu_type = ppc7450 [New Thread 0x48938480 (LWP 18960)] Program received signal SIGILL, Illegal instruction. 0x4aa0e98c in ?? () (gdb) bt #0 0x4aa0e98c in ?? () #1 0x4aa47e18 in ?? () Backtrace stopped: previous frame inner to this frame (corrupt stack?) (gdb) x/20i $pc-16 0x4aa0e97c: stw r0,0(r1) 0x4aa0e980: stw r10,4(r1) 0x4aa0e984: lfd f6,0(r1) 0x4aa0e988: addi r1,r1,8 => 0x4aa0e98c: fcfid f6,f6 0x4aa0e990: fcmpu cr7,f7,f6 0x4aa0e994: bso cr7,0x4aa0e9b8 0x4aa0e998: beq cr7,0x4aa0e9a8 0x4aa0e99c: blt cr7,0x4aa0e9b0 0x4aa0e9a0: li r3,1 0x4aa0e9a4: blr 0x4aa0e9a8: li r3,0 0x4aa0e9ac: blr 0x4aa0e9b0: li r3,-1 0x4aa0e9b4: blr 0x4aa0e9b8: li r3,-1 0x4aa0e9bc: blr 0x4aa0e9c0: lwz r5,-1(r3) 0x4aa0e9c4: lbz r5,7(r5) 0x4aa0e9c8: cmpwi cr7,r5,166 (gdb) Seems like its stopping at a fcfid, which seems to be a 64 bit instruction... I'd like to help, but I'm pretty much a noob. But anything I can do, please let me know. I have everything set up, so I just need a pointer in the right direction. Again, thanks for all your hard work. On Wednesday, October 16, 2013 3:19:28 PM UTC+2, Andrew Low wrote: > > Chasing this is a side-project, I've got plenty of other stuff I'm working > on too :) > > The main reason that this is interesting is that it might help me > resolve: https://github.com/andrewlow/v8ppc/issues/93 -> but only if I > can wrangle up some local hardware. Working over the wire is ok, but very > very slow. These types of problems require a lot of iterations. > > Thanks for the details on your iBook. One of the guys here has an old G4 > we can try out, but we need to install Linux on it. > > The trace is informative as well. It shows that "lots" of code is running, > but you hit something specific causing a problem. This is not likely an > issue with the Node code, but something in V8 (the JS runtime engine used > by Node). > > If you want to tinker - build the V8 code and run it. > > git clone https://github.com/andrewlow/v8ppc.git > cd v8ppc > make dependencies > make ppc > > Then run the resulting d8 shell. > > ./out/ppc.debug/d8 > > If that works, you can try some simple JS code (either type it in to the > shell, or pass a foo.js file in on the command line). > > To run the V8 test suite, try: > > tools/run-tests.py -j 12 --progress=dots --no-presubmit > --arch-and-mode=ppc.debug > > When you have a crash case - running the scenario under gdb and capturing > some info from there will be helpful. > > gdb out/ppc.debug/d8 > > inside gdb: > r <optional command line args> > ... it crashes.. > bt <- generates a back trace, likely corrupted > x/20i $pc-16 <- dump instructions around the crash location > i r <- dump registers > > That data will help isolate the issue. > On Wednesday, October 16, 2013 7:10:37 AM UTC-4, Carlos Arija wrote: >> >> First of all, please do not put much time in this problem. It is just a >> test. >> Any way, here are the iBook G4 specs, if they are of any use to you. >> And if I could be of any help in your project, just tell me. >> >> /etc/issue >> Debian GNU/Linux 7 \n \l >> >> /proc/cpuinfo >> processor : 0 >> cpu : 7447A, altivec supported >> clock : 1199.999000MHz >> revision : 1.2 (pvr 8003 0102) >> bogomips : 73.72 >> timebase : 18432000 >> platform : PowerMac >> model : PowerBook6,5 >> machine : PowerBook6,5 >> motherboard : PowerBook6,5 MacRISC3 Power Macintosh >> detected as : 287 (iBook G4) >> pmac flags : 0000001b >> L2 cache : 512K unified >> pmac-generation : NewWorld >> Memory : 1280 MB >> >> Attachment: result of ./node -trace, until the program crashed with an >> "illegal instruction" >> >> >> El martes, 15 de octubre de 2013 22:15:28 UTC+2, Andrew Low escribió: >>> >>> I've got some good news and some bad news. >>> >>> Bad news - I can't replicate your problem. >>> >>> Good news - I was able to dig up an old PowerMac running Ubuntu. >>> >>> $ cat /etc/issue >>> Ubuntu 10.04.4 LTS \n \l >>> >>> Unfortunately it appears to be a G5, not a G4. >>> >>> $ cat /proc/cpuinfo >>> processor : 0 >>> cpu : PPC970FX, altivec supported >>> clock : 1800.000000MHz >>> revision : 3.0 (pvr 003c 0300) >>> >>> processor : 1 >>> cpu : PPC970FX, altivec supported >>> clock : 1800.000000MHz >>> revision : 3.0 (pvr 003c 0300) >>> >>> timebase : 33333333 >>> platform : PowerMac >>> model : PowerMac7,3 >>> machine : PowerMac7,3 >>> motherboard : PowerMac7,3 MacRISC4 Power Macintosh >>> detected as : 336 (PowerMac G5) >>> pmac flags : 00000000 >>> L2 cache : 512K unified >>> pmac-generation : NewWorld >>> >>> FWIW - v8 seems to bootstrap just fine >>> >>> $ ./out/ppc.debug/d8 >>> V8 version 3.14.5 (candidate) [console: dumb] >>> d8> 3+4 >>> 7 >>> d8> >>> >>> >>> >>> -- -- Job Board: http://jobs.nodejs.org/ Posting guidelines: https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines You received this message because you are subscribed to the Google Groups "nodejs" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/nodejs?hl=en?hl=en --- You received this message because you are subscribed to the Google Groups "nodejs" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
