diff options
author | V3n3RiX <venerix@koprulu.sector> | 2024-12-08 02:07:29 +0000 |
---|---|---|
committer | V3n3RiX <venerix@koprulu.sector> | 2024-12-08 02:07:29 +0000 |
commit | 494168b06b81a32b889c3cb1f721f925d0a6824f (patch) | |
tree | 0ec763ffa61af808a83f365fb6680258d2e28a50 /dev-lang/perl | |
parent | 2198f8593ae0312add1bdccb49edfcb935e5f8a6 (diff) |
gentoo auto-resync : 08:12:2024 - 02:07:28
Diffstat (limited to 'dev-lang/perl')
-rw-r--r-- | dev-lang/perl/Manifest | 3 | ||||
-rw-r--r-- | dev-lang/perl/files/perl-5.40.0-alignment.patch | 70 | ||||
-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 |