This is the home of various pupngo stuff. Link to overview of hosted ressources
pupngo toolchain was mostly based on precompiled uclibc toolchain root_fs_i386.ext2.bz2.
I will try to build a toolchain using buildroot-0.9.27 as starting point. With later versions I have had several problems getting a working native compiler in the target. The drawback (?) is that 64-bit builds are not supported as this needs later versions of uclibc/buildroot.
Buildroot expect some tools to be availeble in the host. My target is to build a toolchain capable of building it self, a goal which is not a build-in feature of buildroot. Secondly I want the toolchain to be able to build pupngo from source.
The host will be pristine P412 with devx installed. The target architecture will be i386.
For installing and configuring Puppy Linux 4.12 is beyond the instructions given here. In short you download the puppy-4.1.2-k126.96.36.199-seamonkey.iso image and burn it to a CD or DVD media. Boot from the CD/DVD and install to harddisk/usb or even to the boot CD/DVD itself. After that install the devx_412.sfs. Below are links to copies hosted at this site.
Or...: Download an iso-image - puppy-4.1.2-k188.8.131.52-seamonkey_w_devx.iso - where devx_412.sfs is included as well as a package "otf_sfs_loader_2015.pet" which after burn to a CD/DVD will boot you to a normal Puppy Linux 4.12 but with the tools needed for creating the toolchain at hands on the CD/DVD. You need min 1 Gb ram to do this or access to a large swap-partition. After boot, navigate to the CD/DVD, install the otf_sfs_loader_2015.pet, after that open a terminal in the CD/DVD and run "otf_sfs_loader devx_412.sfs". You should now have a working devellopment environment and be ready to follow the recipe further below.
Some trivial patches are needed to get started: Links to download sources has changed and the ncurses based build option menu needs small change. Some binaries needs to be compiled static to avoid break during the build, some versions need to be downgraded - other upgraded and some programs are missing.
The selection of programs are also to be settled - so are the configurations, especially busybox features need to change.
Where to start? Its an itterative process so below a description of the final patch via my incremental patches applied. You should be able to identify the incremental patches reading the patch from start to end...
A test at this point shows I am able to run buildroot and get a toolchain which is able to rebuild it self. As full perl and texinfo additions are not working a common patch is made where they are removed again.
Get the final patch via below link as well as my buildroot-config file. Also get util-linux_2.12-10.diff.gz as it might be hard to get your hands on these days.
Please note that links to sources change over time. If the build stops because the source cannot be downloaded - download the source from where you can get it - and place it in dl-directory. You might have luck looking here
You can test your new toolchain by chroot into your toolchain root (build_i386/root). The toolchain should be able to rebuild itself. After chroot repeat the procedure described above 1-8. To have internet connection in the chrooted environment copy your host /etc/resolv.conf to your /root/etc/resolv.conf
Question: Which packages need automake and autoconf? They might be moved to an install upgrade for pupngo if program who need them could be excluded from the toolchain. How did perl get in?
Answer: uclibc (binutils) needs gettext, bison & flex and flex needs autoconf. So no way to avoid microperl, autoconf and automake. Might circumvent by using http://landley.net/aboriginal/mirror/binutils-397a64b3.tar.bz2?
Here we should have some more information about how to get the things off the iso. That is a TODO.
With all the needed files in /src in our toolchain we are ready to start.
We should now have the basic pupngo ready. Create a iso and give it a boot-try. We have a lot of applications that can e build. Try running the build_packages_01.sh. If all goes well a bunch of packages are created in the /src/packages directory.