Page History

Turn Off History

Perform a Clipped Port

This log starts with some work for the general system port already having been done by another developer.

Preparation of a new glibc external

See the Debian 6 full port log for more details. Note that for Debian 9, apt-get source glibc applied the patches; debian/rules patch was probably a no-op.

Locate and see how glibc builds

apt-get source glibc
cd glibc-2.24
debian/rules patch
cd ..
mv glibc-2.24 glibc-2.24-11
tar -z -c -f glibc-2.24-11.tar.gz glibc-2.24-11
cd glibc-2.24-11
debian/rules build |& tee build.out

The build failed. Needed to do apt-get build-dep glibc. This wanted makeinfo, but still failed, unable to find selinux/selinux.h a long way into the build. Since /usr/include/selinux/selinux.h existed, I tried apt-get install linux-headers-4.9.0-3-all. This didn't help. I tried starting over, in case the selinux headers were supposed to have been copied into the tree; didn't help. Looked at other glibc external build comments, tried apt-get install gcc-multilib, because of the debian/include silliness. (Why bother if you're going to make symlinks?) This fixed the problem.

Run apt-get install texi2html to get makeinfo.

Create the glibc external

Follow the instructions. Note that parrot updates what it serves over HTTP from AFS every ten minutes.

Notes: the build system will warn but not fail if it doesn't find the glibc version it's looking for for standard universe. This should probably be fixed.

The CMakeLists.txt in question is the one in externals/bundles/glibc.

Patch the glibc external

The Debian 8 patches all worked except for disable-nscd.patch, which had an obvious fix.

Check the glibc external

The new configure script really wants the compiler to include flags. The solution to making CMake do this was simple but not immediately obvious (escape the space rather than quote part of the string).

Unlike the previous builds, the generated debian/include appears to be necessary. However, since it's constructed entirely out of symlinks into /usr/include (or empty files), I'm OK with keeping it around.

Build the Full Port

This was mostly just finding the GLIBC219 checks and adding GLIBC224 to them. One exception was wait4(); not sure if this is a glibc change or the compiler getting pickier, but apparently wait4()'s third argument really needs to be an int * rather than a void *. Updated the remap to match the new declaration.

Next up: testing.