7 Commits

Author SHA1 Message Date
Gary Thomas
8b255bd491 perl: Backport fix for bug #123591
This patch fixes a crash in perl when using formatted strings @...

(From OE-Core rev: 6ff3776bb7f1a7ba2fc641bfd9b8546c4bb02466)

(From OE-Core rev: 598d8f869a145ced01d059b30f8307df714d1938)

Signed-off-by: Gary Thomas <gary@mlbassoc.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-02-11 17:40:07 +00:00
Jackie Huang
2d40d3228d perl: set the perl libraries search path
The default value for this is ../../lib which ends up with
something like:
| ./sysroots/x86_64-linux/usr/bin/perl-native/perl5.20.0.real \
| "-I../../lib" "-I../../lib" "-MExtUtils::Command::MM" -e pod2man \
| "--" --section=0 --perm_rw=644 perldoc.pod blib/man1/perldoc.1

in this case, nativeperl will find libraries from the target build,
When using an x86-64 host to target Haswell, you can end up with
../../lib including precompiled modules which use Haswell
instructions, it fails with:
| Running pm_to_blib for dist/if directly
| Skip ../../lib/if.pm (unchanged)
| Makefile:457: recipe for target 'manifypods' failed
| make[1]: *** [manifypods] Illegal instruction

So set it to use the -native ones instead of those from the target
build.

(From OE-Core rev: 82ac2a29126dc38d23c278b82d129d73b17000b7)

(From OE-Core rev: 6ba03a72b1bed2f6367d2a1486ef1436bdd44a5b)

Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-12-31 10:18:38 +00:00
Richard Purdie
a0d91bbdef perl: Enable rebuilds to account for configuration changes
If configure/compile was rerun for perl, changes such as libdir changes
were not being picked up. To fix this we we add "make clean"
functionality, if the makefile is present.

We also in this case need to delete the .so file, else some perl modules
try and load the target arch libraries leading to build failures. I'd
love it if there were a better way to do this and am open to better
proposals but this was the best I could find, not being a perl expert.

(From OE-Core rev: 3b8adee2756085df47b90357eed4c20ee98c7cd1)

(From OE-Core rev: 326590db7067660af6c896a130c793cd1b55f650)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-12-31 10:18:37 +00:00
Aníbal Limón
bb6990e057 perl: Fix bug when installs SDK in custom directory
Add site_perl and vendor_perl directories in create_wrapper
this fix bug when searching for libraries in these directories.

[YOCTO #6890]

(From OE-Core rev: ea2584213e2e852157ec2490c84cc6c03feb4b40)

(From OE-Core rev: 857661e7d55ac73c7c360f49a0103f2a5cd8a310)

Signed-off-by: Aníbal Limón <anibal.limon@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-12-31 10:18:36 +00:00
Richard Purdie
03813f4870 perl: Improve sysroot regexp
When rebuilding libxml-parser-perl with a change to libdir, you see strange
build failures due to MakerMake looking in strange library paths. The error
is obtuse and hard to track down. I'm therefore proposing we change the regexp
once and for all to resolve the issue. Currently it only does a replacement
once, this change ensures it always gets set the correct value upon rebuilds.

(From OE-Core rev: 2c1c70eef4df66a0208f60ee51bd36d8f794144e)

Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-09-30 21:36:14 +01:00
Hongxu Jia
30ef7b2c05 perl: fix rebuid failed while ${CC} changed
Reproduce steps:

1) bitbake perl
2) vim local.conf to tweak CC, just add redundant option.
...
CC_append = " ${HOST_CC_ARCH}"
...

3) bitbake perl
...
./miniperl -Ilib make_ext.pl lib/auto/Time/HiRes/HiRes.so MAKE=make LIBPERL_A=libperl.so LINKTYPE=dynamic
    Making Time::HiRes (all)my $filename=
Deleting non-Cross makefile
Running Makefile.PL in cpan/Time-HiRes
Makefile.PL: The "xdefine" exists, skipping the configure step.
("tmp/sysroots/x86_64-linux/usr/bin/perl-native/perl5.20.0.real Makefile.PL --configure" to force the configure step)
Warning: No Makefile!
make[2]: Entering directory `tmp/work/armv5te-poky-linux-gnueabi/perl/5.20.0-r1/perl-5.20.0/cpan/Time-HiRes'
make[2]: *** No rule to make target `config'.  Stop.
...

While ${CC} changed, the existance of 'xdefine' caused makefile
regeneration failed.

[YOCTO #6569]

(From OE-Core rev: fa43d4f268bc4a6fafcf14029049f2997bc72d6c)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Saul Wold <sgw@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-07-25 15:34:00 +01:00
Hongxu Jia
e73deac6dc perl, perl-native, perl-ptest: upgrade from 5.14.3 to 5.20.0
Changed:

- The Copying has no change, except the company address.

- pick patches from debian
  http://ftp.de.debian.org/debian/pool/main/p/perl/perl_5.20.0-1.debian.tar.xz
  - Not used by oe:
    deprecate-with-apt.diff
    patchlevel.diff
    fakeroot.diff

- Create/Update perl-rdepends_${PV}.inc by the hardcode script;

- Update config.sh by:
  1) Copy the Perl 5.20.0 source code onto your TARGET machine
    linux qemuarm 3.14.5-yocto-standard from OE-Core rev:
    f506d0660c9949485268a92724ac770b5457b0ca
  2) Execute sh Configure as normal and configure as required,
     do not "make";
  3) Compare with the old config.sh files, and update;

- perl-ptest.inc
  1) Copy the souce code to ptest since almost 112 test cases
     failed with the reason that no souce code found;
  2) Add two patches to fix test case issue;

- perl-native
  Reference perl (5.20.0-1) in debian to update perl shared library headers
  https://packages.debian.org/experimental/i386/perl/filelist

Obsolete:

- 09_fix_installperl.patch
  The dead code was removed from installperl
  http://perl5.git.perl.org/perl.git/commit/236818e0b9d9fe874831086b4d0b94dc6f245dfd

- perl-build-in-t-dir.patch
  The upstream has fix it. The issue description:
  Perl cannot cross build in a path containing a directory that has the
  name of "t".  As an example, you can make the perl build fail with
  "mkdir -p /tmp/build/t", go to the directory, unpack the sources,
  configure and cross build.

- 0001-Fix-misparsing-of-maketext-strings.patch
  as they are part of the upstream code now:
  http://perl5.git.perl.org/perl.git/commit/1735f6f53ca19f99c6e9e39496c486af323ba6a8

- 0001-Prevent-premature-hsplit-calls-and-only-trigger-REHA.patch
  the hash function changed:
  http://perl5.git.perl.org/perl.git/commit/7dc8663964c66a698d31bbdc8e8abed69bddeec3

(From OE-Core rev: c7ac82415efc42ff7a93c6df163f88f2dde00d26)

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2014-07-08 11:20:12 +01:00