All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/5] perl: fix PERLCONFIGTARGET for multimach builds, move cpan vars
@ 2010-12-25 10:48 Roman I Khimov
  2010-12-25 10:48 ` [PATCH 2/5] perl 5.10.1: fix Time::HiRes cross-compilation Roman I Khimov
  2010-12-25 17:23 ` [PATCH 1/5] perl: fix PERLCONFIGTARGET for multimach builds, move cpan vars Khem Raj
  0 siblings, 2 replies; 17+ messages in thread
From: Roman I Khimov @ 2010-12-25 10:48 UTC (permalink / raw)
  To: openembedded-devel

Multimachine builds race staging Config_heavy-target.pl to native directory.
Solve that by changing PERLCONFIGTARGET variable semantics, now it will
contain $TARGET_SYS. Change perl patch and stage functions accordingly.

Also, move PERLCONFIGTARGET and other target-specific variable settings from
cpan to cpan-base as I think they're also useful for cpan_build and anywhere
else cpan-base is needed.

Signed-off-by: Roman I Khimov <khimov@altell.ru>
---
 classes/cpan-base.bbclass                          |   14 ++++++++++++--
 classes/cpan.bbclass                               |   10 ----------
 classes/cpan_build.bbclass                         |    4 ++--
 .../perl/perl-5.10.1/perl-configpm-switch.patch    |    6 +++---
 recipes/perl/perl-5.8.8/perl-configpm-switch.patch |    6 +++---
 recipes/perl/perl-native_5.10.1.bb                 |    2 +-
 recipes/perl/perl-native_5.8.8.bb                  |    2 +-
 recipes/perl/perl_5.10.1.bb                        |    4 ++--
 recipes/perl/perl_5.8.8.bb                         |    2 +-
 9 files changed, 25 insertions(+), 25 deletions(-)

diff --git a/classes/cpan-base.bbclass b/classes/cpan-base.bbclass
index a04f61c..53621ed 100644
--- a/classes/cpan-base.bbclass
+++ b/classes/cpan-base.bbclass
@@ -32,11 +32,21 @@ def perl_get_libdirs(d):
 
 def is_target(d):
     if not bb.data.inherits_class('native', d):
-        return "yes"
-    return "no"
+        return bb.data.expand('${TARGET_SYS}', d)
+    return ""
 
 PERLLIBDIRS = "${@perl_get_libdirs(d)}"
 
 FILES_${PN}-dbg += "${PERLLIBDIRS}/auto/*/.debug \
                     ${PERLLIBDIRS}/auto/*/*/.debug \
                     ${PERLLIBDIRS}/auto/*/*/*/.debug"
+
+# Env var which tells perl if it should use host ('') or target ('$TARGET_SYS') settings
+export PERLCONFIGTARGET = "${@is_target(d)}"
+
+EXTRA_CPANFLAGS ?= ""
+
+# Env var which tells perl where the perl include files are
+export PERL_INC = "${STAGING_LIBDIR}/perl/${@get_perl_version(d)}/CORE"
+export PERL_LIB = "${STAGING_DATADIR}/perl/${@get_perl_version(d)}"
+export PERL_ARCHLIB = "${STAGING_LIBDIR}/perl/${@get_perl_version(d)}"
\ No newline at end of file
diff --git a/classes/cpan.bbclass b/classes/cpan.bbclass
index 24e0c6e..b81ae9a 100644
--- a/classes/cpan.bbclass
+++ b/classes/cpan.bbclass
@@ -3,16 +3,6 @@
 #
 inherit cpan-base
 
