From: Darren Hart <dvhart@linux.intel.com>
To: "Flanagan, Elizabeth" <elizabeth.flanagan@intel.com>
Cc: Patches and discussions about the oe-core layer
<openembedded-core@lists.openembedded.org>
Subject: Re: [PATCH v2] perl: Allow perl to cross build and native build in a directory named "t"
Date: Tue, 05 Jun 2012 13:51:58 -0700 [thread overview]
Message-ID: <4FCE716E.7010309@linux.intel.com> (raw)
In-Reply-To: <CAPhnLPBktoKn7UJKahYpWwf56CzRDZPjGdoh1nH1t5z6F5DwGw@mail.gmail.com>
On 06/05/2012 01:25 PM, Flanagan, Elizabeth wrote:
> On Mon, Jun 4, 2012 at 11:47 AM, Jason Wessel
> <jason.wessel@windriver.com> wrote:
>> If any directory in leading up to your tmp directory has the name "t"
>> perl will fail to build with a very cryptic error shown below:
>
>
> Jason,
>
> I'm currently testing this patch and it seems to be causing failures
> during do_compile for poky-tiny
Which image are you trying to build with DISTRO="poky-tiny" ?
>
> http://autobuilder.yoctoproject.org:8010/builders/nightly-tiny/builds/71/steps/shell_35/logs/stdio
>
> | /bin/ln -s perldelta.pod pod/perl5142delta.pod
> | ./miniperl -Ilib autodoc.pl
> | make[1]: ./miniperl: Command not found
> | make[1]: *** [pod/perlintern.pod] Error 127
> | make[1]: Leaving directory
> `/srv/home/pokybuild/yocto-autobuilder/yocto-slave/nightly-tiny/build/build/tmp/work/i586-poky-linux/perl-5.14.2-r7/perl-5.14.2'
> | make: *** [perl] Error 2
> | ERROR: oe_runmake failed
>
> -b
>
>>
>> pod/buildtoc: no pods at pod/buildtoc line 305.
>> make[1]: *** [pod/perltoc.pod] Error 255
>>
>> This is a result of the perl file checking making an assumption
>> that it is only looking at files and directories with in the perl
>> source directory. This assumption fails with the way bitbake
>> sets up perl to properly cross compile.
>>
>> Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
>> ---
>> .../perl/perl-5.14.2/perl-build-in-t-dir.patch | 42 ++++++++++++++++++++
>> meta/recipes-devtools/perl/perl-native_5.14.2.bb | 5 ++-
>> meta/recipes-devtools/perl/perl_5.14.2.bb | 3 +-
>> 3 files changed, 47 insertions(+), 3 deletions(-)
>> create mode 100644 meta/recipes-devtools/perl/perl-5.14.2/perl-build-in-t-dir.patch
>>
>> diff --git a/meta/recipes-devtools/perl/perl-5.14.2/perl-build-in-t-dir.patch b/meta/recipes-devtools/perl/perl-5.14.2/perl-build-in-t-dir.patch
>> new file mode 100644
>> index 0000000..16064ed
>> --- /dev/null
>> +++ b/meta/recipes-devtools/perl/perl-5.14.2/perl-build-in-t-dir.patch
>> @@ -0,0 +1,42 @@
>> +Upstream-Status:Pending
>> +
>> +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.
>> +
>> +You get an error like the following:
>> + pod/buildtoc: no pods at pod/buildtoc line 305.
>> + make[1]: *** [pod/perltoc.pod] Error 255
>> +
>> +The fix is to strip off the top directory that you are building in and
>> +then execute all the same logic as before against the path relative to
>> +the build directory.
>> +
>> +Signed-off-by: Jason Wessel <jason.wessel@windriver.com>
>> +---
>> + pod/buildtoc | 4 +++-
>> + 1 file changed, 3 insertions(+), 1 deletion(-)
>> +
>> +--- a/pod/buildtoc
>> ++++ b/pod/buildtoc
>> +@@ -274,8 +274,10 @@ if ($Build{toc}) {
>> + find \&getpods => abs_from_top('lib/');
>> +
>> + sub getpods {
>> ++ my $Top = $FindBin::Bin;
>> + if (/\.p(od|m)$/) {
>> + my $file = $File::Find::name;
>> ++ $file =~ s!^$Top!!;
>> + return if $file =~ qr!/lib/Pod/Functions.pm\z!; # Used only by pod itself
>> + return if $file =~ m!(?:^|/)t/!;
>> + return if $file =~ m!lib/Attribute/Handlers/demo/!;
>> +@@ -283,7 +285,7 @@ if ($Build{toc}) {
>> + return if $file =~ m!lib/Math/BigInt/t/!;
>> + return if $file =~ m!/Devel/PPPort/[Hh]arness|lib/Devel/Harness!i;
>> + return if $file =~ m!XS/(?:APItest|Typemap)!;
>> +- my $pod = $file;
>> ++ my $pod = $file = $File::Find::name;
>> + return if $pod =~ s/pm$/pod/ && -e $pod;
>> + unless (open my $f, '<', $_) {
>> + warn "$0: bogus <$file>: $!";
>> diff --git a/meta/recipes-devtools/perl/perl-native_5.14.2.bb b/meta/recipes-devtools/perl/perl-native_5.14.2.bb
>> index c904c37..df8f058 100644
>> --- a/meta/recipes-devtools/perl/perl-native_5.14.2.bb
>> +++ b/meta/recipes-devtools/perl/perl-native_5.14.2.bb
>> @@ -4,7 +4,7 @@ SECTION = "libs"
>> LICENSE = "Artistic-1.0 | GPL-1.0"
>> LIC_FILES_CHKSUM = "file://Copying;md5=2b4c6ffbcfcbdee469f02565f253d81a \
>> file://Artistic;md5=f921793d03cc6d63ec4b15e9be8fd3f8"
>> -PR = "r0"
>> +PR = "r1"
>>
>> LIC_FILES_CHKSUM = "file://Copying;md5=2b4c6ffbcfcbdee469f02565f253d81a \
>> file://Artistic;md5=f921793d03cc6d63ec4b15e9be8fd3f8"
>> @@ -14,7 +14,8 @@ SRC_URI = "http://www.cpan.org/src/5.0/perl-${PV}.tar.gz \
>> file://perl-configpm-switch.patch \
>> file://native-nopacklist.patch \
>> file://native-perlinc.patch \
>> - file://MM_Unix.pm.patch"
>> + file://MM_Unix.pm.patch \
>> + file://perl-build-in-t-dir.patch"
>>
>> SRC_URI[md5sum] = "3306fbaf976dcebdcd49b2ac0be00eb9"
>> SRC_URI[sha256sum] = "6488359573bd7d41761bf935f66f827dc220fb3df961ef9b775d51fbd66548d3"
>> diff --git a/meta/recipes-devtools/perl/perl_5.14.2.bb b/meta/recipes-devtools/perl/perl_5.14.2.bb
>> index 809fc72..2452a44 100644
>> --- a/meta/recipes-devtools/perl/perl_5.14.2.bb
>> +++ b/meta/recipes-devtools/perl/perl_5.14.2.bb
>> @@ -7,7 +7,7 @@ LIC_FILES_CHKSUM = "file://Copying;md5=2b4c6ffbcfcbdee469f02565f253d81a \
>> # We need gnugrep (for -I)
>> DEPENDS = "virtual/db grep-native"
>> DEPENDS += "gdbm zlib"
>> -PR = "r6"
>> +PR = "r7"
>>
>> # 5.10.1 has Module::Build built-in
>> PROVIDES += "libmodule-build-perl"
>> @@ -65,6 +65,7 @@ SRC_URI = "http://www.cpan.org/src/5.0/perl-${PV}.tar.gz \
>> file://perl-enable-gdbm.patch \
>> file://cross-generate_uudmap.patch \
>> file://fix_bad_rpath.patch \
>> + file://perl-build-in-t-dir.patch \
>> \
>> file://config.sh \
>> file://config.sh-32 \
>> --
>> 1.7.10
>>
>>
>> _______________________________________________
>> Openembedded-core mailing list
>> Openembedded-core@lists.openembedded.org
>> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-core
>
>
>
--
Darren Hart
Intel Open Source Technology Center
Yocto Project - Linux Kernel
next prev parent reply other threads:[~2012-06-05 21:03 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-06-04 18:47 [PATCH v2] perl: Allow perl to cross build and native build in a directory named "t" Jason Wessel
2012-06-05 20:25 ` Flanagan, Elizabeth
2012-06-05 20:51 ` Darren Hart [this message]
2012-06-05 20:58 ` Jason Wessel
2012-06-05 21:03 ` Darren Hart
2012-06-05 21:13 ` Flanagan, Elizabeth
2012-06-05 22:05 ` Richard Purdie
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4FCE716E.7010309@linux.intel.com \
--to=dvhart@linux.intel.com \
--cc=elizabeth.flanagan@intel.com \
--cc=openembedded-core@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.