Branch: refs/heads/maint-5.40
  Home:   https://github.com/Perl/perl5
  Commit: 2956da8f1708a40f59024a6a88d96bd4605b06d6
      
https://github.com/Perl/perl5/commit/2956da8f1708a40f59024a6a88d96bd4605b06d6
  Author: Tony Cook <t...@develop-help.com>
  Date:   2024-12-30 (Mon, 30 Dec 2024)

  Changed paths:
    M sv_inline.h

  Log Message:
  -----------
  bodies_by_type[SVt_PVNV]: handle __float128 NV alignment on 32-bit

Perl SV body structures include xmg_stash and xmg_u fields at the
front, which are only valid for type SVt_PVMG and higher.

This allows those fields to be at a constant offset from the start
of the body.

To save memory perl generally allocates the bodies where
type < SVt_PVMG without the space needed for these two fields,
offsetting the body pointer back by the size of the two fields.  At
least for the first body in an arena this is technically
undefined behaviour, but we've done it forever.

With -msse __float128 requires 16 byte alignment, but for XPVNV
bodies the hack used here means that the base of the XPVNV
body ends up mis-aligned on 32-bit systems.

On 64-bit systems the combined size of those fields is 16-bytes so
the modified pointer is still properly aligned.

To fix this allocate the full XPVNV structure when 16 byte alignment
is required for NV, NV is more than 8 bytes and pointers are small
enough that the NV would have been mis-aligned.

Fixes #22577

(cherry picked from commit 914b0076e0ecf29ef800cad16518e6d8d3cb3f67)


  Commit: c5a43efc1bef22d2457888c1e223bde851e4e602
      
https://github.com/Perl/perl5/commit/c5a43efc1bef22d2457888c1e223bde851e4e602
  Author: Karl Williamson <k...@cpan.org>
  Date:   2024-12-30 (Mon, 30 Dec 2024)

  Changed paths:
    M Configure

  Log Message:
  -----------
  Configure: Fix compilation error on some systems

See https://github.com/Perl/perl5/issues/22793

This typo in a printf format causes some C compilations to fail; others
to just warn.  However stderr is redirected to /dev/null, so we weren't
aware of this issue.

When it fails, other issues cause perl to not be usable on the system.

(cherry picked from commit c9a9e95023afd06c29fb29c1d5762b9e7e3ad084)


Compare: https://github.com/Perl/perl5/compare/0ecd18899c7a...c5a43efc1bef

To unsubscribe from these emails, change your notification settings at 
https://github.com/Perl/perl5/settings/notifications

Reply via email to