Make sure Linux-PAM doesn't attempt to include logind support. This
avoids a build failure in case the host system has systemd's
development headers installed.
Notice:
- installers use OTP 27.3.4.1, the latest available right now
- containers use OTP 27.3.4, because container for 27.3.4.1 was not published,
see https://hub.docker.com/_/erlang
Building GNU Termcap and Linux-PAM using the updated toolchain both
failed, since crosstool-NG now uses GCC 14.x, which turns the
"implicit-function-declaration" warning into an error. See:
https://gcc.gnu.org/gcc-14/porting_to.html#warnings-as-errors
Therefore, specify "CFLAGS=-Wno-error=implicit-function-declaration" to
turn this error back into a warning.
Stick to Linux-PAM version 1.6.1 for the moment. Newer Linux-PAM
versions are built using Meson instead of Autotools, so we need to add
that to our toolchain before being able to update Linux-PAM.
Unfortunately, newer versions of linux-pam throw compilation problems:
linux-pam 1.5.3:
tty_conv.c:9:10: fatal error: termio.h: No such file or directory
linux-pam 1.6.0:
pam_namespace.c:649:41: error: 'SIZE_MAX' undeclared (first use in this function)
With setup-beam v1.17.2, make-binaries failed in the Container action with:
* ERROR: No usable Erlang/OTP system for the build machine found! Cannot
* cross compile without such a system.
*
* Either build a bootstrap system for the build machine, or provide
* an Erlang/OTP-26 system in the $PATH, and try again. For more
* information on cross compiling Erlang/OTP-26, see the
* $ERL_TOP/xcomp/README file.
The problematic commit is:
cf854bf149
more concretely this change:
- core.exportVariable(installDirForVarName, cachePath)
+ core.exportVariable(installDirForVarName, catchPathBin)
Up until setup-beam@v1.17.1, the INSTALL_DIR_FOR_OTP was something like
/opt/hostedtoolcache/otp/ubuntu-22.04/OTP-26.1.1/x64
but starting in v1.17.2, the path contains /bin, for example:
/opt/hostedtoolcache/otp/ubuntu-22.04/OTP-26.1.1/x64/bin
Omit the directory that contains cross compilation tools without
"$target-" prefix from the PATH. Having it in the path might lead to
problems when native tools are needed during cross compilation. For
actual cross compilation, the prefixed tools should always be used
anyway.