From the diary of AArch64 porter — autoconf

This post is part 1 of the "From the diary of AArch64 porter" series:

  1. From the diary of AArch64 porter — autoconf
  2. From the diary of AArch64 porter — rpm packaging
  3. From the diary of AArch64 porter — testsuites
  4. From the diary of AArch64 porter — POSIX.1 functionality
  5. From the diary of AArch64 porter — PAGE_SIZE
  6. From the diary of AArch64 porter — vfp precision
  7. From the diary of AArch64 porter — system calls
  8. From the diary of AArch64 porter — parallel builds
  9. From the diary of AArch64 porter — firefighting
  10. From the diary of AArch64 porter — drive-by coding
  11. From the diary of AArch64 porter — manylinux2014
  12. From the diary of AArch64 porter — handling big patches
  13. From the diary of AArch64 porter — Arm CPU features table

One day I will go to software conference with an axe or a knife and will turn a place into slaughterhouse…

During last few weeks most of my work was related to fixing build issues on AArch64 platform. That’s what I do since September 2012. Just operating system changed from OpenEmbedded to Fedora. And there are days when I want to kill.

Kill who? Software developers. Some for shipping few years old copies of config.{guess,sub} files. Others for inventing crazy ways of abusing autoconf usage. My latest find was fakeroot.spec which has this precious jewel:

for type in sysv tcp; do
mkdir obj-$type
cd obj-$type
cat >> configure << 'EOF'
#! /bin/sh
exec ../configure "$@"
EOF
chmod +x configure
%configure
 --disable-dependency-tracking
 --disable-static
 --libdir=%{_libdir}/libfakeroot
 --with-ipc=$type
 --program-suffix=-$type
make
cd ..
done

By default “%configure” macro updates config.{guess,sub} files. But it does it in place. So no luck here.

There are countless packages like that. Code for 3rd-party libraries bundled with code may have them as well.

So if your package uses config.{guess,sub} files then please take a look and do an update of them with new release.

aarch64 development fedora life openembedded