]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core.git/commit
perl: Disable builtin memcpy & string inlines with gcc/x86-64-v3
authorKhem Raj <raj.khem@gmail.com>
Sun, 17 Aug 2025 05:53:31 +0000 (22:53 -0700)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Sun, 17 Aug 2025 20:36:46 +0000 (21:36 +0100)
commit6d557b16f1e45e616c6eb208e4d7a2f2839a2e4f
tree253a4cccbf5594e55f3ead2eafc09d967c10acd1
parent23b2a406c7d83f7b81aed85819b4643b93978ac9
perl: Disable builtin memcpy & string inlines with gcc/x86-64-v3

PERL built with GCC 15 and -march=x86-64-v3 fails several
op/pack.t cases due to aggressive lowering of __builtin_memcpy
and inlined/fortified string ops. In pp_pack, some in-place copies
can overlap, treating memcpy as non-overlapping yields corrupted
bytes (zeros or wrong prefixes).

The issue does not reproduce with -march=core2.

When using x86-64-v3 memcpy gets emitted very aggressively
(vectorized / reordered) and assumes no overlap.

The flags force calls through libc (overlap-safe behavior),
restoring deterministic pack/unpack and fixing the test failures.

Inline functions could be faster in execution but correctness is
more important

Fixes [YOCTO #15950]

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
meta/recipes-devtools/perl/perl_5.40.2.bb