document updated 6 months ago, on May 31, 2022
Things like perlbrew are nice — they easily install many different versions of Perl.
Unfortunately, if you try to install a version of Perl older than 5.6.0, you immediately get this build error:
"The Errno GCC 5 patch only goes back as far as v5.6. You will have to generate your own patch to go farther back."
It turns out that building very old Perls isn't quite as easy as it looks.
So, there are a couple sources of data for patching the official Perl releases, to allow them to be built using more modern tools:
- Devel::PPPort's 'buildperl.pl' script (last updated Sep 2019, first released Aug 2012)
- Devel::PatchPerl and friends (last updated Jan 2021, first released May 2010)
- the core module contains 44 different patching functions — _patch_b64(), _patchperl_version(), _patch_hints(), _patch_db(), _patch_doio(), _patch_sysv(), _patch_configure(), _patch_makedepend_lc(), ...
And there are a couple of tools that build a Perl release:
- building it manually — this is described in several different places — perlsource, perlhack, metaconfig, Cross/README.new
- there are also OS-specific build instructions at perlaix, perlamiga, perlandroid, perlbs2000, perlcygwin, perlfreebsd, perlhaiku, perlhpux, perlhurd, perlirix, perllinux, perlmacosx, perlopenbsd, perlos2, perlos390, perlos400, perlplan9, perlqnx, perlriscos, perlsolaris, perlsynology, perltru64, perlvms, perlvos, perlwin32
- There aren't any explicit patches with this, though the documentation does point you to Devel::PatchPerl sometimes
- Devel::PPPort's 'buildperl.pl' script (last updated Mar 2022, first released Aug 2004)
- it's a build script that contains its own patches
- tools that rely on Devel::PatchPerl:
- App::perlall (last updated Dec 2019, first released Dec 2011)
- perlbrew (last updated May 2022, first released Feb 2010)
- Perl::Build (last updated May 2022, first released Jan 2013)
- smokebrew (last updated Jun 2020, first released May 2010)
Getting back to the original question of the "Errno GCC 5 patch":