perl: update cnf/config.{sub, guess} using autotools hook

perl may fail to build on newer host architectures such as aarch64 due
to its inability to guess the host architecture to build 'miniperl',
which is built during the process. An error message looks like this:

  Configuring build-time miniperl for unknown
  ERROR: No $target defined (?!)
  ERROR: configure --mode=buildmini failed

This happens because the config.sub and config.guess files from perl are
not modified and may become outdated.
These files are normally updated automatically by a Buildroot hook for
autotools packages, to avoid problems like these.
Although perl uses the config.sub and config.guess files, it is not a
strict autotools package, so it is not defined as an "autotools-package"
in Buildroot and so it doesn't inherit the hook.
This commit makes perl borrow the hook from the autotools infrastructure
so that it can build on newer build architectures.
This has been tested by building it on an aarch64 host machine.

Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
Acked-by: Francois Perrad <francois.perrad@gadz.org>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
Erico Nunes 2016-10-25 23:21:09 +02:00 committed by Thomas Petazzoni
parent 4bca88c839
commit 9687e7435b

View File

@ -33,6 +33,12 @@ define PERL_CROSS_EXTRACT
endef endef
PERL_POST_EXTRACT_HOOKS += PERL_CROSS_EXTRACT PERL_POST_EXTRACT_HOOKS += PERL_CROSS_EXTRACT
# Even though perl is not an autotools-package, it uses config.sub and
# config.guess. Up-to-date versions of these files may be needed to build perl
# on newer host architectures, so we borrow the hook which updates them from the
# autotools infrastructure.
PERL_POST_PATCH_HOOKS += UPDATE_CONFIG_HOOK
define PERL_CROSS_SET_POD define PERL_CROSS_SET_POD
$(SED) s/$(PERL_CROSS_OLD_POD)/$(PERL_CROSS_NEW_POD)/g $(@D)/Makefile $(SED) s/$(PERL_CROSS_OLD_POD)/$(PERL_CROSS_NEW_POD)/g $(@D)/Makefile
endef endef