diff mbox

[1/1] perl: update config.{sub, guess} using autotools hook

Message ID 1477430469-17537-1-git-send-email-nunes.erico@gmail.com
State Accepted
Headers show

Commit Message

Erico Nunes Oct. 25, 2016, 9:21 p.m. UTC
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>
---
 package/perl/perl.mk | 6 ++++++
 1 file changed, 6 insertions(+)

Comments

Thomas Petazzoni Oct. 25, 2016, 9:36 p.m. UTC | #1
Hello,

On Tue, 25 Oct 2016 23:21:09 +0200, Erico Nunes wrote:
> 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>

Please use the get-developers script when sending patches, so that the
appropriate developers are CC'ed. In this case, François should have
been CC'ed.

François, can you have a look at Erico's patch? See
https://patchwork.ozlabs.org/patch/686713/.

Thanks,

Thomas
Francois Perrad Oct. 26, 2016, 8 a.m. UTC | #2
2016-10-25 23:36 GMT+02:00 Thomas Petazzoni
<thomas.petazzoni@free-electrons.com>:
> Hello,
>
> On Tue, 25 Oct 2016 23:21:09 +0200, Erico Nunes wrote:
>> 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>
>
> Please use the get-developers script when sending patches, so that the
> appropriate developers are CC'ed. In this case, François should have
> been CC'ed.
>
> François, can you have a look at Erico's patch? See
> https://patchwork.ozlabs.org/patch/686713/.
>

This hook updates `cnf/config.sub` and `cnf/config.guess`, 2 files
which come from perl-cross (not from perl).
So, the title of the patch could be improved by :
    [1/1] perl: update cnf/config.{sub, guess} using autotools hook

Acked-by: Francois Perrad <francois.perrad@gadz.org>

François

> Thanks,
>
> Thomas
> --
> Thomas Petazzoni, CTO, Free Electrons
> Embedded Linux and Kernel engineering
> http://free-electrons.com
> _______________________________________________
> buildroot mailing list
> buildroot@busybox.net
> http://lists.busybox.net/mailman/listinfo/buildroot
Thomas Petazzoni Oct. 26, 2016, 8:34 p.m. UTC | #3
Hello,

On Tue, 25 Oct 2016 23:21:09 +0200, Erico Nunes wrote:
> 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>
> ---
>  package/perl/perl.mk | 6 ++++++
>  1 file changed, 6 insertions(+)

Applied to master after fixing the commit title, as suggested by
François.

Thanks!

Thomas
diff mbox

Patch

diff --git a/package/perl/perl.mk b/package/perl/perl.mk
index 29b4455..a8768b2 100644
--- a/package/perl/perl.mk
+++ b/package/perl/perl.mk
@@ -33,6 +33,12 @@  define PERL_CROSS_EXTRACT
 endef
 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
 	$(SED) s/$(PERL_CROSS_OLD_POD)/$(PERL_CROSS_NEW_POD)/g $(@D)/Makefile
 endef