-EXTRA_CPANFLAGS ?= ""
-
-# Env var which tells perl if it should use host (no) or target (yes) settings
-export PERLCONFIGTARGET = "${@is_target(d)}"
-
-# Env var which tells perl where the perl include files are
-export PERL_INC = "${STAGING_LIBDIR}/perl/${@get_perl_version(d)}/CORE"
-export PERL_LIB = "${STAGING_DATADIR}/perl/${@get_perl_version(d)}"
-export PERL_ARCHLIB = "${STAGING_LIBDIR}/perl/${@get_perl_version(d)}"
-
 NATIVE_INSTALL_WORKS = "1"
 
 cpan_do_configure () {
diff --git a/classes/cpan_build.bbclass b/classes/cpan_build.bbclass
index d1bbc4f..3f52cc2 100644
--- a/classes/cpan_build.bbclass
+++ b/classes/cpan_build.bbclass
@@ -22,7 +22,7 @@ def cpan_build_deps(d):
 DEPENDS_prepend = "${@cpan_build_deps(d)}"
 
 cpan_build_do_configure () {
-	if [ ${@is_target(d)} = "yes" ]; then
+	if [ ${@is_target(d)} != "" ]; then
 		# build for target
 		. ${STAGING_LIBDIR}/perl/config.sh
 		perl Build.PL --installdirs vendor \
@@ -44,7 +44,7 @@ cpan_build_do_compile () {
 }
 
 cpan_build_do_install () {
-	if [ ${@is_target(d)} = "yes" ]; then
+	if [ ${@is_target(d)} != "" ]; then
 		perl Build install
 	else
 		perl Build install destdir="${WORKDIR}/image"
diff --git a/recipes/perl/perl-5.10.1/perl-configpm-switch.patch b/recipes/perl/perl-5.10.1/perl-configpm-switch.patch
index 1aacd35..8becb8e 100644
--- a/recipes/perl/perl-5.10.1/perl-configpm-switch.patch
+++ b/recipes/perl/perl-5.10.1/perl-configpm-switch.patch
@@ -1,6 +1,6 @@
 This patch is used for perl-native only. It enables the switching of
 configuration files between Config_heavy.pl and
-Config_heavy-target.pl by setting the environment variables
+Config_heavy-$TARGET_SYS.pl by setting the environment variables
 PERLCONFIGTARGET - the later containing settings for the target while
 the former contains those for the host. This will allow cpan.bbclass
 to use the settings appropriate for the native and/or target builds
@@ -24,9 +24,9 @@ values would be valid for the host only.
  sub AUTOLOAD {
 -    require 'Config_heavy.pl';
 +    my $cfgfile = 'Config_heavy.pl';
-+    if (defined $ENV{PERLCONFIGTARGET} and $ENV{PERLCONFIGTARGET} eq "yes")
++    if (defined $ENV{PERLCONFIGTARGET} and $ENV{PERLCONFIGTARGET} ne "")
 +    {
-+        $cfgfile = 'Config_heavy-target.pl';
++        $cfgfile = "Config_heavy-$ENV{PERLCONFIGTARGET}.pl";
 +    }
 +    require $cfgfile;
      goto \&launcher unless $Config::AUTOLOAD =~ /launcher$/;
diff --git a/recipes/perl/perl-5.8.8/perl-configpm-switch.patch b/recipes/perl/perl-5.8.8/perl-configpm-switch.patch
index 1aacd35..8becb8e 100644
--- a/recipes/perl/perl-5.8.8/perl-configpm-switch.patch
+++ b/recipes/perl/perl-5.8.8/perl-configpm-switch.patch
@@ -1,6 +1,6 @@
 This patch is used for perl-native only. It enables the switching of
 configuration files between Config_heavy.pl and
-Config_heavy-target.pl by setting the environment variables
+Config_heavy-$TARGET_SYS.pl by setting the environment variables
 PERLCONFIGTARGET - the later containing settings for the target while
 the former contains those for the host. This will allow cpan.bbclass
 to use the settings appropriate for the native and/or target builds
@@ -24,9 +24,9 @@ values would be valid for the host only.
  sub AUTOLOAD {
 -    require 'Config_heavy.pl';
 +    my $cfgfile = 'Config_heavy.pl';
-+    if (defined $ENV{PERLCONFIGTARGET} and $ENV{PERLCONFIGTARGET} eq "yes")
++    if (defined $ENV{PERLCONFIGTARGET} and $ENV{PERLCONFIGTARGET} ne "")
 +    {
-+        $cfgfile = 'Config_heavy-target.pl';
++        $cfgfile = "Config_heavy-$ENV{PERLCONFIGTARGET}.pl";
 +    }
 +    require $cfgfile;
      goto \&launcher unless $Config::AUTOLOAD =~ /launcher$/;
diff --git a/recipes/perl/perl-native_5.10.1.bb b/recipes/perl/perl-native_5.10.1.bb
index 61d57f4..8b275a2 100644
--- a/recipes/perl/perl-native_5.10.1.bb
+++ b/recipes/perl/perl-native_5.10.1.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "http://www.perl.org/"
 SECTION = "libs"
 LICENSE = "Artistic|GPLv1+"
 DEPENDS = "virtual/db-native gdbm-native"
-PR = "r6"
+PR = "r7"
 NATIVE_INSTALL_WORKS = "1"
 
 # Not tested enough
diff --git a/recipes/perl/perl-native_5.8.8.bb b/recipes/perl/perl-native_5.8.8.bb
index dbff4c5..a7f85a3 100644
--- a/recipes/perl/perl-native_5.8.8.bb
+++ b/recipes/perl/perl-native_5.8.8.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "http://www.perl.org/"
 SECTION = "libs"
 LICENSE = "Artistic|GPLv1+"
 DEPENDS = "virtual/db-native gdbm-native"
-PR = "r21"
+PR = "r22"
 NATIVE_INSTALL_WORKS = "1"
 
 FILESDIR = "${@os.path.dirname(bb.data.getVar('FILE',d,1))}/perl-${PV}"
diff --git a/recipes/perl/perl_5.10.1.bb b/recipes/perl/perl_5.10.1.bb
index 91434e2..387755e 100644
--- a/recipes/perl/perl_5.10.1.bb
+++ b/recipes/perl/perl_5.10.1.bb
@@ -5,7 +5,7 @@ LICENSE = "Artistic|GPLv1+"
 PRIORITY = "optional"
 # We need gnugrep (for -I)
 DEPENDS = "virtual/db perl-native grep-native"
-PR = "r14"
+PR = "r15"
 
 # 5.10.1 has Module::Build built-in
 PROVIDES += "libmodule-build-perl"
@@ -211,7 +211,7 @@ do_stage() {
         # target config, used by cpan.bbclass to extract version information
         install config.sh ${STAGING_LIBDIR}/perl/
         # target configuration, used by native perl when cross-compiling
-        install lib/Config_heavy.pl ${STAGING_LIBDIR_NATIVE}/perl/${PV}/Config_heavy-target.pl
+        install lib/Config_heavy.pl ${STAGING_LIBDIR_NATIVE}/perl/${PV}/Config_heavy-${TARGET_SYS}.pl
 	# target configuration
         install lib/Config.pm       ${STAGING_LIBDIR}/perl/${PV}/
 	install lib/ExtUtils/typemap ${STAGING_DATADIR}/perl/${PV}/ExtUtils/
diff --git a/recipes/perl/perl_5.8.8.bb b/recipes/perl/perl_5.8.8.bb
index 69078e8..3e14bc3 100644
--- a/recipes/perl/perl_5.8.8.bb
+++ b/recipes/perl/perl_5.8.8.bb
@@ -5,7 +5,7 @@ LICENSE = "Artistic|GPLv1+"
 PRIORITY = "optional"
 # We need gnugrep (for -I)
 DEPENDS = "virtual/db perl-native grep-native"
-PR = "r36"
+PR = "r37"
 
 # Major part of version
 PVM = "5.8"
-- 
1.6.4.2




^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH 2/5] perl 5.10.1: fix Time::HiRes cross-compilation
  2010-12-25 10:48 [PATCH 1/5] perl: fix PERLCONFIGTARGET for multimach builds, move cpan vars Roman I Khimov
@ 2010-12-25 10:48 ` Roman I Khimov
  2010-12-25 10:48   ` [PATCH 3/5] perl-native: fix ExtUtils::Liblist::Kid library check for cross-build Roman I Khimov
  2010-12-25 17:30   ` [PATCH 2/5] perl 5.10.1: fix Time::HiRes cross-compilation Khem Raj
  2010-12-25 17:23 ` [PATCH 1/5] perl: fix PERLCONFIGTARGET for multimach builds, move cpan vars Khem Raj
  1 sibling, 2 replies; 17+ messages in thread
From: Roman I Khimov @ 2010-12-25 10:48 UTC (permalink / raw)
  To: openembedded-devel

We can't do 'run' check, so let's hope compile check is enough.
Fixes

Time::HiRes::nanosleep(): unimplemented in this platform

error.

Signed-off-by: Roman I Khimov <khimov@altell.ru>
---
 .../perl-time-hires-fix-cross-compilation.patch    |   29 ++++++++++++++++++++
 recipes/perl/perl_5.10.1.bb                        |    3 +-
 2 files changed, 31 insertions(+), 1 deletions(-)
 create mode 100644 recipes/perl/perl-5.10.1/perl-time-hires-fix-cross-compilation.patch

diff --git a/recipes/perl/perl-5.10.1/perl-time-hires-fix-cross-compilation.patch b/recipes/perl/perl-5.10.1/perl-time-hires-fix-cross-compilation.patch
new file mode 100644
index 0000000..7c8b47e
--- /dev/null
+++ b/recipes/perl/perl-5.10.1/perl-time-hires-fix-cross-compilation.patch
@@ -0,0 +1,29 @@
+Index: perl-5.10.1/ext/Time-HiRes/Makefile.PL
+===================================================================
+--- perl-5.10.1.orig/ext/Time-HiRes/Makefile.PL	2010-11-23 12:05:59.000000000 +0300
++++ perl-5.10.1/ext/Time-HiRes/Makefile.PL	2010-11-23 12:06:42.000000000 +0300
+@@ -157,24 +157,6 @@
+ 	    my $res = system($cccmd);
+ 	    $ok = defined($res) && $res == 0 && -s $tmp_exe && -x _;
+ 
+-	    if ( $ok && exists $args{run} && $args{run}) {
+-		my $tmp_exe =
+-		    File::Spec->catfile(File::Spec->curdir, $tmp_exe);
+-		printf "Running $tmp_exe..." if $VERBOSE;
+-		if (system($tmp_exe) == 0) {
+-		    $ok = 1;
+-		} else {
+-		    $ok = 0;
+-		    my $errno = $? >> 8;
+-		    local $! = $errno;
+-		    printf <<EOF;
+-
+-*** The test run of '$tmp_exe' failed: status $?
+-*** (the status means: errno = $errno or '$!')
+-*** DO NOT PANIC: this just means that *some* functionality will be missing.
+-EOF
+-		}
+-	    }
+ 	    unlink("$tmp.c", $tmp_exe);
+         }
+     }
diff --git a/recipes/perl/perl_5.10.1.bb b/recipes/perl/perl_5.10.1.bb
index 387755e..0e6a1f9 100644
--- a/recipes/perl/perl_5.10.1.bb
+++ b/recipes/perl/perl_5.10.1.bb
@@ -5,7 +5,7 @@ LICENSE = "Artistic|GPLv1+"
 PRIORITY = "optional"
 # We need gnugrep (for -I)
 DEPENDS = "virtual/db perl-native grep-native"
-PR = "r15"
+PR = "r16"
 
 # 5.10.1 has Module::Build built-in
 PROVIDES += "libmodule-build-perl"
@@ -62,6 +62,7 @@ SRC_URI = "ftp://ftp.funet.fi/pub/CPAN/src/perl-${PV}.tar.gz;name=perl-${PV} \
 	file://arm-alignment.diff \
 	file://fcgi-test.diff \
 	file://hurd-ccflags.diff \
+	file://perl-time-hires-fix-cross-compilation.patch \
 	\
         file://Makefile.patch \
         file://Makefile.SH.patch \
-- 
1.6.4.2




^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH 3/5] perl-native: fix ExtUtils::Liblist::Kid library check for cross-build
  2010-12-25 10:48 ` [PATCH 2/5] perl 5.10.1: fix Time::HiRes cross-compilation Roman I Khimov
@ 2010-12-25 10:48   ` Roman I Khimov
  2010-12-25 10:48     ` [PATCH 4/5] perl-5.10.1: fix config var. 'need_va_copy' Roman I Khimov
  2010-12-25 17:33     ` [PATCH 3/5] perl-native: fix ExtUtils::Liblist::Kid library check for cross-build Khem Raj
  2010-12-25 17:30   ` [PATCH 2/5] perl 5.10.1: fix Time::HiRes cross-compilation Khem Raj
  1 sibling, 2 replies; 17+ messages in thread
From: Roman I Khimov @ 2010-12-25 10:48 UTC (permalink / raw)
  To: openembedded-devel

MakeMaker uses it to check for libraries presence and if the library is not
found in host dirs (/lib, /usr/lib, etc) it fails with messages like:

Note (probably harmless): No library found for -lpcap

Unfortunately it's not harmless, since MakeMaker removes such libs from flags
passed to link target modules which obviously breaks them.

As I don't know exact semantic and all use-cases of libpth config variable
I've workarounded this issue by prepending ldflags (and this does contain the
right path) to lib flags.

Signed-off-by: Roman I Khimov <khimov@altell.ru>
---
 .../perl-5.10.1/perl-fix-cross-library-check.patch |   19 +++++++++++++++++++
 recipes/perl/perl-native_5.10.1.bb                 |    3 ++-
 2 files changed, 21 insertions(+), 1 deletions(-)
 create mode 100644 recipes/perl/perl-5.10.1/perl-fix-cross-library-check.patch

diff --git a/recipes/perl/perl-5.10.1/perl-fix-cross-library-check.patch b/recipes/perl/perl-5.10.1/perl-fix-cross-library-check.patch
new file mode 100644
index 0000000..1c51609
--- /dev/null
+++ b/recipes/perl/perl-5.10.1/perl-fix-cross-library-check.patch
@@ -0,0 +1,19 @@
+Index: perl-5.10.1/lib/ExtUtils/Liblist/Kid.pm
+===================================================================
+--- perl-5.10.1.orig/lib/ExtUtils/Liblist/Kid.pm	2010-11-23 13:54:41.000000000 +0300
++++ perl-5.10.1/lib/ExtUtils/Liblist/Kid.pm	2010-11-23 14:18:13.000000000 +0300
+@@ -33,6 +33,14 @@
+ 	$potential_libs .= " " if $potential_libs;
+ 	$potential_libs .= $Config{perllibs};
+     }
++
++    if ($Config{ldflags}) { 
++	# Dynamic libraries are not transitive, so we may need including
++	# the libraries linked against perl.dll again.
++
++	$potential_libs = $Config{ldflags} . " " . $potential_libs;
++    }
++
+     return ("", "", "", "", ($give_libs ? [] : ())) unless $potential_libs;
+     warn "Potential libraries are '$potential_libs':\n" if $verbose;
+ 
diff --git a/recipes/perl/perl-native_5.10.1.bb b/recipes/perl/perl-native_5.10.1.bb
index 8b275a2..c523974 100644
--- a/recipes/perl/perl-native_5.10.1.bb
+++ b/recipes/perl/perl-native_5.10.1.bb
@@ -3,7 +3,7 @@ HOMEPAGE = "http://www.perl.org/"
 SECTION = "libs"
 LICENSE = "Artistic|GPLv1+"
 DEPENDS = "virtual/db-native gdbm-native"
-PR = "r7"
+PR = "r8"
 NATIVE_INSTALL_WORKS = "1"
 
 # Not tested enough
@@ -21,6 +21,7 @@ SRC_URI = "http://ftp.funet.fi/pub/CPAN/src/perl-${PV}.tar.gz;name=perl-${PV} \
            file://perl-configpm-switch.patch \
            file://native-nopacklist.patch \
            file://native-perlinc.patch \
+	   file://perl-fix-cross-library-check.patch \
 	   "
 
 SRC_URI[perl-5.10.1.md5sum] = "b9b2fdb957f50ada62d73f43ee75d044"
-- 
1.6.4.2




^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH 4/5] perl-5.10.1: fix config var. 'need_va_copy'
  2010-12-25 10:48   ` [PATCH 3/5] perl-native: fix ExtUtils::Liblist::Kid library check for cross-build Roman I Khimov
@ 2010-12-25 10:48     ` Roman I Khimov
  2010-12-25 10:48       ` [PATCH 5/5] perl: fix some arch-specific config.sh variables Roman I Khimov
  2010-12-25 17:39       ` [PATCH 4/5] perl-5.10.1: fix config var. 'need_va_copy' Khem Raj
  2010-12-25 17:33     ` [PATCH 3/5] perl-native: fix ExtUtils::Liblist::Kid library check for cross-build Khem Raj
  1 sibling, 2 replies; 17+ messages in thread
From: Roman I Khimov @ 2010-12-25 10:48 UTC (permalink / raw)
  To: openembedded-devel

From: Vladimir Sorokin <sorokin@altell.ru>

On x86_64, powerpc & s390 architectures need to copy va_list variable,
if it got from overlying function, before it passed to underlying function.

Signed-off-by: Vladimir Sorokin <sorokin@altell.ru>
Signed-off-by: Roman I Khimov <khimov@altell.ru>
---
 recipes/perl/perl_5.10.1.bb |    9 ++++++++-
 1 files changed, 8 insertions(+), 1 deletions(-)

diff --git a/recipes/perl/perl_5.10.1.bb b/recipes/perl/perl_5.10.1.bb
index 0e6a1f9..a58b8ec 100644
--- a/recipes/perl/perl_5.10.1.bb
+++ b/recipes/perl/perl_5.10.1.bb
@@ -5,7 +5,7 @@ LICENSE = "Artistic|GPLv1+"
 PRIORITY = "optional"
 # We need gnugrep (for -I)
 DEPENDS = "virtual/db perl-native grep-native"
-PR = "r16"
+PR = "r17"
 
 # 5.10.1 has Module::Build built-in
 PROVIDES += "libmodule-build-perl"
@@ -149,6 +149,13 @@ do_configure() {
 	       -e 's,/usr/,${exec_prefix}/,g' \
             config.sh-${TARGET_ARCH}-${TARGET_OS}
 
+	case "${TARGET_ARCH}" in
+		x86_64 | powerpc | s390)
+			sed -i -e "s,\(need_va_copy=\)'undef',\1'define',g" \
+				config.sh-${TARGET_ARCH}-${TARGET_OS}
+			;;
+	esac
+
         if test "${MACHINE}" != "native"; then
             # These are strewn all over the source tree
             for foo in `grep -I -m1 \/usr\/include\/.*\\.h ${WORKDIR}/* -r | cut -f 1 -d ":"` ; do
-- 
1.6.4.2




^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH 5/5] perl: fix some arch-specific config.sh variables
  2010-12-25 10:48     ` [PATCH 4/5] perl-5.10.1: fix config var. 'need_va_copy' Roman I Khimov
@ 2010-12-25 10:48       ` Roman I Khimov
  2010-12-25 17:38         ` Khem Raj
  2010-12-25 17:39       ` [PATCH 4/5] perl-5.10.1: fix config var. 'need_va_copy' Khem Raj
  1 sibling, 1 reply; 17+ messages in thread
From: Roman I Khimov @ 2010-12-25 10:48 UTC (permalink / raw)
  To: openembedded-devel

 * d_nv_preserves_uv, d_u32align, longlongsize: arch-specific, doesn't
   belong to generic config.sh
 * d_printf_format_null: missed definition for 32-bit archs
 * gidformat: wrong definition for 32-bit archs
 * uquadtype: defined twice, clean up
 * sGMTIME_max, sGMTIME_min, sLOCALTIME_max, sLOCALTIME_min: missed
   definition for 64-bit archs
 * d_u32align should be defined for ARM, although it's 32-bit arch

Signed-off-by: Roman I Khimov <khimov@altell.ru>
---
 recipes/perl/perl-5.10.1/config.sh    |    3 ---
 recipes/perl/perl-5.10.1/config.sh-32 |    4 ++--
 recipes/perl/perl-5.10.1/config.sh-64 |    5 ++++-
 recipes/perl/perl_5.10.1.bb           |    6 +++++-
 4 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/recipes/perl/perl-5.10.1/config.sh b/recipes/perl/perl-5.10.1/config.sh
index feab9c0..435f39d 100644
--- a/recipes/perl/perl-5.10.1/config.sh
+++ b/recipes/perl/perl-5.10.1/config.sh
@@ -336,7 +336,6 @@ d_ndbm='undef'
 d_ndbm_h_uses_prototypes='undef'
 d_nice='define'
 d_nl_langinfo='define'
-d_nv_preserves_uv='undef'
 d_nv_zero_is_allbits_zero='define'
 d_off64_t='define'
 d_old_pthread_create_joinable='undef'
@@ -499,7 +498,6 @@ d_tmpnam_r='define'
 d_truncate='define'
 d_ttyname_r='define'
 d_tzname='define'
-d_u32align='undef'
 d_ualarm='define'
 d_umask='define'
 d_uname='define'
@@ -759,7 +757,6 @@ lns='/bin/ln -s'
 localtime_r_proto='REENTRANT_PROTO_S_TS'
 locincpth='/usr/local/include /opt/local/include /usr/gnu/include /opt/gnu/include /usr/GNU/include /opt/GNU/include'
 loclibpth='/usr/local/lib /opt/local/lib /usr/gnu/lib /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib'
-longlongsize='8'
 lp=''
 lpr=''
 ls='ls'
diff --git a/recipes/perl/perl-5.10.1/config.sh-32 b/recipes/perl/perl-5.10.1/config.sh-32
index fb0352d..a74e171 100644
--- a/recipes/perl/perl-5.10.1/config.sh-32
+++ b/recipes/perl/perl-5.10.1/config.sh-32
@@ -8,10 +8,11 @@ cppccsymbols='__GNUC__=3 __GNUC_MINOR__=3'
 cppflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -fno-strict-aliasing -pipe -I/usr/local/include'
 cppsymbols='__ELF__=1 _FILE_OFFSET_BITS=64 __GLIBC__=2 __GLIBC_MINOR__=3 __GNU_LIBRARY__=6 _GNU_SOURCE=1 i386=1 __i386=1 __i386__=1 __i486=1 __i486__=1 _LARGEFILE64_SOURCE=1 _LARGEFILE_SOURCE=1 linux=1 __linux=1 __linux__=1 _POSIX_C_SOURCE=199506L _POSIX_SOURCE=1 _REENTRANT=1 __STDC__=1 unix=1 __unix=1 __unix__=1 __USE_BSD=1 __USE_FILE_OFFSET64=1 __USE_GNU=1 __USE_LARGEFILE=1 __USE_LARGEFILE64=1 __USE_MISC=1 __USE_POSIX=1 __USE_POSIX199309=1 __USE_POSIX199506=1 __USE_POSIX2=1 __USE_REENTRANT=1 __USE_SVID=1 __USE_UNIX98=1 __USE_XOPEN=1 __USE_XOPEN_EXTENDED=1 _XOPEN_SOURCE=600 _XOPEN_SOURCE_EXTENDED=1'
 d_nv_preserves_uv='define'
+d_printf_format_null='define'
 d_u32align='undef'
 gccversion='4.3.3'
 getspnam_r_proto='0'
-gidformat='"u"'
+gidformat='"lu"'
 i32type='long'
 i64type='long long'
 ivsize='4'
@@ -40,7 +41,6 @@ osvers='2.6.21-rc5'
 ptrsize='4'
 quadkind='3'
 quadtype='long long'
-uquadtype='unsigned long long'
 sGMTIME_max='2147483647'
 sGMTIME_min='-2147483648'
 sLOCALTIME_max='2147483647'
diff --git a/recipes/perl/perl-5.10.1/config.sh-64 b/recipes/perl/perl-5.10.1/config.sh-64
index 480273d..17466cc 100644
--- a/recipes/perl/perl-5.10.1/config.sh-64
+++ b/recipes/perl/perl-5.10.1/config.sh-64
@@ -39,7 +39,6 @@ osvers='2.6.20.4'
 ptrsize='8'
 quadkind='2'
 quadtype='long'
-uquadtype='unsigned long'
 sPRIXU64='"lX"'
 sPRId64='"ld"'
 sPRIi64='"li"'
@@ -47,6 +46,10 @@ sPRIo64='"lo"'
 sPRIu64='"lu"'
 sPRIx64='"lx"'
 selectminbits='64'
+sGMTIME_max='67768036191676799'
+sGMTIME_min='-62167219200'
+sLOCALTIME_max='67768036191676799'
+sLOCALTIME_min='-62167219200'
 sizesize='8'
 u32type='unsigned int'
 u64type='unsigned long'
diff --git a/recipes/perl/perl_5.10.1.bb b/recipes/perl/perl_5.10.1.bb
index a58b8ec..d8c374b 100644
--- a/recipes/perl/perl_5.10.1.bb
+++ b/recipes/perl/perl_5.10.1.bb
@@ -5,7 +5,7 @@ LICENSE = "Artistic|GPLv1+"
 PRIORITY = "optional"
 # We need gnugrep (for -I)
 DEPENDS = "virtual/db perl-native grep-native"
-PR = "r17"
+PR = "r18"
 
 # 5.10.1 has Module::Build built-in
 PROVIDES += "libmodule-build-perl"
@@ -154,6 +154,10 @@ do_configure() {
 			sed -i -e "s,\(need_va_copy=\)'undef',\1'define',g" \
 				config.sh-${TARGET_ARCH}-${TARGET_OS}
 			;;
+		arm)
+			sed -i -e "s,\(d_u32align=\)'undef',\1'define',g" \
+				config.sh-${TARGET_ARCH}-${TARGET_OS}
+			;;
 	esac
 
         if test "${MACHINE}" != "native"; then
-- 
1.6.4.2




^ permalink raw reply related	[flat|nested] 17+ messages in thread

* Re: [PATCH 1/5] perl: fix PERLCONFIGTARGET for multimach builds, move cpan vars
  2010-12-25 10:48 [PATCH 1/5] perl: fix PERLCONFIGTARGET for multimach builds, move cpan vars Roman I Khimov
  2010-12-25 10:48 ` [PATCH 2/5] perl 5.10.1: fix Time::HiRes cross-compilation Roman I Khimov
@ 2010-12-25 17:23 ` Khem Raj
  2010-12-25 18:44   ` Roman I Khimov
  1 sibling, 1 reply; 17+ messages in thread
From: Khem Raj @ 2010-12-25 17:23 UTC (permalink / raw)
  To: openembedded-devel

On 12/25/2010 2:48 AM, Roman I Khimov wrote:
> Multimachine builds race staging Config_heavy-target.pl to native directory.
> Solve that by changing PERLCONFIGTARGET variable semantics, now it will
> contain $TARGET_SYS. Change perl patch and stage functions accordingly.
>
> Also, move PERLCONFIGTARGET and other target-specific variable settings from
> cpan to cpan-base as I think they're also useful for cpan_build and anywhere
> else cpan-base is needed.
>
> Signed-off-by: Roman I Khimov<khimov@altell.ru>
> ---
>   classes/cpan-base.bbclass                          |   14 ++++++++++++--
>   classes/cpan.bbclass                               |   10 ----------
>   classes/cpan_build.bbclass                         |    4 ++--
>   .../perl/perl-5.10.1/perl-configpm-switch.patch    |    6 +++---
>   recipes/perl/perl-5.8.8/perl-configpm-switch.patch |    6 +++---
>   recipes/perl/perl-native_5.10.1.bb                 |    2 +-
>   recipes/perl/perl-native_5.8.8.bb                  |    2 +-
>   recipes/perl/perl_5.10.1.bb                        |    4 ++--
>   recipes/perl/perl_5.8.8.bb                         |    2 +-
>   9 files changed, 25 insertions(+), 25 deletions(-)
>
> diff --git a/classes/cpan-base.bbclass b/classes/cpan-base.bbclass
> index a04f61c..53621ed 100644
> --- a/classes/cpan-base.bbclass
> +++ b/classes/cpan-base.bbclass
> @@ -32,11 +32,21 @@ def perl_get_libdirs(d):
>
>   def is_target(d):
>       if not bb.data.inherits_class('native', d):
> -        return "yes"
> -    return "no"
> +        return bb.data.expand('${TARGET_SYS}', d)
> +    return ""

not that its wrong but I think you could also use MULTIMACH_ARCH instead 
of TARGET_SYS here




^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 2/5] perl 5.10.1: fix Time::HiRes cross-compilation
  2010-12-25 10:48 ` [PATCH 2/5] perl 5.10.1: fix Time::HiRes cross-compilation Roman I Khimov
  2010-12-25 10:48   ` [PATCH 3/5] perl-native: fix ExtUtils::Liblist::Kid library check for cross-build Roman I Khimov
@ 2010-12-25 17:30   ` Khem Raj
  2010-12-25 18:25     ` Roman I Khimov
  1 sibling, 1 reply; 17+ messages in thread
From: Khem Raj @ 2010-12-25 17:30 UTC (permalink / raw)
  To: openembedded-devel

On 12/25/2010 2:48 AM, Roman I Khimov wrote:
> We can't do 'run' check, so let's hope compile check is enough.
> Fixes
>
> Time::HiRes::nanosleep(): unimplemented in this platform
>
> error.
>
> Signed-off-by: Roman I Khimov<khimov@altell.ru>

is it possible to cache the vars instead? that will be better to keep
list of variables that are not runchecked

Acked-by: Khem Raj <raj.khem@gmail.com>

> ---
>   .../perl-time-hires-fix-cross-compilation.patch    |   29 ++++++++++++++++++++
>   recipes/perl/perl_5.10.1.bb                        |    3 +-
>   2 files changed, 31 insertions(+), 1 deletions(-)
>   create mode 100644 recipes/perl/perl-5.10.1/perl-time-hires-fix-cross-compilation.patch
>
> diff --git a/recipes/perl/perl-5.10.1/perl-time-hires-fix-cross-compilation.patch b/recipes/perl/perl-5.10.1/perl-time-hires-fix-cross-compilation.patch
> new file mode 100644
> index 0000000..7c8b47e
> --- /dev/null
> +++ b/recipes/perl/perl-5.10.1/perl-time-hires-fix-cross-compilation.patch
> @@ -0,0 +1,29 @@
> +Index: perl-5.10.1/ext/Time-HiRes/Makefile.PL
> +===================================================================
> +--- perl-5.10.1.orig/ext/Time-HiRes/Makefile.PL	2010-11-23 12:05:59.000000000 +0300
> ++++ perl-5.10.1/ext/Time-HiRes/Makefile.PL	2010-11-23 12:06:42.000000000 +0300
> +@@ -157,24 +157,6 @@
> + 	    my $res = system($cccmd);
> + 	    $ok = defined($res)&&  $res == 0&&  -s $tmp_exe&&  -x _;
> +
> +-	    if ( $ok&&  exists $args{run}&&  $args{run}) {
> +-		my $tmp_exe =
> +-		    File::Spec->catfile(File::Spec->curdir, $tmp_exe);
> +-		printf "Running $tmp_exe..." if $VERBOSE;
> +-		if (system($tmp_exe) == 0) {
> +-		    $ok = 1;
> +-		} else {
> +-		    $ok = 0;
> +-		    my $errno = $?>>  8;
> +-		    local $! = $errno;
> +-		    printf<<EOF;
> +-
> +-*** The test run of '$tmp_exe' failed: status $?
> +-*** (the status means: errno = $errno or '$!')
> +-*** DO NOT PANIC: this just means that *some* functionality will be missing.
> +-EOF
> +-		}
> +-	    }
> + 	    unlink("$tmp.c", $tmp_exe);
> +         }
> +     }
> diff --git a/recipes/perl/perl_5.10.1.bb b/recipes/perl/perl_5.10.1.bb
> index 387755e..0e6a1f9 100644
> --- a/recipes/perl/perl_5.10.1.bb
> +++ b/recipes/perl/perl_5.10.1.bb
> @@ -5,7 +5,7 @@ LICENSE = "Artistic|GPLv1+"
>   PRIORITY = "optional"
>   # We need gnugrep (for -I)
>   DEPENDS = "virtual/db perl-native grep-native"
> -PR = "r15"
> +PR = "r16"
>
>   # 5.10.1 has Module::Build built-in
>   PROVIDES += "libmodule-build-perl"
> @@ -62,6 +62,7 @@ SRC_URI = "ftp://ftp.funet.fi/pub/CPAN/src/perl-${PV}.tar.gz;name=perl-${PV} \
>   	file://arm-alignment.diff \
>   	file://fcgi-test.diff \
>   	file://hurd-ccflags.diff \
> +	file://perl-time-hires-fix-cross-compilation.patch \
>   	\
>           file://Makefile.patch \
>           file://Makefile.SH.patch \




^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 3/5] perl-native: fix ExtUtils::Liblist::Kid library check for cross-build
  2010-12-25 10:48   ` [PATCH 3/5] perl-native: fix ExtUtils::Liblist::Kid library check for cross-build Roman I Khimov
  2010-12-25 10:48     ` [PATCH 4/5] perl-5.10.1: fix config var. 'need_va_copy' Roman I Khimov
@ 2010-12-25 17:33     ` Khem Raj
  2010-12-25 18:05       ` Roman I Khimov
  1 sibling, 1 reply; 17+ messages in thread
From: Khem Raj @ 2010-12-25 17:33 UTC (permalink / raw)
  To: openembedded-devel

On 12/25/2010 2:48 AM, Roman I Khimov wrote:
> MakeMaker uses it to check for libraries presence and if the library is not
> found in host dirs (/lib, /usr/lib, etc) it fails with messages like:
>
> Note (probably harmless): No library found for -lpcap
>
> Unfortunately it's not harmless, since MakeMaker removes such libs from flags
> passed to link target modules which obviously breaks them.
>
> As I don't know exact semantic and all use-cases of libpth config variable
> I've workarounded this issue by prepending ldflags (and this does contain the
> right path) to lib flags.
>
> Signed-off-by: Roman I Khimov<khimov@altell.ru>

is this a problem for perl-native or target perl ?

> ---
>   .../perl-5.10.1/perl-fix-cross-library-check.patch |   19 +++++++++++++++++++
>   recipes/perl/perl-native_5.10.1.bb                 |    3 ++-
>   2 files changed, 21 insertions(+), 1 deletions(-)
>   create mode 100644 recipes/perl/perl-5.10.1/perl-fix-cross-library-check.patch
>
> diff --git a/recipes/perl/perl-5.10.1/perl-fix-cross-library-check.patch b/recipes/perl/perl-5.10.1/perl-fix-cross-library-check.patch
> new file mode 100644
> index 0000000..1c51609
> --- /dev/null
> +++ b/recipes/perl/perl-5.10.1/perl-fix-cross-library-check.patch
> @@ -0,0 +1,19 @@
> +Index: perl-5.10.1/lib/ExtUtils/Liblist/Kid.pm
> +===================================================================
> +--- perl-5.10.1.orig/lib/ExtUtils/Liblist/Kid.pm	2010-11-23 13:54:41.000000000 +0300
> ++++ perl-5.10.1/lib/ExtUtils/Liblist/Kid.pm	2010-11-23 14:18:13.000000000 +0300
> +@@ -33,6 +33,14 @@
> + 	$potential_libs .= " " if $potential_libs;
> + 	$potential_libs .= $Config{perllibs};
> +     }
> ++
> ++    if ($Config{ldflags}) {
> ++	# Dynamic libraries are not transitive, so we may need including
> ++	# the libraries linked against perl.dll again.
> ++
> ++	$potential_libs = $Config{ldflags} . " " . $potential_libs;
> ++    }
> ++
> +     return ("", "", "", "", ($give_libs ? [] : ())) unless $potential_libs;
> +     warn "Potential libraries are '$potential_libs':\n" if $verbose;
> +
> diff --git a/recipes/perl/perl-native_5.10.1.bb b/recipes/perl/perl-native_5.10.1.bb
> index 8b275a2..c523974 100644
> --- a/recipes/perl/perl-native_5.10.1.bb
> +++ b/recipes/perl/perl-native_5.10.1.bb
> @@ -3,7 +3,7 @@ HOMEPAGE = "http://www.perl.org/"
>   SECTION = "libs"
>   LICENSE = "Artistic|GPLv1+"
>   DEPENDS = "virtual/db-native gdbm-native"
> -PR = "r7"
> +PR = "r8"
>   NATIVE_INSTALL_WORKS = "1"
>
>   # Not tested enough
> @@ -21,6 +21,7 @@ SRC_URI = "http://ftp.funet.fi/pub/CPAN/src/perl-${PV}.tar.gz;name=perl-${PV} \
>              file://perl-configpm-switch.patch \
>              file://native-nopacklist.patch \
>              file://native-perlinc.patch \
> +	   file://perl-fix-cross-library-check.patch \
>   	   "
>
>   SRC_URI[perl-5.10.1.md5sum] = "b9b2fdb957f50ada62d73f43ee75d044"




^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 5/5] perl: fix some arch-specific config.sh variables
  2010-12-25 10:48       ` [PATCH 5/5] perl: fix some arch-specific config.sh variables Roman I Khimov
@ 2010-12-25 17:38         ` Khem Raj
  0 siblings, 0 replies; 17+ messages in thread
From: Khem Raj @ 2010-12-25 17:38 UTC (permalink / raw)
  To: openembedded-devel

On 12/25/2010 2:48 AM, Roman I Khimov wrote:
>   * d_nv_preserves_uv, d_u32align, longlongsize: arch-specific, doesn't
>     belong to generic config.sh
>   * d_printf_format_null: missed definition for 32-bit archs
>   * gidformat: wrong definition for 32-bit archs
>   * uquadtype: defined twice, clean up
>   * sGMTIME_max, sGMTIME_min, sLOCALTIME_max, sLOCALTIME_min: missed
>     definition for 64-bit archs
>   * d_u32align should be defined for ARM, although it's 32-bit arch
>
> Signed-off-by: Roman I Khimov<khimov@altell.ru>

Acked-by: Khem Raj <raj.khem@gmail.com>
> ---
>   recipes/perl/perl-5.10.1/config.sh    |    3 ---
>   recipes/perl/perl-5.10.1/config.sh-32 |    4 ++--
>   recipes/perl/perl-5.10.1/config.sh-64 |    5 ++++-
>   recipes/perl/perl_5.10.1.bb           |    6 +++++-
>   4 files changed, 11 insertions(+), 7 deletions(-)
>
> diff --git a/recipes/perl/perl-5.10.1/config.sh b/recipes/perl/perl-5.10.1/config.sh
> index feab9c0..435f39d 100644
> --- a/recipes/perl/perl-5.10.1/config.sh
> +++ b/recipes/perl/perl-5.10.1/config.sh
> @@ -336,7 +336,6 @@ d_ndbm='undef'
>   d_ndbm_h_uses_prototypes='undef'
>   d_nice='define'
>   d_nl_langinfo='define'
> -d_nv_preserves_uv='undef'
>   d_nv_zero_is_allbits_zero='define'
>   d_off64_t='define'
>   d_old_pthread_create_joinable='undef'
> @@ -499,7 +498,6 @@ d_tmpnam_r='define'
>   d_truncate='define'
>   d_ttyname_r='define'
>   d_tzname='define'
> -d_u32align='undef'
>   d_ualarm='define'
>   d_umask='define'
>   d_uname='define'
> @@ -759,7 +757,6 @@ lns='/bin/ln -s'
>   localtime_r_proto='REENTRANT_PROTO_S_TS'
>   locincpth='/usr/local/include /opt/local/include /usr/gnu/include /opt/gnu/include /usr/GNU/include /opt/GNU/include'
>   loclibpth='/usr/local/lib /opt/local/lib /usr/gnu/lib /opt/gnu/lib /usr/GNU/lib /opt/GNU/lib'
> -longlongsize='8'
>   lp=''
>   lpr=''
>   ls='ls'
> diff --git a/recipes/perl/perl-5.10.1/config.sh-32 b/recipes/perl/perl-5.10.1/config.sh-32
> index fb0352d..a74e171 100644
> --- a/recipes/perl/perl-5.10.1/config.sh-32
> +++ b/recipes/perl/perl-5.10.1/config.sh-32
> @@ -8,10 +8,11 @@ cppccsymbols='__GNUC__=3 __GNUC_MINOR__=3'
>   cppflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -fno-strict-aliasing -pipe -I/usr/local/include'
>   cppsymbols='__ELF__=1 _FILE_OFFSET_BITS=64 __GLIBC__=2 __GLIBC_MINOR__=3 __GNU_LIBRARY__=6 _GNU_SOURCE=1 i386=1 __i386=1 __i386__=1 __i486=1 __i486__=1 _LARGEFILE64_SOURCE=1 _LARGEFILE_SOURCE=1 linux=1 __linux=1 __linux__=1 _POSIX_C_SOURCE=199506L _POSIX_SOURCE=1 _REENTRANT=1 __STDC__=1 unix=1 __unix=1 __unix__=1 __USE_BSD=1 __USE_FILE_OFFSET64=1 __USE_GNU=1 __USE_LARGEFILE=1 __USE_LARGEFILE64=1 __USE_MISC=1 __USE_POSIX=1 __USE_POSIX199309=1 __USE_POSIX199506=1 __USE_POSIX2=1 __USE_REENTRANT=1 __USE_SVID=1 __USE_UNIX98=1 __USE_XOPEN=1 __USE_XOPEN_EXTENDED=1 _XOPEN_SOURCE=600 _XOPEN_SOURCE_EXTENDED=1'
>   d_nv_preserves_uv='define'
> +d_printf_format_null='define'
>   d_u32align='undef'
>   gccversion='4.3.3'
>   getspnam_r_proto='0'
> -gidformat='"u"'
> +gidformat='"lu"'
>   i32type='long'
>   i64type='long long'
>   ivsize='4'
> @@ -40,7 +41,6 @@ osvers='2.6.21-rc5'
>   ptrsize='4'
>   quadkind='3'
>   quadtype='long long'
> -uquadtype='unsigned long long'
>   sGMTIME_max='2147483647'
>   sGMTIME_min='-2147483648'
>   sLOCALTIME_max='2147483647'
> diff --git a/recipes/perl/perl-5.10.1/config.sh-64 b/recipes/perl/perl-5.10.1/config.sh-64
> index 480273d..17466cc 100644
> --- a/recipes/perl/perl-5.10.1/config.sh-64
> +++ b/recipes/perl/perl-5.10.1/config.sh-64
> @@ -39,7 +39,6 @@ osvers='2.6.20.4'
>   ptrsize='8'
>   quadkind='2'
>   quadtype='long'
> -uquadtype='unsigned long'
>   sPRIXU64='"lX"'
>   sPRId64='"ld"'
>   sPRIi64='"li"'
> @@ -47,6 +46,10 @@ sPRIo64='"lo"'
>   sPRIu64='"lu"'
>   sPRIx64='"lx"'
>   selectminbits='64'
> +sGMTIME_max='67768036191676799'
> +sGMTIME_min='-62167219200'
> +sLOCALTIME_max='67768036191676799'
> +sLOCALTIME_min='-62167219200'
>   sizesize='8'
>   u32type='unsigned int'
>   u64type='unsigned long'
> diff --git a/recipes/perl/perl_5.10.1.bb b/recipes/perl/perl_5.10.1.bb
> index a58b8ec..d8c374b 100644
> --- a/recipes/perl/perl_5.10.1.bb
> +++ b/recipes/perl/perl_5.10.1.bb
> @@ -5,7 +5,7 @@ LICENSE = "Artistic|GPLv1+"
>   PRIORITY = "optional"
>   # We need gnugrep (for -I)
>   DEPENDS = "virtual/db perl-native grep-native"
> -PR = "r17"
> +PR = "r18"
>
>   # 5.10.1 has Module::Build built-in
>   PROVIDES += "libmodule-build-perl"
> @@ -154,6 +154,10 @@ do_configure() {
>   			sed -i -e "s,\(need_va_copy=\)'undef',\1'define',g" \
>   				config.sh-${TARGET_ARCH}-${TARGET_OS}
>   			;;
> +		arm)
> +			sed -i -e "s,\(d_u32align=\)'undef',\1'define',g" \
> +				config.sh-${TARGET_ARCH}-${TARGET_OS}
> +			;;
>   	esac
>
>           if test "${MACHINE}" != "native"; then




^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 4/5] perl-5.10.1: fix config var. 'need_va_copy'
  2010-12-25 10:48     ` [PATCH 4/5] perl-5.10.1: fix config var. 'need_va_copy' Roman I Khimov
  2010-12-25 10:48       ` [PATCH 5/5] perl: fix some arch-specific config.sh variables Roman I Khimov
@ 2010-12-25 17:39       ` Khem Raj
  1 sibling, 0 replies; 17+ messages in thread
From: Khem Raj @ 2010-12-25 17:39 UTC (permalink / raw)
  To: openembedded-devel

On 12/25/2010 2:48 AM, Roman I Khimov wrote:
> From: Vladimir Sorokin<sorokin@altell.ru>
>
> On x86_64, powerpc&  s390 architectures need to copy va_list variable,
> if it got from overlying function, before it passed to underlying function.
>
> Signed-off-by: Vladimir Sorokin<sorokin@altell.ru>
> Signed-off-by: Roman I Khimov<khimov@altell.ru>

Acked-by: Khem Raj <raj.khem@gmail.com>
> ---
>   recipes/perl/perl_5.10.1.bb |    9 ++++++++-
>   1 files changed, 8 insertions(+), 1 deletions(-)
>
> diff --git a/recipes/perl/perl_5.10.1.bb b/recipes/perl/perl_5.10.1.bb
> index 0e6a1f9..a58b8ec 100644
> --- a/recipes/perl/perl_5.10.1.bb
> +++ b/recipes/perl/perl_5.10.1.bb
> @@ -5,7 +5,7 @@ LICENSE = "Artistic|GPLv1+"
>   PRIORITY = "optional"
>   # We need gnugrep (for -I)
>   DEPENDS = "virtual/db perl-native grep-native"
> -PR = "r16"
> +PR = "r17"
>
>   # 5.10.1 has Module::Build built-in
>   PROVIDES += "libmodule-build-perl"
> @@ -149,6 +149,13 @@ do_configure() {
>   	       -e 's,/usr/,${exec_prefix}/,g' \
>               config.sh-${TARGET_ARCH}-${TARGET_OS}
>
> +	case "${TARGET_ARCH}" in
> +		x86_64 | powerpc | s390)
> +			sed -i -e "s,\(need_va_copy=\)'undef',\1'define',g" \
> +				config.sh-${TARGET_ARCH}-${TARGET_OS}
> +			;;
> +	esac
> +
>           if test "${MACHINE}" != "native"; then
>               # These are strewn all over the source tree
>               for foo in `grep -I -m1 \/usr\/include\/.*\\.h ${WORKDIR}/* -r | cut -f 1 -d ":"` ; do




^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 3/5] perl-native: fix ExtUtils::Liblist::Kid library check for cross-build
  2010-12-25 17:33     ` [PATCH 3/5] perl-native: fix ExtUtils::Liblist::Kid library check for cross-build Khem Raj
@ 2010-12-25 18:05       ` Roman I Khimov
  2010-12-25 19:55         ` Khem Raj
  0 siblings, 1 reply; 17+ messages in thread
From: Roman I Khimov @ 2010-12-25 18:05 UTC (permalink / raw)
  To: openembedded-devel

[-- Attachment #1: Type: Text/Plain, Size: 1201 bytes --]

В сообщении от Суббота 25 декабря 2010 20:33:36 автор Khem Raj написал:
> On 12/25/2010 2:48 AM, Roman I Khimov wrote:
> > MakeMaker uses it to check for libraries presence and if the library is
> > not found in host dirs (/lib, /usr/lib, etc) it fails with messages like:
> >
> > Note (probably harmless): No library found for -lpcap
> >
> > Unfortunately it's not harmless, since MakeMaker removes such libs from
> > flags passed to link target modules which obviously breaks them.
> >
> > As I don't know exact semantic and all use-cases of libpth config
> > variable I've workarounded this issue by prepending ldflags (and this
> > does contain the right path) to lib flags.
> >
> > Signed-off-by: Roman I Khimov<khimov@altell.ru>
> 
> is this a problem for perl-native or target perl ?

For target perl libraries. Seen that on Net::PCAP, the package built fine, but 
the actual library wasn't linked to pcap, thus not working. But in order for 
target perl libraries to build properly native perl needs to be patched.

-- 
 http://roman.khimov.ru
mailto: roman@khimov.ru
gpg --keyserver hkp://subkeys.pgp.net --recv-keys 0xE5E055C3

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 205 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 2/5] perl 5.10.1: fix Time::HiRes cross-compilation
  2010-12-25 17:30   ` [PATCH 2/5] perl 5.10.1: fix Time::HiRes cross-compilation Khem Raj
