This is the same problem as https://github.com/andrewlow/v8ppc/issues/97

The G4 processor lacks some of the machine instructions the code uses. If
you look we've already fixed the G5 that also has a few missing, but not as
many as the G4.

If you want to help please coordinate via the issue. It might be a bit slow
as we're in the holiday season.
 On Dec 23, 2013 4:34 AM, "tio00" <[email protected]> wrote:

> 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 a topic in the
> Google Groups "nodejs" group.
> To unsubscribe from this topic, visit
> https://groups.google.com/d/topic/nodejs/ivGMr-C_m1Y/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to
> [email protected].
> For more options, visit https://groups.google.com/groups/opt_out.
>

-- 
-- 
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.

Reply via email to