diff options
Diffstat (limited to 'poky/meta/recipes-devtools/perl-cross')
7 files changed, 266 insertions, 0 deletions
diff --git a/poky/meta/recipes-devtools/perl-cross/files/0001-cnf-configure_func_sel.sh-disable-thread_safe_nl_lan.patch b/poky/meta/recipes-devtools/perl-cross/files/0001-cnf-configure_func_sel.sh-disable-thread_safe_nl_lan.patch new file mode 100644 index 000000000..744e4e09c --- /dev/null +++ b/poky/meta/recipes-devtools/perl-cross/files/0001-cnf-configure_func_sel.sh-disable-thread_safe_nl_lan.patch @@ -0,0 +1,27 @@ +From d22f2bb5afcd278b68999f5ce0362328fc8c7723 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Thu, 3 Jun 2021 18:50:56 +0200 +Subject: [PATCH] cnf/configure_func_sel.sh: disable thread_safe_nl_langinfo_l + +Upstream-Status: Submitted [https://github.com/arsv/perl-cross/pull/115] +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> +--- + cnf/configure_func_sel.sh | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/cnf/configure_func_sel.sh b/cnf/configure_func_sel.sh +index f48294f..90d350d 100644 +--- a/cnf/configure_func_sel.sh ++++ b/cnf/configure_func_sel.sh +@@ -97,5 +97,9 @@ else + result "irrelevant" + fi + +-# Assume nl_langinfo_l is threadsafe if available +-define d_thread_safe_nl_langinfo_l "$d_nl_langinfo_l" ++# thread_safe_nl_langinfo_l is not enabled by default ++# by upstream, and causes t/Langinfo.t to fail when it is ++# (starting from 5.34.0). This means the configuration is ++# either not well tested, or not at all tested, so we should ++# pick a safer option. ++define d_thread_safe_nl_langinfo_l "undef" diff --git a/poky/meta/recipes-devtools/perl-cross/files/0001-configure_path.sh-do-not-hardcode-prefix-lib-as-libr.patch b/poky/meta/recipes-devtools/perl-cross/files/0001-configure_path.sh-do-not-hardcode-prefix-lib-as-libr.patch new file mode 100644 index 000000000..3b0fc453e --- /dev/null +++ b/poky/meta/recipes-devtools/perl-cross/files/0001-configure_path.sh-do-not-hardcode-prefix-lib-as-libr.patch @@ -0,0 +1,69 @@ +From 19c1987b455998d2959a5fdf3d1ed911d35e70f2 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Wed, 2 Jan 2019 17:55:35 +0100 +Subject: [PATCH] configure_path.sh: do not hardcode $prefix/lib as library + path + +Upstream-Status: Pending +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> + +--- + cnf/configure_args.sh | 2 +- + cnf/configure_path.sh | 11 ++++++----- + 2 files changed, 7 insertions(+), 6 deletions(-) + +diff --git a/cnf/configure_args.sh b/cnf/configure_args.sh +index 29ca4f5..3297fb3 100644 +--- a/cnf/configure_args.sh ++++ b/cnf/configure_args.sh +@@ -155,7 +155,7 @@ while [ $i -le $# -o -n "$n" ]; do + help) mode="help" ;; + regen|regenerate) mode="regen" ;; + keeplog) defuser "$a" 1 ;; +- prefix|html[13]dir|libsdir) defuser $a "$v" ;; ++ prefix|html[13]dir|libsdir|libdir) defuser $a "$v" ;; + man[13]dir|otherlibsdir) defuser $a "$v" ;; + siteprefix|sitehtml[13]dir) defuser $a "$v" ;; + siteman[13]dir|vendorman[13]dir)defuser $a "$v" ;; +diff --git a/cnf/configure_path.sh b/cnf/configure_path.sh +index fe7eac7..bcba8b8 100644 +--- a/cnf/configure_path.sh ++++ b/cnf/configure_path.sh +@@ -30,6 +30,7 @@ definst() { + define "$1" "$installpath$v" + } + ++define libdir "$prefix/lib" + define sharedir "$prefix/share" + define html1dir "$sharedir/doc/$perlname/html" + define html3dir "$sharedir/doc/$perlname/html" +@@ -38,16 +39,16 @@ define man1ext "1" + define man3dir "$sharedir/man/man3" + define man3ext "3" + define bin "$prefix/bin" +-define lib "$prefix/lib" ++define lib "$libdir" + define scriptdir "$prefix/bin" + define libsdirs ' ' +-defrel privlib "$prefix/lib/$package/$version" +-defrel archlib "$prefix/lib/$package/$version/$archname" ++defrel privlib "$libdir/$package/$version" ++defrel archlib "$libdir/$package/$version/$archname" + define perlpath "$prefix/bin/$perlname" + define d_archlib 'define' + + define sitebin "$prefix/bin" +-defrel sitelib_stem "$prefix/lib/$package/site_perl" ++defrel sitelib_stem "$libdir/$package/site_perl" + define sitelib "$sitelib_stem/$version" + define sitearch "$sitelib_stem/$version/$archname" + define siteprefix "$prefix" +@@ -145,7 +146,7 @@ vendortest() { + } + + vendorpath vendorbin "$vendorprefix/bin" +-vendorpath vendorlib_stem "$vendorprefix/lib/$package/vendor_perl" ++vendorpath vendorlib_stem "$libdir/$package/vendor_perl" + vendorpath vendorlib "$vendorlib_stem/$version" + vendorpath vendorarch "$vendorlib_stem/$version/$archname" + vendorpath vendorscript "$vendorprefix/bin" diff --git a/poky/meta/recipes-devtools/perl-cross/files/0001-configure_tool.sh-do-not-quote-the-argument-to-comma.patch b/poky/meta/recipes-devtools/perl-cross/files/0001-configure_tool.sh-do-not-quote-the-argument-to-comma.patch new file mode 100644 index 000000000..0aaeaa29e --- /dev/null +++ b/poky/meta/recipes-devtools/perl-cross/files/0001-configure_tool.sh-do-not-quote-the-argument-to-comma.patch @@ -0,0 +1,29 @@ +From a66811c487ecf8ba8724879c253bb10dfa82aeb5 Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Fri, 1 Jun 2018 19:57:32 +0300 +Subject: [PATCH] configure_tool.sh: do not quote the argument to 'command' + +As it seems to break things if the argument has spaces and arguments in it. + +Upstream-Status: Pending +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> +--- + cnf/configure_tool.sh | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/cnf/configure_tool.sh b/cnf/configure_tool.sh +index 32201c0..461bc68 100644 +--- a/cnf/configure_tool.sh ++++ b/cnf/configure_tool.sh +@@ -2,7 +2,7 @@ + + tryprog() { + log "trying $1=$2" +- if command -v "$2" 1>/dev/null 2>/dev/null; then ++ if command -v $2 1>/dev/null 2>/dev/null; then + define "$1" "$2" + result "$2" + return 0 +-- +2.17.0 + diff --git a/poky/meta/recipes-devtools/perl-cross/files/0001-perl-cross-add-LDFLAGS-when-linking-libperl.patch b/poky/meta/recipes-devtools/perl-cross/files/0001-perl-cross-add-LDFLAGS-when-linking-libperl.patch new file mode 100644 index 000000000..e7985036a --- /dev/null +++ b/poky/meta/recipes-devtools/perl-cross/files/0001-perl-cross-add-LDFLAGS-when-linking-libperl.patch @@ -0,0 +1,27 @@ +From f824cbec9ac8f113a4ae35d57bd18625d415a71b Mon Sep 17 00:00:00 2001 +From: Alexander Kanavin <alex.kanavin@gmail.com> +Date: Tue, 27 Nov 2018 15:37:40 +0100 +Subject: [PATCH] perl-cross: add LDFLAGS when linking libperl + +Upstream-Status: Pending +Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> +--- + Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Makefile b/Makefile +index 01644cd..be811a7 100644 +--- a/Makefile ++++ b/Makefile +@@ -180,7 +180,7 @@ endif + + ifeq ($(useshrplib),true) + $(LIBPERL): +- $(CC) $(LDDLFLAGS) -o $@ $(filter %$o,$^) $(LIBS) ++ $(CC) $(LDFLAGS) $(LDDLFLAGS) -o $@ $(filter %$o,$^) $(LIBS) + else + $(LIBPERL): + $(AR) cru $@ $(filter %$o,$^) +-- +2.17.1 + diff --git a/poky/meta/recipes-devtools/perl-cross/files/README.md b/poky/meta/recipes-devtools/perl-cross/files/README.md new file mode 100644 index 000000000..93217245c --- /dev/null +++ b/poky/meta/recipes-devtools/perl-cross/files/README.md @@ -0,0 +1,29 @@ +**perl-cross** provides configure script, top-level Makefile +and some auxiliary files for [perl](http://www.perl.org), +with the primary emphasis on cross-compiling the source. + + # Get perl and perl-cross sources + curl -L -O http://www.cpan.org/src/5.0/perl-5.24.1.tar.gz + curl -L -O https://github.com/arsv/perl-cross/releases/download/1.1.3/perl-cross-1.1.3.tar.gz + + # Unpack perl-cross over perl, overwriting Makefile + tar -zxf perl-5.24.1.tar.gz + cd perl-5.24.1 + tar --strip-components=1 -zxf ../perl-cross-1.1.3.tar.gz + + # Proceed as usual with most autoconfed packages + ./configure --target=arm-linux-gnueabi --prefix=/usr -Duseshrplib + make -j4 + make DESTDIR=/path/to/staging/dir install + +Unlike mainline Perl, this configure never runs any target executables, +relying solely on compile/link tests and pre-defined hints. +On the flip side, it is only meant to run on resonably sane modern unix systems. + +Check [project pages](http://arsv.github.io/perl-cross/) for more info. +In particular, [configure usage](http://arsv.github.io/perl-cross/usage.html) +lists available configure options. + +Perl-cross is a free software licensed under the same terms +as the original perl source. +See LICENSE, Copying and Artistic files. diff --git a/poky/meta/recipes-devtools/perl-cross/files/determinism.patch b/poky/meta/recipes-devtools/perl-cross/files/determinism.patch new file mode 100644 index 000000000..e9bf752bc --- /dev/null +++ b/poky/meta/recipes-devtools/perl-cross/files/determinism.patch @@ -0,0 +1,46 @@ +Fixes to make the perl build reproducible: + +a) Remove the \n from configure_attr.sh since it gets quoted differently depending on + whether the shell is bash or dash which can cause the test result to be incorrect. + Reported upstream: https://github.com/arsv/perl-cross/issues/87 + +b) Sort the order of the module lists from configure_mods.sh since otherwise + the result isn't the same leading to makefile differences. + Reported upstream: https://github.com/arsv/perl-cross/issues/88 + +c) Sort the Encode::Byte byte_t.fnm file output (and the makefile depends whilst + there for good measure) + This needs to go to upstream perl (not done) + +d) Use bash for perl-cross configure since otherwise trnl gets set to "\n" with bash + and "" with dash + Reported upstream: https://github.com/arsv/perl-cross/issues/87 + +RP 2020/2/7 + +Upstream-Status: Pending [75% submitted] +Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org + +Index: perl-5.30.1/cnf/configure_mods.sh +=================================================================== +--- perl-5.30.1.orig/cnf/configure_mods.sh ++++ perl-5.30.1/cnf/configure_mods.sh +@@ -82,7 +82,7 @@ extonlyif() { + } + + definetrimspaces() { +- v=`echo "$2" | sed -r -e 's/\s+/ /g' -e 's/^\s+//' -e 's/\s+$//'` ++ v=`echo "$2" | sed -r -e 's/\s+/ /g' -e 's/^\s+//' -e 's/\s+$//' | xargs -n1 | LANG=C sort | xargs` + define $1 "$v" + } + +Index: perl-5.30.1/cnf/configure +=================================================================== +--- perl-5.30.1.orig/cnf/configure ++++ perl-5.30.1/cnf/configure +@@ -1,4 +1,4 @@ +-#!/bin/sh ++#!/bin/bash + + base=${0%/*}; test -z "$base" && base=. + diff --git a/poky/meta/recipes-devtools/perl-cross/perlcross_1.3.6.bb b/poky/meta/recipes-devtools/perl-cross/perlcross_1.3.6.bb new file mode 100644 index 000000000..b77bbd1fd --- /dev/null +++ b/poky/meta/recipes-devtools/perl-cross/perlcross_1.3.6.bb @@ -0,0 +1,39 @@ +SUMMARY = "Perl-cross build system" +HOMEPAGE = "https://github.com/arsv/perl-cross" +DESCRIPTION = "perl-cross provides configure script, top-level Makefile and some auxiliary files for perl, \ +with the primary emphasis on cross-compiling the source." +SECTION = "devel" +LICENSE = "Artistic-1.0 | GPL-1.0+" +# README.md is taken from https://github.com/arsv/perl-cross/blob/master/README.md +# but is not provided inside the release tarballs +LIC_FILES_CHKSUM = "file://${WORKDIR}/README.md;md5=252fcce2026b765fee1ad74d2fb07a3b" + +inherit allarch + +SRC_URI = "https://github.com/arsv/perl-cross/releases/download/${PV}/perl-cross-${PV}.tar.gz;name=perl-cross \ + file://README.md \ + file://0001-configure_tool.sh-do-not-quote-the-argument-to-comma.patch \ + file://0001-perl-cross-add-LDFLAGS-when-linking-libperl.patch \ + file://0001-configure_path.sh-do-not-hardcode-prefix-lib-as-libr.patch \ + file://determinism.patch \ + file://0001-cnf-configure_func_sel.sh-disable-thread_safe_nl_lan.patch \ + " +UPSTREAM_CHECK_URI = "https://github.com/arsv/perl-cross/releases/" + +SRC_URI[perl-cross.sha256sum] = "4010f41870d64e3957b4b8ce70ebba10a7c4a3e86c5551acb4099c3fcbb37ce5" + +S = "${WORKDIR}/perl-cross-${PV}" + +do_configure () { +} + +do_compile () { +} + +do_install_class-native() { + mkdir -p ${D}/${datadir}/perl-cross/ + cp -rf ${S}/* ${D}/${datadir}/perl-cross/ +} + +BBCLASSEXTEND = "native" + |