@ 2010-12-25 18:25     ` Roman I Khimov
  2010-12-25 19:57       ` Khem Raj
  0 siblings, 1 reply; 17+ messages in thread
From: Roman I Khimov @ 2010-12-25 18:25 UTC (permalink / raw)
  To: openembedded-devel

[-- Attachment #1: Type: Text/Plain, Size: 799 bytes --]

В сообщении от Суббота 25 декабря 2010 20:30:49 автор Khem Raj написал:
> On 12/25/2010 2:48 AM, Roman I Khimov wrote:
> > We can't do 'run' check, so let's hope compile check is enough.
> > Fixes
> >
> > Time::HiRes::nanosleep(): unimplemented in this platform
> >
> > error.
> >
> > Signed-off-by: Roman I Khimov<khimov@altell.ru>
> 
> is it possible to cache the vars instead? that will be better to keep
> list of variables that are not runchecked

Well, glancing at code another time, it probably could be solved via 
d_nanosleep in Config.sh. I think it's safe to assume that all of our targets 
implement nanosleep().

-- 
 http://roman.khimov.ru
mailto: roman@khimov.ru
gpg --keyserver hkp://subkeys.pgp.net --recv-keys 0xE5E055C3

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 205 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 1/5] perl: fix PERLCONFIGTARGET for multimach builds, move cpan vars
  2010-12-25 17:23 ` [PATCH 1/5] perl: fix PERLCONFIGTARGET for multimach builds, move cpan vars Khem Raj
@ 2010-12-25 18:44   ` Roman I Khimov
  2010-12-25 20:01     ` Khem Raj
  0 siblings, 1 reply; 17+ messages in thread
From: Roman I Khimov @ 2010-12-25 18:44 UTC (permalink / raw)
  To: openembedded-devel

[-- Attachment #1: Type: Text/Plain, Size: 2466 bytes --]

В сообщении от Суббота 25 декабря 2010 20:23:02 автор Khem Raj написал:
> On 12/25/2010 2:48 AM, Roman I Khimov wrote:
> > Multimachine builds race staging Config_heavy-target.pl to native
> > directory. Solve that by changing PERLCONFIGTARGET variable semantics,
> > now it will contain $TARGET_SYS. Change perl patch and stage functions
> > accordingly.
> >
> > Also, move PERLCONFIGTARGET and other target-specific variable settings
> > from cpan to cpan-base as I think they're also useful for cpan_build and
> > anywhere else cpan-base is needed.
> >
> > Signed-off-by: Roman I Khimov<khimov@altell.ru>
> > ---
> >   classes/cpan-base.bbclass                          |   14
> > ++++++++++++-- classes/cpan.bbclass                               |   10
> > ---------- classes/cpan_build.bbclass                         |    4 ++--
> > .../perl/perl-5.10.1/perl-configpm-switch.patch    |    6 +++---
> > recipes/perl/perl-5.8.8/perl-configpm-switch.patch |    6 +++---
> > recipes/perl/perl-native_5.10.1.bb                 |    2 +-
> >   recipes/perl/perl-native_5.8.8.bb                  |    2 +-
> >   recipes/perl/perl_5.10.1.bb                        |    4 ++--
> >   recipes/perl/perl_5.8.8.bb                         |    2 +-
> >   9 files changed, 25 insertions(+), 25 deletions(-)
> >
> > diff --git a/classes/cpan-base.bbclass b/classes/cpan-base.bbclass
> > index a04f61c..53621ed 100644
> > --- a/classes/cpan-base.bbclass
> > +++ b/classes/cpan-base.bbclass
> > @@ -32,11 +32,21 @@ def perl_get_libdirs(d):
> >
> >   def is_target(d):
> >       if not bb.data.inherits_class('native', d):
> > -        return "yes"
> > -    return "no"
> > +        return bb.data.expand('${TARGET_SYS}', d)
> > +    return ""
> 
> not that its wrong but I think you could also use MULTIMACH_ARCH instead
> of TARGET_SYS here

MULTIMACH_ARCH = "${PACKAGE_ARCH}"

So if there is a perl lib that is "PACKAGE_ARCH = all" it will use 
Config_heavy-all.sh which won't exist if we don't symlink something there and 
that raises a question of what to symlink. Also, I don't know whether it's 
possible now, but in theory we can have builds with different target C 
libraries reusing same native perl, so complete TARGET_SYS specification is 
more appropriate IMO.

-- 
 http://roman.khimov.ru
mailto: roman@khimov.ru
gpg --keyserver hkp://subkeys.pgp.net --recv-keys 0xE5E055C3

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 205 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 3/5] perl-native: fix ExtUtils::Liblist::Kid library check for cross-build
  2010-12-25 18:05       ` Roman I Khimov
