commit:     c8e7386fe2f483f3b2441867ee044dd765a73fea
Author:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
AuthorDate: Thu Jan 17 07:43:13 2019 +0000
Commit:     Fabian Groffen <grobian <AT> gentoo <DOT> org>
CommitDate: Thu Jan 17 07:43:33 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c8e7386f

dev-lang/perl: misc fixes for Solaris

- set SONAME for libperl
- fix arch dirs to be called *-solaris iso *-linux
- add workaround for broken alignment check causing buserror on sparc

Signed-off-by: Fabian Groffen <grobian <AT> gentoo.org>
Package-Manager: Portage-2.3.51, Repoman-2.3.11

 dev-lang/perl/perl-5.28.0.ebuild    | 11 +++++++++--
 dev-lang/perl/perl-5.28.9999.ebuild | 11 +++++++++--
 2 files changed, 18 insertions(+), 4 deletions(-)

diff --git a/dev-lang/perl/perl-5.28.0.ebuild b/dev-lang/perl/perl-5.28.0.ebuild
index 13cbdc3c005..ce7173f15eb 100644
--- a/dev-lang/perl/perl-5.28.0.ebuild
+++ b/dev-lang/perl/perl-5.28.0.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2018 Gentoo Authors
+# Copyright 1999-2019 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=6
@@ -136,6 +136,7 @@ pkg_setup() {
                *-netbsd*)    osname="netbsd" ;;
                *-openbsd*)   osname="openbsd" ;;
                *-darwin*)    osname="darwin" ;;
+               *-solaris*)   osname="solaris" ;;
                *-interix*)   osname="interix" ;;
                *-aix*)       osname="aix" ;;
                *-cygwin*)    osname="cygwin" ;;
@@ -314,7 +315,9 @@ src_prepare() {
        if [[ ${CHOST} == *-solaris* ]] ; then
                # do NOT mess with nsl, on Solaris this is always necessary,
                # when -lsocket is used e.g. to get h_errno
-               sed -i '/gentoo\/no-nsl\.patch/d' "${WORKDIR}/patches/series" 
|| die "Can't exclude libnsl patch"
+               sed -i '/gentoo\/no-nsl\.patch/d' "${WORKDIR}/patches/series" 
|| die
+               # and set a soname
+               sed -i 's/sunos\*/sunos*|solaris*/' Makefile.SH || die
        fi
 
        einfo "Applying patches from ${PATCH_BASE} ..."
@@ -467,6 +470,10 @@ src_configure() {
        [[ ${CHOST} == *-darwin* && ${CHOST##*darwin} -le 9 ]] && tc-is-gcc && \
                append-cflags -Dinline=__inline__
 
+       # fix unaligned access misdetection
+       # https://rt.perl.org/Public/Bug/Display.html?id=133495
+       [[ ${CHOST} == sparc*-solaris* ]] && myconf "-Dd_u32align='define'"
+
        # Prefix: the host system needs not to follow Gentoo multilib stuff, 
and in
        # Prefix itself we don't do multilib either, so make sure perl can find
        # something compatible.

diff --git a/dev-lang/perl/perl-5.28.9999.ebuild 
b/dev-lang/perl/perl-5.28.9999.ebuild
index 13cbdc3c005..ce7173f15eb 100644
--- a/dev-lang/perl/perl-5.28.9999.ebuild
+++ b/dev-lang/perl/perl-5.28.9999.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2018 Gentoo Authors
+# Copyright 1999-2019 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 EAPI=6
@@ -136,6 +136,7 @@ pkg_setup() {
                *-netbsd*)    osname="netbsd" ;;
                *-openbsd*)   osname="openbsd" ;;
                *-darwin*)    osname="darwin" ;;
+               *-solaris*)   osname="solaris" ;;
                *-interix*)   osname="interix" ;;
                *-aix*)       osname="aix" ;;
                *-cygwin*)    osname="cygwin" ;;
@@ -314,7 +315,9 @@ src_prepare() {
        if [[ ${CHOST} == *-solaris* ]] ; then
                # do NOT mess with nsl, on Solaris this is always necessary,
                # when -lsocket is used e.g. to get h_errno
-               sed -i '/gentoo\/no-nsl\.patch/d' "${WORKDIR}/patches/series" 
|| die "Can't exclude libnsl patch"
+               sed -i '/gentoo\/no-nsl\.patch/d' "${WORKDIR}/patches/series" 
|| die
+               # and set a soname
+               sed -i 's/sunos\*/sunos*|solaris*/' Makefile.SH || die
        fi
 
        einfo "Applying patches from ${PATCH_BASE} ..."
@@ -467,6 +470,10 @@ src_configure() {
        [[ ${CHOST} == *-darwin* && ${CHOST##*darwin} -le 9 ]] && tc-is-gcc && \
                append-cflags -Dinline=__inline__
 
+       # fix unaligned access misdetection
+       # https://rt.perl.org/Public/Bug/Display.html?id=133495
+       [[ ${CHOST} == sparc*-solaris* ]] && myconf "-Dd_u32align='define'"
+
        # Prefix: the host system needs not to follow Gentoo multilib stuff, 
and in
        # Prefix itself we don't do multilib either, so make sure perl can find
        # something compatible.

Reply via email to