Paul's blog

AES Code Generator at PLDI 2009

My final year project, an AES code generator (for the new Intel intrinsics which will appear in processors from next year), won the undergraduate student research competition at the Association for Computing Machinery's Programming Language Design and Implementation conference.

The code is availible on a publicly accessible GitHub repository at

I've attached to this post the presentation I gave to the conference with my speaker's notes if anyone is interested.

Research in the area is continuing under Dr David Gregg (who supervised and supported my project) at Trinity College.

Install Leopard on a PPC Mac when DVD won't work

I decided to finally upgrade my PPC MacMini from Tiger to Leopard.

Problem: Mac Mini refuses to read the DVD despite the DVD working fine on my MacBook Pro.


  • Install Leopard from iPod: Failed. My MacMini refused to boot from the iPod even though I'd used an Apple Partition Map and put it into forced disk mode. Likely culprit: I was using an USB rather than a Firewire iPod
  • Network Install: Didn't try.
  • Install from external dvd drive: Don't have one. But....
  • Target Disk Mode: Nifty Firewire trick. Restart your MacBook Pro in target disk mode, connect to Mac Mini via Firewire, put the DVD into your MacBook Pro, it appears immediately on the Mac Mini and install proceeds just as if the DVD was in the Mac Mini. Very sweet. Sucked that I couldn't use my MacBook Pro during the install though.

So, I now have a very nice Leopard install on my Mac Mini. Now to re-compile all my MacPorts installs...

PHP5 and libxml2 Make Problems

I did a "sudo port upgrade outdated" (using macports) yesterday which completely fecked up my PHP install. I was getting errors from Apache2 saying the php5 module was broken.

So, I re-installed php5 from macports. Or, more accurately, I attempted to. Got this darling error message during configure:

Undefined symbols:
ld: symbol(s) not found
collect2: ld returned 1 exit status

This is a fairly common error with php5 but the php devs are largely ignoring it since it is due to conflicting versions of libxml2 on your system. Basically, the linker seems to be getting confused about which version of libxml2 to use - despite it being specifically specified with the "--with-libxml-dir=/opt/local" specified in the Portfile and trying to use various ones around the place left by other installs (such as Gnome or OSX itself instead).

I fixed it, after over 24 hours of trying every thing I could think of including scrapping my entire /opt/local hierarchy.

The solution, at least in my case, turned out to be quite simple: I installed the latest version of libxml2 into the standard locations (in addition to the libxml2 installed by macports as a dependency of php5).

I downloaded libxml2 manually and did a "./configure && make && sudo make install". I then tried my php5 macports install again ("sudo port clean php5 && sudo port install php5 +apache2 +mysql5 +imap") and voila! Working php5 installation again.


Subscribe to RSS - Paul's blog