@ 2010-12-25 19:55         ` Khem Raj
  0 siblings, 0 replies; 17+ messages in thread
From: Khem Raj @ 2010-12-25 19:55 UTC (permalink / raw)
  To: openembedded-devel

On 12/25/2010 10:05 AM, Roman I Khimov wrote:
> В сообщении от Суббота 25 декабря 2010 20:33:36 автор Khem Raj написал:
>> On 12/25/2010 2:48 AM, Roman I Khimov wrote:
>>> MakeMaker uses it to check for libraries presence and if the library is
>>> not found in host dirs (/lib, /usr/lib, etc) it fails with messages like:
>>>
>>> Note (probably harmless): No library found for -lpcap
>>>
>>> Unfortunately it's not harmless, since MakeMaker removes such libs from
>>> flags passed to link target modules which obviously breaks them.
>>>
>>> As I don't know exact semantic and all use-cases of libpth config
>>> variable I've workarounded this issue by prepending ldflags (and this
>>> does contain the right path) to lib flags.
>>>
>>> Signed-off-by: Roman I Khimov<khimov@altell.ru>
>>
>> is this a problem for perl-native or target perl ?
>
> For target perl libraries. Seen that on Net::PCAP, the package built fine, but
> the actual library wasn't linked to pcap, thus not working. But in order for
> target perl libraries to build properly native perl needs to be patched.

got it.

Acked-by: Khem Raj <raj.khem@gmail.com>

>
>
>
>
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel




^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 2/5] perl 5.10.1: fix Time::HiRes cross-compilation
  2010-12-25 18:25     ` Roman I Khimov
