From 4949aa0f2c18e60d5f4f53ae3e8a89ffe27195e9 Mon Sep 17 00:00:00 2001 From: jlam Date: Tue, 18 Jan 2005 00:56:43 +0000 Subject: Teach perl58 about DragonFlyBSD. Patches provided by Todd Willey in PR pkg/28963 with minor modifications by me. Also teach all of the BSDs (and Interix) to pass the rpath to libperl.so if a module needs to link with libperl.so when built with MakeMaker.pm. Bump the PKGREVISION to 2. --- lang/perl58/Makefile | 4 +- lang/perl58/distinfo | 11 ++-- lang/perl58/patches/patch-aa | 30 ++++++----- lang/perl58/patches/patch-ae | 10 ++-- lang/perl58/patches/patch-ca | 22 +++++--- lang/perl58/patches/patch-cb | 12 +++-- lang/perl58/patches/patch-cj | 123 +++++++++++++++++++++++++++++++++++++++++++ 7 files changed, 174 insertions(+), 38 deletions(-) create mode 100644 lang/perl58/patches/patch-cj (limited to 'lang') diff --git a/lang/perl58/Makefile b/lang/perl58/Makefile index 2cc5a3eebea..98b77d76bdf 100644 --- a/lang/perl58/Makefile +++ b/lang/perl58/Makefile @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.73 2005/01/17 20:21:44 jschauma Exp $ +# $NetBSD: Makefile,v 1.74 2005/01/18 00:56:43 jlam Exp $ # The following two variables should have empty values unless we're # building a perl snapshot or release candidate. @@ -13,7 +13,7 @@ EXTRACT_SUFX= .tar.bz2 .if empty(PERL5_SNAPSHOT) && empty(PERL5_RC_VERS) DISTNAME= perl-${PERL5_VERS} PKGNAME= perl-${PERL5_VERS} -PKGREVISION= 1 +PKGREVISION= 2 MASTER_SITES= ${MASTER_SITE_PERL_CPAN:S,/modules/by-module/$,/src/,} .else . if !empty(PERL5_SNAPSHOT) diff --git a/lang/perl58/distinfo b/lang/perl58/distinfo index 83eec8ec572..b64c3ddc2ce 100644 --- a/lang/perl58/distinfo +++ b/lang/perl58/distinfo @@ -1,15 +1,15 @@ -$NetBSD: distinfo,v 1.26 2005/01/06 06:46:52 tv Exp $ +$NetBSD: distinfo,v 1.27 2005/01/18 00:56:43 jlam Exp $ SHA1 (perl-5.8.6.tar.bz2) = 5267c5b4900a995a10e4fc56fe10a6852004c29b Size (perl-5.8.6.tar.bz2) = 9693085 bytes -SHA1 (patch-aa) = a441cba11b12a4285284e98b6e5918efbd8bafef -SHA1 (patch-ae) = fa3bbb1561192ce9214a7a7c756ccb2595a52c80 +SHA1 (patch-aa) = 3c16c599dae752cea4143ca48071118ece5925a4 +SHA1 (patch-ae) = 044ac094cd475a16483552aa6f1bde03bd11f592 SHA1 (patch-ah) = cb103c14090b2d61720ee9b555b32085c8eeb810 SHA1 (patch-ba) = 74a01f3a86f263720b9f07d1fdbaadbaecafb012 SHA1 (patch-bd) = 9f96ba1912f2a8db93db31f7a63c0b49a045318d SHA1 (patch-be) = 9f667f33ea24300a5580db84d0978ca53f126f29 -SHA1 (patch-ca) = 0e1f86c77dd07eac66c165fd59d56000438b2a03 -SHA1 (patch-cb) = 2221fb87bddd29406d925d1cb5351eb4f3087f76 +SHA1 (patch-ca) = 3198a5f49c2a850b1ea1f5c6f0738f45da505924 +SHA1 (patch-cb) = de10a31b699d877cedb3ca849458e10071912972 SHA1 (patch-cc) = b0760c8d1e3497a2a3ba1a14b049d35484c82579 SHA1 (patch-cd) = d9420f57f036567abac821a8144768a2a7057b47 SHA1 (patch-ce) = c7d2defd2cfa872c1f6651678bc3de6cd7aeaf34 @@ -17,4 +17,5 @@ SHA1 (patch-cf) = 23cf46c8d683b688878433ec9b33f3c65528cd28 SHA1 (patch-cg) = e1b56aaa40934f78298d1fd9303fbae33c472d8e SHA1 (patch-ch) = 6cfd77bba102a4bca82576f061ba60c1610c4d07 SHA1 (patch-ci) = 89bc6e67b18ca903cb3791fd598fd579bc48298b +SHA1 (patch-cj) = 680b7161d7530825376b9d5c108fc01f15768e5e SHA1 (patch-zc) = eb81edd1144ec46285898afc641c03a3aad54977 diff --git a/lang/perl58/patches/patch-aa b/lang/perl58/patches/patch-aa index 9265e196ac3..2881097ee4b 100644 --- a/lang/perl58/patches/patch-aa +++ b/lang/perl58/patches/patch-aa @@ -1,38 +1,42 @@ -$NetBSD: patch-aa,v 1.4 2004/04/24 21:04:43 tv Exp $ +$NetBSD: patch-aa,v 1.5 2005/01/18 00:56:44 jlam Exp $ ---- lib/ExtUtils/MM_Unix.pm.orig Mon Jan 5 17:34:59 2004 -+++ lib/ExtUtils/MM_Unix.pm Fri Apr 23 14:07:03 2004 -@@ -12,7 +12,7 @@ +--- lib/ExtUtils/MM_Unix.pm.orig 2004-01-05 17:34:59.000000000 -0500 ++++ lib/ExtUtils/MM_Unix.pm +@@ -12,7 +12,7 @@ use DirHandle; use vars qw($VERSION @ISA $Is_Mac $Is_OS2 $Is_VMS $Is_Win32 $Is_Win95 $Is_Dos $Is_VOS - $Is_QNX $Is_AIX $Is_OSF $Is_IRIX $Is_NetBSD $Is_BSD -+ $Is_QNX $Is_AIX $Is_OSF $Is_IRIX $Is_NetBSD $Is_BSD $Is_Interix ++ $Is_QNX $Is_AIX $Is_OSF $Is_IRIX $Is_BSD $Is_Interix $Is_SunOS4 $Is_Solaris $Is_SunOS $Verbose %pm %static %Config_Override -@@ -37,10 +37,11 @@ +@@ -36,11 +36,11 @@ $Is_QNX = $^O eq 'qnx'; + $Is_AIX = $^O eq 'aix'; $Is_OSF = $^O eq 'dec_osf'; $Is_IRIX = $^O eq 'irix'; - $Is_NetBSD = $^O eq 'netbsd'; +-$Is_NetBSD = $^O eq 'netbsd'; +$Is_Interix = $^O eq 'interix'; $Is_SunOS4 = $^O eq 'sunos'; $Is_Solaris = $^O eq 'solaris'; $Is_SunOS = $Is_SunOS4 || $Is_Solaris; -$Is_BSD = $^O =~ /^(?:free|net|open)bsd|bsdos$/; -+$Is_BSD = $^O =~ /^(?:free|net|open)bsd|bsdos|interix$/; ++$Is_BSD = $^O =~ /^(?:free|net|open)bsd|bsdos|dragonfly|interix$/; =head1 NAME -@@ -1120,16 +1127,16 @@ +@@ -1120,16 +1120,16 @@ $(INST_DYNAMIC): $(OBJECT) $(MYEXTLIB) $ my $libs = '$(LDLOADLIBS)'; - if ($Is_NetBSD) { -+ if ($Is_NetBSD || $Is_Interix) { - # Use nothing on static perl platforms, and to the flags needed - # to link against the shared libperl library on shared perl - # platforms. We peek at lddlflags to see if we need -Wl,-R +- # Use nothing on static perl platforms, and to the flags needed +- # to link against the shared libperl library on shared perl +- # platforms. We peek at lddlflags to see if we need -Wl,-R ++ if ($Is_BSD) { ++ # Use nothing on static perl platforms, and add to the flags ++ # needed to link against the shared libperl library on shared ++ # perl platforms. We peek at lddlflags to see if we need -Wl,-R # or -R to add paths to the run-time library search path. if ($Config{'useshrplib'}) { if ($Config{'lddlflags'} =~ /-Wl,-R/) { diff --git a/lang/perl58/patches/patch-ae b/lang/perl58/patches/patch-ae index 760dfb7b4c0..d2f777ff722 100644 --- a/lang/perl58/patches/patch-ae +++ b/lang/perl58/patches/patch-ae @@ -1,12 +1,12 @@ -$NetBSD: patch-ae,v 1.2 2003/10/05 07:07:14 jlam Exp $ +$NetBSD: patch-ae,v 1.3 2005/01/18 00:56:44 jlam Exp $ ---- makedepend.SH.orig Fri Jun 6 23:34:20 2003 +--- makedepend.SH.orig 2003-06-05 14:11:10.000000000 -0400 +++ makedepend.SH -@@ -84,6 +84,7 @@ +@@ -83,7 +83,6 @@ if test -f Makefile; then + # to be out of date. I don't know if OS/2 has touch, so do this: case "$osname" in os2) ;; - netbsd) ;; -+ freebsd) ;; +- netbsd) ;; *) $touch $firstmakefile ;; esac fi diff --git a/lang/perl58/patches/patch-ca b/lang/perl58/patches/patch-ca index a815f691495..b280b104d52 100644 --- a/lang/perl58/patches/patch-ca +++ b/lang/perl58/patches/patch-ca @@ -1,8 +1,14 @@ -$NetBSD: patch-ca,v 1.7 2005/01/04 09:50:15 jlam Exp $ +$NetBSD: patch-ca,v 1.8 2005/01/18 00:56:44 jlam Exp $ --- Configure.orig 2004-09-10 02:25:52.000000000 -0400 +++ Configure -@@ -3111,7 +3111,7 @@ EOM +@@ -3107,11 +3107,13 @@ EOM + dgux) osname=dgux + osvers="$3" + ;; ++ dragonfly) osname=dragonfly ++ osvers=`$uname -r | UU/tr '[A-Z]' '[a-z]'` ;; + dynixptx*) osname=dynixptx osvers=`echo "$4"|sed 's/^v//'` ;; freebsd) osname=freebsd @@ -11,7 +17,7 @@ $NetBSD: patch-ca,v 1.7 2005/01/04 09:50:15 jlam Exp $ genix) osname=genix ;; gnu) osname=gnu osvers="$3" ;; -@@ -3133,7 +3133,7 @@ EOM +@@ -3133,7 +3135,7 @@ EOM MiNT) osname=mint ;; netbsd*) osname=netbsd @@ -20,7 +26,7 @@ $NetBSD: patch-ca,v 1.7 2005/01/04 09:50:15 jlam Exp $ ;; news-os) osvers="$3" case "$3" in -@@ -3144,8 +3144,8 @@ EOM +@@ -3144,8 +3146,8 @@ EOM next*) osname=next ;; nonstop-ux) osname=nonstopux ;; openbsd) osname=openbsd @@ -31,16 +37,16 @@ $NetBSD: patch-ca,v 1.7 2005/01/04 09:50:15 jlam Exp $ os2) osname=os2 osvers="$4" ;; -@@ -7852,7 +7852,7 @@ if "$useshrplib"; then +@@ -7852,7 +7854,7 @@ if "$useshrplib"; then solaris) xxx="-R $shrpdir" ;; - freebsd|netbsd|openbsd) -+ freebsd|netbsd|openbsd|interix) ++ freebsd|netbsd|openbsd|dragonfly|interix) xxx="-Wl,-R$shrpdir" ;; bsdos|linux|irix*|dec_osf) -@@ -8973,6 +8973,13 @@ EOCP +@@ -8973,6 +8975,13 @@ EOCP ;; esac @@ -54,7 +60,7 @@ $NetBSD: patch-ca,v 1.7 2005/01/04 09:50:15 jlam Exp $ case "$vendorprefix" in '') d_vendorbin="$undef" vendorbin='' -@@ -17290,7 +17297,15 @@ RCAT(Rei,ser) +@@ -17290,7 +17299,15 @@ RCAT(Rei,ser) ACAT(Cir,cus) EOCP $cppstdin $cppflags $cppminus cpp_stuff.out 2>&1 diff --git a/lang/perl58/patches/patch-cb b/lang/perl58/patches/patch-cb index 68ba5937e0f..b3527d4f6e0 100644 --- a/lang/perl58/patches/patch-cb +++ b/lang/perl58/patches/patch-cb @@ -1,15 +1,17 @@ -$NetBSD: patch-cb,v 1.3 2004/04/26 04:42:12 jlam Exp $ +$NetBSD: patch-cb,v 1.4 2005/01/18 00:56:44 jlam Exp $ ---- Makefile.SH.orig Sat Mar 6 10:54:23 2004 -+++ Makefile.SH Mon Apr 26 00:33:38 2004 -@@ -69,6 +69,10 @@ +--- Makefile.SH.orig 2004-10-21 11:30:02.000000000 -0400 ++++ Makefile.SH +@@ -69,7 +69,11 @@ true) sunos*) linklibperl="-lperl" ;; +- netbsd*|freebsd[234]*|openbsd*) + interix*) + linklibperl="-L. -lperl" + shrpldflags="$shrpldflags -Wl,--image-base,0x57000000" + ;; - netbsd*|freebsd[234]*|openbsd*) ++ netbsd*|freebsd[234]*|openbsd*|dragonfly*) linklibperl="-L. -lperl" ;; + aix*) diff --git a/lang/perl58/patches/patch-cj b/lang/perl58/patches/patch-cj new file mode 100644 index 00000000000..c2efb58cd0f --- /dev/null +++ b/lang/perl58/patches/patch-cj @@ -0,0 +1,123 @@ +$NetBSD: patch-cj,v 1.1 2005/01/18 00:56:44 jlam Exp $ + +--- /dev/null 2005-01-17 19:31:20.000000000 -0500 ++++ hints/dragonfly.sh 2005-01-17 19:39:56.000000000 -0500 +@@ -0,0 +1,118 @@ ++# hints/dragonfly.sh ++# ++# This file is mostly copied from hints/freebsd.sh with the OS version ++# information taken out and only the FreeBSD-4 information intact. ++# Please check with Todd Willey before making ++# modifications to this file. ++ ++case "$osvers" in ++*) usevfork='true' ++ case "$usemymalloc" in ++ "") usemymalloc='n' ++ ;; ++ esac ++ libswanted=`echo $libswanted | sed 's/ malloc / /'` ++ ;; ++esac ++ ++# Dynamic Loading flags have not changed much, so they are separated ++# out here to avoid duplicating them everywhere. ++case "$osvers" in ++*) ++ objformat=`/usr/bin/objformat` ++ if [ x$objformat = xelf ]; then ++ libpth="/usr/lib /usr/local/lib" ++ glibpth="/usr/lib /usr/local/lib" ++ ldflags="-Wl,-E " ++ lddlflags="-shared " ++ else ++ if [ -e /usr/lib/aout ]; then ++ libpth="/usr/lib/aout /usr/local/lib /usr/lib" ++ glibpth="/usr/lib/aout /usr/local/lib /usr/lib" ++ fi ++ lddlflags='-Bshareable' ++ fi ++ cccdlflags='-DPIC -fPIC' ++ ;; ++esac ++ ++case "$osvers" in ++*) ++ ccflags="${ccflags} -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H" ++ if /usr/bin/file -L /usr/lib/libc.so | /usr/bin/grep -vq "not stripped" ; then ++ usenm=false ++ fi ++ ;; ++esac ++ ++cat <<'EOM' >&4 ++ ++Some users have reported that Configure halts when testing for ++the O_NONBLOCK symbol with a syntax error. This is apparently a ++sh error. Rerunning Configure with ksh apparently fixes the ++problem. Try ++ ksh Configure [your options] ++ ++EOM ++ ++# From: Anton Berezin ++# To: perl5-porters@perl.org ++# Subject: [PATCH 5.005_54] Configure - hints/freebsd.sh signal handler type ++# Date: 30 Nov 1998 19:46:24 +0100 ++# Message-ID: <864srhhvcv.fsf@lion.plab.ku.dk> ++ ++signal_t='void' ++d_voidsig='define' ++ ++# This script UU/usethreads.cbu will get 'called-back' by Configure ++# after it has prompted the user for whether to use threads. ++cat > UU/usethreads.cbu <<'EOCBU' ++case "$usethreads" in ++$define|true|[yY]*) ++ lc_r=`/sbin/ldconfig -r|grep ':-lc_r'|awk '{print $NF}'|sed -n '$p'` ++ case "$osvers" in ++ *) ++ if [ ! -r "$lc_r" ]; then ++ cat <&4 ++POSIX threads should be supported by FreeBSD $osvers -- ++but your system is missing the shared libc_r. ++(/sbin/ldconfig -r doesn't find any). ++ ++Consider using the latest STABLE release. ++EOM ++ exit 1 ++ fi ++ case "$osvers" in ++ *) ldflags="-pthread $ldflags" ++ ;; ++ esac ++ # Both in 4.x and 5.x gethostbyaddr_r exists but ++ # it is "Temporary function, not threadsafe"... ++ # Presumably earlier it didn't even exist. ++ d_gethostbyaddr_r="undef" ++ d_gethostbyaddr_r_proto="0" ++ ;; ++ ++ esac ++ ++ set `echo X "$libswanted "| sed -e 's/ c / c_r /'` ++ shift ++ libswanted="$*" ++ # Configure will probably pick the wrong libc to use for nm scan. ++ # The safest quick-fix is just to not use nm at all... ++ usenm=false ++ ++ unset lc_r ++ ++ # Even with the malloc mutexes the Perl malloc does not ++ # seem to be threadsafe in FreeBSD? ++ case "$usemymalloc" in ++ '') usemymalloc=n ;; ++ esac ++esac ++EOCBU ++ ++# malloc wrap works ++case "$usemallocwrap" in ++'') usemallocwrap='define' ;; ++esac -- cgit v1.2.3