pkgsrc-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: pkg/30070 (lang/perl58 fails to build under Solaris 9)
The following reply was made to PR pkg/30070; it has been noted by GNATS.
From: Gilles Dauphin <Gilles.Dauphin%enst.fr@localhost>
To: solaris-pkg-people%NetBSD.org@localhost, gnats-admin%NetBSD.org@localhost,
markd%NetBSD.org@localhost, andrew%ugh.net.au@localhost,
gnats-bugs%NetBSD.org@localhost
Cc:
Subject: Re: pkg/30070 (lang/perl58 fails to build under Solaris 9)
Date: Mon, 26 Jun 2006 14:57:47 +0200 (CEST)
--Herd_of_Elephants_001_000
Content-Type: TEXT/plain; charset=us-ascii
Content-MD5: rUfMShy5xOHVhf+LlthtlQ==
> Synopsis: lang/perl58 fails to build under Solaris 9
>
> State-Changed-From-To: open->feedback
> State-Changed-By: markd%netbsd.org@localhost
> State-Changed-When: Mon, 26 Jun 2006 10:45:11 +0000
> State-Changed-Why:
> is this still a problem for you with latest pkgsrc? perl5 package builds
> fine for me on Solaris 9/sparc and Solaris 10/i386 for both gcc and sunpro.
That's not true for Solaris10/amd64 gcc (ABI=64)
I apply the following path to Makefile and create patch-da:
---------------------------------------------------------------
--- perl5/Makefile Sat May 6 14:32:20 2006
+++ perl5.save//Makefile Mon May 22 16:03:31 2006
@@ -164,6 +164,10 @@
SYSLIBPATH.NetBSD= /usr/lib
SYSLIBPATH.OpenBSD= /usr/lib
SYSLIBPATH.SunOS= /usr/lib
+.if defined(ABI) && ${ABI} == "64"
+SYSLIBPATH.SunOS= /usr/lib/64
+.endif
+
SYSLIBPATH= ${SYSLIBPATH.${OPSYS}}
# Nail down the directories in which headers and libraries of
-------------------------------------------------------------
Gilles
--Herd_of_Elephants_001_000
Content-Type: TEXT/plain; name=patch-da; charset=us-ascii; x-unix-mode=0644
Content-Description: patch-da
Content-MD5: 965QpcKPn3OkZ91WTJ6lHw==
--- hints/solaris_2.sh.orig Tue Oct 11 17:41:18 2005
+++ hints/solaris_2.sh Wed Apr 12 14:23:27 2006
@@ -241,6 +241,9 @@
if echo "$verbose" | grep ' /usr/ccs/bin/ld ' >/dev/null 2>&1; then
# Ok, gcc directly calls the Solaris /usr/ccs/bin/ld.
+ # OK, but gcc 3,4,3 use the -shared option to pass -G to the linker
+ #ccdlflags="$ccdlflags -Wl,-E"
+ lddlflags="$lddlflags -shared"
:
elif echo "$verbose" | grep "ld: Software Generation Utilities"
>/dev/null 2>&1; then
# Hmm. gcc doesn't call /usr/ccs/bin/ld directly, but it
@@ -446,7 +449,7 @@
# Keep these in the left margin.
ccflags_uselargefiles="`getconf LFS_CFLAGS 2>/dev/null`"
ldflags_uselargefiles="`getconf LFS_LDFLAGS 2>/dev/null`"
-libswanted_uselargefiles="`getconf LFS_LIBS 2>/dev/null|sed -e 's@^-l@@' -e
's@ -l@ @g`"
+libswanted_uselargefiles="`getconf LFS_LIBS 2>/dev/null|sed -e 's@^-l@@' -e
's@ -l@ @g'`"
ccflags="$ccflags $ccflags_uselargefiles"
ldflags="$ldflags $ldflags_uselargefiles"
@@ -463,7 +466,17 @@
;;
esac
-if test `uname -p` = sparc -o `uname -p` = i386; then
+arch_given=$archname
+case "$arch_given" in
+ x86_64*)
+ arch_result="x86_64"
+ ;;
+ '')
+ arch_result=""
+esac
+
+if test `uname -p` = "sparc" || test "X$arch_result" = "Xx86_64"; then
+#if test `uname -p` = sparc -o `uname -p` = i386; then
cat > UU/use64bitint.cbu <<'EOCBU'
# This script UU/use64bitint.cbu will get 'called-back' by Configure
# after it has prompted the user for whether to use 64 bit integers.
@@ -513,9 +526,7 @@
exit 1
;;
esac
- processor=`uname -p`;
- if test "$processor" = sparc; then
- libc='/usr/lib/sparcv9/libc.so'
+ libc='/usr/lib/64/libc.so'
if test ! -f $libc; then
cat >&4 <<EOM
@@ -525,11 +536,10 @@
EOM
exit 1
fi
- fi
case "${cc:-cc} -v 2>/dev/null" in
*gcc*)
echo 'int main() { return 0; }' > try.c
- case "`${cc:-cc} -mcpu=v9 -m64 -S try.c 2>&1 | grep 'm64 is not
supported by this configuration'`" in
+ case "`${cc:-cc} -m64 -S try.c 2>&1 | grep 'm64 is not
supported by this configuration'`" in
*"m64 is not supported"*)
cat >&4 <<EOM
@@ -543,19 +553,19 @@
exit 1
;;
esac
- if test "$processor" = sparc; then
- loclibpth="/usr/lib/sparcv9 $loclibpth"
- ccflags="$ccflags -mcpu=v9"
- fi
+ loclibpth="/usr/lib/64 $loclibpth"
ccflags="$ccflags -m64"
- if test $processor = sparc -a X`getconf XBS5_LP64_OFF64_CFLAGS
2>/dev/null` != X; then
+ if test X`getconf XBS5_LP64_OFF64_CFLAGS 2>/dev/null` != X; then
# This adds in -Wa,-xarch=v9. I suspect that's superfluous,
# since the -m64 above should do that already. Someone
# with gcc-3.x.x, please test with gcc -v. A.D.
20-Nov-2003
- ccflags="$ccflags -Wa,`getconf XBS5_LP64_OFF64_CFLAGS
2>/dev/null`"
+ # You are right , does not work on Solaris 10 GD
09-Mar-2006
+ #ccflags="$ccflags -Wa,`getconf XBS5_LP64_OFF64_CFLAGS
2>/dev/null`"
+ :
+
fi
ldflags="$ldflags -m64"
- lddlflags="$lddlflags -G -m64"
+ lddlflags="$lddlflags -shared -m64"
;;
*)
ccflags="$ccflags `getconf XBS5_LP64_OFF64_CFLAGS 2>/dev/null`"
@@ -563,13 +573,10 @@
lddlflags="$lddlflags -G `getconf XBS5_LP64_OFF64_LDFLAGS
2>/dev/null`"
echo "int main() { return(0); } " > try.c
tryworkshopcc="${cc:-cc} try.c -o try $ccflags"
- if test "$processor" = sparc; then
- loclibpth="/usr/lib/sparcv9 /usr/ccs/lib/sparcv9 $loclibpth"
- fi
- loclibpth="`$getworkshoplibs` $loclibpth"
+ loclibpth="/usr/lib/64 `$getworkshoplibs` $loclibpth"
;;
esac
- unset processor
+# unset processor
use64bitall_done=yes
archname64=64
;;
--Herd_of_Elephants_001_000--
Home |
Main Index |
Thread Index |
Old Index