0. WARNING: You probably don't want to actually do this. Ever. You should never upgrade a set of kernel headers. This is because glibc was built against a certain version of the headers. If you change it, gcc may build binaries incompatible with your running glibc! Go back through the Slackware changelogs for previous versions and read up on what Patrick has to say about it. Then go back and read it again. :-) 1. Build a working kernel and related parts for your machine. Either the provided kernel-source package or a kernel from kernel.org will work. I hope I don't have to say "Make sure it builds completely and correctly" ;-) 2. Create a temporary directory. I'll use "/tmp/package-kernel-headers" as an example. 3. Inside of the temporary directory make a "usr/include/", then cd to it. You'll want to grab the finished headers out of your recently-built kernel sources. As an example, here's how I do it on my system: cp -a /usr/src/linux-2.4.31/include/linux . cp -a /usr/src/linux-2.4.31/include/asm-sparc . cp -a /usr/src/linux-2.4.31/include/asm-sparc64 . 4. Also inside of the temporary directory, you'll want to create an "install" directory. It will contain the slack-desc and a doinst.sh script. The slack-desc is provided in this directory, and the doinst.sh script simply contains: ( cd usr/include ; rm -rf asm ) ( cd usr/include ; ln -sf asm-sparc asm ) This will link the 32-bit SPARC headers as the main assembly headers for the distribution, regardless of whether or not you use an Ultra. I suppose we could find a way to make the appropriate header collection appear for a given architecture, but that's an exercise for later. By the way, you'll want to manually remove /usr/include/asm and link "asm" to /usr/include/asm-sparc64 when building most things that touch the kernel, including module-init-tools, silo, alsa-driver, and others 5. Anything I missed?