@ 2010-12-25 19:57       ` Khem Raj
  2010-12-26  6:26         ` Roman I Khimov
  0 siblings, 1 reply; 17+ messages in thread
From: Khem Raj @ 2010-12-25 19:57 UTC (permalink / raw)
  To: openembedded-devel

On 12/25/2010 10:25 AM, Roman I Khimov wrote:
> В сообщении от Суббота 25 декабря 2010 20:30:49 автор Khem Raj написал:
>> On 12/25/2010 2:48 AM, Roman I Khimov wrote:
>>> We can't do 'run' check, so let's hope compile check is enough.
>>> Fixes
>>>
>>> Time::HiRes::nanosleep(): unimplemented in this platform
>>>
>>> error.
>>>
>>> Signed-off-by: Roman I Khimov<khimov@altell.ru>
>>
>> is it possible to cache the vars instead? that will be better to keep
>> list of variables that are not runchecked
>
> Well, glancing at code another time, it probably could be solved via
> d_nanosleep in Config.sh. I think it's safe to assume that all of our targets
> implement nanosleep().
>

hmmm, I would be skeptical on the assumption but if you add this to the 
comment that would help someone who would want to use on  a weird 
architecture one day


Acked-by: Khem Raj <raj.khem@gmail.com>

>
>
>
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel




