spuxlc bug: __UnsupportedConditional…

I’m only posting this here because searching for “__UnsupportedConditionalExpressionDestruction” on the internets returns no useful hits…

There appears to be a bug in the December 2006 spuxlc (the compiler that comes with Cell SDK 2.0) where it fails to link certain segments of code that have been compiled with optimizations on (-O2, -O3, etc). I’ve got a fair amount of code that I’ve copied into SPULand that wouldn’t link and it was a little frustrating not finding any hits on Google..

RT.o:(.data+0x7dc): undefined reference to `__UnsupportedConditionalExpressionDestruction(void*, long)’

Here’s the problem line of code:

if(i != ignoreobject && _objects[i]->Hit(ro, rd, hitdata))

The fix?

if(i != ignoreobject)
if(_objects[i]->Hit(ro, rd, hitdata))

Lovely. I wonder if there’s some magic-fu where it tries to optimize SPU branches that’s tripping it up.

Packet8 VOIP service from your computer

Hey hey.. I just figured out how to use my Packet8 service from my computer.. I wish I had done this a long time ago, there have been many occassions where it would have been nice to use my Packet8 service from my laptop.

The key to getting it working is discovering your Packet8 username and password. The DTA310 will never reveal to you the password, however it can be made to reveal the username. If you install the packet8 “unlocked” firmware and then go to the SIP settings page it will show you your 10-digit username. [While you’re in the unlocked firmware go ahead and disable the G729 codec]..

How do you get the password? The password turns out to be the original 10-digit activation code you received from Packet8 when you first ordered service.

Now you can configure your favorite VOIP software (I’ve been using X-Lite) for SIP authentication with Packet8. Set the domain to “packet8.net” and for the SIP Proxy (as of this writing) use or If the address ever changes the unlocked firmware will show you the current server it’s using, so just check with your DTA310 first.

Installing the latest Fedora Core 7 on PS3

Even though it appears to be the “official” linux for Playstation 3, Yellow Dog Linux on PS3 was a bit of a dissapointment.. everything is way out of date, and it turns out IBM is only supporting Fedora Core 6 at the moment for the Cell SDK. So if you want to be on the bleeding edge you’ve got to have Fedora Core installed.

But why settle for Fedora Core 6 when Fedora Core 7 for PS3 is right around the corner? dwmw2 on #cell (irc.oftc.net) convinced me to try out the development branch of FC7. Here’s how you get it installed:

Update your PS3 (at least 1.60 or 1.70)

Download the latest otheros.bld that’s built on petitboot and put it on a memory card in /ps3/otheros. Go to System Settings -> Install Other OS and install it.

Download the latest Fedora Core boot.iso and burn it to a DVD.

Reboot your PS3 in Other OS and select Linux64.

HD users: If you want to do the install in 1080i or 720p, wiggle the mouse on the Linux64/Linux32 selection screen and leave the mouse on Linux32. This will stop it from booting in 480i automatically. Then hit Ctrl-Alt-F1 to get to a TTY. From here, cd to /var/tmp/mnt-scd0*/ppc/ppc64 and run: ‘/sbin/kexec -f –initrd=ramdisk.image.gz –command-line=”video=1080i” vmlinuz’ (or video=720p) At the moment you can’t just select “720p” or “1080i” from the graphical boot menu, as it does not pass video information on to the installer. 🙁

When prompted for where to pull the install material from you can select HTTP, or you could just download it yourself and put it on a DVD which is much faster. Either way, the install material is here. If that’s too slow you can try one of the mirrors, but beware — the mirrors can be 1-2 days behind, which could cause you grief when you’re pulling the latest from the development branch.

Observations after a day with FC7…

* I wouldn’t recommend installing FC7 over HTTP! It took me 8 hours. The PS3 doesn’t have enough RAM to manage the install very well.

* No sound in FC7

* No wireless in FC7