[Buildroot] Some Perl modules fail to cross-compile
Vicente Olivert Riera
Vincent.Riera at imgtec.com
Thu Aug 14 09:22:42 UTC 2014
On 08/13/2014 05:50 PM, François Perrad wrote:
> 2014-08-13 14:00 GMT+02:00 Vicente Olivert Riera <Vincent.Riera at imgtec.com>:
>> The affected modules are:
>> The build system of these modules have a "use Config;" in the Makefile.PL.
>> Given that we are cross-compiling, the Perl program used to run that
>> Makefile.PL is the host's Perl program (because we can't run MIPS Perl in
>> our x86_64 machine, for instance), so the %Config read only variable
>> provided by the Config module contains all the information that the
>> Configure program had during the Perl build time (in our case, the host's
>> Perl). Then, the build system fills the OPTIMIZE variable (only if it's
>> empty) with some flags taken from that %Config variable, so some things like
>> "-mtune=generic" or "-m64" can end into the OPTIMIZE variable and cause a
>> compilation failure for target architectures which don't support those
>> I have reported this bug upstream. Please read the comments:
>> My proposal to fix these three packages is to append the OPTIMIZE variable
>> to the configure options and set it to -mtune=$(BR2_GCC_TARGET_ARCH) to
>> avoid the OPTIMIZE variable get filled with incompatible flags.
>> I have the patches ready and they work, so, if you think this is a valid
>> solution, just tell it to me and I will send the patches ASAP.
> The host perl must load the host Config.pm.
> So, in order to cross compiling, we must overload all variables in the
> command line.
> Currently, only CCFLAGS/ccflags is set in package/pkg-perl.mk, in the same way,
> we could also set OPTIMIZE with " ".
I don't mind if we fix this by patching the .mk files of the three
affected packages, or by patching the BR perl-package build system.
In case if we adopt the second solution (yours), don't you think it's
better to set the OPTIMIZE variable to "-mtune=$(BR2_GCC_TARGET_ARCH)"
instead of just " "?
>> buildroot mailing list
>> buildroot at busybox.net
More information about the buildroot