perl: perlmod.mk: use flock when hostpkg/perl used
authorEneas U de Queiroz <cotequeiroz@gmail.com>
Mon, 16 Aug 2021 14:07:35 +0000 (11:07 -0300)
committerRosen Penev <rosenp@gmail.com>
Fri, 8 Oct 2021 16:47:46 +0000 (09:47 -0700)
commitf41827d2770592540c6b27e097669920f02b4e1f
treef8d8b37756e5f7ae7ac7b48ad49bdeaa67bfce28
parent58181f8fe6f88dc1af91d78af6657a13062e8bcb
perl: perlmod.mk: use flock when hostpkg/perl used

Avoid parallel relinking and usage of the host perl binary by wrapping
its usage around flock calls.

Sometimes, two packages will try to relink the static host perl binary
at the same time.  Neither of them will have the other's module linked
in, and one of them will unavoidably clobber the other one's binary.

This will lead to errors when a package will not be able to find a
module that was supposed to be installed.

To fix that, an exclusive flock is used when relinking, with a 900
seconds timeout to avoid locking up the build process forever.

This is not enough because the binary may be concurrently used to build
another module package; perl is used in Configure, Compile, and Install
procedures.  If timing is right, a package will fail with a "permission
denied" error.

So a shared flock call is added in Configure, Compile, and Install
definitions for host and target, with a shorter, 300 seconds timeout.

Signed-off-by: Eneas U de Queiroz <cotequeiroz@gmail.com>
(cherry picked from commit 1e18c4324fd1fb43764057fb8f4e9c1ea4a17553)
lang/perl/perlmod.mk