summaryrefslogtreecommitdiff
path: root/dev-lang/perl
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2024-12-08 02:07:29 +0000
committerV3n3RiX <venerix@koprulu.sector>2024-12-08 02:07:29 +0000
commit494168b06b81a32b889c3cb1f721f925d0a6824f (patch)
tree0ec763ffa61af808a83f365fb6680258d2e28a50 /dev-lang/perl
parent2198f8593ae0312add1bdccb49edfcb935e5f8a6 (diff)
gentoo auto-resync : 08:12:2024 - 02:07:28
Diffstat (limited to 'dev-lang/perl')
-rw-r--r--dev-lang/perl/Manifest3
-rw-r--r--dev-lang/perl/files/perl-5.40.0-alignment.patch70
-rw-r--r--dev-lang/perl/perl-5.40.0-r1.ebuild (renamed from dev-lang/perl/perl-5.38.2-r5.ebuild)65
3 files changed, 107 insertions, 31 deletions
diff --git a/dev-lang/perl/Manifest b/dev-lang/perl/Manifest
index e95af31fea19..1cff6fd2c3e7 100644
--- a/dev-lang/perl/Manifest
+++ b/dev-lang/perl/Manifest
@@ -1,5 +1,6 @@
AUX perl-5.34.0-crossfit.patch 388 BLAKE2B dda2f10732422857f1a3977b6aa6ec0536dffaa53658e23378083393a55cf283906ef8f41dde2eb83e0de4e5dfd6dcd06d6b236f0a91c44086172bcaf105396a SHA512 5da4dd913790bd125667851807da9e37dac9cda78cce18ecffb8780f42d30b65f46817633e65027f5438f1a39286139fcf961d4bc98caf70946152200c3e72ee
AUX perl-5.36.0-fix-configure-for-clang.patch 1172 BLAKE2B d20f34762320bd9917598f9babaf5de347042578fa7e99a9be0ab9ea37d5e10fe7810691b3d020a660b3372ccec9f48e65f42ff3fb897917801876d14c6760b0 SHA512 ce958f635f2158fd619512f10ce91023aedd81b512d9622f70043d133cc846bf9bc75b86b3c4e71561b10a02676158da1bd5edd381e5c9b9a25a03f64cab3523
+AUX perl-5.40.0-alignment.patch 2533 BLAKE2B 896e3dd728531b11c6a272c1b7d3990adad46b7a2096f1a09f2774f7b6fb075822519a13a7ac7f95d2b7dafeeb60d7d748d7d04877fd71a0e55c59a2a8035eca SHA512 22ad089ae4f42dcf45ce8b918203ba89eeefcb04755d72831e9318970c3ddff97e80cf4190ffd019540258d2643aab0a41afba26aa9ddd8151f08ecac5039220
AUX perl-5.40.0-fix-compilation-in-eprefix-bug-939014.patch 2169 BLAKE2B 9734b4b17654843aa76ad10970ff6a200c4da686f62369bb2c1bcb30891243c6bbee4e88ed458fe9d1598af938b6d6c8589cb9dcef1c55bbd11a8ad0ccb73556 SHA512 244d7c4d67f45464c909a29823507adcceda23d2fb61ce817a8f8336607ac1daeb7ea33a7b5d58865603bbd1ae9a977ba5fd3738897a341b6581a7d3a0009e35
DIST perl-5.38.0-patches-1.tar.gz 26047 BLAKE2B 809dd5242f9868e54525ae8056598d3252c889afc72ed6f122174f828947223399a5ba4dbc16dd43501f7138205991f8c102cbe0ed94175ae3353040c53a0162 SHA512 c66160e20095555aa21d3be70050dce934d62e55e01dcf0f716129b2faa390923958a48bc448b4fab6f55e5b097eb378f7a6409a92c024fe68c8b34fddcfc5e4
DIST perl-5.38.2.tar.xz 13679524 BLAKE2B 74250e30dde76911902a787134808dae69113c07029cdf09ab4777e7bb4e6c389cdefb9cb08be87e106a4bcd40dacaf188907d7a62c5aca22c1e374741855b39 SHA512 0ca51e447c7a18639627c281a1c7ae6662c773745ea3c86bede46336d5514ecc97ded2c61166e1ac15635581489dc596368907aa3a775b34db225b76d7402d10
@@ -8,7 +9,7 @@ DIST perl-5.40.0.tar.xz 13804184 BLAKE2B cf191c3ccaf6f395c0c7d08c2ad3456c1dd622d
DIST perl-cross-1.5.2.tar.gz 120097 BLAKE2B 8703816363b41ea5fe528b192ed28b169cf0bfc3c61a9332682240bdc02f6ef0208fc0202517ba03e7c177bfbb52783c833aacaf2d16583e0f90bd58805a03ff SHA512 fb16316add0a7458f087295077518402eddaa1c759da6e268742e9ba5439cb3f1db7adcd7ef769c4a613b7518ff9e48849f60b24bd2a6daaaf6e96b59bbf0ac8
DIST perl-cross-1.6.tar.gz 121973 BLAKE2B b3a17d92dd7621a3bc253a6c4e56eccd3adec2c2b52e606c956a08f48d786a16a3ac5beb056a732ba3df92227f210193b0f516fd9d73cac362a04ec52efab029 SHA512 980af804513ec126e40eb9d8200ca54ba805bbb13b38d20a45daaf8d98d6b257e2eebc1ecad56cd47f60e235fa1141f6df9518d748db4f18d5219180750ca615
EBUILD perl-5.38.2-r3.ebuild 28310 BLAKE2B a965f1319fe6ad9b1c383ef19b8b04e06b9cf1db9debd2e05e24ff82ef872c147fda8cc2ae0bf1c0adc240d52ce170c8ebfeca037617fb2dd8c3f1629ad13a4b SHA512 1464730aa236d8c48553f11c634e1e4bf69d9914251d41e6f78c6fbfbc434178d5fd28e04e87888b0b6da89f5e984ec20312a8c798e2b8722a7eb8f9948b23c3
-EBUILD perl-5.38.2-r5.ebuild 28293 BLAKE2B b34f678e6822fd7ab508b54385b55588b5d8a2e15bf11ad21057efc02aad969460f890ae35094d6d4b22985408ae4cb32d40eb723548b7c3c65936b274f99b6c SHA512 8db7c1e34041da91bac96a366e00d6de30e652ffbe84a1d8dd19f5b08f163ed6c4741d94a61841a8c8c08af5a1d73596f6651200ff431d2d58873fbae722e06d
EBUILD perl-5.38.2-r6.ebuild 28292 BLAKE2B a697809342b0c32854924f54ca61f1c44639f4379cd21dd8a2795d7af8e4bba9a27e13b6a6fe141c0874943bc470783513410f76d338043dcc2eceb1b7e88d53 SHA512 a02103c0cbb584b96e84c52216a83063b90474ed278c5a5702c0ecbeba9ca34ec67c29561d34397c324db3bf1fcce2f67e393fe826177fa6a89364b8ebf8cefc
+EBUILD perl-5.40.0-r1.ebuild 28242 BLAKE2B 290a99e433c127962496be7441724e7c698678998b7024c66c987de4ad245ecd339df221620b99b0e5d0661fca246d345d50343e87b15cc4b880a75d1ce81d26 SHA512 e3eda29ae4f3ab3c73bfdfb2667f24c3d8747717c472300c3765fcb6197bdf42ee6bafc5ed93ec31c3dbbfa22fee35ec8697831542b414f35a7650db6bd08b28
EBUILD perl-5.40.0.ebuild 28190 BLAKE2B 69f185c504db14e70534e0ac5ee2bb03e632591219741d4502806143d2d8f5ebc80c7a5d5136e4f65c683ae880c2d270cd376991efbe57085e697f37da2d09c6 SHA512 59bdac5bf0391f117fe753be97e0e385bd74d1854e1ea0afd4f99796d92a693ad7bfa17e39c2043d5b8f67c851d8e88a573b3dab30dfad4770d5987d7fbd4b7c
MISC metadata.xml 435 BLAKE2B 9a9dfd2dc8274c402dde0c3be13053b28361603c4fd230d841b169843e397bd6e16537034495178dfd443246c1621b34d849455147e8556a12806d973293a855 SHA512 1cb3197cf3c6f3031bdbc95c2686fcd2585f6e457d0661ed986cf7fa91b4ca564f793c2f141bfe5b9b8c54d2b05dd200c3e32bf073061872e08bd7c501bedc83
diff --git a/dev-lang/perl/files/perl-5.40.0-alignment.patch b/dev-lang/perl/files/perl-5.40.0-alignment.patch
new file mode 100644
index 000000000000..661ed59f2a51
--- /dev/null
+++ b/dev-lang/perl/files/perl-5.40.0-alignment.patch
@@ -0,0 +1,70 @@
+https://bugs.gentoo.org/936468
+https://github.com/Perl/perl5/issues/22577
+https://github.com/Perl/perl5/pull/22609
+
+From ffbda81ab95a3db3eff972ad22b633c60365bb8e Mon Sep 17 00:00:00 2001
+From: Tony Cook <tony@develop-help.com>
+Date: Wed, 18 Sep 2024 16:32:34 +1000
+Subject: [PATCH] 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
+---
+ sv_inline.h | 15 ++++++++++++++-
+ 1 file changed, 14 insertions(+), 1 deletion(-)
+
+diff --git a/sv_inline.h b/sv_inline.h
+index a0fe8ec870c2..7cbca95feef7 100644
+--- a/sv_inline.h
++++ b/sv_inline.h
+@@ -218,12 +218,25 @@ static const struct body_details bodies_by_type[] = {
+ SVt_PVIV, FALSE, NONV, HASARENA,
+ FIT_ARENA(0, sizeof(XPVIV) - STRUCT_OFFSET(XPV, xpv_cur)) },
+
++#if NVSIZE > 8 && PTRSIZE < 8 && MEM_ALIGNBYTES > 8
++ /* NV may need strict 16 byte alignment.
++
++ On 64-bit systems the NV ends up aligned despite the hack
++ avoiding allocation of xmg_stash and xmg_u, so only do this
++ for 32-bit systems.
++ */
++ { sizeof(XPVNV),
++ sizeof(XPVNV),
++ 0,
++ SVt_PVNV, FALSE, HADNV, HASARENA,
++ FIT_ARENA(0, sizeof(XPVNV)) },
++#else
+ { sizeof(XPVNV) - STRUCT_OFFSET(XPV, xpv_cur),
+ copy_length(XPVNV, xnv_u) - STRUCT_OFFSET(XPV, xpv_cur),
+ + STRUCT_OFFSET(XPV, xpv_cur),
+ SVt_PVNV, FALSE, HADNV, HASARENA,
+ FIT_ARENA(0, sizeof(XPVNV) - STRUCT_OFFSET(XPV, xpv_cur)) },
+-
++#endif
+ { sizeof(XPVMG), copy_length(XPVMG, xnv_u), 0, SVt_PVMG, FALSE, HADNV,
+ HASARENA, FIT_ARENA(0, sizeof(XPVMG)) },
+
+
diff --git a/dev-lang/perl/perl-5.38.2-r5.ebuild b/dev-lang/perl/perl-5.40.0-r1.ebuild
index ee0436a5d654..d4aa0af0669f 100644
--- a/dev-lang/perl/perl-5.38.2-r5.ebuild
+++ b/dev-lang/perl/perl-5.40.0-r1.ebuild
@@ -5,12 +5,12 @@ EAPI=8
inherit alternatives flag-o-matic toolchain-funcs multilib multiprocessing
-PATCH_VER=1
-CROSS_VER=1.5.2
-PATCH_BASE="perl-5.38.0-patches-${PATCH_VER}"
+PATCH_VER=2
+CROSS_VER=1.6
+PATCH_BASE="perl-5.40.0-patches-${PATCH_VER}"
PATCH_DEV=dilfridge
-DIST_AUTHOR=PEVANS
+DIST_AUTHOR=HAARG
# Greatest first, don't include yourself
# Devel point-releases are not ABI-intercompatible, but stable point releases are
@@ -18,7 +18,7 @@ DIST_AUTHOR=PEVANS
PERL_BIN_OLDVERSEN=""
if [[ "${PV##*.}" == "9999" ]]; then
- DIST_VERSION=5.30.0
+ DIST_VERSION=5.40.0
else
DIST_VERSION="${PV/_rc/-RC}"
fi
@@ -44,8 +44,7 @@ HOMEPAGE="https://www.perl.org/"
SRC_URI="
mirror://cpan/src/5.0/${MY_P}.tar.xz
mirror://cpan/authors/id/${DIST_AUTHOR:0:1}/${DIST_AUTHOR:0:2}/${DIST_AUTHOR}/${MY_P}.tar.xz
- https://github.com/gentoo-perl/perl-patchset/archive/refs/tags/${PATCH_BASE}.tar.gz
- https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${PATCH_BASE}.tar.gz
+ https://dev.gentoo.org/~${PATCH_DEV}/distfiles/${PATCH_BASE}.tar.xz
https://github.com/arsv/perl-cross/releases/download/${CROSS_VER}/perl-cross-${CROSS_VER}.tar.gz
"
@@ -72,6 +71,7 @@ DEPEND="${RDEPEND}"
BDEPEND="${RDEPEND}"
PDEPEND="
!minimal? (
+ >=app-admin/perl-cleaner-2.31
>=virtual/perl-CPAN-2.290.0
>=virtual/perl-Encode-3.120.0
>=virtual/perl-File-Temp-0.230.400-r2
@@ -80,26 +80,31 @@ PDEPEND="
virtual/perl-Test-Harness
)
"
-IDEPEND="app-admin/perl-cleaner"
+
+PATCHES=(
+ "${FILESDIR}/${P}-fix-compilation-in-eprefix-bug-939014.patch"
+ "${FILESDIR}/${PN}-5.40.0-alignment.patch"
+)
+
# bug 390719, bug 523624
# virtual/perl-Test-Harness is here for the bundled ExtUtils::MakeMaker
dual_scripts() {
- src_remove_dual perl-core/Archive-Tar 2.400.0 ptar ptardiff ptargrep
+ src_remove_dual perl-core/Archive-Tar 3.20.10_rc ptar ptardiff ptargrep
src_remove_dual perl-core/CPAN 2.360.0 cpan
src_remove_dual perl-core/Digest-SHA 6.40.0 shasum
- src_remove_dual perl-core/Encode 3.190.0 enc2xs piconv
+ src_remove_dual perl-core/Encode 3.210.0 enc2xs piconv
src_remove_dual perl-core/ExtUtils-MakeMaker 7.700.0 instmodsh
src_remove_dual perl-core/ExtUtils-ParseXS 3.510.0 xsubpp
- src_remove_dual perl-core/IO-Compress 2.204.0 zipdetails
- src_remove_dual perl-core/JSON-PP 4.160.0 json_pp
- src_remove_dual perl-core/Module-CoreList 5.202.311.290 corelist
- src_remove_dual perl-core/Pod-Checker 1.750.0 podchecker
+ src_remove_dual perl-core/IO-Compress 2.212.0 zipdetails
+ src_remove_dual perl-core/JSON-PP 4.160.0 json_pp
+ src_remove_dual perl-core/Module-CoreList 5.202.406.90 corelist
+ src_remove_dual perl-core/Pod-Checker 1.770.0 podchecker
src_remove_dual perl-core/Pod-Perldoc 3.280.100 perldoc
- src_remove_dual perl-core/Pod-Usage 2.30.0 pod2usage
- src_remove_dual perl-core/Test-Harness 3.440.0 prove
- src_remove_dual perl-core/podlators 5.10.0 pod2man pod2text
- src_remove_dual_man perl-core/podlators 5.10.0 /usr/share/man/man1/perlpodstyle.1
+ src_remove_dual perl-core/Pod-Usage 2.30.0 pod2usage
+ src_remove_dual perl-core/Test-Harness 3.480.0 prove
+ src_remove_dual perl-core/podlators 5.10.200_rc pod2man pod2text
+ src_remove_dual_man perl-core/podlators 5.10.200_rc /usr/share/man/man1/perlpodstyle.1
}
check_rebuild() {
@@ -416,8 +421,8 @@ src_prepare() {
local patchdir="${WORKDIR}/patches"
- mv -v "${WORKDIR}/perl-patchset-${PATCH_BASE}/patches" "${WORKDIR}/patches" || die
- mv -v "${WORKDIR}/perl-patchset-${PATCH_BASE}/patch-info" "${WORKDIR}/patch-info" || die
+ # mv -v "${WORKDIR}/perl-patchset-${PATCH_BASE}/patches" "${WORKDIR}/patches" || die
+ # mv -v "${WORKDIR}/perl-patchset-${PATCH_BASE}/patch-info" "${WORKDIR}/patch-info" || die
# Prepare Patch dir with additional patches / remove unwanted patches
# Inject bug/desc entries for perl -V
@@ -425,10 +430,6 @@ src_prepare() {
# add_patch "${FILESDIR}/${PN}-5.26.2-hppa.patch" "100-5.26.2-hppa.patch"\
# "Fix broken miniperl on hppa"\
# "https://bugs.debian.org/869122" "https://bugs.gentoo.org/634162"
- add_patch "${FILESDIR}/${PN}-5.36.0-fix-configure-for-clang.patch" \
- "100-5.36.0-fix-configure-for-clang.patch" \
- "Fix clang check in configure" \
- "https://github.com/Perl/perl5/issues/21099"
if [[ ${CHOST} == *-solaris* ]] ; then
# do NOT mess with nsl, on Solaris this is always necessary,
@@ -443,7 +444,7 @@ src_prepare() {
tc-is-static-only || src_prepare_dynamic
if use gdbm; then
- sed -i "s:INC => .*:INC => \"-I${EROOT}/usr/include/gdbm\":g" \
+ sed -i "s:INC => .*:INC => \"-I${ESYSROOT}/usr/include/gdbm\":g" \
ext/NDBM_File/Makefile.PL || die
fi
@@ -581,12 +582,12 @@ src_configure() {
use m68k && append-ldflags -Wl,-z,norelro
export BUILD_BZIP2=0
- export BZIP2_INCLUDE=${EROOT}/usr/include
- export BZIP2_LIB=${EROOT}/usr/$(get_libdir)
+ export BZIP2_INCLUDE=${ESYSROOT}/usr/include
+ export BZIP2_LIB=${ESYSROOT}/usr/$(get_libdir)
export BUILD_ZLIB=False
- export ZLIB_INCLUDE=${EROOT}/usr/include
- export ZLIB_LIB=${EROOT}/usr/$(get_libdir)
+ export ZLIB_INCLUDE=${ESYSROOT}/usr/include
+ export ZLIB_LIB=${ESYSROOT}/usr/$(get_libdir)
# allow either gdbm to provide ndbm (in <gdbm/ndbm.h>) or db1
myndbm='U'
@@ -626,12 +627,16 @@ src_configure() {
# modifying 'optimize' prevents cross configure script from appending required flags
if tc-is-cross-compiler; then
append-cflags "-fwrapv"
+ tc-export_build_env
# Needed for the CHOST build too (bug #932385)
export CFLAGS="${CFLAGS} -D_GNU_SOURCE"
# bug #913171
- export HOSTCFLAGS="${CFLAGS_FOR_BUILD} -D_GNU_SOURCE"
+ export \
+ HOSTCC=$(tc-getBUILD_CC) \
+ HOSTCFLAGS="${CFLAGS_FOR_BUILD} -D_GNU_SOURCE" \
+ HOSTLDFLAGS="${LDFLAGS_FOR_BUILD}"
fi
# bug #877659, bug #821577