[RFC,4/9] perl/perlcross: Improve native reproducability

Message ID 20211128094532.1145820-5-jacob.kroon@gmail.com
State New
Headers show
Series Improve native/cross reproducibility | expand

Commit Message

Jacob Kroon Nov. 28, 2021, 9:45 a.m. UTC
In order to make perlcross-native independent of build path we need to follow
the symlinks when copying the patches, otherwise they will point to whereever
oe-core is checked out for that particular build.

Doing this reveals an issue in perl-native, where it copies the patches
from perlcross-native's sysroot, but both perlcross and perl have a
patch called "determinism.patch", so one of them gets overridden. Rename
the patch in perlcross so that this doesn't happen.

Signed-off-by: Jacob Kroon <jacob.kroon@gmail.com>
---
 .../{determinism.patch => perl-cross-determinism.patch}      | 0
 meta/recipes-devtools/perl-cross/perlcross_1.3.6.bb          | 4 ++--
 meta/recipes-devtools/perl/perl_5.34.0.bb                    | 5 +++++
 3 files changed, 7 insertions(+), 2 deletions(-)
 rename meta/recipes-devtools/perl-cross/files/{determinism.patch => perl-cross-determinism.patch} (100%)

Comments

Alexander Kanavin Nov. 29, 2021, 9:07 a.m. UTC | #1
Can you split the determinism patch fix into a separate patch please?

Alex

On Sun, 28 Nov 2021 at 10:46, Jacob Kroon <jacob.kroon@gmail.com> wrote:

> In order to make perlcross-native independent of build path we need to
> follow
> the symlinks when copying the patches, otherwise they will point to
> whereever
> oe-core is checked out for that particular build.
>
> Doing this reveals an issue in perl-native, where it copies the patches
> from perlcross-native's sysroot, but both perlcross and perl have a
> patch called "determinism.patch", so one of them gets overridden. Rename
> the patch in perlcross so that this doesn't happen.
>
> Signed-off-by: Jacob Kroon <jacob.kroon@gmail.com>
> ---
>  .../{determinism.patch => perl-cross-determinism.patch}      | 0
>  meta/recipes-devtools/perl-cross/perlcross_1.3.6.bb          | 4 ++--
>  meta/recipes-devtools/perl/perl_5.34.0.bb                    | 5 +++++
>  3 files changed, 7 insertions(+), 2 deletions(-)
>  rename meta/recipes-devtools/perl-cross/files/{determinism.patch =>
> perl-cross-determinism.patch} (100%)
>
> diff --git a/meta/recipes-devtools/perl-cross/files/determinism.patch
> b/meta/recipes-devtools/perl-cross/files/perl-cross-determinism.patch
> similarity index 100%
> rename from meta/recipes-devtools/perl-cross/files/determinism.patch
> rename to
> meta/recipes-devtools/perl-cross/files/perl-cross-determinism.patch
> diff --git a/meta/recipes-devtools/perl-cross/perlcross_1.3.6.bb
> b/meta/recipes-devtools/perl-cross/perlcross_1.3.6.bb
> index 2759ef8a53..dab7f4558f 100644
> --- a/meta/recipes-devtools/perl-cross/perlcross_1.3.6.bb
> +++ b/meta/recipes-devtools/perl-cross/perlcross_1.3.6.bb
> @@ -15,7 +15,7 @@ SRC_URI = "
> https://github.com/arsv/perl-cross/releases/download/${PV}/perl-cross
>
> 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://perl-cross-determinism.patch \
>
> file://0001-cnf-configure_func_sel.sh-disable-thread_safe_nl_lan.patch \
>             file://0001-Makefile-check-the-file-if-patched-or-not.patch \
>             "
> @@ -33,7 +33,7 @@ do_compile () {
>
>  do_install:class-native() {
>      mkdir -p ${D}/${datadir}/perl-cross/
> -    cp -rf ${S}/* ${D}/${datadir}/perl-cross/
> +    cp -rfL ${S}/* ${D}/${datadir}/perl-cross/
>  }
>
>  BBCLASSEXTEND = "native"
> diff --git a/meta/recipes-devtools/perl/perl_5.34.0.bb
> b/meta/recipes-devtools/perl/perl_5.34.0.bb
> index 16d45ccff3..0b74d5f072 100644
> --- a/meta/recipes-devtools/perl/perl_5.34.0.bb
> +++ b/meta/recipes-devtools/perl/perl_5.34.0.bb
> @@ -97,6 +97,9 @@ do_configure:class-native() {
>      -Dvendorprefix=${prefix} \
>      -Ui_xlocale \
>      ${PACKAGECONFIG_CONFARGS}
> +
> +    # See the comment above
> +    sed -i -e "s,${STAGING_DIR_NATIVE},/non/existent,g" config.h
>  }
>
>  do_configure:append() {
> @@ -395,3 +398,5 @@ SSTATE_HASHEQUIV_FILEMAP = " \
>      populate_sysroot:*/lib*/perl5/config.sh:${TMPDIR} \
>      populate_sysroot:*/lib*/perl5/config.sh:${COREBASE} \
>      "
> +
> +EXTRA_STAGING_FIXMES:append:class-native = " RPATH_PADDING"
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#158871):
> https://lists.openembedded.org/g/openembedded-core/message/158871
> Mute This Topic: https://lists.openembedded.org/mt/87352797/1686489
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [
> alex.kanavin@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>
Jacob Kroon Nov. 29, 2021, 4:44 p.m. UTC | #2
On 11/29/21 10:07, Alexander Kanavin wrote:
> Can you split the determinism patch fix into a separate patch please?
> 

I don't know what exactly is the right fix here. Should both
"determinism.patch":es be applied when building perl-native ?

Jacob

> Alex
> 
> On Sun, 28 Nov 2021 at 10:46, Jacob Kroon <jacob.kroon@gmail.com
> <mailto:jacob.kroon@gmail.com>> wrote:
> 
>     In order to make perlcross-native independent of build path we need
>     to follow
>     the symlinks when copying the patches, otherwise they will point to
>     whereever
>     oe-core is checked out for that particular build.
> 
>     Doing this reveals an issue in perl-native, where it copies the patches
>     from perlcross-native's sysroot, but both perlcross and perl have a
>     patch called "determinism.patch", so one of them gets overridden. Rename
>     the patch in perlcross so that this doesn't happen.
> 
>     Signed-off-by: Jacob Kroon <jacob.kroon@gmail.com
>     <mailto:jacob.kroon@gmail.com>>
>     ---
>      .../{determinism.patch => perl-cross-determinism.patch}      | 0
>      meta/recipes-devtools/perl-cross/perlcross_1.3.6.bb
>     <http://perlcross_1.3.6.bb>          | 4 ++--
>      meta/recipes-devtools/perl/perl_5.34.0.bb <http://perl_5.34.0.bb> 
>                       | 5 +++++
>      3 files changed, 7 insertions(+), 2 deletions(-)
>      rename meta/recipes-devtools/perl-cross/files/{determinism.patch =>
>     perl-cross-determinism.patch} (100%)
> 
>     diff --git
>     a/meta/recipes-devtools/perl-cross/files/determinism.patch
>     b/meta/recipes-devtools/perl-cross/files/perl-cross-determinism.patch
>     similarity index 100%
>     rename from meta/recipes-devtools/perl-cross/files/determinism.patch
>     rename to
>     meta/recipes-devtools/perl-cross/files/perl-cross-determinism.patch
>     diff --git a/meta/recipes-devtools/perl-cross/perlcross_1.3.6.bb
>     <http://perlcross_1.3.6.bb>
>     b/meta/recipes-devtools/perl-cross/perlcross_1.3.6.bb
>     <http://perlcross_1.3.6.bb>
>     index 2759ef8a53..dab7f4558f 100644
>     --- a/meta/recipes-devtools/perl-cross/perlcross_1.3.6.bb
>     <http://perlcross_1.3.6.bb>
>     +++ b/meta/recipes-devtools/perl-cross/perlcross_1.3.6.bb
>     <http://perlcross_1.3.6.bb>
>     @@ -15,7 +15,7 @@ SRC_URI =
>     "https://github.com/arsv/perl-cross/releases/download/${PV}/perl-cross
>     <https://github.com/arsv/perl-cross/releases/download/$%7BPV%7D/perl-cross>
>                
>     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://perl-cross-determinism.patch \
>                
>     file://0001-cnf-configure_func_sel.sh-disable-thread_safe_nl_lan.patch \
>                
>     file://0001-Makefile-check-the-file-if-patched-or-not.patch \
>                 "
>     @@ -33,7 +33,7 @@ do_compile () {
> 
>      do_install:class-native() {
>          mkdir -p ${D}/${datadir}/perl-cross/
>     -    cp -rf ${S}/* ${D}/${datadir}/perl-cross/
>     +    cp -rfL ${S}/* ${D}/${datadir}/perl-cross/
>      }
> 
>      BBCLASSEXTEND = "native"
>     diff --git a/meta/recipes-devtools/perl/perl_5.34.0.bb
>     <http://perl_5.34.0.bb> b/meta/recipes-devtools/perl/perl_5.34.0.bb
>     <http://perl_5.34.0.bb>
>     index 16d45ccff3..0b74d5f072 100644
>     --- a/meta/recipes-devtools/perl/perl_5.34.0.bb <http://perl_5.34.0.bb>
>     +++ b/meta/recipes-devtools/perl/perl_5.34.0.bb <http://perl_5.34.0.bb>
>     @@ -97,6 +97,9 @@ do_configure:class-native() {
>          -Dvendorprefix=${prefix} \
>          -Ui_xlocale \
>          ${PACKAGECONFIG_CONFARGS}
>     +
>     +    # See the comment above
>     +    sed -i -e "s,${STAGING_DIR_NATIVE},/non/existent,g" config.h
>      }
> 
>      do_configure:append() {
>     @@ -395,3 +398,5 @@ SSTATE_HASHEQUIV_FILEMAP = " \
>          populate_sysroot:*/lib*/perl5/config.sh:${TMPDIR} \
>          populate_sysroot:*/lib*/perl5/config.sh:${COREBASE} \
>          "
>     +
>     +EXTRA_STAGING_FIXMES:append:class-native = " RPATH_PADDING"
> 
>     
>
Alexander Kanavin Nov. 29, 2021, 7:42 p.m. UTC | #3
On Mon, 29 Nov 2021 at 17:44, Jacob Kroon <jacob.kroon@gmail.com> wrote:

> On 11/29/21 10:07, Alexander Kanavin wrote:
> > Can you split the determinism patch fix into a separate patch please?
> >
>
> I don't know what exactly is the right fix here. Should both
> "determinism.patch":es be applied when building perl-native ?
>


Right, I'll take a look at this myself then.

Alex


>
> Jacob
>
> > Alex
> >
> > On Sun, 28 Nov 2021 at 10:46, Jacob Kroon <jacob.kroon@gmail.com
> > <mailto:jacob.kroon@gmail.com>> wrote:
> >
> >     In order to make perlcross-native independent of build path we need
> >     to follow
> >     the symlinks when copying the patches, otherwise they will point to
> >     whereever
> >     oe-core is checked out for that particular build.
> >
> >     Doing this reveals an issue in perl-native, where it copies the
> patches
> >     from perlcross-native's sysroot, but both perlcross and perl have a
> >     patch called "determinism.patch", so one of them gets overridden.
> Rename
> >     the patch in perlcross so that this doesn't happen.
> >
> >     Signed-off-by: Jacob Kroon <jacob.kroon@gmail.com
> >     <mailto:jacob.kroon@gmail.com>>
> >     ---
> >      .../{determinism.patch => perl-cross-determinism.patch}      | 0
> >      meta/recipes-devtools/perl-cross/perlcross_1.3.6.bb
> >     <http://perlcross_1.3.6.bb>          | 4 ++--
> >      meta/recipes-devtools/perl/perl_5.34.0.bb <http://perl_5.34.0.bb>
> >                       | 5 +++++
> >      3 files changed, 7 insertions(+), 2 deletions(-)
> >      rename meta/recipes-devtools/perl-cross/files/{determinism.patch =>
> >     perl-cross-determinism.patch} (100%)
> >
> >     diff --git
> >     a/meta/recipes-devtools/perl-cross/files/determinism.patch
> >     b/meta/recipes-devtools/perl-cross/files/perl-cross-determinism.patch
> >     similarity index 100%
> >     rename from meta/recipes-devtools/perl-cross/files/determinism.patch
> >     rename to
> >     meta/recipes-devtools/perl-cross/files/perl-cross-determinism.patch
> >     diff --git a/meta/recipes-devtools/perl-cross/perlcross_1.3.6.bb
> >     <http://perlcross_1.3.6.bb>
> >     b/meta/recipes-devtools/perl-cross/perlcross_1.3.6.bb
> >     <http://perlcross_1.3.6.bb>
> >     index 2759ef8a53..dab7f4558f 100644
> >     --- a/meta/recipes-devtools/perl-cross/perlcross_1.3.6.bb
> >     <http://perlcross_1.3.6.bb>
> >     +++ b/meta/recipes-devtools/perl-cross/perlcross_1.3.6.bb
> >     <http://perlcross_1.3.6.bb>
> >     @@ -15,7 +15,7 @@ SRC_URI =
> >     "
> https://github.com/arsv/perl-cross/releases/download/${PV}/perl-cross
> >     <
> https://github.com/arsv/perl-cross/releases/download/$%7BPV%7D/perl-cross>
> >
> >
>  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://perl-cross-determinism.patch \
> >
> >
>  file://0001-cnf-configure_func_sel.sh-disable-thread_safe_nl_lan.patch \
> >
> >     file://0001-Makefile-check-the-file-if-patched-or-not.patch \
> >                 "
> >     @@ -33,7 +33,7 @@ do_compile () {
> >
> >      do_install:class-native() {
> >          mkdir -p ${D}/${datadir}/perl-cross/
> >     -    cp -rf ${S}/* ${D}/${datadir}/perl-cross/
> >     +    cp -rfL ${S}/* ${D}/${datadir}/perl-cross/
> >      }
> >
> >      BBCLASSEXTEND = "native"
> >     diff --git a/meta/recipes-devtools/perl/perl_5.34.0.bb
> >     <http://perl_5.34.0.bb> b/meta/recipes-devtools/perl/perl_5.34.0.bb
> >     <http://perl_5.34.0.bb>
> >     index 16d45ccff3..0b74d5f072 100644
> >     --- a/meta/recipes-devtools/perl/perl_5.34.0.bb <
> http://perl_5.34.0.bb>
> >     +++ b/meta/recipes-devtools/perl/perl_5.34.0.bb <
> http://perl_5.34.0.bb>
> >     @@ -97,6 +97,9 @@ do_configure:class-native() {
> >          -Dvendorprefix=${prefix} \
> >          -Ui_xlocale \
> >          ${PACKAGECONFIG_CONFARGS}
> >     +
> >     +    # See the comment above
> >     +    sed -i -e "s,${STAGING_DIR_NATIVE},/non/existent,g" config.h
> >      }
> >
> >      do_configure:append() {
> >     @@ -395,3 +398,5 @@ SSTATE_HASHEQUIV_FILEMAP = " \
> >          populate_sysroot:*/lib*/perl5/config.sh:${TMPDIR} \
> >          populate_sysroot:*/lib*/perl5/config.sh:${COREBASE} \
> >          "
> >     +
> >     +EXTRA_STAGING_FIXMES:append:class-native = " RPATH_PADDING"
> >
> >     -=-=-=-=-=-=-=-=-=-=-=-
> >     Links: You receive all messages sent to this group.
> >     View/Reply Online (#158871):
> >     https://lists.openembedded.org/g/openembedded-core/message/158871
> >     <https://lists.openembedded.org/g/openembedded-core/message/158871>
> >     Mute This Topic: https://lists.openembedded.org/mt/87352797/1686489
> >     <https://lists.openembedded.org/mt/87352797/1686489>
> >     Group Owner: openembedded-core+owner@lists.openembedded.org
> >     <mailto:openembedded-core%2Bowner@lists.openembedded.org>
> >     Unsubscribe:
> >     https://lists.openembedded.org/g/openembedded-core/unsub
> >     <https://lists.openembedded.org/g/openembedded-core/unsub>
> >     [alex.kanavin@gmail.com <mailto:alex.kanavin@gmail.com>]
> >     -=-=-=-=-=-=-=-=-=-=-=-
> >
>
Alexander Kanavin Nov. 29, 2021, 8:14 p.m. UTC | #4
I have fixed this differently, and more reliably - you can cherry-pick into
your branch:
https://git.yoctoproject.org/poky-contrib/commit/?h=akanavin/package-version-updates&id=40e8c7af7e32045805bab318e66b644c0e8ed3f2

Alex

On Mon, 29 Nov 2021 at 20:43, Alexander Kanavin via lists.openembedded.org
<alex.kanavin=gmail.com@lists.openembedded.org> wrote:

> On Mon, 29 Nov 2021 at 17:44, Jacob Kroon <jacob.kroon@gmail.com> wrote:
>
>> On 11/29/21 10:07, Alexander Kanavin wrote:
>> > Can you split the determinism patch fix into a separate patch please?
>> >
>>
>> I don't know what exactly is the right fix here. Should both
>> "determinism.patch":es be applied when building perl-native ?
>>
>
>
> Right, I'll take a look at this myself then.
>
> Alex
>
>
>>
>> Jacob
>>
>> > Alex
>> >
>> > On Sun, 28 Nov 2021 at 10:46, Jacob Kroon <jacob.kroon@gmail.com
>> > <mailto:jacob.kroon@gmail.com>> wrote:
>> >
>> >     In order to make perlcross-native independent of build path we need
>> >     to follow
>> >     the symlinks when copying the patches, otherwise they will point to
>> >     whereever
>> >     oe-core is checked out for that particular build.
>> >
>> >     Doing this reveals an issue in perl-native, where it copies the
>> patches
>> >     from perlcross-native's sysroot, but both perlcross and perl have a
>> >     patch called "determinism.patch", so one of them gets overridden.
>> Rename
>> >     the patch in perlcross so that this doesn't happen.
>> >
>> >     Signed-off-by: Jacob Kroon <jacob.kroon@gmail.com
>> >     <mailto:jacob.kroon@gmail.com>>
>> >     ---
>> >      .../{determinism.patch => perl-cross-determinism.patch}      | 0
>> >      meta/recipes-devtools/perl-cross/perlcross_1.3.6.bb
>> >     <http://perlcross_1.3.6.bb>          | 4 ++--
>> >      meta/recipes-devtools/perl/perl_5.34.0.bb <http://perl_5.34.0.bb>
>> >                       | 5 +++++
>> >      3 files changed, 7 insertions(+), 2 deletions(-)
>> >      rename meta/recipes-devtools/perl-cross/files/{determinism.patch =>
>> >     perl-cross-determinism.patch} (100%)
>> >
>> >     diff --git
>> >     a/meta/recipes-devtools/perl-cross/files/determinism.patch
>> >
>>  b/meta/recipes-devtools/perl-cross/files/perl-cross-determinism.patch
>> >     similarity index 100%
>> >     rename from meta/recipes-devtools/perl-cross/files/determinism.patch
>> >     rename to
>> >     meta/recipes-devtools/perl-cross/files/perl-cross-determinism.patch
>> >     diff --git a/meta/recipes-devtools/perl-cross/perlcross_1.3.6.bb
>> >     <http://perlcross_1.3.6.bb>
>> >     b/meta/recipes-devtools/perl-cross/perlcross_1.3.6.bb
>> >     <http://perlcross_1.3.6.bb>
>> >     index 2759ef8a53..dab7f4558f 100644
>> >     --- a/meta/recipes-devtools/perl-cross/perlcross_1.3.6.bb
>> >     <http://perlcross_1.3.6.bb>
>> >     +++ b/meta/recipes-devtools/perl-cross/perlcross_1.3.6.bb
>> >     <http://perlcross_1.3.6.bb>
>> >     @@ -15,7 +15,7 @@ SRC_URI =
>> >     "
>> https://github.com/arsv/perl-cross/releases/download/${PV}/perl-cross
>> >     <
>> https://github.com/arsv/perl-cross/releases/download/$%7BPV%7D/perl-cross
>> >
>> >
>> >
>>  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://perl-cross-determinism.patch \
>> >
>> >
>>  file://0001-cnf-configure_func_sel.sh-disable-thread_safe_nl_lan.patch \
>> >
>> >     file://0001-Makefile-check-the-file-if-patched-or-not.patch \
>> >                 "
>> >     @@ -33,7 +33,7 @@ do_compile () {
>> >
>> >      do_install:class-native() {
>> >          mkdir -p ${D}/${datadir}/perl-cross/
>> >     -    cp -rf ${S}/* ${D}/${datadir}/perl-cross/
>> >     +    cp -rfL ${S}/* ${D}/${datadir}/perl-cross/
>> >      }
>> >
>> >      BBCLASSEXTEND = "native"
>> >     diff --git a/meta/recipes-devtools/perl/perl_5.34.0.bb
>> >     <http://perl_5.34.0.bb> b/meta/recipes-devtools/perl/perl_5.34.0.bb
>> >     <http://perl_5.34.0.bb>
>> >     index 16d45ccff3..0b74d5f072 100644
>> >     --- a/meta/recipes-devtools/perl/perl_5.34.0.bb <
>> http://perl_5.34.0.bb>
>> >     +++ b/meta/recipes-devtools/perl/perl_5.34.0.bb <
>> http://perl_5.34.0.bb>
>> >     @@ -97,6 +97,9 @@ do_configure:class-native() {
>> >          -Dvendorprefix=${prefix} \
>> >          -Ui_xlocale \
>> >          ${PACKAGECONFIG_CONFARGS}
>> >     +
>> >     +    # See the comment above
>> >     +    sed -i -e "s,${STAGING_DIR_NATIVE},/non/existent,g" config.h
>> >      }
>> >
>> >      do_configure:append() {
>> >     @@ -395,3 +398,5 @@ SSTATE_HASHEQUIV_FILEMAP = " \
>> >          populate_sysroot:*/lib*/perl5/config.sh:${TMPDIR} \
>> >          populate_sysroot:*/lib*/perl5/config.sh:${COREBASE} \
>> >          "
>> >     +
>> >     +EXTRA_STAGING_FIXMES:append:class-native = " RPATH_PADDING"
>> >
>> >
>> >
>>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#158959):
> https://lists.openembedded.org/g/openembedded-core/message/158959
> Mute This Topic: https://lists.openembedded.org/mt/87352797/1686489
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [
> alex.kanavin@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
>

Patch

diff --git a/meta/recipes-devtools/perl-cross/files/determinism.patch b/meta/recipes-devtools/perl-cross/files/perl-cross-determinism.patch
similarity index 100%
rename from meta/recipes-devtools/perl-cross/files/determinism.patch
rename to meta/recipes-devtools/perl-cross/files/perl-cross-determinism.patch
diff --git a/meta/recipes-devtools/perl-cross/perlcross_1.3.6.bb b/meta/recipes-devtools/perl-cross/perlcross_1.3.6.bb
index 2759ef8a53..dab7f4558f 100644
--- a/meta/recipes-devtools/perl-cross/perlcross_1.3.6.bb
+++ b/meta/recipes-devtools/perl-cross/perlcross_1.3.6.bb
@@ -15,7 +15,7 @@  SRC_URI = "https://github.com/arsv/perl-cross/releases/download/${PV}/perl-cross
            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://perl-cross-determinism.patch \
            file://0001-cnf-configure_func_sel.sh-disable-thread_safe_nl_lan.patch \
            file://0001-Makefile-check-the-file-if-patched-or-not.patch \
            "
@@ -33,7 +33,7 @@  do_compile () {
 
 do_install:class-native() {
     mkdir -p ${D}/${datadir}/perl-cross/
-    cp -rf ${S}/* ${D}/${datadir}/perl-cross/
+    cp -rfL ${S}/* ${D}/${datadir}/perl-cross/
 }
 
 BBCLASSEXTEND = "native"
diff --git a/meta/recipes-devtools/perl/perl_5.34.0.bb b/meta/recipes-devtools/perl/perl_5.34.0.bb
index 16d45ccff3..0b74d5f072 100644
--- a/meta/recipes-devtools/perl/perl_5.34.0.bb
+++ b/meta/recipes-devtools/perl/perl_5.34.0.bb
@@ -97,6 +97,9 @@  do_configure:class-native() {
     -Dvendorprefix=${prefix} \
     -Ui_xlocale \
     ${PACKAGECONFIG_CONFARGS}
+
+    # See the comment above
+    sed -i -e "s,${STAGING_DIR_NATIVE},/non/existent,g" config.h
 }
 
 do_configure:append() {
@@ -395,3 +398,5 @@  SSTATE_HASHEQUIV_FILEMAP = " \
     populate_sysroot:*/lib*/perl5/config.sh:${TMPDIR} \
     populate_sysroot:*/lib*/perl5/config.sh:${COREBASE} \
     "
+
+EXTRA_STAGING_FIXMES:append:class-native = " RPATH_PADDING"