^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 1/5] perl: fix PERLCONFIGTARGET for multimach builds, move cpan vars
  2010-12-25 18:44   ` Roman I Khimov
@ 2010-12-25 20:01     ` Khem Raj
  0 siblings, 0 replies; 17+ messages in thread
From: Khem Raj @ 2010-12-25 20:01 UTC (permalink / raw)
  To: openembedded-devel

On 12/25/2010 10:44 AM, Roman I Khimov wrote:
> В сообщении от Суббота 25 декабря 2010 20:23:02 автор Khem Raj написал:
>> On 12/25/2010 2:48 AM, Roman I Khimov wrote:
>>> Multimachine builds race staging Config_heavy-target.pl to native
>>> directory. Solve that by changing PERLCONFIGTARGET variable semantics,
>>> now it will contain $TARGET_SYS. Change perl patch and stage functions
>>> accordingly.
>>>
>>> Also, move PERLCONFIGTARGET and other target-specific variable settings
>>> from cpan to cpan-base as I think they're also useful for cpan_build and
>>> anywhere else cpan-base is needed.
>>>
>>> Signed-off-by: Roman I Khimov<khimov@altell.ru>
>>> ---
>>>    classes/cpan-base.bbclass                          |   14
>>> ++++++++++++-- classes/cpan.bbclass                               |   10
>>> ---------- classes/cpan_build.bbclass                         |    4 ++--
>>> .../perl/perl-5.10.1/perl-configpm-switch.patch    |    6 +++---
>>> recipes/perl/perl-5.8.8/perl-configpm-switch.patch |    6 +++---
>>> recipes/perl/perl-native_5.10.1.bb                 |    2 +-
>>>    recipes/perl/perl-native_5.8.8.bb                  |    2 +-
>>>    recipes/perl/perl_5.10.1.bb                        |    4 ++--
>>>    recipes/perl/perl_5.8.8.bb                         |    2 +-
>>>    9 files changed, 25 insertions(+), 25 deletions(-)
>>>
>>> diff --git a/classes/cpan-base.bbclass b/classes/cpan-base.bbclass
>>> index a04f61c..53621ed 100644
>>> --- a/classes/cpan-base.bbclass
>>> +++ b/classes/cpan-base.bbclass
>>> @@ -32,11 +32,21 @@ def perl_get_libdirs(d):
>>>
>>>    def is_target(d):
>>>        if not bb.data.inherits_class('native', d):
>>> -        return "yes"
>>> -    return "no"
>>> +        return bb.data.expand('${TARGET_SYS}', d)
>>> +    return ""
>>
>> not that its wrong but I think you could also use MULTIMACH_ARCH instead
>> of TARGET_SYS here
>
> MULTIMACH_ARCH = "${PACKAGE_ARCH}"
>
> So if there is a perl lib that is "PACKAGE_ARCH = all" it will use
> Config_heavy-all.sh which won't exist if we don't symlink something there and
> that raises a question of what to symlink. Also, I don't know whether it's
> possible now, but in theory we can have builds with different target C
> libraries reusing same native perl, so complete TARGET_SYS specification is
> more appropriate IMO.
>

