[OE-core] small number of perl modules that can't be cross-compiled

Robert P. J. Day rpjday at crashcourse.ca
Fri Nov 18 12:46:28 UTC 2016


On Fri, 18 Nov 2016, André Draszik wrote:

> On Fri, 2016-11-18 at 06:41 -0500, Robert P. J. Day wrote:
> >   after OE recipfying over 100 perl modules from CPAN, i'm down to
> > less than a dozen that are going to take more work, and a small number
> > of those seem to be simply badly written in that they don't support
> > cross-compilation for my target choice of "qemuppc". example
> > boilerplate recipe i put together produces this:
> >
> > $ make libauthen-pam-perl
> > ... snip ...
> > Checking if your kit is complete...
> > Looks good
> > checking for gcc... powerpc-wrs-linux-gcc -m32 -mhard-float -mcpu=7400
> > --
> > sysroot=/home/rpjday/WRL/builds/msm/nov17/bitbake_build/tmp/sysroots/qemup
> > pc
> > checking for C compiler default output file name... a.out
> > checking whether the C compiler works... configure: error: cannot run
> > C compiled programs.
> > If you meant to cross compile, use `--host'.
> > See `config.log' for more details.
>
> It'd be useful to see config.log, ...

  see bottom.

> > Error in configuring the Authen::PAM module.
> > ... snip ...
> >
> >   so i'm assuming the source itself for Authen::PAM:
> >
> > https://metacpan.org/pod/Authen::PAM
> >
> > is somehow flawed in that it doesn't properly recognize
> > cross-compilation, would that be it?
>
> ... there is at least one issue in Authen-PAM-0.16/configure.ac, I would
> say, in that it tries to detect RTLD_GLOBAL support based on the host's
> perl. So it's likely there are more flaws.

  that's pretty much all i wanted to confirm at this point -- that it
wasn't something stupid i was doing; rather, the source itself is
flawed, and that's not the only example.

rday

DEBUG: Executing python function sysroot_cleansstate
DEBUG: Python function sysroot_cleansstate finished
DEBUG: Executing shell function do_configure
*** Module name IN: /home/rpjday/WRL/builds/msm/nov17/bitbake_build/tmp/sysroots/qemuppc/usr/lib/perl/5.22.0/Cwd.pm
*** p1: /home/rpjday/WRL/builds/msm/nov17/bitbake_build/tmp/sysroots/qemuppc/usr/lib/  p3: perl/5.22.0/  p5: Cwd.pm
*** Module name OUT: /home/rpjday/WRL/builds/msm/nov17/bitbake_build/tmp/sysroots/x86_64-linux/usr/lib/perl-native/perl/5.22.0/Cwd.pm
*** Module name IN: /home/rpjday/WRL/builds/msm/nov17/bitbake_build/tmp/sysroots/qemuppc/usr/lib/perl/5.22.0/Encode.pm
*** p1: /home/rpjday/WRL/builds/msm/nov17/bitbake_build/tmp/sysroots/qemuppc/usr/lib/  p3: perl/5.22.0/  p5: Encode.pm
*** Module name OUT: /home/rpjday/WRL/builds/msm/nov17/bitbake_build/tmp/sysroots/x86_64-linux/usr/lib/perl-native/perl/5.22.0/Encode.pm
*** Module name IN: /home/rpjday/WRL/builds/msm/nov17/bitbake_build/tmp/sysroots/qemuppc/usr/lib/perl/5.22.0/I18N/Langinfo.pm
*** p1: /home/rpjday/WRL/builds/msm/nov17/bitbake_build/tmp/sysroots/qemuppc/usr/lib/  p3: perl/5.22.0/  p5: I18N/Langinfo.pm
*** Module name OUT: /home/rpjday/WRL/builds/msm/nov17/bitbake_build/tmp/sysroots/x86_64-linux/usr/lib/perl-native/perl/5.22.0/I18N/Langinfo.pm
*** Module name IN: /home/rpjday/WRL/builds/msm/nov17/bitbake_build/tmp/sysroots/qemuppc/usr/lib/perl/5.22.0/B.pm
*** p1: /home/rpjday/WRL/builds/msm/nov17/bitbake_build/tmp/sysroots/qemuppc/usr/lib/  p3: perl/5.22.0/  p5: B.pm
*** Module name OUT: /home/rpjday/WRL/builds/msm/nov17/bitbake_build/tmp/sysroots/x86_64-linux/usr/lib/perl-native/perl/5.22.0/B.pm
*** Module name IN: /home/rpjday/WRL/builds/msm/nov17/bitbake_build/tmp/sysroots/qemuppc/usr/lib/perl/5.22.0/List/Util.pm
*** p1: /home/rpjday/WRL/builds/msm/nov17/bitbake_build/tmp/sysroots/qemuppc/usr/lib/  p3: perl/5.22.0/  p5: List/Util.pm
*** Module name OUT: /home/rpjday/WRL/builds/msm/nov17/bitbake_build/tmp/sysroots/x86_64-linux/usr/lib/perl-native/perl/5.22.0/List/Util.pm
Checking if your kit is complete...
Looks good
checking for gcc... powerpc-wrs-linux-gcc -m32 -mhard-float -mcpu=7400 --sysroot=/home/rpjday/WRL/builds/msm/nov17/bitbake_build/tmp/sysroots/qemuppc
checking for C compiler default output file name... a.out
checking whether the C compiler works... configure: error: cannot run C compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details.
Error in configuring the Authen::PAM module.
WARNING: /home/rpjday/WRL/builds/msm/nov17/bitbake_build/tmp/work/ppc7400-wrs-linux/libauthen-pam-perl/0.16-r0/temp/do_configure/run.do_configure.16119:1 exit 25 from
  perl Makefile.PL INSTALLDIRS=vendor
ERROR: Function failed: do_configure (log file is located at /home/rpjday/WRL/builds/msm/nov17/bitbake_build/tmp/work/ppc7400-wrs-linux/libauthen-pam-perl/0.16-r0/temp/do_configure/log.do_configure.16119)


More information about the Openembedded-core mailing list