I used the header files below to make old HP-UX 11.11 (a.k.a. 11i v1) more compatible with modern software requiring newer POSIX standards and some GNU extensions. They can be used to bootstrap modern GCC starting with HP aCC and some ancient GCC versions.
The files in this gist are to be placed in /usr/local/include. The
files sys -- stat.h and sys -- sendfile.h should be placed in
/usr/local/include/sys as stat.h and sendfile.h, respectively.
I used them to compile the following software (in alphabetic order, not in the correct dependency order):
- bash-5.2.0
- binutils-2.40
- coreutils-9.2
- curl-8.1.1
- gawk-5.2.2
- gcc-4.0.4
- gcc-4.9.4
- gcc-10.4.0
- gmp-5.0.2
- isl-0.26
- libiconv-1.17
- libtool-2.4.6
- m4-1.4.19
- make-4.4.1
- mpc-1.3.1
- mpfr-4.2.0
- ncurses-6.4
- netcat-1.10
- openssl-3.1.0
- pkg-config-0.29.2
- readline-8.2
- tar-1.34
- wget-1.21.4
- xz-5.2.4
(I might've forgotten something)
The headers were evolving through the process, so their current versions below might not necessarily be valid for compiling the listed versions. I do not remember all the required steps and many of those packages required hacks and patches, which are not provided here. I vaguely recall xz giving me grief and libreadline and bash needing some moderately-complex patching.
The stdlib.h header was commented-out for some reason, so maybe it
doesn't actually work or it breaks some packages. Good luck figuring
that out. No warranty expressed or implied etc. ofc. :-)