The port is based on Linux 2.6.7 with linux-2.6.7-hsc0.patch.gz applied. (This is the MMU-less ARM patch. It was mainlined in later 2.6 kernels.) Then, the iPodLinux files need to be copied into that tree, overwriting some Linux files.
This runs into several problems. Building with the old GCC 2.95.3 toolchain fails because the assembler is too old. With arm-uclinux-elf-tools.tar.bz2, the assembler is fine, but old GCC options are used, which aren't accepted by GCC 3.4.3. There are also two other small errors, and one error preventing
make menuconfig. I'm distributing a fixed version in the form of a bare Git repository. It successfully builds
linux.bin, which I didn't try to run because I don't have an old PP5002 based iPod.
One build problem remains: make always rebuilds everything. I'm not sure what's going on. If I run
make -n --traceafter successfully building
linux.bin, I see a lot of stuff being re-built due to
FORCE, as if this is intentional.