[Buildroot] Some Perl modules fail to cross-compile
Vicente Olivert Riera
Vincent.Riera at imgtec.com
Wed Aug 13 12:00:27 UTC 2014
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 flags.
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.
More information about the buildroot