OK yes that is right.

Acked-by: Khem Raj <raj.khem@gmail.com>

>
>
>
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel




^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH 2/5] perl 5.10.1: fix Time::HiRes cross-compilation
  2010-12-25 19:57       ` Khem Raj
@ 2010-12-26  6:26         ` Roman I Khimov
  0 siblings, 0 replies; 17+ messages in thread
From: Roman I Khimov @ 2010-12-26  6:26 UTC (permalink / raw)
  To: openembedded-devel

[-- Attachment #1: Type: Text/Plain, Size: 1368 bytes --]

В сообщении от Суббота 25 декабря 2010 22:57:43 автор Khem Raj написал:
> On 12/25/2010 10:25 AM, Roman I Khimov wrote:
> > В сообщении от Суббота 25 декабря 2010 20:30:49 автор Khem Raj написал:
> >> On 12/25/2010 2:48 AM, Roman I Khimov wrote:
> >>> We can't do 'run' check, so let's hope compile check is enough.
> >>> Fixes
> >>>
> >>> Time::HiRes::nanosleep(): unimplemented in this platform
> >>>
> >>> error.
> >>>
> >>> Signed-off-by: Roman I Khimov<khimov@altell.ru>
> >>
> >> is it possible to cache the vars instead? that will be better to keep
> >> list of variables that are not runchecked
> >
> > Well, glancing at code another time, it probably could be solved via
> > d_nanosleep in Config.sh. I think it's safe to assume that all of our
> > targets implement nanosleep().
> 
> hmmm, I would be skeptical on the assumption 

If you're skeptical about it, then I think it's better to leave the automatic 
test as it is now (patched). Because the run part of it comes from very rare 
corner-cases, there is a comment in test program:

    ret = nanosleep(&ts1, &ts2); /* E.g. in AIX nanosleep() fails and sets 
errno to ENOSYS. */

-- 
 http://roman.khimov.ru
mailto: roman@khimov.ru
gpg --keyserver hkp://subkeys.pgp.net --recv-keys 0xE5E055C3

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 205 bytes --]

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2010-12-26  6:26 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-12-25 10:48 [PATCH 1/5] perl: fix PERLCONFIGTARGET for multimach builds, move cpan vars Roman I Khimov
2010-12-25 10:48 ` [PATCH 2/5] perl 5.10.1: fix Time::HiRes cross-compilation Roman I Khimov
2010-12-25 10:48   ` [PATCH 3/5] perl-native: fix ExtUtils::Liblist::Kid library check for cross-build Roman I Khimov
2010-12-25 10:48     ` [PATCH 4/5] perl-5.10.1: fix config var. 'need_va_copy' Roman I Khimov
2010-12-25 10:48       ` [PATCH 5/5] perl: fix some arch-specific config.sh variables Roman I Khimov
2010-12-25 17:38         ` Khem Raj
2010-12-25 17:39       ` [PATCH 4/5] perl-5.10.1: fix config var. 'need_va_copy' Khem Raj
2010-12-25 17:33     ` [PATCH 3/5] perl-native: fix ExtUtils::Liblist::Kid library check for cross-build Khem Raj
2010-12-25 18:05       ` Roman I Khimov
2010-12-25 19:55         ` Khem Raj
2010-12-25 17:30   ` [PATCH 2/5] perl 5.10.1: fix Time::HiRes cross-compilation Khem Raj
2010-12-25 18:25     ` Roman I Khimov
2010-12-25 19:57       ` Khem Raj
2010-12-26  6:26         ` Roman I Khimov
2010-12-25 17:23 ` [PATCH 1/5] perl: fix PERLCONFIGTARGET for multimach builds, move cpan vars Khem Raj
2010-12-25 18:44   ` Roman I Khimov
2010-12-25 20:01     ` Khem Raj

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.