I hit a few roadblocks when trying to install a slew of Perl modules on my new Powerbook, and after a lot of hairpulling and angst, I managed to track down the relevant information and solve the issues. I wanted to document it all here, lest someone else find themselves in the same boat.
I got a new Powerbook (the 12” G4 with the SuperDrive, and boy do I love it), and out of the box, it’s running OS X 10.3 (Panther). Last week, started migrating my whole development environment over to it, and that meant that the first thing I did was install the OS X Developer Tools. Of course, I had downloaded them a while ago, and knew that while my download was one version back (v1.0), there was an update to v1.1 (also known as XCode Tools) that I could install afterwards, so that’s how I went about getting the tools installed.
(Turns out that new Macs also come with the tool installers already on the disk — located at /Applications/Installers/Developer Tools/ — but I didn’t know that at the time.)
After installing the tools and making the one change to the Perl configuration files that is needed on any and all Panther machines, I started the process of getting all the Perl modules necessary for my various programming needs and application support. Some of them wouldn’t install, though, and specifically, when Perl tried to set up Bundle::DBI, it kept puking with the error “ld: can’t locate file for: -lbundle1.o”. Searches of Google didn’t net me any reasonable solutions for about an hour… until I searched for bundle1.o and panther alone. That brought up a few hits, but most notably, this Macintouch post (search for bundle1.o within the page) which explained the problem, and also explained why I had never hit this obstacle before.
Turns out that the OS X 10.2 (Jaguar) installation process handles putting a few important programming libraries onto your machine, including the aforementioned bundle1.o (as well as crt1.o, dylib1.o, and gcrt1.o). As a result, Developer Tools 1.0 doesn’t have to worry about those libraries. The move to OS X 10.3 (Panther) brought with it a change in responsibility — the OS no longer installs the libraries, so XCode Tools takes care of them. Now here’s the critical problem: the Developer Tools 1.1 upgrader also doesn’t worry about the libraries, meaning that if you have a machine that started out life with Panther on it, had Developer Tools 1.0 installed on it, and then is upgraded to XCode Tools, then those four libraries never get created.
The solution is pretty easy — drill down to /Applications/Installers/Developer Tools/ and reinstall the tools from those installers. (They do the right thing, assuming that you’re doing a complete install rather than an upgrade.) Or, better put, don’t use the upgrader at all, because it makes assumptions that are clearly not always right!